[firebase-br] Fw: Transações x NF - ItensNF x Produto x Ficha Estoque

Osmar Aparecido Bento Junior osmar.bento em ig.com.br
Sex Set 4 09:44:49 -03 2009


Na verdade o modelo ideal de trabalho é o que o rodrigo definiu...

Via programação voce deve se preocupar apenas em gravar o cabeçalho da nota
e os itens. Ao gravar o item, dispara uma ou várias triggers que irão fazer
a atualização do estoque, financeiro, etc....iniciando a transação quando
for gravar o cabeçalho da nota e finalizando apos o ultimo item.
Na trigger dos itens, voce pode colocar algum Check que pararia todo o
processo caso o tivesse algum problema...

2009/9/4 Rodrigo <dominio em engeplus.com.br>

> Bom dia Valdenir.
>
> O ideal é vc manter a transação aberta o menos tempo possivel.
>
> No meu caso preferi fazer o seguinte. Carregar todos os dados da NF no Form
> NF. Entao quando o cliente toma a decisão
> do que fazer com a nota, Imprimir ou Guardar como Nao impressa por exemplo,
> no botao que ela escolher eu inicio a transação,
> atualiza os dados e da um commit ou rollback em caso de erro. Dessa forma o
> tempo que a transação fica aberta é minimo. Para atualizar o estoque uso uma
> trigger tb. Da mais trabalho mas acho que é a melhor forma.
>
> Rodrigo
>
>
> ----- Original Message ----- From: "Valdemir (gmail)" <
> valdemirjs em gmail.com>
> To: <lista em firebase.com.br>
> Sent: Friday, September 04, 2009 8:12 AM
> Subject: [firebase-br] Fw: Transações x NF - ItensNF x Produto x Ficha
> Estoque
>
>
> Correção, este erro da ao vender em duas maquinas diferentes o mesmo
> produto
> Ex..
> maquina 1
> inicio a transação
> incluo a nf
> incluo o produto 1  ... ainda não terminei de lanaçar a nota e a maquina 2
> abre uma nova nota, e inclui o mesmo produto na maquina 2 da erro de
> conflito
> ..........................................
> ao eu usar commitretaining ao gravar o item, o erro desaparece... mas se eu
> cancelar a operação na maquina 1 com o rollback a nota é cancelada, os itens
> tb, mas a atualização que a trigger de inclusão que o item fez na tabela de
> produtos não é descartada e ai o estoque fica errado
>
> From: Valdemir (gmail)
> Sent: Thursday, September 03, 2009 10:34 PM
> To: lista em firebase.com.br
> Subject: Transações x NF - ItensNF x Produto x Ficha Estoque
>
>
> Pessoal tenho a seguinte estrutura no banco
>
> Produtos
> Codigo
> Nome
> QTde
>
> NF (cabecalho da nota)
> NF-Itens (itens da nota)
>
> Ficha Estoque (toda movimentação de produtos vem aqui e atualiza a qtde) na
> tabela de produtos
> ...
> ao incluir um item de NF... por trigger incluo um registro na ficha de
> estoque.... e na trigger da ficha de estoque altero o saldo do produto no
> cadastro do produto
> ....
>
> ao lançar a NF inicio a transação desligado o auto comit, configurada como
> read comited
>
> incluo qtos itens desejar
>
>
> no final dou comit, ou rolback
> ...
> funciona 100% desde que seja em apenas uma maquina ...
>
> esta dando erro de conflito se eu na maquina 1, vender o produto 1, e na
> maquina 2 alterar o produto 2, ao mandar gravar o produto 2 da erro de
> conflito, isso pq a transação da nota ainda esta aberta
> ...
> pensei se eu dar comit ao incluir um item a nf ainda não fechou e pode ser
> que ainda não grave por causa de alguma validação
> ...
> outro detalhe é que eu posso dar um rollback no final e tudo volta como era
> antes, se eu der comit no meio de tudo, vai dar um trampo danado sair
> cancelando tudo ... isso pensando que se esta incluindo pq se estiver
> alterando... voltar a nota como estava antes vai ser pior ainda
> .........
> .
> este tipo de situação acho que é comum acontecer pq já vi varios sistemas
> com esta mesma estrutura, li algumas coisas sobre o commitretaining, mas não
> sei se ele se encaixaria neste caso
> ...
> eu tenho até a revista do cantu edição 42 mas mesmo assim não achei uma
> solução ou melhor "não enxerguei", pois acho que ela existe sim
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> __________ NOD32 4394 (20090904) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://www.eset.com
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista