CREATE OR REPLACE TRIGGER LOG_SIT_PRODUTOINT    
AFTER UPDATE
ON SIT_PRODUTOINT FOR EACH ROW
DECLARE
  V_CHAVE       VARCHAR2(80);
  V_TIPO        VARCHAR2(1);
  V_OLD_IDATIVO VARCHAR2(3);    
  V_NEW_IDATIVO VARCHAR2(3); 
  V_IDREVISAO   VARCHAR2(3);   
  V_DESC        VARCHAR2(700);
BEGIN  
  /*DTOPERACAO = DTULTATU -- Data de Alteração
  NMRESPOPER = CDOPERULTATU -- Operador de Alteração
  CDPESQITEM = <NRORGINT><NRREMESSA><CDPRODUTOINT>
  IDTIPOOPER = 2 --1 - INSERÇÃO; 2 - ATUALIZAÇÃO; 3 - EXCLUSÃO
  DSOPERACAO = Peso= <:OLD.QTPESOINT>|<:NEW.QTPESOINT>; Contém nutriente: <:OLD.IDATIVO>|<:NEW.IDATIVO>; Observação= <:OLD.DSOBSINT>; Produto Teknisa= <:OLD.CDPRODUTO>|<:NEW.CDPRODUTO>; Data Recebimento= <OLD.DTRECEBIMENTO>; Data Liberação= <OLD.DTLIBERACAO>|<NEW.DTLIBERACAO>; Data Envio= <:OLD.DTENVIO>|<:NEW.DTENVIO>
  */
  V_CHAVE := LPAD(:OLD.NRORGINT, 10, '0') || LPAD(:OLD.NRREMESSA, 10, '0') || :OLD.CDPRODUTOINT;
  V_TIPO := '2';
  V_DESC := '';
  
  IF (NVL(:OLD.QTPESOINT, -1) <> NVL(:NEW.QTPESOINT, -1)) THEN
    V_DESC := V_DESC || 'Peso= ' || :OLD.QTPESOINT || ' | ' || :NEW.QTPESOINT || '; ';
  END IF;
  
  IF (:OLD.IDATIVO = 'N') THEN
    V_OLD_IDATIVO := 'Nao';
  ELSE 
    V_OLD_IDATIVO := 'Sim';
  END IF;
  
  IF (:NEW.IDATIVO = 'N') THEN
    V_NEW_IDATIVO := 'Nao';
  ELSE 
    V_NEW_IDATIVO := 'Sim';
  END IF;
  
  IF (NVL(:OLD.IDATIVO, '-') <> NVL(:NEW.IDATIVO, '-')) THEN
    V_DESC := V_DESC || 'Contem nutriente: ' || V_OLD_IDATIVO || '|' || V_NEW_IDATIVO || '; ';
  END IF;
  
  IF (NVL(:NEW.CDPRODUTO, '-') <> NVL(:OLD.CDPRODUTO, '-')) THEN
    V_DESC := V_DESC || 'Produto Teknisa= ' || :OLD.CDPRODUTO || ' | ' || :NEW.CDPRODUTO || '; ';
  END IF;
  
  IF (NVL(:OLD.DTLIBERACAO, '01/01/1990') <> NVL(:NEW.DTLIBERACAO, '01/01/1990')) THEN
    V_DESC := V_DESC || 'Data Liberacao= ' || :OLD.DTLIBERACAO || ' | ' || :NEW.DTLIBERACAO || '; ';
  END IF;
  
  IF (NVL(:OLD.DTENVIO, '01/01/1990') <> NVL(:NEW.DTENVIO, '01/01/1990')) THEN
    V_DESC := V_DESC || 'Data Envio= ' || :OLD.DTENVIO || ' | ' || :NEW.DTENVIO || '; ';
  END IF;
  
  IF (:NEW.IDREVISAO = 'N') THEN
    V_IDREVISAO := 'Nao';
  ELSE 
    V_IDREVISAO := 'Sim';
  END IF;
  
  V_DESC := V_DESC || 'Enviado para revisao: ' || V_IDREVISAO || ' ';

  INSERT INTO LOGOPERA
	(NMTABELA, DTOPERACAO, NMRESPOPER, IDTIPOOPER, CDPESQITEM, DSOPERACAO, DTULTATU, NRORG)
  VALUES
	('SIT_PRODUTOINT', :NEW.DTULTATU, :NEW.CDOPERULTATU, V_TIPO, V_CHAVE, V_DESC, SYSDATE, :OLD.NRORG);
END;
/
-- VERSAO --
BEGIN ATUVEROBJ('LOG_NUTRPROD','6.25.xxx'); END;
/