Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

CREATE PROCEDURE "RELEASE_MANAGER"."UPDATE_PACKAGE_STATES" ( NNrtag_id IN NUMBER,
                                                    NNsession_num IN NUMBER ) IS
/* ---------------------------------------------------------------------------
    Version: 3.0.0
   --------------------------------------------------------------------------- */

/* =============  STATE RULES =================== */
/*
   MNR   MRR   MN   MR    |   pkg_state
   ------------------------------------
    0     0     0     0   |      OK
    0     0     0     1   |      MAJOR
    0     0     1     0   |      MINOR
    0     0     1     1   |      MAJOR
   ------------------------------------
    0     1     0     0   |      MAJOR_READY
    0     1     0     1   |      MAJOR
    0     1     1     0   |      MAJOR
    0     1     1     1   |      MAJOR
   ------------------------------------
    1     0     0     0   |      MINOR_READY
    1     0     0     1   |      MAJOR
    1     0     1     0   |      MINOR
    1     0     1     1   |      MAJOR
   ------------------------------------
    1     1     0     0   |      MAJOR_READY
    1     1     0     1   |      MAJOR
    1     1     1     0   |      MAJOR
    1     1     1     1   |      MAJOR
   ------------------------------------
*/

BEGIN
    /*----------------------------------------------
    ||              MINOR READY
    */----------------------------------------------
   
    UPDATE release_content
       SET pkg_state = 4
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT DISTINCT pv_id
           FROM temp_env_states
           WHERE session_num = NNsession_num
             AND level_num = 1
             AND tes_state = 2
           );

    /*----------------------------------------------
    ||              MAJOR READY
    */----------------------------------------------
    UPDATE release_content
       SET pkg_state = 3
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT DISTINCT pv_id
           FROM temp_env_states
           WHERE session_num = NNsession_num
             AND level_num = 1
             AND tes_state IN (0,1)
           );

    /*----------------------------------------------
    ||                MINOR
    */----------------------------------------------
    UPDATE release_content
       SET pkg_state = 2
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT DISTINCT pv_id
            FROM temp_env_states
            WHERE session_num = NNsession_num
              AND level_num >= 2
              AND tes_state = 2
            MINUS
           SELECT pv_id
             FROM release_content
            WHERE rtag_id = NNrtag_id
              AND pkg_state = 3
           );

    /*----------------------------------------------
    ||                MAJOR
    */----------------------------------------------
    UPDATE release_content
       SET pkg_state = 1
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT DISTINCT pv_id
           FROM temp_env_states
           WHERE session_num = NNsession_num
             AND level_num >= 2
             AND tes_state IN (0,1)
           /* MAJOR EXCEPTION - When package has Major Ready and Minor */
           UNION
           SELECT DISTINCT tes.pv_id
           FROM temp_env_states tes,
                release_content rc
           WHERE tes.session_num = NNsession_num
             AND tes.level_num >= 2
             AND tes.tes_state = 2
             AND rtag_id = NNrtag_id
             AND rc.pv_id = tes.pv_id
             AND rc.pkg_state = 3
           );

    /*----------------------------------------------
    ||                 OK
    */----------------------------------------------
    UPDATE release_content
       SET pkg_state = 0
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT rc.pv_id
             FROM release_content rc
            WHERE rc.rtag_id = NNrtag_id
              AND NOT rc.pv_id IN
                    (
                     SELECT DISTINCT pv_id
                     FROM temp_env_states WHERE session_num = NNsession_num
                    )
           );
                   
                   
    /*----------------------------------------------
    ||              ADVISORY RIPPLE - NEW STUFF
    */----------------------------------------------
 /*   UPDATE release_content
       SET pkg_state = 8
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT DISTINCT pv_id
           FROM temp_env_states
           WHERE session_num = NNsession_num
             AND level_num = 1
             AND tes_state = 3
           );   */
        
        
        
    /*----------------------------------------------
    ||              ADVISORY RIPPLE DEPENDANT
    */----------------------------------------------                       
  /*  UPDATE release_content
       SET pkg_state = 9
     WHERE rtag_id = NNrtag_id
       AND pv_id IN
           (
           SELECT DISTINCT pv_id
           FROM temp_env_states
           WHERE session_num = NNsession_num
             AND level_num >= 2
             AND tes_state = 3
           );           */         
           
      Update_Deprecation_State (NNrtag_id);

END Update_Package_States;
/