Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2007
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
referencia de recibos en facturas

Hola amigos del foro, estoy haciendo una aplicacion en Delphi 5 con Firebird 2.0, tengo un maestro detalle, para facturas y clientes, el tema que ahora estoy incorporando los recibos que referenciare a esas facturas.
o sea que una factura de $ 1.000 puede ser paga con uno a mas recibos, por ej. 4 recibos de $ 250.
Los detalles de los recibos y las facturas se guardan en una tabla que se llama movdeud. Ahora para llevar esas referencias hice una tabla donde se guardan en un campo el ID de la factuta, en otro campo el ID del recibo, en los otros dos el monto de la factura y el monto del recibo.
Mi pregunta es voy bien o hay una manera mas simple de hacer esto?
De esta manera se me complica un poco en el momento de realizar las consultas sobre los saldos de cada cliente, espero hayan entendido mis dudas, esta medio entreverado.
Responder Con Cita
  #2  
Antiguo 28-11-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
No es un método muy correcto.
Lo mejor es que los recibos (que es algo diferente de las facturas) los guardes en una tabla aparte que guarde el ID de la factura a la que corresponden.
Incluso te recomendaría que la numeración de esos recibos tenga una relación directa con las facturas para que en caso de que un operario tenga que localizarlas le sea fácil, por ejemplo: <nº factura>+ '_R'+<nº recibo>
Responder Con Cita
  #3  
Antiguo 28-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo de relacionar los recibos y facturas no estoy de acuerdo .

Crea una vista que una las facturas, clientes y recibos. Si el usuario quiere buscar algo, que use esa vista. También te puede servir esa vista para calcular rápidamente el importe pendiente de una factura, teniendo en cuenta los recibos que tenga entregados.

Código SQL [-]
select sum(total_recibo), Total_factura, Total_factura - Sum(total_recibo) as Pendiente 
from vwfactura
where id_factura = 33

Nota: Yo a los recibos le llamo vencimientos, y la tabla en cuestión se llama así.

Usando un query y un UpdateSql puedes acceder a esa vista y editar registros, borrar, insertar, etc.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 29-11-2007
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
Creo entender sus consejos.
AL principio lo habia pensado de esa manera, pero que pasa si un cliente tiene 3 facturas:
nº 101 = $ 2.000
nº 102 = $ 1.500
nº 103 = $ 3.000
A la vez ese cliente va entregando a cuenta con varios pagos pero va asignando los pagos a direntes facturas, Ej.:

factura nº 101 = $ 2.000
recibo nº 10 = $ 500
recibo nº 11 = $ 1.000

pendiente $ 500

factura nº 102 = $ 1.500
recibo nº 12 = $ 500
recibo nº 13 = $ 250

pendiente $ 750

factura nº 103 = $ 3.000
recibo nº 14 = $ 500
recibo nº 15 = $ 200
recibo nº 15 = $ 300
recibo nº 16 = $ 500
pendiente $ 1.500

Con este ejemplo creo que necesariamente necesito un maestro detalle, donde en el maestro estan las facturas y en el detalle los recibos.
Yo no lo hice con el numero de factura, ya que tambien tiene la serie; por lo tanto cada factura y cada recibo tienen un ID único.
Gracias por vuestra ayuda, saludos.
Responder Con Cita
  #5  
Antiguo 29-11-2007
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Claro, es lo que pretendía decirte: esos recibos deben estar en una tabla propia que guarde una relación "N:1" con la de facturas.
Por otra parte no me parece buena idea usar la numeración de la factura como ID, ¿o es lo que usas en esa tabla como clave primaria? ¿O no he entendido lo que querías decir?
Yo me refería a que cuando un cliente se lleva un recibo suele ser cómodo que en algún sitio se refleje a que factura pertenece, por lo que indicar que su numeración es la misma que la de la factura añadiéndole algo más parece la solución más directa. (Ojo para mi los números de factura y los ID de las facturas siempre son cosas distintas.)
Si ya lo tienes hecho de otro modo y funciona bien no lo cambies.
Responder Con Cita
  #6  
Antiguo 29-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Creo que todos estamos diciendo lo mismo pero con palabras distintas:

Relación de tablas:
Código:
Factura:
  idfactura autoincremento clave primaria
  nfactura  varchar     numero de la factura que ve el usuario
  total factura numeric

Recibo:
  idRecibo  autoincremento clave primaria
  nRecibo  varchar el número de recibo que ve el usuario, 
               puede tener incluido el nfactura (lo que decía kuan-yiu)
  idFactura  clave ajena a Factura.idFactura
  total_recibo  numeric   (lo pagado en este recibo).
Al usar una vista o un sql, unimos ambas tablas por el idfactura, así que tenemos "ordenados" cada factura con su recibo, es decir:
Código:
idfactura    idRecibo      Total_Factura    Total_Recibo
    101		10		2.000		500
    101		11		2.000		1.000

    102		12		1.500		500
    102		13		1.500		250
El total_factura se repite por cada recibo que haya, ahora con la consulta que puse, obtendremos lo que hay pendiente de cada factura.

No hay ningún problema con hacerlo así.
¿difiere algo de lo que tienes hecho ebeltete?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 29-11-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo hago algo similar a lo que indican kuan-yiu y Lepe la Tabla Facturas por así decir tiene 2 detalles, Líneas compuesta como es lógico por las líneas de Factura y Recibos - Pagos o Vencimientos, el nombre que convenga, este sistema lo utilizo porque hay muchos clientes que hacen entregas en metálico acuenta de una factura.

