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

Valdemir (gmail) valdemirjs em gmail.com
Sex Set 4 11:41:51 -03 2009


então pelo que eu entendi o correto seria trabalhar com CDS localmente dando 
applyuptates no final ?

vcs usam cds ou outro compomente para isso ?

--------------------------------------------------
From: "Osmar Aparecido Bento Junior" <osmar.bento em ig.com.br>
Sent: Friday, September 04, 2009 9:44 AM
To: "FireBase" <lista em firebase.com.br>
Subject: Re: [firebase-br]Fw: Transações x NF - ItensNF x Produto x Ficha 
Estoque

> 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
>>
> ______________________________________________
> 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