status; $cawangan = Cawangan::on('mysql7')->where('kodcaw', $request->kodcaw)->first(); if (!$cawangan) { return response()->json(['error' => 'Invalid kodcaw'], 403); } $palsu_query = Palsu::on($cawangan['mysql']) ->select([ 'tarikh', 'norujukan', 'nota', 'pembiayaan', 'nilaimarhun', 'jbg', 'untung', 'untungonepercent', 'untungcajlain' ]) ->when($request->filled('jenis'), function($query) use($request){ return $query->where('jenis', $request->jenis); }) ->when($request->filled('tarikh_mula') && $request->filled('tarikh_akhir'), function($query) use($request){ return $query->whereBetween('tarikh', [$request->tarikh_mula, $request->tarikh_akhir]); }) ->with('tebus:norujukan'); $palsu_array = $palsu_query->get()->toArray(); $pampasan_array = Pampasan::on($cawangan['mysql'])->where('kodcaw', $request->kodcaw)->get()->toArray(); $indexedArray2 = collect($pampasan_array)->keyBy('norujukan'); $merged = collect($palsu_array)->map(function ($item) use ($indexedArray2) { $id = $item['norujukan']; $itemArray = $item; // Already an array from toArray() $additional = $indexedArray2->get($id, []); // Add exists_in_tebus flag based on relationship $itemArray['gadaian_sudah_tebus'] = !is_null($item['tebus']); // Remove the tebus relationship data to keep response clean unset($itemArray['tebus']); return array_merge($itemArray, $additional); })->values()->toArray(); $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' || $status == null) { $filteredResults = $merged; } return response()->json($filteredResults); } }