Пример #1
0
    $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();
}
Пример #2
0
 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);
         }
     }
 }