SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_formas_b01u for tbfolhapagamento_formas
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
DECLARE VARIABLE TBFOLHAPAGAMENTO_ID INTEGER;
DECLARE VARIABLE COLABORADOR varchar(500);

DECLARE VARIABLE OLD_PAGAMENTO_FORMA VARCHAR(500);
DECLARE VARIABLE NEW_PAGAMENTO_FORMA VARCHAR(500);
BEGIN

    HISTORICO = '';
    TBFOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.TBFOLHAPAGAMENTO_ID FROM TBFOLHAPAGAMENTO_COLABORADOR A WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);
    COLABORADOR = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 5, '0')||' - '||B.PESSOAL_NOME FROM TBFOLHAPAGAMENTO_COLABORADOR A INNER JOIN TBCOLABORADOR B ON B.CODIGO = A.COLABORADOR_ID WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);

--    IF (OLD.INC_PADRAO = 0) THEN
--    BEGIN

        OLD_PAGAMENTO_FORMA = COALESCE((SELECT FIRST 1 FN_LPAD(C.CODIGO, 6, '0')||' - '||C.DESCRICAO FROM TBPAGAMENTO_FORMA C WHERE C.CODIGO = OLD.PAGAMENTO_FORMA_ID), '');
        NEW_PAGAMENTO_FORMA = COALESCE((SELECT FIRST 1 FN_LPAD(C.CODIGO, 6, '0')||' - '||C.DESCRICAO FROM TBPAGAMENTO_FORMA C WHERE C.CODIGO = NEW.PAGAMENTO_FORMA_ID), '');

        IF (OLD.PAGAMENTO_FORMA_ID <> NEW.PAGAMENTO_FORMA_ID) THEN
        BEGIN
            HISTORICO = HISTORICO||' FORM.PAG:'||OLD_PAGAMENTO_FORMA||'->'||NEW_PAGAMENTO_FORMA;
        END

        IF (OLD.VALOR <> NEW.VALOR) THEN
        BEGIN
            HISTORICO = HISTORICO||' VALOR:R$'||FN_FORMAT_NUMBER2(OLD.VALOR, 2)||'->R$'||FN_FORMAT_NUMBER2(NEW.VALOR, 2);
        END

--    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'FORMA DE PAGAMENTO:'||NEW_PAGAMENTO_FORMA||' DO COLABORADOR:'||COLABORADOR||' ALTERADA:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLHAPAGAMENTO', TBFOLHAPAGAMENTO_ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolhapagamento_formas_b01d for tbfolhapagamento_formas
active before delete position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
DECLARE VARIABLE TBFOLHAPAGAMENTO_ID INTEGER;
DECLARE VARIABLE COLABORADOR varchar(500);

DECLARE VARIABLE OLD_PAGAMENTO_FORMA VARCHAR(500);
BEGIN

    HISTORICO = '';
    TBFOLHAPAGAMENTO_ID = COALESCE((SELECT FIRST 1 A.TBFOLHAPAGAMENTO_ID FROM TBFOLHAPAGAMENTO_COLABORADOR A WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);
    COLABORADOR = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 5, '0')||' - '||B.PESSOAL_NOME FROM TBFOLHAPAGAMENTO_COLABORADOR A INNER JOIN TBCOLABORADOR B ON B.CODIGO = A.COLABORADOR_ID WHERE A.ID = OLD.TBFOLHAPAGAMENTO_COLABORADOR_ID), 0);

--    IF (OLD.INC_PADRAO = 0) THEN
--    BEGIN

        OLD_PAGAMENTO_FORMA = COALESCE((SELECT FIRST 1 FN_LPAD(C.CODIGO, 6, '0')||' - '||C.DESCRICAO FROM TBPAGAMENTO_FORMA C WHERE C.CODIGO = OLD.PAGAMENTO_FORMA_ID), '');

        IF (OLD.ID > 0) THEN
        BEGIN
            HISTORICO = HISTORICO||'FORMA DE PAGAMENTO:'||OLD_PAGAMENTO_FORMA||' EXCLUIDA NO COLABORADOR:'||COLABORADOR;
        END

--    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLHAPAGAMENTO', TBFOLHAPAGAMENTO_ID, HISTORICO);
    END
END
^

SET TERM ; ^

