RES: [firebase-br] Problema para controlar saldo de produtos

Valber Aguiar listas em aguiarsistemas.com.br
Qua Dez 8 14:54:11 -03 2004


E se a máquina travar? Como fica o empenho?

Eu faço assim: Mostro o estoque atual (soma de todos os almoxarifados) mas 
só testo na gravação do pedidos. Se na hora de comfirma a venda o estoque 
for insuficiente crio uma execeção.

Valber Aguiar

----- Original Message ----- 
From: "Otto" <ottofuch em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, December 06, 2004 5:53 PM
Subject: Re: RES: [firebase-br] Problema para controlar saldo de produtos


> "No meu caso eu quero atualizar os saldos assim que o usuario escolher os
> produtos, antes mesmo de fechar a venda. Mas caso o usuario cancele a
> venda eu tenho que voltar os saldos para o valor correto."
>
> Porque, em vez disto, não cria um mecanismo de empenho, e na medida em que 
> o
> usuário escolher os produtos, eles são empenhados, e se fechar a venda, dá
> baixa definitiva do valor empenhado. Isto precisa ser feito apenas em
> quantidade, para evitar que um mesmo item seja vendido duas vezes (como o
> overbooking das empresas aéreas).
> 100+
> Otto
>
> ----- Original Message ----- 
> From: "Marcelo Siqueira" <marcelo em bredas.com.br>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Monday, December 06, 2004 11:25 AM
> Subject: Re: RES: [firebase-br] Problema para controlar saldo de produtos
>
>
> Rildecy,
>
> Obrigado pelas dicas. Mas ainda tenho algumas duvidas. Se eu entendi bem
> o seu exemplo você apenas atualiza os saldos de produtos no final,
> quando o usuario escolhe que tipo de operação ele quer realizar, certo?
>
> No meu caso eu quero atualizar os saldos assim que o usuario escolher os
> produtos, antes mesmo de fechar a venda. Mas caso o usuario cancele a
> venda eu tenho que voltar os saldos para o valor correto.
>
> Eu imagino assim:
>
> Maquina A:
> - Abro uma transação
> - Saldo atual do produto X: 100
> - Usuario escolhe para comprar 2 unidade do produto X
> - Saldo do produto X agora é 98
> - Transação ainda não foi completada
>
> Em quanto isso na Maquina B:
> - Abro uma transação
> - O Saldo atual do produto X é 98
> - O usuario compra 5 unidades do produto X
> - Agora o saldo o produto X é 93
> - Venda confirmada e transação comitada
>
> Bom, ai na maquina A o usuario resolve cancelar tudo e eu dou um
> Rollback. Como então vai ficar o saldo do produto X? Vai voltar para 100
> ou ficar em 93? Essa é minha duvida, como o rollback do banco vai se
> comportar nesse tipo de situação de atualização de saldos?
>
> Marcelo
>
>
>
> Rildecy de Queiroz Borba wrote:
>> Vou tentar passsa como fiz o meu.
>>
>> Tenho duas tabelas uma com os dados do pedido e outra com os itens do
> pedido
>> Elas possuem o campo numero do pedido e tipo de saída.
>> Quando inicio uma operação, chamo de operação pois ate o momento não sei
> se
>> o que o cliente quer é uma venda ou um orçamento, eu colocou um numero
>> aleatório no numero do pedido com valor negativo,so para não aparecer nos
>> outros terminais, e no campo tipo de saída marco como operação 
>> indefinida,
>> aqui vc pode usar uma tabela de códigos de saída, ao final da operação eu
>> pergunto se esta operação é uma venda ou se é uma reserva de mercadoria,
> se
>> é um orçamento , se é uma transferência, etc.
>> E se for um pedido eu so mudo o campo numero do pedido para a seqüência
>> correta e o campo tipo de saída como venda, daqui por diante é o
>> procedimento normal, e estou gravando tudo na tabela de itens que possui
> uma
>> triger que atualiza o meu saldo de acordo com a entrada dos dados e 
>> comito
> a
>> cada item pois se houver falta de energia posso apagar os itens e o saldo
>> fica correto.
>>
>> O bom é que vc tem uma relação de saída de mercadorias genérica que vc
> pode
>> adaptar da forma que quiser.
>>
>> Se quiser mais informações to aqui
>> rildecy em msn.com
>>
>> -----Mensagem original-----
>> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
>> nome de Marcilio Soares
>> Enviada em: sexta-feira, 3 de dezembro de 2004 18:20
>> Para: FireBase
>> Assunto: Re: [firebase-br] Problema para controlar saldo de produtos
>>
>> eu faco em trigger e ainda nao me apareceu problemas !
>>
>> ----- Original Message ----- 
>> From: "Marcelo Siqueira" <marcelo em bredas.com.br>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Friday, December 03, 2004 4:38 PM
>> Subject: [firebase-br] Problema para controlar saldo de produtos
>>
>>
>> Boa tarde,
>>
>> Preciso controlar o saldo de produtos durante uma operação de venda e
>> estou em duvida sobre qual a melhor maneira de fazer isso.
>>
>> Meu plano é fazer uma tela de vendas onde pego todas as informações do
>> usuário e gravo tudo em estruturas de memória, para só no final abrir
>> uma transação e gravar o pedido efetivamente no banco.
>>
>> Porém existe uma exceção nessa idéia de gravar toda venda em memória: o
>> saldo do produto. Assim que o usuário escolhe um produto eu decremento o
>> seu saldo da tabela para evitar que outro usuário faça um pedido do
>> mesmo produto caso este tenha saldo zero.
>>
>> Por fim, se o usuário confirmar a venda, o saldo do estoque já vai estar
>> certo, caso ele cancele o pedido eu incremento os saldos dos produtos
>> para que eles fiquem com o valor original. Mas ai existe um problema. Se
>> a maquina cliente travar antes do cliente confirmar ou cancelar o pedido
>> eu perco os meus dados que estavam em memória e o banco vai ficar com
>> informações inconsistentes.
>>
>> Enfim, gostaria de saber sobre a experiência de outros programadores no
>> modo como controlam o saldo de produtos durante telas de venda. Alguém
>> poderia me dar algumas dicas sobre como é maneira correta de se fazer
>> isso dentro de um ambiente cliente/servidor?
>>
>> Marcelo
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
> 





Mais detalhes sobre a lista de discussão lista