/** * 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' => '')); } }