• Модуль: 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'));
}