ALTER TABLE TBMODELO_COMBINACAO_ITEM
    ADD ORIGEM INTEGER,
    ADD STATUS INTEGER,
	ADD COR_BASE_ID INTEGER;


COMMENT ON COLUMN TBMODELO_COMBINACAO_ITEM.ORIGEM IS
'0 - AUTOMATICA;
1 - MANUAL;';

COMMENT ON COLUMN TBMODELO_COMBINACAO_ITEM.STATUS IS
'0 - INATIVO;
1 - ATIVO;';

COMMENT ON COLUMN TBMODELO_COMBINACAO_ITEM.COR_BASE_ID IS
'ID da cor base que gerou o grupo (inc. automatica)';


ALTER TABLE TBMODELO_COMBINACAO_ITEM ALTER COLUMN ORIGEM SET DEFAULT 0;

ALTER TABLE TBMODELO_COMBINACAO_ITEM ALTER COLUMN STATUS SET DEFAULT 1;

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

SET TERM ^ ;

CREATE OR ALTER trigger ttbmodelo_combinacao_item_b01u for tbmodelo_combinacao_item
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
DECLARE VARIABLE OLD_COR_BASE VARCHAR(500);
DECLARE VARIABLE NEW_COR_BASE VARCHAR(500);
BEGIN

    HISTORICO = '';

    OLD_COR_BASE = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 6, '0')||' - '||A.DESCRICAO FROM TBCOR A WHERE A.CODIGO = OLD.COR_BASE_ID), '');
    NEW_COR_BASE = COALESCE((SELECT FIRST 1 FN_LPAD(A.CODIGO, 6, '0')||' - '||A.DESCRICAO FROM TBCOR A WHERE A.CODIGO = NEW.COR_BASE_ID), '');

    IF (OLD.DESCRICAO IS DISTINCT FROM NEW.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DESCRICAO:'||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END

    IF (OLD.QUANTIDADE IS DISTINCT FROM NEW.QUANTIDADE) THEN
    BEGIN
        HISTORICO = HISTORICO||' QTD:'||OLD.QUANTIDADE||'->'||NEW.QUANTIDADE;
    END

    IF (OLD.ORIGEM IS DISTINCT FROM NEW.ORIGEM) THEN
    BEGIN
        HISTORICO = HISTORICO||' ORIGEM:'||OLD.ORIGEM||'->'||NEW.ORIGEM;
    END

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

    IF (OLD.COR_BASE_ID IS DISTINCT FROM NEW.COR_BASE_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' COR BASE:'||OLD_COR_BASE||'->'||NEW_COR_BASE;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'COMBINACAO: '||NEW.DESCRICAO||' ALTERADA:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('', OLD.COMBINACAO_ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^

