/* Sistemas Integrados TECNISA
   Compras e Suprimentos

Nome: ACEITA_PEDCOTWEB

Descrição:
Realiza a gravação final do pedido de cotação preenchido pelos fornecedores
através do site de ecommerce, realizando ao mesmo tempo consistências nos
dados informados:

IdMotNGerPedWeb - Identificador do motivo do n�o aceite.

IdMotNGerPedWeb [1] = '1' Fornecedor inativo
IdMotNGerPedWeb [2] = '1' Qualificação de fornecedor
IdMotNGerPedWeb [3] = '1' Fornecedor não atende a região
IdMotNGerPedWeb [4] = '1' Produto não cadastrado para o fornecedor
IdMotNGerPedWeb [5] = '1' Qualificação de produto por fornecedor
IdMotNGerPedWeb [6] = '1' Qualificação de marca por produto
IdMotNGerPedWeb [7] = '1' Marca não ativa para o pedido de coleta

Criação:
27/05/2008 - Newton N. Santos

PARAMETROS:
@C:\WEB_501\SQL\END_CONV\ORACLE\8336_SUPSTPO_ACEITA_PEDCOTWEB.SQL
*/

CREATE OR REPLACE
PROCEDURE ACEITA_PEDCOTWEB
   (P_CDFILIAL     IN FILIAL.CDFILIAL%TYPE,
    P_NRPEDIDOCOL  IN PEDCOLGERAL.NRPEDIDOCOL%TYPE,
    P_IDCONSISTE   IN VARCHAR2,
    P_IDACEITEOK   OUT VARCHAR2)
