SET DEFINE OFF;

UPDATE MOFINANCEIROS SET
  sessaoCaixa = 0,
  fatoContabil = 0,
  estabelecimento = 0,
  data = NULL,
  dataEmissao = NULL,
  prazoPadrao = 0,
  prazo = 0,
  vencimento = NULL,
  vencimentoNegociado = NULL,
  previsaoCompensacao = NULL,
  naoCobrarJurosMultaAte = NULL,
  contaFinanceira = ' ',
  pagamentoRecebimento = ' ',
  operacaoFinanceira = 0,
  complemento = ' ',
  contratoCompra = 0,
  idPagamentoPreDocumento = 0,
  idPagamentoDocFiscal = 0,
  documento = ' ',
  fatura = ' ',
  parcelaAtual = 0,
  parcelasTotais = 0,
  pessoa = 0,
  autorizadoPessoa = 0,
  cobranca = 0,
  meioPagamento = 0,
  carteiraFinanceira = 0,
  valor = 0,
  saldo = 0,
  indexador = ' ',
  cotacao = 0,
  valorIndexado = 0,
  saldoIndexado = 0,
  efetivado = 0,
  tarifaDescontoAteVencimento = 0,
  tipoPagamentoAntecipado = ' ',
  tarifaMensalDescontoAntecipado = 0,
  tipoJuroDeMora = ' ',
  tarifaMensalJuroDeMora = 0,
  tarifaMulta = 0,
  situacaoLiberacao = ' ',
  statusSpc = 0,
  dataPrimeiroAvisoSPC = NULL,
  dataSegundoAvisoSPC = NULL,
  dataRegistroSPC = NULL,
  dataRemovidoSPC = NULL
WHERE idFinanceiro = 0;

COMMIT;

UPDATE MOFINANCEIROXBAIXAS SET
  sessaoCaixa = 0,
  fatoContabil = 0,
  idFinanceiro = 0,
  estabelecimento = 0,
  data = NULL,
  previsaoCompensacao = NULL,
  contaFinanceira = ' ',
  pagamentoRecebimento = ' ',
  operacaoFinanceira = 0,
  baixaAutomatica = 0,
  cobranca = 0,
  meioPagamento = 0,
  carteiraFinanceira = 0,
  cotacao = 0,
  valorBrutoIndexado = 0,
  valorBruto = 0,
  valorVariacaoIndexador = 0,
  valorDescontoAteVencimento = 0,
  valorDescontoAntecipado = 0,
  valorJurosDeMora = 0,
  valorMulta = 0,
  tarifaCartao = 0,
  valorTarifaCartao = 0,
  valorDescontoInformado = 0,
  descontoAutorizadoPor = 0,
  valorAcrescimoInformado = 0,
  valorLiquido = 0,
  idCaixaBanco = 0,
  unificadoReparcelado = 0,
  observacoes = ' '
WHERE idBaixaFinanceiro = 0;

COMMIT;


CREATE TABLE PAREGRASDESCONTOSMARGEM_2202 AS SELECT * FROM PAREGRASDESCONTOSMARGEM;

ALTER TABLE PAREGRADESCMARGXFILTPROD DROP CONSTRAINT PAREGRADESCMARGXFILTPROD_FK1;

DROP TABLE PAREGRASDESCONTOSMARGEM;

-- PAREGRASDESCONTOSMARGEM
CREATE TABLE PAREGRASDESCONTOSMARGEM
  (
    regraDescontoMargem     NUMERIC (14,0) DEFAULT 0 NOT NULL,
    descricao               VARCHAR (120) DEFAULT ' ' NOT NULL,
    ativo                   NUMERIC (1,0) DEFAULT 0 NOT NULL,
    ordenacao               NUMERIC (11,0) DEFAULT 0 NOT NULL,
    tipoRegraDescontoMargem NUMERIC (3,0) DEFAULT 0 NOT NULL,
    valorSugestao           NUMERIC (15,6) DEFAULT 0 NOT NULL,
    valorMaximoSemSenha     NUMERIC (15,6) DEFAULT 0 NOT NULL,
    dataValidadeInicial     DATE,
    dataValidadeFinal       DATE,
    cabecalhoItemPagamento  CHAR (1) DEFAULT ' ' NOT NULL,
    filtroCabecalho         NUMERIC (14,0) DEFAULT 0 NOT NULL,
    filtroPagamento         NUMERIC (14,0) DEFAULT 0 NOT NULL,
    filtrarUltimaCompra     NUMERIC (1,0) DEFAULT 0 NOT NULL,
    diasUltimaCompraInicial NUMERIC (6,0) DEFAULT 0 NOT NULL,
    diasUltimaCompraFinal   NUMERIC (6,0) DEFAULT 0 NOT NULL,
    filtrarTabelaPreco      NUMERIC (1,0) DEFAULT 0 NOT NULL,
    observacoes             VARCHAR (4000) DEFAULT ' ' NOT NULL
  );
