Files
MBS/PROYECTO/ccdir/emailcobros_1.4gl
T

150 lines
5.2 KiB
Plaintext

{
PROGRAMA: EMAILCOBROS1
OBJETIVO: GENERAR REPORTE PARA EL ENVIO DE CORREO DE LOS COBROS A LOS GERENTES VENTAS
PROGRAMADOR: ING. JUAN SOTO
FECHA : 3/22/2018
}
GLOBALS
DEFINE usuarios,clave STRING,
gerente,nombre_file VARCHAR(50),
fecha1,fecha2,fecha3,fecha4 DATE
END GLOBALS
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING gerente
CALL ARG_VAL(4) RETURNING nombre_file
CALL STARTLOG("emailcorreo1.TXT")
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
CALL emailcorreo()
END MAIN
FUNCTION emailcorreo()
DEFINE HANDLER om.SaxDocumentHandler,
archivo STRING,
xmes CHAR(20),
mes_act,ano_act,ano_ant,xnumero_mes smallint,
xtipoCobro varchar(20),
xVendedor,nombre_empresa,xnombre_gerente varchar(80),
Xvalor_orig, XvalorRd,xvalorRd_ant DEC(12,2),
Xsimbolo varchar(10)
SELECT a.nombre INTO nombre_empresa FROM companias a WHERE cod_comp = 1
DISPLAY "empresa ",nombre_empresa
LET ano_act = YEAR(TODAY)
LET ano_ant = YEAR(TODAY)-1
LET mes_act = MONTH(TODAY)
LET xnumero_mes = mes_act
SELECT descrip INTO xmes FROM mestable WHERE mes=mes_act
IF mes_act = 1 THEN
SELECT a.fecha_inicio,a.fecha_corte INTO fecha3,fecha4 FROM prdtable a
WHERE a.ano = ano_ant AND a.mes = 12
ELSE
SELECT a.fecha_inicio,a.fecha_corte INTO fecha3,fecha4 FROM prdtable a
WHERE a.ano = ano_act AND a.mes = mes_act -1
END IF
SELECT a.fecha_inicio,a.fecha_corte INTO fecha1,fecha2 FROM prdtable a
WHERE a.ano = ano_act AND a.mes = mes_act
DISPLAY "fechas ",fecha1," ",fecha2
DISPLAY "gerente ",gerente
LET archivo = "emailcobros_1.4rp"
DECLARE informacion CURSOR FOR
SELECT a.tipoCobro ,ISNULL(RTRIM(a.primerNombre),1 ) + " "+ISNULL(RTRIM(a.PrimerApellido)," "),
SUM(a.Valor),SUM(a.ValorRD),'0',a.simbolo,c.nombre
from vwcobros a,seg0007 b,seg0000 c where a.fecha_orig BETWEEN fecha1 AND fecha2 AND
a.cod_emp_Sec =b.sec_vend AND b.usuario = gerente AND
b.usuario = c.usuario
GROUP BY a.tipoCobro,a.primerNombre,a.PrimerApellido,a.simbolo,c.nombre
UNION
SELECT a.tipoCobro ,ISNULL(RTRIM(a.primerNombre),1 ) + " "+ISNULL(RTRIM(a.PrimerApellido)," "),
'0','0',SUM(a.ValorRD),a.simbolo,c.nombre
from vwcobros a,seg0007 b,seg0000 c where a.fecha_orig BETWEEN fecha1 AND fecha2 AND
a.cod_emp_Sec =b.sec_vend AND b.usuario = gerente AND
b.usuario = c.usuario
GROUP BY a.tipoCobro,a.primerNombre,a.PrimerApellido,a.simbolo,c.nombre
IF fgl_report_loadCurrentSettings(archivo) THEN -- load the .4rp file
CALL fgl_report_selectDevice("PDF")
CALL fgl_report_selectPreview(false)
CALL fgl_report_setOutputFileName(nombre_file)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
START REPORT r_email TO XML HANDLER HANDLER
ELSE
EXIT PROGRAM
END IF
FOREACH informacion INTO xtipoCobro, xVendedor,
Xvalor_orig, XvalorRd ,xvalorRd_ant,
Xsimbolo,xnombre_gerente
LET xnombre_gerente = "COBROS EQUIPO DE VENTAS ",xnombre_gerente
OUTPUT TO REPORT r_email(xmes,xnumero_mes,xtipoCobro, xVendedor,
Xvalor_orig, XvalorRd ,xValorRD_ant,
Xsimbolo,nombre_empresa,xnombre_gerente)
END FOREACH
FINISH REPORT r_email
END FUNCTION
REPORT r_email(ymes,ynumero_mes,ytipoCobro, yVendedor,
yvalor_orig, yvalorRd , yvalorRd_ant,
ysimbolo,ynombre_empresa,ynombre_gerente)
DEFINE xano CHAR(4),
ymes CHAR(20),
ynumero_mes smallint,
ytipoCobro varchar(20),
yVendedor,ynombre_empresa,ynombre_gerente varchar(80),
yvalor_orig, yvalorRd,total1,total2,total_general1,total_General2,yvalorRd_ant,total3,total_general3 DEC(12,2),
ysimbolo varchar(10)
ORDER BY ynumero_mes,ytipoCobro,yvendedor
FORMAT
FIRST PAGE HEADER
LET xano = YEAR(today)
LET total_general1=0
LET total_General2=0
LET total_general3=0
BEFORE GROUP OF ynumero_mes
PRINTX ymes ,ynombre_empresa,xano,ynombre_gerente,fecha1,fecha2
BEFORE GROUP OF ytipoCobro
LET total1=0
LET total2=0
LET total3=0
AFTER GROUP OF yVendedor
LET yvalor_orig = GROUP SUM(yvalor_orig)
LET yvalorRD = GROUP SUM(yvalorRD)
LET yvalorRd_ant = GROUP SUM(yvalorRd_ant)
LET total1= total1 + yvalorRd
LET total2=total2 + yvalor_orig
LET total3=total3+ yvalorRd_ant
LET total_general1 = total_general1 + yvalorRd
LET total_general2 = total_general2 + yvalor_orig
LET total_general3 = total_general3 + yvalorRd_ant
PRINTX ytipoCobro, yVendedor,
yvalor_orig, yvalorRd ,
ysimbolo,total1,total2,
total_general1,total_general2,yValorRd_ant,total_general3,total3
END REPORT