added personal_carts and put dynamic client

This commit is contained in:
hafifierahman
2024-12-08 00:44:38 +08:00
parent 0a1e8dc523
commit 4501449bb1
11 changed files with 296 additions and 59 deletions
+68 -5
View File
@@ -3,6 +3,8 @@
namespace App\Http\Controllers;
use App\Http\Requests\PaymentRequest;
use App\Models\CompanyStatus;
use App\Models\PersonalCarts;
use App\Models\TransactionOnlineStatus;
use App\Services\BillplzService;
use Carbon\Carbon;
@@ -18,21 +20,57 @@ class BayaranController extends Controller
{
public function PembayaranAction(PaymentRequest $request)
{
$exist_carts = $this->checkCarts();
$exist_carts = optional($exist_carts)->toArray();
if($exist_carts){
/* Do Have Carts. */
$list_pkb = json_decode($exist_carts['list_pkb'],true);
$list_koop = json_decode($exist_carts['list_koop'],true);
if($exist_carts['status_pkb'] == 'PENDING') $list_pkb = ($list_pkb) ? $this->setUpahTawarruq($list_pkb) : []; else $list_pkb = [];
if($exist_carts['status_koop'] == 'PENDING') $list_koop = ($list_koop) ? $this->setUpahTawarruq($list_koop) : []; else $list_koop = [];
}else{
/* Doesn't Have Carts. First Timer */
$request->validated();
$request->validated();
dd($request->all());
dd($request->getPembiayaanFromNorujukan());
$arraybayar = $this->setUpahTawarruq($request->getPembiayaanFromNorujukan());
$request->validated();
dd($request->all());
dd($request->getPembiayaanFromNorujukan());
$arraybayar = $this->setUpahTawarruq($request->getPembiayaanFromNorujukan());
return view('includes.bayaran.pembayaransag', compact('arraybayar'));
$list_pkb = array_filter(array_map(function ($x){
return ($x['tag_syarikat'] == CompanyStatus::COM_PKB) ? $x : null;
},$arraybayar));
$list_koop = array_filter(array_map(function ($x){
return ($x['tag_syarikat'] == CompanyStatus::COM_KOOPPKB) ? $x : null;
},$arraybayar));
$personal_carts = new PersonalCarts();
$personal_carts->ic_no = Auth::user()->icno;
$personal_carts->list_koop = json_encode($list_koop);
$personal_carts->list_pkb = json_encode($list_pkb);
$personal_carts->status_pkb = ($list_pkb) ? 'PENDING' : 'NONE';
$personal_carts->status_koop = ($list_koop) ? 'PENDING' : 'NONE';
$personal_carts->user_id = Auth::user()->id;
$personal_carts->save();
}
return view('includes.bayaran.pembayaransag', compact('list_pkb','list_koop'));
}
public function PembayaranEngine(Request $request, BillplzService $billplzService)
{
['email' => $customerEmail, 'notel' => $customerPhoneNumber, 'name' => $customerName, 'icno' => $customerIcno] = auth()->user()->toArray();
// dd($request->all());
$bayaranArrahn = array_filter($request->txtjenisbayaran, fn($x) => $x == 'arrahn');
$bayaranOthers = array_filter($request->txtjenisbayaran, fn($x) => $x != 'arrahn');
// dd('test');
$bayaranArrahnArray = array_map(function ($x) use ($customerName, $customerIcno, $request) {
return [
'customer_name' => $customerName,
@@ -63,7 +101,8 @@ class BayaranController extends Controller
return Money::MYR($sum())->add($billPlzTransactionFee);
};
$bill = $billplzService->createBill([$customerEmail, $customerPhoneNumber, $customerName, $getPaymentSum()]);
$company = strtoupper($request->txtcompany);
$bill = $billplzService->createBill([$customerEmail, $customerPhoneNumber, $customerName, $getPaymentSum()],$company);
$isRecordTransactionSuccess = $this->recordTransaction($paymentArray, $bill);
@@ -320,4 +359,28 @@ class BayaranController extends Controller
return array_map($getUpahTawarruqPerPembiayaan, $pembiayaan);
}
public function checkCarts(){
$exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno)
->where('user_id', Auth::user()->id)
->where(function ($query) {
$query->where('status_pkb', 'PENDING')
->orWhere('status_koop', 'PENDING');
})
->first();
return $exist_carts;
}
public function removeCarts(){
$exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno)
->where('user_id', Auth::user()->id)
->first();
if ($exist_carts) {
$exist_carts->delete();
}
return $exist_carts;
}
}
+20 -8
View File
@@ -3,6 +3,7 @@
namespace App\Http\Requests;
use App\Http\Controllers\InformationController;
use App\Models\CompanyStatus;
use App\Rules\PaymentRules\CawanganPermitUjrahPayment;
use App\Rules\PaymentRules\NorujukanBukanFasa2;
use App\Rules\PaymentRules\NorujukanContractNotExceed12Month;
@@ -54,17 +55,28 @@ class PaymentRequest extends FormRequest
public function getPembiayaanFromNorujukan()
{
$norujukanList = json_decode($this->totalSagInCartInput);
dd($norujukanList,$this->test);
$syarikatList = json_decode($this->listSyarikatinCartInput);
$filterByStatus = function ($status) use ($norujukanList, $syarikatList) {
return array_filter(
array_map(function ($sag, $index) use ($syarikatList, $status) {
if (isset($syarikatList[$index]) && $syarikatList[$index] == $status) {
$HttpRequest = $status == CompanyStatus::COM_PKB ? Http::arrahn() : Http::arrahn_koop();
$array_temp = $HttpRequest->get('/api/gadai/norujukan/' . $sag)->json()[0][0] ?? null;
$array_temp['tag_syarikat'] = $status;
return $array_temp;
}
return null;
}, $norujukanList, array_keys($norujukanList))
);
};
// $list_pkb = array_filter($fn($x) => );
// $list_koop = array_filter($fn($x) => );
$list_pkb = $filterByStatus(CompanyStatus::COM_PKB);
$list_koop = $filterByStatus(CompanyStatus::COM_KOOPPKB);
$pkb = array_map(fn($x) => Http::arrahn()->get('/api/gadai/norujukan/' . $x)->json()[0][0],$norujukanList);
$koop = array_map(fn($x) => Http::arrahn()->get('/api/gadai/norujukan/' . $x)->json()[0][0],$norujukanList);
return array_map(fn($x) => Http::arrahn()->get('/api/gadai/norujukan/' . $x)->json()[0][0], $norujukanList);
$array_merged_list = array_merge($list_pkb,$list_koop);
return $array_merged_list;
// return array_map(fn($x) => Http::arrahn()->get('/api/gadai/norujukan/' . $x)->json()[0][0], $norujukanList);
}
public function getPembiayaanAkanDilelong()