Subversion Repositories DevTools

Rev

Rev 55 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 55 Rev 57
Line 129... Line 129...
129
    FREELIST GROUPS 1
129
    FREELIST GROUPS 1
130
    BUFFER_POOL DEFAULT
130
    BUFFER_POOL DEFAULT
131
  )
131
  )
132
;
132
;
133
 
133
 
-
 
134
CREATE TABLE LICENCING
-
 
135
(
-
 
136
  PV_ID NUMBER NOT NULL,
-
 
137
  LICENCE NUMBER NOT NULL
-
 
138
)
-
 
139
  TABLESPACE "USERS"
-
 
140
  LOGGING 
-
 
141
  PCTFREE 10
-
 
142
  PCTUSED 40
-
 
143
  INITRANS 1
-
 
144
  MAXTRANS 255
-
 
145
  STORAGE
-
 
146
  (
-
 
147
    INITIAL 64K
-
 
148
    MINEXTENTS 1
-
 
149
    MAXEXTENTS 2147483645
-
 
150
    FREELISTS 1
-
 
151
    FREELIST GROUPS 1
-
 
152
    BUFFER_POOL DEFAULT
-
 
153
  )
-
 
154
;
-
 
155
 
134
CREATE TABLE DEPRECATED_PACKAGES
156
CREATE TABLE DEPRECATED_PACKAGES
135
(
157
(
136
  RTAG_ID NUMBER NOT NULL,
158
  RTAG_ID NUMBER NOT NULL,
137
  PKG_ID NUMBER NOT NULL,
159
  PKG_ID NUMBER NOT NULL,
138
  COMMENTS VARCHAR2(4000 BYTE) NOT NULL,
160
  COMMENTS VARCHAR2(4000 BYTE) NOT NULL,
Line 346... Line 368...
346
    FREELIST GROUPS 1
368
    FREELIST GROUPS 1
347
    BUFFER_POOL DEFAULT
369
    BUFFER_POOL DEFAULT
348
  )
370
  )
349
;
371
;
350
 
372
 
-
 
373
CREATE TABLE LICENCES
-
 
374
(
-
 
375
  LICENCE NUMBER NOT NULL,
-
 
376
  NAME VARCHAR2(50 BYTE) NOT NULL
-
 
377
, CONSTRAINT PK_LICENCES PRIMARY KEY
-
 
378
  (
-
 
379
    LICENCE
-
 
380
  )
-
 
381
  ENABLE
-
 
382
)
-
 
383
  TABLESPACE "USERS"
-
 
384
  LOGGING 
-
 
385
  PCTFREE 10
-
 
386
  PCTUSED 40
-
 
387
  INITRANS 1
-
 
388
  MAXTRANS 255
-
 
389
  STORAGE
-
 
390
  (
-
 
391
    INITIAL 64K
-
 
392
    MINEXTENTS 1
-
 
393
    MAXEXTENTS 2147483645
-
 
394
    FREELISTS 1
-
 
395
    FREELIST GROUPS 1
-
 
396
    BUFFER_POOL DEFAULT
-
 
397
  )
-
 
398
;
-
 
399
 
351
CREATE TABLE RELEASE_COMPONENTS
400
CREATE TABLE RELEASE_COMPONENTS
352
(
401
(
353
  PV_ID NUMBER NOT NULL,
402
  PV_ID NUMBER NOT NULL,
354
  FILE_NAME VARCHAR2(255 BYTE),
403
  FILE_NAME VARCHAR2(255 BYTE),
355
  FILE_PATH VARCHAR2(2000 BYTE),
404
  FILE_PATH VARCHAR2(2000 BYTE),
Line 2231... Line 2280...
2231
(
2280
(
2232
PV_ID
2281
PV_ID
2233
) ENABLE
2282
) ENABLE
2234
;
2283
;
2235
 
2284
 
-
 
2285
ALTER TABLE LICENCING
-
 
2286
ADD FOREIGN KEY
-
 
2287
(
-
 
2288
  PV_ID
-
 
2289
)
-
 
2290
REFERENCES PACKAGE_VERSIONS
-
 
2291
(
-
 
2292
PV_ID
-
 
2293
) ENABLE
-
 
2294
;
-
 
2295
 
-
 
2296
ALTER TABLE LICENCING
-
 
2297
ADD FOREIGN KEY
-
 
2298
(
-
 
2299
  LICENCE
-
 
2300
)
-
 
2301
REFERENCES LICENCES
-
 
2302
(
-
 
2303
LICENCE
-
 
2304
) ENABLE
-
 
2305
;
-
 
2306
 
2236
ALTER TABLE PACKAGE_DOCUMENTS
2307
ALTER TABLE PACKAGE_DOCUMENTS
2237
ADD CONSTRAINT FK_PKGDOCS_REF_PV FOREIGN KEY
2308
ADD CONSTRAINT FK_PKGDOCS_REF_PV FOREIGN KEY
2238
(
2309
(
2239
  PV_ID
2310
  PV_ID
2240
)
2311
)
Line 2937... Line 3008...
2937
    NULL AS PKG_STATE,
3008
    NULL AS PKG_STATE,
2938
 NULL AS DEPRECATED_STATE,
3009
 NULL AS DEPRECATED_STATE,
2939
    NULL AS INSERTOR_ID,
3010
    NULL AS INSERTOR_ID,
2940
    NULL AS INSERT_STAMP,
3011
    NULL AS INSERT_STAMP,
2941
    pl.operation
3012
    pl.operation
2942
FROM PLANNED pl;
3013
  FROM PLANNED pl;
2943
 
3014
 
2944
CREATE UNIQUE INDEX UNQ_PKG_BUILD_ENV ON PACKAGE_BUILD_ENV (PV_ID ASC, BE_ID ASC)  TABLESPACE "USERS"
3015
CREATE UNIQUE INDEX UNQ_PKG_BUILD_ENV ON PACKAGE_BUILD_ENV (PV_ID ASC, BE_ID ASC)  TABLESPACE "USERS"
2945
  LOGGING 
3016
  LOGGING 
2946
  PCTFREE 10
3017
  PCTFREE 10
2947
  INITRANS 2
3018
  INITRANS 2
Line 7526... Line 7597...
7526
EXCEPTION WHEN VALUE_ERROR THEN
7597
EXCEPTION WHEN VALUE_ERROR THEN
7527
   RETURN false;
7598
   RETURN false;
7528
END IS_NUMBER;
7599
END IS_NUMBER;
7529
/
7600
/
7530
 
7601
 
7531
CREATE OR REPLACE PROCEDURE Basic_Clone ( nFROMpv_id IN NUMBER,
7602
CREATE OR REPLACE PROCEDURE                   "BASIC_CLONE" ( nFROMpv_id IN NUMBER,
7532
										  nTOpv_id IN NUMBER,
7603
                        nTOpv_id IN NUMBER,
7533
                                          nRtag_id IN NUMBER,
7604
                        nRtag_id IN NUMBER,
7534
                                          nUser_id IN NUMBER,
7605
                        nUser_id IN NUMBER,
7535
                                          nTOpkg_id IN NUMBER DEFAULT NULL,
7606
                        nTOpkg_id IN NUMBER DEFAULT NULL,
7536
                                          enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
7607
                        enumISSUES_STATE_IMPORTED IN NUMBER DEFAULT NULL ) IS
-
 
7608
 
7537
/* ---------------------------------------------------------------------------
7609
   /* ---------------------------------------------------------------------------
7538
    Version: 3.5
7610
   ||  Last Modified:  G.Huddy
-
 
7611
   ||  Modified Date:  19/Aug/2008
-
 
7612
   ||  Version      :  3.6 (added licencing cloning)
7539
   --------------------------------------------------------------------------- */
7613
   --------------------------------------------------------------------------- */
7540
 
7614
 
7541
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
7615
   FromVersion PACKAGE_VERSIONS.PKG_VERSION%TYPE;
7542
 
7616
 
7543
BEGIN
7617
BEGIN
7544
 
7618
 
7545
------------------------------------- Clone Dependencies ---------------------------------------------------
7619
------------------------------------- Clone Dependencies ---------------------------------------------------
7546
	IF NOT nRtag_id IS NULL
7620
   IF NOT nRtag_id IS NULL
7547
    THEN
7621
   THEN
7548
		-- Auto Update Dependencies --
7622
      -- Auto Update Dependencies --
7549
		INSERT INTO PACKAGE_DEPENDENCIES
7623
      INSERT INTO PACKAGE_DEPENDENCIES
7550
		    SELECT nTOpv_id AS pv_id,
7624
           SELECT nTOpv_id AS pv_id,
7551
		           DECODE(nUser_id,
7625
                  DECODE(nUser_id,
7552
		                  frc.modifier_id,
7626
                         frc.modifier_id,
7553
		                  frc.pv_id,
7627
                         frc.pv_id,
7554
		                  DECODE(frc.dlocked,
7628
                         DECODE(frc.dlocked,
7555
		                         'Y',
7629
                                'Y',
7556
		                         frc.pv_id,
7630
                                frc.pv_id,
7557
		                         dep.dpv_id)
7631
                                dep.dpv_id)
7558
		                  ) AS dpv_id,
7632
                         ) AS dpv_id,
7559
		           nTOpkg_id AS pkg_id,
7633
                  nTOpkg_id AS pkg_id,
7560
		           dep.dpkg_id,
7634
                  dep.dpkg_id,
7561
		           dep.build_type,
7635
                  dep.build_type,
7562
				   dep.display_order
7636
                  dep.display_order
7563
		      FROM PACKAGE_DEPENDENCIES dep,
7637
             FROM PACKAGE_DEPENDENCIES dep,
7564
		           PACKAGE_VERSIONS pv,
7638
                  PACKAGE_VERSIONS pv,
7565
		           (
7639
                  (
7566
		           /* Full Release Contents used for reference*/
7640
                  /* Full Release Contents used for reference*/
7567
		           SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
7641
                  SELECT rpv.pv_id, rpv.pkg_id, NVL(rpv.v_ext, '|LINK_A_NULL|') AS v_ext, rpv.modifier_id, rpv.dlocked
7568
		           FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
7642
                  FROM RELEASE_CONTENT rel, PACKAGE_VERSIONS rpv
7569
		           WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
7643
                  WHERE rel.pv_id = rpv.pv_id AND rtag_id = nRtag_id
7570
		           ) frc
7644
                  ) frc
7571
		     WHERE dep.pv_id = nFROMpv_id
7645
            WHERE dep.pv_id = nFROMpv_id
7572
		       AND dep.dpv_id = pv.pv_id
7646
              AND dep.dpv_id = pv.pv_id
7573
		       AND pv.pkg_id = frc.pkg_id(+)
7647
              AND pv.pkg_id = frc.pkg_id(+)
7574
		       AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
7648
              AND NVL(pv.v_ext, '|LINK_A_NULL|') = frc.v_ext(+);
7575
 
-
 
7576
	ELSE
7649
   ELSE
7577
		-- Clone Dependencies --
7650
      -- Clone Dependencies --
7578
		INSERT INTO PACKAGE_DEPENDENCIES
7651
      INSERT INTO PACKAGE_DEPENDENCIES
7579
		    SELECT nTOpv_id         AS pv_id,
7652
           SELECT nTOpv_id         AS pv_id,
7580
		           dep.dpv_id,
7653
                  dep.dpv_id,
7581
		           nTOpkg_id        AS pkg_id,
7654
                  nTOpkg_id        AS pkg_id,
7582
		           dep.dpkg_id,
7655
                  dep.dpkg_id,
7583
		           dep.build_type,
7656
                  dep.build_type,
7584
				   dep.display_order
7657
                  dep.display_order
7585
		      FROM PACKAGE_DEPENDENCIES dep
7658
             FROM PACKAGE_DEPENDENCIES dep
7586
		     WHERE dep.pv_id = nFROMpv_id;
7659
            WHERE dep.pv_id = nFROMpv_id;
7587
 
7660
 
7588
	END IF;
7661
   END IF;
7589
 
7662
 
7590
----------------------------------------- Clone Issues -------------------------------------------------------
7663
----------------------------------------- Clone Issues -------------------------------------------------------
7591
	IF enumISSUES_STATE_IMPORTED IS NULL
7664
   IF enumISSUES_STATE_IMPORTED IS NULL
7592
	THEN
7665
   THEN
7593
        /* All Issues */
7666
        /* All Issues */
7594
	    INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
7667
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
7595
	         SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
7668
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
7596
	           FROM CQ_ISSUES
7669
              FROM CQ_ISSUES
7597
              WHERE pv_id = nFROMpv_id;
7670
             WHERE pv_id = nFROMpv_id;
7598
	ELSE
7671
   ELSE
7599
    	/* Outstanding Issues Only */
7672
       /* Outstanding Issues Only */
7600
	    INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
7673
       INSERT INTO CQ_ISSUES ( pv_id, iss_db, iss_id, iss_state, mod_date, notes )
7601
	        SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
7674
            SELECT nTOpv_id AS pv_id, iss_db, iss_id, iss_state, mod_date, notes
7602
	          FROM CQ_ISSUES
7675
              FROM CQ_ISSUES
7603
             WHERE pv_id = nFROMpv_id
7676
             WHERE pv_id = nFROMpv_id
7604
               AND iss_state = enumISSUES_STATE_IMPORTED;
7677
               AND iss_state = enumISSUES_STATE_IMPORTED;
7605
	END IF;
7678
   END IF;
7606
 
-
 
7607
 
7679
 
7608
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
7680
------------------------------------ Clone Runtime Dependencies -----------------------------------------------
7609
	INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
7681
   INSERT INTO RUNTIME_DEPENDENCIES (pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user)
7610
	    SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
7682
       SELECT nTOpv_id AS pv_id, rtd_id, rtd_url, rtd_comments, mod_date, mod_user
7611
	    FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
7683
       FROM RUNTIME_DEPENDENCIES WHERE pv_id = nFROMpv_id;
7612
 
-
 
7613
 
7684
 
7614
--------------------------------------- Clone Additional Notes ------------------------------------------------
7685
--------------------------------------- Clone Additional Notes ------------------------------------------------
7615
	INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
7686
   INSERT INTO ADDITIONAL_NOTES ( NOTE_ID, PV_ID, NOTE_TITLE, NOTE_BODY, MOD_DATE, MOD_USER )
7616
    	 SELECT an.NOTE_ID,
7687
        SELECT an.NOTE_ID,
7617
                nTOpv_id AS PV_ID,
7688
               nTOpv_id AS PV_ID,
7618
                an.NOTE_TITLE,
7689
               an.NOTE_TITLE,
7619
                an.NOTE_BODY,
7690
               an.NOTE_BODY,
7620
                an.MOD_DATE,
7691
               an.MOD_DATE,
7621
                an.MOD_USER
7692
               an.MOD_USER
7622
           FROM ADDITIONAL_NOTES an
7693
          FROM ADDITIONAL_NOTES an
7623
          WHERE an.PV_ID = nFROMpv_id;
7694
         WHERE an.PV_ID = nFROMpv_id;
7624
 
-
 
7625
 
7695
 
7626
-------------------------------------------- Clone Unit Tests -------------------------------------------------
7696
-------------------------------------------- Clone Unit Tests -------------------------------------------------
7627
	-- Clone only Automatic unit tests --
7697
   -- Clone only Automatic unit tests --
7628
	INSERT INTO UNIT_TESTS (
7698
   INSERT INTO UNIT_TESTS (
7629
							TEST_ID,
7699
                           TEST_ID,
7630
							PV_ID,
7700
                           PV_ID,
7631
							TEST_TYPES_FK,
7701
                           TEST_TYPES_FK,
7632
							TEST_SUMMARY,
7702
                           TEST_SUMMARY,
7633
							COMPLETION_DATE,
7703
                           COMPLETION_DATE,
7634
							COMPLETED_BY,
7704
                           COMPLETED_BY,
7635
							RESULTS_URL,
7705
                           RESULTS_URL,
7636
							RESULTS_ATTACHMENT_NAME,
7706
                           RESULTS_ATTACHMENT_NAME,
7637
							NUMOF_TEST
7707
                           NUMOF_TEST
7638
							)
7708
                          )
7639
    	 SELECT ut.TEST_ID,
7709
        SELECT ut.TEST_ID,
7640
                nTOpv_id AS PV_ID,
7710
               nTOpv_id AS PV_ID,
7641
                ut.TEST_TYPES_FK,
7711
               ut.TEST_TYPES_FK,
7642
                ut.TEST_SUMMARY,
7712
               ut.TEST_SUMMARY,
7643
                Ora_Sysdate AS COMPLETION_DATE,
7713
               Ora_Sysdate AS COMPLETION_DATE,
7644
                nUser_id AS COMPLETED_BY,
7714
               nUser_id AS COMPLETED_BY,
7645
                ut.RESULTS_URL,
7715
               ut.RESULTS_URL,
7646
				ut.RESULTS_ATTACHMENT_NAME,
7716
               ut.RESULTS_ATTACHMENT_NAME,
7647
				ut.NUMOF_TEST
7717
               ut.NUMOF_TEST
7648
           FROM UNIT_TESTS ut
7718
          FROM UNIT_TESTS ut
7649
          WHERE ut.PV_ID = nFROMpv_id
7719
         WHERE ut.PV_ID = nFROMpv_id
7650
            AND ut.TEST_TYPES_FK IN ( 5, 7 );
7720
           AND ut.TEST_TYPES_FK IN ( 5, 7 );
7651
			
7721
 
7652
	-- Clone only Interactive Unit Tests --
7722
    -- Clone only Interactive Unit Tests --
7653
	INSERT INTO UNIT_TESTS (
7723
    INSERT INTO UNIT_TESTS (
7654
		   				    TEST_ID, 
7724
                            TEST_ID,
7655
							PV_ID,
7725
                            PV_ID,
7656
							TEST_TYPES_FK,
7726
                            TEST_TYPES_FK,
7657
							TEST_SUMMARY
7727
                            TEST_SUMMARY
7658
							)
7728
                           )
7659
		SELECT ut.TEST_ID, 
7729
       SELECT ut.TEST_ID,
7660
			   nTOpv_id AS PV_ID,
7730
              nTOpv_id AS PV_ID,
7661
			   ut.TEST_TYPES_FK,
7731
              ut.TEST_TYPES_FK,
7662
			   ut.TEST_SUMMARY
7732
              ut.TEST_SUMMARY
7663
		  FROM UNIT_TESTS ut
7733
         FROM UNIT_TESTS ut
7664
		 WHERE ut.PV_ID = nFROMpv_id
7734
        WHERE ut.PV_ID = nFROMpv_id
7665
		   AND ut.TEST_TYPES_FK IN (6);
7735
          AND ut.TEST_TYPES_FK IN (6);
7666
																	
-
 
7667
 
7736
 
7668
-------------------------------------------- Clone Package Documents ------------------------------------------
7737
-------------------------------------------- Clone Package Documents ------------------------------------------
7669
	INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
7738
   INSERT INTO PACKAGE_DOCUMENTS ( PV_ID, TEST_ID, DOC_NUM, DOC_ID, IS_LATEST )
7670
    	 SELECT nTOpv_id AS PV_ID,
7739
        SELECT nTOpv_id AS PV_ID,
7671
		 		pd.test_id,
7740
               pd.test_id,
7672
				pd.doc_num,
7741
               pd.doc_num,
7673
				pd.doc_id,
7742
               pd.doc_id,
7674
                pd.IS_LATEST
7743
               pd.IS_LATEST
7675
           FROM PACKAGE_DOCUMENTS pd
7744
          FROM PACKAGE_DOCUMENTS pd
7676
          WHERE pd.PV_ID = nFROMpv_id;
7745
         WHERE pd.PV_ID = nFROMpv_id;
7677
 
7746
 
7678
-------------------------------------------- Clone Build Environments -----------------------------------------
7747
-------------------------------------------- Clone Build Environments -----------------------------------------
7679
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
7748
    INSERT INTO PACKAGE_BUILD_ENV ( PV_ID, BE_ID, BUILD_TYPE )
7680
	SELECT nTOpv_id AS PV_ID,
7749
    SELECT nTOpv_id AS PV_ID,
7681
		   pkgbe.BE_ID,
7750
           pkgbe.BE_ID,
7682
		   pkgbe.BUILD_TYPE
7751
           pkgbe.BUILD_TYPE
7683
	  FROM PACKAGE_BUILD_ENV pkgbe
7752
      FROM PACKAGE_BUILD_ENV pkgbe
7684
	 WHERE pkgbe.PV_ID = nFROMpv_id;
7753
     WHERE pkgbe.PV_ID = nFROMpv_id;
7685
---------------------------------------------Clone Package Build Info------------------------------------------
7754
---------------------------------------------Clone Package Build Info------------------------------------------
7686
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
7755
    INSERT INTO PACKAGE_BUILD_INFO (PV_ID, BM_ID, BSA_ID)
7687
	SELECT nTOpv_id AS PV_ID, 
7756
    SELECT nTOpv_id AS PV_ID,
7688
		   pkgbinfo.BM_ID,
7757
           pkgbinfo.BM_ID,
7689
		   pkgbinfo.BSA_ID
7758
           pkgbinfo.BSA_ID
7690
	  FROM PACKAGE_BUILD_INFO pkgbinfo
7759
      FROM PACKAGE_BUILD_INFO pkgbinfo
7691
	 WHERE pkgbinfo.PV_ID = nFROMpv_id;
7760
     WHERE pkgbinfo.PV_ID = nFROMpv_id;
7692
---------------------------------------------Clone Package Version Processes-----------------------------------
7761
---------------------------------------------Clone Package Version Processes-----------------------------------
7693
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
7762
    INSERT INTO PACKAGE_PROCESSES ( PV_ID, PROC_ID )
7694
	SELECT nTOpv_id AS PV_ID,
7763
    SELECT nTOpv_id AS PV_ID,
7695
		   pp.PROC_ID
7764
           pp.PROC_ID
7696
	  FROM PACKAGE_PROCESSES pp
7765
      FROM PACKAGE_PROCESSES pp
7697
	  WHERE pp.PV_ID = nFROMpv_id;		   
7766
     WHERE pp.PV_ID = nFROMpv_id;
-
 
7767
---------------------------------------------Clone Licencing Associations-----------------------------------
-
 
7768
    PK_LICENCING.CLONE_LICENCING(nFROMpv_id, nTOpv_id, nUser_id);
7698
---------------------------------------------------------------------------------------------------------------
7769
---------------------------------------------------------------------------------------------------------------
7699
 
7770
 
7700
	/* LOG ACTION */
7771
    /* LOG ACTION */
7701
    SELECT pv.PKG_VERSION INTO FromVersion
7772
    SELECT pv.PKG_VERSION INTO FromVersion
7702
      FROM PACKAGE_VERSIONS pv
7773
      FROM PACKAGE_VERSIONS pv
7703
     WHERE pv.PV_ID = nFROMpv_id;
7774
     WHERE pv.PV_ID = nFROMpv_id;
7704
 
7775
 
7705
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
7776
    Log_Action ( nTOpv_id, 'clone_from', nUser_id,
7706
    			 'Details cloned from: '|| FromVersion );
7777
                 'Details cloned from: '|| FromVersion );
7707
 
7778
 
7708
---------------------------------------------------------------------------------------------------------------
7779
---------------------------------------------------------------------------------------------------------------
7709
 
7780
 
7710
END Basic_Clone;
7781
END Basic_Clone;
7711
/
7782
/
Line 9135... Line 9206...
9135
       INTO ripple_rec;
9206
       INTO ripple_rec;
9136
   END LOOP;
9207
   END LOOP;
9137
END CLONED_PACKAGE_PROCESSES;
9208
END CLONED_PACKAGE_PROCESSES;
9138
/
9209
/
9139
 
9210
 
9140
CREATE OR REPLACE PACKAGE                 pk_rmapi
9211
CREATE OR REPLACE PACKAGE                   "PK_RMAPI"
9141
IS
9212
IS
9142
/*
9213
/*
9143
------------------------------
9214
------------------------------
9144
||  Last Modified:  Jeremy Tweddle
9215
||  Last Modified:  Jeremy Tweddle
9145
||  Modified Date:  08/Feb/2008
9216
||  Modified Date:  08/Feb/2008
Line 9203... Line 9274...
9203
      rootfile      IN   VARCHAR2
9274
      rootfile      IN   VARCHAR2
9204
   )
9275
   )
9205
      RETURN NUMBER;
9276
      RETURN NUMBER;
9206
/*================================================================================================*/
9277
/*================================================================================================*/
9207
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
9278
   PROCEDURE insert_abt_actionlog (rconid IN NUMBER, action IN VARCHAR2);
9208
   
9279
 
9209
   FUNCTION insert_package_metrics (
9280
   FUNCTION insert_package_metrics (
9210
      rtagid IN NUMBER,
9281
      rtagid IN NUMBER,
9211
      pkgname IN VARCHAR2,
9282
      pkgname IN VARCHAR2,
9212
      vext IN VARCHAR2,
9283
      vext IN VARCHAR2,
9213
      metricstring IN VARCHAR2
9284
      metricstring IN VARCHAR2
9214
   )
9285
   )
9215
      RETURN NUMBER;
9286
      RETURN NUMBER;
9216
   
9287
 
9217
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
9288
   PROCEDURE update_release_metrics (rtagid IN NUMBER);
9218
      
9289
 
9219
END pk_rmapi;
9290
END pk_rmapi;
9220
/
9291
/
9221
 
9292
 
9222
CREATE OR REPLACE PROCEDURE DT_SETPROPERTYBYID ( PARAM_ID   IN NUMBER, PARAM_PROPERTY IN VARCHAR2, PARAM_VALUE  IN VARCHAR2, PARAM_LVALUE  IN LONG RAW ) AS BEGIN DECLARE X NUMBER(40); BEGIN SELECT COUNT(*) INTO X FROM MICROSOFTDTPROPERTIES WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; IF X = 0 THEN INSERT INTO MICROSOFTDTPROPERTIES (ID, PROPERTY, OBJECTID, VALUE, LVALUE, VERSION) VALUES (MICROSOFTSEQDTPROPERTIES.NEXTVAL, PARAM_PROPERTY, PARAM_ID, PARAM_VALUE, PARAM_LVALUE, 0); ELSE UPDATE MICROSOFTDTPROPERTIES SET VALUE=PARAM_VALUE, LVALUE=PARAM_LVALUE, VERSION=VERSION+1 WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; END IF; END; END DT_SETPROPERTYBYID;
9293
CREATE OR REPLACE PROCEDURE DT_SETPROPERTYBYID ( PARAM_ID   IN NUMBER, PARAM_PROPERTY IN VARCHAR2, PARAM_VALUE  IN VARCHAR2, PARAM_LVALUE  IN LONG RAW ) AS BEGIN DECLARE X NUMBER(40); BEGIN SELECT COUNT(*) INTO X FROM MICROSOFTDTPROPERTIES WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; IF X = 0 THEN INSERT INTO MICROSOFTDTPROPERTIES (ID, PROPERTY, OBJECTID, VALUE, LVALUE, VERSION) VALUES (MICROSOFTSEQDTPROPERTIES.NEXTVAL, PARAM_PROPERTY, PARAM_ID, PARAM_VALUE, PARAM_LVALUE, 0); ELSE UPDATE MICROSOFTDTPROPERTIES SET VALUE=PARAM_VALUE, LVALUE=PARAM_LVALUE, VERSION=VERSION+1 WHERE OBJECTID=PARAM_ID AND PROPERTY=PARAM_PROPERTY; END IF; END; END DT_SETPROPERTYBYID;
9223
/
9294
/
Line 9527... Line 9598...
9527
/
9598
/
9528
 
9599
 
9529
CREATE OR REPLACE PROCEDURE DT_DROPUSEROBJECTBYID ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
9600
CREATE OR REPLACE PROCEDURE DT_DROPUSEROBJECTBYID ( PARAM_ID IN NUMBER ) AS BEGIN DELETE FROM MICROSOFTDTPROPERTIES WHERE OBJECTID = PARAM_ID; END DT_DROPUSEROBJECTBYID;
9530
/
9601
/
9531
 
9602
 
-
 
9603
CREATE OR REPLACE PACKAGE                   "PK_LICENCING" IS
-
 
9604
/*
-
 
9605
------------------------------
-
 
9606
||  Last Modified:  G.Huddy
-
 
9607
||  Modified Date:  19/Aug/2008
-
 
9608
||  Spec Version:   1.0
-
 
9609
------------------------------
-
 
9610
*/
-
 
9611
 
-
 
9612
   TYPE typeCur IS REF CURSOR;
-
 
9613
 
-
 
9614
    /*================================================================================================*/
-
 
9615
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
-
 
9616
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER );
-
 
9617
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER );
-
 
