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' => '', +]) + +
+
+
+
+
+ {{ $title }} +
+
+

{{ $subtitle }}

+
+ +
+
+
+
diff --git a/resources/views/online/billplz-transaction-summary/index.blade.php b/resources/views/online/billplz-transaction-summary/index.blade.php new file mode 100644 index 0000000..272394d --- /dev/null +++ b/resources/views/online/billplz-transaction-summary/index.blade.php @@ -0,0 +1,96 @@ +@extends('layouts.app') +@section('content') + +@section('title', 'Billplz Transaction Summary') + + + + +
+ + +
+ +
-
+ +
=
+ +
+
+
+ +
x
+ +
=
+ + +
+ + + + + + + + @forelse ($billPlzTransactionReview as $data) + + + +
+
+ @foreach ($data['arrahn_transactions'] as $transaction) +
+
+

+ status : {{ $transaction['status'] }} +
+ total_payment: + {{ number_format((float) $transaction['total_payment'], 2, '.', '') }}
+ norujukan: {{ $transaction['norujukan'] }} + +

+
+

+ kodcaw: {{ $transaction['kodcaw'] }}
+ customer_name: {{ $transaction['customer_name'] }}
+

+
+
+
+ @endforeach +
+
+ + +
+
+
+
+

+ billplz_status : {{ $data['billplz_bill']['state'] ?? '' }} +
+ billplz_paid_amount: + {{ number_format($data['billplz_bill']['paid_amount']['amount'] / 100, 2, '.', '') }} +
+

+
+
+
+
+
+ + + @empty + + + + @endforelse +
+
+
+@endsection diff --git a/resources/views/onlineTransaction/home.blade.php b/resources/views/onlineTransaction/home.blade.php index 134b461..dbef7c0 100644 --- a/resources/views/onlineTransaction/home.blade.php +++ b/resources/views/onlineTransaction/home.blade.php @@ -30,18 +30,23 @@ @endif - - -
- +
+

Trail Transaksi Online

-
+ +
+ +
+

Summary Transaksi Billplz

+
-
+
+ +
diff --git a/routes/web.php b/routes/web.php index 7290636..a488109 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,6 +1,7 @@ nam Route::get('/transaction/online/trail', OnlineTransactionTrailController::class)->name('transaction.online.trail'); Route::get('/transaction/online/billplz-transaction-review', [BillplzTransactionReviewController::class, 'index'])->name('transaction.online.billplz-transaction-review.index'); Route::get('/transaction/online/billplz-transaction-review/{bill_id}', [BillplzTransactionReviewController::class, 'show'])->name('transaction.online.billplz-transaction-review.show'); +Route::get('/transaction/online/billplz-transaction-summary', [BillplzTransactionSummaryController::class, 'index'])->name('transaction.online.billplz-transaction-summary.index'); Route::get('/transaction/online/log', [OnlineTransactionLogController::class, 'index'])->name('transaction.online.log.index'); Route::get('/transaction/online/log/{bill_id}', [OnlineTransactionLogController::class, 'show'])->name('transaction.online.log.show'); Route::get('/transaction/online/gadaian/{norujukan}', OnlineTransactionGadaianController::class)->name('transaction.online.gadaian');