From bfbf874f92b70122a49e1d2890f713bfff1140fe Mon Sep 17 00:00:00 2001 From: BTMS2 Date: Wed, 26 Feb 2025 15:48:14 +0800 Subject: [PATCH] tambah function laporan lelong admin --- app/Http/Controllers/LelongController.php | 110 ++++++++++++++++++++++ routes/web.php | 4 + 2 files changed, 114 insertions(+) diff --git a/app/Http/Controllers/LelongController.php b/app/Http/Controllers/LelongController.php index a1b515f..99318ab 100644 --- a/app/Http/Controllers/LelongController.php +++ b/app/Http/Controllers/LelongController.php @@ -32,6 +32,8 @@ use App\Services\RingkasanHarianServices; use App\Services\OnePercentServices; use App\Services\MasterServices; use App\Support\v2\Calculation; +use Illuminate\Support\Facades\Validator; + use Log; use DB; @@ -1772,5 +1774,113 @@ class LelongController extends Controller return response()->json($tuntutbaki,200); } + public function LaporanLelong(Request $request) + { + // Validate required input + $validator = Validator::make($request->all(), [ + 'kodcaw' => 'required|string', + 'tarikhmula' => 'required|date', + 'tarikhhingga' => 'required|date|after_or_equal:tarikhmula', + 'batchno' => 'nullable|string' + ]); + + if ($validator->fails()) { + return response()->json(['error' => $validator->errors()], 400); + } + + + // Get cawangan details + $cawangan = Cawangan::on('mysql7')->where('kodcaw', $request->kodcaw)->first(); + + if (!$cawangan) { + return response()->json(['error' => 'Invalid kodcaw'], 403); + } + + // Query lelong data + $lelong_query = Lelong::on($cawangan['mysql']) + ->leftJoin('gadai', 'gadai.norujukan', '=', 'lelong.norujukan') + ->join('lelmarhun', 'lelmarhun.norujukan', '=', 'lelong.norujukan') + ->join('pembeli', 'pembeli.nopembeli', '=', 'lelong.nopembeli') + ->whereBetween('lelong.t_lelong', [$request->tarikhmula, $request->tarikhhingga]); + + // Optional: Filter by batch number + if ($request->has('batchno') && !empty($request->batchno)) { + $lelong_query->where('lelong.batchno', $request->batchno); + } + // dd($lelong_query); + // Select required fields + $lelong_data = $lelong_query->select( + 'lelong.batchno', 'lelong.t_lelong', 'gadai.t_gadai', 'gadai.nokp', 'lelong.pinjaman', + 'lelong.baki', 'lelong.norujukan', 'gadai.marhun', 'lelong.nilaimarhun', + 'lelong.bakiupah', 'lelong.cajlelong', 'lelong.hargajual', 'lelong.hargaasas', + 'pembeli.nama', 'pembeli.nokp AS nokppembeli', 'lelong.tagujrah', 'lelong.ujrah', + 'lelong.onepercent', 'lelong.teller' + ) + ->orderBy('lelong.t_lelong') + ->get(); + // dd($lelong_data); + + // If no data found, return a message + if ($lelong_data->isEmpty()) { + return response()->json([ + 'message' => 'Tiada lelongan dalam tarikh dipilih.', + 'data' => [], + 'totals' => [ + 'total_pinjaman' => 0, + 'total_nilaimarhun' => 0, + 'total_keuntungan' => 0, + 'total_onepercent' => 0, + 'total_ujrah' => 0, + 'total_cajlelong' => 0, + 'total_hargajual' => 0, + 'total_baki' => 0, + 'total_hargaasas' => 0 + ] + ]); + } + + // Calculate totals safely (prevent null values) + $totals = [ + 'total_pinjaman' => $lelong_data->sum(fn($item) => $item->pinjaman ?? 0), + 'total_nilaimarhun' => $lelong_data->sum(fn($item) => $item->nilaimarhun ?? 0), + 'total_keuntungan' => $lelong_data->sum(fn($item) => $item->bakiupah ?? 0), + 'total_onepercent' => $lelong_data->sum(fn($item) => $item->onepercent ?? 0), + 'total_ujrah' => $lelong_data->sum(fn($item) => $item->ujrah ?? 0), + 'total_cajlelong' => $lelong_data->sum(fn($item) => $item->cajlelong ?? 0), + 'total_hargajual' => $lelong_data->sum(fn($item) => $item->hargajual ?? 0), + 'total_baki' => $lelong_data->sum(fn($item) => $item->baki ?? 0), + 'total_hargaasas' => $lelong_data->sum(fn($item) => $item->hargaasas ?? 0) + ]; + + $tarikh_lelongs = $lelong_data->pluck('t_lelong')->first(); // Get first date + + // Return JSON response + return response()->json([ + 'data' => $lelong_data, + 'totals' => $totals, + 'tarikh_lelong' => $tarikh_lelongs + ]); + } + + + public function LookupBatchLel($kodcaw,Request $request) + { + $harini = Carbon::now(); + $harini = new Carbon; + $cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first(); + + $batchlel = BatchLel::on($cawangan['mysql']) + ->select('batchno','tarikh') + ->when($kodcaw, function ($query, $kodcaw) { + return $query->where('kodcaw', $kodcaw); + }) + ->orderBy('tarikh', 'DESC') + ->get(); + + return response()->json($batchlel); + + } + + } diff --git a/routes/web.php b/routes/web.php index 00513ad..73c7ac9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -448,6 +448,10 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('lookupalasan',['uses' => 'PolisController@LookupAlasan']); $router->get('polis/laporan',['uses' => 'PolisController@LaporanPolis']); + //laporanlelong adminportal + $router->get('laporan/lelong',['uses' => 'LelongController@LaporanLelong']); + $router->get('lookupbatchlel/{kodcaw}',['uses' => 'LelongController@LookupBatchLel']); +