9618
   FUNCTION  IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER;
-
 
9619
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER );
-
 
9620
   /*================================================================================================*/
-
 
9621
 
-
 
9622
END PK_LICENCING;
-
 
9623
/
-
 
9624
 
9532
CREATE OR REPLACE FUNCTION ORA_SYSDATE
9625
CREATE OR REPLACE FUNCTION ORA_SYSDATE
9533
RETURN DATE
9626
RETURN DATE
9534
IS
9627
IS
9535
/* ---------------------------------------------------------------------------
9628
/* ---------------------------------------------------------------------------
9536
    Version: 3.0.0
9629
    Version: 3.0.0
Line 10023... Line 10116...
10023
 
10116
 
10024
 
10117
 
10025
END Log_Action;
10118
END Log_Action;
10026
/
10119
/
10027
 
10120
 
10028
CREATE OR REPLACE PACKAGE BODY pk_package
10121
CREATE OR REPLACE PACKAGE BODY                   "PK_PACKAGE"
10029
IS
10122
IS
10030
/*
10123
   /*
10031
------------------------------
10124
   ------------------------------
10032
||  Last Modified:  J. Tweddle
10125
   ||  Last Modified:  G.Huddy
10033
||  Modified Date:  24/08/2007
10126
   ||  Modified Date:  20/08/2008
10034
||  Body Version:   1.8
10127
   ||  Body Version:   1.9 - added licencing removal to destroy_package()
10035
------------------------------
10128
   ------------------------------
10036
*/
10129
   */
10037
 
10130
 
10038
   /*-------------------------------------------------------------------------------------------------------*/
10131
   /*-------------------------------------------------------------------------------------------------------*/
10039
   PROCEDURE new_version (
10132
   PROCEDURE new_version (
10040
      nlastpvid                   IN       NUMBER,
10133
      nlastpvid                   IN       NUMBER,
10041
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
10134
      snewpkgversion              IN       VARCHAR2 DEFAULT NULL,
Line 10045... Line 10138...
10045
      nuserid                     IN       NUMBER,
10138
      nuserid                     IN       NUMBER,
10046
      enumissues_state_imported   IN       NUMBER,
10139
      enumissues_state_imported   IN       NUMBER,
10047
      returnpvid                  OUT      NUMBER
10140
      returnpvid                  OUT      NUMBER
10048
   )
10141
   )
10049
   IS
10142
   IS
10050
      origpkg_id                   package_versions.pkg_id%TYPE;
10143
      origpkg_id                  package_versions.pkg_id%TYPE;
10051
      origdlocked                  package_versions.dlocked%TYPE;
10144
      origdlocked                 package_versions.dlocked%TYPE;
10052
      ssv_mm                       package_versions.v_mm%TYPE;
10145
      ssv_mm                      package_versions.v_mm%TYPE;
10053
      ssv_nmm                      package_versions.v_nmm%TYPE;
10146
      ssv_nmm                     package_versions.v_nmm%TYPE;
10054
      ssv_ext                      package_versions.v_ext%TYPE;
10147
      ssv_ext                     package_versions.v_ext%TYPE;
10055
      spackageversion              VARCHAR2 (4000);
10148
      spackageversion             VARCHAR2 (4000);
10056
      nissuestypes                 NUMBER;
10149
      nissuestypes                NUMBER;
10057
      nviewid                      NUMBER;
10150
      nviewid                     NUMBER;
10058
      reccount                     NUMBER;
10151
      reccount                    NUMBER;
10059
      isreleased                   package_versions.dlocked%TYPE       := 'N';
10152
      isreleased                  package_versions.dlocked%TYPE := 'N';
10060
      slabel                       VARCHAR2 (4000)                    := NULL;
10153
      slabel                      VARCHAR2 (4000)               := NULL;
10061
 
10154
 
10062
      CURSOR package_versions_cur
10155
      CURSOR package_versions_cur
10063
      IS
10156
      IS
10064
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
10157
         SELECT pv.pv_id, pv.is_patch, pv.dlocked
10065
           FROM package_versions pv
10158
           FROM package_versions pv
10066
          WHERE pv.pkg_version = snewpkgversion
10159
          WHERE pv.pkg_version = snewpkgversion
10067
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
10160
            AND pv.pkg_id IN (SELECT DISTINCT origpv.pkg_id
10068
                                         FROM package_versions origpv
10161
                                         FROM package_versions origpv
10069
                                        WHERE origpv.pv_id = nlastpvid);
10162
                                        WHERE origpv.pv_id = nlastpvid);
10070
 
10163
 
10071
      package_versions_rec         package_versions_cur%ROWTYPE;
10164
      package_versions_rec package_versions_cur%ROWTYPE;
10072
 
10165
 
10073
      CURSOR clone_package_versions_cur
10166
      CURSOR clone_package_versions_cur
10074
      IS
10167
      IS
10075
         SELECT DISTINCT pkg_id, dlocked
10168
         SELECT DISTINCT pkg_id, dlocked
10076
                    FROM package_versions
10169
                    FROM package_versions
10077
                   WHERE pv_id = nlastpvid;
10170
                   WHERE pv_id = nlastpvid;
10078
 
10171
 
10079
      clone_package_versions_rec   clone_package_versions_cur%ROWTYPE;
10172
      clone_package_versions_rec clone_package_versions_cur%ROWTYPE;
10080
   BEGIN
10173
   BEGIN
10081
      spackageversion := snewpkgversion;
10174
      spackageversion := snewpkgversion;
10082
 
10175
 
10083
      IF nsettopvid IS NULL
10176
      IF nsettopvid IS NULL
10084
      THEN
10177
      THEN
10085
         -- SetToPv_id is not supplied, hence proceed.
10178
         -- SetToPv_id is not supplied, hence proceed.
10086
 
10179
 
10087
         /* ---------------------------------------------------- */
10180
         /* ---------------------------------------------------- */
10088
/* Find id package_version exists                       */
10181
         /* Find id package_version exists                       */
10089
/* ---------------------------------------------------- */
10182
         /* ---------------------------------------------------- */
10090
         OPEN package_versions_cur;
10183
         OPEN package_versions_cur;
10091
 
10184
 
10092
         FETCH package_versions_cur
10185
         FETCH package_versions_cur
10093
          INTO package_versions_rec;
10186
          INTO package_versions_rec;
10094
 
10187
 
Line 10115... Line 10208...
10115
 
10208
 
10116
            -- Automated built config
10209
            -- Automated built config
10117
            IF (cbuildtype = 'A')
10210
            IF (cbuildtype = 'A')
10118
            THEN
10211
            THEN
10119
               spackageversion := '(' || returnpvid || ')' || ssv_ext;
10212
               spackageversion := '(' || returnpvid || ')' || ssv_ext;
10120
                                    -- Make sure that version is still unique
10213
               -- Make sure that version is still unique
10121
            END IF;
10214
            END IF;
10122
 
10215
 
10123
            -- Clone Package Version Details --
10216
            -- Clone Package Version Details --
10124
            INSERT INTO package_versions
-
 
10125
                        (pv_id, pkg_id, pkg_version, dlocked, created_stamp,
10217
            INSERT INTO package_versions(pv_id, pkg_id, pkg_version, dlocked, created_stamp,
10126
                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
10218
                                         creator_id, modified_stamp, modifier_id, v_mm, v_nmm,
10127
                         v_ext, src_path, pv_description, pv_overview,
10219
                                         v_ext, src_path, pv_description, pv_overview,
10128
                         last_pv_id, owner_id, is_deployable,
10220
                                         last_pv_id, owner_id, is_deployable,
10129
                         is_build_env_required, build_type, bs_id, is_autobuildable, ripple_field)
10221
                                         is_build_env_required, build_type, bs_id, is_autobuildable, ripple_field)
10130
               SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
10222
                 SELECT returnpvid AS pv_id, origpkg_id AS pkg_id,
10131
                      spackageversion AS pkg_version, 'N' AS dlocked,
10223
                        spackageversion AS pkg_version, 'N' AS dlocked,
10132
                      ora_sysdate AS created_stamp, nuserid AS creator_id,
10224
                        ora_sysdate AS created_stamp, nuserid AS creator_id,
10133
                      ora_sysdatetime AS modified_stamp,
10225
                        ora_sysdatetime AS modified_stamp,
10134
                      nuserid AS modifier_id, ssv_mm AS v_mm,
10226
                        nuserid AS modifier_id, ssv_mm AS v_mm,
10135
                      ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
10227
                        ssv_nmm AS v_nmm, ssv_ext AS v_ext, pv.src_path,
10136
                      pv.pv_description, pv.pv_overview,
10228
                        pv.pv_description, pv.pv_overview,
10137
                      nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
10229
                        nlastpvid AS last_pv_id, pv.owner_id, pv.is_deployable,
10138
                      pv.is_build_env_required, cbuildtype, pv.bs_id, pv.is_autobuildable, pv.ripple_field
10230
                        pv.is_build_env_required, cbuildtype, pv.bs_id, pv.is_autobuildable, pv.ripple_field
10139
                 FROM package_versions pv
10231
                   FROM package_versions pv
10140
                WHERE pv.pv_id = nlastpvid;
10232
                  WHERE pv.pv_id = nlastpvid;
10141
 
10233
 
10142
            -- Set Issues Type for cloning ---
10234
            -- Set Issues Type for cloning ---
10143
            IF origdlocked = 'Y'
10235
            IF origdlocked = 'Y'
10144
            THEN
10236
            THEN
10145
               nissuestypes := enumissues_state_imported;
10237
               nissuestypes := enumissues_state_imported;
Line 10396... Line 10488...
10396
               WHERE pd.pv_id = pvid;
10488
               WHERE pd.pv_id = pvid;
10397
 
10489
 
10398
         --- Remove from Code Review
10490
         --- Remove from Code Review
10399
         DELETE FROM code_reviews cr
10491
         DELETE FROM code_reviews cr
10400
               WHERE cr.pv_id = pvid;
10492
               WHERE cr.pv_id = pvid;
10401
               
10493
 
10402
         --- Remove from Code Review URL
10494
         --- Remove from Code Review URL
10403
         DELETE FROM code_review_url cru
10495
         DELETE FROM code_review_url cru
10404
               WHERE cru.pv_id = pvid;
10496
               WHERE cru.pv_id = pvid;
10405
 
10497
 
10406
         --- Remove from Unit Tests
10498
         --- Remove from Unit Tests
Line 10408... Line 10500...
10408
               WHERE ut.pv_id = pvid;
10500
               WHERE ut.pv_id = pvid;
10409
 
10501
 
10410
         --- Remove from Package BuildEnv
10502
         --- Remove from Package BuildEnv
10411
         DELETE FROM package_build_env pbe
10503
         DELETE FROM package_build_env pbe
10412
               WHERE pbe.pv_id = pvid;
10504
               WHERE pbe.pv_id = pvid;
10413
			   
10505
 
10414
		 --- Remove from Package Build Info
10506
         --- Remove from Package Build Info
10415
		 DELETE FROM package_build_info pbi
10507
         DELETE FROM package_build_info pbi
10416
		 	   WHERE pbi.pv_id = pvid;    
10508
               WHERE pbi.pv_id = pvid;
10417
			   
-
 
10418
 
10509
 
10419
         --- Remove from Build Order
10510
         --- Remove from Build Order
10420
         DELETE FROM build_order bo
10511
         DELETE FROM build_order bo
10421
               WHERE bo.pv_id = pvid;
10512
               WHERE bo.pv_id = pvid;
10422
 
10513
 
-
 
10514
         --- Remove from Licencing
-
 
10515
         PK_LICENCING.REMOVE_ALL_LICENCING( pvid, 0 );
-
 
10516
 
10423
         --- Remove from Note Manager
10517
         --- Remove from Note Manager
10424
         DELETE FROM note_manager nm
10518
         DELETE FROM note_manager nm
10425
               WHERE nm.nid = pvid;
10519
               WHERE nm.nid = pvid;
10426
 
10520
 
10427
         --- Remove from Action log
10521
         --- Remove from Action log
10428
         DELETE FROM action_log al
10522
         DELETE FROM action_log al
10429
               WHERE al.pv_id = pvid;
10523
               WHERE al.pv_id = pvid;
10430
			   
10524
 
10431
		 --- Remove from Do Not Ripple 
10525
         --- Remove from Do Not Ripple
10432
		 DELETE FROM DO_NOT_RIPPLE dnr
10526
         DELETE FROM DO_NOT_RIPPLE dnr
10433
		 	   WHERE dnr.PV_ID = pvid;
