added payment success for all include

This commit is contained in:
hafifierahman
2024-12-14 17:19:11 +08:00
parent a209c0e09f
commit 98cb5a1d9a
4 changed files with 87 additions and 23 deletions
+65 -17
View File
@@ -288,6 +288,13 @@ class BayaranController extends Controller
$column_updated = (Session::get('company') == 'PKB') ? 'status_pkb' : 'status_koop';
$value_paid = 'PAID';
$column_payment_updated = (Session::get('company') == 'PKB') ? 'payment_pkb' : 'payment_koop';
$transactionOnline = $this->CallableHttp
->get('/api/transaction/online/login', [
'billplz_id' => $data['id'],
])
->json();
$exist_carts = PersonalCarts::where('ic_no', Auth::user()->icno)
->where('user_id', Auth::user()->id)
@@ -297,14 +304,9 @@ class BayaranController extends Controller
})
->update([
$column_updated => $value_paid,
$column_payment_updated => json_encode($transactionOnline)
]);
$transactionOnline = $this->CallableHttp
->get('/api/transaction/online/login', [
'billplz_id' => $data['id'],
])
->json();
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();
+2
View File
@@ -26,6 +26,8 @@ class PersonalCarts extends Model
'list_koop',
'status_pkb',
'status_koop',
'payment_pkb',
'payment_koop',
'user_id',
'created_at',
'updated_at'
+14 -2
View File
@@ -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);
@@ -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();