Files
MBS/PROYECTO/vedir/veprrp035.4gl
T

460 lines
16 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : VEPRRP035
OBJETIVO : ESTRATIFICACION DE VENTAS POR TIPO DE DESCUENTOS
PROGRAMADOR : Juan F. Soto
FECHA REALIZACION : Junio 2, 1997.
-------------------------------------------------------------------------------
}
GLOBALS "veprgb000.4gl"
DEFINE fecha1,fecha2 DATE
DEFINE salir CHAR(1),
mes12,mes2 SMALLINT,
anon,tipo_pila SMALLINT,
fecha DATE,
sneto,spierde DECIMAL(12,2)
FUNCTION veprrp035()
DEFINE codigo CHAR(7),
c_desc DECIMAL(8,2),
bruto,valor,monto_desc,neto,gana_pierde DECIMAL(12,2),
costo DECIMAL(8,4)
DEFINE prt_datos RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER,
precio DECIMAL(8,2),
porc_desc DECIMAL(8,2),
nomen CHAR(1)
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM vefmrp035 FROM "vefmrp035"
DISPLAY FORM vefmrp035
CALL pantalla()
DISPLAY "veprrp035" AT 4,3
DISPLAY "Estratificaion De Ventas Por Tipo De Descuentos" AT 6,17
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
INPUT BY NAME tipo_pila,anon,mes2
AFTER FIELD mes2
SELECT fecha_corte INTO fecha1
FROM prdtable
WHERE mes = mes2 AND ano = anon
AFTER INPUT
EXIT INPUT
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET numero_msg = FALSE
RETURN
END IF
DISPLAY "Buscando Informacion... Espere Por Favor " AT 19,14
DECLARE busca CURSOR FOR
SELECT b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,SUM(b.cantidad),
AVG(b.precio),c.porc_desc ," "
FROM prdtable a,vetb00003 b,vetb00002 c
WHERE a.mes = mes2 AND a.ano = anon AND (c.cod_cia = tipo_pila) AND
(c.ventas = "1") AND (b.factura = c.factura )
AND (c.fecha_factura BETWEEN a.fecha_inicio AND a.fecha_corte)
AND c.status_t IS NULL
GROUP BY 1,2,3,4,7,8
START REPORT reporte_35 TO "C:\\archivo"
START REPORT reporte_a35 TO "C:\\archivo"
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
FOREACH BUSCA INTO prt_datos.*
LET bruto = 0
LET monto_desc = 0
LET neto = 0
LET valor = 0
LET gana_pierde = 0
LET costo = 0
LET codigo = prt_datos.nomen CLIPPED
IF tipo_pila = 1 THEN
SELECT MAX(a.fecha_lq) INTO fecha
FROM cttb00036 a
WHERE a.fecha_lq <= fecha1 AND
a.ventas = 1 AND
a.cod_n = prt_datos.cod_n AND
a.cod_grupo = prt_datos.cod_grupo AND
a.cod_tipo = prt_datos.cod_tipo AND
a.cod_sec = prt_datos.cod_sec
SELECT UNIQUE a.costo_lq INTO costo
FROM cttb00036 a
WHERE a.ventas = 1 AND
a.cod_n = prt_datos.cod_n AND
a.cod_grupo = prt_datos.cod_grupo AND
a.cod_tipo = prt_datos.cod_tipo AND
a.cod_sec = prt_datos.cod_sec AND
a.fecha_lq = fecha
ELSE
SELECT MAX(a.fecha_lq) INTO fecha
FROM cttb00013 a
WHERE a.fecha_lq <= fecha1 AND
a.cod_n = prt_datos.cod_n AND
a.cod_grupo = prt_datos.cod_grupo AND
a.cod_tipo = prt_datos.cod_tipo AND
a.cod_sec = prt_datos.cod_sec
SELECT AVG(a.costo_lq) INTO costo
FROM cttb00013 a
WHERE a.cod_n = prt_datos.cod_n AND
a.cod_grupo = prt_datos.cod_grupo AND
a.cod_tipo = prt_datos.cod_tipo AND
a.cod_sec = prt_datos.cod_sec AND
a.fecha_lq = fecha
END IF
LET c_desc = prt_datos.porc_desc
LET bruto = prt_Datos.cantidad * prt_Datos.precio
LET monto_desc = bruto * (prt_datos.porc_desc/100)
LET neto = bruto - monto_desc
LET valor = prt_datos.cantidad * costo
LET gana_pierde = neto - valor
OUTPUT TO REPORT reporte_35(prt_datos.*,codigo,c_desc,bruto,
monto_desc,neto,valor,costo,gana_pierde)
OUTPUT TO REPORT reporte_a35(prt_datos.*,codigo,c_desc,bruto,
monto_desc,neto,valor,costo,gana_pierde)
END FOREACH
FINISH REPORT reporte_35
FINISH REPORT reporte_a35
CLEAR SCREEN
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_35(x,x_codigo,x_desc,xbruto,xmonto_desc,xneto,xvalor,xcosto,
xgana_pierde)
DEFINE x RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER,
precio DECIMAL(8,2),
porc_desc DECIMAL(8,2),
nomen CHAR(1)
END RECORD,
xbruto,xvalor,xmonto_desc,xneto,xgana_pierde DECIMAL(12,2),
xcosto DECIMAL(8,4)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5),
nombre_pto CHAR(30),
x_codigo CHAR(7),
x_desc DECIMAL(8,2),
nombre_mes1,nombre_mes2 CHAR(15)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 5
BOTTOM MARGIN 2
ORDER BY x_codigo,x_Desc
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 18
LET hora = time
SELECT descrip INTO nombre_mes2
FROM mestable
WHERE mes = mes2
LET lj = (165 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT comp_on,negrillas_on
PRINT COLUMN 1, "veprrp035",
COLUMN lj, p_companias.nombre CLIPPED,
COLUMN 158, "Pag. ",pageno using "###"
PRINT COLUMN 60, " Sistema de Ventas ",
COLUMN 158, today using "dd/mm/yy"
PRINT COLUMN 58, "ESTRATIFICACION DE VENTAS POR TIPOS DE DESCUENTOS",
COLUMN 161, hora
PRINT COLUMN 1, "Al Mes De ",nombre_mes2 CLIPPED,
" DEL ",anon USING "####"
SKIP 1 LINES
IF tipo_pila = 1 THEN
PRINT COLUMN 1, "Productos Locales"
ELSE
PRINT COLUMN 1, "Productos Compra Y Venta"
END IF
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"------------------------------------"
PRINT COLUMN 66, "Precio",
COLUMN 93, "Valor",
COLUMN 116, "Monto",
COLUMN 132, "Valor",
COLUMN 143, "Ultimo",
COLUMN 158, "Valor",
COLUMN 171, "Ganancia O"
PRINT COLUMN 1, " ARTICULOS ",
COLUMN 50, "Cantidad",
COLUMN 66, "Unitario",
COLUMN 93, "Bruto",
COLUMN 100, "% Desc.",
COLUMN 116, "Desc.",
COLUMN 132, "Neto",
COLUMN 143, "Costo",
COLUMN 158, "Costeo",
COLUMN 171, "Perdida"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"------------------------------------"
PRINT negrillas_off
ON EVERY ROW
SELECT a.descrip_esp INTO nombre_pto
FROM iptb00002 a
WHERE a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND
a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec
PRINT COLUMN 1, x.cod_n USING "&","-",
x.cod_grupo USING "&","-",
x.cod_tipo USING "&&","-",
x.cod_sec USING "&&&"," ",
nombre_pto,
COLUMN 45, x.cantidad USING "##,###,###.##",
COLUMN 65, x.precio USING "##,###.##",
COLUMN 85, xbruto USING "##,###,###.##",
COLUMN 100, x.porc_desc USING "###.##%",
COLUMN 110, xmonto_desc USING "##,###,###.##",
COLUMN 125, xneto USING "##,###,###.##",
COLUMN 135, xcosto USING "#,###.####",
COLUMN 150, xvalor USING "##,###,###.##",
COLUMN 165, xgana_pierde USING "(((,(((,(##.##)"
AFTER GROUP OF x_desc
PRINT negrillas_on
PRINT COLUMN 1, "SUB-TOTAL DESCUENTO ",
COLUMN 45, GROUP SUM(x.cantidad) USING "##,###,###.##",
COLUMN 85, GROUP SUM(xbruto) USING "##,###,###.##",
COLUMN 110, GROUP SUM(xmonto_desc) USING "##,###,###.##",
COLUMN 125, GROUP SUM(xneto) USING "##,###,###.##",
#COLUMN 135, GROUP SUM(xcosto) USING "#,###.####",
COLUMN 150, GROUP SUM(xvalor) USING "##,###,###.##",
COLUMN 165, GROUP SUM(xgana_pierde) USING "(((,(((,(##.##)"
PRINT negrillas_off
AFTER GROUP OF x_codigo
PRINT negrillas_on
PRINT COLUMN 1, "TOTAL ",x.nomen,
COLUMN 45, GROUP SUM(x.cantidad) USING "##,###,###.##",
#COLUMN 65, x.precio USING "##,###.##",
COLUMN 85, GROUP SUM(xbruto) USING "##,###,###.##",
#COLUMN 100, x.porc_desc USING "###.##%",
COLUMN 110, GROUP SUM(xmonto_desc) USING "##,###,###.##",
COLUMN 125, GROUP SUM(xneto) USING "##,###,###.##",
COLUMN 150, GROUP SUM(xvalor) USING "##,###,###.##",
COLUMN 165, GROUP SUM(xgana_pierde) USING "(((,(((,(##.##)"
PRINT negrillas_off
ON LAST ROW
PRINT negrillas_on
LET sneto = SUM(xneto)
LET spierde = SUM(xgana_pierde)
PRINT COLUMN 1, "TOTAL GENERAL ",
COLUMN 45, SUM(x.cantidad) USING "##,###,###.##",
COLUMN 85, SUM(xbruto) USING "##,###,###.##",
COLUMN 110, SUM(xmonto_desc) USING "##,###,###.##",
COLUMN 125, SUM(xneto) USING "##,###,###.##",
COLUMN 150, SUM(xvalor) USING "##,###,###.##",
COLUMN 165, SUM(xgana_pierde) USING "(((,(((,(##.##)"
PRINT negrillas_off
END REPORT
REPORT reporte_a35(x,x_codigo,x_desc,xbruto,xmonto_desc,xneto,xvalor,xcosto,
xgana_pierde)
DEFINE x RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad INTEGER,
precio DECIMAL(8,2),
porc_desc DECIMAL(8,2),
nomen CHAR(1)
END RECORD,
xbruto,xvalor,xmonto_desc,xneto,xgana_pierde DECIMAL(12,2),
xcosto DECIMAL(8,4)
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(2)
DEFINE hora CHAR(5),
nombre_pto CHAR(30),
x_codigo CHAR(7),
x_desc DECIMAL(8,2),
nombre_mes1,nombre_mes2 CHAR(15)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 5
BOTTOM MARGIN 2
ORDER BY x_Desc
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 18
LET hora = time
SELECT descrip INTO nombre_mes2
FROM mestable
WHERE mes = mes2
PRINT comp_on,negrillas_on
PRINT COLUMN 1, "veprrp035",
COLUMN 60, "E L E C T R O D O M E S T I C O S J U V I A R",
COLUMN 158, "Pag. ",pageno using "###"
PRINT COLUMN 60, " Sistema de Ventas ",
COLUMN 158, today using "dd/mm/yy"
PRINT COLUMN 58, "ESTRATIFICACION DE VENTAS POR TIPOS DE DESCUENTOS",
COLUMN 161, hora
PRINT COLUMN 1, "Al Mes De ",nombre_mes2 CLIPPED,
" DEL ",anon USING "####"
SKIP 1 LINES
IF tipo_pila = 1 THEN
PRINT COLUMN 1, "Productos Locales"
ELSE
PRINT COLUMN 1, "Productos Compra Y Venta"
END IF
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"---------------------------------------------------"
PRINT COLUMN 66, "Precio",
COLUMN 83, "Valor",
COLUMN 106, "Monto",
COLUMN 122, "Valor",
COLUMN 137, "Porc.",
COLUMN 157, "Valor",
COLUMN 171, "Ganancia O",
COLUMN 185, "Porc",
COLUMN 194, "Porc"
PRINT COLUMN 1, " DESCUENTOS",
COLUMN 50, "Cantidad",
COLUMN 66, "Unitario",
COLUMN 83, "Bruto",
COLUMN 106, "Desc.",
COLUMN 122, "Neto",
COLUMN 137, "Neto",
COLUMN 157, "Costeo",
COLUMN 171, "Perdida",
COLUMN 185, "G o P",
COLUMN 194, "G. Total"
PRINT COLUMN 1, "--------------------------------------------------",
"--------------------------------------------------",
"---------------------------------------------------",
"---------------------------------------------------"
PRINT negrillas_off
AFTER GROUP OF x_desc
PRINT negrillas_on
PRINT COLUMN 1, x_desc CLIPPED,"%",
COLUMN 45, GROUP SUM(x.cantidad) USING "##,###,###.##",
COLUMN 75, GROUP SUM(xbruto) USING "##,###,###.##",
COLUMN 100, GROUP SUM(xmonto_desc) USING "##,###,###.##",
COLUMN 115, GROUP SUM(xneto) USING "##,###,###.##",
COLUMN 135, (GROUP SUM(xneto)/sneto) * 100 USING "###.##%",
COLUMN 150, GROUP SUM(xvalor) USING "##,###,###.##",
COLUMN 165, GROUP SUM(xgana_pierde) USING "(((,(((,(##.##)",
COLUMN 183, (GROUP SUM(xgana_pierde) /spierde) * 100
USING "((((.##%)" ,
COLUMN 193, (GROUP SUM(xgana_pierde)/ GROUP SUM(xneto))
*100 USING "((((.##%)"
PRINT negrillas_off
ON LAST ROW
PRINT negrillas_on
PRINT COLUMN 45, "-------------",
COLUMN 75, "-------------",
COLUMN 100, "-------------",
COLUMN 115, "-------------",
COLUMN 134, "-------",
COLUMN 150, "-------------",
COLUMN 165, "---------------",
COLUMN 182, "---------"
PRINT COLUMN 1, "TOTAL GENERAL ",
COLUMN 45, SUM(x.cantidad) USING "##,###,###.##",
COLUMN 75, SUM(xbruto) USING "##,###,###.##",
COLUMN 100, SUM(xmonto_desc) USING "##,###,###.##",
COLUMN 115, SUM(xneto) USING "##,###,###.##",
COLUMN 134, (SUM(xneto)/sneto) * 100 USING "###.##%",
COLUMN 150, SUM(xvalor) USING "##,###,###.##",
COLUMN 165, SUM(xgana_pierde) USING "(((,(((,(##.##)",
COLUMN 182, (SUM(xgana_pierde) /spierde) * 100
USING "((((.##%)"
PRINT COLUMN 45, "=============",
COLUMN 75, "=============",
COLUMN 100, "=============",
COLUMN 115, "=============",
COLUMN 134, "=======",
COLUMN 150, "=============",
COLUMN 165, "===============",
COLUMN 182, "========="
PRINT negrillas_off
END REPORT