Mal funcionamiento en RED

Post Reply
Loren
Posts: 458
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Mal funcionamiento en RED

Post by Loren »

Estimados compañeros:
tengo instalado en RED mi aplicación de gestión de facturas y todo va de maravillas, excepto 1 cosa: la correlación en los números de facturas!!

Si 2 o más usuarios entran a la vez en el módulo de "nueva factura", cuando la imprimen el programa asigna el mismo numero a todas las facturas impresas, ¿Como es posible? Sin embargo utilizo el mismo procedimiento en el stock y las cantidades se refrescan perfectamente si ambos usuarios entran a la vez en ese modulo.
Si cada usuario entra individualmente al modulo "nueva factura" la correlación de los numeros de facturas van de maravilla!!

¿ Alguna sugerencia ? Mil gracias
Lorenzo
Ruben D. Fernandez
Posts: 189
Joined: Sun Jul 08, 2007 1:46 am
Location: Uruguay

Post by Ruben D. Fernandez »

Lorenzo:

Según he leido aquí en el foro, deberías asignarle
el número a la factura cuando el usuario "Acepta" esa factura y
la manda a imprimir o sea en el ultimo momento.

Es una idea.

saludos

Ruben Fernandez
mantonio_08
Posts: 330
Joined: Fri May 25, 2007 9:06 pm

Post by mantonio_08 »

Loren:

La solucion pasa por que el numero de factura lo obtengas cuando realices el bloqueo de la base para grabar, en ese momento el folio de la factura sera en ULTIMO GRABADO + 1, grabas, imprimes desbloqueas y muestra en pantalla en Numero de la factura grabada.

Espero te sirva, esta es la forma en que yo lo realizo.

Saludos,
Antonio
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Lorenzo

aqui se habla del tema y la sulucion

http://fivetechsoft.com/forums/viewtopi ... ht=factura

saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Post by joseluisysturiz »

Loren,
Te recomiendo lo siguiente, imagino muchos otros lo haran asi, sino, es un buen metodo, crea una DBF donde controlas la numeracion de tus documentos; pedidos, facturas, recibos de cobro, etc; y como ya te han dicho todos, aunmentas el numero al finalizar tu documento siendo num_actual= num_actual +1, funciona super...SPERO TE AYUDE...
Dios no está muerto...

Gracias a mi Dios ante todo!
FiveWiDi
Posts: 910
Joined: Mon Oct 10, 2005 2:38 pm

Numeraciçon facturas.

Post by FiveWiDi »

Tal como ya han comentado, yo también utilizo un DBF para las numeraciones (referencieas únicas, albaranes, facturas, etc).

Pero sobre el orden de ejecución de los pasos no estoy del todo de acuerdo.

Yo hago: cuando detecto el primer movimiento a facturar y éste se puede facturar, lo bloqueo, accedo a la DBF de numeraciones, bloqueo el registro de la DBF, obtengo el nuevo número de factura, grabo la DBF, la desbloqueo, facturo el movimiento y lo desbloqueo.
Para el siguiente movimiento si pertenece a la misma factura ya tengo su número y no tengo de volver a acceder y además la DBF ya está disponible para los demás usuarios.

Cuando quiera imprimirla no deberé hacer nada estra sino imprimir.
El tiempo que la DBF de numeraciones ha estado 'pillada' es bajísimo y si en el proceso de su bloqueo tienes un While que espera a que no esté 'pillada' por otro usuario, el usuario que quiere facturar ni se entera de que alguien más estaba facturando.

Para mi una cosa es facturar y otra imprimir facturas. Son procesos independientes y el de impresión naturalmente reutilizable en cualquier momento.

Saludos
Carlos G.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Post by joseluisysturiz »

Fivewidi, reza un dicho..."entre gustos y colores no han escrito los pintores...", pero creo que una cosa es gusto y otra es logica, no quiero entrar en polemica sobre tu metodo, eso depende como se maneje los procesos de facturacion de algunos paises, fijate, tu bloqueas el numero, que pasaria si se va la luz o si no se finaliza la factura..?, ademas otro usuario podria terminar de facturar antes que el que bloqueastes, son solo analisis de situaciones, se dice que las mayorias no pueden estar equivocados, pero eso tambien es discutible, lo bueno es que Loren ya tiene alternativas para escojer la que mas le convenga y que sea mas seguro para su informacion, para eso estamos, pero el metodo propuesto por la mayoria, es muy viable y seguro, por no decir que es el correcto y unico.saludos.
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
wilsongamboa
Posts: 439
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Post by wilsongamboa »

Lorenzo yo lo hago asi

Code: Select all


Function NuewNum( Num )

    select factura //esta con indice activo de str(num_Fact,6)

    while .t.
        dbgobottom()
        num := factura->num_Fact + 1
        if !dbseek( str(Num,6 ) )
            exit
        end
    end
    
   dbappend()
    
   factura->num_Fact := num
   unlock
Return Num

esto lo hago cuando ya hayas terminado la factura en este caso el que gane el numero graba primero, bueno es solo mi humilde criterio

espero te ayude

Saludos
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Post Reply