/*ATUALIZAR A TABELA DE IMPORTAÇÃO*/

ALTER TABLE TBCAIXABANCO_CONCILIACAO_IMP ADD BANCO_CONTA_TEMP VARCHAR(50);

UPDATE TBCAIXABANCO_CONCILIACAO_IMP SET BANCO_CONTA_TEMP = BANCO_CONTA;

CREATE OR ALTER TRIGGER TTBCAIXABANCO_CONC_LANC_B021 FOR TBCAIXABANCO_CONCILIACAO_LANC
ACTIVE BEFORE INSERT POSITION 2
AS
declare variable max_data DATE;
begin
  /*max_data = (select A.DATA FROM TBCAIXABANCO_CONCILIACAO_IMP A WHERE A.BANCO_CODIGO = NEW.BANCO_CODIGO AND A.BANCO_CONTA = NEW.BANCO_CONTA);
   SE A DATA DO LANÇAMENTO IMPORTADO FOR MAIOR QUE A DATA EXISTENTE NO BANCO
     INSERIR OU ATUALIZAR NOVO REGISTRO COM A MAIOR DATA
  if(new.DATA > max_data or max_data IS NULL)then
  begin
     UPDATE OR INSERT INTO TBCAIXABANCO_CONCILIACAO_IMP(DATA, BANCO_CODIGO, BANCO_CONTA)
        VALUES (new.DATA, NEW.BANCO_CODIGO, NEW.BANCO_CONTA)
        MATCHING(BANCO_CODIGO, BANCO_CONTA);
  end                                                   */
end;

ALTER TABLE TBCAIXABANCO_CONCILIACAO_IMP DROP BANCO_CONTA;

ALTER TABLE TBCAIXABANCO_CONCILIACAO_IMP ALTER BANCO_CONTA_TEMP TO BANCO_CONTA;

CREATE OR ALTER TRIGGER TTBCAIXABANCO_CONC_LANC_B021 FOR TBCAIXABANCO_CONCILIACAO_LANC
ACTIVE BEFORE INSERT POSITION 2
AS
declare variable max_data DATE;
begin
  max_data = (select A.DATA FROM TBCAIXABANCO_CONCILIACAO_IMP A WHERE A.BANCO_CODIGO = NEW.BANCO_CODIGO AND A.BANCO_CONTA = NEW.BANCO_CONTA);
  /* SE A DATA DO LANÇAMENTO IMPORTADO FOR MAIOR QUE A DATA EXISTENTE NO BANCO
     INSERIR OU ATUALIZAR NOVO REGISTRO COM A MAIOR DATA*/
  if(new.DATA > max_data or max_data IS NULL)then
  begin
     UPDATE OR INSERT INTO TBCAIXABANCO_CONCILIACAO_IMP(DATA, BANCO_CODIGO, BANCO_CONTA)
        VALUES (new.DATA, NEW.BANCO_CODIGO, NEW.BANCO_CONTA)
        MATCHING(BANCO_CODIGO, BANCO_CONTA);
  end
end;

/*ATUALIZAR A TABELA DE LANÇAMENTOS IMPORTADOS*/

ALTER TABLE TBCAIXABANCO_CONCILIACAO_LANC ADD BANCO_CONTA_TEMP VARCHAR(50);

UPDATE TBCAIXABANCO_CONCILIACAO_LANC SET BANCO_CONTA_TEMP = BANCO_CONTA;

CREATE OR ALTER TRIGGER TTBCAIXABANCO_CONC_LANC_B021 FOR TBCAIXABANCO_CONCILIACAO_LANC
ACTIVE BEFORE INSERT POSITION 2
AS
declare variable max_data DATE;
begin
  /*max_data = (select A.DATA FROM TBCAIXABANCO_CONCILIACAO_IMP A WHERE A.BANCO_CODIGO = NEW.BANCO_CODIGO AND A.BANCO_CONTA = NEW.BANCO_CONTA);
   SE A DATA DO LANÇAMENTO IMPORTADO FOR MAIOR QUE A DATA EXISTENTE NO BANCO
     INSERIR OU ATUALIZAR NOVO REGISTRO COM A MAIOR DATA
  if(new.DATA > max_data or max_data IS NULL)then
  begin
     UPDATE OR INSERT INTO TBCAIXABANCO_CONCILIACAO_IMP(DATA, BANCO_CODIGO, BANCO_CONTA)
        VALUES (new.DATA, NEW.BANCO_CODIGO, NEW.BANCO_CONTA)
        MATCHING(BANCO_CODIGO, BANCO_CONTA);
  end                                                   */
end;

DROP INDEX ITBCAIXABANCO_CONC_LANC_02I;

ALTER TABLE TBCAIXABANCO_CONCILIACAO_LANC DROP BANCO_CONTA;

ALTER TABLE TBCAIXABANCO_CONCILIACAO_LANC ALTER BANCO_CONTA_TEMP TO BANCO_CONTA;

CREATE INDEX ITBCAIXABANCO_CONC_LANC_02I
ON TBCAIXABANCO_CONCILIACAO_LANC (BANCO_CONTA);

CREATE OR ALTER TRIGGER TTBCAIXABANCO_CONC_LANC_B021 FOR TBCAIXABANCO_CONCILIACAO_LANC
ACTIVE BEFORE INSERT POSITION 2
AS
declare variable max_data DATE;
begin
  max_data = (select A.DATA FROM TBCAIXABANCO_CONCILIACAO_IMP A WHERE A.BANCO_CODIGO = NEW.BANCO_CODIGO AND A.BANCO_CONTA = NEW.BANCO_CONTA);
  /* SE A DATA DO LANÇAMENTO IMPORTADO FOR MAIOR QUE A DATA EXISTENTE NO BANCO
     INSERIR OU ATUALIZAR NOVO REGISTRO COM A MAIOR DATA*/
  if(new.DATA > max_data or max_data IS NULL)then
  begin
     UPDATE OR INSERT INTO TBCAIXABANCO_CONCILIACAO_IMP(DATA, BANCO_CODIGO, BANCO_CONTA)
        VALUES (new.DATA, NEW.BANCO_CODIGO, NEW.BANCO_CONTA)
        MATCHING(BANCO_CODIGO, BANCO_CONTA);
  end
end;