10527
               WHERE dnr.PV_ID = pvid;
10434
			   
10528
 
10435
		 --- Remove from Advisory Ripple 
10529
         --- Remove from Advisory Ripple
10436
		 DELETE FROM ADVISORY_RIPPLE ar
10530
         DELETE FROM ADVISORY_RIPPLE ar
10437
		 	   WHERE ar.PV_ID = pvid;			   
10531
               WHERE ar.PV_ID = pvid;
10438
			   
10532
 
10439
		 --- Remove from Jira Issues 
10533
         --- Remove from Jira Issues
10440
		 DELETE FROM JIRA_ISSUES jira
10534
         DELETE FROM JIRA_ISSUES jira
10441
		 	   WHERE jira.PV_ID = pvid;
10535
               WHERE jira.PV_ID = pvid;
10442
			
10536
 
10443
         --- Remove from Package Metrics
10537
         --- Remove from Package Metrics
10444
         DELETE FROM package_metrics pm
10538
         DELETE FROM package_metrics pm
10445
              WHERE pm.pv_id = pvid;
10539
              WHERE pm.pv_id = pvid;
10446
   			   
10540
 
10447
         --- Finally Remove From Package Versions
10541
         --- Finally Remove From Package Versions
10448
         --- Get Package name
10542
         --- Get Package name
10449
         SELECT pv.pkg_id
10543
         SELECT pv.pkg_id
10450
           INTO pkgid
10544
           INTO pkgid
10451
           FROM package_versions pv
10545
           FROM package_versions pv
Line 10482... Line 10576...
10482
      lastinstallorder     NUMBER;
10576
      lastinstallorder     NUMBER;
10483
      ispatchdlocked       package_versions.dlocked%TYPE;
10577
      ispatchdlocked       package_versions.dlocked%TYPE;
10484
      ssv_mm               package_versions.v_mm%TYPE;
10578
      ssv_mm               package_versions.v_mm%TYPE;
10485
      ssv_nmm              package_versions.v_nmm%TYPE;
10579
      ssv_nmm              package_versions.v_nmm%TYPE;
10486
      ssv_ext              package_versions.v_ext%TYPE;
10580
      ssv_ext              package_versions.v_ext%TYPE;
10487
      opatchdepcollector   relmgr_number_tab_t      := relmgr_number_tab_t
10581
      opatchdepcollector   relmgr_number_tab_t  := relmgr_number_tab_t ();
10488
                                                                          ();
-
 
10489
 
10582
 
10490
      CURSOR parent_cur
10583
      CURSOR parent_cur
10491
      IS
10584
      IS
10492
         SELECT pv.*, pkg.pkg_name
10585
         SELECT pv.*, pkg.pkg_name
10493
           FROM package_versions pv, PACKAGES pkg
10586
           FROM package_versions pv, PACKAGES pkg
10494
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
10587
          WHERE pv.pv_id = nparentpvid AND pv.pkg_id = pkg.pkg_id;
10495
 
10588
 
10496
      parent_rec           parent_cur%ROWTYPE;
10589
      parent_rec parent_cur%ROWTYPE;
10497
 
10590
 
10498
      CURSOR patch_cur
10591
      CURSOR patch_cur
10499
      IS
10592
      IS
10500
         SELECT pv.*, pg.pkg_name
10593
         SELECT pv.*, pg.pkg_name
10501
           FROM package_versions pv, PACKAGES pg
10594
           FROM package_versions pv, PACKAGES pg
10502
          WHERE pv.pkg_id = parpkg_id
10595
          WHERE pv.pkg_id = parpkg_id
10503
            AND pv.pkg_version = snewpatchversion
10596
            AND pv.pkg_version = snewpatchversion
10504
            AND pv.pkg_id = pg.pkg_id;
10597
            AND pv.pkg_id = pg.pkg_id;
10505
 
10598
 
10506
      patch_rec            patch_cur%ROWTYPE;
10599
      patch_rec  patch_cur%ROWTYPE;
10507
 
10600
 
10508
      CURSOR releases_cur
10601
      CURSOR releases_cur
10509
      IS
10602
      IS
10510
         SELECT rc.pv_id
10603
         SELECT rc.pv_id
10511
           FROM release_content rc
10604
           FROM release_content rc
10512
          WHERE rc.pv_id = patch_rec.pv_id;
10605
          WHERE rc.pv_id = patch_rec.pv_id;
10513
 
10606
 
10514
      releases_rec         releases_cur%ROWTYPE;
10607
      releases_rec releases_cur%ROWTYPE;
10515
   BEGIN
10608
   BEGIN
10516
      -- Get Last Install Order
10609
      -- Get Last Install Order
10517
      SELECT COUNT (*)
10610
      SELECT COUNT (*)
10518
        INTO lastinstallorder
10611
        INTO lastinstallorder
10519
        FROM package_patches pp
10612
        FROM package_patches pp
Line 10552... Line 10645...
10552
                         dlocked, created_stamp, creator_id,
10645
                         dlocked, created_stamp, creator_id,
10553
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
10646
                         modified_stamp, modifier_id, v_mm, v_nmm, v_ext,
10554
                         src_path,
10647
                         src_path,
10555
                         pv_description,
10648
                         pv_description,
10556
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
10649
                         owner_id, is_patch, last_pv_id, build_type, is_build_env_required, bs_id,
10557
						 is_autobuildable, ripple_field
10650
                         is_autobuildable, ripple_field
10558
                        )
10651
                        )
10559
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
10652
                 VALUES (patchpv_id, parpkg_id, snewpatchversion,
10560
                         ispatchdlocked, ora_sysdate, nuserid,
10653
                         ispatchdlocked, ora_sysdate, nuserid,
10561
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
10654
                         ora_sysdatetime, nuserid, ssv_mm, ssv_nmm, ssv_ext,
10562
                         parent_rec.src_path,
10655
                         parent_rec.src_path,
Line 10567... Line 10660...
10567
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
10660
                         nuserid, 'Y', patchpv_id, 'M', 'N', 3, 'N', parent_rec.ripple_field
10568
                        );
10661
                        );
10569
 
10662
 
10570
            INSERT INTO package_patches
10663
            INSERT INTO package_patches
10571
                        (pv_id, patch_id, install_order)
10664
                        (pv_id, patch_id, install_order)
10572
               (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10665
                (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10573
                       lastinstallorder + 1 AS install_order
10666
                        lastinstallorder + 1 AS install_order
10574
                  FROM package_versions pv
10667
                   FROM package_versions pv
10575
                 WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
10668
                  WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
10576
 
10669
 
10577
            /* LOG ACTION */
10670
            /* LOG ACTION */
10578
            log_action (patchpv_id,
10671
            log_action (patchpv_id,
10579
                        'new_version',
10672
                        'new_version',
10580
                        nuserid,
10673
                        nuserid,
Line 10602... Line 10695...
10602
                  SET is_patch = 'Y'
10695
                  SET is_patch = 'Y'
10603
                WHERE pv_id = patchpv_id;
10696
                WHERE pv_id = patchpv_id;
10604
 
10697
 
10605
               INSERT INTO package_patches
10698
               INSERT INTO package_patches
10606
                           (pv_id, patch_id, install_order)
10699
                           (pv_id, patch_id, install_order)
10607
                  (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10700
                   (SELECT nparentpvid AS pv_id, pv.pv_id AS patch_id,
10608
                          lastinstallorder + 1 AS install_order
10701
                           lastinstallorder + 1 AS install_order
10609
                     FROM package_versions pv
10702
                      FROM package_versions pv
10610
                    WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
10703
                     WHERE pv.pv_id = patchpv_id AND pv.is_patch = 'Y');
10611
            END IF;
10704
            END IF;
10612
 
10705
 
10613
            CLOSE releases_cur;
10706
            CLOSE releases_cur;
10614
 
10707
 
10615
            /* LOG ACTION */
10708
            /* LOG ACTION */
Line 10633... Line 10726...
10633
               WHERE dep.pv_id = patchpv_id;
10726
               WHERE dep.pv_id = patchpv_id;
10634
 
10727
 
10635
         -- Insert new dependencies
10728
         -- Insert new dependencies
10636
         INSERT INTO package_dependencies
10729
         INSERT INTO package_dependencies
10637
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
10730
                     (pv_id, dpv_id, pkg_id, dpkg_id, build_type)
10638
            SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
10731
              SELECT patchpv_id AS pv_id, pv.pv_id AS dpv_id,
10639
                   parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
10732
                     parpkg_id AS pkg_id, pv.pkg_id AS dpkg_id,
10640
                   'L' AS build_type
10733
                     'L' AS build_type
10641
              FROM package_versions pv
10734
                FROM package_versions pv
10642
             WHERE pv.pv_id IN (
10735
               WHERE pv.pv_id IN (
10643
                      SELECT *
10736
                      SELECT *
10644
                        FROM TABLE
10737
                        FROM TABLE
10645
                                (CAST
10738
                                (CAST
10646
                                    (opatchdepcollector AS relmgr_number_tab_t)
10739
                                    (opatchdepcollector AS relmgr_number_tab_t)
10647
                                ));
10740
                                ));
Line 10698... Line 10791...
10698
                     SELECT DISTINCT dep.PV_ID
10791
                     SELECT DISTINCT dep.PV_ID
10699
                       FROM PACKAGE_DEPENDENCIES dep
10792
                       FROM PACKAGE_DEPENDENCIES dep
10700
                      WHERE dep.DPV_ID = PatchId
10793
                      WHERE dep.DPV_ID = PatchId
10701
                     );
10794
                     );
10702
 
10795
 
10703
         */
10796
      */
10704
 
10797
 
10705
      /* LOG ACTION */
10798
      /* LOG ACTION */
10706
      IF isobsolete IS NOT NULL
10799
      IF isobsolete IS NOT NULL
10707
      THEN
10800
      THEN
10708
         log_action (patchid,
10801
         log_action (patchid,
Line 10748... Line 10841...
10748
                          (SELECT CAST
10841
                          (SELECT CAST
10749
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10842
                                     (in_list_number (spatchidlist) AS relmgr_number_tab_t
10750
                                     )
10843
                                     )
10751
                             FROM DUAL
10844
                             FROM DUAL
10752
                          ));
10845
                          ));
10753
   /*
10846
      /*
10754
   -- Update patch children
10847
      -- Update patch children
10755
   UPDATE PACKAGE_VERSIONS pv SET
10848
      UPDATE PACKAGE_VERSIONS pv SET
10756
   pv.IS_OBSOLETE = IsObsolete,
10849
      pv.IS_OBSOLETE = IsObsolete,
10757
   pv.OBSOLETE_COMMENTS = ObsoleteComments
10850
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10758
   WHERE pv.PV_ID IN (
10851
      WHERE pv.PV_ID IN (
10759
                  SELECT DISTINCT dep.DPV_ID
10852
                     SELECT DISTINCT dep.DPV_ID
10760
                    FROM PACKAGE_DEPENDENCIES dep
10853
                       FROM PACKAGE_DEPENDENCIES dep
10761
                   WHERE dep.PV_ID = PatchId
10854
                      WHERE dep.PV_ID = PatchId
10762
                  );
10855
                     );
10763
 
10856
 
10764
 
10857
 
10765
   -- Update patch parent
10858
      -- Update patch parent
10766
   UPDATE PACKAGE_VERSIONS pv SET
10859
      UPDATE PACKAGE_VERSIONS pv SET
10767
   pv.IS_OBSOLETE = IsObsolete,
10860
      pv.IS_OBSOLETE = IsObsolete,
10768
   pv.OBSOLETE_COMMENTS = ObsoleteComments
10861
      pv.OBSOLETE_COMMENTS = ObsoleteComments
10769
   WHERE pv.PV_ID IN (
10862
      WHERE pv.PV_ID IN (
10770
                  SELECT DISTINCT dep.PV_ID
10863
                     SELECT DISTINCT dep.PV_ID
10771
                    FROM PACKAGE_DEPENDENCIES dep
10864
                       FROM PACKAGE_DEPENDENCIES dep
10772
                   WHERE dep.DPV_ID = PatchId
10865
                      WHERE dep.DPV_ID = PatchId
10773
                  );
10866
                     );
10774
 
10867
 
10775
      */
10868
      */
10776
 
10869
 
10777
   /* LOG ACTION
10870
      /* LOG ACTION
10778
   IF IsObsolete IS NOT NULL THEN
10871
      IF IsObsolete IS NOT NULL THEN
10779
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10872
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10780
                  'Obsolete patch. '|| ObsoleteComments );
10873
                     'Obsolete patch. '|| ObsoleteComments );
10781
   ELSE
10874
      ELSE
10782
      Log_Action ( PatchId, 'patch_obsolete', UserId,
10875
         Log_Action ( PatchId, 'patch_obsolete', UserId,
10783
                  'Undo patch obsolete.' );
10876
                     'Undo patch obsolete.' );
10784
   END IF;  */
10877
      END IF;  */
10785
   END;
10878
   END;
10786
 
10879
 
10787
/*-------------------------------------------------------------------------------------------------------*/
10880
/*-------------------------------------------------------------------------------------------------------*/
10788
   PROCEDURE add_process (
10881
   PROCEDURE add_process (
10789
      nprocid         IN   processes.proc_id%TYPE,
10882
      nprocid         IN   processes.proc_id%TYPE,
Line 10795... Line 10888...
10795
      npvid           IN   package_processes.pv_id%TYPE,
10888
      npvid           IN   package_processes.pv_id%TYPE,
10796
      nuserid         IN   NUMBER
10889
      nuserid         IN   NUMBER
10797
   )
10890
   )
10798
   IS
10891
   IS
10799
      pkgname   VARCHAR2 (100);
10892
      pkgname   VARCHAR2 (100);
10800
/*Rupesh Release on 17/05/2006*/
-
 
-
 
10893
 
10801
   BEGIN
10894
   BEGIN
10802
      INSERT INTO processes
10895
      INSERT INTO processes
10803
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10896
                  (proc_id, proc_name, proc_description, run_as, pkg_owner,
10804
                   is_interface
10897
                   is_interface
10805
                  )
10898
                  )
Line 10817... Line 10910...
10817
      nuserid       IN   NUMBER
10910
      nuserid       IN   NUMBER
10818
   )
