Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2010
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
No. Factura

Hola a todos. Estoy desarrollando un sistema de facturación con delphi y MySQL. El dilema radica cuando tengo que asignar el numero de la factura. tengo una tabla "A" que contiene un campo numerico donde se aloja el numero de la siguiente factura. por ejemplo 1. el sistema debe capturar dicho valor y una vez elaborada la factura No. 1 aumentar en uno el valor en la tabla "A", osea 2 para la proxima factura, y así sucesivamente. como puedo hacer para que cuando se esté trabajndo en red, no se repita el mismo numero en dos facturas diferentes. osea impedir que dos o mas usuarios accedan a la vez a la tabla "A" a pedir el numero de la factura. En otras plataformas de BD habia revisado el tema de bloquear la tabla y liberarla despues de captado el valor. pero acá en MYSQL, no tengo ni idea de como hacerlo. Gracias...
Responder Con Cita
  #2  
Antiguo 29-10-2010
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 lo que hago es asignar el número en el momento de grabar la factura, previamente le asigno un número provisional y solamente al grabarla le asigno el definitivo.

El número será clave única con lo cual es imposible que se repita.

Tomamos el último número le incrementamos en 1 en la tabla configuración y se le asignamos a la factura y la grabamos.

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
  #3  
Antiguo 29-10-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.741
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Otra forma es que NO le envíes el numero y que a travez de triggers el sistema vea cual es el número que le toca e incremente la tabla de contadores.

Es importante que sea clave única o por lo menos un índice único, que no permita que se repita dentro de su serie / canal / año / etc.
Responder Con Cita
  #4  
Antiguo 06-11-2010
adelpino adelpino is offline
Registrado
 
Registrado: feb 2010
Posts: 1
Poder: 0
adelpino Va por buen camino
Yo lo que hago es una funcion en mysql que me da el nro factura y lo incrementa, asi no hay problemas.

supongamos que tenemos la tabla numeros y facturas. En mysql define una funcion asi

begin

define n int;

select nrofactura into n from numeros limit 1;
update numeros set nrofactura = nrofactura + 1;

return n;

end

en return type pon int
Responder Con Cita
  #5  
Antiguo 06-11-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Otra opcion es hacer que tu campo "Numero" lo declares como auto_increment de esa forma no deberías enviarle ningun numero, es más ni siquiera deberias preocuparte en enviarle el campo "Número" en la insercion o edicion, ya que el propio servidor se encargará de asignarle uno..

De todas formas en MySQL tambien se pueden bloquear y desbloquear las tablas cuando uno lo desee., pero en ese caso mejor sería usar Transacciones.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 06-11-2010 a las 17:07:12.
Responder Con Cita
  #6  
Antiguo 06-11-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
El tema de las facturas es harto complicado porque por muy excelso que sea el sistema en esas lides, siempre dependerá de lo que suceda en la realidad puesto que los folios de las facturas son físicos. Yo dejé de quebrarme la cabeza con los errores que sucedían (no correspondia el folio del sistema con el físico, facturas faltantes, cancelaciones no declaradas, etc.) simplemente preguntándo al operador antes de iniciar una "sesión de facturas"..¿Con que folio inicias? y de ahí empezar a llevar el control únicamente en esa sesión. Así si por algún motivo echaban a perder facturas o las quitaban sin capturarlas el sistema siempre esta actualizado y me ha funcionado bien ya que los operadores ya se acostumbraron a ver que factura física es con la que van a empezar y durante esa sesión el sistema si va incrementando la numeración en tanto no se le indique lo contrario.

Y aclaro que este sistema genera casi 500 facturas diarias y hasta ahorita sin ningún problema.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
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
Factura Electronica Factura-E keys Varios 1 09-11-2010 06:37:46
Factura foxito Conexión con bases de datos 4 13-09-2008 00:03:18
factura josi Varios 0 06-06-2008 15:50:30
Fallo Nº Factura y Linea Factura CarmaZone Tablas planas 5 26-05-2005 11:17:19
Nº factura silviodp Conexión con bases de datos 9 21-06-2004 20:01:30


La franja horaria es GMT +2. Ahora son las 05:01: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