create or replace PROCEDURE LNK_RECEBE_APONTAMENTO
IS
V_CDEMPRESA     FILIAL.CDEMPRESA%TYPE; 
V_CDFILIAL      FILIAL.CDFILIAL%TYPE; 
V_CDPRODUTO     PRODUTO.CDPRODUTO%TYPE; 
V_NRORDPROD     ORDPRODUCAO.NRORDPROD%TYPE; 
V_NRSUBORDPROD  ORDPRODUCAO.NRSUBORDPROD%TYPE; 
V_NRSEQHIST     HISTPESOPROD.NRSEQHIST%TYPE;
V_QTEMBALAGEM   HISTPESOPROD.QTEMBALAGEM%TYPE;
V_QTPESOBRUTO   HISTPESOPROD.QTPESOBRUTO%TYPE;
V_QTPESOLIQ     HISTPESOPROD.QTPESOLIQ%TYPE; 
V_DTFABRICACAO  HISTPESOPROD.DTFABRICACAO%TYPE;
V_DTVALIDADE    HISTPESOPROD.DTVALIDADE%TYPE;
V_CDSUBPRODETA  HISTPESOPROD.CDSUBPRODETA%TYPE;
V_NRSUBPRETAOP  HISTPESOPROD.NRSUBPRETAOP%TYPE;
V_VRMEDIA       HISTPESOPROD.VRMEDIA%TYPE;
V_NRPRODACAB    HISTPESOPROD.NRPRODACAB%TYPE;
V_VRTARAEXT     HISTPESOPROD.VRTARAEXT%TYPE;
V_DSLOGOPERACAO HISTPESOPROD.DSLOGOPERACAO%TYPE;
V_CDOPERADOR    OPERADOR.CDOPERADOR%TYPE;
V_CDEXFILIAL    PARAMFILIAL.CDEXFILIAL%TYPE;
V_NRAPONTAMENTO NUMBER; 
V_CDITEM        NUMBER;
V_NROPENTRADA   NUMBER;
v_erro          varchar2(20);

TYPE CURTYPE        IS REF CURSOR;
CUR_APONTAMENTO     CURTYPE;
V_QUERY_APONTAMENTO VARCHAR2(5000);
V_COMANDO           VARCHAR2(5000);

