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

Valdemir (gmail) valdemirjs em gmail.com
Sex Set 4 21:07:44 -03 2009


Então no seu form de digitação de NF... vc tem os campos tudo Edit, e não 
DBEdit

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

> Cara, nunca usei CDS....utilizo IBQuery, da aba interbase, mandando 
> comandos
> SQL direto...
>
> 2009/9/4 Valdemir (gmail) <valdemirjs em gmail.com>
>
>> 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
>>>
>>>
>> ______________________________________________
>> 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