10 errores más comunes al usar facturación electrónica

Con el tiempo, uno va conociendo cuales son los principales errores que se cometen al usar facturación electrónica. En esta guía te presentamos los 10 más comunes y cómo puedes evitarlos, y, si ya los cometiste, como puedes corregir la situación.

Si te ha ocurrido alguno de estos, o crees que deba existir otro en la lista, por favor cuéntanos en los comentarios, encantados de conocer tu opinión.

1. Registrar una compra en un mes que no corresponde

Desde que entró en vigencia el registro de compras y ventas del SII, este último exige que las compras sean registradas, y por lo tanto el IVA crédito usado, en el mes que se realiza el acuse de recibo.

Por ejemplo, si una factura fue emitida en septiembre, pero el acuse de recibo no se realizó hasta octubre (porque manualmente se hizo en octubre o porque pasaron los 8 días y se hizo de manera automática en octubre) el registro de esta factura, y su declaración en el formulario 29, deben ser realizadas en octubre, no en septiembre.

Si declaró una factura por error en un mes que no corresponde, debe corregir su formulario 29. Para evitar este tipo de situaciones siempre verifique que lo declarado en el formulario 29 cuadre de manera exacta con el registro de compras que está disponible en el sitio del SII.

En LibreDTE usted puede tener acceso al registro de compras sin tener que ir al SII. Adicionalmente, los documentos recibidos se van sincronizando con el SII de tal forma que se van corrigiendo automáticamente los casos que usted pudo haber digitado de manera incorrecta.

2. Emitir una boleta con fecha anterior al día actual

Si bien es posible emitir una boleta con fecha anterior al día actual, debe tener cuidado con el reporte de consumo de folios (RCOF). El emitir una boleta con fecha actual causará que su RCOF, que ya fue enviado por su sistema, quede inválido y deberá enviar uno nuevo.

La recomendación es nunca emitir boletas con fecha anterior, y si lo hace, recordar volver a enviar su RCOF.

3. Dejar folios saltados sin uso disponibles

Cuando en un sistema por cualquier motivo se saltan los folios y quedan sin uso, estos deben ser procesados. Hay básicamente 2 alternativas:

  • Recuperar el folio perdido, a veces poco práctico.
  • Anular el folio en el SII, lo más simple.

Si usted no hace alguna de las opciones anteriores, cuando desee timbrar nuevos folios, el SII le podría informar que no timbrará nuevos folios ya que tiene “suficientes disponibles”.

En LibreDTE usted puede acceder al mantenedor de folios y en este encontrar una pestaña con “Folio sin uso” la cual le permitirá determinar rápidamente si tiene folios en esta situación. En el mismo mantenedor puede bajar un completo informe con los estados de uso de los folios (usados, anulados y pendientes), así como también hacer la anulación de los folios sin tener que ingresar al SII.

4. No emitir boleta electrónica al recibir un pago con RedCompra

El voucher de la máquina de RedCompra sólo reemplaza las boletas en papel. Si usted utiliza boletas electrónicas, el voucher de RedCompra no tiene validez y siempre debe emitir la boleta electrónica asociada.

Bonus: siempre debe contabilizar en su registro de mes las boletas electrónicas o los voucher de RedCompra que haya generado durante el mes.

5. Entregar el certificado digital (firma electrónica) a terceros

La firma electrónica es personal, y no debiese ser compartida con terceros. Si bien no es algo grave en la mayoría de los casos, puede traer problemas en caso de “peleas” o “separaciones” con el tercero. Esto porque la firma no sólo permite acceder a las opciones de facturación, sino que a toda la cuenta del SII de la persona natural dueña de la firma.

Lo anterior permitiría por ejemplo, que un tercero con acceso a la firma y contraseña pueda emitir boletas de honorarios o hacer cambios en la situación tributaria de la persona natural en el SII.

Se recomienda no compartir la firma, o de hacerlo, sólo con terceros de confianza. Y por ningún motivo, dejar la firma instalada en un computador donde no se tenga control de quien acceder a dicho equipo.

En LibreDTE el certificado debe ser subido a la plataforma y en la base de datos se encuentra almacenado de manera segura encriptado. No hay forma, vía web, de obtener el certificado para un tercero y menos su contraseña. Sólo el usuario que lo subió puede descargarlo y aun así, no podría conocer la contraseña.

6. No emitir notas de crédito por las devoluciones

Cuando nos solicitan una devolución de un producto y a cambio entregar el dinero pagado, o por un servicio prestado que no quedó prestado al 100% o cualquier otro motivo. Siempre debemos generar una nota de crédito, esta nota de crédito tiene 2 formas:

  • Nota de crédito que anula: se usa cuando se devuelve la totalidad del monto.
  • Nota de crédito que corrige montos: se usa cuando de devuelve una parcialidad del monto.