BEGIN

   V_QUERY_APONTAMENTO := 'SELECT PE.CDEMPRESA, PF.CDFILIAL, PR.CDPRODUTO, LPAD(SUBSTR(NR_OP_ENTRADA,0,5), 10, '||CHR(39)||'0'||CHR(39)||') AS NRORDPROD, SUBSTR(NR_OP_ENTRADA,6) AS NRSUBORDPROD, LPAD(NR_APONTAMENTO,3,'||CHR(39)||'0'||CHR(39)||') AS NRSEQHIST, 
                                  QT_VOLUME AS QTEMBALAGEM, (QT_PESO_BALANCA+QT_TARA) AS QTPESOBRUTO, (QT_PESO_BALANCA) AS QTPESOLIQ, DT_APONTAMENTO AS DTFABRICACAO, DT_VALIDADE AS DTVALIDADE, 
                                  PA.CDSUBPRODETA, PA.NRSUBPRETAOP, (QT_PESO_BALANCA)/QT_VOLUME AS VRMEDIA, PA.NRPRODACAB,
                                  (SELECT CDOPERADOR FROM OPERADOR WHERE NMOPERADOR = '||CHR(39)||'INTEGRACAO'||CHR(39)||')AS CDOPERADOR,
                                  '||CHR(39)||'PESAGEM EXTERNA - INTEGRACAO TEKNISA_LENKE_PROPACK'||CHR(39)||' AS DSLOGOPERACAO, 
                                  CD_FILIAL, NR_APONTAMENTO, CD_ITEM, NR_OP_ENTRADA, QT_TARA AS VRTARAEXT
                             FROM MBS_APONTAMENTO MBS_A
                            INNER JOIN PARAMEMPRESA PE
                               ON MBS_A.CD_EMPRESA = PE.CDEXPORTEMPR
                            INNER JOIN PARAMFILIAL PF
                               ON MBS_A.CD_FILIAL = PF.CDEXFILIAL
                            INNER JOIN PRODUTO PR
                               ON MBS_A.CD_ITEM = PR.CDPRODINTE
                            INNER JOIN PRODACABADO PA
                               ON PF.CDFILIAL = PA.CDFILIAL
                              AND LPAD(SUBSTR(MBS_A.NR_OP_ENTRADA,0,5), 10, '||CHR(39)||'0'||CHR(39)||') = PA.NRORDPROD 
                              AND SUBSTR(MBS_A.NR_OP_ENTRADA,6) = PA.NRSUBORDPROD
                            WHERE MBS_A.ID_INTEGRACAO = '||CHR(39)||'P'||CHR(39);


   OPEN CUR_APONTAMENTO FOR V_QUERY_APONTAMENTO;
   LOOP
      FETCH CUR_APONTAMENTO INTO V_CDEMPRESA, V_CDFILIAL, V_CDPRODUTO, V_NRORDPROD, V_NRSUBORDPROD, V_NRSEQHIST, V_QTEMBALAGEM, V_QTPESOBRUTO, 
                                 V_QTPESOLIQ, V_DTFABRICACAO, V_DTVALIDADE, V_CDSUBPRODETA, V_NRSUBPRETAOP, V_VRMEDIA, V_NRPRODACAB, V_CDOPERADOR,
                                 V_DSLOGOPERACAO, V_CDEXFILIAL, V_NRAPONTAMENTO, V_CDITEM, V_NROPENTRADA, V_VRTARAEXT;
      EXIT WHEN CUR_APONTAMENTO%NOTFOUND; 

            INSERT INTO USR_HISTPESOPROD(CDFILIAL, CDPRODUTO, NRORDPROD, NRSUBORDPROD, NRSEQHIST, QTEMBALAGEM, QTPESOBRUTO, 
                                         QTPESOLIQ, DTFABRICACAO, DTVALIDADE, CDSUBPRODETA, NRSUBPRETAOP, VRMEDIA, NRPRODACAB, CDOPERADOR,
                                         DSLOGOPERACAO, VRTARAEXT, IDINTEGRACAO, DTINTEGRACAO)

            VALUES(V_CDFILIAL, V_CDPRODUTO, V_NRORDPROD, V_NRSUBORDPROD, V_NRSEQHIST, V_QTEMBALAGEM, V_QTPESOBRUTO, 
                   V_QTPESOLIQ, V_DTFABRICACAO, V_DTVALIDADE, V_CDSUBPRODETA, V_NRSUBPRETAOP, V_VRMEDIA, V_NRPRODACAB, V_CDOPERADOR,
                   V_DSLOGOPERACAO, V_VRTARAEXT, 'APONTADO',SYSDATE);

          --LENKE.MBS_APONTAMENTO@DB_LK_PROD MBS_A
          V_COMANDO := NULL;
          V_COMANDO := 'UPDATE MBS_APONTAMENTO
                           SET ID_INTEGRACAO  = '||CHR(39)||'I'            ||CHR(39)||',
                               DT_INTEGRACAO  = SYSDATE
                         WHERE CD_FILIAL      = '||CHR(39)||V_CDEXFILIAL   ||CHR(39)||'
                           AND NR_OP_ENTRADA  = '||CHR(39)||V_NROPENTRADA  ||CHR(39)||'
                           AND CD_ITEM        = '||CHR(39)||V_CDITEM       ||CHR(39)||'
                           AND NR_APONTAMENTO = '||CHR(39)||V_NRAPONTAMENTO||CHR(39);
          
          EXECUTE IMMEDIATE V_COMANDO;

   END LOOP; 
   CLOSE CUR_APONTAMENTO;   

END;
/
-- VERSAO --
BEGIN ATUVEROBJ('LNK_RECEBE_APONTAMENTO','6.39.005'); END;
/
