156 lines
9.4 KiB
Plaintext
156 lines
9.4 KiB
Plaintext
{
|
|
-----------------------------------------------------------------------
|
|
PROGRAMA : VEPRMTACT1
|
|
OBJETIVO : ACTUALIZACION TABLA ptventasgral
|
|
PROGRAMADOR : JUAN SOTO
|
|
FECHA REALIZACION : MAYO 21, 2008
|
|
-----------------------------------------------------------------------
|
|
}
|
|
|
|
GLOBALS
|
|
DEFINE usuarios,clave CHAR(80),
|
|
pitbis DEC(12,2)
|
|
END GLOBALS
|
|
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
|
|
CONNECT TO "smarmotech" USER usuarios USING clave
|
|
|
|
CALL prprmt011()
|
|
END MAIN
|
|
|
|
FUNCTION prprmt011()
|
|
|
|
DISPLAY "PROCESO VENTAS..., FAVOR ESPERE...."
|
|
|
|
DELETE FROM ptventasgral WHERE ano = "2010" #and numero_MES =12
|
|
|
|
{QUERY ORIGINAL, SE COPIPO POR LA EMIGRACION A SQL SERVER 2008 POR EL OUTER}
|
|
INSERT INTO ptventasgral
|
|
select UNIQUE x0.cod_cia ,x1.nombre ,'VENTAS',
|
|
x2.descripcion ,x3.descripcion ,x4.producto ,x11.descripcion,x5.cantidad * x5.precio ,
|
|
x0.porc_itbi / 100,(x5.cantidad * x5.precio) * (x5.cantidad_2 / 100),
|
|
((x5.cantidad * x5.precio) - ((x5.cantidad * x5.precio) * (x5.cantidad_2 / 100))) * (x0.porc_itbi / 100)
|
|
,x0.factura ,x0.conduce,'0','0',CAST(f.detalle AS CHAR(60)),'0',x0.cond_pago,' ',x0.fecha_factura ,x6.mes ,x6.ano ,x7.descrip,
|
|
x8.tipo_cliente,x8.sec_cliente,x8.nombre ,x8.num_rnc ,x0.orden ,x10.num_emp,x10.nom1_emp ,x10.apell1_emp
|
|
,x5.cod_n ,x5.cod_grupo ,x5.cod_tipo ,x5.cod_sec ,x9.descrip_esp
|
|
,x9.unidad_med ,x5.cantidad ,x5.precio ,k.material + k.labor + k.gastos ,(k.material + k.labor
|
|
+ k.gastos) * x5.cantidad ,A.TASA,"0","0","0","0","0","0"
|
|
FROM mestable AS x7 INNER JOIN
|
|
iptb00020 AS x4 INNER JOIN
|
|
vetb00061 AS x2 INNER JOIN
|
|
vetb00002 AS x0 INNER JOIN
|
|
vetb00003 AS x5 ON x0.factura = x5.factura AND x0.cod_cia = x5.cod_cia INNER JOIN
|
|
vetb00084 AS x1 ON x0.sec_vend = x1.sec_vend INNER JOIN
|
|
vetb00028 AS b INNER JOIN
|
|
adtb00003 AS x10 ON b.sec_vend = x10.num_emp ON x0.tipo_cliente = b.tipo_cliente AND x0.sec_cliente = b.sec_cliente INNER JOIN
|
|
vetb00004 AS x8 ON x0.tipo_cliente = x8.tipo_cliente AND x0.sec_cliente = x8.sec_cliente INNER JOIN
|
|
prdtable AS x6 INNER JOIN
|
|
cgtb00084 AS a ON x6.ano = a.ano AND x6.mes = a.mes ON x0.tipo_cliente = a.tipo_cliente AND x8.tipo_cliente = a.tipo_cliente AND x0.ventas = a.ventas AND
|
|
x0.tipo_cliente = a.tipo_cliente ON x2.ventas = a.ventas AND x2.ventas = x0.ventas INNER JOIN
|
|
iptb00002 AS x9 INNER JOIN
|
|
iptb00024 AS x11 ON x9.cod_n = x11 AND x9.cod_tipo = x11.cod_tipo
|
|
INNER JOIN
|
|
iptb00022 AS x3 ON x9.cod_cia = x3.cod_cia ON x5.cod_n = x9.cod_n AND x5.cod_grupo = x9.cod_grupo AND x5.cod_tipo = x9.cod_tipo AND
|
|
x5.cod_sec = x9.cod_sec ON x4.cod_n = x5.cod_n ON x7.mes = x6.mes LEFT OUTER JOIN
|
|
iptb00004 as k ON x6.ano = k.ano AND x5.cod_n = k.cod_n AND x5.cod_grupo = k.cod_grupo AND x5.cod_tipo = k.cod_tipo AND
|
|
x5.cod_sec = k.cod_sec LEFT OUTER JOIN
|
|
vetb00048 f ON x0.factura = f.factura
|
|
WHERE x0.fecha_factura BETWEEN x6.fecha_inicio AND x6.fecha_corte AND x5.cantidad IS NOT NULL AND x6.ano = '2010' AND x0.status_t IS NULL
|
|
AND x6.ano IN (2010) #and x6.mes =12
|
|
|
|
# DEVOLUCIONES
|
|
|
|
|
|
INSERT INTO ptventasgral
|
|
|
|
select DISTINCT x0.cod_cia ,x1.nombre ,'DEVOLUCIONES',x2.descripcion ,x3.descripcion ,
|
|
x4.producto ,AVG(x0.cantidad_2*-1) * AVG(x5.precio) ,'0' ,(AVG(x0.cantidad_2*-1) * AVG(x5.precio)) * AVG(x5.cantidad_2/100),'0'
|
|
,x0.fact_no ,x0.num_doc,x0.num_doc,h.num_doc,MAX(CAST(f.comentario AS CHAR(60))),x0.cod_mov,'0',' ',x0.fecha ,x6.mes ,x6.ano ,x7.descrip
|
|
,x8.tipo_cliente,x8.sec_cliente,x8.nombre ,x8.num_rnc ,k.orden ,x10.num_emp,x10.nom1_emp ,
|
|
x10.apell1_emp
|
|
,x5.cod_n ,x5.cod_grupo ,x5.cod_tipo ,x5.cod_sec ,x9.descrip_esp
|
|
,x9.unidad_med ,AVG(x0.cantidad_2*-1) ,AVG(x5.precio) ,'0' , '0' ,A.TASA,"0","0","0","0","0","0"
|
|
FROM cctb00011 AS f RIGHT OUTER JOIN
|
|
iptb00020 AS x4 INNER JOIN
|
|
vetb00002 AS k INNER JOIN
|
|
vetb00084 AS x1 ON k.sec_vend = x1.sec_vend INNER JOIN
|
|
iptb00006 AS x0 INNER JOIN
|
|
cctb00001 AS h ON x0.num_doc = h.num_cheque AND x0.cod_mov = h.banco AND
|
|
x0.cod_sp = h.tipo_cliente AND
|
|
x0.cod_sp_sec = h.sec_cliente ON
|
|
k.factura = x0.fact_no INNER JOIN
|
|
vetb00003 AS x5 ON k.factura = x5.factura AND
|
|
x0.cod_cia = x5.cod_cia AND x0.cod_n = x5.cod_n AND
|
|
x0.cod_grupo = x5.cod_grupo AND
|
|
x0.cod_tipo = x5.cod_tipo AND x0.cod_sec = x5.cod_sec INNER JOIN
|
|
adtb00003 AS x10 ON k.sec_vend = x10.num_emp INNER JOIN
|
|
vetb00004 AS x8 ON x0.cod_sp = x8.tipo_cliente AND
|
|
x0.cod_sp_sec = x8.sec_cliente INNER JOIN
|
|
cgtb00084 AS a ON k.tipo_cliente = a.tipo_cliente AND
|
|
k.tipo_cliente = a.tipo_cliente AND
|
|
x8.tipo_cliente = a.tipo_cliente AND
|
|
YEAR(x0.fecha) = a.ano AND
|
|
MONTH(x0.fecha) = a.mes INNER JOIN
|
|
vetb00061 AS x2 ON a.ventas = x2.ventas AND
|
|
k.ventas = x2.ventas INNER JOIN
|
|
iptb00022 AS x3 INNER JOIN
|
|
iptb00002 AS x9 ON x3.cod_cia = x9.cod_cia ON
|
|
x5.cod_n = x9.cod_n AND x5.cod_grupo = x9.cod_grupo AND x5.cod_tipo = x9.cod_tipo AND
|
|
x5.cod_sec = x9.cod_sec ON x4.cod_n = x5.cod_n INNER JOIN
|
|
mestable AS x7 INNER JOIN
|
|
prdtable AS x6 ON x7.mes = x6.mes ON a.mes = x6.mes ON
|
|
f.num_doc = h.num_doc AND f.tipo_doc = h.tipo_doc
|
|
WHERE (x0.num_doc = x0.num_doc) AND (h.status_t IS NULL) AND
|
|
(k.fecha_factura >= '01/01/2010') AND
|
|
(h.tipo_doc = 'NC') AND (h.fecha_orig BETWEEN
|
|
x6.fecha_inicio AND x6.fecha_corte) AND (x0.cod_mov IN (12, 13)) AND
|
|
(x6.ano > '2008') AND (x0.status_t IS NULL) AND (x6.ano = 2010) #and x6.mes = 12
|
|
GROUP BY x0.cod_cia, x1.nombre, x2.descripcion, x3.descripcion, x4.producto, x0.fact_no, x0.fecha, x6.mes, x6.ano, x7.descrip, x8.nombre, x8.num_rnc, k.orden,
|
|
x10.nom1_emp, x10.apell1_emp, x5.cod_n, x5.cod_grupo, x5.cod_tipo, x5.cod_sec, x9.descrip_esp, x9.unidad_med, a.tasa, x0.num_doc, x0.cod_mov,
|
|
x8.tipo_cliente, x8.sec_cliente, x10.num_emp, h.num_doc
|
|
|
|
|
|
UPDATE ptventasgral SET costostd = (select AVG(a.material+a.labor+a.gastos) from iptb00004 a
|
|
WHERE a.ano = 2010 and ptventasgral.cod_n = a.cod_n and ptventasgral.cod_grupo = a.cod_grupo and
|
|
ptventasgral.cod_tipo = a.cod_tipo and ptventasgral.cod_Sec = a.cod_Sec and a.status_t is null)
|
|
WHERE ano = 2010 and (costostd = 0 OR costostd IS NULL) and tipotransaccion in('DEVOLUCIONES','VEMTAS') and fecha >= '01/01/2010'
|
|
|
|
UPDATE ptventasgral SET valorcosto = cantidad * costostd WHERE ano = 2010 and tipotransaccion = 'DEVOLUCIONES' AND fecha >= '01/01/2010'
|
|
|
|
UPDATE ptventasgral SET itbis = 0 WHERE itbis IS NULL AND ano = 2010 #and numero_mes =12
|
|
|
|
SELECT a.itbi iNTO pitbis FROM vetb00019 a WHERE a.disponible = 'S'
|
|
|
|
# RECALCULA EL VALOR BRUTO DE LA DEVOLUCION
|
|
UPDATE ptventasgral SET valor_bruto = cantidad*precio
|
|
WHERE tipotransaccion = 'DEVOLUCIONES' AND ano = 2010 #and numero_mes =12
|
|
|
|
|
|
UPDATE ptventasgral SET ITBIS = (valor_bruto - descuento) * (pitbis/100),
|
|
porc_itbi = pitbis
|
|
WHERE tipotransaccion = 'DEVOLUCIONES' AND ano = 2010 #and numero_mes=12
|
|
|
|
and documentocxc in (SELECT DISTINCT num_Doc FROM cctb00001
|
|
WHERE tipo_Doc = 'NC' and status_t IS NULL AND
|
|
fecha_orig > '01/01/2010' and valor_efectivo > 0)
|
|
|
|
UPDATE ptventasgral SET NETO = (valor_bruto - descuento) + ITBIS,
|
|
valorRD = valor_bruto * tasa,
|
|
descuentoRD = descuento * tasa,
|
|
itbisrd = itbis * tasa
|
|
WHERE ano = 2010 #and numero_mes =12
|
|
|
|
|
|
UPDATE ptventasgral SET margen = valorRD - valorcosto where ano = 2010 and
|
|
tipotransaccion = "VENTAS" #and numero_mes =12
|
|
|
|
UPDATE ptventasgral SET NETOrd = neto * tasa WHERE ano = 2010 #and numero_mes =12
|
|
UPDATE ptventasgral SET descrip_p = "CONTADO" where cond_pago = 1 and ano = 2010 #and numero_mes =12
|
|
UPDATE ptventasgral SET descrip_p = "CREDITO" where cond_pago > 1 AND ano = 2010 #and numero_mes =12
|
|
|
|
|
|
END FUNCTION |