Git Product home page Git Product logo

facturatron's People

Contributors

davidtornero avatar estecche avatar gnujach avatar zoommx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

facturatron's Issues

Error al configurar la aplicación (Linux)

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:
screenshot from 2014-02-12 15 47 51

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.

Editor grande de renglón de factura

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.

Usar <tab> para cambiarse entre campos

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.

Mensajes de constraints entendibles

Es necesario poner un validador para facturar y para agregar clientes.
Éste validador debe reportar al usuario que campos escribió mal.

Catálogo de Productos

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.

Visor nativo configurable

Se debe hacer configurable el visor de PDF que utiliza el sistema, habría dos opciones para el usuario:

  • Visor nativo de windows
  • Visor java

Ambos visores están incorporados sólo es necesario permitirle al usuario seleccionar uno.

Asignar valores default a config.dat

Así será más sencillo configurar facturatron, campos:

  • todas las rutas del sistema
  • PAC, con mi cuenta pero sin el password
  • cliente genérico, es decir público en general o venta de mostrador

config.dat

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)

Test de factura global

Crear clase para testeo de factura global con el fin de evitar la introducción de defectos en este apartado en futuras versiones

Reporte del SAT

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.

Autorellenar partidas con la clave del producto.

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.

Hacer catálogo de unidades de medida

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)

Métodos API: MostrarFactura, CargarTicket

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.

Hacer Preview de la factura

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.

Cerrar Pestaña al gaurdar factura

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.

Mejoras tabla de búsqueda rápida de clientes

Ésta mejora se refiere al campo de búsqueda del formulario de facturación

  • Recibir [Enter] aunque no esté el foco en el campo de búsqueda (para esos casos en
    que se selecciona un resultado de la búsqueda con el mouse)
    Aceptar IDs de clientes, para esos casos en que se conoce el ID y no es necesario usar el buscador
  • Establecer un número máximo de resultado por búsqueda

Sistema de Autentificación Gral.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.