Files
api_arrahn/app/Http/Controllers/BarangkesController.php
T
2025-09-17 12:39:10 +08:00

91 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Audit;
use App\Polis;
use App\Cawangan;
use App\LookupAlasan;
use App\Pampasan;
use App\Palsu;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class BarangkesController extends Controller
{
public function LaporanBarangKes(Request $request)
{
$status = $request->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);
}
}