171 lines
4.0 KiB
Plaintext
171 lines
4.0 KiB
Plaintext
DEFINE
|
|
i INT,
|
|
client_data DYNAMIC ARRAY OF RECORD
|
|
flag BOOLEAN,
|
|
contactos STRING,
|
|
nombre STRING,
|
|
puesto STRING
|
|
END RECORD
|
|
|
|
DEFINE MailStruct RECORD
|
|
contactos STRING,
|
|
subject STRING,
|
|
body STRING
|
|
END RECORD
|
|
|
|
DEFINE xusername, xsmtphost, xsmtpport, xpassword STRING
|
|
DEFINE
|
|
documentName STRING,
|
|
conduce BYTE
|
|
|
|
FUNCTION envio_email(
|
|
tip_cliente INT,
|
|
sec_client INT,
|
|
nombre STRING,
|
|
num_orden INT,
|
|
usuario STRING)
|
|
|
|
OPEN WINDOW w2 WITH FORM "envio_email"
|
|
CALL fgl_settitle("Envio factura a cliente")
|
|
|
|
INITIALIZE client_data TO NULL
|
|
INITIALIZE mailStruct TO NULL
|
|
|
|
CALL buscarData(tip_cliente, sec_client, num_orden)
|
|
|
|
DISPLAY nombre TO nombre_cliente
|
|
|
|
INPUT ARRAY client_Data
|
|
FROM record1.*
|
|
ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
|
|
|
|
ON ACTION CANCEL
|
|
EXIT INPUT
|
|
CLOSE WINDOW w2
|
|
|
|
AFTER INPUT
|
|
|
|
INPUT BY NAME MailStruct.* ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
|
|
BEFORE INPUT
|
|
DISPLAY documentName TO documentName
|
|
CALL BuildMail()
|
|
|
|
ON ACTION CANCEL
|
|
EXIT INPUT
|
|
CLOSE WINDOW w2
|
|
|
|
AFTER INPUT
|
|
CALL SendMail(num_orden, usuario)
|
|
|
|
END INPUT
|
|
END INPUT
|
|
CLOSE WINDOW w2
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION buscarData(tip_cliente INT, sec_client INT, orden INT)
|
|
|
|
SET CONNECTION "MARMOTECH"
|
|
|
|
SELECT 0, patente, nombre
|
|
INTO client_data[1].flag,
|
|
client_data[1].contactos,
|
|
client_data[1].nombre
|
|
FROM vetb00004
|
|
WHERE tipo_cliente = tip_cliente AND sec_cliente = sec_client
|
|
|
|
IF client_data[1].contactos IS NOT NULL THEN
|
|
LET client_data[1].puesto = "PRINCIPAL"
|
|
END IF
|
|
|
|
SELECT 0, email, 'Elvis', 'PRUEBA'
|
|
INTO client_data[2].flag,
|
|
client_data[2].contactos,
|
|
client_data[2].nombre,
|
|
client_data[2].puesto
|
|
FROM seg0001
|
|
WHERE usuario = 'egarcia'
|
|
|
|
DECLARE buscar CURSOR FOR
|
|
SELECT 0, a.email, a.contacto, a.puesto
|
|
FROM vetb00087 a
|
|
WHERE a.tipo_cliente = tip_cliente AND a.sec_cliente = sec_client
|
|
|
|
LET i = 3
|
|
FOREACH buscar INTO client_data[i].*
|
|
LET i = i + 1
|
|
END FOREACH
|
|
|
|
LOCATE conduce IN MEMORY
|
|
|
|
SELECT TOP(1) nombre_file, documento
|
|
INTO documentName, conduce
|
|
FROM prtb00029
|
|
WHERE num_oc = orden AND tipo_file = 'CO'
|
|
|
|
SET CONNECTION "EXTERIOR"
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION BuildMail()
|
|
|
|
INITIALIZE mailstruct.* TO NULL
|
|
|
|
FOR i = 1 TO client_data.getLength()
|
|
|
|
IF client_data[i].flag == 1 THEN
|
|
|
|
IF mailstruct.contactos IS NULL THEN
|
|
LET mailstruct.contactos = client_data[i].contactos
|
|
|
|
ELSE
|
|
|
|
LET mailstruct.contactos =
|
|
mailstruct.contactos || ", " || client_data[i].contactos
|
|
END IF
|
|
END IF
|
|
|
|
END FOR
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION SendMail(orden INT, usuario STRING)
|
|
|
|
DEFINE attachment STRING
|
|
|
|
SET CONNECTION "MARMOTECH"
|
|
|
|
SELECT from_address, nombre_Servidor, puerto, clave
|
|
INTO xusername, xsmtphost, xsmtpport, xpassword
|
|
FROM tbperfil_mail
|
|
WHERE cod_perfil = 2
|
|
|
|
SET CONNECTION "EXTERIOR"
|
|
|
|
LET attachment = "archivos\\", usuario CLIPPED, documentName
|
|
CALL conduce.writeFile(attachment)
|
|
|
|
LET mailstruct.body = "<table><tr><td>",MAILSTRUCT.body CLIPPED,"</td></tr></table>"
|
|
|
|
TRY
|
|
|
|
CALL enviaemail(
|
|
mailstruct.contactos,
|
|
mailstruct.subject,
|
|
mailstruct.body,
|
|
attachment,
|
|
xusername,
|
|
xsmtphost,
|
|
xsmtpport,
|
|
xpassword)
|
|
CATCH
|
|
|
|
CALL fgl_winmessage(
|
|
"ESTADO DEL EMAIL",
|
|
"Ha ocurrido un error al mandar el email",
|
|
"INFO")
|
|
|
|
END TRY
|
|
|
|
END FUNCTION
|