LibreDTE versión 20.01

Si, versión 20.01, abandoné esos largos números de versión.

Vamos por el quinto año de LibreDTE y hay que empezar a terminar ciertas cosas. Estoy en varios proyectos y entre ellos es estandarizar y hacer más fácil la instalación y actualización de la aplicación web de LibreDTE. No es que sea difícil instalar, pero la idea es que cualquiera pueda.

Esta versión incluye 4 mejoras importantes:

  • Puedes desbloquear las funcionalidades extras de LibreDTE sin costo (¡si, gratis!). Esto se logró migrando a la nueva API de LibreDTE (api.libredte.cl) para consultas al SII (ver anexo).
  • Se puede llevar control del día y hora exacta en que un DTE fue creado en la plataforma. Tanto para DTE emitidos como recibidos. Esto permitió definir nuevamente el concepto de “documentos usados”, donde ahora se muestran los documentos realmente emitidos o recibidos en cada período. Independientemente de la fecha de emisión que tengan.
  • Se crea el buscador avanzado para la bandeja de intercambio. Ahora es posible buscar entre esos documentos.
  • Se incluyen documentos de exportación en la emisión masiva de documentos.

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

  • Biblioteca:
    • Formato de 110mm permite usar datos del emisor a todo el ancho (debajo del folio).
    • Se agrega HEM al tipo de referencias “conocidas”.
    • Se puede usar la imagen del logo como membrete del Emisor. Esto permite colocar más datos al ser sólo una imagen. Ej: colocar sitio web o sucursales.
    • Se puede crear el objeto de firma electrónica usando el formato PEM.
    • Es posible especificar los intentos de envíos de un XML de un DTE al SII. Antes estaba forzado a 10 intentos, pero se puede configurar ahora para ser cualquier valor, incluso 0.
  • Aplicación web:
    • Se crea un sistema de mensajes de ayuda para los DTE emitidos rechazados, donde se entrega “ayuda extra” sobre el motivo del rechazo y como resolver. Se muestran en en rojo en el mismo cuadro del estado del envío al SII. Se pueden agregar más explicaciones con el tiempo, por ahora se incluyeron 5 para: CAF-3-517, DTE-3-100, DTE-3-101, REF-3-750 y REF-3-415. Estos son los casos más comunes de rechazos en la versión oficial.
    • Se corrigió la asignación de permisos para ser usada con usuarios en el grupo “soporte”. Usado para que cuentas de usuarios del sistemas puedan ingresar a las cuentas de contribuyentes para prestar ayuda.
    • Por defecto se agrega la opción de no validar el certificado de Gmail por no uso de SNI. Sin embargo esto deberá cambiar en el futuro ya que se debe usar OAuth2 (ver anexo).
    • Se agrega HEM a los tipos de referencias conocidas que se pueden asignar internamente. Quedando disponibles actualmente: HEM, HES, EM y RDM.
    • El botón en la página de emisión tiene un nombre más claro, ahora dirá “Emitir documento temporal (borrador)” o “Generar documento real (DTE)” según tenga configurado la empresa.
    • Se agrega configuración en la posición del logo en el PDF para poder usar el logo como un membrete con todos los datos del emisor.
    • Se guarda la fecha y hora de la creación de un documento emitido o recibido.
    • Se cambió la forma de determinar los documentos usados mensualmente. Ahora se usan las fechas de creación nuevas y con esto se generaron nuevas estadísticas de documentos usados.
    • Se agregó una búsqueda avanzada de documentos de intercambio. Esto agrega por primera vez una búsqueda por diversos campos a la bandeja de intercambio y permite filtrar y encontrar casos que aun no han sido recibidos (los ya recibidos se podían encontrar por el buscador avanzado de documentos recibidos).
    • Se agrega a la configuración de las empresas que puedan especificar la cantidad de intentos que quieren que LibreDTE realice al enviar un XML al SII y también si se debe o no usar compresión (desactivada por defecto).
    • Se corrigió un bug que borraba la asignación de tipo de compra en el registro de compras del SII cuando ya existía la misma asignación previamente.
    • Bandejas de intercambio ahora se actualizan en orden alfabético. Esto facilita el buscar algún problema con alguna en los logs generados o en el correo recibido por crontab (ej: con mutt).
    • Hay soporte para documentos de exportación en la emisión masiva de documentos. Se actualizó documentación y ejemplo de emisión masiva en CSV.
    • Es posible indicar una orden de compra y un descuento global al facturar masivamente guías de despacho.
    • Se corrige bug que impedía que una boleta de terceros electrónica se guardara cuando el receptor no existía en LibreDTE. Ahora el receptor se guarda si no existe (igual que con las BHE).
    • Se deja por defecto en el comando de actualización de contribuyentes la actualización con “libredte” quitando la acción “corregir” ya que toma demasiado tiempo y ocupa demasiadas consultas a la API (si se requiere, se debe usar manualmente).
    • Se agrega el período del DTE en el informe de activos fijos. Esto permite obtener un reporte por período de los activos fijos comprados para cierre de año.
    • En la emisión masiva el descuento en porcentaje antes se hacía con un número entre 0.01 y 0.99 (ej, para 30% de descuento se usaba 0.3). Ahora se debe especificar el descuento con el símbolo “%”, o sea, para 30% de descuento se debe indicar 30%.
    • Se migró al uso de la API de LibreDTE (api.libredte.cl) para funcionalidades extras (ver anexo).
    • La utilidad que genera los RCOF, permite agregar datos sin movimientos para regularizaciones.
    • Corrección al buscar documentos de intercambios.
    • Correcciones menores en borrados de tablas al eliminar un contribuyente. Cambios de substr() a mb_substr(). Ya no se guarda el RUT “0” (si, usuarios que lo usaban…). Fix al incluir la fecha y año de resolución en el PDF cuando es certificación.

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