La elección dependerá de cada caso, lo importante es que al momento de emitir la nota de crédito se registre:

  • Documento de referencia, o sea, la factura o boleta que se está alterando.
  • Datos de a quien se realiza la devolución. Esto es importante cuando una boleta es no nominativa, al momento de hacer la devolución se deben pedir los datos al cliente para confeccionar la nota de crédito.
  • Emitir la nota de crédito a tiempo, o sea, dentro de 2 meses de la emisión de la referencia.

Si bien el último punto no es obligatorio, si no lo hacemos dentro del plazo, perderemos el derecho a recuperar el IVA de la venta en el formulario 29.

En LibreDTE es muy simple anular una factura/boleta, aprende a hacerlo en este video.

7. No hacer respaldos de los documentos

La ley nos exige tener un respaldo por a lo menos 6 años de los documentos emitidos y recibidos. Si bien el proveedor del servicio puede tener sus propios respaldos, la responsabilidad final siempre es del contribuyente, y el SII siempre le exigirá a este y no al proveedor que entregue los documentos si le son solicitados.

Al utilizar facturación electrónica, los documentos legales y que el SII podría exigir son:

  • XML documentos emitidos.
  • XML documentos recibidos.
  • XML libros de compra y venta.

Como ente fiscalizador, el SII, pedirá principalmente lo asociado a IVA crédito fiscal e IVA débito fiscal. Los documentos legales son los XML, los PDF también es buena idea respaldar, pero si no se respaldan se pueden reconstruir a partir de los XML.

En LibreDTE nuestros clientes del servicio Plus tienen la opción de configurar un respaldo diario y automático utilizando Dropbox. También contamos con la herramienta necesaria para reconstruir un PDF a partir de su XML.

8. No verificar el estado de envío al SII de los DTE

Todos los DTE emitidos, excepto boletas, son enviados al SII, y este, asigna un número de identificación del envío o Track ID. Este número es muy importante, ya que permite hacer un seguimiento al envío del documento y conocer en qué estado está. El estado ideal “EPR – Envio Procesado”, sin embargo hay casos donde el estado es diferente, el caso más malo, estados rechazados.

Hay 3 tipos de estados:

  • Aceptado: todo fue ok.
  • Aceptado con reparos: el envío fue aceptado por el SII, pero tiene alguna observación, más o menos relevante, sobre el envío. Se debe buscar reducir los estados aceptados con reparos con el tiempo.
  • Rechazado: el SII no reconoce como legal el DTE.

El estado crítico es el último, ya que al estar el DTE rechazado no tiene ninguna validez legal y por ende no puede ser entregado al cliente ni mucho menos incluido en la declaración de impuestos en el formulario 29.

Al enviar los DTE al SII, debe verificar en algún punto el estado de estos. Y corroborar que los del período que cerrará no estén rechazados.

LibreDTE tiene una verificación automática de los estados de los DTE. Si detecta alguno rechazado, informará inmediatamente al contribuyente para que tome una acción al respecto.

9. No verificar el estado de aceptación del DTE por parte del cliente

Este punto está muy asociado al error #6. Cuando un DTE es emitido y aceptado por el SII, no significa que el cliente lo haya aceptado. De acuerdo a lo que estipula la ley el cliente tiene hasta 8 días para reclamar el DTE y decir que no está de acuerdo con el mismo.

El gran problema, es que si se emiten DTE y los clientes los reclaman, podríamos terminar el mes con documentos que los clientes no aceptaron y debemos anular. Ya que de otra forma, deberemos pagar el IVA débito de un DTE que en la práctica, no se usó.

Al igual que en el punto #6, el DTE reclamado por el cliente debe ser anulado. Conversar con el cliente el motivo del reclamo y volver a emitir el DTE si corresponde.

En LibreDTE podrá ver en un reporte los estados que los receptores asignan a sus DTE emitidos. De esta forma podrá identificar casos que hayan sido reclamados fácilmente.

10. No revisar el registro de compras del SII

El registro de compras del SII es el registro oficial de las compras que una empresa realiza, y debe ser revisado. Idealmente, debe ser cuadrado con la información local que se maneja.

Supongamos el siguiente escenario:

  • Contribuyente nunca revisa el registro de compras del SII. Peor aun, el contador hace contabilidad con un libro que lleva aparte.
  • Empresa Fantasma S.A. emite una factura por venta a crédito por $10.000.000 al contribuyente.
  • Después de 8 días, la factura es aceptada automáticamente por el SII y pasa a ser parte de las compras del contribuyente.
  • Empresa Fantasma S.A. pasa a factoring la factura (esto es posible porque el contribuyente no la reclamó).

