HELP PROBLEMA DE ESTOQUE AO TENTAR ZERAR DADOS

COQUITO 08/12/2015 21:02:02
#454880
Olá pessoal

preciso de uma ajuda de vocês, acontece que estou passando um problema muito comum que não estou conseguindo solucionar.
o problema é o seguinte, tenho a coluna produtoestoque na tabela produtos, o problema que esta apresentando é o seguinte.
se eu preciso 5 itens para comprar de tal produto e no meu estoque tenho 3
preciso que o sistema me mande uma alerta que o valor informado não pode ser aceito, porque em estoque existe um valor minimo.
pois acontece que quando informo o valor superior o que esta em estoque, ele nao esta zerando do contrario ele está somando em valores negativos conforme a imagem..

pessoal alguma ideia ? preciso de esse exemplo ficarei grato !
ALVAROVB2009 08/12/2015 21:16:34
#454882
Resposta escolhida
Na tela de venda quando vc consultar o codigo dele para fazer o lançamento, já traz o estoque dele e quando o usuário lançar o quantidade na venda, vc compara

Ex:
Aqui vc seleciona o item e guarda ele
dim Rs as recordset
rs.open ([Ô]Select * from itens where coditem = [Ô] & txtcoditem.text)

No campo quantidade compara
if Txtquant > rs!quantitem then
msgbox [Ô]Não existe estoque suficiente, existem apenas [Ô] & rs!quant & [Ô] unidades
end if

Ficaria assim, dessa forma vc da o alerta que não tem estoque e ja informa a quantidade que existe
NICKOSOFT 09/12/2015 05:37:17
#454887
tudo depende muito de como faz, isso é mais problema de logica do q programação.....
mas pode ser solucionado como sugerido.....simples comparação entre qnt em estoque com a qnt comprada, e o principal, se tem menos estoque, não deixar a rotina de compra seguir.....ou ignorar apenas aquele item avisando, depende de cada caso....
vc vai resolver isso so qnd vc pensar em vc vendedor como são as acoes........
o cliente chega e pede 200 unidades de algo, vc vai ao estoque buscar, ai ve q não tem, como são as regras do seu negocio então, volta e avisa q não tem, tras as q tem e avisa q não tem todas, vai vender e não entregar tudo, vai vender e entregar o q tem, essa é a logica q precisa ter pra fazer, primeiro saber como o negocio funciona, pra ofertar a solução....
FOXMAN 09/12/2015 10:01:15
#454894
Citação:

:
Na tela de venda quando vc consultar o codigo dele para fazer o lançamento, já traz o estoque dele e quando o usuário lançar o quantidade na venda, vc compara

Ex:
Aqui vc seleciona o item e guarda ele
dim Rs as recordset
rs.open ([Ô]Select * from itens where coditem = [Ô] & txtcoditem.text)

No campo quantidade compara
if Txtquant > rs!quantitem then
msgbox [Ô]Não existe estoque suficiente, existem apenas [Ô] & rs!quant & [Ô] unidades
end if

Ficaria assim, dessa forma vc da o alerta que não tem estoque e ja informa a quantidade que existe



Essa não é uma boa prática e tão pouco o correto a ser feito, pois veja bem se o PRODUTO está ali na mão do OPERADOR, como não pode ter estoque suficiente ????
Não sei para qual ramo de atividades os Srs desenvolve, mas imagine isso na frente de caixa de um supermercado ????
O cliente iria rir do operador. Sem contar que Operador poderá errar ainda mais o estoque.

Esse tipo de situação apenas pode ser corrigido, na administração/gerenciamento/auditoria EM FIM, NUNCA NA HORA DA VENDA.
Fazendo dessa forma fica igual RESTAURANTE DE PORTUGUES, com a plaquinha na porta FECHADO PARA ALMOÇO.
Para sanar esse problema existe uma cadeia de soluções/situações que são seguidas até chegar no problema efetivo.

Faça um Fluxograma(ou se preferir UML) de todo o processo , desde a entrada da mercadoria até a saida. Inclua nesse Fluxograma situações de Perda, Roubo, Quebra, etc......
Só assim você irá começar a entender definitivamente como lidar com o seu estoque.



OMAR2011 09/12/2015 11:21:09
#454897
Vale ressaltar.
Vb6 misturado com Vbnet
Pode ter certeza,não vai funcionar.
O ALVAROVB2009 não reparou as postagem do tópico.

FOXMAN 09/12/2015 14:53:46
#454912
Citação:

:
Vale ressaltar.
Vb6 misturado com Vbnet
Pode ter certeza,não vai funcionar.
O ALVAROVB2009 não reparou as postagem do tópico.


ALVAROVB2009 10/12/2015 11:17:03
#454955
Foxman e Omar apenas uma resposta para vcs

