[firebase-br] Fw: Transações x NF - ItensNF x Produto x Ficha Estoque
Rodrigo
dominio em engeplus.com.br
Sex Set 4 09:23:07 -03 2009
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
Mais detalhes sobre a lista de discussão lista