Resultado, la empresa Fantasma S.A. recibe el dinero del factoring y luego el factoring cobrará al contribuyente el pago de la factura de 10.000.000. Y esto ¡es legal!

Moraleja: revisar el registro de compras del SII es fundamental. El contribuyente habría evitado el problema si al haber revisado el registro de compras hubiese reclamado la factura (ya que no se habría podido pasar a factoring).

Bonos: la declaración de impuestos se debe hacer con la información de los registros de compra y ventas, no con libros internos, ni siquiera los libros de compra y venta (que ya no tienen vigencia).

Publicado en: LibreDTE | Deje un comentario

Historia de LibreDTE

Hoy se cumplen 3 años desde que se lanzó LibreDTE y es momento de contar la historia.

Cuando nació SASCO SpA el año 2012 (formalmente, ya que había nacido mucho antes de manera informal) una de las metas propuestas fue “tener la empresa controlada”. Esto es algo

que todos quieren, pero ¿cómo lograrlo?.

La idea simple fue “automatizar”, aunque en realidad era algo más simple, en ese momento la palabra en mi mente era automatizar pero en realidad estaba pensando en “digitalizar”. Todo tenía que ser digital, esto tenía un reto: facturación y contabilidad.

Necesitaba un sistema de ventas, gestión, control, que emitiera los documentos tributarios y que además cumpliera con llevar la contabilidad del negocio, y más encima, tenía que ser construido en la misma empresa. O sea, si somos empresa de software, lo mínimo era que el software que controlaría todo en la empresa se hiciera internamente.

El tiempo pasó y el proyecto quedó de lado, la formalización de SASCO no traía más beneficios que los que ya existían y yo había empezado en esa época en un nuevo trabajo y a estudiar nuevamente. Por lo que tiempo para empezar un proyecto tan grande no había.

A fines del año 2014 fue cuando supe de la obligatoriedad de la facturación electrónica a contar de agosto 2016 para las PYMEs. Ahí dije “ahora o nunca” y en diciembre de 2014 decidí empezar el proyecto. Compré la firma electrónica, cree el repositorio en Github y cuando iba a empezar a leer la documentación de LibreDTE llegó el verano y me fui de viaje al sur, ahí quedó el proyecto.

Al final, en agosto de 2015 decidí retomarlo, esta vez en serio, y empecé a estudiar todo lo necesario a mediados de ese mes. En poco menos de un mes estuvo listo el núcleo de LibreDTE, la primera versión de esta biblioteca se publicó el 18 de septiembre de 2015. Posteriormente se desarrolló una funcionalidad básica web que fue lanzada el 1ero de octubre 2015 y el módulo de facturación multiempresa se desarrolló en casi 3 semanas durante noviembre. En 3 meses LibreDTE ya contaba con 3 proyectos diferentes creados, que cumplían con lo mínimo exigido por el SII.

Y desde octubre de 2015 se han hecho infinidad de mejoras y cambios. Lo que se diseño en algún momento, el núcleo, se ha mantenido, pero hay módulos nuevos y otros reconstruidos casi de cero.

LibreDTE surgió como una necesidad propia, para SASCO SpA, como una forma de tener el control de nuestra empresa, de manera online y simple. Pero vimos que era una buena oportunidad de entregar una herramienta que podría servidor a otros, por eso, es que el núcleo de LibreDTE y la aplicación web fueron liberados bajo licencia AGPL, de esta forma cualquier empresa en Chile se puede beneficiar de nuestra solución de facturación. Y no sólo hemos desarrollado la aplicación web, tenemos extensiones de ecommerce, clientes de escritorio y otros proyectos que están publicados en nuestra cuenta en Github donde hoy hay más de 20 proyectos.

Con los años, hemos ido atrayendo clientes que ven en nosotros a una empresa que presta un servicio de calidad, con buen soporte y una relación precio/funcionalidades que les encanta.

Tenemos varios módulos, actualmente cubrimos más que sólo facturación. Hoy tenemos contabilidad electrónica (si, electrónica, no contabilidad computacional), un módulo de RRHH que crece más mes a mes, inventario y módulos de pagos, cobranzas y tienda electrónica para todos nuestros clientes.

Si hay algo que se debe reconocer en estos 3 años, es el apoyo de nuestros usuarios y clientes. Esto ha sido fundamental, ya que nos ha permitido ir detectando requerimientos para ir mejorando el software. Además, muchos de estos usuarios también son los que nos ayudan con las pruebas de funcionalidades nuevas antes de anunciarlas oficialmente. Sin ellos, el crecimiento que ha tenido LibreDTE en estos 3 años habría sido imposible. Algunos de ellos nos han dejado su feedback.