Recuerden además actualizar el framework SowerPHP.

Si tienen dudas pueden escribir al foro o en el Grupo de Facebook. Si son clientes con soporte oficial de SASCO SpA pueden abrir un ticket de soporte.

Anexo: API de LibreDTE para Funcionalidades Extras

Muchas veces me han escrito usuarios que usan LibreDTE en su propio servidor, instalado por su cuenta y sin soporte mensual, que querían tener las funcionalidades extras. La sincronización con SII ayuda mucho en la gestión de la empresa, reduciendo tiempos y costos. Sin embargo, el precio antiguo de 2 UF + IVA, era mucho para la mayoría de esos usuarios.

Considerando lo anterior, se decidió migrar toda la API de LibreDTE para consultas al SII y separarla de la versión oficial (después de todo, nada tenía que ver con esa versión). Ahora existe una plataforma exclusiva y dedicada, con auto escalamiento, para la API que permite hacer consultas al SII.

Con esta nueva plataforma, se definieron nuevos planes, permisos y cuotas de acceso a la API. Donde, y aquí la ventaja, hay un “Plan Inicia” con costo 0. Este plan es espectacular para empezar a probar la API, para desbloquear las funcionalidades extras sin pagar un peso. Pero claro, está diseñado para una empresa y pocas consultas.

De todas formas, para quienes deseen más consultas, tenemos planes superiores, desde $5.000.- Que permiten hacer más consultas y tener acceso a todas las funcionalidades (plan básico no permite hacer nada asociado a BHE ni BTE).

¿Te interesa? Regístrate gratis, crea tu token para la API y configura LibreDTE.

Eres desarrollador y no usas LibreDTE o te interesa conocer toda la API. Revisa la documentación.

Anexo: Gmail / Google Apps e IMAP / OAuth2

Google ha informado que a contar del 15 de febrero del 2021 no habrá más soporte para “aplicaciones menos seguras”, o sea para el acceso mediante email/contraseña para usar los correos.

Esto es grave, puesto que LibreDTE tiene actualmente como único medio de conexión a los correos el uso del email y contraseña.

Tenemos tiempo, entre comillas, ya que Google no aceptará que nuevos correos activen las aplicaciones menos seguras desde el 15 de junio de 2020. O sea, queda tiempo, pero no mucho.

Hay 2 posibles soluciones:

  • La ideal, habilitar OAuth2 para ser usado con los correos Gmail.
  • No dar soporte a OAuth2 y, al menos a nuestros clientes de SASCO SpA, gestionar nosotros los correos @algo.libredte.cl con SMTP e IMAP sin OAuth2.

La primera solución beneficia a todos los usuarios, pero es más lenta y costosa. Además de existir otras prioridades en desarrollo en este momento. La segunda versión es “nuestra solución” (en realidad no haríamos nada en código, pero tendríamos que mantener la infraestructura para los correos, una cosa por otra). Esto aun está en evaluación y lo avisaré en alguna versión futura.

Si hay interesados en colaborar (técnicamente o económicamente) para tener OAuth2 en LibreDTE son bienvenidos a contactar.

Al parecer con los correos de Microsoft pasará algo similar, pero como no tenemos correos ahí no hemos recibido notificación y no hemos buscado.

Anexo: Nuevo “versionado”

Entre las cosas que hay que mejorar, es la forma en que se distribuye la versión de la plataforma web de LibreDTE. Hasta ahora, siempre se ha hecho como rolling release, o sea, continuamente se publica código y los usuarios sólo actualizan. Hasta ahora habían “versiones” que en realidad no eran más que un día X donde se publicaban los cambios al repositorio público y quedaba disponible al público.

Se evitaba hacer commits al repositorio hasta la siguiente versión. Pero a veces era inevitable (un parche) y otras por error se hacía un push antes de tiempo. Y esto, a más de un usuario, le “rompió” la instalación. Obviamente la idea es evitar eso y tener certeza que una actualización no hará daño.

Existe la posibilidad, no segura, que empecemos a usar versiones (empaquetadas incluso: bajar, descomprimir y usar). Para esto, el primer cambio es el de nombre de las versiones. Antiguamente llevaban el nombre del día que exacto en que se liberaron en la forma AAAAMMDD (año, mes y día). Ahora vamos a cambiar a lo que hacen otros proyectos de software y usaremos una versión corta del año y el mes de la liberación. Así la versión de ahora es la 20.01 por que es la del año 2020 y mes enero.

Si existiesen parches la versión, se pondrán como un número adicional a la versión, así el primer parche será 20.01.1 el segundo 20.01.2 y así sucesivamente, independientemente del día que se libere el parche (ya no será AAAAMMDD).

En una futura versión, se considerará más que sólo cambiar el nombre, se espera, a lo menos, poder empaquetar la siguiente versión para que se descargue con todo ya armado (framework y dependencias incluido).

Finalmente, se planea publicar versiones 4 veces al año. Para este año deberían ser 20.01, 20.04, 20.07 y 20.10. ¡Trataré de cumplir con este calendario!

1 thought on “LibreDTE versión 20.01

Agregar un comentario

Su dirección de correo no se hará público.