diff --git a/app/Http/Controllers/BayaranController.php b/app/Http/Controllers/BayaranController.php index 9b15fe2..4a6492f 100644 --- a/app/Http/Controllers/BayaranController.php +++ b/app/Http/Controllers/BayaranController.php @@ -288,16 +288,7 @@ class BayaranController extends Controller $column_updated = (Session::get('company') == 'PKB') ? 'status_pkb' : 'status_koop'; $value_paid = 'PAID'; - - $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'); - }) - ->update([ - $column_updated => $value_paid, - ]); + $column_payment_updated = (Session::get('company') == 'PKB') ? 'payment_pkb' : 'payment_koop'; $transactionOnline = $this->CallableHttp ->get('/api/transaction/online/login', [ @@ -305,6 +296,17 @@ class BayaranController extends Controller ]) ->json(); + $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'); + }) + ->update([ + $column_updated => $value_paid, + $column_payment_updated => json_encode($transactionOnline) + ]); + return redirect()->route('pay.success', [ 'transactionOnline' => $transactionOnline, ]); @@ -315,6 +317,58 @@ class BayaranController extends Controller $this->serviceCallHttp(Session::get('company')); $transactionOnline = $request->transactionOnline; + $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(); + + $exist_carts = optional($exist_carts)->toArray(); + + if(!$exist_carts){ + $paid_carts = PersonalCarts::where('ic_no', Auth::user()->icno) + ->where('user_id', Auth::user()->id) + ->where(function ($query) { + $query->where('status_pkb', 'PAID') + ->where('status_koop', 'PAID'); + }) + ->first(); + $paid_carts = optional($paid_carts)->toArray(); + if($paid_carts){ + + $trans_pkb = json_decode($paid_carts['payment_pkb'],true); + $trans_koop = json_decode($paid_carts['payment_koop'],true); + + $trans_pkb = array_map(function ($item) { + $item['tag_syarikat'] = CompanyStatus::COM_PKB; + return $item; + }, $trans_pkb); + + $trans_koop = array_map(function ($item) { + $item['tag_syarikat'] = CompanyStatus::COM_KOOPPKB; + return $item; + }, $trans_koop); + + $transactionOnline = array_merge($trans_pkb,$trans_koop); + + $arraycawangan = array_map( + fn($x) => $x['tag_syarikat'] == CompanyStatus::COM_PKB + ? Http::arrahn() + ->get('/api/cawangan/detail/' . $x['kodcaw']) + ->json()[0] + : Http::arrahn_koop() + ->get('/api/cawangan/detail/' . $x['kodcaw']) + ->json()[0], + $transactionOnline + ); + + + return view('pembayaran.result.berjayaportal', compact('transactionOnline', 'arraycawangan','exist_carts')); + } + } + $arraygadai = array_map( fn($x) => $this->CallableHttp ->get('/api/gadai/norujukan/' . $x['norujukan']) @@ -329,16 +383,6 @@ class BayaranController extends Controller $transactionOnline, ); - $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(); - - $exist_carts = optional($exist_carts)->toArray(); - return view('pembayaran.result.berjayaportal', compact('transactionOnline', 'arraycawangan', 'arraygadai','exist_carts')); } @@ -387,7 +431,11 @@ class BayaranController extends Controller $getUpahTawarruqPerPembiayaan = function ($x) use ($getJenisKeuntungan) { $jenisKeuntungan = $getJenisKeuntungan($x); - $upahTawarruq = Http::arrahn() + $CallableHttp = $x['tag_syarikat'] == CompanyStatus::COM_PKB + ? Http::arrahn() + : Http::arrahn_koop(); + + $upahTawarruq = $CallableHttp ->get('/api/upahtawarruq/' . $x['kodcaw'] . '/' . $x['norujukan'], ['jeniskeuntungan' => $jenisKeuntungan]) ->json(); diff --git a/app/Models/PersonalCarts.php b/app/Models/PersonalCarts.php index 5059d78..2c56c5d 100644 --- a/app/Models/PersonalCarts.php +++ b/app/Models/PersonalCarts.php @@ -26,6 +26,8 @@ class PersonalCarts extends Model 'list_koop', 'status_pkb', 'status_koop', + 'payment_pkb', + 'payment_koop', 'user_id', 'created_at', 'updated_at' diff --git a/app/Services/PembiayaanService.php b/app/Services/PembiayaanService.php index fcd3d58..7e51e3f 100644 --- a/app/Services/PembiayaanService.php +++ b/app/Services/PembiayaanService.php @@ -3,6 +3,7 @@ namespace App\Services; use App\Http\Controllers\InformationController; +use App\Models\CompanyStatus; use Illuminate\Http\Client\Pool; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Http; @@ -23,6 +24,9 @@ class PembiayaanService } $pembiayaan = array_filter($getPembiayaan(), fn($x) => $x->hargajualan != null || $x->hargajualan != 0); + // $pembiayaan_filter = array_filter($getPembiayaan(),fn($x) => $x->tag_syarikat == CompanyStatus::COM_PKB); + // $pembiayaan_koop = array_filter($getPembiayaan(),fn($x) => $x->tag_syarikat == CompanyStatus::COM_PKB); + $pembiayaan = $this->setUpahTawarruq($pembiayaan); $pembiayaan = $this->formatPembiayaanData($pembiayaan); $pembiayaan = $this->checkPembiayaanPaymentDisabled($pembiayaan); @@ -44,7 +48,12 @@ class PembiayaanService $getUpahTawarruqPerPembiayaan = function ($x) use ($getJenisKeuntungan) { $jenisKeuntungan = $getJenisKeuntungan($x); - $upahTawarruq = Http::arrahn()->get('/api/upahtawarruq/' . $x->kodcaw . '/' . $x->norujukan, ['jeniskeuntungan' => $jenisKeuntungan])->json(); + + $CallableHttp = $x->tag_syarikat == CompanyStatus::COM_PKB + ? Http::arrahn() + : Http::arrahn_koop(); + + $upahTawarruq = $CallableHttp->get('/api/upahtawarruq/' . $x->kodcaw . '/' . $x->norujukan, ['jeniskeuntungan' => $jenisKeuntungan])->json(); if ($jenisKeuntungan == 'onepercent') { $x->upah_tawarruq = $upahTawarruq['keuntungan'] + $upahTawarruq['ujrah']; @@ -62,7 +71,10 @@ class PembiayaanService private function formatPembiayaanData($pembiayaan) { - $allCawangan = Http::arrahn()->get('/api/cawangan')->json(); + $arrahnCawangan = Http::arrahn()->get('/api/cawangan')->json(); + $arrahnKoopCawangan = Http::arrahn_koop()->get('/api/cawangan')->json(); + + $allCawangan = array_merge($arrahnCawangan, $arrahnKoopCawangan); $setCawanganFullName = function ($pembiayaan) use ($allCawangan) { $cawangan = array_filter($allCawangan, fn($x) => $x['kodcaw'] === $pembiayaan->kodcaw); diff --git a/database/migrations/2024_12_07_012607_create_carts_table.php b/database/migrations/2024_12_07_012607_create_carts_table.php index 3ee51e4..287f1cc 100644 --- a/database/migrations/2024_12_07_012607_create_carts_table.php +++ b/database/migrations/2024_12_07_012607_create_carts_table.php @@ -18,6 +18,8 @@ class CreateCartsTable extends Migration $table->string('ic_no'); $table->json('list_pkb'); $table->json('list_koop'); + $table->json('payment_pkb')->nullable(); + $table->json('payment_koop')->nullable(); $table->enum('status_pkb', ['PENDING', 'PAID','NONE']); $table->enum('status_koop', ['PENDING', 'PAID','NONE']); $table->softDeletes();