10911
   )
10819
   IS
10912
   IS
10820
      processname   VARCHAR2 (4000);
10913
      processname   VARCHAR2 (4000);
10821
 
10914
 
10822
/*Rupesh Release on 17/05/2006*/
-
 
10823
      CURSOR proc_cur
10915
      CURSOR proc_cur
10824
      IS
10916
      IS
10825
         SELECT prc.proc_id
10917
         SELECT prc.proc_id
10826
           FROM processes prc
10918
           FROM processes prc
10827
          WHERE prc.proc_id IN (
10919
          WHERE prc.proc_id IN (
Line 10831... Line 10923...
10831
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10923
                                        (in_list_number (nprocidlist) AS relmgr_number_tab_t
10832
                                        )
10924
                                        )
10833
                                FROM DUAL
10925
                                FROM DUAL
10834
                             ));
10926
                             ));
10835
 
10927
 
10836
      proc_rec      proc_cur%ROWTYPE;
10928
      proc_rec  proc_cur%ROWTYPE;
10837
   BEGIN
10929
   BEGIN
10838
      OPEN proc_cur;
10930
      OPEN proc_cur;
10839
 
10931
 
10840
      FETCH proc_cur
10932
      FETCH proc_cur
10841
       INTO proc_rec;
10933
       INTO proc_rec;
10842
 
10934
 
10843
      WHILE proc_cur%FOUND
10935
      WHILE proc_cur%FOUND
10844
      LOOP
10936
      LOOP
10845
         INSERT INTO package_processes
10937
         INSERT INTO package_processes (proc_id, pv_id)
10846
                     (proc_id, pv_id
-
 
10847
                     )
-
 
10848
              VALUES (proc_rec.proc_id, npvid
10938
              VALUES (proc_rec.proc_id, npvid);
10849
                     );
-
 
10850
 
10939
 
10851
         SELECT prc.proc_name
10940
         SELECT prc.proc_name
10852
           INTO processname
10941
           INTO processname
10853
           FROM processes prc
10942
           FROM processes prc
10854
          WHERE prc.proc_id = proc_rec.proc_id;
10943
          WHERE prc.proc_id = proc_rec.proc_id;
Line 10871... Line 10960...
10871
      npvid     IN   package_processes.pv_id%TYPE,
10960
      npvid     IN   package_processes.pv_id%TYPE,
10872
      nuserid   IN   NUMBER
10961
      nuserid   IN   NUMBER
10873
   )
10962
   )
10874
   IS
10963
   IS
10875
      processname   VARCHAR2 (4000);
10964
      processname   VARCHAR2 (4000);
10876
/* Rupesh Release on 17/05/2006*/
-
 
10877
   BEGIN
10965
   BEGIN
10878
      SELECT prc.proc_name
10966
      SELECT prc.proc_name
10879
        INTO processname
10967
        INTO processname
10880
        FROM processes prc
10968
        FROM processes prc
10881
       WHERE prc.proc_id = nprocid;
10969
       WHERE prc.proc_id = nprocid;
Line 10889... Line 10977...
10889
                  nuserid,
10977
                  nuserid,
10890
                  'Removed process with health tag ' || processname
10978
                  'Removed process with health tag ' || processname
10891
                 );
10979
                 );
10892
   END;
10980
   END;
10893
/*-------------------------------------------------------------------------------------------------------*/
10981
/*-------------------------------------------------------------------------------------------------------*/
10894
  /* 
10982
   /*
10895
  Author: Rupesh Solanki
10983
   ** Author: Rupesh Solanki
10896
  Purpose: To move package versions from one release to another
10984
   ** Purpose: To move package versions from one release to another
10897
  Release: 4th September 2006 
10985
   ** Release: 4th September 2006
10898
  
-
 
10899
  */
10986
   */
10900
  PROCEDURE move_package (
10987
   PROCEDURE move_package (
10901
   	  npvid  			  IN package_versions.pv_id%TYPE,
10988
      npvid        IN package_versions.pv_id%TYPE,
10902
	  nrtagid 			  IN release_tags.rtag_id%TYPE,
10989
      nrtagid      IN release_tags.rtag_id%TYPE,
10903
	  nnewrtagid 		  IN release_tags.rtag_id%TYPE,
10990
      nnewrtagid   IN release_tags.rtag_id%TYPE,
10904
	  nuserid			  IN NUMBER	
10991
      nuserid      IN NUMBER
10905
  )	
10992
   )
10906
  IS	
10993
   IS
10907
  
10994
 
10908
  oldrtag_name VARCHAR2(4000);
10995
      oldrtag_name VARCHAR2(4000);newrtag_name VARCHAR2(4000);
-
 
10996
 
-
 
10997
   BEGIN
-
 
10998
      SELECT rtag_name into oldrtag_name
-
 
10999
      FROM RELEASE_TAGS
-
 
11000
      WHERE rtag_id = nrtagid;
-
 
11001
 
10909
  newrtag_name VARCHAR2(4000);
11002
      SELECT rtag_name into newrtag_name
-
 
11003
      FROM RELEASE_TAGS
-
 
11004
      WHERE rtag_id = nnewrtagid;
-
 
11005
 
-
 
11006
      /* Table Work In Progress*/
-
 
11007
      UPDATE WORK_IN_PROGRESS
-
 
11008
      SET RTAG_ID = nnewrtagid
-
 
11009
      WHERE RTAG_ID = nrtagid
-
 
11010
      AND PV_ID = npvid;
-
 
11011
 
-
 
11012
      /* Table PLANNED*/
-
 
11013
      UPDATE PLANNED
-
 
11014
      SET RTAG_ID = nnewrtagid
-
 
11015
      WHERE RTAG_ID = nrtagid
-
 
11016
      AND PV_ID = npvid;
10910
 
11017
 
10911
   
-
 
10912
    
-
 
10913
  BEGIN
-
 
10914
  
-
 
10915
  
-
 
10916
  SELECT rtag_name into oldrtag_name
-
 
10917
  FROM RELEASE_TAGS
-
 
10918
  WHERE rtag_id = nrtagid;
-
 
10919
  
-
 
10920
  SELECT rtag_name into newrtag_name
-
 
10921
  FROM RELEASE_TAGS
-
 
10922
  WHERE rtag_id = nnewrtagid;
-
 
10923
  
-
 
10924
  /* Table Work In Progress*/
-
 
10925
  	   UPDATE WORK_IN_PROGRESS
-
 
10926
	   SET RTAG_ID = nnewrtagid
-
 
10927
	   WHERE RTAG_ID = nrtagid
-
 
10928
	   AND PV_ID = npvid;
-
 
10929
	   
-
 
10930
  /* Table PLANNED*/	
-
 
10931
  	   UPDATE PLANNED
-
 
10932
	   SET RTAG_ID = nnewrtagid
-
 
10933
	   WHERE RTAG_ID = nrtagid
-
 
10934
	   AND PV_ID = npvid;   
-
 
10935
	   
-
 
10936
      -- Log Action --
11018
      -- Log Action --
10937
      log_action (npvid,
11019
      log_action (npvid,
10938
                  'move_package_version',
11020
                  'move_package_version',
10939
                  nuserid,
11021
                  nuserid,
10940
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
11022
                  'Moved package version from ' || oldrtag_name || ' to ' || newrtag_name
10941
                 );  	   	     
11023
                 );
10942
  
11024
   END;
10943
  
11025
 
10944
  END;
-
 
10945
  																							   																										   
-
 
10946
/*-------------------------------------------------------------------------------------------------------*/
11026
/*-------------------------------------------------------------------------------------------------------*/
-
 
11027
   /*
-
 
11028
   ** Author: Rupesh Solanki
-
 
11029
   ** Purpose: To modify the product state from integration to test to deployment
-
 
11030
   ** Release: 25th January 2006
-
 
11031
   */
10947
PROCEDURE modify_product_state (
11032
   PROCEDURE modify_product_state (
10948
   	  npvid IN package_versions.pv_id%TYPE,
11033
      npvid    IN package_versions.pv_id%TYPE,
10949
	  nrtagid IN release_tags.rtag_id%TYPE,
11034
      nrtagid  IN release_tags.rtag_id%TYPE,
10950
	  nstateid IN product_states.state_id%TYPE,
11035
      nstateid IN product_states.state_id%TYPE,
10951
	  nuserid IN NUMBER
11036
      nuserid  IN NUMBER
10952
   ) IS
11037
   ) IS
10953
   
11038
 
10954
   sStateName VARCHAR2(4000);
11039
      sStateName VARCHAR2(4000);
10955
   sRtagName VARCHAR2(4000);
11040
      sRtagName VARCHAR2(4000);
10956
   
-
 
10957
  /* 
-
 
10958
  Author: Rupesh Solanki
-
 
10959
  Purpose: To modify the product state from integration to test to deployment
-
 
10960
  Release: 25th January 2006 
-
 
10961
  */   
-
 
10962
   
11041
 
10963
  BEGIN
11042
   BEGIN
10964
  
11043
 
10965
  UPDATE RELEASE_CONTENT
11044
      UPDATE RELEASE_CONTENT
10966
  SET PRODUCT_STATE = nstateid
11045
      SET PRODUCT_STATE = nstateid
10967
  WHERE PV_ID = npvid
11046
      WHERE PV_ID = npvid
10968
  AND RTAG_ID = nrtagid;
11047
      AND RTAG_ID = nrtagid;
10969
  
11048
 
10970
  
11049
 
10971
  SELECT STATE INTO sStateName
11050
      SELECT STATE INTO sStateName
10972
  FROM PRODUCT_STATES 
11051
      FROM PRODUCT_STATES
10973
  WHERE STATE_ID = nstateid;
11052
      WHERE STATE_ID = nstateid;
10974
  
11053
 
10975
  SELECT RTAG_NAME into sRtagName
11054
      SELECT RTAG_NAME into sRtagName
10976
  FROM RELEASE_TAGS
11055
      FROM RELEASE_TAGS
10977
  WHERE RTAG_ID = nrtagid;
11056
      WHERE RTAG_ID = nrtagid;
10978
  
11057
 
10979
  
11058
 
10980
  -- Log Action --
11059
      -- Log Action --
10981
  log_action (npvid,
11060
      log_action (npvid,
10982
              'modify_product_state',
11061
                  'modify_product_state',
10983
               nuserid,
11062
                     nuserid,
10984
               sStateName || ' in '|| sRtagName
11063
                     sStateName || ' in '|| sRtagName
10985
              );  
11064
                  );
10986
			  
-
 
10987
			  
11065
   END;
10988
  END;			  	   	     
-
 
10989
/*-------------------------------------------------------------------------------------------------------*/
11066
/*-------------------------------------------------------------------------------------------------------*/
-
 
11067
   /*
-
 
11068
   ** Author: Jeremy Tweddle
-
 
11069
   ** Date: 24/Aug/2007
-
 
11070
   */
10990
  PROCEDURE add_code_review_url (
11071
   PROCEDURE add_code_review_url (
10991
        npvid           IN    NUMBER,
11072
      npvid           IN    NUMBER,
10992
        nprojid         IN    NUMBER,
11073
      nprojid         IN    NUMBER,
10993
        surl            IN    VARCHAR2,
11074
      surl            IN    VARCHAR2,
10994
        sreason         IN    VARCHAR2,
11075
      sreason         IN    VARCHAR2,
10995
        ddateofreview   IN    DATE
11076
      ddateofreview   IN    DATE
10996
  ) IS
11077
   ) IS
10997
  
11078
 
10998
  ncrid NUMBER;
11079
      ncrid NUMBER;
10999
  
-
 
11000
  /* 
-
 
11001
  Author: Jeremy Tweddle
-
 
11002
  Date: 24/Aug/2007 
-
 
11003
  */   
-
 
11004
  
11080
 
11005
  BEGIN
11081
   BEGIN
11006
  
11082
 
11007
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
11083
      SELECT seq_cr_id.NEXTVAL INTO ncrid FROM DUAL;
11008
      
-
 
11009
      
11084
 
11010
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review,
11085
      INSERT INTO code_review_url ( cr_id, pv_id, proj_id, url, reason, date_of_review,
11011
                                    last_modified )
11086
                                    last_modified )
11012
      VALUES ( ncrid, npvid, nprojid, surl, sreason, ddateofreview, ora_sysdate );
11087
      VALUES ( ncrid, npvid, nprojid, surl, sreason, ddateofreview, ora_sysdate );
11013
  
11088
 
11014
  END;
11089
   END;
11015
/*-------------------------------------------------------------------------------------------------------*/
11090
/*-------------------------------------------------------------------------------------------------------*/
-
 
11091
   /*
-
 
11092
   ** Author: Jeremy Tweddle
-
 
11093
   ** Date: 22/Aug/2007
-
 
11094
   */
11016
  PROCEDURE update_code_review_url (
11095
   PROCEDURE update_code_review_url (
11017
        ncrid           IN    NUMBER,
11096
      ncrid           IN    NUMBER,
11018
        nprojid         IN    NUMBER,
11097
      nprojid         IN    NUMBER,
11019
        surl            IN    VARCHAR2,
11098
      surl            IN    VARCHAR2,
11020
        sreason         IN    VARCHAR2
11099
      sreason         IN    VARCHAR2
11021
  ) IS
11100
   ) IS
11022
   
-
 
11023
  /* 
-
 
11024
  Author: Jeremy Tweddle
-
 
11025
  Date: 22/Aug/2007 
-
 
11026
  */ 
-
 
11027
  
