Fix: Сохранение organization_id для каждого элемента

 Каждый элемент создаёт отдельную запись
 organization_id = null для пользователей/групп
 organization_id заполняется для организаций

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
mirivlad 2026-04-02 09:57:52 +08:00
parent ad725dd95b
commit 2ba9ab5157
1 changed files with 11 additions and 21 deletions

View File

@ -101,38 +101,41 @@ class CourseRequestController extends Controller
// Создаём элементы заявки
foreach ($items as $itemData) {
// Создаём отдельные записи для каждого пользователя
if (!empty($itemData['user_ids'])) {
// Определяем тип получателя
$hasUsers = !empty($itemData['user_ids']);
$hasGroups = !empty($itemData['group_ids']);
$hasOrganization = !empty($itemData['organization_id']);
// Создаём ОТДЕЛЬНЫЕ записи для КАЖДОГО получателя
if ($hasUsers) {
foreach ($itemData['user_ids'] as $userId) {
CourseRequestItem::create([
'course_request_id' => $courseRequest->id,
'course_id' => $itemData['course_id'],
'user_id' => $userId,
'group_id' => null,
'organization_id' => $itemData['organization_id'] ?? null,
'organization_id' => null, // Для пользователей organization_id = null
'start_date' => $itemData['start_date'],
'end_date' => $itemData['end_date'] ?? null,
]);
}
}
// Создаём отдельные записи для каждой группы
if (!empty($itemData['group_ids'])) {
if ($hasGroups) {
foreach ($itemData['group_ids'] as $groupId) {
CourseRequestItem::create([
'course_request_id' => $courseRequest->id,
'course_id' => $itemData['course_id'],
'user_id' => null,
'group_id' => $groupId,
'organization_id' => $itemData['organization_id'] ?? null,
'organization_id' => null, // Для групп organization_id = null
'start_date' => $itemData['start_date'],
'end_date' => $itemData['end_date'] ?? null,
]);
}
}
// Если только организация (без пользователей и групп)
if (empty($itemData['user_ids']) && empty($itemData['group_ids']) && !empty($itemData['organization_id'])) {
if ($hasOrganization) {
CourseRequestItem::create([
'course_request_id' => $courseRequest->id,
'course_id' => $itemData['course_id'],
@ -143,19 +146,6 @@ class CourseRequestController extends Controller
'end_date' => $itemData['end_date'] ?? null,
]);
}
// Если ничего не указано - создаём запись без привязки
if (empty($itemData['user_ids']) && empty($itemData['group_ids']) && empty($itemData['organization_id'])) {
CourseRequestItem::create([
'course_request_id' => $courseRequest->id,
'course_id' => $itemData['course_id'],
'user_id' => null,
'group_id' => null,
'organization_id' => null,
'start_date' => $itemData['start_date'],
'end_date' => $itemData['end_date'] ?? null,
]);
}
}
// Если заявка одобрена - сразу создаём назначения