Yo lo veo así:
Si la tabla se va a bloquear, significa que cuando alguien esté creando una
factura el programa le va a marcar error. Si agregar un índice unique en
serie y folio, también a alguien le marcará error, no es así?

2016-04-20 6:48 GMT-05:00 Kernel <jucab...@gmail.com>:

> El 19/04/2016 a las 20:26, Alvaro Herrera escribió:
>
>> Kernel escribió:
>>
>>> Hola,
>>>
>>> Voy a hacer un proceso de facturacion y necesito asegurar que nadie pueda
>>> facturar en el mismo momento que yo.
>>>
>>
>> ¿cuál es la razón para esta restricción?
>>
>>
> El problema es el numero de factura, se me podria duplicar, un usuario
> podria estar haciendo un proceso de 100 facturas y otro solo una, dentro de
> la misma serie.
>
> Este es el proceso resumido.  (es bdl de 4js)
>
>
> BEGIN WORK
>
> TRY
>           declare aux_3410_serie  cursor  for
>                         select  *
>                         from    fseries
>                         where   fseries.empresa        =  act.empresa
>                         and     fseries.serie          >= r.serie_ini
>                         and     fseries.serie          <= r.serie_fin
>                         order by fseries.serie
>
>         foreach aux_3410_serie  into    aux2.*
>
>                         declare albaranes cursor for
>                                 select albaranes
>                                 where serie =  aux2.serie
>                                 and   fecha >= r.fecha_ini
>                                 and   fecha <= r.fecha_fin
>                                 and   .... (limites del usuario)
>
>
>                         FOREACH albaranes .....
>                                                         ......
>                                                         ......
>                                 LET aux2.factura = aux2.factura + 1
>                                 insert into facturas values
>                         (act.empresa,aux2.serie.aux2.factura ......
>                                 borrar albaran y pasa al historico
>
>                                 update fseries
>                                 set factura = aux2.factura
>                                 where   fseries.empresa        =
> act.empresa                   and serie = aux2.serie
>
>                         end foreach
>
>                 end foreach
>
>         COMMIT WORK
> CATCH
>         ROLLBACK WORK
> END TRY
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>



-- 
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

Responder a