Esperamos cumplir muchos años más, estamos felices de apoyar sus negocios, yo estoy feliz de hacerlo. El listado de cambios y mejoras para el software es muy largo, hay muchas ideas en mente y falta tiempo para llevarlas a cabo, pero avanzamos. Ya nos han visto, aquellos que son clientes nuestros desde el inicio saben que así es, lo que ofrecíamos hace 3 años no es lo mismo que ofrecemos hoy, es mucho más, y nuestro valor base no ha cambiado.

Hay muchas anécdotas que podría contar de estos 3 años, pero ya está largo el post y las dejaré para un futuro.

¡Gracias por preferirnos!

¿Y tú? ¿Aun no usas LibreDTE? Te invito a conocer nuestra solución libre para facturación.

Publicado en: LibreDTE | Deje un comentario

LibreDTE versión 20180521

¡Hola! después de varios meses (desde el 1ero de enero) al fin se ha publicado una nueva versión de LibreDTE (aplicación web y biblioteca).

Esta versión incluye 5 mejoras importantes:

  • Se pueden copiar DTE y reemplazar cotizaciones.
  • Se puede emitir masivamente documentos vía web.
  • Informe de folios usados, anulados y pendientes según el SII.
  • Intercambios sin duplicados y posibilidad de recibir/reclamar automáticamente los mismos.
  • Sincronización con el registro de compras del SII cargando automáticamente documentos en el libro de compras que están en el SII como aceptados.

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

  • Biblioteca:
    • Ya no se escapan los utf8 al convertir a JSON los arreglos (traía problemas al pasar de array a JSON y luego denuevo a array)
    • Fix con casos anulados al generar PDF de IECV.
    • En el PDF ahora sale información de forma de pago y días para el pago.
    • Se agregaron todas las direcciones regionales para todas las comunas.
    • En PDF se indica si un descuento global está asociado a un monto exento o no (generaba confusión al tener 2 descuentos).
    • La clase PDF es facilemente heredable (para generar PDF personalizados a partir de esta clase).
    • La tabla normal (no la tabla HTML) del PDF puede tener un alto fijo (permite tener líneas hacia abajo y que no quede un espacio tan grande en blanco).
  • Aplicación web:
    • API que entrega TED puede hacerlo ahora en SVG y BMP (además de PNG).
    • Informe con DTE emitidos sin envío por correo a casilla de intercambio del cliente.
    • Fix IVA en descuentos globales en pesos de boletas (no se estaba considerando y salían mal los descuentos).
    • Se actualizan los permisos del usuario antes de validar si tiene acceso a cierto recurso (esto es necesario cuando un usuario no administrador con acceso a la API hace consultas por otra empresa a la que tiene acceso, pero no como administrador principal).
    • Anulación vía API de guías de despacho.
    • Fix al obtener correos de un DTE (todo a minúsculas para evitar duplicados).
    • Mejoras en datos que entrega el servicio web de información de un contribuyente.
    • Al emitir un DTE, si el receptor no tiene ciertos datos, se está normalizando y existen en la base de datos, se corrige el DTE agregándolos.
    • Se permite enviar el DTE emitido automáticamente al generar. Se debe configurar en la empresa y tendrá efecto vía web o vía API.
    • Fix en limpieza código de item (casos que aun generaban problemas)
    • Al actualizar el estado de un DTE emitido ahora se consideran todos los DTE que tienen como estado un número negativo (ej: -11)
    • Se valida que el CAF esté vigente al momento de emitir un DTE (menos 18 meses), si no está vigente no se podrá emitir el DTE. Esto evita rechazo posterior por el SII.
    • Se agrega resumen del libro de ventas por año (útil para cuadrar todo previa declaración renta).
    • Se agrega total a informe de activos fijos.
    • Es posible indicar cuantos meses hacia atrás se quiere buscar en el registro de ventas para sincronizar los estados que los receptores han asignado a los documentos.
    • Es posible personalizar por empresa el enlace de verificación de boletas. Útil si la empresa desea tener su propia página de verificación de boletas o bien redireccionar desde la suya a la página de LibreDTE.
    • Servicio web que permite obtener el historial de ventas de un receptor (montos mensuales brutos).
    • Fix en items que mostraba precios muy altos en notación científica.
    • Página de emisión sólo muestra al usuarios los DTE que está autorizado a emitir, si no tiene ninguno ahora dará un error y no podrá ingresar a la página de emisión.
    • Se pueden copiar DTE emitidos (reales) para emitir uno nuevo.
    • Se permite copiar o reemplazar un DTE temporal (permitiendo “modificar”).
    • Se puede elegir cuantos días actualizar la bandeja de intercambio (7, 30 o 90).
    • Se agrega buscador de documentos con folio de cotización (33-AABBCCD) o de DTE (T33F1).
    • Se agrega buscar masivo de documentos.
    • Se agrega gráfico a dashboard con resumen de estados de receptores para los documentos emitidos. Se puede ver un informe con el detalle de los casos.
    • Se puede explorar el RCV sin tener que existir previamente el libro del mismo período creado en el sistema.
    • Las notificaciones que antes se enviaban sólo al administrador principal, ahora son enviadas a todos los administradores de la empresa.
    • Se puede elegir si el PDF se debe descargar al equipo o tratar de mostrar en el navegador.
    • Si la empresa tiene documentos emitidos rechazados por el SII se mostrará una alerta en el dashboard.
    • Servicios web para poder descargar el listado de boletas electrónicas recibidas y sus PDF.
    • Es posible enviar un DTE temporal a un correo no registrado (tal como en los DTE emitidos).
    • Se puede usar una plantilla HTML para los envíos de correo. Con esto se puede personalizar al 100% el envío del correo (lo que complementa la personalización al 100% de los PDF).
    • Se puede descargar el RCV en el formato oficial del SII o en el formato de la IECV (útil para importaciones en sistemas que usan la IECV como entrada).
    • Se muestran documentos referenciados por el DTE que se está viendo en la página de un DTE emitido.
    • Se agrega buscador de documentos temporales, vía web y API.
    • Se puede ver la página de los usuarios autorizados en el SII desde LibreDTE.
    • Se puede notificar manualmente el pago de un DTE al servicio web del contribuyente.
    • El servicio web de información de un DTE emitido permite elegir si bajar o no el XML, detalle o todos los datos del DTE (permite disminuir las consultas a servicios web).
    • Por defecto, ahora no se muestra la pestaña con el detalle en los libros (compras, ventas y guías). La empresa puede elegir mostrar esa pestaña si lo requiere. Se quitó por defecto ya que al tener muchos documentos en el detalle generaba problemas.
    • Es posible descargar por cada CAF el listado de folios según su estado en SII (recibidos, anulados o pendientes).
    • Se puede solicitar un informe por correo con el estado de todos los folios. Muy útil cuando se trata de determinar que folios se han saltado y están sin uso.
    • Al modificar un contribuyente seleccionado se vuelve a seleccionar para actualizar su configuración (antes había que hacerlo manualmente, y algunos usuarios no lo sabían y pensaban que la configuración no se había guardado).
    • Se reordenó el código de actualización de bandeja de intercambio (entre otros, para disminuir el checkeo de los XML y verificación de esquema de XML recibidos para no procesar casos con errores) y el código de respuesta de intercambio (principalmente moviendo de controlador a modelos).
    • Es posible responder automáticamente documentos de intercambio, ya sea programando un trigger o bien consultando un servicio web del contribuyente.
    • Ahora se evita que se cargue un intercambio donde todos los DTE que incluye ya están previamente cargados en la bandeja.
    • Es posible sincronizar el registro de compras con el SII.
    • Comando para limpiar tabla dte_recibidos y dte_intercambios.

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

