CREATE OR REPLACE TRIGGER LOF_FIN_BANCO
AFTER DELETE OR INSERT OR UPDATE
ON BANCO FOR EACH ROW
DECLARE
  V_USUARIO      VARCHAR2(40);
  V_TIPO         VARCHAR2(1);
  V_ITPESQ       VARCHAR2(40);
  V_DESC         VARCHAR2(300);
  V_CDFILLOGOPER VARCHAR2(4);
  V_DTOPER       DATE;
  V_DSREMOTEADDR VARCHAR2(15);
  V_DSREMOTEHOST VARCHAR2(15);
  V_DSSERVERRDM  VARCHAR2(20);
  V_DSSERVMETHOD VARCHAR2(30);
  V_DSREMOTEOPER VARCHAR2(12);
BEGIN
   V_TIPO         := '0';
   V_CDFILLOGOPER := '';
   IF DELETING THEN
         V_TIPO := '3';

         V_DESC := ' Banco CNAB ' || TO_CHAR(:OLD.CDBANCCNAB)                     ||
                   ' Banco Conv.' || TO_CHAR(:OLD.CDBANCOCONV)                    ||
                   ' Dir.DDA '    || :OLD.DSDIRIMPARQDDA                          ||
                   ' Email DDA '  || :OLD.DSEMAILDDA;
    
         V_ITPESQ       := :OLD.CDBANCO;
   ELSE    
		IF UPDATING THEN
			V_ITPESQ       := :OLD.CDBANCO;
			V_TIPO := '2';		
		ELSE
			V_TIPO         := '1';
			V_ITPESQ       := :NEW.CDBANCO;
		END IF;
		
			V_DESC := ' Banco CNAB '  || :NEW.CDBANCCNAB     ||
						 ' Banco Conv.'  || :NEW.CDBANCOCONV    ||
						 ' Dir.DDA '     || :NEW.DSDIRIMPARQDDA ||
						 ' Email DDA '   || :NEW.DSEMAILDDA;						
	
   END IF;

   IF V_TIPO <> '0' THEN
      NMUSUARIO(V_USUARIO);
      WEBTUNNING(V_DSREMOTEADDR,
                 V_DSREMOTEHOST,
                 V_DSSERVERRDM,
                 V_DSSERVMETHOD,
                 V_DSREMOTEOPER);
      IF NOT V_DESC IS NULL THEN
         IF NOT V_USUARIO IS NULL THEN
            V_DTOPER := SYSDATE;

            INSERT INTO LOGOPERA
               (NMTABELA,     DTOPERACAO,   NMRESPOPER,
                IDTIPOOPER,   CDPESQITEM,   DSOPERACAO,
                DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER,  
					 DSMETUSUOPER, CDORESPOPER)
            VALUES
               ('BANCO',   V_DTOPER,       V_USUARIO,
                V_TIPO,         V_ITPESQ,       V_DESC,
                V_DSSERVERRDM,  V_DSREMOTEADDR,V_DSREMOTEHOST, 
					 V_DSSERVMETHOD, V_DSREMOTEOPER);
         END IF;
      END IF;
   END IF;
END;
/

