SET TERM ^ ; CREATE OR ALTER trigger ttbsped_apuracao_b01i for tbsped_apuracao active before insert position 0 AS DECLARE VARIABLE ID INTEGER; DECLARE VARIABLE ANO SMALLINT; DECLARE VARIABLE DESC_MES VARCHAR(255); DECLARE VARIABLE DESC_ESTAB VARCHAR(255); DECLARE VARIABLE ERROR_MSG VARCHAR(255); BEGIN SELECT FIRST 1 T.ID, T.ANO, FN_LPAD(A.CODIGO, 4, '0') || ' - ' || A.NOMEFANTASIA AS DESC_ESTAB, ( CASE WHEN T.MES = 1 THEN 'Janeiro' WHEN T.MES = 2 THEN 'Fevereiro' WHEN T.MES = 3 THEN 'Marco' WHEN T.MES = 4 THEN 'Abril' WHEN T.MES = 5 THEN 'Maio' WHEN T.MES = 6 THEN 'Junho' WHEN T.MES = 7 THEN 'Julho' WHEN T.MES = 8 THEN 'Agosto' WHEN T.MES = 9 THEN 'Setembro' WHEN T.MES = 10 THEN 'Outubro' WHEN T.MES = 11 THEN 'Novembro' WHEN T.MES = 12 THEN 'Dezembro' ELSE '' END ) AS DESC_MES FROM TBSPED_APURACAO T LEFT JOIN TBESTABELECIMENTO A ON A.CODIGO = T.ESTABELECIMENTO_CODIGO WHERE T.ESTABELECIMENTO_CODIGO = NEW.ESTABELECIMENTO_CODIGO AND T.ANO = NEW.ANO AND T.MES = NEW.MES INTO :ID, :ANO, :DESC_ESTAB, :DESC_MES; :ERROR_MSG = ''; IF (ID IS NOT NULL) THEN BEGIN :ERROR_MSG = :ERROR_MSG || 'Registro ja existente.'; :ERROR_MSG = :ERROR_MSG || 'Estabelecimento: ' || :DESC_ESTAB || ''; :ERROR_MSG = :ERROR_MSG || 'Mes/Ano: ' || UPPER(:DESC_MES) || ' DE ' || :ANO || ''; EXCEPTION "..." :ERROR_MSG; END END ^ SET TERM ; ^