ERP - Pedidos - Como o campo QtdPpf é alimentado na tabela E120IPD
Dúvida
Como que o campo QtdPpf é alimentado na tabela E120IPD?
Solução
No momento da criação da pré-fatura, o campo QTDPPF não é alimentado. Não identificamos qualquer indício de que esse campo seja atualmente alimentado por alguma rotina.
Com base nas pesquisas realizadas, incluindo o apoio do conhecimento dos analistas de negócio responsáveis, e busca com IA em todo o fonte do sistema, a conclusão é de que o QTDPPF aparenta ser um campo legado, que pode ter tido alguma utilização em versões ou rotinas anteriores do sistema, mas que atualmente não possui utilização ou função conhecida nas rotinas vigentes.
Não recebemos do Suporte, informações que demonstrem qual seria a necessidade atual do cliente em relação à utilização desse campo. A princípio, entendemos que possivelmente ele esteja sendo utilizado pelo cliente para alguma finalidade de relatório ou consulta.
Caso essa seja realmente a necessidade, a sugestão é que o cliente obtenha essa informação diretamente a partir da tabela 135PES, correspondente ao item da pré-fatura. Pode-se realizar um SELECT considerando a chave do pedido e o item de pedido desejados e utilizar um SUM sobre a quantidade dos itens de pré-fatura.
É importante observar que um mesmo item de pedido pode estar relacionado a mais de uma pré-fatura simultaneamente. Por esse motivo, caso o objetivo seja obter a quantidade total que se encontra em pré-fatura para determinado item de pedido, é necessário realizar a soma dos registros correspondentes.
Essa é, neste momento, a alternativa que entendemos ser adequada caso a necessidade apresentada seja exclusivamente para fins de relatório ou consulta.
Sempre que uma tela/rotina precisa saber "quanto do item do pedido está em pré-fatura", ela faz um JOIN em tempo real entre E120IPD/E120PED e E135PES, casando pelas chaves do item (CODEMP, CODFIL/FILPED, NUMPED, SEQIPD), e lê E135PES.QTDPPF diretamente — nunca a coluna de E120IPD.
Sugestão de comando, desconsiderando pedidos em pré-faturas que estejam faturadas ou canceladas:
SELECT ISNULL(SUM(PES.QTDPPF),0) FROM E135PES PES WHERE PES.CODEMP = E120IPD.CODEMP AND PES.FILPED = E120IPD.CODFIL AND PES.NUMPED = E120IPD.NUMPED AND PES.SEQIPD = E120IPD.SEQIPD AND PES.SITPES NOT IN (9, 4)