marcioe Posted November 8, 2017 Report Share Posted November 8, 2017 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 Quote Link to comment Share on other sites More sharing options...
evertonlb Posted November 23, 2017 Report Share Posted November 23, 2017 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 Quote Link to comment Share on other sites More sharing options...
marcioe Posted November 23, 2017 Author Report Share Posted November 23, 2017 ai não terá como, o "bendito usuario terá que pergar", porem o controle, seria assim O sistema que terá que baixar em ordem, indiferente se o usuario pegar errado, o sistema fará a baixa correta E o usuario que se explique depois Quote Link to comment Share on other sites More sharing options...
Theotokos Posted November 23, 2017 Report Share Posted November 23, 2017 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... Quote Link to comment Share on other sites More sharing options...
evertonlb Posted November 23, 2017 Report Share Posted November 23, 2017 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 Quote Link to comment Share on other sites More sharing options...
marcioe Posted November 23, 2017 Author Report Share Posted November 23, 2017 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 Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted November 23, 2017 Report Share Posted November 23, 2017 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, Quote Link to comment Share on other sites More sharing options...
fladimir Posted November 24, 2017 Report Share Posted November 24, 2017 (edited) 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 November 25, 2017 by fladimir Melhor visualização do texto. Quote Link to comment Share on other sites More sharing options...
marcioe Posted November 24, 2017 Author Report Share Posted November 24, 2017 Ok amigos Vou compilar as ideias aqui apresentadas e gerar a regra conforme a minha realidade aqui. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.