create or replace PROCEDURE ENVIA_ITEM_PESAGEM
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_NMPRODUTO            PRODUTO.NMPRODUTO%TYPE;
V_CDARVPROD            PRODUTO.CDARVPROD%TYPE;
V_QTVOLPESAGEM         PRODUTO.QTVOLPESAGEM%TYPE;
V_VRTOLINF             PRODUTO.VRTOLINF%TYPE;
V_VRTOLSUP             PRODUTO.VRTOLSUP%TYPE;
V_VRTARA               PRODUTO.VRTARA%TYPE; 
V_QTPESOMIN            PRODUTO.QTPESOMIN%TYPE;
V_QTPESOMAX            PRODUTO.QTPESOMAX%TYPE;
V_IDTIPOPESO           PRODUTO.IDTIPOPESO%TYPE;
V_CDEAN13              INFADICPROD.CDEANPROD%TYPE;
V_CDDUN14              INFADICPROD.CDDUNPROD%TYPE;
V_DSTELEFONE           INFADICPROD.DSTELEFONE%TYPE;
V_DSFRASEPERIGO        INFADICPROD.DSFRASEPERIGO%TYPE;
V_DSCOMPOSICAO         INFADICPROD.DSCOMPOSICAO%TYPE;
V_DSOBSCONSERVACAO     INFADICPROD.DSOBSCONSERVACAO%TYPE;
V_DSPREPARACAO         INFADICPROD.DSPREPARACAO%TYPE;
V_DTINTEGRACAO         DATE;
V_IDINTEGRACAO         CHAR; 
V_DSFORMATODATA        VARCHAR2(10);
V_CDDESTINOFINAL       NUMBER;
V_IDTIPOVALIDADE       NUMBER; 
V_QTDIASVALIDADE       NUMBER; 
V_IDATIVO              NUMBER;
V_IDTPSEPARADOR        NUMBER;
V_QTNUMERODEC          FLOAT;
 
V_VRREFDIETAKCAL       FLOAT;
V_QTCALORIAS           FLOAT;
V_QTCALORIASVXD        FLOAT;
V_QTCARBOIDRATOS       FLOAT;
V_QTCARBOIDRATOSVXD    FLOAT;
V_QTPROTEINAS          FLOAT;
V_QTPROTEINASVXD       FLOAT;
V_QTGORDTOTAIS         FLOAT;
V_QTGORDTOTAISVXD      FLOAT;
V_QTGORDSATURADAS      FLOAT;
V_QTGORDSATURADASVXD   FLOAT;
V_QTGORDMONOSAT        FLOAT;
V_QTGORDMONOSATVXD     FLOAT;
V_QTGORDURASTRANS      FLOAT;
V_QTCOLESTEROL         FLOAT;
V_QTCOLESTEROLVXD      FLOAT;
V_QTFIBRA              FLOAT;
V_QTFIBRAVXD           FLOAT;
V_QTCALCIO             FLOAT;
V_QTCALCIOVXD          FLOAT;
V_QTFERRO              FLOAT; 
V_QTFERROVXD           FLOAT;
V_QTSODIO              FLOAT;
V_QTSODIOVXD           FLOAT; 
V_QTGORDPOLIINSAT      FLOAT; 
V_QTGORDPOLIINSATVXD   FLOAT;
V_IDUNIDMEDIMPRES      FLOAT;
V_IDMODELOBALANCA      VARCHAR2(3);
V_QTPESONOMINAL        FLOAT;

