LibreDTE versión 20190815

En enero, cuando publiqué la versión 20190101, me había propuesto sacar versiones de LibreDTE más seguido, ya que el 2018 estuvo lento el desarrollo por otro proyecto de la empresa. Pero nuevamente no pude, y cuando me di cuenta estábamos en junio de 2019. Así que la fecha de la versión la anoté en mi mente y dije será la 20190616, ¡y no alcancé! Pero no porque no hubieran cambios que publicar, sino que tenía muchas ideas y no paraba de programar.

Esta nueva versión, no tiene todo lo que me habría gustado liberar, aun tengo hartas ideas de funcionalidades y mejoras a lo que ya existe. Y este post, por un tema de tiempo, tampoco será lo más completo, pero trataré de dar luz de todo lo nuevo y prometo que vamos a ir informando más cosas más adelante. Si estás interesado en conocer más sobre las nuevas funcionalidades ingresa al grupo de LibreDTE en Facebook, ahí vamos conversando de las nuevas mejoras y vamos a empezar a hacer talleres de todo tipo (técnico, nivel usuario, uso plataforma, de programación, etc).

Vamos a lo importante ahora. Está publicada la nueva versión de LibreDTE 20190815 🙂

Esta versión incluye 15 mejoras importantes:

  1. Soporte oficial para Debian GNU/Linux 10 (buster) y PHP 7.3
  2. Listado de documentos recibidos en SII que no se han procesado. Aquí te cuento por qué esto es muy importante.
  3. Listado de boletas de honorarios recibidas.
  4. Listado de boletas de terceros emitidas.
  5. Se pueden emitir boletas de terceros desde LibreDTE (vía web y API).
  6. Se pueden agrandar los campos de nombre de item y descripción para ver que se escribe.
  7. Nueva búsqueda de items por código.
  8. Nuevos triggers para API y contribuyentes.
  9. Nuevos servicios web para intercambios.
  10. Nuevos informes de documentos recibidos y buscador avanzado de documentos recibidos.
  11. Se pueden bajar todos los PDF de la facturación masiva en un archivo comprimido.
  12. Nuevos diseño de páginas para cesiones. Más información y más ordenada.
  13. Mejoras en diseño de página de listado de intercambio y páginas individuales de intercambio.
  14. Se usa sodium por defecto para encriptar datos. Adiós mcrypt.
  15. Mejoras visuales usando Bootstrap 4.3.1, Font Awesome 5.10.0, bootbox, y select2.

Nota: recuerda que las funcionalidades extras se desbloquean con este servicio.