Recuerden además actualizar el framework SowerPHP, varios cambios requieren una versión actualizada del framework.

Si tienen dudas pueden escribir al foro o si tienes soporte oficial de SASCO SpA abrir un ticket de soporte.

Anexo: Mejora en proceso intercambio

Se hicieron varias mejoras al proceso de intercambio, básicamente programando nuevamente varias rutinas y ordenando el código. Lo principal es que:

  • Al actualizar la bandeja de intercambio no se cargarán más intercambios que ya existan. Esto si, sólo y sólo si todos los DTE del intercambio que se está revisando ya existen en la bandeja. Si alguno no existe, se cargará igualmente.
  • Al actualizar la bandeja de intercambio se revisará si es posible procesar la respuesta de manera automática.

Para procesar la respuesta de manera automática hay 2 opciones:

  1. Consultar a un servicio web del contribuyente
  2. Programar el trigger: dte_dte_intercambio_responder

Lo que el trigger debe retornar es en el mismo formato que el servicio web del contribuyente.

Además existe el trigger dte_dte_intercambio_actualizar que se ejecuta al principio de la actualización de la bandeja de intercambio. Este trigger permite:

  • Omitir la actualización de la bandeja, retornando false
  • Reescribir por completo la actualización de la bandeja, por ejemplo para que se consulte un único correo y no uno por empresa (o cualquier otro motivo para reescribirla), retornando un arreglo con los índices: n_uids, omitidos, n_EnvioDTE, n_EnvioRecibos, n_RecepcionEnvio y n_ResultadoDTE
  • Cambiar el objeto del correo electrónico que se revisará, retornando un objeto \sowerphp\core\Network_Email_Imap

