LibreDTE versión 20190101

Después de varios meses de trabajo, tanto de programación como trabajo físico (vienen novedades… pronto…), está publicada la nueva versión de LibreDTE 20190101. Igual que el año pasado, año nuevo, versión nueva 🙂

Esta versión incluye 8 mejoras importantes:

  • Migración de Bootstrap 3 a Bootstrap 4.
  • Actualización códigos de actividad económica según indicaciones SII.
  • Actualización vigencia de archivos CAF (evita rechazos de SII).
  • Mejora en herramienta certificación boletas según nuevas instrucciones SII.
  • Invalidación RCOF al emitir boleta o nota de crédito asociada a boleta emitida en el pasado.
  • Envío automático de resumen de boletas al SII.
  • Impresión directa del DTE a impresora local o en red vía websockets.
  • Se pueden ver Dashboard antiguos con sus estadísticas.

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

  • Biblioteca:
    • Es posible indicar dirección casa matriz en PDF.
    • Si el medio de pago es banco se muestran datos de cuenta para pago.
    • Correcciones en validaciones actividad económica.
    • Se actualiza vigencia de CAF (según indicaciones SII).
    • Se agregó impuesto adicional para bebidas azucaradas.
    • Se crea un “trait” de PHP llamado “DteImpreso” que permite ser una base para los posibles formatos de DTE impresos (permite generar nuevos formatos impresos, no sólo PDF).
    • Si el item tiene descuento en porcentaje, se mostrará ese valor en vez del monto en el PDF.
    • Fix en descuentos y recargos (ahora pueden ser decimales).
    • La boleta no nominativa (al RUT 66.666.666-6) mantiene los datos del receptor (antes se quitaban).
  • Aplicación web:
    • Si se emite en una sucursal, se incluirá por defecto además la dirección de la casa matriz.
    • Si un módulo cualquiera tiene Dashboard y el usuario puede acceder a dicho Dashboard se usará como base del módulo.
    • Se migró de Bootstrap 3 a Bootstrap 4 (ver anexo).
    • Se crearon nuevas páginas para: iniciar sesión, recuperar contraseña, registrar usuario (más “limpias”).
    • Se creó Helper para crear Dashboard, específicamente (y por ahora) las estadísticas superiores.
    • Ahora los archivos de ejemplos CSV se descargan en vez de ser mostrados en el navegador.
    • Se actualizaron los códigos de actividad económica según nueva vigencia desde el 1ero de noviembre 2018 (ver anexo).
    • Se creó utilidad para crear RCOF, permite regularizar períodos anteriores al uso de LibreDTE donde si se emitieron boletas electrónicas.
    • Se actualizó la herramienta que certifica boletas electrónicas para nuevas instrucciones SII (no se generan notas de crédito ahora si no se pidieron).
    • Emisión masiva de DTE permite ahora agregar datos de Transporte (para guías de despacho por ejemplo) y referencias.
    • Mejoras en Dashboard con alertas y mostrando sólo estadísticas que tienen datos.
    • Se corrigió error al obtener RCV de RUTs con DV “K”.
    • Se puede indicar medio de pago al emitir un DTE.
    • Filtros de DTE emitidos permiten buscar por todos los DTE menos de un tipo o por rangos de fecha de emisión.
    • DTE temporal ahora tiene como dato el código de sucursal y el código del usuario (modificación SQL; aplicar script).
    • Se modifican varios substr a mb_substr para evitar problemas por caracteres especiales en cortes de strings.
    • Documentos de exportación ahora pueden tener monto total 0 si el monto de la moneda original es 0 (útil para nota de crédito por ejemplo).
    • Fix en proceso intercambio, se estaba enviando un RUT incorrecto en las caratulas de los XML.
    • Fix al hacer búsqueda en módulo cobranza, el buscador entregaba datos cambiados al filtrar por “vencidos”, “vencen hoy” o “vigentes”.
    • Datatables es script global ahora y además usa el diseño de Bootstrap 4.
    • La aplicación usará 2 layouts: uno “estándar” o “completo” y la versión “mínima” de ese mismo layout (body vacío). De esta forma se elimina el layout “popup”. Todo nuevo layout o layout personalizado deberá incluir una versión “mínima” (ver anexo).
    • El descuento de un item se hace ahora en base a la fecha y moneda. Y también depende de si el precio está en bruto o no como se calcula el descuento. Antes se estaba calculando mal el descuento cuando el precio del item era bruto.
    • Es posible elegir el periodo del Dashboard de facturación.
    • Es posible enviar a imprimir de manera directa un DTE, sin pasar por el dialogo de impresión (ver anexo).
    • Mejoras en mantenedor de folios, se reordenó el mantenedor y se agregaron mensajes explicativos sobre las opciones.
    • Se mejora la página de libro de boletas, ahora entrega mejor datos en el resumen y se puede bajar además un CSV con el detalle de las boletas emitidas.
    • El mantenedor de usuarios ahora contiene los datos de los usuarios autorizados (así se puede saber su correo o si está activo por ejemplo).
    • Se puede buscar un DTE en el Dashboard sólo con el folio, si existe sólo uno redirecciona, sino filtra en los documentos emitidos.
    • No es posible generar el libro local de ventas si existen DTE sin estado o DTE con estado rechazados.
    • Se crearon filtros en consumos de folios (aceptados, rechazados o con reparo) y se crea acción para mostrar RCOF pendientes de enviar al SII.
    • Es posible actualizar RCOF por correo o por servicio web del SII.
    • Se agrega gráfico con estado de los RCOF al Dashboard.
    • Se agrega alerta con RCOF rechazados al Dashboard.
    • Se invalida RCOF si se emite boleta o NC en el pasado.
    • Mejoras en vista de documento emitido para no mostrar cobranza o intercambio si no corresponde según DTE.
    • Al enviar un email, se solicitan sólo correos de usuarios activos (antes se enviaba el correo de notificación del sistema incluso a usuarios que ya no estaban vigentes).
    • Si el rechazo de un DTE es por firma (ej: no autorizada) se permite reenviar el DTE rechazado al SII (ya que bastaría autorizar la firma y reenviar para que sea aceptado).
    • Fix al mostrar listado de contribuyentes cuando se asigna permiso de admin y permiso de módulos a un usuario (mostraba repetidos los contribuyentes).
    • Se obtienen detalles del correo del estado del RCOF (antes sólo se obtenía la hora de procesamiento en SII), útil si está rechazado o reclamado.
    • Se envía automáticamente el resumen de boletas al SII (requiere funcionalidades extras desbloqueadas).
    • RCOF puede ser enviado a un servidor remoto (ver anexo).

