From 6b8cf3bde241caf2661adc4da14de2229cfddbdc Mon Sep 17 00:00:00 2001 From: alberto Date: Mon, 31 Jul 2017 14:35:32 +0000 Subject: [PATCH] =?UTF-8?q?Confer=C3=AAncia=20de=20Caixa=20-=20MD=20(issue?= =?UTF-8?q?=209150)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/BD/FlyWay/trunk@72075 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../migration/V20170731_1130__mantis9150.sql | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 src/db/migration/V20170731_1130__mantis9150.sql diff --git a/src/db/migration/V20170731_1130__mantis9150.sql b/src/db/migration/V20170731_1130__mantis9150.sql new file mode 100644 index 000000000..0e96bbf8f --- /dev/null +++ b/src/db/migration/V20170731_1130__mantis9150.sql @@ -0,0 +1,122 @@ +CREATE OR REPLACE TRIGGER "VTABOL"."TR_PAF_FISCAL_ML2" + before delete or insert or update on VTABOL.FISCAL_ML2 + REFERENCING NEW AS NEW OLD AS OLD + for each row + declare + impressora_id number; + + tipoReg varchar(2); + cnpjMatriz varchar(14); + ieEmpTransp varchar(14); + imEmpTransp varchar(14); + numSerie20 varchar(20); + mfAdicional varchar(1); + tipoEcf varchar(7); + marca varchar(20); + modelo varchar(20); + numUsuario varchar(2); + ccf varchar(6); --M + coo varchar(6); + gnf varchar(6); --L + grg varchar(6); --L + dataEmissao varchar(8); + horaEmissao varchar(6); + modalidade varchar(2); + categoria varchar(2); + identLinha varchar(8); + codOrigem varchar(20); + codDestino varchar(20); + tipoServico varchar(2); + dataViagem varchar(8); + horaViagem varchar(6); + tipoViagem varchar(2); + poltrona varchar(7); + plataforma varchar(15); + codDesconto varchar(8); + valorTarifa varchar(8); + aliquota varchar(4); --M + pedagio varchar(8); + taxaEmbarque varchar(8); + valorTotal varchar(8); + formaPago varchar(2); + valorPago varchar(8); + nomePassageiro varchar(50); + numDocIdentif varchar(40); + sac varchar(15); + agencia varchar(35); + + info varchar(433); + begin + impressora_id := 0; + + IF DELETING THEN + impressora_id := :OLD.fiscalimpressora_id; + ELSIF INSERTING THEN + impressora_id := :NEW.fiscalimpressora_id; + END IF; + + if user <> 'VTABOL' then + update punto_venta p set p.pafinvalido = 1 where p.puntoventa_id = (select puntoventa_id from fiscal_impressora where fiscalimpressora_id = impressora_id); + end if; + + if INSERTING or UPDATING then + tipoReg := nvl(:NEW.tipoReg, ''); + cnpjMatriz := nvl(:NEW.cnpjMatriz, ''); + ieEmpTransp := nvl(:NEW.ieEmpTransp, ''); + imEmpTransp := nvl(:NEW.imEmpTransp, ''); + numSerie20 := nvl(:NEW.numserie20, ''); + mfAdicional := nvl(:NEW.mfAdicional, ''); + tipoEcf := nvl(:NEW.tipoEcf, ''); + marca := nvl(:NEW.marca, ''); + modelo := nvl(:NEW.modelo, ''); + numUsuario := nvl(:NEW.numUsuario, ''); + coo := nvl(:NEW.coo, ''); + dataEmissao := nvl(:NEW.dataEmissao, ''); + horaEmissao := nvl(:NEW.horaEmissao, ''); + modalidade := nvl(:NEW.modalidade, ''); + categoria := nvl(:NEW.categoria, ''); + identLinha := nvl(:NEW.identLinha, ''); + codOrigem := nvl(:NEW.codOrigem, ''); + codDestino := nvl(:NEW.codDestino, ''); + tipoServico := nvl(:NEW.tipoServico, ''); + dataViagem := nvl(:NEW.dataViagem, ''); + horaViagem := nvl(:NEW.horaViagem, ''); + tipoViagem := nvl(:NEW.tipoViagem, ''); + poltrona := nvl(:NEW.poltrona, ''); + plataforma := nvl(:NEW.plataforma, ''); + codDesconto := nvl(:NEW.codDesconto, ''); + valorTarifa := nvl(:NEW.valorTarifa, ''); + pedagio := nvl(:NEW.pedagio, ''); + taxaEmbarque := nvl(:NEW.taxaEmbarque, ''); + valorTotal := nvl(:NEW.valorTotal, ''); + formaPago := nvl(:NEW.formaPago, ''); + valorPago := nvl(:NEW.valorPago, ''); + nomePassageiro := nvl(:NEW.nomePassageiro, ''); + numDocIdentif := nvl(:NEW.numDocIdentif, ''); + sac := nvl(:NEW.sac, ''); + agencia := nvl(:NEW.agencia, ''); + + if UPPER(tipoReg) = 'M2' then + ccf := nvl(:NEW.ccf, ''); + aliquota := nvl(:NEW.aliquota, ''); + gnf := ''; + grg := ''; + else + gnf := nvl(:NEW.gnf, ''); + grg := nvl(:NEW.grg, ''); + ccf := ''; + aliquota := ''; + end if; + + --info := tipoReg || cnpjMatriz || ieEmpTransp || imEmpTransp || numSerie20 || mfAdicional || tipoEcf || marca || modelo || numUsuario || ccf || coo || gnf || grg || dataEmissao || horaEmissao || modalidade || categoria || identLinha || codOrigem || codDestino || tipoServico || dataViagem || horaViagem || tipoViagem || poltrona || plataforma || codDesconto || valorTarifa || aliquota || pedagio || taxaEmbarque || valorTotal || formaPago || valorPago || nomePassageiro || numDocIdentif || sac || agencia; + --info := SYS.DBMS_CRYPTO.Hash (UTL_I18N.STRING_TO_RAW (info, 'AL32UTF8'), 2); + info := SYS.DBMS_CRYPTO.Hash (UTL_I18N.STRING_TO_RAW (tipoReg || cnpjMatriz || ieEmpTransp || imEmpTransp || numSerie20 || mfAdicional || tipoEcf || marca || modelo || numUsuario || ccf || coo || gnf || grg || dataEmissao || horaEmissao || modalidade || categoria || identLinha || codOrigem || codDestino || tipoServico || dataViagem || horaViagem || tipoViagem || poltrona || plataforma || codDesconto || valorTarifa || aliquota || pedagio || taxaEmbarque || valorTotal || formaPago || valorPago || nomePassageiro || numDocIdentif || sac || agencia, 'AL32UTF8'), 2); + + if user <> 'VTABOL' then + :NEW.hashbd := info; + else + :NEW.hashvta := SYS.DBMS_CRYPTO.Hash (UTL_I18N.STRING_TO_RAW ('RJA2014' || info, 'AL32UTF8'), 2); + :NEW.hashbd := info; + end if; + end if; + end; \ No newline at end of file