Anexo: Sincronización con el registro de compras del SII

El proceso que actualiza la bandeja de intercambio ahora puede sincronizar con el registro de compras del SII para realizar las siguientes acciones:

  • Agregar a documentos recibidos los documentos que están como “registrados” en el SII. Esto también recibirá los intercambios pendientes asociados a dichos documentos.
  • Eliminar el intercambio y documentos recibidos que están como “no incluir” o “reclamados” en el registro de compras del SII.

Esta funcionalidad hace uso de los servicios web del SII de la aplicación oficial de LibreDTE.

Publicado en: Nuevas funcionalidades | Deje un comentario

Mantención servidor 21/02/2018 12:00 CLT

Importante: proveedor cambio fecha de mantención a 22/02/2018 12:00 CLT

Por razones de seguridad nuestro proveedor hará una mantención programada el día 21/02/2018 entre 12:00 y 13:00 CLT, esta mantención implicará el reinicio del servidor de LibreDTE el cual no podrá ser accedido por máximo 15 minutos. Con el mismo proveedor, ya hicimos este proceso con otro servidor y el tiempo real abajo fue aproximadamente de 2 minutos.

Durante esta ventana de tiempo no podrán acceder a la aplicación web de LibreDTE ni a la API. Obtendrán un error de nuestro proxy Cloudflare. Este mensaje será normal en esta ventana de tiempo y se espera que no dure más de 2 a 5 minutos.

Lamentamos el inconveniente que esto pueda causar, pero es una medida necesaria para mitigar los fallos conocidos como Meltdown y Spectre (https://meltdownattack.com).

Pueden ver el estado del servicio en el item “Aplicación web LibreDTE” en https://status.libredte.cl

Si requieren emitir urgente un documento en ese momento pueden:

a) Si es factura, emitir guía en papel y luego facturar.
b) Si es boleta, emitir boleta en papel.

Cualquier duda por favor contactar en https://libredte.cl/soporte

Publicado en: Sin categoría | Deje un comentario

Versión LibreDTE 20180101

¡Feliz año nuevo! Y como ya es costumbre, celebramos una fecha especial con una nueva versión de la biblioteca y aplicación web de LibreDTE.

Esta versión incluye mejoras en la programación de la aplicación, simplicidad para hacer cambios, integración y mejoras en el diseño del código.

Esta versión corrigió un BUG grave asociado a boletas. También había un problema de rendimiento en facturas de exportación. Si usas algunos de estos ¡debes actualizar tu versión de LibreDTE!

