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

533 lines
20 KiB
Plaintext

{
PROGRAMA: veprrp057
OBJETIVO: Generar las ventas mensuales panoramica (Gerentes Marcas)
DESARROLLADO POR: ING. JUAN SOTO
FECHA DESARROLLO: JUNIO, 29, 2022
}
GLOBALS "veprgb000.4gl"
DEFINE
pano, pmes INT,
xventas RECORD
origen VARCHAR(20),
clase VARCHAR(30),
grupo VARCHAR(30),
tipo VARCHAR(30),
numero_mes SMALLINT,
neto DEC(12, 2),
presupuesto DEC(12, 2)
END RECORD,
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,
gventas 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, 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
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, dataidx4 VARCHAR(30)
OPEN WINDOW w1 WITH FORM 'vefmrp057'
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
DECLARE buscar CURSOR FOR
SELECT a.origen,
a.clase,
a.grupo,
a.tipo,
a.numero_mes,
SUM(a.neto),
SUM(a.presupuesto)
FROM ventas_facturas a, seg0001 b
WHERE a.ano = pano
AND a.numero_mes <= pmes
AND a.num_emp = b.num_emp
AND b.usuario = usuarios
GROUP BY a.origen, a.clase, a.grupo, a.tipo, a.numero_mes
ORDER BY a.origen, a.clase, a.grupo, a.tipo, a.numero_mes
LET idx = 1
IF tiporeporte = 'DETALLADO' THEN
LET r_filename = 'veprrp057.4rp'
ELSE
LET r_filename = 'veprrp057_a.4rp'
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
IF r_output = 'XLSX' THEN
CALL fgl_report_configurexlsxdevice(
NULL, NULL, NULL, FALSE, FALSE, NULL, 1)
END IF
LET handler =
fgl_report_commitCurrentSettings() -- commit changes
START REPORT pventas TO XML HANDLER HANDLER
ELSE
EXIT FOREACH
END IF
END IF
LET dataidx2 = xventas.origen
# LET dataidx2 ='TODOS LOS ORIGENES'
LET dataidx = xventas.clase
LET dataidx4 = xventas.grupo
LET dataidx1 = xventas.tipo
OUTPUT TO REPORT pventas(dataidx, dataidx1, dataidx2, dataidx4)
END FOREACH
IF idx > 1 THEN
FINISH REPORT pventas
END IF
END INPUT
END FUNCTION
REPORT pventas(rindex, rindex1, rindex2, rindex4)
DEFINE rindex, rindex1, rindex2, hora, rindex4 VARCHAR(30)
FORMAT
FIRST PAGE HEADER
SELECT * INTO p_companias.* FROM companias
LET hora = CURRENT
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)
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,
hora,
r_output
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)
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 rindex4
LET gventas.producto = rindex4
LET gventas.enero =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 1
LET gventas.febrero =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 2
LET gventas.marzo =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 3
LET gventas.abril =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 4
LET gventas.mayo =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 5
LET gventas.junio =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 6
LET gventas.julio =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 7
LET gventas.agosto =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 8
LET gventas.septiembre =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 9
LET gventas.octubre =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 10
LET gventas.noviembre =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 11
LET gventas.diciembre =
GROUP SUM(xventas.neto) WHERE xventas.numero_mes = 12
LET gventas.total = GROUP SUM(xventas.neto)
PRINTX gventas.*
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)
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
PRINTX toventas.*
END REPORT