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 ; ^