Lo más relevante:

  • Biblioteca:
    • Se agrega, y normaliza, información de OtraMoneda de un DTE.
    • Correos en boletas son colocados como referencias (no hay tag para correo en boleta, el que hay se usa para el teléfono). Con esto, el correo saldrá en el PDF como una referencia.
    • Se actualizó esquema de DTE para poder usar tipo de transacción de compra y venta.
    • Se normaliza forma de pago cuando es DTE de exportación (entrega gratuita se mapea al código 21 de aduanas).
    • Ejemplo de consumo de folios de boletas incluye caso para generar consumos vacíos si no se indican documentos.
    • Se permite colocar el timbre/total/acuse inmediatamente debajo del detalle en el PDF, y no al pie de la página (esto en hoja carta).
    • Se puede generar libro de guías sin guías de ventas (antes daba error).
    • Se modifica parser de set de prueba para incluir OtraMoneda en el set de exportación.
    • Es posible crear XML con un namespace en los tags.
    • Se agrega flag para enviar DTE comprimido al SII.
    • Se corrige ancho de timbre en papel continuo para que sea lo más grande posible.
    • Se agrega referencia de entrada de mercadería (EM).
    • Fix al haber DTE sin comuna emisor en creación PDF (útil para XML de DTE que no son generados por LibreDTE y vienen sin ese tag).
    • Se crea método para obtener las referencias de un DTE.
    • Se contabiliza el impuesto a vehículos.
  • Aplicación web (y módulo facturación):
    • Se puede obtener configuración de empresa vía servicio web.
    • Se añade tipo de cambio a DTE de exportación según exigencia del SII. Si se crea un DTE de exportación y no se indicó el tipo de cambio ni se puede determinar de manera automática, no será posible crear el DTE. Más información en el blog.
    • Cotizaciones ahora podrán tener las personalizaciones básicas del PDF de hoja carta que se aplicaban a DTE reales.
    • Se puede obtener vía API los folios sin uso en la aplicación (entre el primero emitido y el último emitido).
    • Es posible configurar para colocar el timbre del PDF  hoja carta inmediatamente debajo del detalle, sin dejar espacio en blanco entre el detalle y el timbre.
    • Se crea un nuevo sistema para manejar las API a las que LibreDTE tiene acceso, esto permite definir API personalizadas por cada APP fácilmente y consultarlas en el objeto del contribuyente con Contribuyente::getApiClient() (ver anexo).
    • Es posible personalizar al 100% el PDF del DTE con un servicio web (ver anexo).
    • Se crean triggers y se limpia el código de la versión liberada de código que está sólo en versión oficial (ver anexo).
    • Se crea método para obtener enlaces públicos de las cotizaciones o documentos emitidos (xml y pdf).
    • Se puede definir una cuota de registro de empresas por usuario.
    • Se puede indicar si usar papel continuo o no al descargar el PDF por GET, parámetro papelContinuo, esto permite especificar sin tener que modificar la configuración el tipo de papel a descargar el PDF.
    • Se corrigió BUG grave que permitía eliminar boletas emitidas reales (si usan boletas, es obligatorio actualizar a esta versión por este BUG).
    • Es posible configurar el modelo que representa el Contribuyente. Esto permite crear un nuevo modelo que herede del contribuyente y tener este modelo extendido disponible en la aplicación (muy útil al crear módulos nuevos en una extensión).
    • Corregido un problema de rendimiento al hacer búsquedas en documentos emitidos si existían DTE de exportación. Esto generaba que se requirieran varios segundos para listar los DTE emitidos.
    • Se mejora detección automática de estado de los DTE (incluyendo más casos).
    • Se agrega referencia personalizada “EM: entrega de mercadería” a la lista de referencias en página de emisión de DTE.
    • En la vista del intercambio, pestaña avanzado, se puede ver un resumen de los documentos del intercambio.
    • Se detecta donde viene el correo en los datos del receptor, usuarios de API u otros DTE pueden enviar el dato en un tag que es para teléfono. Sobre todo aquellos que usan boletas.
    • Se agregaron exportaciones a la propuesta del F29.
    • Se mejoró el error que se obtiene al no poder solicitar timbraje electrónico desde LibreDTE (requiere acceso a servicios web oficiales de www.libredte.cl)
    • Se puede agregar NumId al emitir un DTE de exportación.
    • Se puede ver el estado de los folios sin uso y anularlos directamente en LibreDTE sin entrar al SII (requiere acceso a servicios web oficiales de www.libredte.cl).
    • Mejoras pequeñas para dispositivos móviles (en el futuro se harán más).
    • Se puede crear un menú personalizado para el contribuyente (ver anexo).
  • Framework (estos cambios son genéricos y afectan a la aplicación web):
    • Usuario tienen configuración extendida, igual que los contribuyentes (se debe aplicar cambio en BD, revisar script actualización).
    • Soporte de triggers (explicados antes, ver anexo).
    • Soporte para una nueva capa de la aplicación, una extensión que va sobre la capa website. Esto permite personalizar la aplicación, sin realizar cambios al código de la aplicación (ver anexo).
    • Soporte para 2FA (ver anexo).
    • Se actualizó a Font Awesome 5. Si tienen modificaciones o requieren migrar, se recomienda usar el script de migración.

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

Recuerden además actualizar el framework SowerPHP, muchos de los cambios requieren una versión actualizada del framework.

Junto a esta versión se publicó una nueva versión de los términos, condiciones de uso y licencia del proyecto LibreDTE. Son básicamente los mismos de antes, pero redactados por nuestro abogado. Se recomienda revisar la nueva versión de estos en la página de términos, condiciones de uso y licencia del proyecto LibreDTE.

Si tienen dudas pueden escribir al foro o si tienes soporte oficial de SASCO SpA abrir un ticket en https://soporte.sasco.cl/open.php (tema: Facturación electrónica / Servicio Local)

Anexo: nueva capa sobre website (extensión personalizada)

La nueva versión del framework incorpora la posibilidad de incluir una capa sobre website. Esta era la capa superior de la aplicación, la que más arriba podía estar y por ende la que mayor preferencia tenía. Sin embargo ahora es posible “pisarla”.

Poder colocar una capa nueva sobre website permite a los desarrolladores dar prioridad a una extensión que desarrollen y de esta forma controladores, vistas y otras funcionalidades son obtenidas de esta capa superior en vez de website u otras inferiores.

Esto resuelve el problema: deseo modificar LibreDTE, pero al hacerlo ya no puedo actualizar.

