SET TERM ^ ;

CREATE OR ALTER trigger tbcliente_modelo_preco_b03iu for tbcliente_modelo_preco
active before insert or update position 4
AS

DECLARE VARIABLE FAMILIA_ID INTEGER;
DECLARE VARIABLE COUNT_REGISTROS INTEGER;
DECLARE VARIABLE DESCRICAO_MODELO VARCHAR(50);
DECLARE VARIABLE DESCRICAO_TABELA VARCHAR(100);
DECLARE VARIABLE DESCRICAO_FAMILIA VARCHAR(20);

BEGIN

    /* BUSCA FAMILIA DO MODELO */

    SELECT T.FAMILIA_CODIGO, FN_LPAD(T.CODIGO, 4, '0')||' - '||T.DESCRICAO FROM TBMODELO T WHERE T.CODIGO = NEW.MODELO_CODIGO INTO :FAMILIA_ID, :DESCRICAO_MODELO;

    IF(:FAMILIA_ID > 0 and coalesce(NEW.TABELA_ID,0) > 0) THEN
    BEGIN
        /* VERIFICA SE A FAMILIA DO MODELO PERTENCE A TABELA DE PRECO SELECIONADA */
        SELECT COUNT(T.FAMILIA_ID) FROM TBTABELA_PRECO_FAMILIA T
        WHERE   T.TABELA_PRECO_ID   = NEW.TABELA_ID
            AND T.FAMILIA_ID        = :FAMILIA_ID
        INTO :COUNT_REGISTROS;

        IF(:COUNT_REGISTROS = 0) THEN
        BEGIN

            /* BUSCA A DESCRICAO DA TABELA */
            SELECT FIRST 1 FN_LPAD(T.ID, 4, '0')||' - '||T.DESCRICAO FROM TBTABELA_PRECO T WHERE T.ID = NEW.TABELA_ID INTO :DESCRICAO_TABELA;

            /* BUSCA A DESCRICAO DA FAMILIA */
            SELECT FIRST 1 FN_LPAD(T.CODIGO, 4, '0')||' - '||T.DESCRICAO FROM TBFAMILIA T WHERE T.CODIGO = :FAMILIA_ID INTO :DESCRICAO_FAMILIA;

            EXCEPTION "..." 'FAMILIA ' ||coalesce(:DESCRICAO_FAMILIA,'')||' DO MODELO '||coalesce(:DESCRICAO_MODELO,'')||' NAO PERMITIDA PARA A TABELA DE PREÇO '||coalesce(NEW.TABELA_ID,'0')||' - '||coalesce(:DESCRICAO_TABELA,'');

        END
   END

END
^

SET TERM ; ^

CREATE INDEX ITBNF_LOTE_02
ON TBNF_LOTE (EMAIL_CAN);

CREATE INDEX ITBNF_LOTE_01
ON TBNF_LOTE (EMAIL);

CREATE TABLE TBCONF_ENVIO_XML_PDF (
    ID INTEGER NOT NULL);

ALTER TABLE TBCONF_ENVIO_XML_PDF
ADD CONSTRAINT PK_TBCONF_ENVIO_XML_PDF
PRIMARY KEY (ID);

ALTER TABLE TBCONF_ENVIO_XML_PDF
    ADD SEG INTEGER,
    ADD TER INTEGER,
    ADD QUA INTEGER,
    ADD QUI INTEGER,
    ADD SEX INTEGER,
    ADD SAB INTEGER,
    ADD DOM INTEGER,
    ADD QTD_ENVIO INTEGER,
    ADD TEMPO_ENVIO INTEGER,
    ADD EMBARCADAS INTEGER,
    ADD HORA_FIM TIME,
    ADD HORA_INICIO TIME,
    ADD DATA_INICIO DATE,
    ADD DIAS INTEGER;

UPDATE OR INSERT INTO TBCONF_ENVIO_XML_PDF (ID, SEG, TER, QUA, QUI, SEX, SAB, DOM, QTD_ENVIO, TEMPO_ENVIO, EMBARCADAS, HORA_FIM, HORA_INICIO, DATA_INICIO, DIAS)
                                    VALUES (1, 1, 1, 1, 1, 1, 0, 0, 5, 5, 1, '00:00:00', '23:59:59', '2020-01-01', 90)
                                  MATCHING (ID);
								  			

CREATE trigger ttbconf_envio_xml_pdf_b01u for tbconf_envio_xml_pdf
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(3000);
BEGIN

    HISTORICO = '';

    IF (OLD.seg <> NEW.seg) THEN BEGIN HISTORICO = HISTORICO||' SEG:'||OLD.seg||'->'||NEW.seg; END
    IF (OLD.ter <> NEW.ter) THEN BEGIN HISTORICO = HISTORICO||' TER:'||OLD.ter||'->'||NEW.ter; END
    IF (OLD.qua <> NEW.qua) THEN BEGIN HISTORICO = HISTORICO||' QUA:'||OLD.qua||'->'||NEW.qua; END
    IF (OLD.qui <> NEW.qui) THEN BEGIN HISTORICO = HISTORICO||' QUI:'||OLD.qui||'->'||NEW.qui; END
    IF (OLD.sex <> NEW.sex) THEN BEGIN HISTORICO = HISTORICO||' SEX:'||OLD.sex||'->'||NEW.sex; END
    IF (OLD.sab <> NEW.sab) THEN BEGIN HISTORICO = HISTORICO||' SAB:'||OLD.sab||'->'||NEW.sab; END
    IF (OLD.dom <> NEW.dom) THEN BEGIN HISTORICO = HISTORICO||' DOM:'||OLD.dom||'->'||NEW.dom; END

    IF (OLD.qtd_envio <> NEW.qtd_envio) THEN
    BEGIN
       HISTORICO = HISTORICO||' QTD. P/EMAIL:'||OLD.qtd_envio||'->'||NEW.qtd_envio;
    END

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

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

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

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

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

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

    
    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = ' ALTERADO:'||HISTORICO;
        EXECUTE PROCEDURE SPI_HISTORICO('TBCONF_ENVIO_XML_PDF', OLD.ID, fn_elipses(HISTORICO,500));
    END

END;