11101
 
11028
  BEGIN
11102
   BEGIN
11029
  
11103
 
11030
      UPDATE code_review_url
11104
      UPDATE code_review_url
11031
      SET url = surl,
11105
      SET url = surl,
11032
          proj_id = nprojid,
11106
          proj_id = nprojid,
11033
          reason = sreason,
11107
          reason = sreason,
11034
          last_modified = ora_sysdate
11108
          last_modified = ora_sysdate
11035
      WHERE cr_id = ncrid;
11109
      WHERE cr_id = ncrid;
11036
  
11110
 
11037
  END;
11111
   END;
11038
/*-------------------------------------------------------------------------------------------------------*/
11112
/*-------------------------------------------------------------------------------------------------------*/
11039
  PROCEDURE remove_code_review_url (
-
 
11040
        ncrid           IN    NUMBER
-
 
11041
  ) IS
-
 
11042
  
-
 
11043
  /* 
11113
   /*
11044
  Author: Jeremy Tweddle
11114
   ** Author: Jeremy Tweddle
11045
  Date: 22/Aug/2007 
11115
   ** Date: 22/Aug/2007
11046
  */
11116
   */
-
 
11117
   PROCEDURE remove_code_review_url (
-
 
11118
      ncrid  IN    NUMBER
-
 
11119
   ) IS
11047
  
11120
 
11048
  BEGIN
11121
   BEGIN
11049
  
-
 
11050
      DELETE FROM code_review_url
11122
      DELETE FROM code_review_url
11051
      WHERE cr_id = ncrid;
11123
      WHERE cr_id = ncrid;
11052
  
-
 
11053
  END;
11124
   END;
11054
/*-------------------------------------------------------------------------------------------------------*/
11125
/*-------------------------------------------------------------------------------------------------------*/
11055
END pk_package;
11126
END pk_package;
11056
/
11127
/
11057
 
11128
 
11058
CREATE OR REPLACE PACKAGE BODY                 pk_archive
11129
CREATE OR REPLACE PACKAGE BODY                 pk_archive
Line 18824... Line 18895...
18824
CREATE OR REPLACE PACKAGE BODY                   "PK_PLANNED" IS
18895
CREATE OR REPLACE PACKAGE BODY                   "PK_PLANNED" IS
18825
 
18896
 
18826
/*
18897
/*
18827
------------------------------
18898
------------------------------
18828
||  Last Modified:  G.Huddy
18899
||  Last Modified:  G.Huddy
18829
||  Modified Date:  05/Aug/2008
18900
||  Modified Date:  28/May/2008
18830
||  Body Version:   1.2
18901
||  Body Version:   1.1
18831
------------------------------
18902
------------------------------
18832
*/
18903
*/
18833
 
18904
 
18834
 
18905
 
18835
/*-------------------------------------------------------------------------------------------------------*/
18906
/*-------------------------------------------------------------------------------------------------------*/
18836
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
18907
PROCEDURE ADD_PACKAGE ( newPvId IN NUMBER, ViewId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
18837
 
18908
 
18838
    oldPvId NUMBER;
18909
	oldPvId NUMBER;
18839
    ReleaseLocation VARCHAR2(4000);
18910
	ReleaseLocation VARCHAR2(4000);
18840
    IsPatch CHAR(1) := NULL;
18911
	IsPatch CHAR(1) := NULL;
18841
    sLocation VARCHAR2(4000) := NULL;
18912
	sLocation VARCHAR2(4000) := NULL;
18842
    nRtagIdLocation NUMBER;
18913
	nRtagIdLocation NUMBER;
18843
 
18914
 
18844
 
18915
 
18845
 
18916
 
18846
BEGIN
18917
BEGIN
18847
    /*--------------- Business Rules Here -------------------*/
18918
	/*--------------- Business Rules Here -------------------*/
18848
    /*-------------------------------------------------------*/
18919
	/*-------------------------------------------------------*/
18849
 
18920
 
18850
    BEGIN
18921
	BEGIN
18851
        -- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
18922
		-- Check if Exists in "Work in progress" anywhere in the world, except "Closed mode" releases
18852
        SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
18923
		SELECT proj.PROJ_NAME ||' > '|| rt.RTAG_NAME, rt.RTAG_ID  INTO sLocation, nRtagIdLocation
18853
          FROM PLANNED pl,
18924
		  FROM PLANNED pl,
18854
               RELEASE_TAGS rt,
18925
			   RELEASE_TAGS rt,
18855
               PROJECTS proj
18926
			   PROJECTS proj
18856
         WHERE pl.PV_ID = newPvId
18927
		 WHERE pl.PV_ID = newPvId
18857
           AND pl.RTAG_ID = rt.RTAG_ID
18928
		   AND pl.RTAG_ID = rt.RTAG_ID
18858
           AND rt.OFFICIAL != 'Y'
18929
		   AND rt.OFFICIAL != 'Y'
18859
           AND rt.PROJ_ID = proj.PROJ_ID;
18930
		   AND rt.PROJ_ID = proj.PROJ_ID;
18860
 
-
 
18861
        EXCEPTION
-
 
18862
            WHEN NO_DATA_FOUND THEN
-
 
18863
                sLocation := NULL;
-
 
18864
    END;
-
 
18865
 
18931
 
-
 
18932
		EXCEPTION
-
 
18933
			WHEN NO_DATA_FOUND THEN
-
 
18934
				sLocation := NULL;
-
 
18935
	END;
18866
 
18936
 
18867
 
18937
 
18868
    IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
-
 
18869
 
-
 
18870
        -- Add to "Pending" area
-
 
18871
        INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
-
 
18872
        VALUES( RtagId, newPvId, ViewId, 'R' );
-
 
18873
 
18938
 
-
 
18939
	IF (sLocation IS NULL) OR (nRtagIdLocation = RtagId) THEN
18874
 
18940
 
18875
        /* LOG ACTION */
18941
		-- Add to "Pending" area
18876
        SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18942
		INSERT INTO PLANNED ( RTAG_ID, PV_ID, VIEW_ID, OPERATION )
18877
          FROM PROJECTS proj,
-
 
18878
               RELEASE_TAGS rt
-
 
18879
         WHERE rt.PROJ_ID = proj.PROJ_ID
-
 
18880
           AND rt.RTAG_ID = RtagId;
18943
		VALUES( RtagId, newPvId, ViewId, 'R' );
18881
 
18944
 
18882
        Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
-
 
18883
 
18945
 
-
 
18946
		/* LOG ACTION */
-
 
18947
		SELECT proj.PROJ_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
-
 
18948
		  FROM PROJECTS proj,
18884
    ELSE
18949
			   RELEASE_TAGS rt
-
 
18950
		 WHERE rt.PROJ_ID = proj.PROJ_ID
-
 
18951
		   AND rt.RTAG_ID = RtagId;
18885
 
18952
 
18886
        RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
18953
		Log_Action ( newPvId, 'add_to_planned', UserId, 'Location: '|| ReleaseLocation );
18887
 
18954
 
-
 
18955
	ELSE
-
 
18956
 
-
 
18957
		RAISE_APPLICATION_ERROR (-20000, 'This version is already in Pending Area at '|| sLocation ||'.' );
-
 
18958
 
18888
    END IF;
18959
	END IF;
18889
 
18960
 
18890
END;
18961
END;
18891
/*-------------------------------------------------------------------------------------------------------*/
18962
/*-------------------------------------------------------------------------------------------------------*/
18892
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
18963
PROCEDURE REMOVE_PACKAGE ( PvId IN NUMBER, RtagId IN NUMBER, UserId IN NUMBER ) IS
18893
 
18964
 
18894
    ReleaseLocation VARCHAR2(4000);
18965
	ReleaseLocation VARCHAR2(4000);
18895
 
18966
 
18896
BEGIN
18967
BEGIN
18897
 
18968
 
18898
    /*--------------- Business Rules Here -------------------*/
18969
	/*--------------- Business Rules Here -------------------*/
18899
    /*-------------------------------------------------------*/
18970
	/*-------------------------------------------------------*/
18900
 
18971
 
18901
 
18972
 
18902
    -- Get release location for logging pusposes
18973
	-- Get release location for logging pusposes
18903
    SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18974
	SELECT proj.PROJ_NAME  ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
18904
      FROM PROJECTS proj,
18975
	  FROM PROJECTS proj,
18905
           RELEASE_TAGS rt
18976
		   RELEASE_TAGS rt
18906
     WHERE rt.PROJ_ID = proj.PROJ_ID
18977
	 WHERE rt.PROJ_ID = proj.PROJ_ID
18907
       AND rt.RTAG_ID = RtagId;
18978
	   AND rt.RTAG_ID = RtagId;
18908
 
18979
 
18909
 
18980
 
18910
    -- Delete from Work In Progress
18981
	-- Delete from Work In Progress
18911
    DELETE
18982
	DELETE
18912
      FROM PLANNED pl
18983
	  FROM PLANNED pl
18913
     WHERE pl.RTAG_ID = RtagId
18984
	 WHERE pl.RTAG_ID = RtagId
18914
       AND pl.PV_ID = PvId;
18985
	   AND pl.PV_ID = PvId;
18915
 
18986
 
18916
    Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
18987
	Log_Action ( PvId, 'deleted_from_pending', UserId, 'Location: '|| ReleaseLocation );
18917
 
18988
 
18918
 
18989
 
18919
 
18990
 
18920
 
18991
 
18921
END;
18992
END;
18922
/*-------------------------------------------------------------------------------------------------------*/
18993
/*-------------------------------------------------------------------------------------------------------*/
18923
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
18994
FUNCTION GET_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER ) RETURN NUMBER IS
18924
 
18995
 
18925
    ReturnValue NUMBER;
18996
	ReturnValue NUMBER;
18926
 
18997
 
18927
BEGIN
18998
BEGIN
18928
    SELECT pl.VIEW_ID INTO ReturnValue
18999
	SELECT pl.VIEW_ID INTO ReturnValue
18929
      FROM PLANNED pl
19000
	  FROM PLANNED pl
18930
     WHERE pl.RTAG_ID = RtagId
19001
	 WHERE pl.RTAG_ID = RtagId
18931
       AND pl.PV_ID = PvId;
19002
	   AND pl.PV_ID = PvId;
18932
 
19003
 
18933
    RETURN ReturnValue;
19004
	RETURN ReturnValue;
18934
END;
19005
END;
18935
/*-------------------------------------------------------------------------------------------------------*/
19006
/*-------------------------------------------------------------------------------------------------------*/
18936
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
19007
PROCEDURE GET_VIEW_CONTENT ( RtagId IN NUMBER, ViewId IN NUMBER, RecordSet OUT typeCur ) IS
18937
 
19008
 
18938
    IsBaseView CHAR(1);
19009
	IsBaseView CHAR(1);
18939
 
19010
 
18940
BEGIN
19011
BEGIN
18941
 
19012
 
18942
    -- Check if the view is BASE VIEW
19013
	-- Check if the view is BASE VIEW
18943
    SELECT vi.BASE_VIEW INTO IsBaseView
19014
	SELECT vi.BASE_VIEW INTO IsBaseView
18944
      FROM VIEWS vi
19015
	  FROM VIEWS vi
18945
     WHERE vi.VIEW_ID = ViewId;
19016
	 WHERE vi.VIEW_ID = ViewId;
18946
 
-
 
18947
 
-
 
18948
    IF (IsBaseView = 'Y') THEN
-
 
18949
        -- Get Base view content
-
 
18950
        OPEN RecordSet FOR
-
 
18951
        SELECT 0 AS PKG_STATE,
-
 
18952
               NULL AS DEPRECATED_STATE,
-
 
18953
               pv.pv_id,
-
 
18954
               pkg.pkg_name,
-
 
18955
               pv.pkg_version,
-
 
18956
               pv.dlocked,
-
 
18957
               pv.pv_description,
-
 
18958
               pv.BUILD_TYPE,
-
 
18959
               rel.operation
-
 
18960
          FROM PLANNED rel,
-
 
18961
               packages pkg,
-
 
18962
               package_versions pv
-
 
18963
         WHERE pv.pkg_id = pkg.pkg_id
-
 
18964
           AND rel.pv_id = pv.pv_id
-
 
18965
           AND rel.VIEW_ID = ViewId
-
 
18966
           AND rel.RTAG_ID = RtagId
-
 
18967
         ORDER BY UPPER(pkg.PKG_NAME);
-
 
18968
 
19017
 
18969
    ELSE
-
 
18970
 
19018
 
-
 
19019
	IF (IsBaseView = 'Y') THEN
18971
        -- Get non base view content
19020
		-- Get Base view content
18972
        OPEN RecordSet FOR
19021
		OPEN RecordSet FOR
18973
        SELECT 0 AS PKG_STATE,
19022
		SELECT 0 AS PKG_STATE,
18974
               NULL AS DEPRECATED_STATE,
19023
			   NULL AS DEPRECATED_STATE,
18975
               pv.pv_id,
19024
			   pv.pv_id,
18976
               pkg.pkg_name,
19025
			   pkg.pkg_name,
18977
               pv.pkg_version,
19026
			   pv.pkg_version,
18978
               pv.dlocked,
19027
			   pv.dlocked,
18979
               pv.pv_description,
19028
			   pv.pv_description,
18980
               pv.BUILD_TYPE,
19029
			   pv.BUILD_TYPE,
18981
               rel.operation
19030
			   rel.operation
18982
          FROM PLANNED rel,
19031
		  FROM PLANNED rel,
18983
               packages pkg,
19032
			   packages pkg,
18984
               package_versions pv,
19033
			   package_versions pv
18985
               VIEW_DEF vd
-
 
18986
         WHERE pv.pkg_id = pkg.pkg_id
19034
		 WHERE pv.pkg_id = pkg.pkg_id
18987
           AND rel.pv_id = pv.pv_id
19035
		   AND rel.pv_id = pv.pv_id
