533 lines
20 KiB
Plaintext
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
|