Jump to content
Fivewin Brasil

Controle de Saldo de Estoque de Lotes-Vencimentos


marcioe

Recommended Posts

Olá a todos, um cliente de sistema de produtos agropecuários gostaria que o sistema faça o controle de lote e vencimento, porem o vencimento que é a chave da questão


Pois bem Fiz a Rotina, que fará o controle de forma automática, baixando o estoque mais antigos dos lotes, 

Seria assim de forma resumida,  Somo Todas a Compras  do Produto código 2218 - VACINA XXXX     por exemplo e obtenho um resultado de 98 por exemplo.

 

Fiz o Array com os produtos do Lote,

        *-------------------------------------------------------------------------    
        * Controle de Vencimentos e Lotes
        *-------------------------------------------------------------------------    
        A_array_cad_produtos_lotes_vencimentos    := {}
        cQuery:=                "    select lote_vencim.*,  date_format(lote_vencim.VENCIMENTO,'%d/%m/%Y') AS lote_vencim, "
        cQuery:=cQuery +     "  tcomp.ID AS tcomp_ID, tcomp.CODIGO_FORNECEDOR, tcomp.CHAVE_NFE, tcomp.NUMERO_NF, tcomp.SERIE, tcomp.CODIGO_DOCUMENTO,   "
        cQuery:=cQuery +     "  date_format(tcomp.DATA_EMISSAO,'%d/%m/%Y') AS DATA_EMISSAO, date_format(tcomp.DATA_ENTRADA,'%d/%m/%Y') AS DATA_ENTRADA, "
        cQuery:=cQuery +     "  forn.CODFOR, forn.NOMFOR, forn.CGCFOR  "
        cQuery:=cQuery +     "  from produtos_lotes as lote_vencim  "
        cQuery:=cQuery +     "  LEFT JOIN tcompra AS tcomp ON lote_vencim.ID_TCOMPRA = tcomp.ID  "
        cQuery:=cQuery +     "  LEFT JOIN forneced AS forn ON tcomp.CODIGO_FORNECEDOR = forn.CODFOR  "
        cQuery:=cQuery +     "  WHERE lote_vencim.ID_PRODUTO = " + TRANSFORMA_SQL(o_Vcodigo_Produto,'N',07,0)
        cQuery:=cQuery +     "  ORDER BY lote_vencim.ID desc "
 

 

Precisava Calcular o saldo a cada linha do Registro.

 

Agradeço aos amigos, aceito outras ideias

 

 

Link to comment
Share on other sites

  • 2 weeks later...
 

Marcio, como tu faz para ter certeza que a ampola da vacina que está sendo vendida é realmente do lote 0123 e não do lote 0234?

Att.

Everton

Isso pode ser resolvido com o cadastro do produto com Codigo de Barras, pois o produto vai ter codigo diferente....

aí qdo for dar baixa, utilza-se o codigo de barras para baixar no estoque correto...

 

 

Link to comment
Share on other sites

 

Isso pode ser resolvido com o cadastro do produto com Codigo de Barras, pois o produto vai ter codigo diferente....

aí qdo for dar baixa, utilza-se o codigo de barras para baixar no estoque correto...

 

 

Mas cada lote vai ter um código em barras diferente? Não é um código por produto independente do lote?

Att.

Everton

Link to comment
Share on other sites

 

Não amigo, o lote é uma identificação de lote - vencimento da vacina.
Quando o usuario for vender, o sistema indicará qual o lote-vencimento ele deverá pegar.

Se pegar errado, ai ferrou

Márcio, como vc vai fazer eu não sei, mas vou te dizer como uso no meu sistema, no qual controlo medicamentos, mais especificamente vacinas humanas, as quais são obrigatoriamente controlados por lote e validade,  onde a tabela de produtos em estoque é indexada por código do produto, data de validade e lote. 

Na venda é verificada a soma das quantidades do produto de todos os lotes e a captura se dá sempre pelo lote mais velho até o lote mais novo e esta é concretizada caso a quantidade solicitada seja menor ou igual a quantidade existente.

Na tabela,  tenho um campo reserva/empenho onde assim que é digitado o produto, os registros que satisfazem a pesquisa, são bloqueados e ao digitar a quantidade, esta é subtraída da quantidade real e reservada/empenhada  por validade/lote, liberando os registros, logo após esta reserva,  a qual só é liberada em definitivo  da reserva/empenho somente após o faturamento, portanto, enquanto este pedido não for faturado, os produtos deste ficarão em reserva/empenho até que isso aconteça.

Por mais que haja segurança neste processo, ainda assim, é feita uma contagem semanalmente do estoque físico e confrontada com o eletrônico para certificar que o sistema esteja realmente íntegro.

[]s,

 

Link to comment
Share on other sites

Todos os métodos tem grande possibilidade de falha devido o fator humando, ao meu ver a unica forma de minimizar o fator humano é via codigo de barras, gerando um codigo q identifique o lote, exemplo:

                        Tabela de Estoque/Lotes 
=================================================================================
  ID    Produto  CodBarras      Qtde  Lote      Vencimento  CodBarrasSistema
000001  ABCDEFG  7891234567890   2   ABC-123    Nov/2019    000008000001  
000002  ABCDEFG  7891234567890   1   ABC-124    Dez/2019    000008000002
000003  ABCDEFG  7891234567890   5   ABC-125    Set/2018    000008000003
000004  ABCDEFG  7891234567890   3   ABC-126    Out/2018    000008000004
000005  ABCDEFG  7891234567890   4   ABC-127    Jan/2020    000008000005

Tipo uma grade
Total de estoque do produto ABCDEFG 2+1+5+3+4 = 15

A logica seria a seguinte entrou o produto o sistema gera a etiqueta conforme qtd entrada, entao no exemplo 
acima se entrou 4 Lote ABC-127 vai lançar no respectivo lote se ja existe 
se não cria um novo e gera 4 etiquetas 000008000005 onde 000008 é o codigo interno/ID do produto e 000005 é o ID do lote

Se usar o codigo de barras q vem no produto apresenta os dados do produto e estoque geral do mesmo (consultas)
Na hora de faturar tem q passar o codigo de barras do sistema pra identificar o lote correto
Neste ponto exige-se um trabalho na entrada dos produtos/etiquetas mas a saida fica exata. 
Mesmo assim existe o fator humano na entrada/etiquetagem dos produtos.

 

Edited by fladimir
Melhor visualização do texto.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...