martes, 22 de enero de 2013

En el siguiente articulo encontraras toda la información requerida para el sistema de facturación e inventario en java, tales como requerimiento de la aplicación, diagrama de la base de datos, diagramas de secuencia, diagrama de clases y diagramas de colaboración así como un video explicando su funcionamiento, al final se encuentra el enlace de descarga del código fuente, espero se de gran ayuda. No olviden comentar y apoyar el esfuerzo puesto a su disposición.

REQUERIMIENTO DE LA APLICACIÓN

Se requiere construir una aplicación que permita realizar todo el proceso de facturación e inventario en un almacén, el sistema debe permitir realizar los siguientes procesos de registro:
  1. Registro de clientes
  2. Registro de artículos
  3. Registro de proveedores
Ademas se deben listar listar los respectivos procesos construidos anteriormente.
El sistema debe poder actualizar el stock o las existencias de los artículos, a lo que llamaremos inventario, esto con el fin de mantener el proceso de facturación acorde a los articulos existentes en bodega.
El proceso mas importante que se debe realizar es el de facturación, que implica generar una factura y adicionar artículos de acuerdo a las cantidades requeridas, ademas calcular los valores totales y de impuestos automáticamente.

DESARROLLO DEL SISTEMA

Este sistema de facturación e inventario esta construido en java y su plataforma netbeans 7.2 y la base de datos en Mysql y tiene las siguientes características
  • Registro de clientes
  • Búsqueda de clientes
  • Registro de artículos
  • lista de artículos
  • Actualizar Stock artículos
  • Devoluciones
  • Realizar venta (facturar)
  • Consultas 
  • Registro de proveedores
  • Lista de proveedores
DISEÑO DE LA BASE DE DATOS

La base de datos esta construida en el gestor de base de datos Mysql, el cual es muy estable y robusto, por tal motivo para su uso deben tener instalado el paquete XAMPP, el cual contiene un servidor apache y el gestor de base de datos ya mencionado. La BD es relacional y consta de 10 tablas por los que mantenemos la integridad referencial y la aplicación de las formas normales mínimas requeridas para un diseño de una base de datos, a continuacion encontraremos el diagrama entidad relación:



DIAGRAMA DE CLASES

El código esta construido en java utilizando el modelo vista controlador, aplicando programación orientada a objetos. por tal motivo en el diagrama se visualiza el uso de las relaciones entre clases, como lo es herencia, asociación, etc.



DIAGRAMAS DE SECUENCIA

Los diagramas de secuencia son importantes ya que modelamos la interacción entre las clases de nuestro sistema, por tal motivo vamos a observar un diagrama por cada interacción del usuario con la aplicación para que sea muy claro su funcionamiento.



                                    
Diagrama visualizar factura




Diagrma generar factura
Diagrama forma de ago





Diagrama visualizar factura


                                       
Diagrama adicionar cliente
Diagrama eliminar articulo
Diagrama generar factura








En el siguiente enlace puedes descargar en archivo dentro encontraras todo el programa completo:

Opción 1


Opción 2 




No olvides comentar y suscribirte a mi canal de youtube; si tienes algún problema pregunta que con gusto responderé.





