LibreDTE versión 20.04

En la versión 20.01 de LibreDTE me comprometí a publicar 4 versiones este 2020 (enero, abril, julio y octubre). Lo prometido es deuda y aquí presento la versión 20.04 🙂

Esta versión incluye 4 mejoras importantes más un bonus:

Revisa este video donde explico las mejoras más importantes.

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

  • Biblioteca:
    • Se quita keep alive en conexiones SOAP.
    • Verificación de existencia de datos en formato YAML.
    • Se mejora offset en valores de formato papel contínuo.
    • Se agrega soporte para formatos de DTE en diferentes namespaces.
    • Se fija soporte para PHP 7.3.
  • Aplicación web:
    • No se normalizan datos del receptor en boletas no nominativas ni en documentos de exportación. Esto evita que los documentos salgan con datos por defecto aunque no se hayan entregado al generar el DTE.
    • Se agregó IVA de activo fijo al informe de activos fijos.
    • Se corrigió error en fecha de facturación masiva de guías (se estaba usando día actual siempre).
    • Se agrega opción para reobtención de folios desde el SII y carga directa a LibreDTE. Esto permite regularizar situaciones de CAF obtenidos en SII y no cargados o sirve para la primera carga de contribuyentes que migran a LibreDTE.
    • Se corrigió error en timbraje automático (introducido en versión anterior) que permitía timbrar pero no cargaba el timbraje a LibreDTE.
    • Ahora, si un usuario no tiene permiso para emitir un DTE tampoco podrá eliminar un DTE de ese tipo. Desde que se creó la autorización por usuario para la emisión de DTE, los usuarios podían seguir eliminando cualquier documento, incluso aquellos para los que no tenían permiso de emisión. Esto corrige eso requerimiento permiso de emisión para eliminar.
    • Al enviar el correo electrónico de un DTE se puede especificar como destinatario el valor ‘all’ de esta forma, se buscarán todos los posibles destinatarios que LibreDTE encuentre. Por defecto, al no especificar un destinatario, sólo se enviaba el email al correo de intercambio. Esto es muy útil para ser usado vía API. Donde se puede indicar ‘all’ como destinatario y dejar que LibreDTE busque los correos.
    • Ahora los DTE emitidos pueden no tener XML (ver anexo).
    • Se agregó soporte para sincronización con los documentos emitidos y documentos recibidos del SII. Ahora es posible ejecutar un comando que carga en emitidos y recibidos los datos de los documentos y deja el código del Portal MIPYME para obtener el XML o el PDF de cada documento.
    • Se agregó a los servicios web el resumen anual de compras.
    • Se corrigió un bug que generaba problemas en algunas instalaciones no oficiales (fuera del soporte de SASCO SpA). En las cuales, al existir una excepción al emitir el DTE real, el servicio web entrega un código 200 como respuesta junto al mensaje de la excepción. CUando lo correcto era que entregase un código diferente. Ahora, al existir una excepción, se entregará código 500 y ya no estará ese problema que: redireccionaba sin parámetros a la página del DTE real. Lo que ocasionaba que se mostrara un error en la plataforma web.
    • Se inició el soporte para poder usar al SII como facturador. Esto debiese estar disponible en la próxima versión de LibreDTE. Con esto, el contribuyente podrá elegir si desea usar a LibreDTE como facturador o bien usar al SII como facturador. Lo que entrega grandes ventajas, como por ejemplo, disponer de una API para emisión pero sin salir del sistema del SII. Espero publicar más de esto en el futuro.
    • La carátula para generar el PDF ahora puede ser especificada como parámetro del servicio web. Esto permite ahora generar correctamente PDF de XML que sólo tienen el tag “DTE” y no el tag “EnvioDTE”.
    • Es posible, usando funcionalidades extras, generar el código ESCPOS de un DTE para enviar directo a imprimir en una impresora térmica. Este código se entrega en base64. El código ESCPOS permite imprimir en formato 57mm y 80mm.
    • El PDF de un DTE emitido ahora se puede bajar, opcionalmente, en base64.
    • Se agregó servicio web para obtener resumen de ventas y de compras por períodos de rangos de fechas.
    • Se agregaron servicios web para obtener los datos crudos (tal cual están en la base de datos) de items y clasificaciones.
    • Se corrigió un bug grave, que permitía a cualquier usuario de la API consultar por los datos de un item de otro contribuyente. Ahora se valida que el usuario tenga permisos sobre el contribuyente antes de entregar los datos del item.
    • El informe de DTE emitidos ahora entrega el detalle de los items.
    • Se genera enlace para enviar el PDF de un DTE emitido por Whatsapp a un receptor.
    • Se actualizó el CSV de certificación de boletas. También se agregaron las nuevas referencias que el SII pide para la certificación. Sin embargo, esto no fue probado, ya que en SASCO SpA no usamos este proceso de certificación. Si alguien tiene dudas respecto a esto puede avisarnos y lo revisamos para la siguiente versión.

Hay cambios en la base de datos, revisar script de actualización 20.04.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: DTE emitido sin XML

Esto permite por ejemplo cargar los datos de un DTE emitido, pero sin su XML. O bien permite limpiar un DTE emitido quitando el XML. Útil para boletas por ejemplo o cualquier DTE donde se quiera manejar el XML fuera de la base de datos.

Este fue uno de los cambios más grandes, ya que implicó estandarizar todo el sistema para que pueda funcionar sin tener los XML en la base de datos.

Como ahora ya no se requieren guardar los XML en la base de datos, se está considerando agregar un “storage” que permita almacenar los XML en el sistema de archivos.

Esto, si bien, permitiría tener una base de datos más pequeña, también implicaría perder ciertas funcionalidades de LibreDTE, específicamente en búsquedas o informes que usan datos de los XML para poder entregar los resultados.

A pesar de esta pérdida de funcionalidad, hay casos de uso interesantes donde se podría usar esto. Es probable que en alguna de las 2 versiones que quedan este año exista alguna novedad respecto a esto.

Anexo: Nueva documentación servicios web

Respecto a la nueva documentación de los servicios web. Se incluyeron todos los servicios web que estaban documentos usando Swagger. Y se ha documentado casi el 100% de servicios web del módulo de facturación.

Existen muchos servicios web no documentados, pero estos son, en general, servicios que están disponibles sólo en la aplicación oficial. Los cuales, obviamente se irán documentando.

Si encuentras que falta documentación de algún servicio web de la versión comunidad, no dudes en avisar y lo revisaré.

Agregar un comentario

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