create or replace PROCEDURE LNK_USR_ORDPRODUCAO
IS
V_CDEXPORTEMPR         PARAMEMPRESA.CDEXPORTEMPR%TYPE;
V_CDEMPRESA            FILIAL.CDEMPRESA%TYPE;
V_CDFILIAL             FILIAL.CDFILIAL%TYPE;
V_CDEXFILIAL           PARAMFILIAL.CDEXFILIAL%TYPE;
V_CDPRODINTE           PRODUTO.CDPRODINTE%TYPE;
V_CDPRODUTO            PRODUTO.CDPRODUTO%TYPE;
V_NRORDPROD            ORDPRODUCAO.NRORDPROD%TYPE;
V_NRSUBORDPROD         ORDPRODUCAO.NRSUBORDPROD%TYPE;
V_DTGERORDPROD         ORDPRODUCAO.DTGERORDPROD%TYPE;
V_QTAPRODPREOP         ORDPRODUCAO.QTAPRODPREOP%TYPE;
V_DTPREVISTA           ORDPRODUCAO.DTHRFIMPREOP%TYPE;
V_IDSITORDPROD         ORDPRODUCAO.IDSITORDPROD%TYPE;
V_NRSEQENTRADA         FLOAT;
V_NRSEQSAIDA           FLOAT;
V_IDTIPOPLANEJ         FLOAT;
V_NRSEMANA             FLOAT;
V_IDALTERADO           FLOAT;
V_DTINTEGRACAO         DATE;
V_NRLOTEESTQ           VARCHAR2(20);
V_NRSUBLOTE            VARCHAR2(4);
V_JAEXISTE             NUMBER;

V_COMANDO              VARCHAR2(5000);

CURSOR C_ORDPRODUCAO IS 
SELECT CDEXPORTEMPR, CDEMPRESA, CDFILIAL, CDEXFILIAL, CDPRODINTE, CDPRODUTO, NRORDPROD, NRSUBORDPROD, DTGERORDPROD, QTAPRODPREOP, DTPREVISTA, 
       NRSEQENTRADA, NRSEQSAIDA, IDSITORDPROD, IDTIPOPLANEJ, NRSEMANA, IDALTERADO, DTINTEGRACAO, NRLOTEESTQ, NRSUBLOTE
  FROM USR_ORDPRODUCAO;

BEGIN
   OPEN C_ORDPRODUCAO;
   LOOP
      FETCH C_ORDPRODUCAO INTO V_CDEXPORTEMPR, V_CDEMPRESA, V_CDFILIAL, V_CDEXFILIAL, V_CDPRODINTE, V_CDPRODUTO, V_NRORDPROD, V_NRSUBORDPROD, V_DTGERORDPROD, 
                               V_QTAPRODPREOP, V_DTPREVISTA, V_NRSEQENTRADA, V_NRSEQSAIDA, V_IDSITORDPROD, V_IDTIPOPLANEJ, V_NRSEMANA, V_IDALTERADO, 
                               V_DTINTEGRACAO, V_NRLOTEESTQ, V_NRSUBLOTE;
      EXIT WHEN C_ORDPRODUCAO%NOTFOUND; 
      
           V_COMANDO := NULL;
           V_COMANDO := 'BEGIN SELECT COUNT(1) INTO '||V_JAEXISTE||' FROM LENKE.MBS_ORDEM_PRODUCAO@DB_LK_PROD WHERE NR_OP = LTRIM (V_NRORDPROD, 0)||'||CHR(39)||V_NRSUBORDPROD||CHR(39)||'; EXCEPTION WHEN OTHERS THEN '||V_JAEXISTE||' := 0; END';                
           EXECUTE IMMEDIATE V_COMANDO;
               
            IF V_JAEXISTE = 0 THEN
            
               V_COMANDO := NULL;
               V_COMANDO := 'INSERT INTO LENKE.MBS_ORDEM_PRODUCAO@DB_LK_PROD(CD_EMPRESA, CD_FILIAL, CD_ITEM, NR_OP, DT_CRIACAO, 
                                              QT_PRODUZIR, DT_PREVISTA, NR_SEQ_ENTRADA, NR_SEQ_SAIDA, ID_SITUACAO, ID_TIPO_PLANEJAMENTO, NR_SEMANA, ID_ALTERADO, 
                                              CD_LOTE)

               VALUES('||CHR(39)||V_CDEXPORTEMPR                         ||CHR(39)||',' 
                       ||CHR(39)||V_CDEXFILIAL                           ||CHR(39)||',' 
                       ||CHR(39)||V_CDPRODINTE                           ||CHR(39)||','  
                       ||CHR(39)||LTRIM (V_NRORDPROD, 0)||V_NRSUBORDPROD ||CHR(39)||',' 
                       ||CHR(39)||V_DTGERORDPROD                         ||CHR(39)||',' 
                                ||V_QTAPRODPREOP                         ||         ',' 
                       ||CHR(39)||V_DTPREVISTA                           ||CHR(39)||',' 
                       ||CHR(39)||V_NRSEQENTRADA                         ||CHR(39)||','
                       ||CHR(39)||V_NRSEQSAIDA                           ||CHR(39)||',' 
                       ||CHR(39)||V_IDSITORDPROD                         ||CHR(39)||',' 
                       ||CHR(39)||V_IDTIPOPLANEJ                         ||CHR(39)||',' 
                       ||CHR(39)||V_NRSEMANA                             ||CHR(39)||','  
                       ||CHR(39)||V_IDALTERADO                           ||CHR(39)||',' 
                       ||CHR(39)||V_NRLOTEESTQ                           ||CHR(39)||')';
                       
               EXECUTE IMMEDIATE V_COMANDO;

              COMMIT; 
           
           END IF;

   END LOOP;
   
   COMMIT;   

END;
/