- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/repository/schedule/shiftrepository.php
- Класс: BitrixTimemanRepositoryScheduleShiftRepository
- Вызов: ShiftRepository::deleteShiftPlans
public function deleteShiftPlans($shiftIds, $userIds = [])
{
$shiftIds = array_unique(array_map('intval', $shiftIds));
$userIds = array_unique(array_map('intval', $userIds));
$connection = Application::getConnection();
if (!empty($userIds))
{
$sql = 'DELETE FROM ' . ShiftPlanTable::getTableName() . ' WHERE ';
foreach ($userIds as $userId)
{
$conditions[] = " (SHIFT_ID in (" . implode(',', $shiftIds) . ') AND USER_ID = ' . (int)$userId . ')';
}
$sql .= implode(' OR ', $conditions);
$connection->query($sql);
}
else
{
$connection->query('DELETE FROM ' . ShiftPlanTable::getTableName() . " WHERE SHIFT_ID in (" . implode(',', $shiftIds) . ')');
}
if ($connection->getAffectedRowsCount() >= 0)
{
return new Result();
}
return (new Result())->addError(new Error('Internal error while deleting shift plans'));
}