Files
MBS/PROYECTO/encuestas/reenvioencuestalaboral.4gl
T

151 lines
5.0 KiB
Plaintext

{
PROGRAMA: reenvioencuestalaboral.4gl
OBJETIVO: RE-ENVIAR LAS ENCUESTA A LOS COLABORADORES QUE NO HAN LLENADO EN 24 HORAS
FECHA : ABRIL 15, 2024
DESARROLLADO POR: ING. JUAN SOTO
}
IMPORT util
IMPORT com
IMPORT os
DEFINE url,dato STRING,
usuarios,clave VARCHAR(50)
MAIN
CALL STARTLOG("reenvioencuesta.txt")
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
DISPLAY "EN PROCESO...."
CALL enviar()
END MAIN
FUNCTION enviar()
DEFINE pnum_emp INT,
email_emp,selec,datos_emp,urlk,strcuerpo,strusername,xsmtphost,strpassword,strport,srtsubject,resp STRING,
pnombre VARCHAR(100),
data RECORD
token STRING
END RECORD,
fecha1,fecha2 DATE
SELECT a.fecha_inicio,a.fecha_corte INTO fecha1,fecha2 FROM prdtable a
WHERE a.ano = YEAR(GETDATE()) AND a.mes = MONTH(GETDATE())
LET selec =
"
SELECT a.num_emp,a.email_corporativo,RTRIM(a.nom1_emp)+' '+RTRIM(a.apell1_Emp),b.respuesta
FROM marmotech.dbo.adtb00003 a left outer join encuestas.dbo.respuesta_laboral b on b.num_emp = a.num_emp and
b.fech_crea between
? and ?
WHERE a.status_t IS NULL AND a.enviar_encuesta='SI' AND a.email_corporativo is not null
and b.respuesta is null
ORDER BY a.num_emp
"
PREPARE comando FROM SELEC
DECLARE buscar CURSOR FOR comando
OPEN buscar USING fecha1,fecha2
FOREACH buscar INTO pnum_emp,email_emp,pnombre
LET url = "https://encuestalaboral.vercel.app/api/encrypt"
LET datos_emp = pnum_emp USING "<<<<<<<<"
CALL jewt(url,datos_emp) RETURNING urlk
CALL util.JSON.parse(urlk,data)
LET url = "https://encuestalaboral.vercel.app/orden/encuesta1/",data.token
LET strcuerpo = "<body><h1>RECORDATORIO LLENADO ENCUESTA SATISFACCION LABORAL DE NUESTRA EMPRESA MARMOTECH, S. A., FAVOR DE AYUDARNOS A AYUDARTE</h1>
<h2><p>Favor de Clickear en este link<a href='",url CLIPPED,"'>Click</a></h2>",
"</body>"
# LET strcuerpo = "<p><a href='",url CLIPPED,"'>",
# "<img border='0' alt='Encuesta' src='https://ws.marmotech.com.do/imagenes/principal/3.jpg' width='600' height='400'>",
# "</a></p>"
SELECT a.from_address,a.puerto,a.nombre_servidor,a.clave
INTO strusername,strport,xsmtphost,strpassword
FROM tbperfil_mail a WHERE cod_perfil =2
# LET strusername ='notificacion@marmotech.com.do'
# LET xsmtphost ='smtp.office365.com'
# LET xsmtpport = '587'
# LET xpassword = 'Lmmjvsd2020'
# LET vendedoremail = 'jsoto@marmotech.com.do'
LET srtsubject = 'RECORDATORIO ENCUESTA SATISFACCION LABORAL MARMOTECH'
TRY
CALL enviaemail(email_emp,srtsubject,strcuerpo,NULL,strusername,xsmtphost,strport,strpassword)
CATCH
DISPLAY "NO ENVIE EMAIL ",email_emp
END TRY
END FOREACH
END FUNCTION
FUNCTION jewt(url,dato)
DEFINE jwtk,ret,res,url,s,dato STRING
LET s = dato CLIPPED
CALL sync_send_command(url, s) RETURNING ret, res
LET jwtk = res
RETURN jwtk
END FUNCTION
#
## Communications library using com (http or https)
#
FUNCTION sync_send_command(url, cmd)
DEFINE url, cmd STRING
DEFINE result, tmp STRING
DEFINE http_req com.HTTPRequest
DEFINE http_resp com.HTTPResponse
TRY
LET http_req = com.HTTPRequest.Create(url)
CALL http_req.setConnectionTimeout(40)
CALL http_req.setTimeout(40)
CALL http_req.setMethod("POST")
CALL http_req.setCharset("UTF-8")
CALL http_req.setHeader("DBSync-Client","mbs")
CALL http_req.setHeader("Content-Type","dbsync/json")
DISPLAY "request ",cmd
CALL http_req.doTextRequest(cmd)
LET http_resp=http_req.getResponse()
IF http_resp.getStatusCode() != 200 THEN
RETURN http_resp.getStatusCode(), http_resp.getStatusDescription()
END IF
LET tmp = http_resp.getStatusDescription()
IF (tmp == "OK" || tmp == "no error" ) THEN
RETURN -1, SFMT("HTTP request status description: %1 ",tmp)
END IF
LET result = http_resp.getTextResponse()
CATCH
RETURN -2, SFMT("HTTP request error: STATUS=%1 (%2)",STATUS,SQLCA.SQLERRM)
END TRY
RETURN 0, result
END FUNCTION
FUNCTION show_sync_err(msg)
DEFINE msg STRING
CALL fgl_winmessage(%"ERROR", msg, "exclamation")
END FUNCTION