diff --git a/app/Http/Controllers/BillplzTransactionSummaryController.php b/app/Http/Controllers/BillplzTransactionSummaryController.php new file mode 100644 index 0000000..9433a0c --- /dev/null +++ b/app/Http/Controllers/BillplzTransactionSummaryController.php @@ -0,0 +1,51 @@ +selectedDate ?? Carbon::now()->toDateString(); + + $transactionData = Http::get(config('api.url_arrahn_portal') . '/api/billplz-transaction-review', ['date' => $date])->effectiveUri(); + + $transactionData = collect( Http::get(config('api.url_arrahn_portal') . '/api/billplz-transaction-review', ['date' => $date])->json() ); + + $transactionData = $transactionData->filter(fn($x) => $x['arrahn_transactions'][0]['paid_at'] != null); + + $billIds = $transactionData->pluck('bill_id'); + $billplzBills = Http::get(config('api.url_arrahn_portal') . '/api/billplz', ['bill_ids' => json_encode($billIds)])->json(); + $billplzBills = array_map(function($bill) { + $bill['paid_amount_formatted'] = floatval($bill['paid_amount']['amount']) / 100; + return $bill; + }, $billplzBills); + + $sumOfArrahnTransactions = $transactionData->sum(fn($x) => $x['arrahn_transactions'][0]['total_payment']); + $sumOfBillplzTransactions = collect($billplzBills)->sum(fn($x) => $x['paid_amount_formatted']); + $numberOfArrahnTransactions = $transactionData->count(); + + $paymentGatewayCost = 'RM ' . number_format($sumOfBillplzTransactions - $sumOfArrahnTransactions, 2); + $sumOfArrahnTransactions = 'RM ' . number_format($sumOfArrahnTransactions, 2); + $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."); + } + + $billPlzTransactionReview = $transactionData->zip($billplzBills)->map(function ($zippedItem) { + [$transactionData, $billplzBill] = $zippedItem; + + $transactionData['billplz_bill'] = $billplzBill; + + return $transactionData; + }); + + + return view('online.billplz-transaction-summary.index', compact( 'billPlzTransactionReview', 'sumOfArrahnTransactions', 'sumOfBillplzTransactions', 'paymentGatewayCost', 'numberOfArrahnTransactions', 'date')); + } + +} diff --git a/resources/views/components/card.blade.php b/resources/views/components/card.blade.php new file mode 100644 index 0000000..403e204 --- /dev/null +++ b/resources/views/components/card.blade.php @@ -0,0 +1,21 @@ + +@props([ + 'title' => '', + 'subtitle' => '', +]) + +
{{ $subtitle }}
+
+ status : {{ $transaction['status'] }}
+
+ total_payment:
+ {{ number_format((float) $transaction['total_payment'], 2, '.', '') }}
+ norujukan: {{ $transaction['norujukan'] }}
+
+
+ kodcaw: {{ $transaction['kodcaw'] }}
+ customer_name: {{ $transaction['customer_name'] }}
+
+ billplz_status : {{ $data['billplz_bill']['state'] ?? '' }}
+
+ billplz_paid_amount:
+ {{ number_format($data['billplz_bill']['paid_amount']['amount'] / 100, 2, '.', '') }}
+
+