Add tabbable views in billplz transaction summary logic
This commit is contained in:
@@ -14,7 +14,24 @@ class BillplzTransactionSummaryController extends Controller
|
||||
$transactionDataPKB = collect( Http::arrahn()->get('/api/transaction/online/query', ['date' => $date, 'status' => 'paid'])->json() );
|
||||
$transactionDataKOOP = collect( Http::arrahn_koop()->get('/api/transaction/online/query', ['date' => $date, 'status' => 'paid'])->json() );
|
||||
$transactionData = $transactionDataPKB->merge($transactionDataKOOP);
|
||||
|
||||
|
||||
$transactionDataPKB = $this->processArrahnTransactions($transactionDataPKB);
|
||||
$transactionDataKOOP = $this->processArrahnTransactions($transactionDataKOOP);
|
||||
$transactionData = $this->processArrahnTransactions($transactionData);
|
||||
|
||||
$billIds = $transactionData->keys();
|
||||
$billIds = $billIds->toArray();
|
||||
$billplzBills = Http::get(config('api.url_arrahn_portal') . '/api/billplz', ['bill_ids' => json_encode($billIds)])->json();
|
||||
|
||||
$data = array_map(fn($x, $y) => $this->processBillplzBills($x, $y), $billplzBills, [$transactionDataKOOP, $transactionDataPKB]);
|
||||
|
||||
[$billPlzTransactionSummaryPKB, $billPlzTransactionSummaryKOOP] = $data;
|
||||
|
||||
return view('online.billplz-transaction-summary.index', compact('billPlzTransactionSummaryPKB' ,'billPlzTransactionSummaryKOOP', 'date'));
|
||||
}
|
||||
|
||||
public function processArrahnTransactions($transactionData)
|
||||
{
|
||||
// Group transactionData by bill_id
|
||||
$transactionData = $transactionData->groupBy(function($transaction) {
|
||||
return $transaction['billplz_id'];
|
||||
@@ -23,15 +40,18 @@ class BillplzTransactionSummaryController extends Controller
|
||||
$transactionData = array_map(fn($x) => ['arrahn_transactions' => $x], $transactionData);
|
||||
$transactionData = collect($transactionData);
|
||||
|
||||
$billIds = $transactionData->keys();
|
||||
$billplzBills = Http::get(config('api.url_arrahn_portal') . '/api/billplz', ['bill_ids' => json_encode($billIds)])->json();
|
||||
$billplzBills = collect($billplzBills)->map(function($bill) {
|
||||
return $transactionData;
|
||||
}
|
||||
|
||||
public function processBillplzBills($bills_group, $transactionData)
|
||||
{
|
||||
$bills_group = collect($bills_group)->map(function($bill) {
|
||||
$bill['paid_amount_formatted'] = floatval($bill['paid_amount']['amount']) / 100;
|
||||
return $bill;
|
||||
});
|
||||
|
||||
$sumOfArrahnTransactions = $transactionData->sum(fn($x) => array_reduce($x['arrahn_transactions'], fn($carry, $item) => $carry + $item['total_payment'], 0));
|
||||
$sumOfBillplzTransactions = collect($billplzBills)->sum(fn($x) => $x['paid_amount_formatted']);
|
||||
$sumOfBillplzTransactions = collect($bills_group)->sum(fn($x) => $x['paid_amount_formatted']);
|
||||
$numberOfArrahnTransactions = $transactionData->count();
|
||||
|
||||
$paymentGatewayCost = 'RM ' . number_format($sumOfBillplzTransactions - $sumOfArrahnTransactions, 2);
|
||||
@@ -39,20 +59,25 @@ class BillplzTransactionSummaryController extends Controller
|
||||
$sumOfBillplzTransactions = 'RM ' . number_format($sumOfBillplzTransactions, 2);
|
||||
|
||||
|
||||
if ($transactionData->count() !== count($billplzBills)) {
|
||||
throw new \Exception("The number of items in transactionData and billplzBills must be the same.");
|
||||
if ($transactionData->count() !== count($bills_group)) {
|
||||
throw new \Exception("The number of items in transactionData and bills_group must be the same.");
|
||||
}
|
||||
|
||||
$billPlzTransactionSummary = $transactionData->zip($billplzBills)->map(function ($zippedItem) {
|
||||
$billPlzTransactionSummary = $transactionData->zip($bills_group)->map(function ($zippedItem) {
|
||||
[$transactionData, $billplzBill] = $zippedItem;
|
||||
|
||||
$transactionData['billplz_bill'] = $billplzBill;
|
||||
|
||||
return $transactionData;
|
||||
});
|
||||
|
||||
|
||||
return view('online.billplz-transaction-summary.index', compact( 'billPlzTransactionSummary', 'sumOfArrahnTransactions', 'sumOfBillplzTransactions', 'paymentGatewayCost', 'numberOfArrahnTransactions', 'date'));
|
||||
|
||||
return[
|
||||
'billPlzTransactionSummary' => $billPlzTransactionSummary,
|
||||
'sumOfArrahnTransactions' => $sumOfArrahnTransactions,
|
||||
'sumOfBillplzTransactions' => $sumOfBillplzTransactions,
|
||||
'paymentGatewayCost' => $paymentGatewayCost,
|
||||
'numberOfArrahnTransactions' => $numberOfArrahnTransactions,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user