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

161 lines
5.3 KiB
Plaintext

{
PROGRAMA: EMAILCOBROS
OBJETIVO: GENERAR REPORTE PARA EL ENVIO DE CORREO
PROGRAMADOR: ING. JUAN SOTO
FECHA : 3/11/2015
}
GLOBALS
DEFINE usuarios,clave STRING,
TOemail,CCEmail,cuerpo_correo,
subject, procedimiento VARCHAR(100),
subject,attachment VARCHAR(100)
DEFINE xusername,xsmtphost,xsmtpport,xpassword,rutafile STRING
END GLOBALS
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING toemail
CALL STARTLOG("emailcorreo.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 varchar(80),
Xvalor_orig, XvalorRd,xvalorRd_ant DEC(12,2),
Xsimbolo varchar(10),
fecha1,fecha2,fecha3,fecha4 DATE
SELECT a.nombre INTO nombre_empresa FROM companias a WHERE cod_comp = 1
LET ano_act = YEAR(TODAY)
LET ano_ant = YEAR(TODAY)-1
LET mes_act = MONTH(TODAY)
LET mes_Act =6
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
LET archivo = "emailcobros.4rp"
LET rutafile ='.\\FILES\\emailCobros.pdf'
DECLARE informacion CURSOR FOR
SELECT tipoCobro ,ISNULL(RTRIM(primerNombre),1 ) + " "+ISNULL(RTRIM(PrimerApellido)," "),
SUM(Valor),SUM(ValorRD),'0',simbolo
from vwcobros where fecha_orig BETWEEN fecha1 AND fecha2
GROUP BY tipoCobro,primerNombre,PrimerApellido,simbolo
UNION
SELECT tipoCobro ,ISNULL(RTRIM(primerNombre),1 ) + " "+ISNULL(RTRIM(PrimerApellido)," "),
'0','0',SUM(ValorRD),simbolo
from vwcobros where fecha_orig BETWEEN fecha3 AND fecha4
GROUP BY tipoCobro,primerNombre,PrimerApellido,simbolo
IF fgl_report_loadCurrentSettings(archivo) THEN -- load the .4rp file
CALL fgl_report_selectDevice("PDF")
CALL fgl_report_selectPreview(false)
CALL fgl_report_setOutputFileName(rutafile)
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,xnumero_mes
OUTPUT TO REPORT r_email(xmes,xnumero_mes,xtipoCobro, xVendedor,
Xvalor_orig, XvalorRd ,xValorRD_ant,
Xsimbolo,nombre_empresa)
END FOREACH
FINISH REPORT r_email
# LET toEmail = 'jsoto@marmotech.com.do'
LET xusername ='notificacion@marmotech.com.do'
LET xsmtphost ='smtp.office365.com'
LET xsmtpport = '587'
LET xpassword = 'Lmmjvsd2020'
LET attachment = rutafile CLIPPED
LET subject = 'COBROS DEL MES DE ',xmes CLIPPED," DEL PERIODO ",ano_act USING "<<<<<"
LET cuerpo_correo="<!DOCTYPE html><body>", "<h1>FAVOR DE ABRIR EL DOCUMENTO ATADO A ESTE EMAIL ",
"</h1>div>Todos los valores estan en RD$</h1></div></body>"
CALL enviaemail(toEmail,subject,cuerpo_correo,attachment,xusername,xsmtphost,xsmtpport,xpassword) #RETURNING mensajes
END FUNCTION
REPORT r_email(ymes,ynumero_mes,ytipoCobro, yVendedor,
yvalor_orig, yvalorRd , yvalorRd_ant,
ysimbolo,ynombre_empresa)
DEFINE xano CHAR(4),
ymes CHAR(20),
ynumero_mes smallint,
ytipoCobro varchar(20),
yVendedor,ynombre_empresa 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 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 ymes ,ytipoCobro, yVendedor,
yvalor_orig, yvalorRd ,
ysimbolo,ynombre_empresa,xano,total1,total2,
total_general1,total_general2,yValorRd_ant,total_general3,total3
END REPORT