Hay cambios en la base de datos, revisar script de actualización 20190101.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.

Anexo: migración de Bootstrap 3 a Bootstrap 4

Se realizó una migración de todo el código del framework SowerPHP desde Bootstrap 3 a Bootstrap 4. ¿Era necesario? Por supuesto, no podemos quedarnos atrás. ¡Las “cards” de Bootstrap 4 son lo mejor!

Si no has modificado LibreDTE (no has creado vistas en una extensión propia, que, de paso, es la forma ideal de modificar LibreDTE)  entonces sólo debes actualizar el framework y luego LibreDTE.

Por el contrario, si tienes vistas personalizadas, deberás revisar los cambios en Bootstrap 4 para corregir tu diseño.

Anexo: actividades económicas

Desde el 1ero de noviembre de 2018 existe un nuevo listado de actividades económicas vigentes. En la aplicación existe un listado con los nuevos códigos, deberás cargar estos códigos en tu aplicación para tenerlos disponibles.

Además debes migrar los datos de los antiguos a los nuevos códigos, esto puede hacerlo cada contribuyente de manera manual en la configuración de la empresa.

Si deseas hacer la migración de manera masiva y transparente para tus usuarios (y sobre todo si tienes muchos usuarios y/o quieres migrar el casi millón de contribuyentes existentes hoy en la base de datos) contáctanos ya que tenemos a la venta un script que permite realizar la migración de manera automática.

Anexo: layout “completo” y layout “mínimo”

La aplicación (y el framework de hecho) por defecto usa ahora 2 layouts siempre. Uno “completo” que es el layout con todo lo que la página incluye (menús, pie de página, etc) y un layout mínimo (con body “vacio”). Ya no existe el layout popup y el layout mínimo es automático donde se necesita a partir del layout “completo”.

Para efectos prácticos, si existe un layout llamado “LibreDTE” deberá existir un layout llamado “LibreDTE.min” que será la versión “mínima” del layout “LibreDTE”.

Puede ver esto con los layouts por defecto incluídos en LibreDTE.

Esto es importante, ya que si tienes un layout personalizado definido en la aplicación, deberás crear la versión “mínima”.

Anexo: impresión directa de DTE

Revisar información oficial en el blog en artículo “Enviar DTE directo a impresora (sin abrir PDF)“.

El artículo muestra que se puede enviar a imprimir el PDF directamente, y también a una impresora térmica con ESCPOS, esto último no está disponible en la versión liberada de LibreDTE, sólo la impresión directa del PDF.

Anexo: invalidación RCOF

Existía un problema grave en LibreDTE asociado a los RCOF (reportes de consumos de folios) de boletas. Los RCOF se enviaban diariamente, y enviaban todo lo asociado a boletas y notas de créditos de boletas del día anterior. Sin embargo, si un usuario emitía una boleta hacia atrás esa boleta no quedaba considerada en el RCOF, ya que ya había sido enviado.

Desde ahora, al emitir una boleta o una nota de crédito asociada a una boleta el RCOF se invalida en LibreDTE y el usuario deberá enviarlo nuevamente. El usuario puede darse cuenta de los RCOF sin enviar fácilmente gracias a los nuevos filtros disponibles para tales efectos.

Anexo: enviar RCOF a servidor remoto

Ahora es posible enviar el RCOF a un servidor remoto. Antes sólo era posible enviar el RCOF directo al SII, pero qué pasa si se requiere unir el RCOF con otra plataforma de facturación o bien se requiere unificar varios RCOF en uno sólo.

Ahora es posible enviar el RCOF a un servidor remoto usando, por el momento, sólo SSH (SFTP o SCP). De esta forma, el archivo XML es copiado a otra ubicación donde podrá ser procesado. El comando que se utiliza es el mismo que envía el RCOF al SII, pero con parámetros diferentes.

Un ejemplo de ejecución es:

./shell.php Dte.Boletas_EnviarRCOF dte_plus 0 0 sftp://[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).

Por defecto, si sólo si indica el usuario, se tratará de usar la clave pública de SSH para autenticar contra el servidor, si se desea especificar la contraseña del usuario, en vez de usar “usuario” se debe usar “usuario:contraseña” (usuario, dos puntos, y luego la contraseña).

Agregar un comentario