Merged in izzati-feat-laporan-lelong-admin (pull request #265)
tambah function laporan lelong admin
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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']);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user