SET TERM ^ ; CREATE OR ALTER trigger ttbnf_ocorrencia_b02i for tbnf_ocorrencia active before insert position 1 AS DECLARE VARIABLE DESC_OCORRENCIA VARCHAR(500); DECLARE VARIABLE DESC_ESTAB VARCHAR(500); DECLARE VARIABLE DATA_OCORRENCIA VARCHAR(500); DECLARE VARIABLE DOCUMENTO VARCHAR(500); DECLARE VARIABLE ID INTEGER; DECLARE VARIABLE ERROR_MSG VARCHAR(500); BEGIN SELECT FIRST 1 A.CODIGO||' - '||A.DESCRICAO AS DESC_OCORRENCIA, FN_LPAD(B.CODIGO, 4, '0')||' - '||B.NOMEFANTASIA AS DESC_ESTAB, FORMATDATE(T.DATA_OCORRENCIA) AS DATA_OCORRENCIA, CASE WHEN T.NFS_CONTROLE > 0 THEN FN_LPAD(C.NUMERO_NOTAFISCAL, 9, '0') WHEN T.NFE_CONTROLE > 0 THEN FN_LPAD(D.NUMERO_NOTAFISCAL, 9, '0') ELSE '' END AS DOCUMENTO, T.ID FROM TBNF_OCORRENCIA T LEFT JOIN TBFISCAL_OCORRENCIA A ON A.CODIGO = T.CODIGO_OCORRENCIA LEFT JOIN TBESTABELECIMENTO B ON B.CODIGO = T.ESTABELECIMENTO_CODIGO LEFT JOIN TBNFS C ON C.CONTROLE = T.NFS_CONTROLE LEFT JOIN TBNFE D ON D.CONTROLE = T.NFE_CONTROLE WHERE T.ESTABELECIMENTO_CODIGO = NEW.ESTABELECIMENTO_CODIGO AND T.CODIGO_OCORRENCIA = NEW.CODIGO_OCORRENCIA AND T.DATA_OCORRENCIA = NEW.DATA_OCORRENCIA AND T.ID <> NEW.ID AND (IIF(NEW.NFS_CONTROLE > 0, T.NFS_CONTROLE = NEW.NFS_CONTROLE, FALSE) OR IIF(NEW.NFE_CONTROLE > 0, T.NFE_CONTROLE = NEW.NFE_CONTROLE, FALSE)) INTO DESC_OCORRENCIA, DESC_ESTAB, DATA_OCORRENCIA, DOCUMENTO, ID; ERROR_MSG = ''; IF (ID IS NOT NULL) THEN BEGIN ERROR_MSG = ERROR_MSG || 'Registro ja existente com os seguintes dados:'; ERROR_MSG = ERROR_MSG || 'Estabelecimento: ' || DESC_ESTAB || ''; ERROR_MSG = ERROR_MSG || 'Ocorrencia: ' || DESC_OCORRENCIA || ''; ERROR_MSG = ERROR_MSG || 'Data Ocorrencia: ' || DATA_OCORRENCIA || ''; ERROR_MSG = ERROR_MSG || 'Documento: ' || DOCUMENTO || ''; EXCEPTION "..." ERROR_MSG; END END ^ SET TERM ; ^