Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
{
|
||||
------------------------------------------------------------------------
|
||||
FORMULARIO : SENDEMAIL
|
||||
OBJETIVO : Herramienta para enviar emails masivos
|
||||
PROGRAMADOR : Ing. Juan Soto.
|
||||
FECHA REALIZACION : Diciembre 7, 2021
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
}
|
||||
IMPORT JAVA javax.mail.Session
|
||||
|
||||
GLOBALS "noprgb000.4gl"
|
||||
|
||||
DEFINE genera CHAR(2),
|
||||
xingresos,xdescuentos DEC(12,2),
|
||||
cuenta_envio,xtipo,xsec INT,
|
||||
estado_Envio VARCHAR(50),
|
||||
vendedorEmail,emailCC VARCHAR(60),cuerpo_correo VARCHAR(2000),
|
||||
subject VARCHAR(100), perfil,procedimiento VARCHAR(60),nombre_file,nombre_empleado VARCHAR(80)
|
||||
|
||||
DEFINE sesion Session,
|
||||
password,s_protocol,respuesta,mensajes STRING
|
||||
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL STARTLOG("emailmarketing.txt")
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING subject
|
||||
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
CALL enviaemailMain()
|
||||
END MAIN
|
||||
#"file:///f:/master/IMAGENES/LOGO.JPG"
|
||||
#"file:///C://Users//jsoto//Documents//PROYECTOS//BDL320//MARMOTECH//PROYECTO//bin//IMAGENES//LOGO_DCM.PNG"
|
||||
|
||||
FUNCTION enviaemailMain()
|
||||
|
||||
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
|
||||
r_filename STRING, -- filename of Report Design Document including .4rp extension
|
||||
r_output STRING, -- output format option
|
||||
preview INTEGER, -- TRUE/FALSE, to set preview option
|
||||
retorne BOOLEAN,
|
||||
xemail,xemailvend,xtelefono VARCHAR(100),
|
||||
nombreVendedor VARCHAR(200),
|
||||
url,strusername,xsmtphost,strpassword,strport STRING
|
||||
|
||||
|
||||
|
||||
IF NOT validate_param_smpt_auth() THEN
|
||||
CALL FGL_WINMESSAGE("INFO","NO EXISTE CONEXION","INFO")
|
||||
END IF
|
||||
|
||||
# CALL create_cxion_session() RETURNING sesion,password,s_protocol
|
||||
|
||||
LET cuenta_Envio = 0
|
||||
|
||||
|
||||
SELECT a.from_address,a.puerto,a.nombre_servidor,a.clave
|
||||
INTO strusername,strport,xsmtphost,strpassword
|
||||
FROM tbperfil_mail a WHERE cod_perfil =3
|
||||
|
||||
# LET subject = datos_recibo.nom1_emp CLIPPED," ",datos_recibo.apell1_emp CLIPPED,"(",datos_recibo.num_emp USING "<<<<",")"
|
||||
LET subject = "=?UTF-8?B?wqFIb2xhIQ==?=Aprovecha +300 revestimientos para ti!"#"¡Aprovecha +300 revestimientos para ti!"
|
||||
#"<div><img src='https://ws.marmotech.com.do/imagenes/principal/emailmarketing.png' width='600' height='350' loading='eager'></div>",
|
||||
|
||||
{
|
||||
ESTOS CODIGOS ES PARA ENVIAR UNA IMAGEN CON HIPER VINCULO
|
||||
"<p><a href='https://encuestaemp.vercel.app/'>",
|
||||
"<img border='0' alt='Encuesta' src='https://ws.marmotech.com.do/imagenes/principal/clientes/OfertaNPFeed.png' width='600' height='400'>",
|
||||
"</a></p>"
|
||||
}
|
||||
DECLARE busca_email CURSOR FOR
|
||||
|
||||
SELECT DISTINCT b.email,a.tipo_cliente,a.sec_cliente,d.email,
|
||||
RTRIM(f.nom1_emp)||' '||ISNULL(RTRIM(f.apell1_emp),' '),
|
||||
d.celular
|
||||
INTO xemail,xtipo,xsec,xemailvend,nombreVendedor,
|
||||
xtelefono
|
||||
FROM vetb00004 a
|
||||
INNER JOIN emailmarketing b ON b.tipo_cliente = a.tipo_cliente AND
|
||||
b.sec_cliente = a.sec_cliente
|
||||
AND b.estado IS NULL
|
||||
INNER JOIN vetb00028 c ON c.tipo_cliente = a.tipo_cliente AND
|
||||
c.sec_cliente = a.sec_cliente
|
||||
INNER JOIN adtb00003 f ON f.num_emp = c.sec_vend AND f.status_t IS null
|
||||
LEFT OUTER JOIN seg0000 d ON d.sec_Vend = c.sec_Vend
|
||||
WHERE a.status_T IS NULL AND
|
||||
a.tipo_cliente IN (15,16,19) AND (a.patente IS NOT NULL and a.patente like '%@%')
|
||||
# AND a.tipo_cliente = 15 AND a.sec_cliente = 1991
|
||||
|
||||
FOREACH busca_email
|
||||
|
||||
# LET xemail = 'jsoto@marmotech.com.do'
|
||||
LET cuerpo_correo = "<!DOCTYPE html>
|
||||
<html lang='es'>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
|
||||
<title>Información y Imagen</title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Texto de saludo e información -->
|
||||
<p>¡Hola!</p>
|
||||
<p>Para más información puedes contactar a tu vendedor: <strong>",nombreVendedor CLIPPED,' ',xtelefono CLIPPED,"</strong></p>
|
||||
|
||||
<!-- Imagen que se ajusta bien -->
|
||||
<img alt='Oferta' src='https://ws.marmotech.com.do/imagenes/principal/clientes/otraOfertas.png' style='max-width: 100%; height: auto;'>
|
||||
</body>
|
||||
</html>"
|
||||
|
||||
{
|
||||
LET cuerpo_correo = "<p><h3>¡Hola!</p></h3>
|
||||
<p><h3>Para más información puedes contactar a tu vendedor: ",nombreVendedor CLIPPED,"</h3></p>"
|
||||
LET cuerpo_correo =cuerpo_correo CLIPPED, "<img border='0' alt='Oferta' src='https://ws.marmotech.com.do/imagenes/principal/clientes/otraOfertas.png' style='max-width: 100%; height: auto;'>"
|
||||
}
|
||||
DISPLAY "data email ",xemail," ",subject," ",cuerpo_correo," ",sesion," ",password," ",s_protocol
|
||||
LET estado_envio = 'INTENTO ENVIO'
|
||||
|
||||
TRY
|
||||
|
||||
IF xemailvend IS NOT NULL THEN
|
||||
LET xemail = xemail CLIPPED,",",xemailvend CLIPPED
|
||||
END IF
|
||||
CALL enviaemail(xemail,subject,cuerpo_correo,NULL,strusername,xsmtphost,strport,strpassword) #RETURNING retorne
|
||||
# EXIT FOREACH
|
||||
|
||||
SELECT DISTINCT a.tipo_cliente FROM emailmarketing a
|
||||
WHERE a.tipo_cliente =xtipo AND a.sec_cliente = xsec
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
UPDATE emailmarketing SET fecha_Envio = getdate(),estado = 'INTENTO ENVIO'
|
||||
WHERE tipo_cliente = xtipo AND sec_cliente = xsec
|
||||
ELSE
|
||||
INSERT INTO emailmarketing(tipo_cliente,sec_cliente,estado,fecha_Envio,email)
|
||||
VALUES (xtipo,xsec,estado_envio,getdate(),xemail)
|
||||
END IF
|
||||
|
||||
LET cuenta_envio = cuenta_Envio + 1
|
||||
IF cuenta_Envio > 490 THEN
|
||||
EXIT FOREACH
|
||||
END IF
|
||||
|
||||
CATCH
|
||||
LET estado_Envio = 'ERROR ENVIO'
|
||||
UPDATE emailmarketing SET fecha_Envio = getdate(),estado = 'ERROR ENVIO' WHERE email = xemail
|
||||
END TRY
|
||||
|
||||
END FOREACH
|
||||
|
||||
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION elimina()
|
||||
DELETE FROM emailmarketing WHERE email = xemail
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user