El listado completo de los cambios más relevantes es:

  • Biblioteca:
    • Se puede obtener días de vigencia de la firma y días que faltan para que expire.
    • Se cambia “Señor(es)” en PDF por “Nombre” (por neutralidad de género) y se usa RUN en boletas en vez de RUT.
    • Se da soporte oficial a referencia de tipo “Recepción de material/mercadería” (RDM).
    • Se activó la verificación de firma electrónica de los DTE (desactivada hace tiempo por una issue, que se mantiene abierta).
    • Se agregó soporte para los campos QtyRef y UnmdRef que permite agregar otro tipo de unidad al PDF del DTE.
    • Se agregó soporte parcial para el campo Subcantidad que permite agregar otro tipo de cantidad al PDF del DTE (hay issue abierta por este soporte parcial).
    • Se hicieron varias mejoras para mostrar los datos de Aduana en el PDF.
    • Se agregaron todos los campos de Aduana (faltaban algunos).
    • Las cotizaciones de facturas de exportación de ahora en adelante saldrán como “FACTURA PROFORMA”.
  • Aplicación web:
    • Se pueden mostrar múltiples mensajes de sesión con múltiples estados, permite mejorar lo que se informa al usuario.
    • Se reemplazaron los “alert” y “confirm” del navegador por modal emergentes con bootbox. Resuelve problema que se presentó en algunas versiones de Chrome y da mejor apariencia a la aplicación.
    • Existe un concepto nuevo “aplicaciones de terceros”, Dropbox se convirtió ahora en esto, una aplicación de tercero. Ver anexo.
    • Se usa Request::send() y Api::send() para entregar datos al usuario, salvo algunas excepciones, esto es útil para hacer Log.
    • El framework soporta nuevos triggers para Log. Ver anexo.
    • Se agregó un módulo Sistema.Servidor que entrega información y estadísticas del servidor.
    • Se migró a Bootstrap 4.3.1 y Font Awesome 5.10.0
    • Se usa select2 por defecto en los select. Ver anexo.
    • Se hicieron varias mejoras al guardar datos de emisor y receptor para evitar guardar datos “malos” a la base de datos.
    • Facturas de exportación de pueden emitir en CLP.
    • Servicio web que obtiene la información de un contribuyente permite buscar por el correo principal al contribuyente.
    • Facturación masiva de guías de despacho permite buscar guías que ya podrían estar con referencia (facturadas).
    • Mejora en plantilla de correos.
    • Se puede configurar que la forma de pago por defecto sea “crédito”.
    • Se puede definir el origen de los correos de los receptores, esto permite que no se use por ejemplo el correo compartido (ya que puede cambiar al ser compartido).
    • Hay nuevos servicios web asociados a intercambios, para obtener XML y PDF (no está documentado, es parte de un trabajo futuro documentar toda la API).
    • Se usa recaptcha, si está disponible, en la página pública de consulta de DTE.
    • Ahora se pueden obtener los correos asociados al documento boleta (el que va como referencia) y se muestra en la pestaña de “enviar por correo” y se considera al enviar automáticamente.
    • Si la boleta es no nominativa, pero tiene datos del receptor, estos se muestran (antes no se mostraban datos si era al RUT 66666666-6, ahora sí lo hará).
    • Se muestra alerta en el dashboard de facturación al quedar 20 o menos días para el vencimiento de la firma.
    • Todos los documentos emitidos con un “revision_estado” un número negativo son considerados ahora para ser revisados nuevamente por el proceso automático. Esto reduce los casos que tienen un estado “no final”.
    • Se agregó servicio web para hacer búsquedas en la bandeja de intercambio.
    • Se diseñó nuevamente la pestaña de cesión de un DTE emitido. Ahora se ve más información, se puede consultar el estado del envío de cesión y obtener el certificado de la cesión.
    • En la bandeja de intercambio, al final, se agrega nota con ayuda en caso de no recibir las facturas y que se debe hacer. Junto al correo de intercambio al que el proveedor debe enviar los XML. Para que cualquier usuario con acceso a la bandeja pueda conocer el correo y avisar al proveedor.
    • Búsqueda avanzada de un DTE emitido ahora permite buscar por razón social.
    • Se agregan los DTE temporales al respaldo que se puede generar.
    • Se puede agregar el código interno del cliente al emitir el DTE.
    • Se creó un trigger para obtener datos adicionales de un contribuyente. Ver anexo.
    • Ahora es posible ejecutar el comando de intercambio de documentos emitidos con un sólo contribuyente. Esto permite, por ejemplo, hacer el intercambio atrasado de un contribuyente porque tenía mal configurado su correo y se desea poner al día.
    • Se deja PHP_Mail y se usa PHPMailer para los envíos de correos. Esto trae más opciones de configuración para los servidores SMTP (Ej: se puede saltar validación de SSL igual que se hace con IMAP).
    • Se agrega herramienta para verificar que los correos están bien configurados en la página del contribuyente.
    • Emisión masiva de DTE permite incluir ahora más de una referencia.
    • Se diseño de nuevo el buscador de items. Antes permitía buscar sólo por código, ahora permite buscar por código, nombre o descripción del item. Esto permite encontrar mucho más fácilmente un item.
    • Es posible obtener los enlaces de un DTE temporal o real al crearlo vía API. SE debe pasar por GET al servicio web la opción “links=1”.
    • Mejoras menores diseño de configuración de empresa.
    • Se corrigió un problema antiguo donde algunos correos en la bandeja de intercambio quedaban con fecha errónea del año 1969.
    • Se creó un informe de documentos recibidos, similar al ya existente de documentos emitidos.
    • Ahora, en el resumen del libro de ventas, si el IVA de boletas no cuadra se muestra una alerta con la explicación de por qué no cuadra.
    • Se corrigió la carga de los contribuyentes en el comando que los actualiza, con el fin de evitar una doble conversión con utf8_decode y con esto evitar que se muestren incorrectamente los nombres.
    • Se agregó un buscador avanzado de documentos recibidos.
    • En un intercambio, se agrega información respecto al estado de la firma del DTE y del EnvioDTE del intercambio.
    • Se agregó verificación avanzada de DTE emitidos en la página del DTE (donde está el Track ID).
    • Se agregó una página específica para poder buscar las cesiones que existen. Esto permite buscar en el menú izquierdo del dashboard de manera rápida los documentos cedidos.
    • Se hicieron varios cambios de substr a mb_substr (probablemente existan más pendientes por ahí, tarea para el futuro…).
    • Se agregó un registro de los correos enviados de documentos temporales, similar al que existe en documentos emitidos. Con esto se puede saber si se envió un dte temporal (cotización), a quién y cuando.
    • Se muestra fecha de vencimiento en página principal de un DTE temporal y de un DTE real.
    • Se pueden eliminar los pagos programados (cobranza por venta a crédito) de un DTE.
    • Si se anula un DTE con pagos programados, se eliminarán automáticamente los pagos programados que tenga.
    • Se quita dependencia de mcrypt, por defecto se usa sodium. Ver anexo.
    • Se muestran totales en el listado de documentos de la bandeja de intercambio. Además se quitan otros datos menos usados. El estado ahora es un icono, ocupa menos espacio.
    • Ya no es posible subir una firma que esté asociada a un usuario diferente. Esto evita que se “quite” la firma a otro usuario. Se deberá eliminar del usuario antiguo para cargar en el nuevo.
    • Se creó un trigger al seleccionar el contribuyente.
    • Por fin se muestran las categorías con el orden jerárquico que corresponde. Siempre ha estado soportado, pero visualmente no se respetaba. Ahora se verá como un árbol.
    • La emisión masiva de DTE ahora permite generar los PDF y enviar un enlace de descarga por correo para bajar todos los PDF en un archivo comprimido.
    • Se puede hacer crecer ciertos campos de formularios (opción “growup”). Ahora se puede ver todo lo que está en el nombre del item, en la descripción o en las razones de referencias. Muy útil al redactar un DTE y se nos acaba el espacio.
    • Se agregaron documentos recibidos pendientes de procesar en el SII. Se puede hacer acuse de recibo (aceptar o reclamar). Esto es muy importante, ya que permite conocer todos los DTE que nos han emitido, incluso aquellos que el proveedor no nos ha enviado por correo.
    • Se sincronizan boletas de honorarios recibidas, se ve listado por período, se puede bajar CSV con el listado. Se puede buscar y bajar los PDF.
    • Se sincronizan boletas de terceros, se ve listado por período, se puede bajar CSV con el listado. Se puede buscar y bajar los HTML.
    • Se pueden emitir boletas de terceros, ya sea por API o por la plataforma web.
    • Los RCOF pueden ser enviados a un servidor FTP o FTPS. Ver anexo.
    • Fix al marcar como leídos los RCOF que ya se han actualizado (era un bug menor).

