Merge branch 'main' of https://bitbucket.org/arrahn-pkb/arrahn-portal into staging
This commit is contained in:
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Services\BillplzService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BillplzController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request, BillplzService $billplzService)
|
||||
{
|
||||
$billIdArray = json_decode($request->bill_ids);
|
||||
return $billplzService->getBills($billIdArray);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
]
|
||||
];
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var input = document.getElementById('txtbayarantawarruq');
|
||||
var timer;
|
||||
|
||||
input.addEventListener('input', function() {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(function() {
|
||||
var value = parseFloat(input.value);
|
||||
if (!isNaN(value)) {
|
||||
input.value = value.toFixed(2);
|
||||
}
|
||||
}, 500); // 500ms delay
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var inputs = document.querySelectorAll('input[name="txtbayarantawarruq"]');
|
||||
|
||||
Array.from(inputs).forEach(function(input) {
|
||||
var timer;
|
||||
|
||||
input.addEventListener('input', function() {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(function() {
|
||||
var value = parseFloat(input.value);
|
||||
if (!isNaN(value)) {
|
||||
roundedValue = (value * 100) / 10;
|
||||
roundedValue = Math.round(roundedValue);
|
||||
roundedValue = roundedValue / 10;
|
||||
input.value = roundedValue.toFixed(2);
|
||||
}
|
||||
}, 1500); // 1500ms delay
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
|
||||
+4
-1
@@ -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']);
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user