COMMENT ON COLUMN TBCENTRO_DE_CUSTO.TIPO_CUSTO IS 
' 0 - Nao compoe custo
 1 - Direto
 2 - Indireto
 3 - Despesa
 4 - fixo
 5 - variavel';

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/
 
ALTER TABLE TBFOLPAG_CONTABIL
    ADD CLASSIFICACAO_CODIGO1 VARCHAR(10) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8,
    ADD CLASSIFICACAO_CODIGO2 VARCHAR(10) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8,
    ADD CLASSIFICACAO_CODIGO3 VARCHAR(10) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8,
    ADD CLASSIFICACAO_CODIGO4 VARCHAR(10) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8,
    ADD CLASSIFICACAO_CODIGO5 VARCHAR(10) CHARACTER SET UTF8 DEFAULT '' COLLATE UTF8;
	
/******************************************************************************/

COMMENT ON COLUMN TBFOLPAG_CONTABIL.CLASSIFICACAO_CODIGO IS
'Tipo de custo: Nao compoe custo';

COMMENT ON COLUMN TBFOLPAG_CONTABIL.CLASSIFICACAO_CODIGO1 IS
'Tipo de custo: Direto';

COMMENT ON COLUMN TBFOLPAG_CONTABIL.CLASSIFICACAO_CODIGO2 IS
'Tipo de custo: Indireto';

COMMENT ON COLUMN TBFOLPAG_CONTABIL.CLASSIFICACAO_CODIGO3 IS
'Tipo de custo: Despesa';

COMMENT ON COLUMN TBFOLPAG_CONTABIL.CLASSIFICACAO_CODIGO4 IS
'Tipo de custo: Fixo';

COMMENT ON COLUMN TBFOLPAG_CONTABIL.CLASSIFICACAO_CODIGO5 IS
'Tipo de custo: Variavel';

/******************************************************************************/

alter table TBFOLPAG_CONTABIL
alter ID position 1;

alter table TBFOLPAG_CONTABIL
alter DESCRICAO position 2;

alter table TBFOLPAG_CONTABIL
alter FOLHA_TIPO position 3;

alter table TBFOLPAG_CONTABIL
alter DIA_CONTABIL position 4;

alter table TBFOLPAG_CONTABIL
alter PERMITIR_VALORES_ZERADOS position 5;

alter table TBFOLPAG_CONTABIL
alter CAIXABANCO_ID position 6;

alter table TBFOLPAG_CONTABIL
alter CCUSTO_CODIGO position 7;

alter table TBFOLPAG_CONTABIL
alter FORMA_PAGAMENTO_ID position 8;

alter table TBFOLPAG_CONTABIL
alter CLASSIFICACAO_CODIGO position 9;

alter table TBFOLPAG_CONTABIL
alter CLASSIFICACAO_CODIGO1 position 10;

alter table TBFOLPAG_CONTABIL
alter CLASSIFICACAO_CODIGO2 position 11;

alter table TBFOLPAG_CONTABIL
alter CLASSIFICACAO_CODIGO3 position 12;

alter table TBFOLPAG_CONTABIL
alter CLASSIFICACAO_CODIGO4 position 13;

alter table TBFOLPAG_CONTABIL
alter CLASSIFICACAO_CODIGO5 position 14;

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbfolpag_contabil_b01u for tbfolpag_contabil
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
BEGIN

    HISTORICO = '';

    IF(NEW.DESCRICAO <> OLD.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DESC:'||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END            

    IF(NEW.FOLHA_TIPO <> OLD.FOLHA_TIPO) THEN
    BEGIN
        HISTORICO = HISTORICO||' TIPO:'||OLD.FOLHA_TIPO||'->'||NEW.FOLHA_TIPO;
    END

    IF(NEW.DIA_CONTABIL <> OLD.DIA_CONTABIL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DIA:'||OLD.DIA_CONTABIL||'->'||NEW.DIA_CONTABIL;
    END 

    IF(NEW.PERMITIR_VALORES_ZERADOS <> OLD.PERMITIR_VALORES_ZERADOS) THEN
    BEGIN
        HISTORICO = HISTORICO||' PERMT.VAL.ZERADOS:'||OLD.PERMITIR_VALORES_ZERADOS||'->'||NEW.PERMITIR_VALORES_ZERADOS;
    END 

    IF(NEW.CAIXABANCO_ID <> OLD.CAIXABANCO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAIXA/BANCO:'||OLD.CAIXABANCO_ID||'->'||NEW.CAIXABANCO_ID;
    END

    IF(NEW.CCUSTO_CODIGO <> OLD.CCUSTO_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||' C.CUSTO:'||FN_MASK_V2(OLD.CCUSTO_CODIGO, 'CC')||'->'||FN_MASK_V2(NEW.CCUSTO_CODIGO, 'CC');
    END

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

    IF(NEW.CLASSIFICACAO_CODIGO <> OLD.CLASSIFICACAO_CODIGO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF.SEM CUSTO:'||FN_MASK_V2(OLD.CLASSIFICACAO_CODIGO, 'CLASS')||'->'||FN_MASK_V2(NEW.CLASSIFICACAO_CODIGO, 'CLASS');
    END

    IF(NEW.CLASSIFICACAO_CODIGO1 <> OLD.CLASSIFICACAO_CODIGO1) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF.CUSTO DIRETO:'||FN_MASK_V2(OLD.CLASSIFICACAO_CODIGO1, 'CLASS')||'->'||FN_MASK_V2(NEW.CLASSIFICACAO_CODIGO1, 'CLASS');
    END

    IF(NEW.CLASSIFICACAO_CODIGO2 <> OLD.CLASSIFICACAO_CODIGO2) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF.CUSTO INDIRETO:'||FN_MASK_V2(OLD.CLASSIFICACAO_CODIGO2, 'CLASS')||'->'||FN_MASK_V2(NEW.CLASSIFICACAO_CODIGO2, 'CLASS');
    END

    IF(NEW.CLASSIFICACAO_CODIGO3 <> OLD.CLASSIFICACAO_CODIGO3) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF.DESPESAS:'||FN_MASK_V2(OLD.CLASSIFICACAO_CODIGO3, 'CLASS')||'->'||FN_MASK_V2(NEW.CLASSIFICACAO_CODIGO3, 'CLASS');
    END

    IF(NEW.CLASSIFICACAO_CODIGO4 <> OLD.CLASSIFICACAO_CODIGO4) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF.CUSTO FIXO:'||FN_MASK_V2(OLD.CLASSIFICACAO_CODIGO4, 'CLASS')||'->'||FN_MASK_V2(NEW.CLASSIFICACAO_CODIGO4, 'CLASS');
    END

    IF(NEW.CLASSIFICACAO_CODIGO5 <> OLD.CLASSIFICACAO_CODIGO5) THEN
    BEGIN
        HISTORICO = HISTORICO||' CLASSIF.CUSTO VARIAVEL:'||FN_MASK_V2(OLD.CLASSIFICACAO_CODIGO5, 'CLASS')||'->'||FN_MASK_V2(NEW.CLASSIFICACAO_CODIGO5, 'CLASS');
    END
    
    IF(HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REGISTRO ALTERADO:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBFOLPAG_CONTABIL', OLD.ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^

