コード例 #1
0
ファイル: dms_api.php プロジェクト: hasanhalabi/jDMS
 public static function workflow_save()
 {
     $podname = isset($_GET['podname']) ? $_GET['podname'] : "";
     $workflow_id = isset($_GET['workflow-id']) ? $_GET['workflow-id'] : "";
     $code = isset($_GET['code']) ? $_GET['code'] : "";
     $record_id = isset($_GET['record-id']) ? $_GET['record-id'] : "";
     $user_id = isset($_GET['user-id']) ? $_GET['user-id'] : "";
     $last_sender_id = isset($_GET['last-sender-id']) ? $_GET['last-sender-id'] : "";
     $chosen_option = isset($_GET['chosen-option']) ? $_GET['chosen-option'] : "";
     $remarks = isset($_GET['remarks']) ? $_GET['remarks'] : "";
     $e_signature = isset($_GET['e-signature']) ? $_GET['e-signature'] : "";
     $message = "";
     if ($podname == "") {
         $message .= "<div>No Podname</div>";
     }
     if ($workflow_id == "") {
         $message .= "<div>No Workflow ID</div>";
     }
     if ($code == "") {
         $message .= "<div>No Workflow Code</div>";
     }
     if ($record_id == "") {
         $message .= "<div>No Record ID</div>";
     }
     if ($user_id == "") {
         $message .= "<div>No User ID</div>";
     }
     if ($chosen_option == "") {
         $message .= "<div>Procedure Not Exist</div>";
     }
     if ($remarks == "") {
         $message .= "<div>Please Fill The Notes.</div>";
     }
     if ($e_signature == "") {
         $message .= "<div>Please Fill The e-Signature</div>";
     }
     // Check Signature
     $user_pod = pods("user", $user_id);
     if ($user_pod->field("e_signature") == "") {
         $message .= "<div>You are not authorized because you don't have any e-signature in the system.</div>";
     }
     if ($user_pod->field("e_signature") != $e_signature) {
         $message .= "<div>Your e-Signature is not correct.</div>";
     }
     if ($message != "") {
         return $message;
     }
     // Add The Message
     $choosen_option_tokens = explode('|', $chosen_option);
     $choosen_option_direction = $choosen_option_tokens[0];
     $choosen_option_message_code = $choosen_option_tokens[1];
     $choosen_option_text = $choosen_option_tokens[2];
     dms_messages::add_message($choosen_option_message_code, $podname, $record_id, TRUE);
     $workflow_data = array();
     // Find recipient_user_id
     if ($choosen_option_direction == "next") {
         $current_workflow_pod = pods("jomiz_dms_workflow", array("where" => "workflow_code = '{$code}'"));
         $groups = $current_workflow_pod->field("groups");
         foreach ($groups as $group) {
             $group_pod = pods("jomiz_dms_groups", array("where" => "t.id = " . $group['id'] . " AND members.id = {$user_id}"));
             while ($group_pod->fetch()) {
                 $managers = $group_pod->field("managers");
                 foreach ($managers as $manager) {
                     $single_workflow_data = array();
                     $single_workflow_data["workflow_code"] = $workflow_id;
                     $single_workflow_data["pod_name"] = $podname;
                     $single_workflow_data["record_id"] = $record_id;
                     $single_workflow_data["option_chosed"] = "{$choosen_option_direction}|{$choosen_option_message_code}";
                     $single_workflow_data["chosen_option_direction"] = $choosen_option_direction;
                     $single_workflow_data["chosen_option_message_code"] = $choosen_option_message_code;
                     $single_workflow_data["chosen_option_text"] = $choosen_option_text;
                     $single_workflow_data["remarks"] = $remarks;
                     $single_workflow_data["sender_user"] = $user_id;
                     $single_workflow_data["recipient_user"] = $manager['ID'];
                     $single_workflow_data["is_last_step_performed"] = 1;
                     $workflow_data[] = $single_workflow_data;
                 }
             }
         }
     } elseif ($choosen_option_direction == "back") {
         $single_workflow_data = array();
         $single_workflow_data["workflow_code"] = $workflow_id;
         $single_workflow_data["pod_name"] = $podname;
         $single_workflow_data["record_id"] = $record_id;
         $single_workflow_data["option_chosed"] = "{$choosen_option_direction}|{$choosen_option_message_code}";
         $single_workflow_data["chosen_option_direction"] = $choosen_option_direction;
         $single_workflow_data["chosen_option_message_code"] = $choosen_option_message_code;
         $single_workflow_data["chosen_option_text"] = $choosen_option_text;
         $single_workflow_data["remarks"] = $remarks;
         $single_workflow_data["sender_user"] = $user_id;
         $single_workflow_data["recipient_user"] = $last_sender_id;
         $single_workflow_data["is_last_step_performed"] = 1;
         $workflow_data[] = $single_workflow_data;
     } else {
         // Stop
         $single_workflow_data = array();
         $single_workflow_data["workflow_code"] = $workflow_id;
         $single_workflow_data["pod_name"] = $podname;
         $single_workflow_data["record_id"] = $record_id;
         $single_workflow_data["option_chosed"] = "{$choosen_option_direction}|{$choosen_option_message_code}";
         $single_workflow_data["chosen_option_direction"] = $choosen_option_direction;
         $single_workflow_data["chosen_option_message_code"] = $choosen_option_message_code;
         $single_workflow_data["chosen_option_text"] = $choosen_option_text;
         $single_workflow_data["remarks"] = $remarks;
         $single_workflow_data["sender_user"] = $user_id;
         $single_workflow_data["is_last_step_performed"] = 1;
         $workflow_data[] = $single_workflow_data;
     }
     dms_messages::add_message($choosen_option_message_code, $podname, $record_id, TRUE);
     //Update Other Steps To Indicate The Last Performed Step
     global $wpdb;
     settype($record_id, "integer");
     $where = array("pod_name" => $podname, "record_id" => $record_id);
     $update_result = $wpdb->update("jomiz_pods_jomiz_dms_data_workflow", array("is_last_step_performed" => 0), $where);
     $new_workflow_pod = pods("jomiz_dms_data_workflow");
     foreach ($workflow_data as $single_workflow_data) {
         $new_workflow_pod->add($single_workflow_data);
     }
     return $message;
 }