Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndyDaSilva52/149573ac245badea59a8becce9490c0f to your computer and use it in GitHub Desktop.
Save AndyDaSilva52/149573ac245badea59a8becce9490c0f to your computer and use it in GitHub Desktop.
#MegaERP - Trigger - Reescriturar e Recontabilizar documento de entrada, conhecimento de frete e nota complementar
create or replace TRIGGER MGCLI.T_CLI_EST_RECEBIMENTO
BEFORE INSERT OR UPDATE ON MGADM.EST_RECEBIMENTO
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
/**
Quem: AGS(anderson@sanavita.com.br)
Quando: 07/07/2018
Motivo: Nao permitir CTe com Entrada antes da Emissão
*/
IF (INSERTING AND :NEW.RCB_ST_CHAVEACESSOCTE IS NOT NULL AND :NEW.RCB_DT_MOVIMENTO < :NEW.RCB_DT_DOCUMENTO) THEN
RAISE_APPLICATION_ERROR(-20101, 'Data de Entrada ['|| TO_CHAR(:NEW.RCB_DT_MOVIMENTO, 'DD/MM/YYYY')
||'] menor que Data de Emissão ['|| TO_CHAR(:NEW.RCB_DT_DOCUMENTO, 'DD/MM/YYYY') ||'].'
|| CHR(13) || 'Contate o Suporte da Sanavita caso necessário incluir ou alterar essa regra. [MGCLI.T_CLI_EST_RECEBIMENTO]');
END IF;
IF UPDATING THEN
BEGIN
/**
Motivo: Macar para reescriturar após alteração
*/
UPDATE MGGLO.GLO_ACAOMOVIMENTO
SET ACAOM_RE_VALORFISCALREAL = 0
WHERE
ACAOM_DT_EXCLUSAO IS NULL
AND ACAOM_DT_DATAENTRADA >= (
SELECT MAX(e.sis_dt_encerramento)
FROM MGGLO.glo_encerrasistema E
WHERE E.SIS_IN_CODIGO IN (6)
AND E.ORG_TAB_IN_CODIGO = :NEW.ORG_TAB_IN_CODIGO
AND E.ORG_PAD_IN_CODIGO = :NEW.ORG_PAD_IN_CODIGO
AND E.ORG_TAU_ST_CODIGO = :NEW.ORG_TAU_ST_CODIGO
AND E.ORG_IN_CODIGO = :NEW.ORG_IN_CODIGO
AND E.FIL_IN_CODIGO = :NEW.FIL_IN_CODIGO
)
AND ACAOM_IN_SEQUENCIA = :NEW.ACAOM_IN_SEQUENCIA
AND ORG_TAB_IN_CODIGO = :NEW.ORG_TAB_IN_CODIGO
AND ORG_PAD_IN_CODIGO = :NEW.ORG_PAD_IN_CODIGO
AND ORG_TAU_ST_CODIGO = :NEW.ORG_TAU_ST_CODIGO
AND ORG_IN_CODIGO = :NEW.ORG_IN_CODIGO
;
END;
BEGIN
/**
Motivo: Macar para recontabilizar após alteração
*/
UPDATE MGGLO.GLO_ACAOMOVIMENTO
SET ACAOM_RE_VALORCONTABILREAL = 0
WHERE
ACAOM_DT_EXCLUSAO IS NULL
AND ACAOM_DT_DATAENTRADA >= (
SELECT MAX(e.sis_dt_encerramento)
FROM MGGLO.glo_encerrasistema E
WHERE E.SIS_IN_CODIGO IN (4)
AND E.ORG_TAB_IN_CODIGO = :NEW.ORG_TAB_IN_CODIGO
AND E.ORG_PAD_IN_CODIGO = :NEW.ORG_PAD_IN_CODIGO
AND E.ORG_TAU_ST_CODIGO = :NEW.ORG_TAU_ST_CODIGO
AND E.ORG_IN_CODIGO = :NEW.ORG_IN_CODIGO
AND E.FIL_IN_CODIGO = :NEW.FIL_IN_CODIGO
)
AND ACAOM_IN_SEQUENCIA = :NEW.ACAOM_IN_SEQUENCIA
AND ORG_TAB_IN_CODIGO = :NEW.ORG_TAB_IN_CODIGO
AND ORG_PAD_IN_CODIGO = :NEW.ORG_PAD_IN_CODIGO
AND ORG_TAU_ST_CODIGO = :NEW.ORG_TAU_ST_CODIGO
AND ORG_IN_CODIGO = :NEW.ORG_IN_CODIGO
;
END;
END IF;
END;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment