Created
July 23, 2019 13:11
-
-
Save AndyDaSilva52/37ce365e88eac46a47a5b51747555b1a to your computer and use it in GitHub Desktop.
#Mega - Trigger para não permitir gravar registro com Tipo de Agente (AGN_TAU_ST_CODIGO) não compatível com o Tipo de Operação de Terceiro (TPO_CH_TPPERFILMATTERC) do Tipo de Ordem (TPO_ST_CODIGO_TIPO) - #MegaERP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create or replace TRIGGER MGCLI.T_CLI_PRO_ORIGEM_AGN_TAU | |
BEFORE INSERT ON MGMAN.PRO_ORIGEM | |
REFERENCING OLD AS OLD NEW AS NEW | |
FOR EACH ROW | |
WHEN (NEW.ORI_CH_TIPOORIGEM IN ('T')) -- T = Agente de Terceiro | |
DECLARE | |
vTPO_CH_TPPERFILMATTERC MGMAN.PRO_TIPOORDENS.TPO_CH_TPPERFILMATTERC%TYPE; | |
/** | |
Perfil de Operação | |
Perfil de Operação Material de Terceiro | |
CL;Cliente | |
FO;Fornecedor Produto Acabado | |
FT;Fornecedor Matéria Prima | |
*/ | |
vTPO_ST_CODIGO_TIPO MGMAN.PRO_TIPOORDENS.TPO_ST_CODIGO_TIPO%TYPE; | |
BEGIN | |
BEGIN | |
SELECT | |
T.TPO_CH_TPPERFILMATTERC, T.TPO_ST_CODIGO_TIPO | |
INTO | |
vTPO_CH_TPPERFILMATTERC, vTPO_ST_CODIGO_TIPO | |
FROM MGMAN.PRO_TIPOORDENS T | |
WHERE | |
(T.TPO_TAB_IN_CODIGO, T.TPO_PAD_IN_CODIGO, T.TPO_ST_CODIGO_TIPO) IN ( | |
SELECT | |
O.TPO_TAB_IN_CODIGO, O.TPO_PAD_IN_CODIGO, O.TPO_ST_CODIGO_TIPO | |
FROM MGMAN.PRO_ORDENS O | |
WHERE | |
O.ORD_TAB_IN_CODIGO = :NEW.ORD_TAB_IN_CODIGO AND | |
O.ORD_SEQ_IN_CODIGO = :NEW.ORD_SEQ_IN_CODIGO AND | |
O.ORD_IN_CODIGO = :NEW.ORD_IN_CODIGO | |
); | |
END; | |
IF ( | |
vTPO_CH_TPPERFILMATTERC = 'FO' AND :NEW.AGN_TAU_ST_CODIGO <> 'C' | |
) THEN | |
RAISE_APPLICATION_ERROR(-20101, 'Favor selecionar o registro com Tipo de Agente [''C''] correspondente ao Perfil de Operação de Terceiro [''Fornecedor''] do Tipo de Ordem ['|| vTPO_ST_CODIGO_TIPO ||']'); | |
END IF; | |
IF ( | |
vTPO_CH_TPPERFILMATTERC = 'CL' AND :NEW.AGN_TAU_ST_CODIGO <> 'F' | |
) THEN | |
RAISE_APPLICATION_ERROR(-20101, 'Favor selecionar o registro com Tipo de Agente [''F''] correspondente ao Perfil de Operação de Terceiro [''Cliente''] do Tipo de Ordem ['|| vTPO_ST_CODIGO_TIPO ||']'); | |
END IF; | |
END; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment