Comercial - Pedidos - Tratamento de Lotes
1. Consistência de Campos
Nesta seção estão descritas as consistências aplicadas aos campos de depósito, reserva de estoque e código de lote do item de produto do pedido.
1.1. Depósito
Ao informar o campo de depósito para um item de produto executará a rotina de sugestão de lotes para o item de produto. Para mais detalhes deve-se verificar na seção Identificadores de Regras - Lotes no Pedido a subseção Sugestão direta ao registro do item.
1.2. Reserva de Estoque
Ao informar o campo de reserva de estoque para um item de produto, executará uma rotina única para as todas as telas e processos relacionados a pedidos. Por meio desta rotina algumas consistências serão efetuadas, a saber:
- quando o valor informado para o indicativo de reserva do item de produto for diferente de S(sim) e diferente de N(não) exibirá a mensagem: Pedido XXX: Deve ser informado ''S''(Sim) ou ''N''(Não) para o indicativo de reserva de estoque do item YYY., abortando o processo;
- quando o código do lote informado diretamente no registro do item for
diferente de vazio, ou seja, existir um código de lote informado e não existir
reserva de estoque para o item de produto (campo RESEST igual a N(Não))
então o exibirá o questionamento: Pedido XXX: Existe um lote informado para o
item de produto YYY, o que implica em sempre reservar estoque. Retirando a
reserva o lote será removido. Deseja continuar? ;
- caso opte-se por remover o código de lote informado diretamente no registro do item de produto, removerá o código de lote existente no registro do item de produto.
- caso opte-se por não remover o código do lote informado diretamente no registro do item de produto, exibirá a mensagem: Processo cancelado! , abortando o processo;
- na execução pelo ERP SID, ERP WEB em forma de serviço ou nas rotinas de duplicação, não exibirá o questionamento, assumindo por padrão a opção de remover o código de lote existente no registro do item de produto.
- quando o parâmetro E070VEN.ANAEFP(Analisa/Gera Embalagens Fechamento
Pedido) presente em Cadastros > Filiais > Vendas estiver com o valor igual a
S(Sim) e o indicativo de reserva de estoque(RESEST) for igual a N(Não) e o
indicativo anterior de reserva de estoque para o item de produto for igual a
N(Não) ou for vazio, exibirá a mensagem: Pedido XXX: Não é possível remover a
reserva do item de produto YYY pois o pedido analisa embalagens, abortando o
processo;
- o parâmetro ANAEFP representa o indicativo de que a filial de vendas obriga a realizar a análise e geração de embalagens no fechamento do pedido, aproveitando estoque de vários depósitos.
- quando o item de produto possuir derivação genérica deve remover o indicativo de reserva do item de produto, alterando-o para N(Não).
- quando o indicativo de reserva de estoque para o item de produto(RESEST) for igual a S(Sim) e o indicativo anterior de reserva de estoque para o item de produto for igual a N(Não), ou seja, quando a reserva foi alterada de N para S executará a rotina de sugestão de lotes para o item de produto. Para mais detalhes deve-se verificar na seção Identificadores de Regras - Lotes no Pedido o subitem Sugestão direta ao registro do item.
1.3. Código de Lote
Ao informar o campo de código do lote para um item de produto, executará uma rotina única para todas as telas e processos relacionados ao pedido. Por meio desta rotina efetuará algumas consistências, descritas abaixo:
- quando não existir código de lote informado diretamente no registro do item e o produto controlar por lote e a derivação do produto não for genérica exibirá a mensagem: Pedido XXX: Item YYY não pode ter lotes pois a derivação é uma derivação genérica para o produto.;
- quando o código do lote informado diretamente no registro do item for
alterado e E070VEN.ANAEFP(Analisa/Gera Embalagens Fechamento Pedido) presente
em Cadastros > Filiais > Vendas estiver com o valor igual a S(Sim) ou o
identificador de regras VEN-120CTEMB01 estiver cadastrado e pedido possuir
embalagens exibirá a mensagem: Pedido XXX: Item YYY não pode ter
seus lotes alterados pois está ligado com embalagens de estocagem.;
- o parâmetro ANAEFP representa o indicativo de que a filial de vendas obriga a realizar a análise e geração de embalagens no fechamento do pedido, aproveitando estoque de vários depósitos.
- quando o código do lote informado diretamente no registro do item for
diferente de vazio, ou seja, existir um código de lote informado e não existir
reserva de estoque para o item de produto (campo RESEST igual a N (Não))
então exibirá o questionamento: Pedido XXX: Foi informado um lote
para o item de produto YYY. Este procedimento implica em sempre reservar
estoque. Deseja reservar estoque? ;
- caso o usuário opte por alterar a reserva de estoque do item de produto então alterará o indicativo de reserva de estoque do item de produto para S(Sim).
- caso o usuário opte por não alterar a reserva de estoque do item de produto exibirá a mensagem: Processo cancelado! , abortando o processo;
- na execução pelo ERP SID, ERP WEB, em forma de serviço ou nas rotinas de duplicação não exibirá o questionamento, no entanto, exibirá a mensagem: Pedido XXX: Foi informado um lote para o item de produto YYY. Este procedimento implica em sempre reservar estoque., abortando o processo.
- quando o código do lote informado diretamente no registro do item for
vazio, ou seja, não existir um código de lote informado e existir reserva de
estoque (campo RESEST igual a S (Sim)) então exibirá o
questionamento: Pedido XXX: Foi retirado o lote do item de produto YYY, no
entanto este item reserva estoque. Deseja retirar também a reserva de estoque?
.
- caso o usuário opte por alterar a reserva de estoque do item de produto então removerá o indicativo de reserva de estoque do item de produto, alterando-o para N (Não).
- caso o usuário opte por não alterar a reserva de estoque do item de produto manterá o indicativo de reservar de estoque do item de produto como S (Sim).
- no entanto, caso o usuário opte por cancelar o processo exibirá a mensagem: Processo cancelado! , abortando o processo;
- na execução pelo ERP SID, ERP WEB, em forma de serviço ou nas rotinas de duplicação não exibirá o questionamento, assumindo por padrão a opção de remover o indicativo de reserva do item de produto, alterando-o para N(Não).
- caso o usuário opte por não remover o indicativo de reserva do item de produto, manterá o indicativo com o valor S(Sim). No fechamento do pedido ou na confirmação de um registro na grid, caso este item de produto estiver na situação 1(Fechado), efetuará a distribuição de lotes de acordo com a rotina efetuar a distribuição de lotes para o item de produto do pedido.
- validar a montagem do código do lote informado diretamente no registro do item de produto do pedido conforme a rotina validar a montagem do código do lote.
2. Rotina de Consistência de Registros
Enquanto o pedido não estiver fechado é possível que não haja distribuição diretamente no registro do item de produto. Também não existirá distribuição na tabela de lotes do pedido (E120DLS), pois a distribuição física na tabela de lotes do pedido somente pode ser feita com o pedido fechado. A rotina de consistência de registros garante que em hipótese alguma, todo e qualquer item de produto controlado por lote, com o indicativo de reserva de estoque igual a S(Sim), cuja derivação não é genérica e com seu estado na situação 1(Fechado) seja gravado fisicamente sem a sua correspondente distribuição de lotes na tabela de lotes do pedido (E120DLS). Nesse contexto, vale lembrar que a distribuição direta no registro do item de produto serve apenas de sugestão para a distribuição física na tabela de lotes do pedido. Nada impede que toda a distribuição na tabela de lotes do pedido (E120DLS) seja alterada e que diretamente no item de produto conste um código de lote qualquer ou mesmo não conste informação alguma. O código de lote informado diretamente no item de produto é usado como sugestão para a distribuição física na tabela de lotes do pedido (E120DLS) no momento do fechamento ou então, quando da inserção de um item de produto controlado por lote, com o indicativo de reserva de estoque igual a S(Sim), cuja derivação não é genérica e com o estado do pedido na situação 1(Fechado). Caso o item de produto encontre-se na mesma situação descrita acima, mas o processo decorrente seja a alteração do lote informado diretamente no registro do item de produto, então a sugestão realizada diretamente no item de produto também será usada e deverá sobrepor toda a distribuição de lotes já existente para o item de produto.
2.1. Ações da Rotina de Consistência de Registros
Ao confirmar um registro (gravar e/ou encerrar a edição de um registro e/ou fechar o pedido) executará a rotina unificada de consistências e/ou distribuição sempre que o produto for controlado por lote. A execução desta rotina tem como finalidade garantir a consistência dos itens de produto do pedido, o que é alcançado por meio das rotinas descritas:
- Consistir a quantidade da distribuição de lotes para o item de produto: Rotina de consistência necessária para garantir que a quantidade total da
distribuição seja sempre igual à quantidade aberta do item de produto do pedido.
A quantidade total da distribuição refere-se à soma das quantidades de todos os
lotes que fazem parte da distribuição de um item de produto do pedido.
- caso a quantidade total da distribuição seja inferior a quantidade aberta do item de produto exibirá a mensagem: Pedido XXX: A distribuição de lotes informada não é suficiente para a quantidade aberta do item de produto YYY. Verifique., abortando o processo.
- Consistir o saldo da distribuição de lotes para o item de produto: Processo de consistência necessário para garantir que o saldo dos lotes
utilizados na distribuição de um item de produto do pedido seja sempre maior do
que zero. Esta consistência é executada visando garantir a idoneidade do
parâmetro E070FIL.VENPSE(Aceita Pedido sem Estoque) presente em Cadastros >
Filiais > Vendas somente quando este for igual a N(Não). Em outras palavras,
a consistência do saldo da distribuição de lotes é executada apenas quando o
parâmetro VENPSE for igual a N(Não) e dessa forma, garante que um item de produto
do pedido não possa utilizar em sua distribuição de lotes um lote sem estoque ou
com saldo insuficiente para atender a quantidade distribuída a este lote.
- o parâmetro VENPSE representa o indicativo de que a filial de vendas aceita que os itens de produto do pedido sejam informados mesmo que não exista estoque disponível.
- caso não existir saldo suficiente em um determinado lote para atender a quantidade distribuída em um determinado item de produto exibirá a mensagem: Pedido XXX: O lote LLL não possui saldo suficiente no depósito DDD para atender a quantidade informada (999) no item de produto YYY. Verifique., abortando o processo.
- a consistência do saldo da distribuição de lotes para cada um dos itens de produto de um pedido realiza seus cálculos com base na quantidade disponível no estoque físico deste do produto, em função do parâmetro E070FIL.CRIFED(Critério Formação Estoques) presente em Cadastros > Filiais > Estoques. Além disso, são considerados também:
- os demais itens de produto do pedido analisado que ainda estiverem na situação 9(Não Fechado) e que sejam controlados por lote, contenham o indicativo de reserva de estoque igual a S(Sim) e um código de lote informado diretamente no registro do item de produto, mas que não representem uma derivação genérica;
- itens de produto de outros pedidos que ainda estiverem na situação 9(Não Fechado) e que sejam controlados por lote, contenham o indicativo de reserva de estoque igual a S(Sim) e um código de lote informado diretamente no registro do item de produto, mas que não representem uma derivação genérica.
- em uma alteração da quantidade pedida de um item de produto controlado por lote que contenha o indicativo de reserva de estoque igual a S(Sim) e um código de lote informado diretamente no registro do item de produto, mas que não represente uma derivação genérica deve considerar a quantidade já utilizada pelo item de produto como disponível.
- o parâmetro CRIFED representa o critério para a formação do estoque para o atendimento, faturamento ou baixa de estoque em geral.
- Validar a montagem do código do lote informado diretamente no registro dos itens de produto do pedido: Rotina de validação necessária para garantir que a montagem do código de lote informado diretamente no registro do item de produto do pedido esteja de acordo com a máscara definida em sua origem ou no próprio produto. Quando o código de lote informado diretamente no registro do item tiver uma montagem inválida deve exibir a mensagem Código do lote não confere. Verifique a montagem do código do lote: XXX! , ou a mensagem: Código do lote não pode ultrapassar 17 posições., ou a mensagem: Código do componente não encontrado. Verifique a montagem do código do lote: XXX! .
- Efetuar a distribuição de lotes para o item de produto do pedido: Rotina responsável por realizar a distribuição de lotes para um item de
produto do pedido. De forma geral, a distribuição de lotes para um item de
produto do pedido é necessária apenas quando uma das situações descritas abaixo
é verdadeira:
- o item de produto contiver o indicativo de reserva de estoque igual a S(Sim) e estiver sendo inserido em um pedido com a situação 1(Fechado);
- o item de produto contiver o indicativo de reserva de estoque igual a S(Sim) e o pedido estiver sendo fechado;
- além do descrito acima o item de produto deve sempre ser controlado por lote e não representar uma derivação genérica.
- Alterar a distribuição de lotes do item de produto do pedido: Rotina responsável por realizar a alteração na distribuição de lotes para um
item de produto do pedido. De forma geral, uma alteração da distribuição de
lotes para um item de produto do pedido é necessária quando ao menos uma das
situações descritas abaixo é verdadeira:
- o depósito do item de produto tiver sido alterado;
- um código de lote válido tiver sido informado diretamente no registro do item de produto;
- a reserva do item de produto tiver sido alterada ou retirada;
- a quantidade aberta do item de produto tiver sido alterada;
- além do descrito acima o item de produto deve sempre ser controlado por lote e não representar uma derivação genérica.
2.2. Cenários da Rotina de Consistência de Registros
De forma geral, a rotina unificada de consistências e/ou distribuição executa a partir de ações iniciadas pelo usuário ou em função do próprio sistema, como em rotinas de duplicação, ações SID, ERP WEB, processos automáticos, entre outras rotinas. Sua execução trata duas situações distintas para o pedido e seus itens de produto, conforme os cenários descritos abaixo:
2.2.1. Cenário 1 (Pedido Não Fechado)
Executará em sequência as ações descritas para o cenário 1 caso uma ou mais situações apresentadas para este sejam válidas.
Como única restrição, a situação d precisa necessariamente ser atendida em todos os casos do cenário 1 e deve estar sempre acompanhada de ao menos uma das demais situações deste cenário. Além disso, o item de produto deve sempre ser controlado por lote e não representar uma derivação genérica.
2.2.1.1. Situações do Cenário 2 (Pedido Não Fechado)
- um código de lote válido ter sido informado diretamente no registro (grade) do item de produto;
- a quantidade aberta do item de produto ter sido alterada e a existência de um código de lote informado diretamente no registro (grade);
- o depósito do item de produto ter sido alterado e a existência de um código de lote informado diretamente no registro (grade);
- a situação do item de produto ser igual a 7 ou 9.
2.2.1.2. Ações do Cenário 2 (Pedido Não Fechado)
- caso o item de produto não estiver reservando estoque, exibir a mensagem: Pedido XXX: Foi informado um lote para o item produto YYY. Este procedimento implica em sempre reservar lote. Verifique.;
- executar a rotina validar a montagem do código do lote para o lote informado na grade de itens de produto do pedido;
- executar a rotina consistir o saldo da distribuição de lotes para o lote informado na grade de itens de produto do pedido.
2.2.2. Cenário 2 (Pedido Fechado)
Executará em sequência as ações descritas para o cenário 2 caso uma ou mais situações apresentadas para este sejam válidas.
Como única restrição, as situações e e f precisam necessariamente ser atendidas em todos os casos do cenário 2 e devem estar sempre acompanhadas de ao menos uma das demais situações deste cenário. Além disso, o item de produto deve sempre ser controlado por lote e não representar uma derivação genérica.
2.2.2.1. Situações do Cenário 2 (Pedido Fechado)
- o depósito do item de produto tiver sido alterado;
- um código de lote válido tiver sido informado diretamente no registro (grade) do item de produto;
- a reserva do item de produto tiver sido alterada ou retirada;
- a quantidade aberta do item de produto tiver sido alterada;
- a situação deste item de produto for igual a 1 ou 2;
- existir a reserva de estoque no item de produto ou a certeza de que esta reserva foi retirada pelo processo que deu origem à chamada da rotina unificada.
2.2.2.2. Ações do Cenário 2 (Pedido Fechado)
- caso o item de produto estiver sendo inserido deve executar a rotina efetuar a distribuição de lotes para o item de produto do pedido;
- durante a execução desta rotina a tela de distribuição de lotes(F000DLS) não será exibida.
- nos demais casos fora inserção deve executar a rotina alterar a distribuição de lotes do item de produto do pedido;
- durante a execução da rotina alterar a distribuição de lotes do item de produto do pedido a tela de distribuição de lotes(F000DLS) será exibida apenas quando ao menos umas das situações descritas abaixo for atendida:
- o depósito do item de produto tiver sido alterado no registro(grid) do item de produto;
- a quantidade a ser distribuída foi alterada mas o código de lote não foi alterado diretamente no registro(grid) do item de produto.
- caso o item de produto reserve estoque deve executar a rotina consistir a quantidade da distribuição de lotes para o item de produto;
- caso a rotina consistir a quantidade da distribuição de lotes para o item de produto não detecte uma inconsistência entre a quantidade aberta e a quantidade distribuída então deve executar a rotina consistir o saldo da distribuição de lotes para o item de produto.
3. Identificadores de Regras – Lotes no Pedido
Nesta seção estão descritos os identificadores de regras para a sugestão direta ao registro do item, bem como os identificadores de regra responsáveis pela distribuição de lotes no item.
3.1. Sugestão direta ao registro do item
Com relação aos identificadores de sugestão direta ao registro do item de produto, executará uma rotina única para as telas e processos relacionados ao pedido. Por meio desta rotina os identificadores de regra VEN-120LOTPA01 ou VEN-120LOTES01 podem ser executados, desde que cadastrados. Além da necessidade do cadastramento dos identificadores, faz-se necessário que a derivação do produto não seja genérica, o código do lote informado diretamente no item seja vazio (ou seja, não esteja informado) e a origem da aplicação seja diferente de duplicação. Os identificadores de regras VEN-120LOTPA01 e VEN-120LOTES01 podem ser usados para sugerir um lote para o item de produto do pedido. Em um primeiro momento verifica a existência do identificador de regras VEN-120LOTPA01. Caso o identificador de regras VEN-120LOTPA01 estiver ativo e com uma regra associada busca o lote padrão da origem. Este lote será enviado para a regra ligada ao identificador de regras VEN-120LOTPA01. Por meio da regra o usuário poderá alterar ou consistir a sugestão feita pelo sistema. Caso o identificador de regras VEN-120LOTPA01 estiver inativo verificará a existência do identificador de regras VEN-120LOTES01. Com este identificador de regras ativo (não é necessário que esteja ligado a alguma regra, uma vez que esta não será utilizada) sugerirá um lote para o pedido desde que a situação do item seja 1 ou 9 e o lote informado na grade seja vazio (ou seja, não informado). Para efetuar a sugestão do lote usa como base a tabela de lotes no estoque (E210DLS), optado primeiramente pelos lotes mais antigos, com saldo suficiente para atender ao item de produto da grade. Deve-se lembrar que sempre que um lote for sugerido pelos identificadores de regra reservará estoque físico por meio do campo RESEST, bem como indicar que a reserva do estoque teve procedência manual. A procedência manual será indicada pelo campo RESMAN. Assim, ambos os campos devem ter valor igual a S(Sim).
3.2. Distribuição de lotes no item
Com relação à distribuição de lotes do item têm-se disponíveis vários identificadores de regra, alguns específicos para cada uma das rotinas do sistema, tal como as rotinas de pedidos, pré-faturas, notas fiscais de saída ou entrada, ordem de compra ou mesmo para as rotinas de produção. Além dos identificadores específicos existem também os identificadores de regra globais, úteis para a distribuição de lotes em todas as rotinas do sistema. Com relação às rotinas de pedidos pode-se fazer uso de basicamente três identificadores distintos, sendo eles os identificadores de regra GER-120EUDLE01, GER-210EUDLE01 e GER-000EUDLE01. O identificador de regras GER-120EUDLE01 é o identificador mais específico dos três, pois tem aplicabilidade apenas com as rotinas de pedido. A partir deste identificador pode-se definir um critério de busca dos lotes com base em um ou mais campos da tabela E210DLS. Também é possível definir a ordem que deve ser usada para a busca dos registros. Por sua vez, o identificador de regras GER-210EUDLE01 é um dos identificadores globais. Este pode ter seu uso aplicado a qualquer uma das rotinas que necessitem da distribuição de lotes, no entanto, será utilizado pelo sistema apenas quando não existir um identificador específico para a rotina em questão. No caso das rotinas de pedido, se não existisse o identificador GER-120EUDLE01 buscaria em sequência pela definição existente no identificador de regras GER-210EUDLE01. O funcionamento deste identificador de regras global é idêntico ao do identificador de regras GER-120EUDLE01 já descrito anteriormente. Por fim, o identificador de regras GER-000EUDLE01 é o último dos identificadores de regras globais. O sistema usa este identificador de regras quando a sugestão realizada pelos demais identificadores não foi acatada por ser inválida ou então, quando os demais identificadores simplesmente estão inativos ou não foram cadastrados. Seu comportamento é similar aos demais identificadores já analisados, com única diferença residindo na tabela sobre a qual será realizado o critério de busca e ordenação, que no caso do identificador de regras GER-000EUDLE01 é a tabela E210MVP. Deve-se utilizar este identificador apenas quando for extremamente necessário configurar o critério de busca/ordenação sobre um campo da tabela E210MVP. Do contrário é recomendado o uso de um dos demais identificadores descritos anteriormente, pois o tempo de resposta será consideravelmente menor em virtude da utilização:
- se comparada com a tabela E210MVP, a tabela E210DLS possui um nível de detalhamento menor devido ao fato de possui uma menor quantidade de campos em sua estrutura.
- a tabela E210DLS armazena um lote específico de forma agrupada, totalizando sua quantidade, enquanto que na tabela E210MVP cada unidade de um lote específico está disposta em registro. Nesse contexto, para conhecer o saldo de um lote pela tabela E210MVP seria necessário realizar a soma de todas as entradas efetuadas para este lote, subtraindo desde total a soma de todas as saídas também contabilizadas na tabela E210MVP.
3.2.1. Exemplos de regra
Abaixo seguem alguns exemplos de regras que podem ser usados com os identificadores de sugestão para a distribuição de lotes do item. O primeiro exemplo de regra retornará os lotes ordenados de forma ascendente pelo código de lote, enquanto o segundo exemplo de regra retornará os lotes ordenados de forma descendente pelo código de lote.
ordenação ascendente por código de lote
Definir Alfa VSOrdemAscSql;
VSOrdemAscSql = CodLot;
ordenação descendente por código de lote
Definir Alfa VSOrdemDescSql
VSOrdemDescSql = CodLot;