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 = "
| ",MAILSTRUCT.body CLIPPED," |