CREATE OR REPLACE TRIGGER LOG_EXP_PAREXPEDICAO
AFTER DELETE OR INSERT OR UPDATE
ON PAREXPEDICAO FOR EACH ROW
DECLARE
  V_DSREMOTEADDR VARCHAR2(15);
  V_DSREMOTEHOST VARCHAR2(15);
  V_DSSERVERRDM  VARCHAR2(20);
  V_DSSERVMETHOD VARCHAR2(30);
  V_DSREMOTEOPER VARCHAR2(12);
  V_GRAV_DESC    VARCHAR2(2000);
  V_DESC         VARCHAR2(2000); 
  V_LENGTH       FLOAT(10); 
  V_CONT_LENGTH FLOAT(10);
  V_ITPESQ       VARCHAR2(80);
  V_NMOPERADOR   VARCHAR2(40);
  V_NRINCREST    VARCHAR2(40);
  V_IDTIPOOPER   VARCHAR2(1);
  V_CDFILLOGOPER VARCHAR2(4);

BEGIN
/* IDTIPOOPER - '1' - Inclusao, '2' - Alteracao, '3' - Exclusao*/

   V_GRAV_DESC    := '';
   V_LENGTH       := '';
   V_CONT_LENGTH  := 1;
   V_DESC         := '';
   V_ITPESQ       := '';
   V_NMOPERADOR   := '';
   V_NRINCREST    := '';
   V_IDTIPOOPER   := '';
   V_CDFILLOGOPER := '';

   NMUSUARIO(V_NMOPERADOR);
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);

      IF INSERTING THEN

         IF :NEW.CDFILIAL IS NOT NULL THEN
            V_DESC := V_DESC || 'Filial = ' || NVL(:NEW.CDFILIAL,'') || ' ';
         END IF;
         IF :NEW.IDPERADIEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Permissao para expedir qtde adicional = ' || NVL(:NEW.IDPERADIEXP,'') || ' ';
         END IF;
         IF :NEW.VRPEADIEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr adicional permitido = ' || NVL(:NEW.VRPEADIEXP,'') || '% ';
         END IF;
         IF :NEW.VRPELIQEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr. de replicacao do documento (NF) = ' || NVL(:NEW.VRPELIQEXP,'') || '% ';
         END IF;
         IF :NEW.IDGERAREPLIC IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera replicacao do documento (NF) = ' || NVL(:NEW.IDGERAREPLIC,'') || ' ';
         END IF;
         IF :NEW.IDRETPROEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Retirada de produtos do estoque = ' || NVL(:NEW.IDRETPROEXP,'') || ' ';
         END IF;
         IF :NEW.IDTPCADCLIEX IS NOT NULL THEN
            V_DESC := V_DESC || 'Tipo de cadastro de cliente = ' || NVL(:NEW.IDTPCADCLIEX,'') || ' ';
         END IF;
         IF :NEW.IDGERAFINANC IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera documentos aprovados = ' || NVL(:NEW.IDGERAFINANC,'') || ' ';
         END IF;
         IF :NEW.CDIMPOSTO IS NOT NULL THEN
            V_DESC := V_DESC || 'Imposto = ' || NVL(:NEW.CDIMPOSTO,'') || ' ';
         END IF;
         IF :NEW.IDCTRLVENEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Controle por vendedor = ' || NVL(:NEW.IDCTRLVENEXP,'') || ' ';
         END IF;
         IF :NEW.IDNFPEDIDO IS NOT NULL THEN
            V_DESC := V_DESC || 'Quebra de NFs por pedido = ' || NVL(:NEW.IDNFPEDIDO,'') || ' ';
         END IF;
         IF :NEW.IDCUSEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Custo na Expedicao = ' || NVL(:NEW.IDCUSEXP,'') || ' ';
         END IF;
         IF :NEW.IDGERPRODEST IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera NF com codigos de produtos de estoque = ' || NVL(:NEW.IDGERPRODEST,'') || ' ';
         END IF;
         IF :NEW.IDREPLITRANS IS NOT NULL THEN
            V_DESC := V_DESC || 'Replica transportadora = ' || NVL(:NEW.IDREPLITRANS,'') || ' ';
         END IF;
         IF :NEW.CDGROPERTROC IS NOT NULL THEN
            V_DESC := V_DESC || 'Grupo de Operadores para troca de produtos = ' || NVL(:NEW.CDGROPERTROC,'') || ' ';
         END IF;
         IF :NEW.IDEVOLESTTRO IS NOT NULL THEN
            V_DESC := V_DESC || 'Evolucao automatica de estoque = ' || NVL(:NEW.IDEVOLESTTRO,'') || ' ';
         END IF;
         IF :NEW.IDEXPQTDISP IS NOT NULL THEN
            V_DESC := V_DESC || 'Expedicao automatica para produtos c/ estoque = ' || NVL(:NEW.IDEXPQTDISP,'') || ' ';
         END IF;
         IF :NEW.CDTPCTPAGFRE IS NOT NULL THEN
            V_DESC := V_DESC || 'Tipo de conta para frete = ' || NVL(:NEW.CDTPCTPAGFRE,'') || ' ';
         END IF;
         IF :NEW.VRPECOGEREXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr. de comissao gerado = ' || NVL(:NEW.VRPECOGEREXP,'') || '% ';
         END IF;
         IF :NEW.DSCODIGOUTILIZA IS NOT NULL THEN
            V_DESC := V_DESC || 'Codigo de Utilizacao de Mapas = ' || NVL(:NEW.DSCODIGOUTILIZA,'') || ' ';
         END IF;
         IF :NEW.IDEXIDIAENTREGA IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Filtro de Dias de Entrega = ' || NVL(:NEW.IDEXIDIAENTREGA,'') || ' ';
         END IF;
         IF :NEW.IDEXITRANSPDIST IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Transportadora na Grade de Distribuicao = ' || NVL(:NEW.IDEXITRANSPDIST,'') || ' ';
         END IF;
         IF :NEW.IDEMPRESANFEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Empresa da Nota Fiscal = ' || NVL(:NEW.IDEMPRESANFEXP,'') || ' ';
         END IF;
         IF :NEW.IDSEPARADOR IS NOT NULL THEN
            V_DESC := V_DESC || 'Utiliza Separador = ' || NVL(:NEW.IDSEPARADOR,'') || ' ';
         END IF;
         IF :NEW.IDCONFERENTE IS NOT NULL THEN
            V_DESC := V_DESC || 'Utiliza Conferente = ' || NVL(:NEW.IDCONFERENTE,'') || ' ';
         END IF;
         IF :NEW.CDTIPTRANS IS NOT NULL THEN
            V_DESC := V_DESC || 'Transportadora = ' || NVL(:NEW.CDTIPTRANS,'') || ' ';
         END IF;
         IF :NEW.IDTPIJURTRAN IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de inscricao= ' || NVL(:NEW.IDTPIJURTRAN,'') || ' ';
         END IF;
         IF :NEW.NRINSJURTRAN IS NOT NULL THEN
            V_DESC := V_DESC || ' Inscricao juridica = ' || NVL(:NEW.NRINSJURTRAN,'') || ' ';
         END IF;
         IF :NEW.VRPERLOTACAO IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. para aviso de lotacao = ' || NVL(:NEW.VRPERLOTACAO,'') || '% ';
         END IF;
         IF :NEW.IDCANCELAITEM IS NOT NULL THEN
            V_DESC := V_DESC || ' Cancela produtos s/ estoque = ' || NVL(:NEW.IDCANCELAITEM,'') || ' ';
         END IF;
         IF :NEW.IDCRTLVEICULO IS NOT NULL THEN
            V_DESC := V_DESC || ' Controle de veiculos = ' || NVL(:NEW.IDCRTLVEICULO,'') || ' ';
         END IF;
         IF :NEW.IDBLOQUEIAPESO IS NOT NULL THEN
            V_DESC := V_DESC || ' Bloqueia alteracao no peso = ' || NVL(:NEW.IDBLOQUEIAPESO,'') || ' ';
         END IF;
         IF :NEW.DSACREMISPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Emissao de produtos de perda = ' || NVL(:NEW.DSACREMISPERDA,'') || ' ';
         END IF;
         IF :NEW.IDENTSAIOPPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Operacao E/S para perda = ' || NVL(:NEW.IDENTSAIOPPERDA,'') || ' ';
         END IF;
         IF :NEW.IDENTSAIOPSOBRA IS NOT NULL THEN
            V_DESC := V_DESC || ' Operacao E/S para sobra = ' || NVL(:NEW.IDENTSAIOPSOBRA,'') || ' ';
         END IF;
         IF :NEW.CDTPOPERPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de operacao de perda = ' || NVL(:NEW.CDTPOPERPERDA,'') || ' ';
         END IF;
         IF :NEW.CDTPOPERSOBRA IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de operacao de sobra = ' || NVL(:NEW.CDTPOPERSOBRA,'') || ' ';
         END IF;
         IF :NEW.IDBLOQUOPTERC IS NOT NULL THEN
            V_DESC := V_DESC || ' Bloquear expedicao de terc. s/ OP = ' || NVL(:NEW.IDBLOQUOPTERC,'') || ' ';
         END IF;
         IF :NEW.IDUTILALMOXTERC IS NOT NULL THEN
            V_DESC := V_DESC || ' Expedicao de terc. utilizar estoque de terc. = ' || NVL(:NEW.IDUTILALMOXTERC,'') || ' ';
         END IF;
         IF :NEW.IDCOMISPERIODO IS NOT NULL THEN
            V_DESC := V_DESC || ' Comissao do vendedor por periodo = ' || NVL(:NEW.IDCOMISPERIODO,'') || ' ';
         END IF;
         IF :NEW.VRPERCOMEXP IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. de comissao na expedicao (EXP) = ' || NVL(:NEW.VRPERCOMEXP,'') || '% ';
         END IF;
         IF :NEW.VRPERCOMREC IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. de comissao na baixa (REC) = ' || NVL(:NEW.VRPERCOMREC,'') || '% ';
         END IF;
         IF :NEW.IDUTSEPPEDEXP IS NOT NULL THEN
            V_DESC := V_DESC || ' Ut. Sep. Exp. = ' || NVL(:NEW.IDUTSEPPEDEXP,'') || ' ';
         END IF;
         
         V_ITPESQ     := :NEW.CDFILIAL;
         V_IDTIPOOPER := '1';

   ELSE

      IF UPDATING THEN

         IF :NEW.CDFILIAL IS NOT NULL THEN
            V_DESC := V_DESC || 'Filial = ' || NVL(:NEW.CDFILIAL,'') || ' ';
         END IF;
         IF :NEW.IDPERADIEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Permissao para expedir qtde adicional = ' || NVL(:NEW.IDPERADIEXP,'') || ' ';
         END IF;
         IF :NEW.VRPEADIEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr adicional permitido = ' || NVL(:NEW.VRPEADIEXP,'') || '% ';
         END IF;
         IF :NEW.VRPELIQEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr. de replicacao do documento (NF) = ' || NVL(:NEW.VRPELIQEXP,'') || '% ';
         END IF;
         IF :NEW.IDGERAREPLIC IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera replicacao do documento (NF) = ' || NVL(:NEW.IDGERAREPLIC,'') || ' ';
         END IF;
         IF :NEW.IDRETPROEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Retirada de produtos do estoque = ' || NVL(:NEW.IDRETPROEXP,'') || ' ';
         END IF;
         IF :NEW.IDTPCADCLIEX IS NOT NULL THEN
            V_DESC := V_DESC || 'Tipo de cadastro de cliente = ' || NVL(:NEW.IDTPCADCLIEX,'') || ' ';
         END IF;
         IF :NEW.IDGERAFINANC IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera documentos aprovados = ' || NVL(:NEW.IDGERAFINANC,'') || ' ';
         END IF;
         IF :NEW.CDIMPOSTO IS NOT NULL THEN
            V_DESC := V_DESC || 'Imposto = ' || NVL(:NEW.CDIMPOSTO,'') || ' ';
         END IF;
         IF :NEW.IDCTRLVENEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Controle por vendedor = ' || NVL(:NEW.IDCTRLVENEXP,'') || ' ';
         END IF;
         IF :NEW.IDNFPEDIDO IS NOT NULL THEN
            V_DESC := V_DESC || 'Quebra de NFs por pedido = ' || NVL(:NEW.IDNFPEDIDO,'') || ' ';
         END IF;
         IF :NEW.IDCUSEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Custo na Expedicao = ' || NVL(:NEW.IDCUSEXP,'') || ' ';
         END IF;
         IF :NEW.IDGERPRODEST IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera NF com codigos de produtos de estoque = ' || NVL(:NEW.IDGERPRODEST,'') || ' ';
         END IF;
         IF :NEW.IDREPLITRANS IS NOT NULL THEN
            V_DESC := V_DESC || 'Replica transportadora = ' || NVL(:NEW.IDREPLITRANS,'') || ' ';
         END IF;
         IF :NEW.CDGROPERTROC IS NOT NULL THEN
            V_DESC := V_DESC || 'Grupo de Operadores para troca de produtos = ' || NVL(:NEW.CDGROPERTROC,'') || ' ';
         END IF;
         IF :NEW.IDEVOLESTTRO IS NOT NULL THEN
            V_DESC := V_DESC || 'Evolucao automatica de estoque = ' || NVL(:NEW.IDEVOLESTTRO,'') || ' ';
         END IF;
         IF :NEW.IDEXPQTDISP IS NOT NULL THEN
            V_DESC := V_DESC || 'Expedicao automatica para produtos c/ estoque = ' || NVL(:NEW.IDEXPQTDISP,'') || ' ';
         END IF;
         IF :NEW.CDTPCTPAGFRE IS NOT NULL THEN
            V_DESC := V_DESC || 'Tipo de conta para frete = ' || NVL(:NEW.CDTPCTPAGFRE,'') || ' ';
         END IF;
         IF :NEW.VRPECOGEREXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr. de comissao gerado = ' || NVL(:NEW.VRPECOGEREXP,'') || '% ';
         END IF;
         IF :NEW.DSCODIGOUTILIZA IS NOT NULL THEN
            V_DESC := V_DESC || 'Codigo de Utilizacao de Mapas = ' || NVL(:NEW.DSCODIGOUTILIZA,'') || ' ';
         END IF;
         IF :NEW.IDEXIDIAENTREGA IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Filtro de Dias de Entrega = ' || NVL(:NEW.IDEXIDIAENTREGA,'') || ' ';
         END IF;
         IF :NEW.IDEXITRANSPDIST IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Transportadora na Grade de Distribuicao = ' || NVL(:NEW.IDEXITRANSPDIST,'') || ' ';
         END IF;
         IF :NEW.IDEMPRESANFEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Empresa da Nota Fiscal = ' || NVL(:NEW.IDEMPRESANFEXP,'') || ' ';
         END IF;
         IF :NEW.IDSEPARADOR IS NOT NULL THEN
            V_DESC := V_DESC || 'Utiliza Separador = ' || NVL(:NEW.IDSEPARADOR,'') || ' ';
         END IF;
         IF :NEW.IDCONFERENTE IS NOT NULL THEN
            V_DESC := V_DESC || 'Utiliza Conferente = ' || NVL(:NEW.IDCONFERENTE,'') || ' ';
         END IF;
         IF :NEW.CDTIPTRANS IS NOT NULL THEN
            V_DESC := V_DESC || 'Transportadora = ' || NVL(:NEW.CDTIPTRANS,'') || ' ';
         END IF;
         IF :NEW.IDTPIJURTRAN IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de inscricao= ' || NVL(:NEW.IDTPIJURTRAN,'') || ' ';
         END IF;
         IF :NEW.NRINSJURTRAN IS NOT NULL THEN
            V_DESC := V_DESC || ' Inscricao juridica = ' || NVL(:NEW.NRINSJURTRAN,'') || ' ';
         END IF;
         IF :NEW.VRPERLOTACAO IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. para aviso de lotacao = ' || NVL(:NEW.VRPERLOTACAO,'') || '% ';
         END IF;
         IF :NEW.IDCANCELAITEM IS NOT NULL THEN
            V_DESC := V_DESC || ' Cancela produtos s/ estoque = ' || NVL(:NEW.IDCANCELAITEM,'') || ' ';
         END IF;
         IF :NEW.IDCRTLVEICULO IS NOT NULL THEN
            V_DESC := V_DESC || ' Controle de veiculos = ' || NVL(:NEW.IDCRTLVEICULO,'') || ' ';
         END IF;
         IF :NEW.IDBLOQUEIAPESO IS NOT NULL THEN
            V_DESC := V_DESC || ' Bloqueia alteracao no peso = ' || NVL(:NEW.IDBLOQUEIAPESO,'') || ' ';
         END IF;
         IF :NEW.DSACREMISPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Emissao de produtos de perda = ' || NVL(:NEW.DSACREMISPERDA,'') || ' ';
         END IF;
         IF :NEW.IDENTSAIOPPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Operacao E/S para perda = ' || NVL(:NEW.IDENTSAIOPPERDA,'') || ' ';
         END IF;
         IF :NEW.IDENTSAIOPSOBRA IS NOT NULL THEN
            V_DESC := V_DESC || ' Operacao E/S para sobra = ' || NVL(:NEW.IDENTSAIOPSOBRA,'') || ' ';
         END IF;
         IF :NEW.CDTPOPERPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de operacao de perda = ' || NVL(:NEW.CDTPOPERPERDA,'') || ' ';
         END IF;
         IF :NEW.CDTPOPERSOBRA IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de operacao de sobra = ' || NVL(:NEW.CDTPOPERSOBRA,'') || ' ';
         END IF;
         IF :NEW.IDBLOQUOPTERC IS NOT NULL THEN
            V_DESC := V_DESC || ' Bloquear expedicao de terc. s/ OP = ' || NVL(:NEW.IDBLOQUOPTERC,'') || ' ';
         END IF;
         IF :NEW.IDUTILALMOXTERC IS NOT NULL THEN
            V_DESC := V_DESC || ' Expedicao de terc. utilizar estoque de terc. = ' || NVL(:NEW.IDUTILALMOXTERC,'') || ' ';
         END IF;
         IF :NEW.IDCOMISPERIODO IS NOT NULL THEN
            V_DESC := V_DESC || ' Comissao do vendedor por periodo = ' || NVL(:NEW.IDCOMISPERIODO,'') || ' ';
         END IF;
         IF :NEW.VRPERCOMEXP IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. de comissao na expedicao (EXP) = ' || NVL(:NEW.VRPERCOMEXP,'') || '% ';
         END IF;
         IF :NEW.VRPERCOMREC IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. de comissao na baixa (REC) = ' || NVL(:NEW.VRPERCOMREC,'') || '% ';
         END IF;
         IF :NEW.IDUTSEPPEDEXP IS NOT NULL THEN
            V_DESC := V_DESC || ' Ut. Sep. Exp. = ' || NVL(:NEW.IDUTSEPPEDEXP,'') || ' ';
         END IF;

         V_ITPESQ     := :NEW.CDFILIAL;
         V_IDTIPOOPER := '2';

      END IF;

      IF DELETING  THEN

         IF :OLD.CDFILIAL IS NOT NULL THEN
            V_DESC := V_DESC || 'Filial = ' || NVL(:OLD.CDFILIAL,'') || ' ';
         END IF;
         IF :OLD.IDPERADIEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Permissao para expedir qtde adicional = ' || NVL(:OLD.IDPERADIEXP,'') || ' ';
         END IF;
         IF :OLD.VRPEADIEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr adicional permitido = ' || NVL(:OLD.VRPEADIEXP,'') || '% ';
         END IF;
         IF :OLD.VRPELIQEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr. de replicacao do documento (NF) = ' || NVL(:OLD.VRPELIQEXP,'') || '% ';
         END IF;
         IF :OLD.IDGERAREPLIC IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera replicacao do documento (NF) = ' || NVL(:OLD.IDGERAREPLIC,'') || ' ';
         END IF;
         IF :OLD.IDRETPROEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Retirada de produtos do estoque = ' || NVL(:OLD.IDRETPROEXP,'') || ' ';
         END IF;
         IF :OLD.IDTPCADCLIEX IS NOT NULL THEN
            V_DESC := V_DESC || 'Tipo de cadastro de cliente = ' || NVL(:OLD.IDTPCADCLIEX,'') || ' ';
         END IF;
         IF :OLD.IDGERAFINANC IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera documentos aprovados = ' || NVL(:OLD.IDGERAFINANC,'') || ' ';
         END IF;
         IF :OLD.CDIMPOSTO IS NOT NULL THEN
            V_DESC := V_DESC || 'Imposto = ' || NVL(:OLD.CDIMPOSTO,'') || ' ';
         END IF;
         IF :OLD.IDCTRLVENEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Controle por vendedor = ' || NVL(:OLD.IDCTRLVENEXP,'') || ' ';
         END IF;
         IF :OLD.IDNFPEDIDO IS NOT NULL THEN
            V_DESC := V_DESC || 'Quebra de NFs por pedido = ' || NVL(:OLD.IDNFPEDIDO,'') || ' ';
         END IF;
         IF :OLD.IDCUSEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Custo na Expedicao = ' || NVL(:OLD.IDCUSEXP,'') || ' ';
         END IF;
         IF :OLD.IDGERPRODEST IS NOT NULL THEN
            V_DESC := V_DESC || 'Gera NF com codigos de produtos de estoque = ' || NVL(:OLD.IDGERPRODEST,'') || ' ';
         END IF;
         IF :OLD.IDREPLITRANS IS NOT NULL THEN
            V_DESC := V_DESC || 'Replica transportadora = ' || NVL(:OLD.IDREPLITRANS,'') || ' ';
         END IF;
         IF :OLD.CDGROPERTROC IS NOT NULL THEN
            V_DESC := V_DESC || 'Grupo de Operadores para troca de produtos = ' || NVL(:OLD.CDGROPERTROC,'') || ' ';
         END IF;
         IF :OLD.IDEVOLESTTRO IS NOT NULL THEN
            V_DESC := V_DESC || 'Evolucao automatica de estoque = ' || NVL(:OLD.IDEVOLESTTRO,'') || ' ';
         END IF;
         IF :OLD.IDEXPQTDISP IS NOT NULL THEN
            V_DESC := V_DESC || 'Expedicao automatica para produtos c/ estoque = ' || NVL(:OLD.IDEXPQTDISP,'') || ' ';
         END IF;
         IF :OLD.CDTPCTPAGFRE IS NOT NULL THEN
            V_DESC := V_DESC || 'Tipo de conta para frete = ' || NVL(:OLD.CDTPCTPAGFRE,'') || ' ';
         END IF;
         IF :OLD.VRPECOGEREXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Vr. de comissao gerado = ' || NVL(:OLD.VRPECOGEREXP,'') || '% ';
         END IF;
         IF :OLD.DSCODIGOUTILIZA IS NOT NULL THEN
            V_DESC := V_DESC || 'Codigo de Utilizacao de Mapas = ' || NVL(:OLD.DSCODIGOUTILIZA,'') || ' ';
         END IF;
         IF :OLD.IDEXIDIAENTREGA IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Filtro de Dias de Entrega = ' || NVL(:OLD.IDEXIDIAENTREGA,'') || ' ';
         END IF;
         IF :OLD.IDEXITRANSPDIST IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Transportadora na Grade de Distribuicao = ' || NVL(:OLD.IDEXITRANSPDIST,'') || ' ';
         END IF;
         IF :OLD.IDEMPRESANFEXP IS NOT NULL THEN
            V_DESC := V_DESC || 'Exibe Empresa da Nota Fiscal = ' || NVL(:OLD.IDEMPRESANFEXP,'') || ' ';
         END IF;
         IF :OLD.IDSEPARADOR IS NOT NULL THEN
            V_DESC := V_DESC || 'Utiliza Separador = ' || NVL(:OLD.IDSEPARADOR,'') || ' ';
         END IF;
         IF :OLD.IDCONFERENTE IS NOT NULL THEN
            V_DESC := V_DESC || 'Utiliza Conferente = ' || NVL(:OLD.IDCONFERENTE,'') || ' ';
         END IF;
         IF :OLD.CDTIPTRANS IS NOT NULL THEN
            V_DESC := V_DESC || 'Transportadora = ' || NVL(:OLD.CDTIPTRANS,'') || ' ';
         END IF;
         IF :OLD.IDTPIJURTRAN IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de inscricao= ' || NVL(:OLD.IDTPIJURTRAN,'') || ' ';
         END IF;
         IF :OLD.NRINSJURTRAN IS NOT NULL THEN
            V_DESC := V_DESC || ' Inscricao juridica = ' || NVL(:OLD.NRINSJURTRAN,'') || ' ';
         END IF;
         IF :OLD.VRPERLOTACAO IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. para aviso de lotacao = ' || NVL(:OLD.VRPERLOTACAO,'') || '% ';
         END IF;
         IF :OLD.IDCANCELAITEM IS NOT NULL THEN
            V_DESC := V_DESC || ' Cancela produtos s/ estoque = ' || NVL(:OLD.IDCANCELAITEM,'') || ' ';
         END IF;
         IF :OLD.IDCRTLVEICULO IS NOT NULL THEN
            V_DESC := V_DESC || ' Controle de veiculos = ' || NVL(:OLD.IDCRTLVEICULO,'') || ' ';
         END IF;
         IF :OLD.IDBLOQUEIAPESO IS NOT NULL THEN
            V_DESC := V_DESC || ' Bloqueia alteracao no peso = ' || NVL(:OLD.IDBLOQUEIAPESO,'') || ' ';
         END IF;
         IF :OLD.DSACREMISPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Emissao de produtos de perda = ' || NVL(:OLD.DSACREMISPERDA,'') || ' ';
         END IF;
         IF :OLD.IDENTSAIOPPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Operacao E/S para perda = ' || NVL(:OLD.IDENTSAIOPPERDA,'') || ' ';
         END IF;
         IF :OLD.IDENTSAIOPSOBRA IS NOT NULL THEN
            V_DESC := V_DESC || ' Operacao E/S para sobra = ' || NVL(:OLD.IDENTSAIOPSOBRA,'') || ' ';
         END IF;
         IF :OLD.CDTPOPERPERDA IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de operacao de perda = ' || NVL(:OLD.CDTPOPERPERDA,'') || ' ';
         END IF;
         IF :OLD.CDTPOPERSOBRA IS NOT NULL THEN
            V_DESC := V_DESC || ' Tipo de operacao de sobra = ' || NVL(:OLD.CDTPOPERSOBRA,'') || ' ';
         END IF;
         IF :OLD.IDBLOQUOPTERC IS NOT NULL THEN
            V_DESC := V_DESC || ' Bloquear expedicao de terc. s/ OP = ' || NVL(:OLD.IDBLOQUOPTERC,'') || ' ';
         END IF;
         IF :OLD.IDUTILALMOXTERC IS NOT NULL THEN
            V_DESC := V_DESC || ' Expedicao de terc. utilizar estoque de terc. = ' || NVL(:OLD.IDUTILALMOXTERC,'') || ' ';
         END IF;
         IF :OLD.IDCOMISPERIODO IS NOT NULL THEN
            V_DESC := V_DESC || ' Comissao do vendedor por periodo = ' || NVL(:OLD.IDCOMISPERIODO,'') || ' ';
         END IF;
         IF :OLD.VRPERCOMEXP IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. de comissao na expedicao (EXP) = ' || NVL(:OLD.VRPERCOMEXP,'') || '% ';
         END IF;
         IF :OLD.VRPERCOMREC IS NOT NULL THEN
            V_DESC := V_DESC || ' Vr. de comissao na baixa (REC) = ' || NVL(:OLD.VRPERCOMREC,'') || '% ';
         END IF;
         IF :OLD.IDUTSEPPEDEXP IS NOT NULL THEN
            V_DESC := V_DESC || ' Ut. Sep. Exp. = ' || NVL(:OLD.IDUTSEPPEDEXP,'') || ' ';
         END IF;

         V_ITPESQ     := :OLD.CDFILIAL;
         V_IDTIPOOPER := '3';

      END IF;
   END IF;

   IF NOT (V_DESC IS NULL) THEN

      V_LENGTH := LENGTH(V_DESC);

      WHILE V_LENGTH >= V_CONT_LENGTH LOOP

         V_GRAV_DESC := SUBSTR(V_DESC, V_CONT_LENGTH, 300);
         V_CONT_LENGTH := V_CONT_LENGTH + 300;

         INSERT INTO LOGOPERA ( NMTABELA,     DTOPERACAO,   NMRESPOPER,
                                IDTIPOOPER,   DSOPERACAO,   CDPESQITEM,
                                DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER,
                                DSMETUSUOPER, CDORESPOPER,  CDFILLOGOPER)
                       VALUES  ('PAREXPEDICAO', SYSDATE,    NVL(V_NMOPERADOR,' '),
                                V_IDTIPOOPER,   V_GRAV_DESC,    V_ITPESQ,
                                V_DSSERVERRDM,  V_DSREMOTEADDR, V_DSREMOTEHOST,
                                V_DSSERVMETHOD, V_DSREMOTEOPER, V_CDFILLOGOPER);

      END LOOP;
   END IF;
END;