Id_Factura:0001/07
Fecha:10/11/07
Concepto:Pago en Metálico
Importe:1.000,00

En la factura existe un Campo
Total
Pagado

Pendiente

Cada movimiento que se efectúa en Pagos, se actualiza en la factura, de esta manera es posible evaluar la deuda con tan solo consultar la tabla facturas, lo que hace más simple el SQL para dicha consulta.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #8  
Antiguo 29-11-2007
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
Esta claro que el id de la factura y el id del recibo no son unicos y son clave primaraia en la tabla.
Me parece interesante lo de marcoszorrilla:

En la factura existe un Campo
Total
Pagado
Pendiente

Ir actualizando el pendiente de la factura puede agilizar la consulta.
Hablamos mas o menos de lo mismo, recien estoy comenzando con este proyecto, es de Cuentas corrientes, facturacion recibos, cheques, acreedores, stock, etc.
Por eso estoy pidiendo estos consejos y me han sido de mucha utilidad.
Por ultimo, yo estoy manejando una sola tabla para las facturas y los recibos de los clientes, tambien en principio estoy usando la misma tabla para los proveedores, que es mejor? usar una tabla para cada cosa o no?
Me parecia que al ser una sola tabla, por ej., la consulta de un saldo seria mas sencilla, pero pienso tambien que al ser una sola tabla, tendria muchos renglones y la consulta seria mas lenta.
Gracias nuevamente, soy un agradecido de este foro por todo lo que aqui he aprendido.
Responder Con Cita
  #9  
Antiguo 29-11-2007
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
Perdon en el mensaje anterior quise decir que los ID de las facturas son unicos y no es el numero que el cliente ve en el papel.
Cita:
Empezado por ebeltete Ver Mensaje
Esta claro que el id de la factura y el id del recibo no son unicos y son clave primaraia en la tabla.
Me parece interesante lo de marcoszorrilla:
.
Responder Con Cita
  #10  
Antiguo 30-11-2007
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
Ahora si con un mismo recibo el cliente paga parte de dos facturas diferentes.
Ej.:
Factura Nº 101 = $ 2.000
Nº 102 = $ 1.500

Recibo Nº 13 = $ 500 paga: factura Nº 101 = $ 200 y Factura Nº 102 $ 300

Creo que en ese caso no estaria contemplando el monto que le asigno a cada factura de ese recibo, porque si utilizo un campo para eso, cuando tenga que ingresar otro recibo tendria que crear otro campo, y asi sucesivamente.
Por eso es que me parece mejor hacer un detalle donde cada recibo tenga uno o mas renglones que especifique a que facturas se refiere y que monto se le asigna a cada factura. Yo lo estaba haciendo en una tabla donde tenia cuatro campos
ID_factura = es el ID de la factura
ID_recibo = es el ID del recibo
Monto_factura = es el monto que paga de la factura
monto_recibo = es el monto del recibo que se le asigna a esa factura

Saludos.
Responder Con Cita
  #11  
Antiguo 01-12-2007
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 21
lbuelvas Va por buen camino
Thumbs up

Interesante tema, quiero compartir con ustedes mi experiencia en un proyecto
en el que nos pedian algo un poco mas complejo.

Nosotros llamamos "conciliaciones" al proceso de ir descontando el saldo pendiente a cancelar por factura.

La empresa nos pidio que se hiciera automaticamente para algunos clientes y manualmente para otros, me explico, hay clientes a los que no les interesa como estan pagando sus cuentas pues llevan mentalmente su total de facturas y su total de abonos, sin embargo otros clientes cunado efectuan sus pagos indican que facturas estan cancelando y puede suceder que con un abono (recibo) paguen parte de una y parte de otra factura.

El modelo que elaboramos fue el siguiente:

Código:
Tercero:
  Codigo_Tercero Integer (PK)
  ...
  Cliente_Saldo_Automatico
  Cliente_Saldo_Actual

Factura:
  Numero_Factura (PK)
  Fecha_Documento
  Codigo_Cliente (FK -> Tercero)
  Valor_Total
  Valor_Conciliado
  Saldo_Por_Conciliar
  ...

Abono:
  Numero_abono (PK)
  Fecha_Documento
  Codigo_Cliente (FK -> Tercero)
  Valor_Total
  Valor_Conciliado
  Saldo_Por_Conciliar
  ...

Conciliacion:
  ID_Conciliacion (PK automatico)
  Fecha_Conciliacion
  Numero_Abono   (FK -> Abono)
  Numero_Factura (FK -> Factura)  
  Valor_Conciliacion
  ...
Explicacion:

El campo Cliente_Saldo_Automatico tiene dos pocibles valores S/N, si el valor es S el sisterma automaticamente concilia los documentos con saldo pendiente por conciliar.

En el sistema cuando las conciliaciones son manuales, se "cruza" un abono contra una o mas facturas, en ocasiones el pago es mayor que lo que debe el cliente, entonces quedan un saldo pendiente por cruzar.

El modelo real es un poco mas complejo porque se maneja otros documentos como son NotasDebito y NotasCredito.

Espero que les sea de utilidad.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #12  
Antiguo 01-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
ebeltete busca en google por "Normalizar tablas" o "formas normales", eso te ayudará a dividir las tablas de forma precisa.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Dos recibos en una hoja jsanchez Impresión 3 27-09-2005 19:10:58
Ayuda con recibos de Sueldo Sundance Impresión 3 11-07-2005 16:33:32
Impresion de facturas y recibos lafirma Impresión 1 13-12-2003 22:34:10
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44


La franja horaria es GMT +2. Ahora son las 06:55:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi