create or replace PROCEDURE GRAVA_INCONSPEDIDO (
       P_CDFILIAL     IN  ITEMPEDIDO.CDFILIAL%TYPE,
       P_NRPEDIDO     IN  ITEMPEDIDO.NRPEDIDO%TYPE,
       P_NRITEMPED    IN  ITEMPEDIDO.NRITEMPED%TYPE,
       P_CDCONSPEDIDO IN  INCONSPEDIDO.CDCONSPEDIDO%TYPE,
       P_IDCONSLIBERADA IN  INCONSPEDIDO.IDCONSLIBERADA%TYPE)
IS
   V_NRINCONSPED   NUMBER;
   V_CTINCONS      NUMBER;
   V_CTCONSLIB     NUMBER;
   V_IDCONSLIBERADA INCONSPEDIDO.IDCONSLIBERADA%TYPE;
   
BEGIN
    SELECT NVL(MAX(NRINCONSPED), 0) + 1 INTO V_NRINCONSPED
    FROM INCONSPEDIDO
    WHERE CDFILIAL = P_CDFILIAL
       AND NRPEDIDO = P_NRPEDIDO;
    BEGIN  
       SELECT IDCONSLIBERADA
         INTO V_IDCONSLIBERADA
        FROM INCONSPEDIDO 
        WHERE CDFILIAL = P_CDFILIAL AND 
              NRPEDIDO =  P_NRPEDIDO AND 
              NRITEMPED = P_NRITEMPED AND
              CDCONSPEDIDO = P_CDCONSPEDIDO;
      EXCEPTION
          WHEN NO_DATA_FOUND THEN
             V_IDCONSLIBERADA := 'N';
      END;
      IF ( V_IDCONSLIBERADA <> 'S') THEN
           INSERT INTO INCONSPEDIDO
              (CDFILIAL, NRPEDIDO, NRINCONSPED, NRITEMPED, CDCONSPEDIDO,IDCONSLIBERADA)
           VALUES
              (P_CDFILIAL, P_NRPEDIDO, LPAD(TO_CHAR(V_NRINCONSPED), 3, '0'), P_NRITEMPED, P_CDCONSPEDIDO, P_IDCONSLIBERADA);
              
              
          UPDATE ITEMPEDIDO
            SET IDCONSITEM = 'N'
          WHERE CDFILIAL  = P_CDFILIAL
            AND NRPEDIDO  = P_NRPEDIDO
            AND NRITEMPED = P_NRITEMPED;
      END IF;
END;
/
