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

386 lines
17 KiB
Plaintext

{
PROGRAMA: veprrp058
OBJETIVO: Generar las ventas mensuales panoramica (Vendedores)
DESARROLLADO POR: ING. JUAN SOTO
FECHA DESARROLLO: JULIO, 12, 2022
}
GLOBALS
"veprgb000.4gl"
DEFINE pano,pmes INT,
xventas RECORD LIKE ventas_facturas.*,
mventas RECORD
producto VARCHAR(30),
enero,febrero,
marzo,abril,
mayo,junio,
julio,agosto,
septiembre,octubre,
noviembre,diciembre,
total DEC(12,2)
END RECORD,
tventas RECORD
producto VARCHAR(30),
enero,febrero,
marzo,abril,
mayo,junio,
julio,agosto,
septiembre,octubre,
noviembre,diciembre,
total DEC(12,2)
END RECORD,
toventas RECORD
producto VARCHAR(30),
enero,febrero,
marzo,abril,
mayo,junio,
julio,agosto,
septiembre,octubre,
noviembre,diciembre,
total DEC(12,2)
END RECORD,
oventas RECORD
producto VARCHAR(30),
enero,febrero,
marzo,abril,
mayo,junio,
julio,agosto,
septiembre,octubre,
noviembre,diciembre,
total DEC(12,2)
END RECORD,
Vventas RECORD
producto VARCHAR(30),
enero,febrero,
marzo,abril,
mayo,junio,
julio,agosto,
septiembre,octubre,
noviembre,diciembre,
total DEC(12,2)
END RECORD,
representa,tiporeporte VARCHAR(100)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "smarmotech" USER usuarios USING clave
SELECT DISTINCT RTRIM(a.nom1_emp)+' '+RTRIM(a.apell1_emp) INTO representa FROM adtb00003 a,seg0001 b
WHERE a.num_emp = b.num_emp AND
b.usuario = usuarios
IF STATUS = NOTFOUND THEN
CALL fgl_winmessage("INFO","USTED NO ES GERENTE DE MARCAS, NO PUEDE GENERAR ESTE INFORME","INFO")
EXIT PROGRAM
END IF
CALL veprrp058()
END MAIN
FUNCTION veprrp058()
DEFINE dataidx,dataidx1,dataidx2,dataidx3 VARCHAR(100)
OPEN WINDOW w1 WITH FORM 'vefmrp059'
INPUT BY NAME pano,pmes,tiporeporte
BEFORE INPUT
CALL combomes("formonly.pmes")
LET pano = YEAR(TODAY)
LET pmes = MONTH(TODAY)
DISPLAY BY NAME pano,pmes,representa
AFTER INPUT
IF int_flag THEN
LET int_flag = FALSE
EXIT PROGRAM
END IF
IF pano IS NULL THEN
CALL msg(16)
NEXT FIELD pano
END IF
IF pmes IS NULL THEN
CALL msg(16)
NEXT FIELD pmes
END IF
IF tiporeporte <> "EQUIPO" THEN
DECLARE buscar CURSOR FOR
SELECT a.* FROM ventas_facturas a,seg0007 b
WHERE a.ano = pano AND a.numero_mes <= pmes AND
a.codigovendedor = b.sec_vend AND
b.usuario = usuarios
ORDER BY a.codigoVendedor,a.origen,a.clase,a.tipo,a.numero_mes
LET idx = 1
IF tiporeporte = 'DETALLADO' THEN
LET r_filename = 'veprrp059.4rp'
ELSE
IF tiporeporte = "RESUMIDO" THEN
LET r_filename = 'veprrp059_a.4rp'
END IF
END IF
FOREACH buscar INTO xventas.*
IF idx = 1 THEN
IF fgl_report_loadCurrentSettings(r_filename) THEN
LET idx = idx + 1
LET preview=1
CALL seleccionarsalida() RETURNING r_output -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
START REPORT pventas TO XML HANDLER HANDLER
ELSE
EXIT FOREACH
END IF
END IF
LET dataidx = xventas.clase
LET dataidx1 = xventas.tipo
LET dataidx2 = xventas.origen
LET dataidx3 = xventas.vendedor
OUTPUT TO REPORT pventas(dataidx,dataidx1,dataidx2,dataidx3)
END FOREACH
END IF
IF tiporeporte = "EQUIPO" THEN
DECLARE buscar1 CURSOR FOR
SELECT a.* FROM ventas_facturas a,seg0007 b
WHERE a.ano = pano AND a.numero_mes <= pmes AND
a.codigovendedor = b.sec_vend AND
b.usuario = usuarios
ORDER BY a.equipoventas,a.origen, a.clase,a.numero_mes
LET idx = 1
LET r_filename = 'veprrp059_b.4rp'
FOREACH buscar1 INTO xventas.*
IF idx = 1 THEN
IF fgl_report_loadCurrentSettings(r_filename) THEN
LET idx = idx + 1
LET preview=1
CALL seleccionarsalida() RETURNING r_output -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
START REPORT pventas1 TO XML HANDLER HANDLER
ELSE
EXIT FOREACH
END IF
END IF
LET dataidx = xventas.clase
LET dataidx2 = xventas.origen
LET dataidx3 = "(",xventas.equipo_id USING "<<<",")", xventas.equipoventas CLIPPED
OUTPUT TO REPORT pventas1(dataidx,dataidx2,dataidx3)
END FOREACH
END IF
IF idx > 1 THEN
IF tiporeporte <> "EQUIPO" THEN
FINISH REPORT pventas
ELSE
FINISH REPORT pventas1
END IF
ELSE
CALL fgl_winmessage("INFO","NO GENERE INFORMACION","INFO")
END IF
END INPUT
END FUNCTION
REPORT pventas(rindex,rindex1,rindex2,rindex3)
DEFINE rindex,rindex1,rindex2,rindex3, hora VARCHAR(100)
FORMAT
FIRST PAGE HEADER
SELECT * INTO p_companias.* FROM companias
LET hora = CURRENT
AFTER GROUP OF rindex3
LET vventas.producto = rindex3
LET vventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET vventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET vventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET vventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET vventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET vventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET vventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET vventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET vventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET vventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET vventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET vventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET vventas.total = GROUP SUM(xventas.neto)
PRINTX vventas.*,hora
AFTER GROUP OF rindex2
LET oventas.producto = rindex2
LET oventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET oventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET oventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET oventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET oventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET oventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET oventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET oventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET oventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET oventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET oventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET oventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET oventas.total = GROUP SUM(xventas.neto)
PRINTX oventas.*
AFTER GROUP OF rindex
LET mventas.producto = rindex
LET mventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET mventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET mventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET mventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET mventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET mventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET mventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET mventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET mventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET mventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET mventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET mventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET mventas.total = GROUP SUM(xventas.neto)
PRINTX mventas.*,p_companias.nombre,representa,pano
AFTER GROUP OF rindex1
LET tventas.producto = rindex1
LET tventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET tventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET tventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET tventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET tventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET tventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET tventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET tventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET tventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET tventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET tventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET tventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET tventas.total = GROUP SUM(xventas.neto)
PRINTX tventas.*
ON LAST ROW
LET toventas.producto = "TOTAL"
LET toventas.enero = SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET toventas.febrero = SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET toventas.marzo = SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET toventas.abril = SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET toventas.mayo = SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET toventas.junio = SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET toventas.julio = SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET toventas.agosto = SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET toventas.septiembre = SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET toventas.octubre = SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET toventas.noviembre = SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET toventas.diciembre = SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET toventas.total = SUM(xventas.neto)
PRINTX toventas.*
END REPORT
REPORT pventas1(rindex,rindex2,rindex3)
DEFINE rindex,rindex2, rindex3, hora VARCHAR(100),
xmes int
#ORDER BY rindex3,rindex,xmes
FORMAT
FIRST PAGE HEADER
SELECT * INTO p_companias.* FROM companias
LET hora = CURRENT
AFTER GROUP OF rindex3
LET vventas.producto = rindex3
LET vventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET vventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET vventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET vventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET vventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET vventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET vventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET vventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET vventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET vventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET vventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET vventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET vventas.total = GROUP SUM(xventas.neto)
PRINTX vventas.*,hora
AFTER GROUP OF rindex2
LET oventas.producto = rindex2
LET oventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET oventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET oventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET oventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET oventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET oventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET oventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET oventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET oventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET oventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET oventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET oventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET oventas.total = GROUP SUM(xventas.neto)
PRINTX oventas.*
AFTER GROUP OF rindex
LET mventas.producto = rindex
LET mventas.enero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET mventas.febrero = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET mventas.marzo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET mventas.abril = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET mventas.mayo = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET mventas.junio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET mventas.julio = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET mventas.agosto = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET mventas.septiembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET mventas.octubre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET mventas.noviembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET mventas.diciembre = GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET mventas.total = GROUP SUM(xventas.neto)
PRINTX mventas.*,p_companias.nombre,representa,pano
ON LAST ROW
LET toventas.producto = "TOTAL"
LET toventas.enero = SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET toventas.febrero = SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET toventas.marzo = SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET toventas.abril = SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET toventas.mayo = SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET toventas.junio = SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET toventas.julio = SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET toventas.agosto = SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET toventas.septiembre = SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET toventas.octubre = SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET toventas.noviembre = SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET toventas.diciembre = SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET toventas.total = SUM(xventas.neto)
PRINTX toventas.*
END REPORT