IS

   V_CDFILIAL          PEDCOLGERAL.CDFILIAL%TYPE;
   V_CDFORNECED        FORNEPEDCOL.CDFORNECED%TYPE;
   V_CDREGIAO          REGIAOPEDCOL.CDREGIAO%TYPE;
   V_DTPEDCOLGERAL     PEDCOLGERAL.DTPEDCOLGERAL%TYPE;
   V_DTFINPERGERAL     PEDCOLGERAL.DTFINPERGERAL%TYPE;
   V_CDPRODUTO         PRMARCPEDCOL.CDPRODUTO%TYPE;
   V_CDARVPROD         PRODUTO.CDARVPROD%TYPE;
   V_CDMARCA           PRMARCPEDCOL.CDMARCA%TYPE;
   V_IDMARCAATIVA      MARCA.IDMARCAATIVA%TYPE;
   V_VRPRECUNIPRMARC   PRMARCPEDCOL.VRPRECUNIPRMARC%TYPE;
   V_IDSITUCADA        FORNECEDOR.IDSITUCADA%TYPE;
   V_CDQUALIF          FORNECEDOR.CDQUALIF%TYPE;
   V_IDFORNAUTO        FORNECEDOR.IDFORNAUTO%TYPE;
   V_DTVALQUALIF       FORNECEDOR.DTVALQUALIF%TYPE;

   V_COUNT             INT;
   V_COUNTAUX          INT;
   
   V_ERRO_FORN_INAT    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_FORN_QUAL    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_FORN_REG     LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_PROD_FORN    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_PROD_QUAL    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_MARC_QUAL    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_MARC_INAT    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;
   V_ERRO_MARC_NINF    LOGNGERAPEDWEB.IDMOTNGERPEDWEB%TYPE;

   CURSOR C_FORNREGPEDCOL IS
      SELECT PEDCOLGERAL.CDFILIAL,
             PEDCOLGERAL.DTFINPERGERAL,
             FORNECEDOR.CDFORNECED,
             FORNECEDOR.IDSITUCADA,
             FORNECEDOR.CDQUALIF,
             FORNECEDOR.IDFORNAUTO,
             FORNECEDOR.DTVALQUALIF
        FROM PEDCOLGERAL INNER JOIN FORNEPEDCOL ON PEDCOLGERAL.CDFILIAL = FORNEPEDCOL.CDFILIAL
                                               AND PEDCOLGERAL.NRPEDIDOCOL = FORNEPEDCOL.NRPEDIDOCOL
                         INNER JOIN FORNECEDOR ON FORNEPEDCOL.CDFORNECED = FORNECEDOR.CDFORNECED                      
       WHERE PEDCOLGERAL.CDFILIAL    = P_CDFILIAL    
         AND PEDCOLGERAL.NRPEDIDOCOL = P_NRPEDIDOCOL;
         
   CURSOR C_REGIAOPEDCOL IS
      SELECT REGIAOPEDCOL.CDREGIAO
        FROM PEDCOLETA INNER JOIN REGIAOPEDCOL ON PEDCOLETA.CDFILIAL = REGIAOPEDCOL.CDFILIAL
                                              AND PEDCOLETA.NRPEDIDOCOL = REGIAOPEDCOL.NRPEDIDOCOL
                                              AND PEDCOLETA.CDREGIAO = REGIAOPEDCOL.CDREGIAO
       WHERE PEDCOLETA.CDFILIAL    = P_CDFILIAL    
         AND PEDCOLETA.NRPEDIDOCOL = P_NRPEDIDOCOL  
         AND PEDCOLETA.CDFORNECED  = V_CDFORNECED;

   CURSOR C_PRMARCPEDCOL IS
      SELECT PEDCOLGERAL.CDFILIAL,
             PEDCOLGERAL.DTPEDCOLGERAL,
             PRMARCPEDCOL.CDPRODUTO,
             PRODUTO.CDARVPROD,
             PRMARCPEDCOL.CDMARCA,
             PRMARCPEDCOL.VRPRECUNIPRMARC,
             MARCA.IDMARCAATIVA
        FROM PEDCOLGERAL INNER JOIN PRMARCPEDCOL ON PEDCOLGERAL.CDFILIAL = PRMARCPEDCOL.CDFILIAL
                                                AND PEDCOLGERAL.NRPEDIDOCOL = PRMARCPEDCOL.NRPEDIDOCOL
                         INNER JOIN FORNEPEDCOL ON PEDCOLGERAL.CDFILIAL = FORNEPEDCOL.CDFILIAL    
                                               AND PEDCOLGERAL.NRPEDIDOCOL = FORNEPEDCOL.NRPEDIDOCOL                        
                         INNER JOIN PRODUTO ON PRMARCPEDCOL.CDPRODUTO = PRODUTO.CDPRODUTO
                         INNER JOIN MARCA ON PRMARCPEDCOL.CDMARCA = MARCA.CDMARCA
       WHERE PEDCOLGERAL.CDFILIAL    = P_CDFILIAL
         AND PEDCOLGERAL.NRPEDIDOCOL = P_NRPEDIDOCOL
         AND FORNEPEDCOL.CDFORNECED  = V_CDFORNECED
         AND PRMARCPEDCOL.VRPRECUNIPRMARC > 0;
         
   PROCEDURE INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   IN VARCHAR2,
                                   P_CDFORNECED IN FORNECEDOR.CDFORNECED%TYPE DEFAULT NULL,
                                   P_CDREGIAO   IN REGIAO.CDREGIAO%TYPE DEFAULT NULL,
                                   P_CDPRODUTO  IN PRODUTO.CDPRODUTO%TYPE DEFAULT NULL,
                                   P_CDMARCA    IN MARCA.CDMARCA%TYPE DEFAULT NULL) IS
   BEGIN
      INSERT INTO LOGNGERAPEDWEB(
         CDFILNGERPEDWEB,
         NRPEDNGERPEDWEB,
         CDFORNGERPEDWEB,
         CDREGNGERPEDWEB,
         CDPRNGERPEDWEB,
         CDMARNGERPEDWEB,
         IDMOTNGERPEDWEB)
      VALUES(
         P_CDFILIAL,
         P_NRPEDIDOCOL,
         P_CDFORNECED,
         P_CDREGIAO,
         P_CDPRODUTO,
         P_CDMARCA,
         P_DSMOTIVO);
   END;
   
