ALTER TABLE GRUPROMOCPROD ADD DTINIVGGRPROMO DATE NULL
/

ALTER TABLE GRUPROMOCPROD ADD DTFINVGGRPROMO DATE NULL
/

ALTER TABLE GRUPROMOCPROD ADD NRSEQGRPROMO VARCHAR2(10) NULL
/

ALTER TABLE DESGRUPROMOCPR ADD NRSEQGRPROMO VARCHAR2(10) NULL
/ 

DECLARE
   V_NRSEQGRPROMO VARCHAR2(10);
   V_SEQUENCIAL   VARCHAR2(20);
BEGIN
   FOR C_GRUPROMOC IN (
      SELECT CDPRODPROMOCAO, CDGRUPROMOC
        FROM GRUPROMOCPROD
       WHERE NRSEQGRPROMO IS NULL) LOOP
      
      NOVO_CODIGO_NT('GRUPROMOCPROD'||C_GRUPROMOC.CDPRODPROMOCAO||C_GRUPROMOC.CDGRUPROMOC, V_SEQUENCIAL, 1);
      V_NRSEQGRPROMO := LPAD(SUBSTR(V_SEQUENCIAL, 11, 10), 10, '0');
      
      UPDATE GRUPROMOCPROD
         SET NRSEQGRPROMO = V_NRSEQGRPROMO
       WHERE CDPRODPROMOCAO = C_GRUPROMOC.CDPRODPROMOCAO
         AND CDGRUPROMOC    = C_GRUPROMOC.CDGRUPROMOC;

      UPDATE DESGRUPROMOCPR
         SET NRSEQGRPROMO = V_NRSEQGRPROMO
       WHERE CDPRODPROMOCAO = C_GRUPROMOC.CDPRODPROMOCAO
         AND CDGRUPROMOC    = C_GRUPROMOC.CDGRUPROMOC;
   
   END LOOP;
   COMMIT;
END;
/

ALTER TABLE DESGRUPROMOCPR MODIFY NRSEQGRPROMO NOT NULL
/

ALTER TABLE DESGRUPROMOCPR DROP CONSTRAINT PK_DESGRUPROMOCPR
/

DROP INDEX PK_DESGRUPROMOCPR
/

ALTER TABLE DESGRUPROMOCPR
   ADD CONSTRAINT PK_DESGRUPROMOCPR PRIMARY KEY (CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMO, CDPRODUTO)
/

ALTER TABLE DESGRUPROMOCPR DROP CONSTRAINT FKVND00324GRUPROMO
/

ALTER TABLE GRUPROMOCPROD MODIFY NRSEQGRPROMO NOT NULL
/

ALTER TABLE GRUPROMOCPROD DROP CONSTRAINT PK_GRUPROMOCPROD
/

DROP INDEX PK_GRUPROMOCPROD
/

ALTER TABLE GRUPROMOCPROD
   ADD CONSTRAINT PK_GRUPROMOCPROD PRIMARY KEY (CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMO)
/

ALTER TABLE DESGRUPROMOCPR
   ADD CONSTRAINT FKVND00324GRUPROMO FOREIGN KEY (CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMO)
      REFERENCES GRUPROMOCPROD (CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMO)
/

ALTER TABLE GRUPROMOCPRFIL ADD DTINIVGGRPROFIL DATE NULL
/

ALTER TABLE GRUPROMOCPRFIL ADD DTFINVGGRPROFIL DATE NULL
/

ALTER TABLE GRUPROMOCPRFIL ADD NRSEQGRPROMOFIL VARCHAR2(10) NULL
/

ALTER TABLE DESGRUPROMPRFIL ADD NRSEQGRPROMOFIL VARCHAR2(10) NULL
/

DECLARE
   V_NRSEQGRPROMOFIL VARCHAR2(10);
   V_SEQUENCIAL      VARCHAR2(20);
BEGIN
   FOR C_GRUPROMOCFIL IN (
      SELECT CDFILIAL, CDPRODPROMOCAO, CDGRUPROMOC
        FROM GRUPROMOCPRFIL
       WHERE NRSEQGRPROMOFIL IS NULL) LOOP
      
      NOVO_CODIGO_NT('GRUPROMOCPRFIL'||C_GRUPROMOCFIL.CDFILIAL||C_GRUPROMOCFIL.CDPRODPROMOCAO||C_GRUPROMOCFIL.CDGRUPROMOC, V_SEQUENCIAL, 1);
      V_NRSEQGRPROMOFIL := LPAD(SUBSTR(V_SEQUENCIAL, 11, 10), 10, '0');
      
      UPDATE GRUPROMOCPRFIL
         SET NRSEQGRPROMOFIL = V_NRSEQGRPROMOFIL
       WHERE CDFILIAL       = C_GRUPROMOCFIL.CDFILIAL
         AND CDPRODPROMOCAO = C_GRUPROMOCFIL.CDPRODPROMOCAO
         AND CDGRUPROMOC    = C_GRUPROMOCFIL.CDGRUPROMOC;

      UPDATE DESGRUPROMPRFIL
         SET NRSEQGRPROMOFIL = V_NRSEQGRPROMOFIL
       WHERE CDFILIAL       = C_GRUPROMOCFIL.CDFILIAL
         AND CDPRODPROMOCAO = C_GRUPROMOCFIL.CDPRODPROMOCAO
         AND CDGRUPROMOC    = C_GRUPROMOCFIL.CDGRUPROMOC;
   
   END LOOP;
   COMMIT;
END;
/

ALTER TABLE DESGRUPROMPRFIL MODIFY NRSEQGRPROMOFIL NOT NULL
/

ALTER TABLE DESGRUPROMPRFIL DROP CONSTRAINT PK_DESGRUPROMPRFIL
/

DROP INDEX PK_DESGRUPROMPRFIL
/

ALTER TABLE DESGRUPROMPRFIL
   ADD CONSTRAINT PK_DESGRUPROMPRFIL PRIMARY KEY (CDFILIAL, CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMOFIL, CDPRODUTO)
/

ALTER TABLE DESGRUPROMPRFIL DROP CONSTRAINT FKVND00326GRUPROMO
/

ALTER TABLE GRUPROMOCPRFIL MODIFY NRSEQGRPROMOFIL NOT NULL
/

ALTER TABLE GRUPROMOCPRFIL DROP CONSTRAINT PK_GRUPROMOCPRFIL
/

DROP INDEX PK_GRUPROMOCPRFIL
/

ALTER TABLE GRUPROMOCPRFIL
   ADD CONSTRAINT PK_GRUPROMOCPRFIL PRIMARY KEY (CDFILIAL, CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMOFIL)
/

ALTER TABLE DESGRUPROMPRFIL
   ADD CONSTRAINT FKVND00326GRUPROMO FOREIGN KEY (CDFILIAL, CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMOFIL)
      REFERENCES GRUPROMOCPRFIL (CDFILIAL, CDPRODPROMOCAO, CDGRUPROMOC, NRSEQGRPROMOFIL)
/