diff --git a/app/Http/Controllers/BayaranController.php b/app/Http/Controllers/BayaranController.php
index 8d23851..e3703c6 100644
--- a/app/Http/Controllers/BayaranController.php
+++ b/app/Http/Controllers/BayaranController.php
@@ -38,7 +38,7 @@ class BayaranController extends Controller
'nokp' => $customerIcno,
'kodcaw' => $request->txtkodcawhidden[$x],
'norujukan' => $request->txtnorujukanhidden[$x],
- 'bayaran' => $request->txtbayaranhidden[$x],
+ 'bayaran' => round($request->txtbayaranhidden[$x], 1),
'txtjbghidden' => $request->txtjbghidden[$x],
'txtupahhidden' => $request->txtupahhidden[$x],
];
@@ -50,7 +50,7 @@ class BayaranController extends Controller
'nokp' => $customerIcno,
'kodcaw' => $request->txtkodcawhidden[$x],
'norujukan' => $request->txtnorujukanhidden[$x],
- 'bayaran' => $request->txtbayaranhidden[$x],
+ 'bayaran' => round($request->txtbayaranhidden[$x], 1),
];
}, array_keys($bayaranOthers));
@@ -58,7 +58,7 @@ class BayaranController extends Controller
$getPaymentSum = function () use ($paymentArray) {
$billPlzTransactionFee = Money::MYR(100);
- $sum = fn() => array_reduce($paymentArray, fn($accumulator, $currentItem) => $accumulator + round($currentItem['bayaran'], 1), 0) * 100;
+ $sum = fn() => array_reduce($paymentArray, fn($accumulator, $currentItem) => $accumulator + $currentItem['bayaran'], 0) * 100;
return Money::MYR($sum())->add($billPlzTransactionFee);
};
diff --git a/app/Http/Controllers/BillplzController.php b/app/Http/Controllers/BillplzController.php
new file mode 100644
index 0000000..0949e85
--- /dev/null
+++ b/app/Http/Controllers/BillplzController.php
@@ -0,0 +1,16 @@
+bill_ids);
+ return $billplzService->getBills($billIdArray);
+ }
+}
diff --git a/app/Http/Controllers/BillplzTransactionReviewController.php b/app/Http/Controllers/BillplzTransactionReviewController.php
index b7ddc1f..2817731 100644
--- a/app/Http/Controllers/BillplzTransactionReviewController.php
+++ b/app/Http/Controllers/BillplzTransactionReviewController.php
@@ -8,7 +8,7 @@ use Illuminate\Http\Request;
class BillplzTransactionReviewController extends Controller
{
- public function __invoke(Request $request, BillplzService $billplzService)
+ public function index(Request $request, BillplzService $billplzService)
{
$date = $request->date ?? Carbon::now()->toDateString();
@@ -16,4 +16,13 @@ class BillplzTransactionReviewController extends Controller
return response()->json($billplzTransactionReview, 200);
}
+
+ public function show(Request $request, BillplzService $billplzService)
+ {
+ $date = $request->date ?? Carbon::now()->toDateString();
+
+ $billplzTransactionReview = $billplzService->getBillplzTransactionReviewByBillId($request->bill_id);
+
+ return response()->json($billplzTransactionReview, 200);
+ }
}
diff --git a/app/Http/Requests/PaymentRequest.php b/app/Http/Requests/PaymentRequest.php
index e2212eb..ff4fed0 100644
--- a/app/Http/Requests/PaymentRequest.php
+++ b/app/Http/Requests/PaymentRequest.php
@@ -45,7 +45,7 @@ class PaymentRequest extends FormRequest
new NorujukanBukanFasa2($this->pembiayaanAkanDilelong),
new NorujukanNotAttemptPaymentRecently,
new CawanganPermitUjrahPayment($this->selectedPembiayaan),
- new PaymentNotUjrah($this->selectedPembiayaan),
+ // new PaymentNotUjrah($this->selectedPembiayaan),
new NorujukanContractNotExceed12Month($this->selectedPembiayaan),
]
];
diff --git a/app/Services/BillplzService.php b/app/Services/BillplzService.php
index 98e6f51..ae853f9 100644
--- a/app/Services/BillplzService.php
+++ b/app/Services/BillplzService.php
@@ -110,7 +110,7 @@ class BillplzService
public function getTransactions($date)
{
- $arrahnTransactions = $this->getArrahnTransactions($date);
+ $arrahnTransactions = $this->getArrahnTransactions(['date' => $date]);
$billplzID = collect($arrahnTransactions)->pluck('billplz_id')->unique()->values();
$billplzTransactions = collect($billplzID)->map(function ($billId) {
@@ -126,15 +126,37 @@ class BillplzService
return $billplzTransactions;
}
- public function getArrahnTransactions($date)
+ public function getTransactionsByBillId($billId)
{
- return Http::arrahn()->get('/api/transaction/online/query', ['date' => $date])->json();
+ $billplzID = collect([$billId]);
+
+ $billplzTransactions = collect($billplzID)->map(function ($billId) {
+ return $this->client->transaction()->get($billId)->toArray();
+ })
+ ->map(function ($data) {
+ $latestTransaction = reset($data['transactions']) == false ? [] : reset($data['transactions']);
+ $billId = ['bill_id' => $data['bill_id']];
+ return array_merge($billId, $latestTransaction);
+ })
+ ->keyBy('bill_id');
+
+ return $billplzTransactions;
+ }
+
+ public function getArrahnTransactions($queryData)
+ {
+ if(isset($queryData['date'])){
+ return Http::arrahn()->get('/api/transaction/online/query', ['date' => $queryData['date']])->json();
+ }
+
+ if(isset($queryData['billId'])){
+ return Http::arrahn()->get('/api/transaction/online/query', ['billId' => $queryData['billId']])->json();
+ }
}
public function getBillplzTransactionReview($date)
{
- $date = Carbon::now()->toDateString();
- $arrahnTransactions = $this->getArrahnTransactions($date);
+ $arrahnTransactions = $this->getArrahnTransactions(['date' => $date]);
// sort array by tarikh desc and masa key desc
array_multisort(array_column($arrahnTransactions, 'tarikh'), SORT_DESC, array_column($arrahnTransactions, 'masa'), SORT_DESC, $arrahnTransactions);
@@ -175,6 +197,46 @@ class BillplzService
return $summarizedBillplzTransactions;
}
+ public function getBillplzTransactionReviewByBillId($billId)
+ {
+
+ $arrahnTransactions = $this->getArrahnTransactions(['billId' => $billId]);
+
+ $billplzID = collect([$billId]);
+ $billplzTransactions = $this->getTransactionsByBillId($billId);
+
+
+ $merged = $billplzID->map(function ($billId) use ($billplzTransactions, $arrahnTransactions) {
+ return [
+ 'bill_id' => $billId,
+ 'arrahn_transactions' => $arrahnTransactions,
+ 'billplz_latest_transaction' => $billplzTransactions->get($billId),
+ ];
+ });
+
+
+ $summarizedBillplzTransactions = collect($merged)->map(function ($data) {
+ $data['arrahn_transactions'] = collect($data['arrahn_transactions'])->map(function ($transaction) {
+ return[
+ 'nokp' => $transaction['nokp'],
+ 'norujukan' => $transaction['norujukan'],
+ 'kodcaw' => $transaction['kodcaw'],
+ 'total_payment' => $transaction['total_payment'],
+ 'customer_name' => $transaction['customer_name'],
+ 'status' => $transaction['status'],
+ 'paid_at' => $transaction['paid_at'],
+ 'tarikh_attempt_bayar' => $transaction['tarikh'],
+ 'masa_attempt_bayar' => $transaction['masa'],
+ 'portal' => $transaction['tagportal'] == 1 ? 'Arrahn Pay' : 'SPARE',
+ ];
+ });
+
+ return $data;
+ });
+
+ return $summarizedBillplzTransactions;
+ }
+
public function getTransactionByBillId($billId)
{
try {
@@ -185,4 +247,9 @@ class BillplzService
throw $th;
}
}
+
+ public function getBills($billIds)
+ {
+ return array_map(fn($x) => $this->client->bill()->get($x)->toArray(), $billIds);
+ }
}
diff --git a/resources/views/includes/bayaran/pembayaransag.blade.php b/resources/views/includes/bayaran/pembayaransag.blade.php
index 3926492..d2c274d 100644
--- a/resources/views/includes/bayaran/pembayaransag.blade.php
+++ b/resources/views/includes/bayaran/pembayaransag.blade.php
@@ -343,9 +343,9 @@
'Baki Pembiayaan tidak boleh kurang 10% daripada Nilai Marhun',
'error'
)
- $(this).val(errorlebih.toFixed(2));
+ $(this).val(upah);
$(this).closest('tr').find('.bayaran').val(errorlebih.toFixed(2));
- let bakipinjambaru = parseFloat(bakipinjam - (errorlebih.toFixed(2) - upah));
+ let bakipinjambaru = parseFloat(bakipinjam);
bakipinjambaru = (bakipinjambaru * 100) / 10;
bakipinjambaru = Math.round(bakipinjambaru);
@@ -451,4 +451,44 @@
}
+
+
+
+
@endsection
diff --git a/routes/api.php b/routes/api.php
index 6fc6b83..e90f5c5 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -3,6 +3,7 @@
use App\Http\Controllers\BillplzTransactionReviewController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
+use App\Http\Controllers\BillplzController;
/*
|--------------------------------------------------------------------------
@@ -19,4 +20,6 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
-Route::get('/billplz-transaction-review', BillplzTransactionReviewController::class)->name('billplz-transaction-review');
+Route::get('/billplz', BillplzController::class);
+Route::get('/billplz-transaction-review', [BillplzTransactionReviewController::class, 'index']);
+Route::get('/billplz-transaction-review/{bill_id}', [BillplzTransactionReviewController::class, 'show']);
diff --git a/routes/web.php b/routes/web.php
index 32ae058..4e6a160 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -267,7 +267,3 @@ Route::get('/requestic', 'App\Http\Controllers\TacController@requestKadPengenala
Route::get('/requesticfe', 'App\Http\Controllers\TacController@requestKadPengenalanfe')->name('requesticfe');
Route::get('/requesttac', 'App\Http\Controllers\TacController@TACrequest')->name('requesttac');
Route::get('/requesttacfe', 'App\Http\Controllers\TacController@TACrequestfe')->name('requesttacfe');
-
-
-
-