Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

CREATE PROCEDURE "RELEASE_MANAGER"."NEW_VERSION" ( NNorig_pv_id IN NUMBER,
                                          SSpkg_version IN PACKAGE_VERSIONS.pkg_version%TYPE DEFAULT NULL,
                                          NNsetto_pv_id IN NUMBER DEFAULT NULL,
                                          NNrtag_id IN NUMBER,
                                          NNuser_id IN NUMBER,
                                          enumISSUES_STATE_IMPORTED IN NUMBER,
                                          retPv_id OUT NUMBER ) IS
                                                                                  
                                                                                  
  TO BE REMOVED   !!!                                                                             
                                                                                  
                                                                                  
                                                                                  
                                                                                  
/* ---------------------------------------------------------------------------
    Version: 3.3
   --------------------------------------------------------------------------- */

    ReleaseLocation VARCHAR2(4000);
    origPkg_id PACKAGE_VERSIONS.pkg_id%TYPE;
    origDlocked PACKAGE_VERSIONS.dlocked%TYPE;
    SSV_MM PACKAGE_VERSIONS.V_MM%TYPE;
    SSV_NMM PACKAGE_VERSIONS.V_NMM%TYPE;
    SSV_EXT PACKAGE_VERSIONS.V_EXT%TYPE;
    nIssuesTypes NUMBER;

    CURSOR package_versions_cur IS
        SELECT pv.pv_id, pv.is_patch
          FROM PACKAGE_VERSIONS pv
         WHERE pv.pkg_version = SSpkg_version
           AND pv.pkg_id IN ( SELECT DISTINCT origpv.pkg_id FROM PACKAGE_VERSIONS origpv WHERE origpv.pv_id = NNorig_pv_id );
    package_versions_rec package_versions_cur%ROWTYPE;

    CURSOR clone_package_versions_cur IS
        SELECT DISTINCT pkg_id, dlocked FROM PACKAGE_VERSIONS WHERE pv_id = NNorig_pv_id;
    clone_package_versions_rec clone_package_versions_cur%ROWTYPE;

BEGIN
        IF NNsetto_pv_id IS NULL
    THEN
                -- SetToPv_id is not supplied, hence proceed.

            /* ---------------------------------------------------- */
            /* Find id package_version exists                       */
            /* ---------------------------------------------------- */

            OPEN package_versions_cur;
            FETCH package_versions_cur INTO package_versions_rec;

            IF package_versions_cur%NOTFOUND
            THEN
                SELECT SEQ_PV_ID.NEXTVAL INTO retPv_id FROM DUAL;
                Split_Version ( SSpkg_version, SSV_MM, SSV_NMM, SSV_EXT );

                OPEN clone_package_versions_cur;
                FETCH clone_package_versions_cur INTO clone_package_versions_rec;
                origPkg_id := clone_package_versions_rec.pkg_id;
                origDlocked := clone_package_versions_rec.dlocked;
                CLOSE clone_package_versions_cur;

                -- Clone Package Version Details --
                INSERT INTO PACKAGE_VERSIONS ( pv_id, pkg_id, pkg_version, dlocked, created_stamp, creator_id, modified_stamp, modifier_id, V_MM, V_NMM, V_EXT,
                                               src_path, pv_description, PV_OVERVIEW, LAST_PV_ID, owner_id, IS_DEPLOYABLE, IS_BUILD_ENV_REQUIRED )
                    SELECT retPv_id         AS pv_id,
                           origPkg_id       AS pkg_id,
                           SSpkg_version    AS pkg_version,
                           'N'              AS dlocked,
                           Ora_Sysdate      AS created_stamp,
                           NNuser_id        AS creator_id,
                           Ora_Sysdatetime  AS modified_stamp,
                           NNuser_id        AS modifier_id,
                           SSV_MM           AS V_MM,
                           SSV_NMM          AS V_NMM,
                           SSV_EXT          AS V_EXT,
                           pv.src_path,
                           pv.pv_description,
                       pv.PV_OVERVIEW,
                       NNorig_pv_id     AS LAST_PV_ID,
                           pv.owner_id,
                                           pv.IS_DEPLOYABLE,
                                           pv.IS_BUILD_ENV_REQUIRED
                      FROM PACKAGE_VERSIONS pv
                     WHERE pv.pv_id = NNorig_pv_id;


                -- Set Issues Type for cloning ---
                IF origDlocked = 'Y'
                THEN
                nIssuesTypes := enumISSUES_STATE_IMPORTED;
                ELSE
                nIssuesTypes := NULL;
                END IF;

                        Basic_Clone ( NNorig_pv_id, retPv_id, NNrtag_id, NNuser_id, origPkg_id, nIssuesTypes );



            ELSE
                retPv_id := package_versions_rec.pv_id;

            END IF;

        CLOSE package_versions_cur;

        ELSE
        retPv_id := NNsetto_pv_id;
    END IF;


    /* ---------------------------------------------------- */
    /* Insert into Release Contents (EXCLUDE PATCHES)       */
    /* ---------------------------------------------------- */
        IF (package_versions_rec.is_patch != 'Y') OR (package_versions_rec.is_patch IS NULL) THEN
            UPDATE RELEASE_CONTENT
               SET pv_id = retPv_id,
                   insert_stamp = Ora_Sysdate,
                   insertor_id = NNuser_id
             WHERE rtag_id = NNrtag_id
               AND pv_id = NNorig_pv_id;

        /* LOG ACTION */
        SELECT proj.PROJ_NAME ||' / '|| vt.VTREE_NAME ||' / '|| rt.RTAG_NAME INTO ReleaseLocation
                  FROM PROJECTS proj,
                           VTREES vt,
                       RELEASE_TAGS rt
                 WHERE rt.VTREE_ID = vt.VTREE_ID
                   AND vt.PROJ_ID = proj.PROJ_ID
                   AND rt.RTAG_ID = NNrtag_id;

        Log_Action ( NNorig_pv_id, 'replaced_with', NNuser_id, 'Replacing version: '|| SSpkg_version ||' at '|| ReleaseLocation );
                Log_Action ( retPv_id, 'add', NNuser_id, 'Location: '|| ReleaseLocation );

        END IF;


END New_Version;
/