ALTER TABLE PAREGRASDESCONTOSMARGEM ADD CONSTRAINT PAREGRASDESCONTOSMARGEM_PK1 PRIMARY KEY (regraDescontoMargem);
CREATE INDEX PAREGRASDESCONTOSMARGEM_K2 ON PAREGRASDESCONTOSMARGEM (descricao);
CREATE INDEX PAREGRASDESCONTOSMARGEM_K3 ON PAREGRASDESCONTOSMARGEM (ordenacao, regraDescontoMargem, tipoRegraDescontoMargem);
ALTER TABLE PAREGRASDESCONTOSMARGEM ADD CONSTRAINT PAREGRASDESCONTOSMARGEM_FK1 FOREIGN KEY (tipoRegraDescontoMargem) REFERENCES SITIPOSREGRASDESCONTOMARG (tipoRegraDescontoMargem);
ALTER TABLE PAREGRASDESCONTOSMARGEM ADD CONSTRAINT PAREGRASDESCONTOSMARGEM_FK2 FOREIGN KEY (cabecalhoItemPagamento) REFERENCES SICABECALHOITEMPAGAMENTO (cabecalhoItemPagamento);
ALTER TABLE PAREGRASDESCONTOSMARGEM ADD CONSTRAINT PAREGRASDESCONTOSMARGEM_FK3 FOREIGN KEY (filtroCabecalho) REFERENCES PAFILTROSCABECALHO (filtroCabecalho);
ALTER TABLE PAREGRASDESCONTOSMARGEM ADD CONSTRAINT PAREGRASDESCONTOSMARGEM_FK4 FOREIGN KEY (filtroPagamento) REFERENCES PAFILTROSPAGAMENTO (filtroPagamento);

INSERT INTO PAREGRASDESCONTOSMARGEM (regraDescontoMargem, descricao, ativo, ordenacao, tipoRegraDescontoMargem, valorSugestao, valorMaximoSemSenha, dataValidadeInicial, dataValidadeFinal, cabecalhoItemPagamento, filtroCabecalho, filtroPagamento, filtrarUltimaCompra, diasUltimaCompraInicial, diasUltimaCompraFinal, filtrarTabelaPreco, observacoes) VALUES (0, 'SELECIONE', 1, 0, 0, 0, 0, NULL, NULL, ' ', 0, 0, 0, 0, 0, 0, ' ');
INSERT INTO PAREGRASDESCONTOSMARGEM (regraDescontoMargem, descricao, ativo, ordenacao, tipoRegraDescontoMargem, valorSugestao, valorMaximoSemSenha, dataValidadeInicial, dataValidadeFinal, cabecalhoItemPagamento, filtroCabecalho, filtroPagamento, filtrarUltimaCompra, diasUltimaCompraInicial, diasUltimaCompraFinal, filtrarTabelaPreco, observacoes) SELECT regraDescontoMargem, descricao, ativo, ordenacao, tipoRegraDescontoMargem, valorSugestao, valorMaximoSemSenha, dataValidadeInicial, dataValidadeFinal, cabecalhoItemPagamento, filtroCabecalho, filtroPagamento, filtrarUltimaCompra, diasUltimaCompraInicial, diasUltimaCompraFinal, 0, observacoes FROM PAREGRASDESCONTOSMARGEM_2202 WHERE regraDescontoMargem > 0;

COMMIT;

ALTER TABLE PAREGRADESCMARGXFILTPROD ADD CONSTRAINT PAREGRADESCMARGXFILTPROD_FK1 FOREIGN KEY (regraDescontoMargem) REFERENCES PAREGRASDESCONTOSMARGEM (regraDescontoMargem);

-- PAREGRADESCMARGXTABELASPR
CREATE TABLE PAREGRADESCMARGXTABELASPR
  (
    id                  NUMERIC (14,0) DEFAULT 0 NOT NULL,
    regraDescontoMargem NUMERIC (14,0) DEFAULT 0 NOT NULL,
    tabelaPreco         VARCHAR (10) DEFAULT ' ' NOT NULL,
    ativo               NUMERIC (1,0) DEFAULT 0 NOT NULL
  );