Hay cambios en la base de datos, revisar script de actualización 20190815.sql en website/Module/Dte/Model/Sql/updates

Recuerden además actualizar el framework SowerPHP, esta versión no funciona con el framework antiguo.

Si tienen dudas pueden escribir al foro o si tienes soporte oficial de SASCO SpA abrir un ticket de soporte. O en el Grupo de Facebook.

Anexo: Dropbox

El framework ahora soporta el concepto de “Aplicaciones de terceros” que permiten “instalar” aplicaciones en, este caso, LibreDTE. En esta versión, se ha migrado Dropbox a una aplicación de tercero, de esta forma agregar nuevas apps es relativamente sencillo y lo mejor, se pueden agregar en extensiones para mantenerlas independiente del código oficial de LibreDTE.

Este cambio implicó agregar un nuevo módulo “Apps”, que debe ser activado si usan Dropbox.

En el archivo core-dist.php está la nueva configuración para usar Dropbox. Se debe cambiar la configuración propia de Dropbox y además se debe cargar la “configuración apps_3rd_party”. La cual cargará automáticamente Dropbox. Finalmente, deben cambiar el comando que respalda con Dropbox, ya que ahora está en el módulo Apps.

En el futuro se van a agregar más aplicaciones, hay varias en mente. Y se pretende hacer un taller sobre esta nueva funcionalidad de la aplicación.