CURSOR C_ITEM IS 
SELECT PE.CDEXPORTEMPR, 
       F.CDEMPRESA, 
       F.CDFILIAL, 
       PF.CDEXFILIAL,
       PR.CDPRODINTE,
       PR.CDPRODUTO,
       SUBSTR(PR.NMPRODUTO,0,28) AS NMPRODUTO,       
       2 AS CDDESTINOFINAL,       
       CASE WHEN PR.IDDIASVALIDA = 'D' THEN 0 ELSE 1 END AS IDTIPOVALIDADE,
       PR.NRDIASVALIDA AS QTDIASVALIDADE,
       PR.VRTARA,
       QTVOLPESAGEM,
       IDTIPOPESO,       
       PR.QTPESOMIN AS QTPESOMIN,
       PR.QTPESOMAX AS QTPESOMAX,
       PR.QTPESONOMINAL AS QTPESONOMINAL,
       PR.VRTOLINF,
       PR.VRTOLSUP,
       INF.CDEANPROD AS CDEAN13,
       INF.CDDUNPROD AS CDDUN14,
       CASE WHEN PRF.IDPRODATIV = 'A' THEN 1 ELSE 2 END AS IDATIVO,
       '' AS IDINTEGRACAO,
       '' AS DTINTEGRACAO,
       1 AS IDUNIDMEDIMPRES,
       TO_NUMBER(PIMP.IDTPSEPARADOR) AS IDTPSEPARADOR,
       PIMP.QTNUMERODEC,
       PIMP.DSFORMDATA AS DSFORMATODATA,
       INF.VRREFDIETAKCAL,
       CAL.QTNUTRPROD AS QTCALORIAS,
       CAL.VRPERCENTUALVD AS QTCALORIASVXD,
       CARBO.QTNUTRPROD AS QTCARBOIDRATOS,
       CARBO.VRPERCENTUALVD AS QTCARBOIDRATOSVXD,
       PROT.QTNUTRPROD AS QTPROTEINAS,
       PROT.VRPERCENTUALVD AS QTPROTEINASVXD,
       GORDTOT.QTNUTRPROD AS QTGORDTOTAIS,
       GORDTOT.VRPERCENTUALVD AS QTGORDTOTAISVXD,
       GORDSAT.QTNUTRPROD AS QTGORDSATURADAS,
       GORDSAT.VRPERCENTUALVD AS QTGORDSATURADASVXD,
       GORDMON.QTNUTRPROD AS QTGORDMONOSAT,
       GORDMON.VRPERCENTUALVD AS QTGORDMONOSATVXD,
       GORDTRANS.QTNUTRPROD AS QTGORDURASTRANS,
       COLESTEROL.QTNUTRPROD AS QTCOLESTEROL,
       COLESTEROL.VRPERCENTUALVD AS QTCOLESTEROLVXD,
       FIBRA.QTNUTRPROD AS QTFIBRA,
       FIBRA.VRPERCENTUALVD AS QTFIBRAVXD,
       CALCIO.QTNUTRPROD AS QTCALCIO,
       CALCIO.VRPERCENTUALVD AS QTCALCIOVXD,
       FERRO.QTNUTRPROD AS QTFERRO,
       FERRO.VRPERCENTUALVD AS QTFERROVXD,
       SODIO.QTNUTRPROD AS QTSODIO,
       SODIO.VRPERCENTUALVD AS QTSODIOVXD,
       GORDPOL.QTNUTRPROD AS QTGORDPOLIINSAT,
       GORDPOL.VRPERCENTUALVD AS QTGORDPOLIINSATVXD,
       INF.DSTELEFONE,
       INF.DSFRASEPERIGO,
       INF.DSCOMPOSICAO,
       INF.DSOBSCONSERVACAO,
       PR.CDARVPROD,
       INF.DSPREPARACAO
  FROM PRODFILI PRF
 INNER JOIN PRODUTO PR
    ON PRF.CDPRODUTO = PR.CDPRODUTO
 INNER JOIN PARAMFILIAL PF
    ON PRF.CDFILIAL = PF.CDFILIAL
 INNER JOIN FILIAL F
    ON PF.CDFILIAL = F.CDFILIAL
 INNER JOIN PARAMEMPRESA PE
    ON F.CDEMPRESA = PE.CDEMPRESA
 INNER JOIN INFADICPROD INF
    ON PR.CDPRODUTO = INF.CDPRODUTO
 INNER JOIN PARAMIMPEST PIMP
    ON F.CDFILIAL = PIMP.CDFILPARIMPEST
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%QUILOCALORIA%') CAL    
    ON PRF.CDPRODUTO = CAL.CDPRODUTO                
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%CARBOIDRATO%') CARBO
    ON PRF.CDPRODUTO = CARBO.CDPRODUTO                 
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%PROTEINA%') PROT                
    ON PRF.CDPRODUTO = PROT.CDPRODUTO    
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%GORDURA%TOTAL%') GORDTOT                
    ON PRF.CDPRODUTO = GORDTOT.CDPRODUTO   
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%GORDURA%SATURADA%') GORDSAT    
    ON PRF.CDPRODUTO = GORDSAT.CDPRODUTO                 
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%GORDURA%MONOINSATURA%') GORDMON                     
    ON PRF.CDPRODUTO = GORDMON.CDPRODUTO    
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%GORDURA%TRANS%') GORDTRANS                     
    ON PRF.CDPRODUTO = GORDTRANS.CDPRODUTO    
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%COLESTEROL%') COLESTEROL                     
    ON PRF.CDPRODUTO = COLESTEROL.CDPRODUTO    
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%FIBRA%') FIBRA                     
    ON PRF.CDPRODUTO = FIBRA.CDPRODUTO   
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%CALCIO%') CALCIO                     
    ON PRF.CDPRODUTO = CALCIO.CDPRODUTO
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%FERRO%') FERRO                     
    ON PRF.CDPRODUTO = FERRO.CDPRODUTO     
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%SODIO%') SODIO                     
    ON PRF.CDPRODUTO = SODIO.CDPRODUTO    
  LEFT JOIN (SELECT NP.CDPRODUTO, NP.QTNUTRPROD,round((((NP.QTNUTRPROD * NVL(DECODE(N.VRFATORNUTR, 0, 1,N.VRFATORNUTR) ,1))/NVL(N.VRLIMDIARIONT,1))*100),0) VRPERCENTUALVD
               FROM NUTRIENTE N, NUTRPROD NP
              WHERE N.CDNUTRIENTE = NP.CDNUTRIENTE
                AND UPPER(N.NMNUTRIENTE) LIKE '%GORDURA%POLINSATURAD%') GORDPOL                     
    ON PRF.CDPRODUTO = GORDPOL.CDPRODUTO     
 WHERE PRF.IDUTILPESAGEM = 'S'
   AND PRF.IDCNTRESTOQ = 'S';

