SET TERM ^ ;

ALTER TABLE TBDRE_FINANCEIRA_GRUPOS       ALTER ID SET NOT NULL^

ALTER TABLE TBDRE_FINANCEIRA_GRUPOS_CLASS ALTER ID SET NOT NULL^

ALTER TABLE TBDRE_FINANCEIRA_GRUPOS_SQL   ALTER ID SET NOT NULL^


ALTER TABLE TBDRE_FINANCEIRA_GRUPOS       ADD CONSTRAINT PK_TBDRE_FINANCEIRA_GRUPOS PRIMARY KEY (ID)^

ALTER TABLE TBDRE_FINANCEIRA_GRUPOS_CLASS ADD CONSTRAINT PK_TBDRE_FIN_GRUPOS_CLASS PRIMARY KEY (ID)^

ALTER TABLE TBDRE_FINANCEIRA_GRUPOS_SQL   ADD CONSTRAINT PK_TBDRE_FIN_GRUPOS_SQL PRIMARY KEY (ID)^

ALTER TABLE TBDRE_FINANCEIRA_GRUPOS
ADD TIPO_VALOR SMALLINT
DEFAULT 0^

CREATE OR ALTER TRIGGER TTBDRE_FINANCEIRA_GRUPOS_B01U FOR TBDRE_FINANCEIRA_GRUPOS
ACTIVE BEFORE UPDATE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    
    HISTORICO = '';

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

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

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

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

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

    IF(COALESCE(OLD.NATUREZA,'') <> COALESCE(NEW.NATUREZA,''))THEN
    BEGIN
       HISTORICO = HISTORICO||' NAT:'||COALESCE(OLD.NATUREZA,'')||'->'||COALESCE(NEW.NATUREZA,'');
    END 

    IF(COALESCE(OLD.INDICE_PERCENTUAL_GRUPOS,'0') <> COALESCE(NEW.INDICE_PERCENTUAL_GRUPOS,'0'))THEN
    BEGIN
       HISTORICO = HISTORICO||' IND.PERC:'||COALESCE(OLD.INDICE_PERCENTUAL_GRUPOS,'0')||'->'||COALESCE(NEW.INDICE_PERCENTUAL_GRUPOS,'0');
    END

    IF (HISTORICO <> '') THEN
    BEGIN

        HISTORICO = 'GRUPO: '||FN_LPAD(OLD.ID,4,0)||' - '||COALESCE(OLD.DESCRICAO, '')||' ALTERADO: '||HISTORICO;

        EXECUTE PROCEDURE SPI_HISTORICO('TBDRE_FINANCEIRA',NEW.DRE_FINANCEIRA_ID, HISTORICO);
    END
END^

CREATE OR ALTER TRIGGER TBDRE_FINANCEIRA_GRUPOS_BD0 FOR TBDRE_FINANCEIRA_GRUPOS
ACTIVE BEFORE DELETE POSITION 3
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.ID > 0) THEN
    BEGIN
        HISTORICO = HISTORICO||' GRUPO: '||FN_LPAD(OLD.ID, 4, 0)||' - '||COALESCE(OLD.DESCRICAO,'')||' EXCLUIDO';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBDRE_FINANCEIRA',OLD.DRE_FINANCEIRA_ID, HISTORICO);
    END
END^

CREATE OR ALTER TRIGGER TBDRE_FINANCEIRA_GRUPOS_B02D FOR TBDRE_FINANCEIRA_GRUPOS
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN                                                                                            
    --EXCLUIR SQLS DO GRUPO
    DELETE FROM TBDRE_FINANCEIRA_GRUPOS_SQL   SQL   WHERE SQL.DRE_FINANCEIRA_GRUPO_ID   = OLD.ID;
    --EXCLUIR CLASSIFICACOES DO GRUPO
    DELETE FROM TBDRE_FINANCEIRA_GRUPOS_CLASS CLASS WHERE CLASS.DRE_FINANCEIRA_GRUPO_ID = OLD.ID;
    --EXCLUIR FORMULAS DO GRUPO
    DELETE FROM TBDRE_FIN_GRUPOS_FORMULA FORMULA WHERE FORMULA.DRE_FINANCEIRA_GRUPO_ID = OLD.ID;

END^

CREATE INDEX ITBNFS_PARCELAMENTO_35
ON TBNFS_PARCELAMENTO (DATA_COMPETENCIA)^

CREATE INDEX ITBNFE_PARCELAMENTO_16
ON TBNFE_PARCELAMENTO (DATA_COMPETENCIA)^

SET TERM ; ^