ALTER TABLE PAREGRADESCMARGXTABELASPR ADD CONSTRAINT PAREGRADESCMARGXTABELASPR_PK1 PRIMARY KEY (id);
CREATE UNIQUE INDEX PAREGRADESCMARGXTABELASPR_K2 ON PAREGRADESCMARGXTABELASPR (regraDescontoMargem, tabelaPreco);
CREATE INDEX PAREGRADESCMARGXTABELASPR_K3 ON PAREGRADESCMARGXTABELASPR (tabelaPreco, regraDescontoMargem);
ALTER TABLE PAREGRADESCMARGXTABELASPR ADD CONSTRAINT PAREGRADESCMARGXTABELASPR_FK1 FOREIGN KEY (regraDescontoMargem) REFERENCES PAREGRASDESCONTOSMARGEM (regraDescontoMargem);
ALTER TABLE PAREGRADESCMARGXTABELASPR ADD CONSTRAINT PAREGRADESCMARGXTABELASPR_FK2 FOREIGN KEY (tabelaPreco) REFERENCES PATABELASPRECO (tabelaPreco);

INSERT INTO PAREGRADESCMARGXTABELASPR (id, regraDescontoMargem, tabelaPreco, ativo) VALUES (0, 0, ' ', 1);

COMMIT;

INSERT INTO SITABELASSISTEMA (tabelaSistema, descricao, ativo, ordenacao, tipoTabela, nomeCampoCodigo, tipoCampoCodigo, numeroDigitosCodigo, nomeCampoDescricao, adicionarCodigoNaDescricao, nomeCampoIdSeDiferenteCodigo, numeroDigitosCampoId, categoriaTabelaSistema, aplicacaoZoom, nomePublicoZoom, versaoTabela, versaoDados, observacoes) values ('PAREGRADESCMARGXTABELASPR', 'Regra Desconto Margem X Tabelas Preço', 1, 31062, 'PA', 'id', 'N', 14, 'descricao', 1, ' ', 0, 300001, '%SYS_DIR%Versoes\%SYS_VER%\Framework.ecf', 'PesqRegDescMargXTabelasPreco', 1, 1, ' '); 

COMMIT;

INSERT INTO SIMENUS (menu, descricao, ativo, ordenacao, tipoMenu, categoriaMenu, menuPrincipal, aplicacao, nomePublico, categoriaConfiguracao, categoriaPersonalCampo, categoriaMemoriaSistema, permiteReport, observacoes) values (839, 'Regra Desconto Margem X Tabelas Preço', 1, 90002582, 'PA', 300002, 251, '%SYS_DIR%Versoes\%SYS_VER%\Framework.ecf', 'PesqRegDescMargXTabelasPreco', 0, 0, 0, 0, ' ');

COMMIT;

CREATE TABLE PAREGRASPROMOCOES_2202 AS SELECT * FROM PAREGRASPROMOCOES;

ALTER TABLE PAREGRAPROMOCAOXPRODUTOS DROP CONSTRAINT PAREGRAPROMOCAOXPRODUTOS_FK1;
ALTER TABLE MOPREDOCUMXPROMOCOES DROP CONSTRAINT MOPREDOCUMXPROMOCOES_FK5;
ALTER TABLE MODOCFISCALXPROMOCOES DROP CONSTRAINT MODOCFISCALXPROMOCOES_FK5;
ALTER TABLE MOORCAMENTOXPROMOCOES DROP CONSTRAINT MOORCAMENTOXPROMOCOES_FK5;

DROP TABLE PAREGRASPROMOCOES;

-- PAREGRASPROMOCOES
CREATE TABLE PAREGRASPROMOCOES
  (
    regraPromocao          NUMERIC (14,0) DEFAULT 0 NOT NULL,
    descricao              VARCHAR (120) DEFAULT ' ' NOT NULL,
    ativo                  NUMERIC (1,0) DEFAULT 0 NOT NULL,
    ordenacao              NUMERIC (11,0) DEFAULT 0 NOT NULL,
    quantidadeA            NUMERIC (15,6) DEFAULT 0 NOT NULL,
    quantidadeB            NUMERIC (15,6) DEFAULT 0 NOT NULL,
    quantidadeC            NUMERIC (15,6) DEFAULT 0 NOT NULL,
    tipoBeneficio          CHAR (2) DEFAULT '  ' NOT NULL,
    quantidadeBeneficio    NUMERIC (15,6) DEFAULT 0 NOT NULL,
    percentualDesconto     NUMERIC (15,8) DEFAULT 0 NOT NULL,
    pontuacaoPorValor      NUMERIC (15,4) DEFAULT 0 NOT NULL,
    pontuacaoPorQuantidade NUMERIC (15,4) DEFAULT 0 NOT NULL,
    pontuacaoFixa          NUMERIC (15,4) DEFAULT 0 NOT NULL,
    valorFinal             NUMERIC (15,2) DEFAULT 0 NOT NULL,
    faixaPromocaoPreco     NUMERIC (14,0) DEFAULT 0 NOT NULL,
    valorAPartirDe         NUMERIC (15,2) DEFAULT 0 NOT NULL,
    dataValidadeInicial    DATE,
    dataValidadeFinal      DATE,
    filtroCabecalho        NUMERIC (14,0) DEFAULT 0 NOT NULL,
    filtroPagamento        NUMERIC (14,0) DEFAULT 0 NOT NULL,
    filtrarTabelaPreco     NUMERIC (1,0) DEFAULT 0 NOT NULL,
    promocaoAcumulativa    NUMERIC (1,0) DEFAULT 0 NOT NULL,
    gerarPontuacao         NUMERIC (1,0) DEFAULT 0 NOT NULL,
    observacoes            VARCHAR (4000) DEFAULT ' ' NOT NULL
  );
