コード例 #1
0
ファイル: qams-step-detail.php プロジェクト: Br3nda/wrms
// -----------------------------------------------------------------------------------------------
// MAIN CONTENT
// New project object to work with..
$project = new qa_project($project_id);
// Administrator status..
$have_admin = $project->qa_process->have_admin;
// Viewing approvals history?
if (!isset($view_history)) {
    $view_history = "no";
}
// ---------------------------------------------------------------------
// Make sure we have a valid QA step..
if (!isset($qastep)) {
    if (isset($project_id) && isset($step_id)) {
        $qastep = new qa_project_step();
        $qastep->get($project_id, $step_id);
        if (!$qastep->valid) {
            unset($qastep);
        }
    }
}
$s = "";
if (isset($qastep)) {
    // PROCESS POSTED UPDATES..
    if (isset($submit) && $submit == "Update") {
        if ($project->request_id > 0) {
            // Possible approval type updates..
            if ($project->POSTprocess_approval_updates($qastep->qa_step_id)) {
                $project->get_project();
            }
            // Possible assignment/re-assignment..
コード例 #2
0
ファイル: qams-project-defs.php プロジェクト: Br3nda/wrms
 /**
  * Process the POST of approval types addition and removal changes
  * for this project. Returns true if changes were made.
  * @param mixed $step_id If provided, limit POST checking to the given step
  * @return boolean True if one or more changes were made
  */
 function POSTprocess_approval_updates($step_id = false)
 {
     $res = false;
     // This will be posted as an array var..
     $postvar = "step_approval_types";
     global ${$postvar};
     if (isset(${$postvar})) {
         $posted_approvals = ${$postvar};
         // (a) Process approval types being removed..
         $q = "SELECT * FROM qa_project_step_approval";
         $q .= " WHERE project_id={$this->request_id}";
         if ($step_id !== false) {
             $q .= " AND qa_step_id={$step_id}";
         }
         $qry = new PgQuery($q);
         if ($qry->Exec("qa_project::POSTprocess_approval_updates") && $qry->rows > 0) {
             while ($row = $qry->Fetch()) {
                 // Can only change if in 'not started' status..
                 $status = $row->last_approval_status;
                 $step_id = $row->qa_step_id;
                 $ap_type_id = $row->qa_approval_type_id;
                 if (!in_array($step_id . "|" . $ap_type_id, $posted_approvals)) {
                     if ($status == "") {
                         $qastep = new qa_project_step();
                         $qastep->get($this->request_id, $step_id);
                         $qastep->remove_required_approval($ap_type_id);
                         $res = true;
                     }
                 }
                 // Keep record of currently required approvals..
                 $reqd_approvals[] = $step_id . "|" . $ap_type_id;
             }
             // while
         }
         // (b) Process approval types being added..
         if (count($posted_approvals) > 0) {
             foreach ($posted_approvals as $key) {
                 $bits = explode("|", $key);
                 $new_step_id = $bits[0];
                 $new_ap_type_id = $bits[1];
                 if (!in_array($new_step_id . "|" . $new_ap_type_id, $reqd_approvals)) {
                     $q = "INSERT INTO qa_project_step_approval (";
                     $q .= " project_id, qa_step_id, qa_approval_type_id ";
                     $q .= ") ";
                     $q .= "VALUES(?, ?, ?);";
                     $qry = new PgQuery($q, $this->request_id, $new_step_id, $new_ap_type_id);
                     if (!$qry->Exec("qa_project::POSTprocess_approval_updates")) {
                         $client_messages[] = "{$qry->errorstring}";
                     }
                     $res = true;
                 }
             }
             // foreach
         }
     }
     // Indication that changes were made..
     return $res;
 }