From 8a94e7a750deed7a95c5b7d7c15b67158c76ac57 Mon Sep 17 00:00:00 2001 From: aslan Date: Mon, 18 Mar 2024 11:36:14 +0300 Subject: [PATCH] fix new logic to calculator with required and optional subjects --- app/Http/Controllers/Api/CalculatorController.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Api/CalculatorController.php b/app/Http/Controllers/Api/CalculatorController.php index bb8ccfb..a936ca8 100644 --- a/app/Http/Controllers/Api/CalculatorController.php +++ b/app/Http/Controllers/Api/CalculatorController.php @@ -17,7 +17,6 @@ class CalculatorController extends Controller { $getJSON = $request->input()['predmets']; $calcultatorSubjects = json_decode($getJSON); - $countUserSubjects = count($calcultatorSubjects); $filteredDirectionIds = EntranceExamination::all() ->select("direction_id", "subject_id", "subject_type_id", "examination_type_id") @@ -37,18 +36,20 @@ class CalculatorController extends Controller }, []); $result = collect($filteredDirectionIds) ->filter(function ($subjectTypes) use ($calcultatorSubjects) { - $requiredSbjects = $subjectTypes[1]; - return array_reduce($requiredSbjects, function ($acc, $requiredSbject) use ($calcultatorSubjects) { - if (!in_array($requiredSbject, $calcultatorSubjects)) { + $requiredSubjects = $subjectTypes[1]; + return array_reduce($requiredSubjects, function ($acc, $requiredSubjects) use ($calcultatorSubjects) { + if (!in_array($requiredSubjects, $calcultatorSubjects)) { return false; } return $acc; }, true); }) ->filter(function ($subjectTypes) use ($calcultatorSubjects) { - $optionalSubjectsInCalculator = collect($subjectTypes[2]) - ->filter(fn($optionalSubject) => in_array($optionalSubject, $calcultatorSubjects)); - return $optionalSubjectsInCalculator->count() !== 0; + if(array_key_exists(2, $subjectTypes)) { + $optionalSubjectsInCalculator = collect($subjectTypes[2]) + ->filter(fn($optionalSubject) => in_array($optionalSubject, $calcultatorSubjects)); + return $optionalSubjectsInCalculator->count() !== 0; + } })->map(fn($subjectTypes, $directionId) => $directionId); $directions = Direction::whereIn('id', $result)->get();