Foxman -> Sou programador a muito tempo assim como vc é , e programo para diversos estabelecimentos, nos meus projetos o problema em questão não acontece e se acontecer o produto fica negativo no estoque, más isso é porque existe um péssimo controle interno de quem faz os lançamentos, coisa que não podemos estar lá 24hrs por dia para ensinar aos funcionários como é a forma certa de fazer cada coisa que para que o estoque não fique negativo, tem funcionário que não esta nem ai para o patrão e tem muito patrão que só quer saber de dinheiro no bolso e mesmo tendo um relatório onde ele possa ver que o item esta negativo, nem se preocupa com nada.
Eu apenas mostrei para ele como que faz para fazer a comparação que ele queria fazer, concordo com vc 100% que tem que se avaliar tudo para que isso não aconteça, principalmente em um mercado, como foi o seu exemplo.
Não questionei e nem coloquei a minha idéia sobre o problema dele, porque na real não foi o que ele perguntou, e como ele precisava da ajuda e eu estava on no momento, eu coloquei a idéia de como tem que ser feito, pode ver que o tempo que ele postou a dúvida para o tempo de resposta, foram 14 min e se alguém tivesse colocado alguma outra resposta e se tivesse certa, COM CERTEZA, não iria me meter

Omar -> Vi sim que aqui era vb.net, foi exatamente por ter visto isso que coloquei e fui colocando passo a passo o que ele deveria fazer e não somente os códigos
Ex:
Aqui vc seleciona o item e guarda ele
dim Rs as recordset
rs.open ([Ô]Select * from itens where coditem = [Ô] & txtcoditem.text)

No campo quantidade compara
if Txtquant > rs!quantitem then
msgbox [Ô]Não existe estoque suficiente, existem apenas [Ô] & rs!quant & [Ô] unidades
end if

Apenas mostrei como que o comando deva ser colocado e em que parte deve fazer isso, não deixei muito especificado as variáveis exatamente para não confundir, porque nesse caso vc deve saber que esta faltando setar o RS, esta faltando vincular o banco de dados e como que ele será aberto pelo RS etc etc

Não me venha falar que se vc não ver um código em ASP Clássico, vc não consegue transformar ele para o Vb.NET?
Com certeza irá conseguir, de uma forma ou de outra, senão pelo código más pela idéia

Não quero que vcs me achem arrogante ou encrenqueiro , apenas estou me defendendo, más primeiro não gosto que duvidem de mim ou questionem o meu profissionalismo
Foxman quer dar a sua opinião tem todo o direito, estamos no fórum exatamente para debater e aprender, para conseguir uma melhor solução para o problema em questão, más pq vc não fez como o amigo NICKOSOFT, resumidamente ele colocou a mesma coisa que vc, porém em momento algum ele questionou diretamente o profissionalismo de alguém e expôs o que realmente esta acontecendo [Ô]PROBLEMA DE LÓGICA[Ô] que concordo que seja isso também.

E eu aqui não guardo informação para mim, procuro repartir com todos tudo o que sei, se eu vejo alguém precisando de ajuda e se eu ver que de alguma forma vou poder ajudar, eu ajudo. Já vi tópicos aqui ficarem dias sem resposta e que coisa que duvido que ninguém aqui não soubesse a resposta, por mais besta que ela possa ser, as vezes a gente esta com a cabeça a 1000 que não ve a resposta na cara, por isso que ajudei ele aqui e se vcs verem meu histórico de ajuda, não tenho ajudas apenas no vb6, tenho no asp clássico, vb.bet , SQL e C#
Onde eu puder ajudar, nem que seja o mínimo, estarei ajudando e isso irei continuar fazendo
PERCIFILHO 10/12/2015 12:36:02
#454963
Minha idéia:

Imagine o seguinte cenário:
Temos na tabela de produtos:
--------------------------------------------------------------------------------------------------------
Código Descricao Unitário Estq.Minimo Estq.Maximo Estq.atual
01 ItemX 10,00 10 20 12
---------------------------------------------------------------------------------------------------------

E na tela de venda do produto
---------------------------------------------------------------------------------
Código Descrição Qtde Unitário Total
01 ItemX 15 10,00 120,00
---------------------------------------------------------------------------------

Neste caso, quando for dar a baixa no estoque, deve ser checado na tabela da produtos
(Select * From Produtos Where codigo = [ô]01[ô]) a quantidade atual do estoque.
Se a quantidade a ser vendida é igual ou menor que o estoque atual,
(if quant_vendida <= estoque_atual)
então a venda será processada normalmente,
mas se a quantidade a ser vendida for maior que o estoque atual,
(if quant_vendida > estoque_atual)
MessageBox.Show([Ô]Não é possível realizar a venda......[Ô])
então deve-se emitir uma mensagem de alerta que não será possível realizar a venda, como é o caso do nosso exemplo.

Aí é como o Nickosoft disse, tem que ver se vai baixar da quantidade atual para zerar ou simplesmente não baixa nada,
tudo depende de suas regras, mas a lógica, no geral é essa.

Tópico encerrado , respostas não são mais permitidas