Amigos,
Tenho um sistema rodando há quase 20 anos em uma loja de materiais de construção, desenvolvi NFe, EFD ICMS/IPI e atualmente desenvolvendo a EFD CONTRIBUIÇÕES, só que as vezes ocorre do estoque ficar negativo e um dos motivos é o seguinte, vou tentar exemplificar:
Na empresa tem o servidor e 8 terminais no balcão, no balcão 1, o vendedor digitou o produto 10, seu saldo em estoque é 20, na quant.vendida informou 15, lógico, o sistema verificou o saldo em estoque e liberou, porém a venda ainda não foi gravada, o sistema está aguardando a digitação de novos itens,
Neste momento, no balcão 2 e nos outros, logicamente este mesmo produto 10 poderá ser vendido, no momento que o vendedor informa a quantidade 8 por exemplo, o sistema checará o saldo, e aí o que acontece, o saldo do produto 10 ainda estará 20, pque a venda anterior ainda não foi confirmada, o sistema libera a quantidade informada e aí na gravação das 2 vendas, é onde acontece de ficar negativo que, neste exemplo, o saldo do produto 10 ficará -3, e aí imaginam numa loja com quase 7000 itens.
Enfim, até peço desculpas pque isso é um controle bem básico que todo sistema deve ter mas, como essa parte de controle do estoque foi feito bem no começo, depois me envolvi com outras coisas passei um bom tempo sem mexer nesse sistema, e acabei que não montei uma rotina segura e funcional p/ evitar esse tipo de falha, agora, devido as obrigações de NFe e SPED, o cliente me procurou e voltei a mexer, como está muito corrido, peço opinião, por gentileza, aos colegas sobre como montar um controle p/ evitar esse tipo de situação que jamais pode ocorrer devido agora as obrigações fiscais.
Opinião sobre controle de estoque
Moderador: Moderadores
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Opinião sobre controle de estoque
Olá!
Crie um campo a mais na tua tabela de estoque, por exemplo QtdReserv. A cada item, some a quantidade pedida do item neste campo e grave. Na hora de verificar o estoque disponível, faça a conta estoque disponível = estoque atual - estoque reservado. Ao final de cada pedido, independentemente de o pedido ser ou não faturado, atualize novamente o campo, deduzindo a quantidade, para ela não ficar reservada.
Crie um campo a mais na tua tabela de estoque, por exemplo QtdReserv. A cada item, some a quantidade pedida do item neste campo e grave. Na hora de verificar o estoque disponível, faça a conta estoque disponível = estoque atual - estoque reservado. Ao final de cada pedido, independentemente de o pedido ser ou não faturado, atualize novamente o campo, deduzindo a quantidade, para ela não ficar reservada.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Opinião sobre controle de estoque
Há vários métodos de controle de estoque, eu utilizo um controle "on-line" ao fazer um pedido (durante) já retira e atualiza o item em estoque. Caso a venda não se confirme, a função de devolução de item ao estoque entra em ação atualizando o estoque. Como estamos sempre propensos ao transtorno de corruption de índice, dbf etc este é um dos grandes problemas deste esquema, mais que também poderia ocorrer em um campo de reserva conforme o nosso colega indicou. Outra forma era mudar a sua rotina para criticar ao fechar o pedido, bloqueio o registro para segurar o valor em estoque, se a quantidade que estiver no pedido for maior informe ao usuário se quer apenas a quantidade disponível e pronto.
Ate+
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Opinião sobre controle de estoque
Quando eu trabalhava com controle de estoque em clipper + dbfs + Rede Novell eu tinha pesadelos com os saldos negativos. Eu trabalhava no CPD e tinha que explicar a causa dos negativos. Era muito chato. Quando era fim de ano e eu tinha que mandar os relatórios para o contador e vez por outra apareciam os negativos. A pessoa proprietária da loja desconfiava de roubo e no dia de inventário (todo janeiro) o clima ficava pesado. Na maioria das vezes era índices corrompidos. Nesse caso fica difícil encontrar uma solução definitiva como o colega bem citou.
O que eu fazia era
Criar uma função atuSaldo( codPro, Qtd , Oper ) Onde Oper = "E" (Entrada) ou "S" (Saída)
Dentro dessa função eu verificava se o saldo se tornava negativo e ai bloqueava a transação no caso de saldo negativo.
Procure criticar e bloquear o negativo apenas em UM ponto do seu programa (por isso crie uma função) e mantenha os índices ok (se é que isso é possível. Dê uma olhada no fórum que tem dicas de como manter o índice OK, se der para usar um SSH resolveria bastante, para isso dê uma olhada no bitwise que é um servidor SSH para windows que é perfeito para apicações clipper).
Boa sorte.
O que eu fazia era
Criar uma função atuSaldo( codPro, Qtd , Oper ) Onde Oper = "E" (Entrada) ou "S" (Saída)
Dentro dessa função eu verificava se o saldo se tornava negativo e ai bloqueava a transação no caso de saldo negativo.
Procure criticar e bloquear o negativo apenas em UM ponto do seu programa (por isso crie uma função) e mantenha os índices ok (se é que isso é possível. Dê uma olhada no fórum que tem dicas de como manter o índice OK, se der para usar um SSH resolveria bastante, para isso dê uma olhada no bitwise que é um servidor SSH para windows que é perfeito para apicações clipper).
Boa sorte.
Opinião sobre controle de estoque
Olá colegas,
Em primeiro lugar, obrigado a todos pela atenção.
Quanto a problema de índices, conf. citou os colegas, realmente era quase que direto qdo trabalhava com RTLINK, depois que passei a utilizar BLINKER 7.0 acabaram os problemas.
Neste caso Andril, não faria a baixa "on-line" durante a digitação do pedido conforme vc utiliza ?
Em primeiro lugar, obrigado a todos pela atenção.
Quanto a problema de índices, conf. citou os colegas, realmente era quase que direto qdo trabalhava com RTLINK, depois que passei a utilizar BLINKER 7.0 acabaram os problemas.
Vamos ver se entendi, ao confirmar o pedido, dentro de um laço, dou um dbrlock() no registro e comparo, se a quant.do pedido for maior que o saldo em estoque, dá opção ao usuário conf. vc citou, é isto ?ANDRIL escreveu:Outra forma era mudar a sua rotina para criticar ao fechar o pedido, bloqueio o registro para segurar o valor em estoque, se a quantidade que estiver no pedido for maior informe ao usuário se quer apenas a quantidade disponível e pronto.
Neste caso Andril, não faria a baixa "on-line" durante a digitação do pedido conforme vc utiliza ?
Opinião sobre controle de estoque
Desculpe, só vi o tópico hoje.
Ate+
Exato. Voce checa item a item bloqueando antes. Assim se outro terminal tentar acessar o estoque do mesmo produto tem que aguardar a atualização do saldo. A única desvantagem é não ter um estoque "on-line", porem creio que seja o metodo mais "seguro".JSystem escreveu:Neste caso Andril, não faria a baixa "on-line" durante a digitação do pedido conforme vc utiliza
Ate+