Anexo: Triggers Api y Logs

Hay 3 triggers nuevos asociados a la API:

  • api_auth: permite autorizar un usuario en la API a pesar que los permisos estándares no lo permitan.
  • api_quota: permite asignar cuotas de uso a la API.
  • api_log: permite hacer un log avanzado de la API.

Si estás interesado en estos triggers, inscríbete en nuestros talleres. Probablemente también los anunciaremos en el grupo de facebook.

Anexo: select2

Por defecto, se usa select2 como wrapper de los campos select de los formularios. Esto da un mejor diseño a los campos.

Sin embargo, si por cualquier motivo no los quieres usar, los puedes desactivar así:

\sowerphp\core\Configure::write('form.select.wrapper', false);

Anexo: trigger contribuyente_info

Este trigger permite entregar información adicional de un contribuyente a través del servicio web que consulta su info. Por ejemplo, nos permite entregar:

  • El código interno del contribuyente que sería usado al emitir el DTE si se pasa. El campo se debe llamar “codigo”
  • El código del vendedor asociado al contribuyente. El campo se debe llamar “vendedor”.

Si estás interesado en este trigger, inscríbete en nuestros talleres. Probablemente también los anunciaremos en el grupo de facebook.

Anexo: chao mcrypt, hola sodium

Este es uno de los cambios más grandes e importantes. Con el soporte para PHP 7.3 mcrypt desaparece y ahora se usa por defecto sodium para la encriptación de datos en la base de datos.

Para poder usar sodium, si ya tenías LibreDTE instalado, hay que desencriptar todos los datos de la base de datos con mcrypt y volver a encriptarlos con sodium. Es un trabajo largo, y costoso. ¡Pero podemos ayudar! https://libredte.cl/contacto

Aquí puedes leer por qué no deberías usar mcrypt (LibreDTE tampoco debería haberlo usado cuando partió! pero ya está corregido!)

Ahora, si no quieres migrar a sodium y deseas seguir usando mcrypt, no recomendado pero posible. Debes agregar la siguiente configuración:

\sowerphp\core\Configure::write('data.crypt.method', 'mcrypt');

Anexo: trigger contribuyente_seleccionar_referer

Este trigger permite modificar la página de redirección de un contribuyente. Es útil cuando queremos por ejemplo mostrar una información al contribuyente al seleccionar la empresa. O por ejemplo, si hemos deshabilitado su cuenta por no pago para que sea informado.

Si estás interesado en este trigger, inscríbete en nuestros talleres. Probablemente también los anunciaremos en el grupo de facebook.

Anexo: enviar RCOF a servidor remoto

Desde la versión anterior es posible enviar los RCOF a un servidor remoto usando SFTP. Ahora se agrega la posibilidad de enviarlo a un servidor FTP o FTPS.

Ejemplo de ejecución son:

./shell.php Dte.Boletas_EnviarRCOF dte_plus 0 0 ftp://[email protected]/home/rcof/libredte -v
./shell.php Dte.Boletas_EnviarRCOF dte_plus 0 0 ftps://[email protected]/home/rcof/libredte -v

Donde:

  • usuario: es el usuario que se desea usar en el servidor remoto
  • example.com: es el host del servidor remoto
  • /home/rcof/libredte: es la ruta donde se desea dejar el RCOF en el servidor remoto
  • Los dos ceros, indican día previo y ambiente producción respectivamente (en situación normal siempre serán esos valores).

Esta opción, al igual que la de SFTP, fueron financiadas por Red Comercio (del grupo Orsan).

Agregar un comentario