status; $cawangan = Cawangan::on('mysql7')->where('kodcaw', $request->kodcaw)->first(); if (!$cawangan) { return response()->json(['error' => 'Invalid kodcaw'], 403); } $query = DB::connection($cawangan['mysql'])->table('palsu') ->select([ 'tarikh', 'norujukan', 'nota', 'pembiayaan', 'nilaimarhun', 'jbg', 'untung', 'untungonepercent', 'untungcajlain' ]); // Only apply whereBetween if tarikh_mula and tarikh_akhir are provided if ($request->filled('tarikh_mula') && $request->filled('tarikh_akhir')) { $query->whereBetween('tarikh', [$request->tarikh_mula, $request->tarikh_akhir]); } $result = $query->get(); $pampasan = Http::get(config('app_parameter.api_v3') . "pampasan", ['kodcaw' => $request->kodcaw]) ->json()['data']; $palsu_array = $result->toArray(); // dd($pampasan, $palsu_array); $indexedArray2 = collect($pampasan)->keyBy('norujukan'); $merged = collect($palsu_array)->map(function ($item) use ($indexedArray2) { $id = $item->norujukan; $itemArray = (array) $item; // Convert object to array $additional = $indexedArray2->get($id, []); return array_merge($itemArray, $additional); })->values()->toArray(); // dd($merged, $status); $filteredResults = []; if ($status == 'dituntut') { foreach ($merged as $pampasan) { if (isset($pampasan['status']) && $pampasan['status'] == 1) { $filteredResults[] = $pampasan; } } } if ($status == 'belum-tuntut') { foreach ($merged as $pampasan) { if (!isset($pampasan['status']) ) { $filteredResults[] = $pampasan; } } } if ($status == 'all') { $filteredResults = $merged; } return response()->json($filteredResults); } }