$input["id"] = $_POST["plugin_resources_resources_id"]; $input["date_end"] = $_POST["date_end"]; if ($_POST["date_end"] < $date || $CronTask->fields["state"] == CronTask::STATE_DISABLE) { $input["is_leaving"] = "1"; } else { $input["is_leaving"] = "0"; } $input["plugin_resources_leavingreasons_id"] = $_POST["plugin_resources_leavingreasons_id"]; $input["withtemplate"] = "0"; $input["users_id_recipient_leaving"] = Session::getLoginUserID(); $input['send_notification'] = 1; $resource->update($input); //test it $resource->getFromDB($_POST["plugin_resources_resources_id"]); $resources_checklist = PluginResourcesChecklist::checkIfChecklistExist($_POST["plugin_resources_resources_id"]); if (!$resources_checklist) { $checklistconfig->addChecklistsFromRules($resource, PluginResourcesChecklist::RESOURCES_CHECKLIST_OUT); } Session::addMessageAfterRedirect(__('Declaration of resource leaving OK', 'resources')); Html::back(); } else { if ($resource->canView() || Session::haveRight("config", "w")) { //show remove resource form $resource->showResourcesToRemove(); } } if ($_SESSION['glpiactiveprofile']['interface'] == 'central') { Html::footer(); } else { Html::helpFooter(); }
function post_updateItem($history = 1) { global $CFG_GLPI; $PluginResourcesChecklist = new PluginResourcesChecklist(); if (isset($this->input["addchecklist"]) && $this->input["addchecklist"] == 1) { $PluginResourcesChecklist->deleteByCriteria(array('plugin_resources_resources_id' => $this->fields["id"])); $PluginResourcesChecklistconfig = new PluginResourcesChecklistconfig(); $PluginResourcesChecklistconfig->addChecklistsFromRules($this, PluginResourcesChecklist::RESOURCES_CHECKLIST_IN); $PluginResourcesChecklistconfig->addChecklistsFromRules($this, PluginResourcesChecklist::RESOURCES_CHECKLIST_OUT); } $status = "update"; if (isset($this->fields["is_leaving"]) && !empty($this->fields["is_leaving"])) { $status = "LeavingResource"; $PluginResourcesResource_Item = new PluginResourcesResource_Item(); $badge = $PluginResourcesResource_Item->searchAssociatedBadge($this->fields["id"]); if ($badge) { $this->input["checkbadge"] = 1; } //when a resource is leaving, current employment get default state if (isset($this->input['date_end'])) { $PluginResourcesEmployment = new PluginResourcesEmployment(); $default = PluginResourcesEmploymentState::getDefault(); // only current employment $restrict = "`plugin_resources_resources_id` = '" . $this->input["id"] . "'\n AND ((`begin_date` < '" . $this->input['date_end'] . "'\n OR `begin_date` IS NULL)\n AND (`end_date` > '" . $this->input['date_end'] . "'\n OR `end_date` IS NULL)) "; $employments = getAllDatasFromTable("glpi_plugin_resources_employments", $restrict); if (!empty($employments)) { foreach ($employments as $employment) { $values = array('plugin_resources_employmentstates_id' => $default, 'end_date' => $this->input['date_end'], 'id' => $employment['id']); $PluginResourcesEmployment->update($values); } } } } $picture = array(0 => "picture", 1 => "date_mod"); if (count($this->updates) && array_diff($this->updates, $picture) && isset($this->input["withtemplate"]) && $this->input["withtemplate"] != 1) { if ($CFG_GLPI["use_mailing"] && isset($this->input['send_notification']) && $this->input['send_notification'] == 1) { NotificationEvent::raiseEvent($status, $this); } } }