Update codebase
- Fix payable ujrah branch response - Add route and controller function to query for online transaction. for now can query by date - Add route and controller function to get online transaction trail. the endpoint will return the data from 4 interlinked table for online transaction needed to complete phase
This commit is contained in:
@@ -30,6 +30,20 @@ class TransactionOnlineController extends Controller
|
||||
|
||||
return response()->json($transactionOnline);
|
||||
}
|
||||
|
||||
public function getListTransactionOnlineQuery(Request $request)
|
||||
{
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
$transactionOnline = TransactionOnline::on('mysql7')
|
||||
->whereDate('tarikh', $date)
|
||||
->get();
|
||||
|
||||
|
||||
|
||||
return response()->json($transactionOnline);
|
||||
}
|
||||
|
||||
public function getLatestNosiri()
|
||||
{
|
||||
$current = Carbon::now();
|
||||
@@ -654,4 +668,75 @@ class TransactionOnlineController extends Controller
|
||||
return $th;
|
||||
}
|
||||
}
|
||||
|
||||
function getListTransactionOnlineTrail(Request $request)
|
||||
{
|
||||
|
||||
$date = $request->date ? $request->date : Carbon::now()->toDateString();
|
||||
$isGroupByNorujukan = $request->filled('isGroupedByNorujukan') && $request->isGroupedByNorujukan === '1';
|
||||
|
||||
$transactionsOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->when($request->filled('norujukan'), function ($query) use($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get()
|
||||
->filter(fn ($x) => $x['status'] === 'PAID')
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$transaction = Transaction::whereDate('created_at', $date)
|
||||
->where('teller', 'Online')
|
||||
->when($request->norujukan, function ($query) use($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get()
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$transaksiKeuntungan = TransaksiKeuntungan::whereDate('tarikh_bayaran', $date)
|
||||
->when($request->norujukan, function ($query) use($request) {
|
||||
return $query->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->get()
|
||||
->when($isGroupByNorujukan, function ($query) {
|
||||
return $query->groupBy('norujukan')->sortKeysDesc();
|
||||
})
|
||||
->toArray();
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->where('kodcaw', 'KB2')->first()->mysql;
|
||||
|
||||
$cawanganTransactionOnline = TransactionOnline::whereDate('tarikh', $date)
|
||||
->get()
|
||||
->pluck('kodcaw')
|
||||
->unique()
|
||||
->all();
|
||||
|
||||
$connectionCawangan = Cawangan::on('mysql7')->whereIn('kodcaw', $cawanganTransactionOnline)->get()->pluck('mysql');
|
||||
|
||||
$glDetail = $connectionCawangan->map(fn ($x) => GlDetail::on($x)->where('teller', 'ONLINE')->whereDate('tarikh', $date)->get())
|
||||
->flatten()
|
||||
->when($isGroupByNorujukan, function ($glDetail) {
|
||||
return $glDetail->groupBy('descpt')
|
||||
->keyBy(function ($group, $key) {
|
||||
$array = explode(' ', $key);
|
||||
return end($array);
|
||||
});
|
||||
})
|
||||
->when($request->filled('norujukan'), function ($glDetail) use($request) {
|
||||
return $glDetail->where('norujukan', $request->norujukan);
|
||||
})
|
||||
->sortKeysDesc()
|
||||
->toArray();
|
||||
|
||||
return response()->json([
|
||||
'transactionsOnline' => $transactionsOnline,
|
||||
'transaction' => $transaction,
|
||||
'transaksiKeuntungan' => $transaksiKeuntungan,
|
||||
'glDetail' => $glDetail
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user