EstornaComponentes
Estorna os componentes já baixados da O.P.
Nota
- Se o sistema estiver parametrizado para a geração do Bloco K, algumas consistências e bloqueios podem ser realizadas nessa função, garantindo a correta geração de informações do arquivo, conforme guia prático. Confira estas consistências na tela Parâmetros e consistências da empresa (F070ECN)
- Esta função utiliza o identificador de regra CHA-900RETRC01, no qual pode ser definido se irá ou não retornar a quantidade estornada para a reserva do componente
Sintaxe: EstornaComponentes(Alfa aCodOri, Numero aNumOrp, Numero aCodEtg, Alfa aCodPro, Alfa aCodDer, Alfa aCodCmp, Numero aQtdEst, Numero aDatFim, Alfa aCodTns, Alfa End Retorno);
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
aCodOri | Alfa | Código da origem da O.P. |
aNumOrp | Numero | Número da O.P. |
aCodEtg | Numero | Estágio da O.P. |
aCodPro | Alfa | Código do produto da O.P.. |
aCodDer | Alfa | Código da derivação do produto. |
aCodCmp | Alfa | Código do componente que deseja estornar. Informando aCodCmp, o estorno será apenas daquele componente, com a quantidade informada (aQtdEst) sendo a estornada. |
aDerCmp | Alfa | Derivação do componente a ser estornado. |
aQtdEst | Numero | Quantidade que deseja estornar. |
aDatFim | Numero | Data do movimento. Quando não informada data, será utilizada a data atual. Esta variável deve ser passada em formato Numero (como no banco), caso não saiba, pode usar a função ConvDataInt para transformar uma data alfa no formato aceito. |
aCodTns | Alfa | Código da transação. Quando não informada transação, será utilizada a transação padrão de estorno definida na filial. |
Tipo de retorno: status da execução da função. Retorna "OK" caso tenha sido processado com sucesso.
Exemplo:
Definir Alfa Retorno;
EstornaComponentes("PEC", 8, 110, "GABINETE", "MS", "", "", 5, 0, "90203", Retorno);
Se (Retorno <> "OK")
GeraLog(Retorno);
Observação: É possível optar entre informar aCodPro/ aCodDer ou apenas aCodCmp. A diferença é que informando aCodPro/ aCodDer, o estorno será realizado para todos os componentes da O.P. e de maneira proporcional a quantidade realizada, que será aQtdEst. E não é necessário informar aCodPro/aCodDer/aCodCmp, mas caso seja feito, o comportamento será o mesmo que se tivesse informado apenas aCodCmp.
Para a quantidade utilizada o cálculo é feito da seguinte maneira: E900CMO.QTDUTI * ('aQtdEst' / (E900EOP.QTDRE1 + E900EOP.QTDRE2 + E900EOP.QTDRE3 + E900EOP.QTDRFG)), sendo:
- E900CMO.QTDUTI: Quantidade utilizada que está no banco, E900CMO.QTDUTI
- 'aQtdEst': Quantidade de estorno passada na regra
- 'QTDRE1' a 'QTDRE3': Quantidade realizada do produto acabado (RE1 = 1ª Qualidade, RE2 = 2ª Qualidade, RE3 = 3ª Qualidade)
- 'QTDRFG' = Quantidade realizada de refugo
Para cada execução da regra, este cálculo é realizado, porém, a cada vez que se executa a regra, a QTDUTI (quantidade utilizada) já não é mais a mesma da quantidade anterior. As quantidades dos campos E900EOP.QTDRE1, E900EOP.QTDRE2, E900EOP.QTDRE3, E900EOP.QTDRFG não são atualizadas, pois, não se trata dos componentes e sim do produto acabado. Por esta razão, a cada execução da função, a quantidade que será estornada ficará diferente da quantidade proposta na regra.
Parâmetros globais
Módulo | Código |
---|---|
DevResCmp | Indica a quantidade estornada para a reserva do componente da O.P. quando este foi utilizado além do previsto. Se o parâmetro estiver definido como "N - Não", essa diferença (utilizado menos o previsto) não será reservada |