Cuando se hacen cambios en el código de LibreDTE, es complicado luego llevar un registro de estos cambios para aplicar las nuevas actualizaciones. Con esta capa nueva, ya no será necesario modificar LibreDTE directamente, sino que bastará crear una extensión nueva y colocarla sobre website. Con esto los cambios se hacen en la extensión quedando separados del resto de LibreDTE y permitiendo seguir actualizando sin problemas.

En la extensión podrán personalizar funciones, métodos, clases, controladores y vistas. Incluso algunos modelos (como el del Contribuyente). También, y sobre todo para modificar comportamiento en otros modelos, podrán definir los triggers que quieren procesar.

Se irán publicando ejemplos a medida que los vayan solictando en:

https://github.com/LibreDTE/libredte-webapp-ejemplos-extensiones

Si quieres hacer algo en específico con una extensión de LibreDTE y no sabes cómo, pregunta en el foro o bien abre una issue aquí para que el ejemplo sea creado.

¡Haremos muchos ejemplos! Pero sólo si los piden.

Anexo: API servicios web del contribuyentes

Es posible definir servicios web a los que LibreDTE puede acceder, servicios que están en el control del contribuyente. De esta forma se pueden crear servicios externos y LibreDTE se conecta a ellos. Se definió una forma estándar de definirlos, de esta forma se pueden crear N servicios sin modificar el código, sólo la configuración.

Si quieres habilitar servicios agrega la configuración correspondiente al core.php Puedes basarse en la del servicios web de items disponible aquí.

Anexo: personalización PDF con servicio web

Es posible que cada empresa defina un servicio web propio para la generación del PDF, si lo hace, se usará en todos lados ese servicio web en vez del formato local. Esto permite personalizar al 100% el PDF y que salga con cualquier formato que el contribuyente desee.

Para esto se debe crear un servicio web, que tenga las mismas entradas y salida que el servicio web oficial de LibreDTE. Hay un ejemplo en el repositorio que muestra como hacer este servicio web en PHP:

https://github.com/LibreDTE/libredte-pdf

Se debe definir la configuración del servicio web para que el sistema lo permita configurar de la siguiente forma.

Más información en https://blog.libredte.cl/index.php/2017/10/06/personaliza-el-pdf-de-tus-dte-como-quieras/

Anexo: triggers

Se define un sistema de triggers que permite lanzar acciones bajo ciertas circunstancias. Los que existen actualmente:

  • dte_documento_emitido: se ejecuta cuando se emite un DTE vía API,  después de guardar el DTE temporal.
  • dte_documento_generado: se ejecuta cuando se genera un DTE real (se pasa de temporal a real)
  • dte_dte_tmp_guardar: se ejecuta antes de guardar el DTE temporal
  • dte_dte_emitido_guardar: se ejecuta antes de guardar un DTE emitido (real)
  • dte_dte_recibido_guardar: se ejecuta antes de guardar un DTE recibido.
  • dte_dte_tmp_emails: se ejecuta al solicitar los correos electrónicos
    de un DTE temporal (permite agregar correos de una fuente diferente)
  • dte_dte_emitido_emails: se ejecuta al solicitar los correos
    electrónicos de un DTE real (permite agregar correos de una fuente
    diferente)
  • dte_dte_emitido_eliminar: se ejecuta antes de eliminar un DTE real
    (sólo en casos que se permite eliminar, rechazo del SII generalmente)

La información de los triggers originalmente fue publicada en https://groups.google.com/forum/#!searchin/libredte/triggers%7Csort:date/libredte/O5s02uW9R2A/SIsoDs7NAgAJ

Si quieren pedir uno nuevo, pueden hacerlo en el foro o abriendo una issue en github.

Anexo: 2FA

Ahora, adicional a Latch, es posible configurar 2FA para las cuentas de usuarios. Para activar esta opción agregar la siguiente configuración a core.php

// Configuración para autorización secundaria
\sowerphp\core\Configure::write(‘auth2’, [
‘2FA’ => [
‘app_url’ => ‘www.libredte.cl’,
],
]);

La dirección www.libredte.cl se cambia por la URL de la APP real.

Además, cada empresa podrá exigir que el usuario use 2FA antes de seleccionar la empresa para operar con ella. Esto es configurable por empresa.

Más información en https://blog.libredte.cl/index.php/2017/12/23/autenticacion-secundaria-2fa-y-latch/

Anexo: menú personalizado por contribuyente

Es posible definir un menú estándar para los contribuyentes, esto en la configuración se define aquí. Este menú será para todas las empresas por igual.

Adicionalmente, cada empresa puede definir su propio menú, reemplazando el estándar. Esto se hace en la configuración de la empresa, pestaña General.

Publicado en: Nuevas funcionalidades | Deje un comentario