BEGIN
   DELETE USR_ITEM;

   OPEN C_ITEM;
   LOOP
      FETCH C_ITEM INTO V_CDEXPORTEMPR, 
                        V_CDEMPRESA, 
                        V_CDFILIAL, 
                        V_CDEXFILIAL, 
                        V_CDPRODINTE, 
                        V_CDPRODUTO, 
                        V_NMPRODUTO, 
                        V_CDDESTINOFINAL, 
                        V_IDTIPOVALIDADE, 
                        V_QTDIASVALIDADE, 
                        V_VRTARA, 
                        V_QTVOLPESAGEM, 
                        V_IDTIPOPESO, 
                        V_QTPESOMIN, 
                        V_QTPESOMAX, 
                        V_QTPESONOMINAL, 
                        V_VRTOLINF, 
                        V_VRTOLSUP, 
                        V_CDEAN13, 
                        V_CDDUN14, 
                        V_IDATIVO, 
                        V_IDINTEGRACAO, 
                        V_DTINTEGRACAO, 
                        V_IDUNIDMEDIMPRES, 
                        V_IDTPSEPARADOR, 
                        V_QTNUMERODEC, 
                        V_DSFORMATODATA, 
                        V_VRREFDIETAKCAL, 
                        V_QTCALORIAS, 
                        V_QTCALORIASVXD, 
                        V_QTCARBOIDRATOS, 
                        V_QTCARBOIDRATOSVXD, 
                        V_QTPROTEINAS, 
                        V_QTPROTEINASVXD, 
                        V_QTGORDTOTAIS, 
                        V_QTGORDTOTAISVXD, 
                        V_QTGORDSATURADAS, 
                        V_QTGORDSATURADASVXD, 
                        V_QTGORDMONOSAT, 
                        V_QTGORDMONOSATVXD, 
                        V_QTGORDURASTRANS, 
                        V_QTCOLESTEROL, 
                        V_QTCOLESTEROLVXD, 
                        V_QTFIBRA, 
                        V_QTFIBRAVXD, 
                        V_QTCALCIO, 
                        V_QTCALCIOVXD, 
                        V_QTFERRO, 
                        V_QTFERROVXD, 
                        V_QTSODIO, 
                        V_QTSODIOVXD, 
                        V_QTGORDPOLIINSAT, 
                        V_QTGORDPOLIINSATVXD, 
                        V_DSTELEFONE, 
                        V_DSFRASEPERIGO, 
                        V_DSCOMPOSICAO, 
                        V_DSOBSCONSERVACAO, 
                        V_CDARVPROD, 
                        V_DSPREPARACAO;
                                             
      EXIT WHEN C_ITEM%NOTFOUND; 

            INSERT INTO USR_ITEM(CDEXPORTEMPR, CDEMPRESA, CDFILIAL, CDEXFILIAL, CDPRODINTE, CDPRODUTO, NMPRODUTO, CDDESTINOFINAL, IDTIPOVALIDADE, QTDIASVALIDADE, 
                                 VRTARA, QTVOLPESAGEM, IDTIPOPESO, QTPESOMIN, QTPESOMAX, QTPESONOMINAL, VRTOLINF, VRTOLSUP, CDEAN13, CDDUN14, IDPRODATIV, IDINTEGRACAO, 
                                 DTINTEGRACAO, IDUNIDMEDIMPRES, IDTPSEPARADOR, QTNUMERODEC, DSFORMATODATA, VRREFDIETAKCAL, QTCALORIAS, QTCALORIASVXD, QTCARBOIDRATOS, 
                                 QTCARBOIDRATOSVXD, QTPROTEINAS, QTPROTEINASVXD, QTGORDTOTAIS, QTGORDTOTAISVXD, QTGORDSATURADAS, QTGORDSATURADASVXD, QTGORDMONOSAT, 
                                 QTGORDMONOSATVXD, QTGORDURASTRANS, QTCOLESTEROL, QTCOLESTEROLVXD, QTFIBRA, QTFIBRAVXD, QTCALCIO, QTCALCIOVXD, QTFERRO, QTFERROVXD, 
                                 QTSODIO, QTSODIOVXD, QTGORDPOLIINSAT, QTGORDPOLIINSATVXD, DSTELEFONE, DSFRASEPERIGO, DSCOMPOSICAO, DSOBSCONSERVACAO, CDARVPROD, 
                                 DSPREPARACAO)

            VALUES(V_CDEXPORTEMPR, 
                   V_CDEMPRESA, 
                   V_CDFILIAL, 
                   V_CDEXFILIAL, 
                   V_CDPRODINTE, 
                   V_CDPRODUTO, 
                   V_NMPRODUTO, 
                   V_CDDESTINOFINAL, 
                   V_IDTIPOVALIDADE, 
                   V_QTDIASVALIDADE, 
                   V_VRTARA, 
                   V_QTVOLPESAGEM, 
                   V_IDTIPOPESO, 
                   V_QTPESOMIN, 
                   V_QTPESOMAX, 
                   V_QTPESONOMINAL, 
                   V_VRTOLINF, 
                   V_VRTOLSUP, 
                   V_CDEAN13, 
                   V_CDDUN14, 
                   V_IDATIVO, 
                   V_IDINTEGRACAO, 
                   V_DTINTEGRACAO, 
                   V_IDUNIDMEDIMPRES, 
                   V_IDTPSEPARADOR, 
                   V_QTNUMERODEC, 
                   V_DSFORMATODATA, 
                   V_VRREFDIETAKCAL, 
                   V_QTCALORIAS, 
                   V_QTCALORIASVXD, 
                   V_QTCARBOIDRATOS, 
                   V_QTCARBOIDRATOSVXD, 
                   V_QTPROTEINAS, 
                   V_QTPROTEINASVXD, 
                   V_QTGORDTOTAIS, 
                   V_QTGORDTOTAISVXD, 
                   V_QTGORDSATURADAS, 
                   V_QTGORDSATURADASVXD, 
                   V_QTGORDMONOSAT, 
                   V_QTGORDMONOSATVXD, 
                   V_QTGORDURASTRANS, 
                   V_QTCOLESTEROL, 
                   V_QTCOLESTEROLVXD, 
                   V_QTFIBRA, 
                   V_QTFIBRAVXD, 
                   V_QTCALCIO, 
                   V_QTCALCIOVXD, 
                   V_QTFERRO, 
                   V_QTFERROVXD, 
                   V_QTSODIO, 
                   V_QTSODIOVXD, 
                   V_QTGORDPOLIINSAT, 
                   V_QTGORDPOLIINSATVXD, 
                   V_DSTELEFONE, 
                   V_DSFRASEPERIGO, 
                   V_DSCOMPOSICAO, 
                   V_DSOBSCONSERVACAO, 
                   V_CDARVPROD, 
                   V_DSPREPARACAO);

           COMMIT;

   END LOOP;

   BEGIN 
      SELECT IDMODELOBALANCA
        INTO V_IDMODELOBALANCA
        FROM PARAMAN;
   EXCEPTION
      WHEN OTHERS THEN
            V_IDMODELOBALANCA := 'XXX';
   END;

   CASE WHEN V_IDMODELOBALANCA = '99' THEN LNK_USR_ITEM; --MODELO DE INTEGRACAO LENKE PROPACK
        ELSE V_IDMODELOBALANCA := 'XXX'; 
   END CASE;

   COMMIT;

END;
/
-- VERSAO --
BEGIN ATUVEROBJ('ENVIA_ITEM_PESAGEM','6.29.XXX'); END;
/