125 comentarios:

  1. muy útil, muchas gracias por compartirlo

    ResponderEliminar
  2. amigo mushisimas gracias por tus codigos que con eso hace q los demas podamos aprender muchas gracias que Dios te siga bendiciendo en todo y de casualidad no tenes n proyecto de buscar registros en java de una base de datos sql server?? pero q me muestre el registro encontrado en un JCombobox yó ya lo se llenar desde una base de datos lo que no he podido encontrar es como buscar dicho registro q me lotraiga en el JCombobox osea q lo seleeccione.. por favor gracias por su atencion

    ResponderEliminar
  3. Muy útil necesitaba una base de datos para un sistema de inventarios facturación y cartera en mysql y aquí encontré parte y me pareció bueno...

    ResponderEliminar
  4. Hola amigo muy buen proyecto, tengo una duda yo uso mac y queria saber para la parte de base de datos como implementarla ya que no se puede con la pagina que pusiste ahi, crees que se pueda tambien con mysql wokbench?

    ResponderEliminar
    Respuestas
    1. Si claro ya que el sql utilizado debe correr en todos los motores que soporten mysql y de hecho algunas de estas las he trabajado en workbench para mas facilidad entonces puedes usarlos y debe funcionarte sin ningún problema

      Eliminar
    2. una pregunta, como puedo hacer para que el precio del articulo sea de valor Double? 0.75 , 2.50 centavos ?

      Eliminar
  5. mi correo es mmo_andrade_@hotmail.com

    ResponderEliminar
  6. hola amigo una pregunta en l proyecto de factura e inventario en la tabla ciudad como llega de donde se insertan los datos a esa tablas desde l proyecto java de donde llega en nombre de la ciudad a esa tabla..!!! te agradezco

    ResponderEliminar
  7. Amigo cuando sacas mas proyectos?? en java ???? estan muy interesantes y me han sido de gran ayuda para mis proyectos excelente te agradezco mucho por compartir

    ResponderEliminar
    Respuestas
    1. Ya pronto, estoy terminando cosas de la universidad y me dedico a realizar otros proyectos

      Eliminar
  8. Muchas gracias amigo, muy buen proyecto, se te agradece que lo hallas compartido, suerte en todos tus proyectos.

    ResponderEliminar
  9. muchas gracias por compartirlo..espero que sigas en lo posible dando mas aportes..pues esto nos ayuda un montón.

    ResponderEliminar
  10. de casualidad tienes los codigos de la interfaz :)

    ResponderEliminar
  11. Buenas... ilustre seria tan amable de enviarmer la base de datos en formato XML porque solo ese formato es que puedo abrirla, un millon de gracias, ademas si gusta podemos hacer el sistema mucho mas complejo si te interesa ya que tengo una microempresa y conosco lo suficiente en cuanto a facturacion e inventario y algo de informatica... cseil@hotmail.com

    ResponderEliminar
  12. Hola, muchas gracias, vi tu video, y estoy bajando tu codigo, te pasaste por compartir esto, tengo unas pequeñas dudas y con esto quedare muy claro.


    saludos

    ResponderEliminar
  13. excelente voy a estudiar tus fuentes amigo...

    ResponderEliminar
  14. socuo necesito contactarme urgente con usted mi correo es fredy_moreal@yahoo.com es algo super importante

    ResponderEliminar
  15. por este correo eduarandres04@hotmail.com

    ResponderEliminar
  16. Hola andres :) muchs gracias por subir tu proyecto y compartirlo con todos, pero me quedan algunas dudas te mande un correo explicandote pero de hecho hay mas, bueno espero puedas verlo de antemano gracias :)

    saludos

    ResponderEliminar
  17. holaa muchas gracias x compartir tu proyecto, aunq tengo demasiadas dudas y una es xq no puedo guardar los datos ingresados a mi base de datos. algo seguramente estoy haciendo mal, si podrias ayudarme te lo agradeceria.

    ResponderEliminar
    Respuestas
    1. ps podría ser la configuración de la base de datos, fíjate bien si esta bien configurado en la clase conexión tu servidor ,usuario ,contraseña y el nombre de la base de datos

      Eliminar
  18. juan andres yo estoy realizando un proyecto en java en el cual como motor utilizo el mysql tengo problemas al momento de realizar un insert y no se descuenta el stock
    me podrias ayudar

    ResponderEliminar
  19. hola, muchas gracias por compartir este proyecto, la duda que tengo es en la parte irterfaz de articulo ya que la variable calendario la coje como in existente si me podrias sacar de esa duda te lo agradeceria.

    ResponderEliminar
    Respuestas
    1. Tienes que mirar si cargaste bien el jcalendar

      Eliminar
    2. yo ya lo cargue y me sigue tirando el error de calendario

      Eliminar
  20. Juan como estas? tengo un problema al cargar, importar, o copiar y pegar el código, me sale errores en el query.. me pondría a hacer una por una las tablas pero quiero ver la forma de editarlo. Te agradeceré eternamente si me respondes cual es el problema. te comento que con el workbench no se como hacerlo, estuve intentando con phpmyadmin tanto importando el archivo facturacion.sql, como copiando y pegado el query del block de notas. gracias! saludos desde el norte de argentina

    ResponderEliminar
    Respuestas
    1. mira en estos dias a ver si hago el video explicando como hacerlo si algo estas pendiente para que lo mires y puedas cargar correctamente el proyecto

      Eliminar
    2. video explicando todo paso a paso porfavor para hoyyy!!

      Eliminar
    3. Que pena no haberlo hecho pero hoy mismo subo el video ok?

      Eliminar
  21. HOLA ME GUSTARIA VER EL CODIGO POR FAVOR GRACIAS.

    ResponderEliminar
  22. Hola, me gustaria saber si cuentas con los diagrmas de secuencia, y un video explicando como hiciste el proyecto(clases, interfaces, etc), Gracias!!! de antemano

    ResponderEliminar
    Respuestas
    1. Gracias por los comentarios y en realidad los diagramas de secuencia no los hice para estos proyectos, y voy a seguir su sugerencias, voy hacer los videos explicando como realice el proyecto, estén pendientes.

      Eliminar
  23. Hola amigo como estas tu me podrías explicar como crea este proyecto pero sin base de datos mysql no importa q no se guarden los datos??

    ResponderEliminar
  24. Gracias..estoy que lo descargo..No tendras aplicaciones pero que esten conectadas con SQL Server..Gracias de antemano y SALU2

    ResponderEliminar
  25. gracias por tomarse el tiempo para compartir este proyecto, el creador le bendiga

    ResponderEliminar
  26. Hola amigo muchas gracias, funciona bien excepto los descuentos, si me puedes ayudar gracias de antemano

    ResponderEliminar
  27. Oye infinitas gracias, esto me sera de mucha ayuda, de verdad gracias por compartir tu conocimiento, saludos desde colombia, aahh tendrias algun video donde expliques como utilizar CreateStatement, Statement, execute... , estoy muy quedado en cuanto a esto!!!

    ResponderEliminar
  28. Hola bro sabes que me tira un error pidiendo la clase calendario la tendras por ahi? mi mail es testpoint.argentina@gmail.com

    ResponderEliminar
  29. Disculpa Juan , sabes sobre el uso de los trigges?, no se bien si este proyecto que hiciste utilizaste de ellos, y mas por lo del stock, las salidas y entradas que generas. Porfis harías un video esplicando este. Gracias!

    ResponderEliminar
  30. Muy bueno! soy un veterano programador pero estoy estudiando Java. Me viene barbaro para aprender.

    Muchas gracias.

    ResponderEliminar
  31. exelente bro (y) muchas gracias gracias por compartir :)

    ResponderEliminar
  32. Sr. Juan es posible saber el enunciado inicial, para el desarrollo de este proyecto , sobre todo para analizar la forma como utilizo la 4 formas normales,
    Atte Christian Mulatillo -Perú.

    ResponderEliminar
  33. Hola amigo, gracias por compartir este proyecto, la verdad hay muy pocas personas como tu, que comparten sus habilidades, en la actualidad hay muchas envidias, amigo sigue adelante con tus proyectos, felicidades!!!! Carlos Hernandez - Guatemala....

    ResponderEliminar
  34. Muchas gracias Sr Juan gran enseñanza el programa esta calidad pero no he podido abrirlo no entendi muy bien lo de las base de datos es algo que me cuesta, si puedes mostrarme como abrirlo seria de gran ayuda gracias de ante manos por este increíble proyecto sigue asi hermano

    ResponderEliminar
  35. estan de pelos tus sistemas lo maximo brother..sigue asi y pronto llegaras a ser como bill gates

    ResponderEliminar
  36. se tiene que configurar una conexión ODBC?

    ResponderEliminar
  37. amigo puedes explicar como cargar la base de datos y lo del jcalentar porfavor??

    ResponderEliminar
    Respuestas
    1. Para cargar la base de datos, tienes que tener un motor de base de datos (Mysql) el servidor como tal para que corra el servicio de Mysql: http://dev.mysql.com/downloads/mysql/
      y si quieres mas grafico te dejo el de workbench que es un gestor de base de datos http://dev.mysql.com/downloads/workbench/
      En la web hay muchos videos como importar una base de datos, y lo del jcalendar es solo coger la libreria que java necesita para que pueda correr sin ningun error, tienes que abrir netbeans abrir el proyecto descargado desde alli, luego vas a los paquetes y buscas la pestaña que dice Library, en esa pestaña le das clic derecho y escoges la opcion agregar archivo Jar, y buscas el archivo .jar de el jcalendar

      Eliminar
    2. Hola, puedes ayudarme con esto?

      Eliminar
  38. que super bro.. hay alguna forma de usarlo online que mi base de datos sea online y solo tenga que usar el java como cliente y la bd este en otra pc

    ResponderEliminar
  39. Hola Juan oye quería ver si me puedes ayudar con mi sistema tengo un serio problema ya que estoy realizando un control de inventario algo similar al tuyo y veo que ya ya lo pudiste resolver, mi problema es al momento de querer asignar los productos de la matriz a un distribuidor no se como hacer la resta del producto en la BD y que se actualice en mi tabla de ese modulo, si me podrías ayudar dime y ya sea que me pases tu correo o yo te paso el mio es emep3@hotmail.com para pasarte el proyecto y ver si lo podemos resolver. de antemano gracias.

    ResponderEliminar
  40. Me gustaria saber si este Programa de facturacion sirve para todos los comercios y rubros

    ResponderEliminar
  41. Gracias por compartirlo, Muy Útil, Excelente...

    ResponderEliminar
  42. una consulta por que me sale error en interfaz articulo porfavor escribeme a mi correo ychacaltanad@gmail.com

    ResponderEliminar
  43. una consulta por que me sale error en interfaz articulo porfavor escribeme a mi correo ychacaltanad@gmail.com

    ResponderEliminar
  44. Juan Andres.
    podrías publicar el documento de requerimiento por favor

    Gracias

    ResponderEliminar
  45. Hola, me podrias ayudar, lo que pasa es que tengo una ptoyecto java, pero me gustaria que este se ejecute sin usar wamserver y que yambien se lleve la base de datos algo asi como un sistema embebido

    ResponderEliminar
  46. Muy útil para mi proyecto gracias

    ResponderEliminar
  47. Gracias amigo, checare que tal esta, que bien que haya gente como tu, el conocimiento es para todos gracia por compartirlo!

    ResponderEliminar
  48. gracias por compartir amigo c agradece

    ResponderEliminar
  49. muchas gracias, usare tu código para estudiarlo

    ResponderEliminar
  50. Hola tengo una duda. Para que sirve la fecha de ingreso del artículo? ¿Es la fecha de registro del artículo? O es la fecha en que me llegan los artículos a mi tienda y los ingreso en el stock? Gracias.

    ResponderEliminar
  51. Hola! Amigo una duda la base de datos cuando me meto al link de http://www.phpmyadmin.net/ o al localhost no me deja insertar la base de datos como rayos le hago :)

    ResponderEliminar
  52. mi correo es ilse_n92@hotamil.com enserio zi necesito que me expliques lo de la base de datos por que no puedo entrar ni al localhost ya le intente y es lo unico que me falta para que corra bien el programa

    ResponderEliminar
    Respuestas
    1. a mi me pasa lo mismo no me deja entrar al localhost, y no se que hacer ayuda

      Eliminar
  53. amigo una pregunta mmmm como puedo generarlo ese sistema hecho en java como un programa ejecutable ....??????

    ResponderEliminar
  54. Hola tengo un problema al copiar y pegar el bloc de notas al sql me sale un error: "Error consulta SQL:
    -- Volcar la base de datos para la tabla `articulo`
    INSERT INTO `articulo` ( `id_articulo` , `descripcion` , `precio_venta` , `precio_costo` , `stock` , `cod_tipo_articulo` , `cod_proveedor` , `fecha_ingreso` )
    VALUES ( 1, 'Bota Larga', 100000, 80000, 20, 19, '00003-A', '2012-11-03' ) , ( 2, 'Bota corta', 70000, 50000, 55, 19, '00003-A', '2012-10-11' ) , ( 3, 'Botin ', 150000, 130000, 18, 19, '00003-A', '2012-09-01' ) , ( 4, 'Tenis ', 120000, 100000, 8, 20, '00002-2', '2012-10-02' ) , ( 5, 'Zandalias', 50000, 30000, 59, 21, '00001-1', '2012-11-01' ) , ( 6, 'Jeans', 90000, 70000, 18, 24, '00004-4', '2012-10-02' ) , ( 7, 'Camisas', 50000, 30000, 12, 22, '00003-A', '2012-10-20' ) , ( 8, 'Chaquetas', 70000, 50000, 8, 24, '00004-4', '2012-11-02' ) , ( 9, 'Chaquetas sudadera', 60000, 40000, 20, 23, '00002-2', '2012-10-23' ) , ( 10, 'Pantalon sudadera', 60000, 40000, 17, 23, '00002-2', '2012-10-23' ) , ( 11, 'Sudadera completa', 100000, 80000, 20, 23, '00002-2', '2012-10-23' ) , ( 12, 'Camisetas', 30000, 20000, 30, 24, '00005-F', '2012-10-03' ) ;

    MySQL ha dicho: Documentación #1062 - Duplicate entry '1' for key 1 "

    y el otro es cuando ejecuto la factura en netbeans no sale ninguna ventana al realizar una accion lo cual no me explico el por que??

    ResponderEliminar
    Respuestas
    1. Intenta mejor importar la base de datos para evitar problemas, y lo del la factura se presenta porque no ha sido correctamente cargada la base de datos, realiza lo que te digo y me comentas

      Eliminar
  55. no puedo conectar la base de datos, ni nada

    ResponderEliminar
  56. Genial aporte, me sirvió mucho. Con esto muestras tus habilidades para programar y compartir el código sin limitación.

    ResponderEliminar
  57. hola compañero, me parece muy buen programa yme gustaria que me enviaras el codigo para basarme en el puesto que estoy haciendo el mio propio y tengo mucha falta de informacion, mi correo es julianortizt@gmail.com

    ResponderEliminar
    Respuestas
    1. Hola. Podes descargarlo de los enlaces, si tenes algún problema me comentas

      Eliminar
  58. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  59. carnal, mil gracias, la neta me hiciste un parote, tengo que entregar un proyecto, e de otro giro y cambian varias cosas, tablas y eso, pero me voy a basar en la estructura de este, y mas que nada para entender algunas cosas que no me quedaban todavia muy claras, neta gracias we.

    ResponderEliminar
  60. Te felicito por tu altruismo. Un excelente aporte. Suerte

    ResponderEliminar
  61. Tengo problemas con lo de la libreria jrcalendar, no se si la importe mal. Pero me sigue dando error la clase Interfaz_articulo

    ResponderEliminar
  62. Muchas gracias por tu publicación

    ResponderEliminar
  63. hola buen dia, yo lo hice tal y como dijiste que hicieramos la bdd y no me corre al momento de realizar una opcion se detiene t agradeceria mucho que me mandaras inf a mi correo evelyn150517@gmail.com

    ResponderEliminar
  64. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  65. NO ME SALE ACCESO DENEGADO A LA BASE DE DATOS CUANDO CORRO FACTURACION --YA LA IMPORTE A LA BASE FACTURACION EN PHPADMIN PERO CUANDO COPIO Y PEGO LO DEL BLOCK DE NOTAS EN SQL ME SALE ERROR EN LA TABLA ARTICULO--luisromanoabdala@gmail.com es mi mail

    ResponderEliminar
    Respuestas
    1. Hola, yo tuve que crear primero la base de datos y luego copie y pegue lo del bloc de notas. Fue de la unica forma que logre que funcione

      Eliminar
  66. hola me interesa muchisimo tu programa muy bueno me podrias enviar el codigo mi correo es paolaportg@gmail.com

    ResponderEliminar
  67. No puedo conectar la BD con facturacion... Intenté varias cosas, la más cercana es la que figura acá: http://panamahitek.com/los-7-pasos-seguir-para-el-manejo-de-mysql-con-java/
    Alguien puede decirme el procedimiento??

    Sigo sin conectar ambos entornos....

    ResponderEliminar
  68. Control Comercio es un programa de control de stock que te permite organizar y controlar rápida y eficientemente tu tienda de indumentaria y calzado.

    ResponderEliminar
  69. Hola amigo, por casualidad encontre tu blog y me parece interesante, te comento que recien estoy comenzando a trabajar con base de datos en MySQL y programacion en Netbeans, puedes porfavor pasarme el archivo fisico de la estructura de tu proyecto ????

    ResponderEliminar
  70. Mi correo es neni_joha@hotmail.com

    ResponderEliminar
  71. Hola estimado, acabo de descargar el sistema, funciona muy bien para lo que estoy buscando, estoy realizando algunas modificaciones para dejarlo mas visible para los usuarios, si te resulta util me gustaria que me des tu punto de vista respecto a las modificaciones que le estoy realizando.
    Saludos!

    ResponderEliminar
  72. Graaciaaaaaassssss!!!!! me salvastee Gracias, en serio

    ResponderEliminar
  73. hola me gustaría ver los códigos..por favor! excelente programa!

    ResponderEliminar
  74. Todas las funciones de estos software de facturación suelen estar integradas en un solo lugar, así como también sincronizadas, para que todo resulte sencillo. Si bien los programas de facturación gratuitos no poseen tantas herramientas adicionales como los de pago, sí suelen ser más fáciles de usar.

    ResponderEliminar
  75. Buenas amigo, buen proyecto, pero necesito tu ayuda con un problemita, cuando paso los codigos a netbeans, me sale el error de jcalendar pero cuando le doy para biscar solucion, solo me sale, crear una clase o crear otro campo. Me podrias ayudar con ese dato porfa

    ResponderEliminar
  76. buenas tardes, lo he descargado tu proyecto pero en el netbeans me las clases con candado que son private y no puedo modificar, hay otra opcion para poder modificarla??? Respondeme... Gracias !! !

    ResponderEliminar
  77. NO PUEDO CONECTAR LA BASE DE DATOS ALGUIEN QUE ME AYUDE POR FABOR

    ResponderEliminar
    Respuestas
    1. si no le has puesto a tu base de datos usuario y contraseña vete al archivo conexión
      y pon root y contraseña vacia debe de quedar así:
      con = DriverManager.getConnection(url,"root","");

      Eliminar
  78. tengo un problema. la fecha me sale invalid

    ResponderEliminar
  79. java.sql.SQLException: Access denied for user 'tu usuario en la base de datos'@'localhost' (using password: YES)
    java.sql.SQLException: Access denied for user 'tu usuario en la base de datos'@'localhost' (using password: YES)

    ResponderEliminar
  80. Muchas gracias por compartir tu proyecto, yo estoy apenas aprendiendo java y eatoy seguro que me será de mucha utilidad para aprenderlo.
    Saludos.

    ResponderEliminar
  81. hola, me sale error en interfaz_articulo, me podrias ayudar

    ResponderEliminar
  82. buenos dias, me da un error en articulos me puedes indicar como instalar el jcalendari ya le instale y me da en rojo la fecha

    ResponderEliminar
  83. Execelente proyecto amigo... La verdad aclare muchas dudas y corregi un par de errores en un proyacto que estoy realizando, gracias brother.

    ResponderEliminar
  84. Muy bueno!!! estaba buscando info para mejorar un proyecto y me ha servido de mucho !!! gracias por el aporte desinteresado!!!!

    ResponderEliminar
  85. Genial. Excelente trabajo. Muchas gracias.

    ResponderEliminar
  86. Muchas gracias por tan Excelente aporte Juan

    ResponderEliminar
  87. Juan de antemano muchas gracias por su aporte a quienes estamos aprendiendo a programar en Java no todo el mundo tiene el carisma para enseñar y dejar la información gratis. Tengo el siguiente problema el netbeans ya esta instalado ya cargue el programa de facturación y corregí los 3 errores, ya me pude conectar con la bese de datos. Pero le doy RUN al programa y solo me carga la pantalla con el menú inicial, pero ninguno de los botones del menú me funciona es decir solo me abre la interfaz principal y no mas. Cualquier orientación que me pueda brindar se lo agradecería mucho.

    ResponderEliminar
  88. Te felicito eres un Prof yo ni en mi sueños e logrado hacer ese trabajo tan meticuloso pero es mucha ayuda para todos, muchas gracias

    ResponderEliminar

Síguenos en Facebook

Si hemos sido de ayuda apoyanos

Realiza tu donacion