- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/controller/worktime.php
- Класс: BitrixTimemanControllerWorktime
- Вызов: Worktime::changeRecordAction
public function changeRecordAction()
{
$worktimeForm = WorktimeRecordForm::createWithEventForm(WorktimeEventTable::EVENT_TYPE_EDIT_WORKTIME);
$worktimeForm->load($this->getRequest());
if ($worktimeForm->validate())
{
$workTimeRepository = new WorktimeRepository();
$record = $workTimeRepository->findById($worktimeForm->id);
if ($record)
{
$worktimeForm->editedBy = $this->getCurrentUser()->getId();
$record->updateByForm($worktimeForm);
$result = $workTimeRepository->save($record);
if (!$result->isSuccess())
{
$this->addErrors($result->getErrors());
return [];
}
$workTimeRepository->save(
WorktimeEvent::create(
WorktimeEventTable::EVENT_TYPE_STOP_WITH_ANOTHER_TIME,
$record->getUserId(),
$record->getId(),
null,
Loc::getMessage('TIMEMAN_EXPIRED_REPORT_MESSAGE'),
$worktimeForm->device
)
);
}
$actualRecord = WorktimeRecordTable::query()
->addSelect('*')
->where('ID', $record->getId())
->exec()
->fetchObject()
;
$result = new WorktimeServiceResult();
$result->setWorktimeRecord($actualRecord);
if (WorktimeServiceResult::isSuccessResult($result))
{
return $this->makeAjaxResult($result, $worktimeForm, $record);
}
$this->addErrors($result->getErrors());
return [];
}
$this->addError($worktimeForm->getFirstError());
return [];
}