{ 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