BEGIN
   P_IDACEITEOK := 'OK';

   V_ERRO_FORN_INAT := '1000000000';
   V_ERRO_FORN_QUAL := '0100000000';
   V_ERRO_FORN_REG  := '0010000000';
   V_ERRO_PROD_FORN := '0001000000';
   V_ERRO_PROD_QUAL := '0000100000';
   V_ERRO_MARC_QUAL := '0000010000';
   V_ERRO_MARC_INAT := '0000001000';
   V_ERRO_MARC_NINF := '0000000100';

   /* ---------------------------------------------------------------------- */
   /* Limpa a tabela que registra o log de inconsist�ncias antes de realizar */
   /* novo processo de aceite do pedido de cota��o.                          */

   DELETE FROM LOGNGERAPEDWEB
   WHERE CDFILNGERPEDWEB = P_CDFILIAL
     AND NRPEDNGERPEDWEB = P_NRPEDIDOCOL;

   /* ---------------------------------------------------------------------- */

   OPEN C_FORNREGPEDCOL;
   LOOP
      FETCH C_FORNREGPEDCOL INTO V_CDFILIAL, V_DTFINPERGERAL, V_CDFORNECED,
                                 V_IDSITUCADA, V_CDQUALIF, V_IDFORNAUTO, V_DTVALQUALIF;
      EXIT WHEN C_FORNREGPEDCOL%NOTFOUND;

      /* IdMotNGerPedWeb [1] = '1' Fornecedor inativo */
      IF V_IDSITUCADA = 'I' THEN

         IF P_IDCONSISTE = 'S' THEN
            P_IDACEITEOK := 'ERRO';
            
            INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_FORN_INAT,
                                  P_CDFORNECED => V_CDFORNECED,
                                  P_CDREGIAO   => NULL,
                                  P_CDPRODUTO  => NULL,
                                  P_CDMARCA    => NULL);
         ELSE
            DELETE FROM PEDCOLETA
            WHERE
               CDFILIAL    = P_CDFILIAL     AND
               NRPEDIDOCOL = P_NRPEDIDOCOL  AND
               CDFORNECED  = V_CDFORNECED;
         END IF;
      END IF;

      /* IdMotNGerPedWeb [2] = '1' Qualifica��o de fornecedor */
      SELECT COUNT(1)
        INTO V_COUNT
        FROM QUALIFICACAO,
             PARASUPRI
       WHERE QUALIFICACAO.CDQUALIF = V_CDQUALIF
         AND PARASUPRI.CDFILIAL    = V_CDFILIAL
         AND V_IDFORNAUTO          = 'N'
         AND ((QUALIFICACAO.IDPERCOTCMP = '2') OR
              ((PARASUPRI.IDULTIDTVALQ = 'D' AND V_DTFINPERGERAL > V_DTVALQUALIF) OR
               (PARASUPRI.IDULTIDTVALQ = 'M' AND V_DTFINPERGERAL > LAST_DAY(V_DTVALQUALIF))));

      IF V_COUNT <> 0 THEN
         IF P_IDCONSISTE = 'S' THEN
            P_IDACEITEOK := 'ERRO';
            
            INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_FORN_QUAL,
                                  P_CDFORNECED => V_CDFORNECED,
                                  P_CDREGIAO   => NULL,
                                  P_CDPRODUTO  => NULL,
                                  P_CDMARCA    => NULL);
         ELSE
            DELETE FROM PEDCOLETA
            WHERE
               CDFILIAL    = P_CDFILIAL     AND
               NRPEDIDOCOL = P_NRPEDIDOCOL  AND
               CDFORNECED  = V_CDFORNECED;
         END IF;
      END IF;
      
      OPEN C_REGIAOPEDCOL;
      LOOP
         FETCH C_REGIAOPEDCOL INTO V_CDREGIAO;
         EXIT WHEN C_REGIAOPEDCOL%NOTFOUND;

         /* IdMotNGerPedWeb [3] = '1' Fornecedor n�o atende � regi�o */
         SELECT COUNT(1)
           INTO V_COUNT
           FROM REFOREG
          WHERE REFOREG.CDREGIAO = V_CDREGIAO
            AND REFOREG.CDFORNECED = V_CDFORNECED;

         IF V_COUNT <> 0 THEN
            IF P_IDCONSISTE = 'S' THEN
               P_IDACEITEOK := 'ERRO';
               
               INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_FORN_REG,
                                     P_CDFORNECED => V_CDFORNECED,
                                     P_CDREGIAO   => V_CDREGIAO,
                                     P_CDPRODUTO  => NULL,
                                     P_CDMARCA    => NULL);
            ELSE
               DELETE FROM PEDCOLETA
               WHERE
                  CDFILIAL    = P_CDFILIAL     AND
                  NRPEDIDOCOL = P_NRPEDIDOCOL  AND
                  CDFORNECED  = V_CDFORNECED   AND
                  CDREGIAO    = V_CDREGIAO;
            END IF;
         END IF;
      END LOOP;
      CLOSE C_REGIAOPEDCOL;

      OPEN C_PRMARCPEDCOL;
      LOOP
         FETCH C_PRMARCPEDCOL INTO V_CDFILIAL, V_DTPEDCOLGERAL, V_CDPRODUTO,
                                   V_CDARVPROD, V_CDMARCA, V_VRPRECUNIPRMARC, V_IDMARCAATIVA;
         EXIT WHEN C_PRMARCPEDCOL%NOTFOUND;

         /* IdMotNGerPedWeb [4] = '1' Produto n�o cadastrado para o fornecedor */
         SELECT COUNT(1)
           INTO V_COUNT
           FROM PRODFORN INNER JOIN PRODUTO ON PRODFORN.CDPRODUTO = PRODUTO.CDPRODUTO
          WHERE PRODFORN.CDFORNECED = V_CDFORNECED
            AND V_CDARVPROD LIKE PRODUTO.CDARVPROD||'%';
   
         IF V_COUNT = 0 THEN
            IF P_IDCONSISTE = 'S' THEN
               
               P_IDACEITEOK := 'ERRO';
               INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_PROD_FORN,
                                     P_CDFORNECED => V_CDFORNECED,
                                     P_CDREGIAO   => NULL,
                                     P_CDPRODUTO  => V_CDPRODUTO,
                                     P_CDMARCA    => NULL);
            ELSE
               DELETE FROM ITEMPEDCOL
               WHERE
                  CDFILIAL    = P_CDFILIAL     AND
                  CDFORNECED  = V_CDFORNECED   AND
                  CDPRODUTO   = V_CDPRODUTO    AND
                  NRPEDCOLETA IN (SELECT NRPEDCOLETA
                                  FROM PEDCOLETA
                                  WHERE
                                    CDFILIAL    = P_CDFILIAL AND
                                    NRPEDIDOCOL = P_NRPEDIDOCOL);
            END IF;
         END IF;
   
         /* IdMotNGerPedWeb [5] = '1' Qualifica��o de produto por fornecedor */
         SELECT
            COUNT(*)
         INTO
            V_COUNT
         FROM
            QFOPRODFORN,
            PARASUPRI
         WHERE
            (PARASUPRI.CDFILIAL     = V_CDFILIAL)   AND
            (QFOPRODFORN.CDPRODUTO  = V_CDPRODUTO)  AND
            (QFOPRODFORN.CDFORNECED = V_CDFORNECED) AND
            ((QFOPRODFORN.IDFORNAPROV = 'N'    AND QFOPRODFORN.IDFORNAUTOR = 'N') OR
             ((QFOPRODFORN.IDFORNAPROV = 'S')  AND
                ((PARASUPRI.IDULTIDTVALQ = 'M' AND
                  V_DTPEDCOLGERAL > LAST_DAY(QFOPRODFORN.DTVALPRFORN)) OR
                 (PARASUPRI.IDULTIDTVALQ = 'D' AND
                  V_DTPEDCOLGERAL > QFOPRODFORN.DTVALPRFORN)) ) );
   
         IF V_COUNT <> 0 THEN
            IF P_IDCONSISTE = 'S' THEN

               P_IDACEITEOK := 'ERRO';
               INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_PROD_QUAL,
                                     P_CDFORNECED => V_CDFORNECED,
                                     P_CDREGIAO   => NULL,
                                     P_CDPRODUTO  => V_CDPRODUTO,
                                     P_CDMARCA    => NULL);
            ELSE
               DELETE FROM ITEMPEDCOL
               WHERE
                  CDFILIAL    = P_CDFILIAL     AND
                  CDFORNECED  = V_CDFORNECED   AND
                  CDPRODUTO   = V_CDPRODUTO    AND
                  NRPEDCOLETA IN (SELECT NRPEDCOLETA
                                  FROM PEDCOLETA
                                  WHERE
                                    CDFILIAL    = P_CDFILIAL AND
                                    NRPEDIDOCOL = P_NRPEDIDOCOL);
            END IF;
         END IF;

         /* IdMotNGerPedWeb [6] = '1' Qualifica��o de marca por produto */
         SELECT
            COUNT(*)
         INTO
            V_COUNT
         FROM
           QFOMARPROD,
           PARASUPRI
         WHERE
          (PARASUPRI.CDFILIAL   = V_CDFILIAL)  AND
          (QFOMARPROD.CDPRODUTO = V_CDPRODUTO) AND
          (QFOMARPROD.CDMARCA   = V_CDMARCA)   AND
          ((QFOMARPROD.IDAPRMARPRO = 'N' AND QFOMARPROD.IDAUTMARPRO = 'N') OR
           ((QFOMARPROD.IDAPRMARPRO = 'S') AND
              ((PARASUPRI.IDULTIDTVALQ = 'M' AND
                V_DTPEDCOLGERAL > LAST_DAY(QFOMARPROD.DTVALAPROVA)) OR
               (PARASUPRI.IDULTIDTVALQ = 'D' AND
                V_DTPEDCOLGERAL > QFOMARPROD.DTVALAPROVA))));

         SELECT
            COUNT(*)
         INTO
            V_COUNTAUX
         FROM
            (SELECT
               QFOMARPROD.CDMARCA
             FROM
               QFOMARPROD
             WHERE
               QFOMARPROD.CDPRODUTO = V_CDPRODUTO AND
               QFOMARPROD.CDMARCA   = V_CDMARCA
   
             UNION
   
             SELECT
               PARASUPRI.CDMARCA
             FROM
               PARASUPRI
             WHERE
               PARASUPRI.CDFILIAL     = V_CDFILIAL AND
               (PARASUPRI.IDMARSEMQUA = 'N' OR PARASUPRI.IDMARSEMQUA IS NULL));

         IF NOT((V_COUNT = 0) AND (V_COUNTAUX <> 0)) THEN
   
            IF P_IDCONSISTE = 'S' THEN
   
               P_IDACEITEOK := 'ERRO';
               
               INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_MARC_QUAL,
                                     P_CDFORNECED => NULL,
                                     P_CDREGIAO   => NULL,
                                     P_CDPRODUTO  => V_CDPRODUTO,
                                     P_CDMARCA    => V_CDMARCA);
            ELSE
               UPDATE PRMARCPEDCOL
               SET VRPRECUNIPRMARC = 0
               WHERE
                  CDFILIAL    = P_CDFILIAL    AND
                  NRPEDIDOCOL = P_NRPEDIDOCOL AND
                  CDPRODUTO   = V_CDPRODUTO   AND
                  CDMARCA     = V_CDMARCA;
   
               DELETE FROM ITEMPEDCOL
               WHERE
                  CDFILIAL  = P_CDFILIAL  AND
                  CDPRODUTO = V_CDPRODUTO AND
                  CDMARCA   = V_CDMARCA   AND
                  NRPEDCOLETA IN (SELECT NRPEDCOLETA
                                  FROM PEDCOLETA
                                  WHERE
                                    CDFILIAL    = P_CDFILIAL AND
                                    NRPEDIDOCOL = P_NRPEDIDOCOL);
            END IF;
         END IF;

         /* IdMotNGerPedWeb [7] = '1' Marca n�o ativa para o pedido de coleta */
         IF V_IDMARCAATIVA != 'A' THEN
         
   
            IF P_IDCONSISTE = 'S' THEN
   
               P_IDACEITEOK := 'ERRO';
               BEGIN
                  SELECT CDMARNGERPEDWEB
                    INTO V_CDMARCA
                    FROM LOGNGERAPEDWEB
                   WHERE CDFILNGERPEDWEB = P_CDFILIAL
                     AND NRPEDNGERPEDWEB = P_NRPEDIDOCOL
                     AND CDMARNGERPEDWEB = V_CDMARCA;
               EXCEPTION
                  WHEN NO_DATA_FOUND THEN
                     INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_MARC_INAT,
                                           P_CDFORNECED => NULL,
                                           P_CDREGIAO   => NULL,
                                           P_CDPRODUTO  => NULL,
                                           P_CDMARCA    => V_CDMARCA);
               END;
            ELSE
               UPDATE PRMARCPEDCOL
                  SET VRPRECUNIPRMARC = 0
                WHERE CDFILIAL    = P_CDFILIAL    
                  AND NRPEDIDOCOL = P_NRPEDIDOCOL 
                  AND CDMARCA     = V_CDMARCA;
   
               DELETE FROM ITEMPEDCOL
               WHERE
                  CDFILIAL  = P_CDFILIAL  AND
                  CDMARCA   = V_CDMARCA   AND
                  NRPEDCOLETA IN (SELECT NRPEDCOLETA
                                  FROM PEDCOLETA
                                  WHERE
                                    CDFILIAL    = P_CDFILIAL AND
                                    NRPEDIDOCOL = P_NRPEDIDOCOL);
            END IF;
         END IF;

         /* IdMotNGerPedWeb [8] = '1' Pre�o n�o informado para marca */
         IF V_VRPRECUNIPRMARC IS NULL THEN
   
            IF P_IDCONSISTE = 'S' THEN
   
               P_IDACEITEOK := 'ERRO';
               
               INSERT_LOGNGERAPEDWEB(P_DSMOTIVO   => V_ERRO_MARC_NINF,
                                     P_CDFORNECED => NULL,
                                     P_CDREGIAO   => NULL,
                                     P_CDPRODUTO  => V_CDPRODUTO,
                                     P_CDMARCA    => V_CDMARCA);
            ELSE
               UPDATE PRMARCPEDCOL
               SET VRPRECUNIPRMARC = 0
               WHERE
                  CDFILIAL    = P_CDFILIAL    AND
                  NRPEDIDOCOL = P_NRPEDIDOCOL AND
                  CDPRODUTO   = V_CDPRODUTO   AND
                  CDMARCA     = V_CDMARCA;
   
               DELETE FROM ITEMPEDCOL
               WHERE
                  CDFILIAL  = P_CDFILIAL  AND
                  CDPRODUTO = V_CDPRODUTO AND
                  CDMARCA   = V_CDMARCA   AND
                  NRPEDCOLETA IN (SELECT NRPEDCOLETA
                                  FROM PEDCOLETA
                                  WHERE
                                    CDFILIAL    = P_CDFILIAL AND
                                    NRPEDIDOCOL = P_NRPEDIDOCOL);
            END IF;
         END IF;
      END LOOP;
      CLOSE C_PRMARCPEDCOL;
   
      IF (P_IDCONSISTE <> 'S') OR (P_IDACEITEOK = 'OK') THEN
   
         OPEN C_PRMARCPEDCOL;
         LOOP
            FETCH C_PRMARCPEDCOL INTO V_CDFILIAL, V_DTPEDCOLGERAL, V_CDPRODUTO,
                                      V_CDARVPROD, V_CDMARCA, V_VRPRECUNIPRMARC, V_IDMARCAATIVA;
            EXIT WHEN C_PRMARCPEDCOL%NOTFOUND;
   
            UPDATE ITEMPEDCOL
            SET ITEMPEDCOL.VRITEMPEDCOL = V_VRPRECUNIPRMARC
            WHERE ITEMPEDCOL.CDPRODUTO  = V_CDPRODUTO
              AND ITEMPEDCOL.CDMARCA    = V_CDMARCA
              AND  EXISTS (SELECT 1
                           FROM PEDCOLETA
                           WHERE PEDCOLETA.CDFILIAL    = ITEMPEDCOL.CDFILIAL
                             AND PEDCOLETA.NRPEDCOLETA = ITEMPEDCOL.NRPEDCOLETA
                             AND PEDCOLETA.CDREGIAO    = ITEMPEDCOL.CDREGIAO
                             AND PEDCOLETA.CDFORNECED  = ITEMPEDCOL.CDFORNECED
                             AND PEDCOLETA.CDFILIAL    = P_CDFILIAL
                             AND PEDCOLETA.NRPEDIDOCOL = P_NRPEDIDOCOL);
   
         END LOOP;
         CLOSE C_PRMARCPEDCOL;
   
         UPDATE PEDCOLGERAL SET
         IDSITUPEDCOLETA = 'A'
         WHERE CDFILIAL    = P_CDFILIAL
           AND NRPEDIDOCOL = P_NRPEDIDOCOL;
   
      END IF;
   END LOOP;
   CLOSE C_FORNREGPEDCOL;
   
   COMMIT;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('ACEITA_PEDCOTWEB','5.05.005'); END;
/

