create or replace PROCEDURE GERENCIA_SERIALSNCM (
        P_CDFILIAL                 IN ORDPRODUCAO.CDFILIAL%TYPE,
        P_NRORDPROD         IN ORDPRODUCAO.NRORDPROD%TYPE,
        P_NRSUBORDPROD  IN ORDPRODUCAO.NRSUBORDPROD%TYPE,
        P_CDPRODUTO         IN ORDPRODUCAO.CDPRODUTO%TYPE ,
        P_NRLOTEESTQ         IN ORDPRODUCAO.NRLOTEESTQ%TYPE,
        P_NRSUBLOTE           IN ORDPRODUCAO.NRSUBLOTE%TYPE)
IS
     V_PARAMETROS   VARCHAR2(100);
     V_JOB                    NUMBER; 
     V_COUNT              NUMBER;
     BEGIN
         
         SELECT COUNT(*)
          INTO V_COUNT
          FROM ORDPRODSNCM
        WHERE CDFILIAL        = P_CDFILIAL               AND 
              NRORDPROD        = P_NRORDPROD        AND 
              NRSUBORDPROD = P_NRSUBORDPROD AND
              CDPRODUTO         = P_CDPRODUTO        AND 
              NRLOTEESTQ        = P_NRLOTEESTQ        AND
              NRSUBLOTE          = P_NRSUBLOTE;
              
        IF V_COUNT = 0 THEN
        
            INSERT INTO ORDPRODSNCM(
                CDFILIAL,CDPRODUTO,NRORDPROD,NRSUBORDPROD,NRLOTEESTQ, NRSUBLOTE
            ) VALUES(
                P_CDFILIAL, P_CDPRODUTO, P_NRORDPROD, P_NRSUBORDPROD,P_NRLOTEESTQ,P_NRSUBLOTE);
      END IF;
          
        
         FOR C_ORDPRODSNCM IN(
            SELECT  CDFILIAL, NRORDPROD, NRSUBORDPROD,
                          CDPRODUTO, NRLOTEESTQ,  NRSUBLOTE
              FROM ORDPRODSNCM
            WHERE CDFILIAL                = P_CDFILIAL                AND 
                          NRORDPROD        = P_NRORDPROD         AND 
                          NRSUBORDPROD = P_NRSUBORDPROD
         )LOOP
        
            V_PARAMETROS :=''||C_ORDPRODSNCM.CDFILIAL|| ''',''' ||C_ORDPRODSNCM.NRORDPROD|| ''',''' || C_ORDPRODSNCM.NRSUBORDPROD ||''','''||C_ORDPRODSNCM.NRLOTEESTQ||'';
            DBMS_JOB.SUBMIT(V_JOB, WHAT => 'BEGIN INSERE_SERIALSNCM( '''|| V_PARAMETROS||''')  ; END;');
          
    END LOOP;  

END;
/