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

269 lines
13 KiB
Plaintext

{
PROGRAMA: veprrp057
OBJETIVO: Generar las ventas mensuales panoramica
DESARROLLADO POR: ING. JUAN SOTO
FECHA DESARROLLO: JUNIO, 29, 2022
}
GLOBALS
"veprgb000.4gl"
DEFINE pano,pmes INT,
xventas RECORD LIKE ventas_facturas.*,
mventas RECORD
producto VARCHAR(30),
enero,enero_pre,febrero,feb_pre,
marzo,mar_pre,abril,abr_pre,
mayo,may_pre, junio,jun_pre,
julio,jul_pre,agosto,agost_pre,
septiembre,sept_pre,octubre,oct_pre,
noviembre,nov_pre, diciembre,dic_pre,
total DEC(12,2)
END RECORD,
tventas RECORD
producto VARCHAR(30),
enero,enero_pre,febrero,feb_pre,
marzo,mar_pre,abril,abr_pre,
mayo,may_pre, junio,jun_pre,
julio,jul_pre,agosto,agost_pre,
septiembre,sept_pre,octubre,oct_pre,
noviembre,nov_pre, diciembre,dic_pre,
total DEC(12,2)
END RECORD,
toventas RECORD
producto VARCHAR(30),
enero,enero_pre,febrero,feb_pre,
marzo,mar_pre,abril,abr_pre,
mayo,may_pre, junio,jun_pre,
julio,jul_pre,agosto,agost_pre,
septiembre,sept_pre,octubre,oct_pre,
noviembre,nov_pre, diciembre,dic_pre,
total DEC(12,2)
END RECORD,
oventas RECORD
producto VARCHAR(30),
enero,enero_pre,febrero,feb_pre,
marzo,mar_pre,abril,abr_pre,
mayo,may_pre, junio,jun_pre,
julio,jul_pre,agosto,agost_pre,
septiembre,sept_pre,octubre,oct_pre,
noviembre,nov_pre, diciembre,dic_pre,
total DEC(12,2)
END RECORD,
representa 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 AND
a.gerentemarcas = 'SI'
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 veprrp057()
END MAIN
FUNCTION veprrp057()
DEFINE dataidx,dataidx1,dataidx2 VARCHAR(30)
OPEN WINDOW w1 WITH FORM 'vefmrp057'
INPUT BY NAME pano,pmes
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
DECLARE buscar CURSOR FOR
SELECT a.* FROM ventas_facturas a,seg0001 b
WHERE a.ano = pano AND a.numero_mes <= pmes and
a.num_emp = b.num_emp
ORDER BY a.origen,a.clase,a.tipo,a.numero_mes
LET idx = 1
LET r_filename = 'veprrp057.4rp'
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
OUTPUT TO REPORT pventas(dataidx,dataidx1,dataidx2)
END FOREACH
IF idx > 1 THEN
FINISH REPORT pventas
END IF
END INPUT
END FUNCTION
REPORT pventas(rindex,rindex1,rindex2)
DEFINE rindex,rindex1,rindex2 VARCHAR(30)
FORMAT
PAGE HEADER
SELECT * INTO p_companias.* FROM companias
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.enero_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1
LET oventas.feb_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2
LET oventas.mar_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3
LET oventas.abr_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4
LET oventas.may_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5
LET oventas.jun_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6
LET oventas.jul_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7
LET oventas.agost_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8
LET oventas.sept_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9
LET oventas.oct_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10
LET oventas.nov_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11
LET oventas.dic_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12
PRINTX oventas.*,p_companias.nombre,representa,pano
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.enero_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1
LET mventas.feb_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2
LET mventas.mar_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3
LET mventas.abr_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4
LET mventas.may_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5
LET mventas.jun_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6
LET mventas.jul_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7
LET mventas.agost_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8
LET mventas.sept_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9
LET mventas.oct_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10
LET mventas.nov_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11
LET mventas.dic_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12
PRINTX mventas.*
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.enero_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1
LET tventas.feb_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2
LET tventas.mar_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3
LET tventas.abr_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4
LET tventas.may_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5
LET tventas.jun_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6
LET tventas.jul_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7
LET tventas.agost_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8
LET tventas.sept_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9
LET tventas.oct_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10
LET tventas.nov_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11
LET tventas.dic_pre = GROUP SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12
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)
LET toventas.enero_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 1
LET toventas.feb_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 2
LET toventas.mar_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 3
LET toventas.abr_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 4
LET toventas.may_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 5
LET toventas.jun_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 6
LET toventas.jul_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 7
LET toventas.agost_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 8
LET toventas.sept_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 9
LET toventas.oct_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 10
LET toventas.nov_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 11
LET toventas.dic_pre = SUM(xventas.presupuesto) WHERE xventas.numero_mes = 12
LET toventas.total = SUM(xventas.presupuesto)
PRINTX toventas.*
END REPORT