[ Foro de SQL (y MySQL) ]

BD Facturacion

14-Apr-2021 08:21
Mon Fdez
6 Respuestas

Buenas, soy nuevo en todo esto y me gustaría saber las tablas y relaciones que debo hacer, para crear una base de datos en mi programa y que me pase los datos de un presupuesto, a un pedido, éste a un albarán y del albarán a la factura, actualmente lo tengo todo en tablas de excel y me gustaría adaptarlo a una base de datos en donde pudiera tanto almacenar como consultar de una manera más dinámica todos los datos. El presupuesto a parte de los datos del cliente, puede tener varias líneas con los productos y los precios dados. Éste se puede convertir en pedido, con el consiguiente número de pedido añadido y la fecha del pedido. Una vez preparado el pedido, pasa a albarán de venta con su fecha correspondiente y luego se tendría que convertir en factura. Me gustaría saber como poder relacionar todas éstas tablas para realizar consultas.

Un saludo y espero que algún miembro de la comunidad me eche una mano, muchas gracias.


14-Apr-2021 13:28
Nacho Cabanes (+77)

El problema no es sólo la estructura de tablas. Además, deberás crear un programa que dé "sentido lógico" a esa estructura. No es algo trivial. Hacerlo bien lleva muchas horas de trabajo, y tendrás que elegir una herramienta con la que crear ese programa, que se comunique bien con el gestor de base de datos que escojas (o que incluya su propio gestor de bases de datos incorporado).


14-Apr-2021 14:43
Mon Fdez

La herramienta que estoy usando hasta ahora es Microsoft Excel, y programo con Visual Studio que tiene el gestor de bd incorporado. Me gustaría tener un esquema de la base de datos para así poderla crear y programar las funciones que necesito. Necesito saber como se conectarían las tablas entre sí para lo que he explicado en el primer mensaje. Imagino que no es un trabajo fácil, pero se supone que para eso está la programación para comernos la cabeza y poderlo resolver.


14-Apr-2021 14:52
Mon Fdez

Buscando por la web he encontrado un esquema, con 5 tablas:
Tabla Cliente, tabla Proveedor, tabla producto, tabla factura y tabla detalle_factura. Las 3 primeras detallan los datos del cliente, del proveedor y del producto, la tabla factura tiene 3 campos: nº factura, fecha factura y el CIF del cliente, y la tabla detalle_factura tiene 4 campos: nº factura, nº detalle factura, articulo y cantidad. Imagino que tanto nº factura como nº detalle_factura, serán claves principales.
El problema viene de como encajar tanto los presupuestos, como el albaran de entrega relativos a esas facturas y qué tablas se necesitan para ello, con sus claves principales.



15-Apr-2021 23:42
Nacho Cabanes (+77)

Yo veo pinceladas de conexión a Bases de Datos con mis alumnos de primer curso... a estas alturas de curso (dentro de una semana, para ser precisos), cuando ya llevan unas 200 horas de programación, y aun así, hacemos cosas sencillas en primero.

Nosotros trabajamos con Visual Studio (C#) y SQLite, que se puede distribuir de forma sencilla, llevando apenas un par de ficheros DLL junto con tu ejecutable.

Si estás dispuesto a aprender esas herramientas, puedes mirar este curso:

https://www.aprendeaprogramar.com/cursos/ver.php?id=4
 


15-Apr-2021 23:48
Nacho Cabanes (+77)

Ese esquema que comentas se acerca al real... sólo para facturas, claro.

Realmente, hay pequeños matices que tener en cuenta. Por ejemplo:

- La clave de la factura no puede ser sólo el número de factura, sino también el ejercicio (hay un factura 1 todos los años).

- En los detalles de facturas no debes guardar sólo el código del artículo. También debes almacenar al menos el precio que tenía en el momento de la factura, o los cálculos serían incorrectos en cuanto modifiques el precio de algún artículo, y estarías falseando datos anteriores.

- También hay que tener en cuenta el IVA, que habitualmente deberá ser parte de los detalles de facturas, si tienes artículos con distintos IVAs.

- Yo te recomiendo empezar por crear un esqueleto funcional para facturas, probarlo hasta que te sientas cómodo y veas que cubra todo lo que necesitas, y después imitarlo en presupuestos y albaranes, que suelen ser muy parecidos en líneas generales.


16-Apr-2021 07:55
Mon Fdez

En primer lugar, muchas gracias por la contestación. El temario del curso además de parecerme muy completo me parece muy interesante, lo voy a iniciar en unos días, no te quepa duda, pues llevo tiempo buscando algo parecido para comenzar a programar en C#.
En cuanto, al esqueleto funcional para facturas, ya estaba casi diseñado. Ahora le añadiré los matices que me comentas que me parecen super interesantes y no los había tenido en cuenta. La duda que tengo en cuanto al añadir datos de presupuestos, pedidos y albaranes, son tanto sus relaciones entre sí, como con las tablas de las facturas. Quiero intentar programar todo el sistema completo y probarlo en su conjunto, ya que todos los datos van relacionados entre sí, y no quiero probar sólo las facturas, y después tener que añadir todos los datos que van relacionados con éstas y haya problemas de compatibilidades o no se puedan unir en una segunda versión del programa. No sé si me estoy explicando, quiero evitar que en una re-programación del programa tenga problemas que me puedo evitar si en la primera programación hago las cosas bien de una vez. De todas formas, te agradezco tanto la respuesta como la recomendación del curso, ya que, éste último lo voy a seguir de verdad y ya verás, que iré planteando las dudas que me surjan. Te estoy enormemente agradecido.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)