Conferência de Caixa - MD (issue 9150)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/BD/FlyWay/trunk@72075 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2017-07-31 14:35:32 +00:00
parent 16c282f441
commit 6b8cf3bde2
1 changed files with 122 additions and 0 deletions

View File

@ -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;