Enviar Facturas (PDF y XML) automáticamente

Hola comunidad:

En México requerimos que las facturas se envíen a los clientes el documento PDF y el archivo en XML. Alguien ha logrado que desde el momento de postear la factura, ésta se envíe al correo del cliente (adjuntando el PDF y XML correspondiente)?

Gracias.

///

Hello community:

In Mexico we require that the invoices be sent to the clients the PDF document and the XML file. Has anyone managed to send the invoice to the customer’s email from the moment the invoice is posted (attaching the corresponding PDF and XML)?

Thanks.

Do you have the CSF pack for Mexico?

Yes, INTERFACTURA

Estas dos entradas te pueden ayudar bastante para realizar lo que buscas:

Saludos,

Buenos dias Alonso pudiste desarrollarlo? Estas On Premise o en la Nube?

Saludos
RD

Hola, si pudimos solucionarlo, una agencia de consultoría, Partner de Epicor en México nos ayudó al desarrollo.

Usamos la versión On-Premise

Básicamente fue generar una instrucción desde los servicios de Windows Server que va y genera el PDF de la factura y toma el XML que se genera al timbrar para adjuntarlo en un correo electrónico de un desarrollo en .NET donde configuramos el SMTP del emisor.

Alguien que haya hecho un desarrollo similar en Cloud

Hola,
Tengo una funcion que envia el PDF y XML de Facturas y Complementos de Pago, genera un email como este:

Buen dia
Hay posibilidad de que puedas compartir?

Saludos

1 Like

Como le hiciste para adjuntar el xml?, ya tengo toda mi function echa. Ya me adjunta el pdf, solo no he podido encontrar como adjuntar el xml. Me puedes orientar?

Bueno como es un tema especifico para la Localizacion de Mexico lo escribire en español:

La libreria se llama Kntc-Dev-Email-Library, mucha de la “magia” se basa en codigo escrito por Kevin Lincecum :raising_hands::

  • Funcion AddB64BinaryAttachment (Aquí no hay que modificar nada).

  • Funcion AddStringAttachment (Aquí no hay que modificar nada).

  • Funcion BuildBodyHtml Hay un switch (esto es util si tienes multiempresa) a partir de la linea 26 deben asignar a la variable htmlColor el color correspondiente a la indentidad corporativa de su empresa, en la imagen que puse como referencia ese color corresponde al Texto Cash Receipt: 240221-19431 y a la linea que esta sobre el logo de Epicor, la imagen del logotipo esta en Base64.

  • Funcion BuildEmailByXFileRefNum Liena 47 deben asignar su MXPaysuppl (Complemento de Pago) ReportStyleNum, y linea 141 deben asignar su ARInvForm (Factura) ReportStyleNum, Liena 174 utilizas bo.SPDownloadFile(xFileRefNum) cuando se utiliza SharePoint, Linea 238 asignar la direccion de correo del remitente, 243 direcion de destino del correo, viene de un campo definido por usuario en el cliente InvoicingEmailAddressList_c pero pueden modificarlo para que busque el Email de los contactos del Ciente, liena 247 destinatario con copia, lineas 271 - 282 llama fauncion SharePintHelper en caso de utilizar Sahre Point.

  • Funcion BuildXmlParam (Aquí no hay que modificar nada).

  • Funcion GetCustomer Hay que agregar la column InvoicingEmailAddressList_c en Customer o en su defecto modificar esta funcion para que busque los emails de los contactos del cliente, se hizo con un campo definido porque regularmente las empresas solicitan que las facturas se entregen a mas de un destinatario.

  • Funcion GetRelatedDocument (Aquí no hay que modificar nada).

  • Funcion SendEmail (Aquí no hay que modificar nada).

  • Funcion SharePointHelper Lienas 28 y 35 modificar url de acuerdo al sitio sahre point donde desean subir las facturas.

¿Como se ejecuta la función principal?
Crear una BPM Standar de datos (Ice.XFileRef.Update / Standar/ SendMail) que llama la función cada que se genera un archivo del tipo XML ya sea de Facturas o Complementos de Pago:

llamando la funcion de manera asincrona KNTC-Dev-Email-Library/BuildEmailByXFileRefNum


¿Porque filtrar por ID y Descripcion? Porque en el proceso de timbrado con el PAC se genera el XML y Codigo QR de cada CFDI, y nos interesa solo el XML.

Para testear la funcion desde el sitio API Help Rest
Primero se obtiene el numero de referencia del archivo adjunto:

Desde el sitio rest help ingresas el numero de referencia y tu API Key haces clic en Execute


Kntc-Dev-Email-Library.efxb (44.6 KB)

¿Que hace la funcion SharePointHelper?
Sube el PDF de la factura o complemento de pago como adjunto al sitio sharepoint:

Espero que sea de ayuda.

3 Likes

Listo!

Muchas gracias por compartir la informacion, que version de epicor tienes?. Intente exportar la function y no pude.

¿Que error te genera al importarla? La función la exporte desde una entorno en 2024.2, pero actualmente la tengo en productivo en versiones 2023.2 - hasta 2025.1. En tu entorno de Test o Pilot agrega la columna InvoicingEmailAddressList_c nvarchar(200) a la tabla Customer, y despues intentas importar la funcion.

1 Like