18988
           AND rel.RTAG_ID = RtagId
-
 
18989
           AND vd.VIEW_ID = ViewId
19036
		   AND rel.VIEW_ID = ViewId
18990
           AND vd.PKG_ID = pv.PKG_ID
19037
		   AND rel.RTAG_ID = RtagId
18991
         ORDER BY UPPER(pkg.PKG_NAME);
19038
		 ORDER BY UPPER(pkg.PKG_NAME);
-
 
19039
 
-
 
19040
	ELSE
18992
 
19041
 
-
 
19042
		-- Get non base view content
-
 
19043
		OPEN RecordSet FOR
-
 
19044
		SELECT 0 AS PKG_STATE,
-
 
19045
			   NULL AS DEPRECATED_STATE,
-
 
19046
			   pv.pv_id,
-
 
19047
			   pkg.pkg_name,
-
 
19048
			   pv.pkg_version,
-
 
19049
			   pv.dlocked,
-
 
19050
			   pv.pv_description,
-
 
19051
			   pv.BUILD_TYPE,
-
 
19052
			   rel.operation
-
 
19053
		  FROM PLANNED rel,
-
 
19054
			   packages pkg,
-
 
19055
			   package_versions pv,
-
 
19056
			   VIEW_DEF vd
-
 
19057
		 WHERE pv.pkg_id = pkg.pkg_id
-
 
19058
		   AND rel.pv_id = pv.pv_id
-
 
19059
		   AND rel.RTAG_ID = RtagId
-
 
19060
		   AND vd.VIEW_ID = ViewId
-
 
19061
		   AND vd.PKG_ID = pv.PKG_ID
-
 
19062
		 ORDER BY UPPER(pkg.PKG_NAME);
-
 
19063
 
18993
    END IF;
19064
	END IF;
18994
 
19065
 
18995
 
19066
 
18996
END;
19067
END;
18997
/*-------------------------------------------------------------------------------------------------------*/
19068
/*-------------------------------------------------------------------------------------------------------*/
18998
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
19069
PROCEDURE CHANGE_PACKAGE_VIEW ( PvId IN NUMBER, RtagId IN NUMBER, NewViewId IN NUMBER ) IS
18999
 
19070
 
19000
BEGIN
19071
BEGIN
19001
 
19072
 
19002
    UPDATE PLANNED pl SET
19073
	UPDATE PLANNED pl SET
19003
    pl.VIEW_ID = NewViewId
19074
	pl.VIEW_ID = NewViewId
19004
    WHERE pl.PV_ID = PvId
19075
	WHERE pl.PV_ID = PvId
19005
      AND pl.RTAG_ID = RtagId;
19076
	  AND pl.RTAG_ID = RtagId;
19006
 
19077
 
19007
END;
19078
END;
19008
/*-------------------------------------------------------------------------------------------------------*/
19079
/*-------------------------------------------------------------------------------------------------------*/
19009
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
19080
-- DEVI-45275 This new function supports the ability to insert into the planned table, and existing
19010
-- version of a package as part of a release-to-release merge operation carried out within release manager.
19081
-- version of a package as part of a release-to-release merge operation carried out within release manager.
Line 19080... Line 19151...
19080
END;
19151
END;
19081
/*-------------------------------------------------------------------------------------------------------*/
19152
/*-------------------------------------------------------------------------------------------------------*/
19082
END PK_PLANNED;
19153
END PK_PLANNED;
19083
/
19154
/
19084
 
19155
 
19085
CREATE OR REPLACE PACKAGE BODY  pk_rmapi
19156
CREATE OR REPLACE PACKAGE BODY                   "PK_RMAPI"
19086
IS
19157
IS
19087
/*
19158
/*
19088
------------------------------
19159
------------------------------
19089
||  Last Modified:  Jeremy Tweddle
19160
||  Last Modified:  Gordon Huddy
19090
||  Modified Date:  08/Feb/2008
19161
||  Modified Date:  08/Aug/2008
19091
||  Body Version:   3.3
19162
||  Body Version:   3.4
19092
------------------------------
19163
------------------------------
19093
*/
19164
*/
19094
 
19165
 
19095
   /*-------------------------------------------------------------------------------------------------------*/
19166
   /*-------------------------------------------------------------------------------------------------------*/
19096
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
19167
   FUNCTION package_dependencies (pkgname VARCHAR2, pkgversion VARCHAR2)
Line 19862... Line 19933...
19862
      metricstring             IN   VARCHAR2
19933
      metricstring             IN   VARCHAR2
19863
   )
19934
   )
19864
      RETURN NUMBER
19935
      RETURN NUMBER
19865
   IS
19936
   IS
19866
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
19937
      citemcollection          relmgr_varchar2_tab_t  := relmgr_varchar2_tab_t ();
19867
      pvid                     NUMBER                 := 0;
19938
      lv_pvid                  NUMBER                 := 0;
19868
      rownumber                NUMBER;
19939
      rownumber                NUMBER;
19869
      rowcontent               VARCHAR2(4000);
19940
      rowcontent               VARCHAR2(4000);
19870
      metricname               VARCHAR2(1000);
19941
      metricname               VARCHAR2(1000);
19871
      metricvalue              VARCHAR2(4000);
19942
      metricvalue              VARCHAR2(4000);
19872
      return_insert_error      NUMBER                 := -1;
19943
      return_insert_error      NUMBER                 := -1;
19873
      return_insert_success    NUMBER                 := 0;
19944
      return_insert_success    NUMBER                 := 0;
19874
 
19945
 
19875
      /* Metrics */
19946
      /* Metrics */
19876
      branches                 NUMBER;
19947
      lv_branches                 NUMBER;
19877
      branchlist               VARCHAR2(4000);
19948
      lv_branchlist               VARCHAR2(4000);
19878
      codefiles                NUMBER;
19949
      lv_codefiles                NUMBER;
19879
      ignoredfiles             NUMBER;
19950
      lv_ignoredfiles             NUMBER;
19880
      directories              NUMBER;
19951
      lv_directories              NUMBER;
19881
      directorydepth           NUMBER;
19952
      lv_directorydepth           NUMBER;
19882
      totalfiles               NUMBER;
19953
      lv_totalfiles               NUMBER;
19883
      makefiles                NUMBER;
19954
      lv_makefiles                NUMBER;
19884
      blanklines               NUMBER;
19955
      lv_blanklines               NUMBER;
19885
      codelines                NUMBER;
19956
      lv_codelines                NUMBER;
19886
      commentlines             NUMBER;
19957
      lv_commentlines             NUMBER;
19887
 
19958
 
19888
   BEGIN
19959
   BEGIN
19889
      /*--------------- Business Rules Here -------------------*/
19960
      /*--------------- Business Rules Here -------------------*/
19890
      IF (rtagid IS NULL)
19961
      IF (rtagid IS NULL)
19891
      THEN
19962
      THEN
Line 19902... Line 19973...
19902
         RETURN return_insert_error;
19973
         RETURN return_insert_error;
19903
      END IF;
19974
      END IF;
19904
 
19975
 
19905
      BEGIN
19976
      BEGIN
19906
         SELECT pv.pv_id
19977
         SELECT pv.pv_id
19907
           INTO pvid
19978
           INTO lv_pvid
19908
           FROM package_versions pv, packages pkg, release_content rc
19979
           FROM package_versions pv, packages pkg, release_content rc
19909
          WHERE pv.pkg_id = pkg.pkg_id
19980
          WHERE pv.pkg_id = pkg.pkg_id
19910
            AND rc.rtag_id = rtagid
19981
            AND rc.rtag_id = rtagid
19911
            AND pv.pv_id = rc.pv_id
19982
            AND pv.pv_id = rc.pv_id
19912
            AND pkg.pkg_name = pkgname
19983
            AND pkg.pkg_name = pkgname
19913
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
19984
            AND NVL (pv.v_ext, '|LINK_A_NULL|') = NVL (vext, '|LINK_A_NULL|');
19914
      EXCEPTION
19985
      EXCEPTION
19915
           WHEN NO_DATA_FOUND
19986
           WHEN NO_DATA_FOUND
19916
           THEN
19987
           THEN
19917
                pvid := 0;
19988
                lv_pvid := 0;
19918
      END;
19989
      END;
19919
 
19990
 
19920
      citemcollection := in_list_varchar2 (metricstring, ';');
19991
      citemcollection := in_list_varchar2 (metricstring, ';');
19921
 
19992
 
19922
      FOR rownumber IN 1 .. citemcollection.COUNT
19993
      FOR rownumber IN 1 .. citemcollection.COUNT
19923
      LOOP
19994
      LOOP
19924
         rowcontent := citemcollection(rownumber);
19995
         rowcontent := citemcollection(rownumber);
19925
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
19996
         metricvalue := SUBSTR(rowcontent, (INSTR(rowcontent, '=') + 1));
19926
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
19997
         metricname := REGEXP_REPLACE(rowcontent, '=.*$', '');
19927
 
19998
 
19928
         IF    metricname = 'ccbranch.count' THEN branches := metricvalue;
19999
         IF    metricname = 'ccbranch.count' THEN lv_branches := metricvalue;
19929
         ELSIF metricname = 'ccbranch.list' THEN branchlist := metricvalue;
20000
         ELSIF metricname = 'ccbranch.list' THEN lv_branchlist := metricvalue;
19930
         ELSIF metricname = 'code.files' THEN codefiles := metricvalue;
20001
         ELSIF metricname = 'code.files' THEN lv_codefiles := metricvalue;
19931
         ELSIF metricname = 'code.ignored' THEN ignoredfiles := metricvalue;
20002
         ELSIF metricname = 'code.ignored' THEN lv_ignoredfiles := metricvalue;
19932
         ELSIF metricname = 'count.dir' THEN directories := metricvalue;
20003
         ELSIF metricname = 'count.dir' THEN lv_directories := metricvalue;
19933
         ELSIF metricname = 'count.dirdepth' THEN directorydepth := metricvalue;
20004
         ELSIF metricname = 'count.dirdepth' THEN lv_directorydepth := metricvalue;
19934
         ELSIF metricname = 'count.file' THEN totalfiles := metricvalue;
20005
         ELSIF metricname = 'count.file' THEN lv_totalfiles := metricvalue;
19935
         ELSIF metricname = 'count.makefile' THEN makefiles := metricvalue;
20006
         ELSIF metricname = 'count.makefile' THEN lv_makefiles := metricvalue;
19936
         ELSIF metricname = 'lines.blank' THEN blanklines := metricvalue;
20007
         ELSIF metricname = 'lines.blank' THEN lv_blanklines := metricvalue;
19937
         ELSIF metricname = 'lines.code' THEN codelines := metricvalue;
20008
         ELSIF metricname = 'lines.code' THEN lv_codelines := metricvalue;
19938
         ELSIF metricname = 'lines.comment' THEN commentlines := metricvalue;
20009
         ELSIF metricname = 'lines.comment' THEN lv_commentlines := metricvalue;
19939
         END IF;
20010
         END IF;
19940
      END LOOP;
20011
      END LOOP;
19941
 
20012
 
19942
      IF (pvid > 0)
20013
      IF (lv_pvid > 0)
19943
      THEN
20014
      THEN
19944
         -- Delete any existing entries for this package version to makes sure our data is untainted
20015
         -- Delete any existing entries for this package version to makes sure our data is untainted
19945
         DELETE FROM package_metrics pm
20016
         DELETE FROM package_metrics pm
19946
         WHERE pm.pv_id = pvid;
20017
         WHERE pm.pv_id = lv_pvid;
19947
         
20018
 
19948
         -- Insert the new data into the metrics table
20019
         -- Insert the new data into the metrics table
19949
         INSERT INTO package_metrics
20020
         INSERT INTO package_metrics
19950
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
20021
                     (pv_id, branches, branch_list, code_files, ignored_files, directories, directory_depth,
19951
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
20022
                      total_files, makefiles, blank_lines, code_lines, comment_lines, created_stamp
19952
                     )
20023
                     )
19953
              VALUES (pvid, branches, branchlist, codefiles, ignoredfiles, directories, directorydepth,
20024
              VALUES (lv_pvid, lv_branches, lv_branchlist, lv_codefiles, lv_ignoredfiles, lv_directories, lv_directorydepth,
19954
                      totalfiles, makefiles, blanklines, codelines, commentlines, ora_sysdatetime
20025
                      lv_totalfiles, lv_makefiles, lv_blanklines, lv_codelines, lv_commentlines, ora_sysdatetime
19955
                     );
20026
                     );
19956
         
20027
 
19957
         -- Now update the Release_Metrics Table
20028
         -- Now update the Release_Metrics Table
19958
         update_release_metrics(rtagid);
20029
         update_release_metrics(rtagid);
19959
         
20030
 
19960
         RETURN return_insert_success;
20031
         RETURN return_insert_success;
19961
      ELSE
20032
      ELSE
19962
         RETURN return_insert_error;
20033
         RETURN return_insert_error;
19963
      END IF;
20034
      END IF;
19964
   END;
20035
   END;
19965
   
20036
 
19966
/*-------------------------------------------------------------------------------------------------------*/
20037
/*-------------------------------------------------------------------------------------------------------*/
19967
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
20038
   PROCEDURE update_release_metrics (rtagid IN NUMBER)
19968
   IS
20039
   IS
19969
      totalpackages       NUMBER;
20040
      lv_totalpackages       NUMBER;
19970
      autobuilt           NUMBER;
20041
      lv_autobuilt           NUMBER;
19971
      linesofcode         NUMBER;
20042
      lv_linesofcode         NUMBER;
19972
      unittested          NUMBER;
20043
      lv_unittested          NUMBER;
19973
      autotested          NUMBER;
20044
      lv_autotested          NUMBER;
19974
      numOfbranches       NUMBER;
20045
      lv_numOfbranches       NUMBER;
