- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/update/timemanversion19converter.php
- Класс: BitrixTimemanUpdateTimemanVersion19Converter
- Вызов: TimemanVersion19Converter::saveTempDataForRestore
private function saveTempDataForRestore()
{
$connection = Application::getConnection();
$sqlEntities = 'INSERT IGNORE INTO `b_timeman_converter_processed_entities` (ENTITY_CODE) VALUES ';
$valuesEntities = [];
foreach ($this->processedEntitiesData as $code => $value)
{
$valuesEntities[] = '("' . $code . '")';
}
if (!empty($valuesEntities))
{
$sqlEntities .= implode(",n", $valuesEntities);
$connection->query($sqlEntities);
}
$sql = 'REPLACE INTO `b_timeman_converter_collected_schedules`
(SCHEDULE_KEY, SCHEDULE_FORM_DATA, ASSIGNMENTS, ASSIGNMENTS_EXCLUDED, SCHEDULE_ID, SHIFT_ID, USERS_RECORDS_UPDATED) VALUES ';
$values = [];
foreach ($this->scheduleForms as $scheduleKey => $scheduleForm)
{
$scheduleForm->validate();
/** @var ScheduleForm $scheduleForm */
$formData = [
'maxExactStart' => $scheduleForm->violationForm->maxExactStart,
'minExactEnd' => $scheduleForm->violationForm->minExactEnd,
'minDayDuration' => $scheduleForm->violationForm->minDayDuration,
'maxAllowedToEditWorkTime' => $scheduleForm->violationForm->maxAllowedToEditWorkTime,
];
$values[] = '("' . $connection->getSqlHelper()->forSql($scheduleKey) . '", '
. '"' . $connection->getSqlHelper()->forSql(json_encode($formData)) . '", '
. '"' . $connection->getSqlHelper()->forSql(json_encode($scheduleForm->assignments)) . '", '
. '"' . $connection->getSqlHelper()->forSql(json_encode($scheduleForm->assignmentsExcluded)) . '", '
. ($this->savedSchedulesMap[$scheduleKey]['scheduleId']) . ', '
. ($this->savedSchedulesMap[$scheduleKey]['shiftId']) . ', '
. ($this->savedSchedulesMap[$scheduleKey]['usersUpdated'] === true ? '1' : '0')
. ')';
}
if (!empty($values))
{
$sql .= implode(",n", $values);
$connection->query($sql);
}
$this->saveTempViolations($connection);
}