ALTER TABLE TBCATALOGO_PRODUTO
	ADD UTILIZADO CHAR(1) CHARACTER SET UTF8 DEFAULT '0' COLLATE UTF8;

COMMENT ON COLUMN TBCATALOGO_PRODUTO.UTILIZADO IS
'0 - NAO UTILIZADO;
1 - UTILIZADO;';

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

SET TERM ^ ;

CREATE OR ALTER trigger ttbcatalogo_produto_b01u for tbcatalogo_produto
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);

DECLARE VARIABLE OLD_TABELA_PRECO VARCHAR(500);
DECLARE VARIABLE NEW_TABELA_PRECO VARCHAR(500);
DECLARE VARIABLE OLD_ESTABELECIMENTO VARCHAR(500);
DECLARE VARIABLE NEW_ESTABELECIMENTO VARCHAR(500);
BEGIN

    HISTORICO = '';

    OLD_TABELA_PRECO = COALESCE((SELECT FIRST 1 FN_LPAD(A.ID, 4, '0')||' - '||A.DESCRICAO FROM TBTABELA_PRECO A WHERE A.ID = OLD.TABELA_PRECO_ID), '');
    NEW_TABELA_PRECO = COALESCE((SELECT FIRST 1 FN_LPAD(A.ID, 4, '0')||' - '||A.DESCRICAO FROM TBTABELA_PRECO A WHERE A.ID = NEW.TABELA_PRECO_ID), '');
    OLD_ESTABELECIMENTO = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 4, '0')||' - '||B.RAZAOSOCIAL FROM TBESTABELECIMENTO B WHERE B.CODIGO = OLD.ESTABELECIMENTO_ID), '');
    NEW_ESTABELECIMENTO = COALESCE((SELECT FIRST 1 FN_LPAD(B.CODIGO, 4, '0')||' - '||B.RAZAOSOCIAL FROM TBESTABELECIMENTO B WHERE B.CODIGO = NEW.ESTABELECIMENTO_ID), '');

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

    IF (OLD.DATA_INICIAL <> NEW.DATA_INICIAL) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.INICIAL:'||FORMATDATE(OLD.DATA_INICIAL)||'->'||FORMATDATE(NEW.DATA_INICIAL);
    END

    IF (OLD.DATA_FIM <> NEW.DATA_FIM) THEN
    BEGIN
        HISTORICO = HISTORICO||' DT.FINAL:'||FORMATDATE(OLD.DATA_FIM)||'->'||FORMATDATE(NEW.DATA_FIM);
    END

    IF (OLD.TABELA_PRECO_ID <> NEW.TABELA_PRECO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' TABELA PRECO:'||OLD_TABELA_PRECO||'->'||NEW_TABELA_PRECO;
    END

    IF (OLD.CONTATO_VENDEDOR <> NEW.CONTATO_VENDEDOR) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONTATO:'||FN_MASK_V2(OLD.CONTATO_VENDEDOR, 'FONE')||'->'||FN_MASK_V2(NEW.CONTATO_VENDEDOR, 'FONE');
    END

    IF (OLD.LINK <> NEW.LINK) THEN
    BEGIN
        HISTORICO = HISTORICO||' CAMPO LINK ALTERADO!';
    END

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

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REGISTRO ALTERADO:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBCATALOGO_PRODUTO', OLD.ID, FN_ELIPSE(HISTORICO, 500));
    END
END
^

SET TERM ; ^

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

CREATE INDEX ITBCATALOGO_PRODUTO_04
ON TBCATALOGO_PRODUTO (UTILIZADO);

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

ALTER TABLE TBPDV_CONFERENCIA
    ADD CODIGO_PED INTEGER;

COMMENT ON COLUMN TBPDV_CONFERENCIA.CODIGO_PED IS
'Código de Identificação do Pré-Pedido (Mesmo da TBCATALOGO_PRODUTO_VINCULO)';


CREATE INDEX ITBPDV_CONFERENCIA_08
ON TBPDV_CONFERENCIA (OFFLINE_ID);

CREATE INDEX ITBPDV_CONFERENCIA_07
ON TBPDV_CONFERENCIA (SINCRONIZADO);

CREATE INDEX ITBPDV_CONFERENCIA_09
ON TBPDV_CONFERENCIA (AMBIENTE);

CREATE INDEX ITBPDV_CONFERENCIA_06
ON TBPDV_CONFERENCIA (CODIGO_PED);

CREATE INDEX ITBPDV_CONFERENCIA_05
ON TBPDV_CONFERENCIA (USUARIO_ID);

CREATE INDEX ITBPDV_CONFERENCIA_04
ON TBPDV_CONFERENCIA (TABELA_PRECO_ID);

CREATE INDEX ITBPDV_CONFERENCIA_03
ON TBPDV_CONFERENCIA (CLIENTE_ID);

CREATE INDEX ITBPDV_CONFERENCIA_02
ON TBPDV_CONFERENCIA (PDV_ID);

CREATE INDEX ITBPDV_CONFERENCIA_01
ON TBPDV_CONFERENCIA (ESTABELECIMENTO_ID);


SET TERM ^ ;

CREATE OR ALTER trigger tbpdv_conferencia_b09u for tbpdv_conferencia
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN
    HISTORICO = '';

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

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

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

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

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

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


    IF(HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBPDV_CONFERENCIA',NEW.ID,FN_ELIPSES(HISTORICO,500));
    END
END
^

SET TERM ; ^