19975
      lastbuildtime       DATE;
20046
      lv_lastbuildtime       DATE;
19976
   BEGIN
20047
   BEGIN
19977
      IF (rtagid > 0)
20048
      IF (rtagid > 0)
19978
      THEN
20049
      THEN
19979
         -- Get the total number of packages in this release and the number of
20050
         -- Get the total number of packages in this release and the number of
19980
         -- those that are autobuilt
20051
         -- those that are autobuilt
19981
         SELECT COUNT (DISTINCT rc.pv_id),
20052
         SELECT COUNT (DISTINCT rc.pv_id),
19982
                COUNT (DISTINCT autobuilt_qry.pv_id)
20053
                COUNT (DISTINCT autobuilt_qry.pv_id)
19983
           INTO totalpackages, autobuilt
20054
           INTO lv_totalpackages, lv_autobuilt
19984
           FROM release_content rc,
20055
           FROM release_content rc,
19985
                package_versions pv,
20056
                package_versions pv,
19986
                (
20057
                (
19987
                 SELECT rc.pv_id
20058
                 SELECT rc.pv_id
19988
                   FROM release_content rc,
20059
                   FROM release_content rc,
Line 19992... Line 20063...
19992
                    AND rc.rtag_id = rtagid
20063
                    AND rc.rtag_id = rtagid
19993
                ) autobuilt_qry
20064
                ) autobuilt_qry
19994
          WHERE pv.pv_id = rc.pv_id
20065
          WHERE pv.pv_id = rc.pv_id
19995
            AND rc.rtag_id = rtagid
20066
            AND rc.rtag_id = rtagid
19996
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
20067
            AND autobuilt_qry.pv_id (+) = rc.pv_id;
19997
         
20068
 
19998
         -- Get the build time of the last package built in this release and the
20069
         -- Get the build time of the last package built in this release and the
19999
         -- total number of lines of code
20070
         -- total number of lines of code
20000
         SELECT MAX(pm.created_stamp),
20071
         SELECT MAX(pm.created_stamp),
20001
                SUM(pm.code_lines)
20072
                SUM(pm.code_lines)
20002
           INTO lastbuildtime, linesofcode
20073
           INTO lv_lastbuildtime, lv_linesofcode
20003
           FROM package_metrics pm, release_content rc
20074
           FROM package_metrics pm, release_content rc
20004
          WHERE pm.pv_id = rc.pv_id
20075
          WHERE pm.pv_id = rc.pv_id
20005
            AND rc.rtag_id = rtagid;
20076
            AND rc.rtag_id = rtagid;
20006
         
20077
 
20007
         -- Get the number of packages with unit tests in this release and the
20078
         -- Get the number of packages with unit tests in this release and the
20008
         -- number of those that are autotested
20079
         -- number of those that are autotested
20009
         SELECT COUNT(DISTINCT ut.pv_id),
20080
         SELECT COUNT(DISTINCT ut.pv_id) INTO lv_unittested
20010
                COUNT(DISTINCT autotest_qry.pv_id)
-
 
20011
           INTO unittested, autotested
-
 
20012
           FROM unit_tests ut,
20081
           FROM unit_tests ut,
20013
                release_content rc,
20082
                release_content rc
20014
                (
-
 
20015
                 SELECT ut.pv_id
-
 
20016
                   FROM unit_tests ut, release_content rc
-
 
20017
                  WHERE ut.pv_id = rc.pv_id
-
 
20018
                    AND rc.rtag_id = rtagid
-
 
20019
                    AND ut.test_types_fk = 7
-
 
20020
                ) autotest_qry
-
 
20021
          WHERE ut.pv_id = rc.pv_id
20083
          WHERE ut.pv_id = rc.pv_id
20022
            AND rc.rtag_id = rtagid
20084
            AND rc.rtag_id = rtagid
20023
            AND autotest_qry.pv_id (+) = ut.pv_id;
20085
        AND ut.test_types_fk != 1;
-
 
20086
 
-
 
20087
        SELECT COUNT(DISTINCT ut.pv_id) INTO lv_autotested
20024
         
20088
          FROM unit_tests ut,
-
 
20089
               release_content rc
-
 
20090
         WHERE ut.pv_id = rc.pv_id
-
 
20091
           AND rc.rtag_id = rtagid
-
 
20092
           AND ut.test_types_fk = 7;
-
 
20093
 
-
 
20094
 
20025
         -- Count the number of unique branches in the packages in this release.
20095
         -- Count the number of unique branches in the packages in this release.
20026
--         SELECT COUNT(DISTINCT branch) INTO numOfbranches
20096
--         SELECT COUNT(DISTINCT branch) INTO lv_numOfbranches
20027
--           FROM (
20097
--           FROM (
20028
--                SELECT pv_id,
20098
--                SELECT pv_id,
20029
--                       regexp_substr(str, '[^,]+', 1, level) branch,
20099
--                       regexp_substr(str, '[^,]+', 1, level) branch,
20030
--                       level lv,
20100
--                       level lv,
20031
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
20101
--                       lag(level, 1, 0) over (partition by pv_id order by level) lg
Line 20038... Line 20108...
20038
--                          AND rc.rtag_id = rtagid
20108
--                          AND rc.rtag_id = rtagid
20039
--                       )
20109
--                       )
20040
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
20110
--                CONNECT BY regexp_substr(str, '[^,]+', 1, LEVEL) IS NOT NULL
20041
--                )
20111
--                )
20042
--          WHERE lv != lg;
20112
--          WHERE lv != lg;
20043
         
20113
 
20044
         UPDATE release_metrics rm
20114
         UPDATE release_metrics rm
20045
            SET rm.total_packages = totalpackages,
20115
            SET rm.total_packages = lv_totalpackages,
20046
                rm.autobuilt = autobuilt,
20116
                rm.autobuilt = lv_autobuilt,
20047
                rm.lines_of_code = linesofcode,
20117
                rm.lines_of_code = lv_linesofcode,
20048
                rm.unit_tested = unittested,
20118
                rm.unit_tested = lv_unittested,
20049
                rm.autotested = autotested,
20119
                rm.autotested = lv_autotested,
20050
--                rm.branches = numOfbranches,
20120
--                rm.branches = lv_numOfbranches,
20051
                rm.last_build_time = lastbuildtime
20121
                rm.last_build_time = lv_lastbuildtime
20052
          WHERE rtag_id = rtagid;
20122
          WHERE rtag_id = rtagid;
20053
         
20123
 
20054
         IF (SQL%ROWCOUNT = 0)
20124
         IF (SQL%ROWCOUNT = 0)
20055
         THEN
20125
         THEN
20056
            INSERT INTO release_metrics
20126
            INSERT INTO release_metrics
20057
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
20127
                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
20058
                         autotested, last_build_time
20128
                         autotested, last_build_time
20059
                        )
20129
                        )
20060
                 VALUES (rtagid, totalpackages, autobuilt, linesofcode, unittested,
20130
                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
20061
                         autotested, lastbuildtime
20131
                         lv_autotested, lv_lastbuildtime
20062
                        );
20132
                        );
20063
         END IF;
20133
         END IF;
20064
--         IF (SQL%ROWCOUNT = 0)
20134
--         IF (SQL%ROWCOUNT = 0)
20065
--         THEN
20135
--         THEN
20066
--            INSERT INTO release_metrics
20136
--            INSERT INTO release_metrics
20067
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
20137
--                        (rtag_id, total_packages, autobuilt, lines_of_code, unit_tested,
20068
--                         autotested, branches, last_build_time
20138
--                         autotested, branches, last_build_time
20069
--                        )
20139
--                        )
20070
--                 VALUES (rtagid, totalpackages, autobuilt, linesofcode, unittested,
20140
--                 VALUES (rtagid, lv_totalpackages, lv_autobuilt, lv_linesofcode, lv_unittested,
20071
--                         autotested, numOfbranches, lastbuildtime
20141
--                         lv_autotested, lv_numOfbranches, lv_lastbuildtime
20072
--                        );
20142
--                        );
20073
--         END IF;
20143
--         END IF;
20074
--      ELSE
20144
--      ELSE
20075
--         raise_application_error (-20000, 'RtagId must be supplied.');
20145
--         raise_application_error (-20000, 'RtagId must be supplied.');
20076
      END IF;
20146
      END IF;
Line 22071... Line 22141...
22071
   END;
22141
   END;
22072
/*-------------------------------------------------------------------------------------------------------*/
22142
/*-------------------------------------------------------------------------------------------------------*/
22073
END pk_environment_test;
22143
END pk_environment_test;
22074
/
22144
/
22075
 
22145
 
-
 
22146
CREATE OR REPLACE PACKAGE BODY                   "PK_LICENCING" IS
-
 
22147
 
-
 
22148
/*
-
 
22149
------------------------------
-
 
22150
||  Last Modified:  G.Huddy
-
 
22151
||  Modified Date:  19/Aug/2008
-
 
22152
||  Body Version:   1.0
-
 
22153
------------------------------
-
 
22154
*/
-
 
22155
 
-
 
22156
   PROCEDURE ADD_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
-
 
22157
   BEGIN
-
 
22158
      IF IS_LICENCED(PvId, licenceId) = 0 THEN
-
 
22159
         -- Add entry to licencing table
-
 
22160
         INSERT INTO licencing (pv_id, licence)
-
 
22161
         VALUES (PvId, licenceId);
-
 
22162
 
-
 
22163
         -- log action
-
 
22164
         -- TODO
-
 
22165
      END IF;
-
 
22166
 
-
 
22167
   END;
-
 
22168
 
-
 
22169
/*-------------------------------------------------------------------------------------------------------*/
-
 
22170
 
-
 
22171
   PROCEDURE REMOVE_LICENCE ( PvId IN NUMBER, licenceId IN NUMBER, UserId IN NUMBER ) IS
-
 
22172
   BEGIN
-
 
22173
      IF NOT IS_LICENCED(PvId, licenceId) = 0 THEN
-
 
22174
         -- Delete entry from licencing table
-
 
22175
         DELETE FROM licencing
-
 
22176
         WHERE pv_id = PvId
-
 
22177
         AND licence = licenceId;
-
 
22178
 
-
 
22179
         -- log action
-
 
22180
         -- TODO
-
 
22181
      END IF;
-
 
22182
   END;
-
 
22183
 
-
 
22184
/*-------------------------------------------------------------------------------------------------------*/
-
 
22185
 
-
 
22186
   PROCEDURE CLONE_LICENCING( fromPvId IN NUMBER, toPvId IN NUMBER, UserId IN NUMBER ) IS
-
 
22187
 
-
 
22188
      CURSOR licencing_cur
-
 
22189
      IS
-
 
22190
         SELECT *
-
 
22191
         FROM licencing
-
 
22192
         WHERE pv_id = fromPvId;
-
 
22193
 
-
 
22194
      licencing_rec licencing_cur%ROWTYPE;
-
 
22195
 
-
 
22196
   BEGIN
-
 
22197
      -- For each licence association that the Last PV_ID had, create a similar
-
 
22198
      -- arrangement for the new PV_ID
-
 
22199
      -- NOTE that any additional licencing associations the new PV_ID has that the old one
-
 
22200
      -- does not have, are retained. The assumption is that the user has made those and so we do not
-
 
22201
      -- have any right to destroy them without asking them.
-
 
22202
      OPEN licencing_cur;
-
 
22203
 
-
 
22204
      FETCH licencing_cur
-
 
22205
      INTO licencing_rec;
-
 
22206
 
-
 
22207
      WHILE licencing_cur%FOUND
-
 
22208
      LOOP
-
 
22209
         ADD_LICENCE ( toPvId, licencing_rec.licence, UserId );
-
 
22210
 
-
 
22211
         FETCH licencing_cur
-
 
22212
         INTO licencing_rec;
-
 
22213
      END LOOP;
-
 
22214
   END;
-
 
22215
 
-
 
22216
/*-------------------------------------------------------------------------------------------------------*/
-
 
22217
 
-
 
22218
   FUNCTION IS_LICENCED( PvId IN NUMBER, licenceId IN NUMBER) RETURN NUMBER IS
-
 
22219
      found NUMBER;
-
 
22220
   BEGIN
-
 
22221
 
-
 
22222
      SELECT COUNT(*) INTO found
-
 
22223
      FROM licencing
-
 
22224
      WHERE pv_id = PvId
-
 
22225
      AND licence = LicenceId;
-
 
22226
 
-
 
22227
      RETURN found;
-
 
22228
   END;
-
 
22229
 
-
 
22230
/*-------------------------------------------------------------------------------------------------------*/
-
 
22231
 
-
 
22232
   PROCEDURE REMOVE_ALL_LICENCING( PvId IN NUMBER, UserId IN NUMBER ) IS
-
 
22233
 
-
 
22234
      CURSOR licencing_cur
-
 
22235
      IS
-
 
22236
         SELECT *
-
 
22237
         FROM licencing
-
 
22238
         WHERE pv_id = PvId;
-
 
22239
 
-
 
22240
      licencing_rec licencing_cur%ROWTYPE;
-
 
22241
   BEGIN
-
 
22242
      -- For each licence association that the PV_ID had, remove it
-
 
22243
      OPEN licencing_cur;
-
 
22244
 
-
 
22245
      FETCH licencing_cur
-
 
22246
      INTO licencing_rec;
-
 
22247
 
-
 
22248
      WHILE licencing_cur%FOUND
-
 
22249
      LOOP
-
 
22250
         REMOVE_LICENCE ( PvId, licencing_rec.licence, UserId );
-
 
22251
 
-
 
22252
         FETCH licencing_cur
-
 
22253
         INTO licencing_rec;
-
 
22254
      END LOOP;
-
 
22255
   END;
-
 
22256
 
-
 
22257
/*-------------------------------------------------------------------------------------------------------*/
-
 
22258
END PK_LICENCING;
-
 
22259
/
-
 
22260