zoommx / facturatron Goto Github PK
View Code? Open in Web Editor NEWSistema de Facturación CFDI 3.3 extra simple
License: GNU General Public License v2.0
Sistema de Facturación CFDI 3.3 extra simple
License: GNU General Public License v2.0
Asigna IEPS a la partida siguiente.
Buenas tares estimado,
Bajé tu aplicación porque me interesa ver los módulos que haz implementado, pero estoy teniendo un problema a la hora de configurarla.
1.- Bajé el Facturatron_1_7_0_6.jar y lo ejecuté, pero me marcó un error de librerías, por lo cual bajé las libs que me proporcionaron y ya con eso quedó solucionado ese problema.
2.- Hice un schema llamado facturatron y también un usuario para la aplicación, después de eso ejecuté de nuevo el jar y marcó el nuevo error:
java.lang.Exception: Sin stacktrace
at facturatron.CEHandler.excepcion(CEHandler.java:42)
at facturatron.CEHandler.publish(CEHandler.java:37)
at java.util.logging.Logger.log(Logger.java:610)
at java.util.logging.Logger.doLog(Logger.java:631)
at java.util.logging.Logger.logp(Logger.java:747)
at org.apache.commons.logging.impl.Jdk14Logger.log(Jdk14Logger.java:126)
at org.apache.commons.logging.impl.Jdk14Logger.error(Jdk14Logger.java:152)
at com.googlecode.flyway.core.util.logging.apachecommons.ApacheCommonsLog.error(ApacheCommonsLog.java:51)
at com.googlecode.flyway.core.command.DbMigrate.applyMigration(DbMigrate.java:253)
at com.googlecode.flyway.core.command.DbMigrate.access$700(DbMigrate.java:44)
at com.googlecode.flyway.core.command.DbMigrate$1.doInTransaction(DbMigrate.java:186)
at com.googlecode.flyway.core.command.DbMigrate$1.doInTransaction(DbMigrate.java:135)
at com.googlecode.flyway.core.util.jdbc.TransactionTemplate.execute(TransactionTemplate.java:72)
at com.googlecode.flyway.core.command.DbMigrate.migrate(DbMigrate.java:135)
at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:872)
at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:819)
at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1200)
at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:819)
at facturatron.Main.checkDBMigrations(Main.java:72)
at facturatron.Main$1.run(Main.java:48)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
3.- Detecté otros "errores", por ejemplo, obliga a registrar serie, folio, número de certificado, número de aprobación, año de aprobación...
Y después de eso ya no probé la aplicación.
Poner un botón en cada renglón para hacer una edición en grande de cada concepto/renglón de la factura, por ejemplo para poner una descripción multi-línea.
Se cuidar que no se permita meter productos duplicados con los campos, nombre y clave.
Se requiere moverse entre los campos al momento de registrar los conceptos de una nueva factura, sin necesidad de usar el mouse para cambiarse de campo.
Es necesario poner un validador para facturar y para agregar clientes.
Éste validador debe reportar al usuario que campos escribió mal.
La idea es que se pueda mantener un catálogo de productos de facil mantenimiento, solo contenga información esencial de un producto, como es nombre, precio de venta antes de impuestos y se podría relacionar con las unidades para venta.
Se deben de poder realizar todas las acciones CRUD sobre ellos.
Se debe hacer configurable el visor de PDF que utiliza el sistema, habría dos opciones para el usuario:
Ambos visores están incorporados sólo es necesario permitirle al usuario seleccionar uno.
Se requiere poder copiar el contenido (las partidas) de las facturas a Excel y principalmente poder pegar desde Excel.
El stacktrace aparece cortado, solo las primeras 3 líneas en los mensajes de error.
Así será más sencillo configurar facturatron, campos:
He logrado levantar la aplicación en Linux, sin errores. El problema es que cualquier acción que realice, obtengo siempre el mismo error. Seguramente esté haciendo algo mal, pero no puedo localizar el file config.dat.
La aplicación no se cancela, sino que se mantiene activa. Pero lo único que te permite hacer sin errores es Salir.
Este es el mensaje de error cunado intento acceder a la opción "Configuración Sistema"
java -jar production/Facturatron.jar
may 28, 2014 5:28:53 PM facturatron.config.ConfiguracionDao load
Grave: null
java.io.FileNotFoundException: config.dat (No existe el fichero o el directorio)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:146)
at java.io.FileInputStream.(FileInputStream.java:101)
at facturatron.config.ConfiguracionDao.load(ConfiguracionDao.java:77)
at facturatron.config.ConfiguracionControl.(ConfiguracionControl.java:26)
at facturatron.Principal.Main.configSistema(Main.java:81)
at facturatron.Principal.Main.access$500(Main.java:27)
at facturatron.Principal.Main$6.actionPerformed(Main.java:176)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at org.jdesktop.swingx.JXHyperlink.fireActionPerformed(JXHyperlink.java:244)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
may 28, 2014 5:35:24 PM facturatron.Principal.Main$6 actionPerformed
Grave: Excepción en módulo ConfigSistema
java.lang.NullPointerException
at facturatron.config.ConfiguracionDao.load(ConfiguracionDao.java:98)
at facturatron.config.ConfiguracionControl.(ConfiguracionControl.java:26)
at facturatron.Principal.Main.configSistema(Main.java:81)
at facturatron.Principal.Main.access$500(Main.java:27)
at facturatron.Principal.Main$6.actionPerformed(Main.java:176)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at org.jdesktop.swingx.JXHyperlink.fireActionPerformed(JXHyperlink.java:244)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Crear clase para testeo de factura global con el fin de evitar la introducción de defectos en este apartado en futuras versiones
Actualmente se importan productos sin descuentos
[Usuario de origen de datos]
[Contraseña de origen de datos]
El sistema debe generar el reporte mensual solicitado por el SAT de acuerdo con las especificaciones del anexo 20.
Después de generado el informe debería mostrarlo en un visor y tener un diálogo para elegir el destino a guardar el archivo txt.
Al tener un catálogo de productos, el usuario a momento de estar haciendo una factura puede referenciar a ellos metiendo la clave del producto, o bien al momento de presionar la tecla tenga una dialogo de búsqueda parecido al que se tiene en clientes, y pueda buscar sus productos por esa vía.
El cálculo está completamente mal y no incluye IEPS
Cambiar diálogos de búsqueda de archivos (en configuración del sistema) por el diálogo default de swing, actualmente utiliza el diálogo FileChooser del L&F WebLAF.
Por ejemplo a importar tickets con productos de cristalería (en la sucursal de pruebas)
Se requiere hacer un catálogo, para que el usuario meta sus propias unidades de medida, de inicio se incluyen, piezas y no aplica.
1.- Hacer Tabla para almacenar catálogo.
2.- Hacer CRUD para tabla de catálogo.
3.- Tener menú en pantalla principal para manipular el catálogo de unidades.
4.- Incluir en la tabla de factura el combo para seleccionar unidades.
5.- Incluir en el batch la creación de la tabla medidas (donde se almacena las unidades)
Crear los métodos que en conjunto permitan mostrar el JPanel o JFrame de confección de factura y cargar programáticamente un ticket.
Éstos métodos servirán para añadir botones de crear factura a partir de ticket en los programar host de Facturatron, como podrían ser Omoikane y OpenTPV.
En la versión 1.6.0 se agregó el atributo metodoPago a las entidades pero no a la base de datos, por lo tanto ese dato sólo se almacena en los XML y no en la base de datos.
Utilizar los patrones de estrategia y handler.
En ocasiones el usuario antes de enviar la factura a timbrar requiere enviar por correo electronico el pdf de la factura al cliente para que verifique alguna información, lo que se requiere entonces es poder hacer un representación del cfdi enviarla por correo al cliente y almacenarla para que posteriormente el usuario puede timbrarla o bien eliminarla.
Cuando se realiza una factura, el sistema debe mostrar un jdialog indicando que se ha realizado la factura de manera exitosa, y peguntand si desea cerrar la pestaña actual.
Ésta mejora se refiere al campo de búsqueda del formulario de facturación
Mantener un sistema muy básico de autentificación general, el único objetivo a cumplir es que si el usuario no tiene credenciales correctas ni pueda abrir el sistema.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.