ALTER TABLE TBPDV_CONFERENCIA
    ADD DATA_FECHAMENTO DATE;

COMMENT ON COLUMN TBPDV_CONFERENCIA.DATAHORA IS
'Data de Emissao do Pre-Pedido';

COMMENT ON COLUMN TBPDV_CONFERENCIA.DATA_FECHAMENTO IS
'Data do Fechamento do Pre-Pedido';


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


ALTER TABLE TBPAGAMENTO_FORMA
    ADD REQUER_DATA_FECHAMENTO INTEGER DEFAULT 0;

COMMENT ON COLUMN TBPAGAMENTO_FORMA.REQUER_DATA_FECHAMENTO IS
'0 - Nao requer data de fechamento no pre-pedido;
1 - Requer data de fechamento no pre-pedido;';


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

SET TERM ^ ;

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

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

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

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

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

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

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

    IF(OLD.OBSERVACAO IS DISTINCT FROM NEW.OBSERVACAO) THEN
    BEGIN
       HISTORICO = HISTORICO||' OBS.'||FN_IS_EMPTY(OLD.OBSERVACAO)||'->'||FN_IS_EMPTY(NEW.OBSERVACAO);
    END

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

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

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

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

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

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

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

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

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbpagamento_forma_b01u for tbpagamento_forma
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(5000);
BEGIN

    HISTORICO = '';

    IF ( OLD.DESCRICAO <> NEW.DESCRICAO) THEN
    BEGIN
        HISTORICO = HISTORICO||' DESC: '||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
    END
    
    IF ( OLD.CONFIRMACAO_PEDIDO <> NEW.CONFIRMACAO_PEDIDO) THEN
    BEGIN
        HISTORICO = HISTORICO||' CONF.PED: '||OLD.CONFIRMACAO_PEDIDO||'->'||NEW.CONFIRMACAO_PEDIDO;
    END
    
    IF ( OLD.COBRANCA_ID <> NEW.COBRANCA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' VINC.COB: '||OLD.COBRANCA_ID||'->'||NEW.COBRANCA_ID;
    END
    
    IF ( OLD.BANCO_ID <> NEW.BANCO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' BANCO: '||OLD.BANCO_ID||'->'||NEW.BANCO_ID;
    END
    
    IF ( OLD.MODALIDADE_ID <> NEW.MODALIDADE_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' MOD: '||OLD.MODALIDADE_ID||'->'||NEW.MODALIDADE_ID;
    END
    
    IF ( OLD.POSICAO_ID <> NEW.POSICAO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' POS: '||OLD.POSICAO_ID||'->'||NEW.POSICAO_ID;
    END
    
    IF ( OLD.EMPRESA_ID <> NEW.EMPRESA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' ADQUIRENTE: '||OLD.EMPRESA_ID||'->'||NEW.EMPRESA_ID;
    END

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

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

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

    IF ( OLD.HABILITA_CHEQUE <> NEW.HABILITA_CHEQUE) THEN
    BEGIN
        HISTORICO = HISTORICO||' HAB.CHEQUE: '||OLD.HABILITA_CHEQUE||'->'||NEW.HABILITA_CHEQUE;
    END
    
     IF ( OLD.QTD_PARCELAS <> NEW.QTD_PARCELAS) THEN
    BEGIN
        HISTORICO = HISTORICO||' QTD.PARCELAS: '||OLD.QTD_PARCELAS||'->'||NEW.QTD_PARCELAS;
    END

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

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

    IF(OLD.REGISTRAR_RECEBIMENTO_NFS <> NEW.REGISTRAR_RECEBIMENTO_NFS) THEN
    BEGIN
        HISTORICO = HISTORICO||' RE.RECEB.NFS: '||OLD.REGISTRAR_RECEBIMENTO_NFS||'->'||NEW.REGISTRAR_RECEBIMENTO_NFS;
    END

    IF(OLD.PARCELAS_SEM_SALDO <> NEW.PARCELAS_SEM_SALDO) THEN
    BEGIN
        HISTORICO = HISTORICO||' PARC.SEM SALDO: '||OLD.PARCELAS_SEM_SALDO||'->'||NEW.PARCELAS_SEM_SALDO;
    END

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

    IF(OLD.REQUER_DATA_FECHAMENTO <> NEW.REQUER_DATA_FECHAMENTO) THEN
    BEGIN
        HISTORICO = HISTORICO||' REQ.DT.FECHAMENTO: '||OLD.REQUER_DATA_FECHAMENTO||'->'||NEW.REQUER_DATA_FECHAMENTO;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'REGISTRO ALTERADO:'||HISTORICO;
    -- EXECUTE PROCEDURE SPI_HISTORICO('TBPAGAMENTO_FORMA', NEW.CODIGO, HISTORICO);
          INSERT INTO TBHISTORICO (
                TABELA,
                TABELA_ID,
                HISTORICO
            ) VALUES (
                'TBPAGAMENTO_FORMA',
                NEW.CODIGO,
                FN_ELIPSE(:HISTORICO, 500)
            );
    END
end
^

SET TERM ; ^

