CommonITILTask::post_addItem PHP Метод

post_addItem() публичный Метод

public post_addItem ( )
    function post_addItem()
    {
        global $CFG_GLPI;
        if (isset($this->input['_planningrecall'])) {
            $this->input['_planningrecall']['items_id'] = $this->fields['id'];
            PlanningRecall::manageDatas($this->input['_planningrecall']);
        }
        $donotif = $CFG_GLPI["use_mailing"];
        if (isset($this->fields["begin"]) && !empty($this->fields["begin"])) {
            Planning::checkAlreadyPlanned($this->fields["users_id_tech"], $this->fields["begin"], $this->fields["end"], array($this->getType() => array($this->fields["id"])));
            $calendars_id = Entity::getUsedConfig('calendars_id', $this->input["_job"]->fields['entities_id']);
            $calendar = new Calendar();
            // Using calendar
            if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) {
                if (!$calendar->isAWorkingHour(strtotime($this->fields["begin"]))) {
                    Session::addMessageAfterRedirect(__('Start of the selected timeframe is not a working hour.'), false, ERROR);
                }
                if (!$calendar->isAWorkingHour(strtotime($this->fields["end"]))) {
                    Session::addMessageAfterRedirect(__('End of the selected timeframe is not a working hour.'), false, ERROR);
                }
            }
        }
        $this->input["_job"]->updateDateMod($this->input[$this->input["_job"]->getForeignKeyField()]);
        if (isset($this->input["actiontime"]) && $this->input["actiontime"] > 0) {
            $this->input["_job"]->updateActionTime($this->input[$this->input["_job"]->getForeignKeyField()]);
        }
        //change status only if input change
        if (isset($this->input['_status']) && $this->input['_status'] != $this->input['_job']->fields['status']) {
            $update['status'] = $this->input['_status'];
            $update['id'] = $this->input['_job']->fields['id'];
            $update['_disablenotif'] = true;
            $this->input['_job']->update($update);
        }
        if (!empty($this->fields['begin']) && $this->input["_job"]->isStatusExists(CommonITILObject::PLANNED) && ($this->input["_job"]->fields["status"] == CommonITILObject::INCOMING || $this->input["_job"]->fields["status"] == CommonITILObject::ASSIGNED)) {
            $input2['id'] = $this->input["_job"]->getID();
            $input2['status'] = CommonITILObject::PLANNED;
            $input2['_disablenotif'] = true;
            $this->input["_job"]->update($input2);
        }
        if ($donotif) {
            $options = array('task_id' => $this->fields["id"], 'is_private' => $this->isPrivate());
            NotificationEvent::raiseEvent('add_task', $this->input["_job"], $options);
        }
        // Add log entry in the ITIL object
        $changes[0] = 0;
        $changes[1] = '';
        $changes[2] = $this->fields['id'];
        Log::history($this->getField($this->input["_job"]->getForeignKeyField()), $this->input["_job"]->getTYpe(), $changes, $this->getType(), Log::HISTORY_ADD_SUBITEM);
    }