Merged in izzati-hotfix-laporan-SA-filtered (pull request #336)

update stok audit khas blast sms)
This commit is contained in:
izzati zulkifli
2025-08-07 03:45:44 +00:00
+66 -31
View File
@@ -51,16 +51,49 @@ class StokAuditController extends Controller
// dd($request->kodcaw); // dd($request->kodcaw);
$daritempoh = $request->daritempoh; $daritempoh = $request->daritempoh;
$hinggatempoh = $request->hinggatempoh; $hinggatempoh = $request->hinggatempoh;
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first(); $cawangan = Cawangan::on('mysql7')->where('kodcaw', '=', $request->kodcaw)->first();
// Query asal gadai
$audit = Gadai::on($cawangan['mysql']) $audit = Gadai::on($cawangan['mysql'])
->where([['tagpalsu','=',0],['tempoh','>=',$daritempoh],['tempoh','<=',$hinggatempoh],['sttebus','=',''],['taglel','=',0]]) ->where([
['tagpalsu', '=', 0],
['tempoh', '>=', $daritempoh],
['tempoh', '<=', $hinggatempoh],
['sttebus', '=', ''],
['taglel', '=', 0],
])
->orderBy('t_gadai', 'ASC') ->orderBy('t_gadai', 'ASC')
->orderBy('sirig', 'ASC'); ->orderBy('sirig', 'ASC');
// ->get();
// dd($audit); // Dapatkan tarikh terkini untuk trans_type 'T' dan 'A'
$arraynorujukan = $audit->pluck('norujukan')->toArray(); $tarikhTerkiniT = Transaction::on('mysql7')
$rekodaudit = $audit->get(); ->where('trans_type', 'T')
->max('created_at');
$tarikhTerkiniA = Transaction::on('mysql7')
->where('trans_type', 'A')
->max('created_at');
// Filter audit berdasarkan tiada transaksi T/A pada tarikh terkini
$rekodaudit = $audit->get()->filter(function ($item) use ($cawangan, $tarikhTerkiniT, $tarikhTerkiniA) {
$adaTebusTerkini = Transaction::on('mysql7')
->where('norujukan', $item->norujukan)
->where('trans_type', 'T')
->whereDate('created_at', '>=', date('Y-m-d', strtotime($tarikhTerkiniT)))
->exists();
$adaAnsuranTerkini = Transaction::on('mysql7')
->where('norujukan', $item->norujukan)
->where('trans_type', 'A')
->whereDate('created_at', '>=', date('Y-m-d', strtotime($tarikhTerkiniA)))
->exists();
return !$adaTebusTerkini && !$adaAnsuranTerkini;
})->values();
// Gunakan hanya norujukan yang dah ditapis
$arraynorujukan = $rekodaudit->pluck('norujukan')->toArray();
$gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) $gadainokp = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan)
->select('nokp') ->select('nokp')
->groupBy('nokp') ->groupBy('nokp')
@@ -68,28 +101,23 @@ class StokAuditController extends Controller
// dd($gadainokp); // dd($gadainokp);
foreach($gadainokp as $index1=>$cal){ foreach ($gadainokp as $index1 => $cal) {
$customer = Customer::on('mysql7')->where('kpbaru','=',$cal['nokp']) $customer = Customer::on('mysql7')->where('kpbaru', '=', $cal['nokp'])
->orWhere('kplama','=',$cal['nokp']) ->orWhere('kplama', '=', $cal['nokp'])
->first(); ->first();
$listsag = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan) $listsag = Gadai::on($cawangan['mysql'])->whereIn('norujukan', $arraynorujukan)
// ->where('nokp','=',$cal['nokp']) ->where('nokp', 'like', '%' . $cal['nokp'] . '%')
->where('nokp', 'like', '%'.$cal['nokp'].'%')
->get(); ->get();
foreach($listsag as $index2=>$cal2){ $checkingnokp = null;
foreach ($listsag as $index2 => $cal2) {
if($cal2){ if ($cal2) {
$checkingnokp = BlastWasap::on('mysql7') $checkingnokp = BlastWasap::on('mysql7')
->where('nokp','=',$cal['nokp']) ->where('nokp', '=', $cal['nokp'])
->where('norujukan','=',$cal2['norujukan']) ->where('norujukan', '=', $cal2['norujukan'])
->where('kodcaw','=',$kodcaw) ->where('kodcaw', '=', $kodcaw)
->first(); ->first();
// $gadainokp[$index1]['blasted'] = $checkingnokp;
} }
} }
@@ -97,17 +125,24 @@ class StokAuditController extends Controller
$gadainokp[$index1]['listsag'] = $listsag; $gadainokp[$index1]['listsag'] = $listsag;
$gadainokp[$index1]['blasted'] = $checkingnokp; $gadainokp[$index1]['blasted'] = $checkingnokp;
} }
// Total dikira berdasarkan hasil audit yang telah ditapis
$totalrekod = $rekodaudit->sum('pinjaman');
$totalberat = $rekodaudit->sum('berat');
$totalnilaimarhun = $rekodaudit->sum('nilaimarhun');
$totalpinjaman = $rekodaudit->sum('pinjaman');
$totalbakipjm = $rekodaudit->sum('bakipjm');
$totaltunggakan = $rekodaudit->sum('tunggakan');
$totalrekod = $audit->sum('pinjaman'); $arrayrekod = [
$totalberat = $audit->sum('berat'); 'rekod' => $gadainokp,
$totalnilaimarhun = $audit->sum('nilaimarhun'); 'total' => $totalrekod,
$totalpinjaman = $audit->sum('pinjaman'); 'totalberat' => $totalberat,
$totalbakipjm = $audit->sum('bakipjm'); 'totalnilaimarhun' => $totalnilaimarhun,
$totaltunggakan = $audit->sum('tunggakan'); 'totalpinjaman' => $totalpinjaman,
'totalbakipjm' => $totalbakipjm,
$arrayrekod = ['rekod' => $gadainokp, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan]; 'totaltunggakan' => $totaltunggakan,
// dd($arrayrekod); ];
return response()->json($arrayrekod,200); return response()->json($arrayrekod, 200);
} }