ALTER TABLE PAREGRASPROMOCOES ADD CONSTRAINT PAREGRASPROMOCOES_PK1 PRIMARY KEY (regraPromocao);
CREATE INDEX PAREGRASPROMOCOES_K2 ON PAREGRASPROMOCOES (descricao);
CREATE INDEX PAREGRASPROMOCOES_K3 ON PAREGRASPROMOCOES (ordenacao, regraPromocao);
ALTER TABLE PAREGRASPROMOCOES ADD CONSTRAINT PAREGRASPROMOCOES_FK1 FOREIGN KEY (faixaPromocaoPreco) REFERENCES PAFAIXASPROMOCOESPRECOS (faixaPromocaoPreco);
ALTER TABLE PAREGRASPROMOCOES ADD CONSTRAINT PAREGRASPROMOCOES_FK2 FOREIGN KEY (tipoBeneficio) REFERENCES SITIPOSBENEFICIOS (tipoBeneficio);
ALTER TABLE PAREGRASPROMOCOES ADD CONSTRAINT PAREGRASPROMOCOES_FK3 FOREIGN KEY (filtroCabecalho) REFERENCES PAFILTROSCABECALHO (filtroCabecalho);
ALTER TABLE PAREGRASPROMOCOES ADD CONSTRAINT PAREGRASPROMOCOES_FK4 FOREIGN KEY (filtroPagamento) REFERENCES PAFILTROSPAGAMENTO (filtroPagamento);

INSERT INTO PAREGRASPROMOCOES (regraPromocao, descricao, ativo, ordenacao, quantidadeA, quantidadeB, quantidadeC, tipoBeneficio, quantidadeBeneficio, percentualDesconto, pontuacaoPorValor, pontuacaoPorQuantidade, pontuacaoFixa, valorFinal, faixaPromocaoPreco, valorAPartirDe, dataValidadeInicial, dataValidadeFinal, filtroCabecalho, filtroPagamento, filtrarTabelaPreco, promocaoAcumulativa, gerarPontuacao, observacoes) VALUES (0, 'SELECIONE', 1, 0, 0, 0, 0, '  ', 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, ' ');
INSERT INTO PAREGRASPROMOCOES (regraPromocao, descricao, ativo, ordenacao, quantidadeA, quantidadeB, quantidadeC, tipoBeneficio, quantidadeBeneficio, percentualDesconto, pontuacaoPorValor, pontuacaoPorQuantidade, pontuacaoFixa, valorFinal, faixaPromocaoPreco, valorAPartirDe, dataValidadeInicial, dataValidadeFinal, filtroCabecalho, filtroPagamento, filtrarTabelaPreco, promocaoAcumulativa, gerarPontuacao, observacoes) SELECT regraPromocao, descricao, ativo, ordenacao, quantidadeA, quantidadeB, quantidadeC, tipoBeneficio, quantidadeBeneficio, percentualDesconto, pontuacaoPorValor, pontuacaoPorQuantidade, pontuacaoFixa, valorFinal, faixaPromocaoPreco, valorAPartirDe, dataValidadeInicial, dataValidadeFinal, filtroCabecalho, filtroPagamento, 0, 0, gerarPontuacao, observacoes FROM PAREGRASPROMOCOES_2202 WHERE regraPromocao > 0;

COMMIT;

