Fix: Сохранение organization_id для каждого элемента
✅ Каждый элемент создаёт отдельную запись ✅ organization_id = null для пользователей/групп ✅ organization_id заполняется для организаций Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
ad725dd95b
commit
2ba9ab5157
|
|
@ -101,38 +101,41 @@ class CourseRequestController extends Controller
|
||||||
|
|
||||||
// Создаём элементы заявки
|
// Создаём элементы заявки
|
||||||
foreach ($items as $itemData) {
|
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) {
|
foreach ($itemData['user_ids'] as $userId) {
|
||||||
CourseRequestItem::create([
|
CourseRequestItem::create([
|
||||||
'course_request_id' => $courseRequest->id,
|
'course_request_id' => $courseRequest->id,
|
||||||
'course_id' => $itemData['course_id'],
|
'course_id' => $itemData['course_id'],
|
||||||
'user_id' => $userId,
|
'user_id' => $userId,
|
||||||
'group_id' => null,
|
'group_id' => null,
|
||||||
'organization_id' => $itemData['organization_id'] ?? null,
|
'organization_id' => null, // Для пользователей organization_id = null
|
||||||
'start_date' => $itemData['start_date'],
|
'start_date' => $itemData['start_date'],
|
||||||
'end_date' => $itemData['end_date'] ?? null,
|
'end_date' => $itemData['end_date'] ?? null,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Создаём отдельные записи для каждой группы
|
if ($hasGroups) {
|
||||||
if (!empty($itemData['group_ids'])) {
|
|
||||||
foreach ($itemData['group_ids'] as $groupId) {
|
foreach ($itemData['group_ids'] as $groupId) {
|
||||||
CourseRequestItem::create([
|
CourseRequestItem::create([
|
||||||
'course_request_id' => $courseRequest->id,
|
'course_request_id' => $courseRequest->id,
|
||||||
'course_id' => $itemData['course_id'],
|
'course_id' => $itemData['course_id'],
|
||||||
'user_id' => null,
|
'user_id' => null,
|
||||||
'group_id' => $groupId,
|
'group_id' => $groupId,
|
||||||
'organization_id' => $itemData['organization_id'] ?? null,
|
'organization_id' => null, // Для групп organization_id = null
|
||||||
'start_date' => $itemData['start_date'],
|
'start_date' => $itemData['start_date'],
|
||||||
'end_date' => $itemData['end_date'] ?? null,
|
'end_date' => $itemData['end_date'] ?? null,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Если только организация (без пользователей и групп)
|
if ($hasOrganization) {
|
||||||
if (empty($itemData['user_ids']) && empty($itemData['group_ids']) && !empty($itemData['organization_id'])) {
|
|
||||||
CourseRequestItem::create([
|
CourseRequestItem::create([
|
||||||
'course_request_id' => $courseRequest->id,
|
'course_request_id' => $courseRequest->id,
|
||||||
'course_id' => $itemData['course_id'],
|
'course_id' => $itemData['course_id'],
|
||||||
|
|
@ -143,19 +146,6 @@ class CourseRequestController extends Controller
|
||||||
'end_date' => $itemData['end_date'] ?? null,
|
'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,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Если заявка одобрена - сразу создаём назначения
|
// Если заявка одобрена - сразу создаём назначения
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue