コード例 #1
0
 /**
  * Public function for updateing status for a check list
  * 
  * @return json encoded array with status saved or not saved
  */
 public function update_status()
 {
     if (!$this->add && !$this->edit) {
         return json_encode(array("status" => 'not_saved', 'message' => ''));
     }
     $check_list_id = phpgw::get_var('check_list_id');
     $check_list_status = phpgw::get_var('status');
     $check_list = $this->so->get_single($check_list_id);
     //
     $config = CreateObject('phpgwapi.config', 'controller');
     $config->read();
     $ok = true;
     $required_actual_hours = isset($config->config_data['required_actual_hours']) && $config->config_data['required_actual_hours'] ? $config->config_data['required_actual_hours'] : false;
     if ($check_list_status == controller_check_list::STATUS_DONE && $required_actual_hours && $check_list->get_billable_hours() == 0) {
         phpgwapi_cache::message_set(lang("Please enter billable hours"), 'error');
         $ok = false;
     }
     //
     if (!$this->_check_for_required($check_list) || !$ok) {
         $messages = phpgwapi_cache::message_get(true);
         $message = '';
         foreach ($messages as $_type => $_message) {
             if ($_type == 'error') {
                 $i = 1;
                 foreach ($_message as $__message) {
                     $message .= "#{$i}: " . preg_replace("/<\\/br[^>]*>\\s*\r*\n*/is", "\n", $__message['msg']) . "\n";
                     $i++;
                 }
             }
         }
         return json_encode(array("status" => 'not_saved', 'message' => $message));
     }
     if ($check_list_status == controller_check_list::STATUS_DONE) {
         $check_list->set_completed_date(time());
     } else {
         $check_list_status = controller_check_list::STATUS_NOT_DONE;
         $check_list->set_completed_date(0);
     }
     $check_list->set_status($check_list_status);
     if ($this->so->store($check_list)) {
         return json_encode(array('status' => $check_list_status));
     } else {
         return json_encode(array("status" => 'not_saved', 'message' => ''));
     }
 }