ALTER TABLE PAREGRAPROMOCAOXPRODUTOS ADD CONSTRAINT PAREGRAPROMOCAOXPRODUTOS_FK1 FOREIGN KEY (regraPromocao) REFERENCES PAREGRASPROMOCOES (regraPromocao);
ALTER TABLE MOPREDOCUMXPROMOCOES ADD CONSTRAINT MOPREDOCUMXPROMOCOES_FK5 FOREIGN KEY (regraPromocao) REFERENCES PAREGRASPROMOCOES (regraPromocao);
ALTER TABLE MODOCFISCALXPROMOCOES ADD CONSTRAINT MODOCFISCALXPROMOCOES_FK5 FOREIGN KEY (regraPromocao) REFERENCES PAREGRASPROMOCOES (regraPromocao);
ALTER TABLE MOORCAMENTOXPROMOCOES ADD CONSTRAINT MOORCAMENTOXPROMOCOES_FK5 FOREIGN KEY (regraPromocao) REFERENCES PAREGRASPROMOCOES (regraPromocao);

-- PAREGRAPROMOCAOXTABELASPR
CREATE TABLE PAREGRAPROMOCAOXTABELASPR
  (
    id            NUMERIC (14,0) DEFAULT 0 NOT NULL,
    regraPromocao NUMERIC (14,0) DEFAULT 0 NOT NULL,
    tabelaPreco   VARCHAR (10) DEFAULT ' ' NOT NULL,
    ativo         NUMERIC (1,0) DEFAULT 0 NOT NULL
  );
ALTER TABLE PAREGRAPROMOCAOXTABELASPR ADD CONSTRAINT PAREGRAPROMOCAOXTABELASPR_PK1 PRIMARY KEY (id);
CREATE UNIQUE INDEX PAREGRAPROMOCAOXTABELASPR_K2 ON PAREGRAPROMOCAOXTABELASPR (regraPromocao, tabelaPreco);
CREATE INDEX PAREGRAPROMOCAOXTABELASPR_K3 ON PAREGRAPROMOCAOXTABELASPR (tabelaPreco, regraPromocao);
ALTER TABLE PAREGRAPROMOCAOXTABELASPR ADD CONSTRAINT PAREGRAPROMOCAOXTABELASPR_FK1 FOREIGN KEY (regraPromocao) REFERENCES PAREGRASPROMOCOES (regraPromocao);
ALTER TABLE PAREGRAPROMOCAOXTABELASPR ADD CONSTRAINT PAREGRAPROMOCAOXTABELASPR_FK2 FOREIGN KEY (tabelaPreco) REFERENCES PATABELASPRECO (tabelaPreco);

INSERT INTO PAREGRAPROMOCAOXTABELASPR (id, regraPromocao, tabelaPreco, ativo) VALUES (0, 0, ' ', 1);

COMMIT;

INSERT INTO SITABELASSISTEMA (tabelaSistema, descricao, ativo, ordenacao, tipoTabela, nomeCampoCodigo, tipoCampoCodigo, numeroDigitosCodigo, nomeCampoDescricao, adicionarCodigoNaDescricao, nomeCampoIdSeDiferenteCodigo, numeroDigitosCampoId, categoriaTabelaSistema, aplicacaoZoom, nomePublicoZoom, versaoTabela, versaoDados, observacoes) values ('PAREGRAPROMOCAOXTABELASPR', 'Regra Promoção X Tabelas Preço', 1, 31069, 'PA', 'id', 'N', 14, 'descricao', 1, ' ', 0, 300001, '%SYS_DIR%Versoes\%SYS_VER%\Framework.ecf', 'PesqRegraPromocaoXTabelasPreco', 1, 1, ' '); 

COMMIT;

INSERT INTO SIMENUS (menu, descricao, ativo, ordenacao, tipoMenu, categoriaMenu, menuPrincipal, aplicacao, nomePublico, categoriaConfiguracao, categoriaPersonalCampo, categoriaMemoriaSistema, permiteReport, observacoes) values (840, 'Regra Promoção X Tabelas Preço', 1, 90002585, 'PA', 300002, 656, '%SYS_DIR%Versoes\%SYS_VER%\Framework.ecf', 'PesqRegraPromocaoXTabelasPreco', 0, 0, 0, 0, ' ');

COMMIT;

INSERT INTO SIVERSOESSISTEMA (idVersaoSistema, versaoAplicativo, dataLiberacaoVersao, possuiConversaoTabelas, atualizada, dataAtualizacaoVersao, observacoes) VALUES (2022002028, '2022.2.28', sysdate, 1, 1, sysdate, ' ');

COMMIT;

--exec dbms_utility.compile_schema('ADDERI');
--exec dbms_stats.gather_schema_stats('ADDERI');

/*
*/