ERP – Ordem de Compra – Como consistir não permitir gerar a Ordem de Compra se a transação dos dados itens for diferente dos dados gerais
Dúvida
Como consistir não permitir gerar a Ordem de Compra se a transação dos dados itens for diferente dos dados gerais, no módulo de Suprimentos?
Solução
Para esse caso, poderá ser feito a consistência través do identificador CPR-000CONIT01 na inclusão do item, comparando a informação da transação do item (VSTnsPro) com a transação dos dados gerais (VsDGTnsPro), ou também poderá ser feito a consistência através do identificador CPR-420OCPDG02 que é executado no fechamento da OC, fazendo um cursor no item para buscar a transação e então comparando a informação com a transação dos dados gerais.
Observação
Exemplo de regra Identificador CPR-000CONIT01 :
--------------------------
Definir Numero CodEmp;
Definir Numero CodFil;
Definir Alfa VSOrigem;
Definir Alfa VsEstado;
Definir Alfa VSDGTnsPro;
Definir Alfa VsTnsPro;
Se ((VsTnsPro <> VsDGTnsPro))
Geralog(A transação dos itens não pode ser diferente da transação dos dados gerais!);
Clique aqui para acessar a documentação do identificador CPR-000CONIT01.
Exemplo de regra Identificador CPR-420OCPDG02:
---------------------------
definir numero VSCodEmp;
definir numero VSCodFil;
definir numero VSCodFor;
definir numero VSNumOcp;
Definir Alfa ITnsPro; @Transação dos Itens da OC@
Definir Alfa VsTnsPro; @Transação dos Dados Gerais@
@Consistir se a transação dos dados gerais e dos itens são iguais@
inicio
definir cursor cursor_E420IPO;
cursor_E420IPO.SQL SELECT TNSPRO FROM E420IPO
WHERE CODEMP = :VSCodEmp
AND CODFIL = :VSCodFiL
AND NumOcp = :VSNumOcp;
cursor_E420IPO.AbrirCursor();
se (cursor_E420IPO.Achou)
ITnsPro = cursor_E420IPO.TnsPro;
cursor_E420IPO.FecharCursor();
Se (ITnsPro <> VsTnsPro)
Mensagem(Erro, A transação dos Dados Gerais e Itens da OC devem ser iguais!);
fim;
---------------------------
Clique aqui para acessar a documentação do identificador CPR-420OCPDG02.