From bb8bcae8e82f66cea219bc5fc625e4912c4f6636 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:41:42 +0800 Subject: [PATCH 01/26] update all controller frontend for kadar anggota koperasi --- app/Events/NotifikasiAnggota.php | 47 ++ app/Http/Controllers/CustomersController.php | 450 +++++++++++---- app/Http/Controllers/GadaianController.php | 565 +++++++++++-------- app/Http/Controllers/OperasiController.php | 277 ++++++--- app/Imports/AnggotaImport.php | 24 + routes/web.php | 6 + 6 files changed, 941 insertions(+), 428 deletions(-) create mode 100644 app/Events/NotifikasiAnggota.php create mode 100644 app/Imports/AnggotaImport.php diff --git a/app/Events/NotifikasiAnggota.php b/app/Events/NotifikasiAnggota.php new file mode 100644 index 00000000..c08a055b --- /dev/null +++ b/app/Events/NotifikasiAnggota.php @@ -0,0 +1,47 @@ +nokp = $nokp; + $this->status = strtoupper($status); // pastikan huruf besar DILULUSKAN/DITOLAK + $this->komen = $komen; + $this->tagoperasi = $tagoperasi; + } + + public function broadcastOn() + { + return ['notice-anggota']; + } + + public function broadcastAs() + { + return 'my-anggota'; + } + + public function broadcastWith() + { + return [ + 'noic' => $this->nokp, + 'status' => $this->status, // ikut format API updateAnggota + 'komen' => $this->komen, + 'tagoperasi' => $this->tagoperasi, + ]; + } +} diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php index a156c2fd..7857386e 100644 --- a/app/Http/Controllers/CustomersController.php +++ b/app/Http/Controllers/CustomersController.php @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Auth; use Twilio\Rest\Client; use App\Komoditi; use App\Events\Dashboard\PelangganNotify; +use Illuminate\Support\Facades\Log; use Carbon\Carbon; @@ -24,7 +25,7 @@ class CustomersController extends Controller public function __construct() { $this->middleware('auth'); - $this->customerService = New CustomerService(); + $this->customerService = new CustomerService(); } /** * Display a listing of the resource. @@ -38,84 +39,246 @@ class CustomersController extends Controller $api_url = config('api.url'); $auth_user = Auth::user(); $idtype = 'nokp'; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json(); $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); $blacklist_search = false; - return view('customers.' . $cawangan_info['version'] . '.index',compact('search','blacklist_search','cawangan_info','bank','api_url','idtype','pekerjaan')); + return view('customers.' . $cawangan_info['version'] . '.index', compact('search', 'blacklist_search', 'cawangan_info', 'bank', 'api_url', 'idtype', 'pekerjaan')); } - public function info(Request $request){ + public function info(Request $request) + { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json(); - // dd($customer_info); - $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); + // 🔹 Panggil maklumat cawangan + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $auth_user['cawangan']) + ->json(); + + // 🔹 Panggil maklumat pelanggan (customer) + $customer_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customers/' . Session::get('noic')) + ->json(); + + // 🔹 Panggil maklumat pekerjaan + $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/pekerjaan') + ->json(); + $komoditi = Komoditi::first(); $min_komoditi = $komoditi['min_komoditi']; - $bakilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/baki')->json(); - $rugilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi')->json(); + // 🔹 Panggil baki lelong + $bakilelong = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/baki') + ->json(); + // 🔹 Panggil rugi lelong + $rugilelong = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/bakilelong/cawangan/' . $auth_user['cawangan'] . '/' . Session::get('noic') . '/rugi') + ->json(); + + // 🔹 Reset session sementara $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); - $customer_page = ($cawangan_info['version'] == 'v1') ? 'customers.v1.info' : 'customers.v2.info'; + $customer_page = ($cawangan_info['version'] == 'v1') + ? 'customers.v1.info' + : 'customers.v2.info'; - $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getApproval',[ - 'kodcaw' => $auth_user['cawangan'], - 'teller' => $auth_user['name'], - ])->json(); + // Logik papar butang "Assign sebagai Anggota" + $showAssignAnggotaBtn = false; + $noic = Session::get('noic'); - if($request->tebus_auto_tawarruq_berjaya === 'true'){ + if (!empty($customer_info)) { + + // 🔹 Panggil API anggota + $anggota_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customer/anggota', [ + 'noic' => $noic + ]) + ->json(); + + // 🔹 Semak jika ada data anggota dan belum di-tag sebagai anggota + $isAnggotaExist = isset($anggota_info) && !empty($anggota_info) && !isset($anggota_info['message']); + + if ($isAnggotaExist && isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 0) { + $showAssignAnggotaBtn = true; + } + } + + // Return ke view + $getApprovalError = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/getApproval', [ + 'kodcaw' => $auth_user['cawangan'], + 'teller' => $auth_user['name'], + ]) + ->json(); + + if ($request->tebus_auto_tawarruq_berjaya === 'true') { $request->session()->flash('activate_tab', 'SAG_baru'); } - return view($customer_page,compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','min_komoditi','pekerjaan','getApprovalError')); + return view($customer_page, compact( + 'cawangan_info', + 'api_url', + 'customer_info', + 'bakilelong', + 'rugilelong', + 'min_komoditi', + 'pekerjaan', + 'getApprovalError', + 'showAssignAnggotaBtn' + )); } - public function search(Request $request){ - // dd($request->all()); + + public function search(Request $request) + { $noic = $request->noic; $idtype = $request->customerIDType; Session::put('noic', $noic); + $api_url = config('api.url'); $auth_user = Auth::user(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json(); - $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json(); - $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json(); - $blacklist = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customer/blacklist',[ - 'nokp' => $noic - ])->json(); - // if($customers_info){ - // $customer_info = $customers_info[0]; - // }else{ - // $customer_info = $customers_info; - // } + // Dapatkan maklumat asas + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $auth_user['cawangan']) + ->json(); + + $bank = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/bank') + ->json(); + + $customer_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customers/' . $noic) + ->json(); + + $pekerjaan = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/pekerjaan') + ->json(); + + $blacklist = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/customer/blacklist', ['nokp' => $noic]) + ->json(); + + // Reset session lama $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); + $blacklist_search = false; $search = true; - if($customer_info){ - if($blacklist){ + + // SEMAK STATUS ANGGOTA DAN PELANGGAN + $isAnggota = false; + $isPelanggan = false; + $isNewCustomer = false; + $showAssignAnggotaBtn = false; + $showDaftarPelangganBtn = false; + + // Semak dalam sistem anggota + $anggota_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get(config('api.url') . '/api/customer/anggota', [ + 'noic' => $noic + ]) + ->json(); + + // ✅ Semak betul-betul jika ada rekod anggota + if (!empty($anggota_info) && isset($anggota_info['data']) && !empty($anggota_info['data'])) { + $isAnggota = true; + } elseif (isset($anggota_info['noic']) && !empty($anggota_info['noic'])) { + $isAnggota = true; + } + + if ($customer_info && isset($customer_info['id'])) { + $isPelanggan = true; + } + + // ✅ Tentukan butang mana nak paparkan (logik diperbetulkan) + if ($isPelanggan && !$isAnggota) { + // Pelanggan dah berdaftar tapi bukan anggota koperasi + $showAssignAnggotaBtn = true; + } elseif ($isAnggota && !$isPelanggan) { + // Anggota koperasi tapi belum berdaftar sebagai pelanggan + $showDaftarPelangganBtn = true; + } elseif (!$isAnggota && !$isPelanggan) { + // Bukan anggota dan bukan pelanggan (pelanggan baru) + $showDaftarPelangganBtn = true; + $isNewCustomer = true; + } + + // 🔍 Debug log untuk semak nilai sebenar + Log::info('DEBUG CUSTOMER STATUS', [ + 'noic' => $noic, + 'isAnggota' => $isAnggota, + 'isPelanggan' => $isPelanggan, + 'isNewCustomer' => $isNewCustomer, + 'showAssignAnggotaBtn' => $showAssignAnggotaBtn, + 'showDaftarPelangganBtn' => $showDaftarPelangganBtn, + ]); + + // PROSES PAPARAN MENGIKUT HASIL CARIAN + if ($customer_info) { + // Ada maklumat pelanggan + if ($blacklist) { $blacklist_search = true; - return view('customers.' . $cawangan_info['version'] .'.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype')); - }else{ - Session::put('customer_info',$customer_info); - return redirect()->route('customer_info')->with( ['customer_info' => $customer_info,'cawangan_info'=>$cawangan_info,'api_url'=>$api_url]); + return view('customers.' . $cawangan_info['version'] . '.index', compact( + 'blacklist_search', + 'customer_info', + 'search', + 'noic', + 'cawangan_info', + 'bank', + 'api_url', + 'idtype', + 'isAnggota', + 'isPelanggan', + 'isNewCustomer', + 'showAssignAnggotaBtn', + 'showDaftarPelangganBtn', + 'auth_user' + )); + } else { + // Simpan dalam session & redirect ke paparan info pelanggan + Session::put('customer_info', $customer_info); + return redirect()->route('customer_info')->with([ + 'customer_info' => $customer_info, + 'cawangan_info' => $cawangan_info, + 'api_url' => $api_url, + 'isAnggota' => $isAnggota, + 'isPelanggan' => $isPelanggan, + 'isNewCustomer' => $isNewCustomer, + 'showAssignAnggotaBtn' => $showAssignAnggotaBtn, + 'showDaftarPelangganBtn' => $showDaftarPelangganBtn, + 'auth_user' => $auth_user + ]); } - }else{ - if($blacklist){ + } else { + // Tiada customer dalam sistem + if ($blacklist) { $blacklist_search = true; - return view('customers.' . $cawangan_info['version'] . '.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype','pekerjaan')); - }else{ - return view('customers.' . $cawangan_info['version'] . '.index',compact('blacklist_search','customer_info','search','noic','cawangan_info','bank','api_url','idtype','pekerjaan')); } + + return view('customers.' . $cawangan_info['version'] . '.index', compact( + 'blacklist_search', + 'customer_info', + 'search', + 'noic', + 'cawangan_info', + 'bank', + 'api_url', + 'idtype', + 'pekerjaan', + 'isAnggota', + 'isPelanggan', + 'isNewCustomer', + 'showAssignAnggotaBtn', + 'showDaftarPelangganBtn', + 'auth_user' + )); } } @@ -123,9 +286,9 @@ class CustomersController extends Controller public function cari(Request $request) { $api_url = config('api.url'); - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $request->icno)->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $request->icno)->json(); - if(sizeof($customers_info) > 0) + if (sizeof($customers_info) > 0) return $customers_info; else return response(["no-data"], 200); @@ -149,60 +312,58 @@ class CustomersController extends Controller */ public function store(Request $request) { - if($request->idtype == 'nokp'){ + if ($request->idtype == 'nokp') { $nokpbaru = $request->noic; $nokplama = ''; - }elseif($request->idtype == 'passport'){ + } elseif ($request->idtype == 'passport') { $nokpbaru = ''; $nokplama = $request->noic; } - if($request->warganegara){ + if ($request->warganegara) { $warganegara = 'Y'; - }else{ + } else { $warganegara = 'N'; } - if($request->bumiputera){ + if ($request->bumiputera) { $bumiputera = 'Y'; - }else{ + } else { $bumiputera = 'N'; } - if($request->jantina == 'Lelaki'){ + if ($request->jantina == 'Lelaki') { $jantina = 'L'; - }elseif($request->jantina == 'Perempuan'){ + } elseif ($request->jantina == 'Perempuan') { $jantina = 'P'; } - $split_date = explode('/',$request->tarikh_lahir); + $split_date = explode('/', $request->tarikh_lahir); - $tarikh_lahir = $split_date[2].'-'.$split_date[1].'-'.$split_date[0]; + $tarikh_lahir = $split_date[2] . '-' . $split_date[1] . '-' . $split_date[0]; $tarikhlahir = Carbon::parse($tarikh_lahir); $auth_user = Auth::user(); $latest_customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/latest/' . $auth_user['cawangan'])->json(); - if($latest_customer == null){ + if ($latest_customer == null) { $nosiri_latest = 1; - } - else{ - $nosiri_latest = $latest_customer['nosiri']+1; + } else { + $nosiri_latest = $latest_customer['nosiri'] + 1; } $count = sprintf("%08d", $nosiri_latest); - $no_pelanggan = $request->bangsa . substr($request->noic,6,2).'-'.$count; + $no_pelanggan = $request->bangsa . substr($request->noic, 6, 2) . '-' . $count; $detail_poskod = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/poskod/' . $request->poskod)->json(); - if(empty($detail_poskod)){ + if (empty($detail_poskod)) { $detail_poskod = Http::withOptions(['verify' => config('app.api_verify')]) - ->post(config('api.url') . '/api/poskod', [ - 'poskod' => $request->poskod, - 'koddaerah' => $request->koddaerah, - 'kodnegeri' => $request->kodnegeri, - 'user' => auth()->user(), - ])->json(); - + ->post(config('api.url') . '/api/poskod', [ + 'poskod' => $request->poskod, + 'koddaerah' => $request->koddaerah, + 'kodnegeri' => $request->kodnegeri, + 'user' => auth()->user(), + ])->json(); } - $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/'. $auth_user['cawangan'],[ + $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/customers/create/' . $auth_user['cawangan'], [ 'kodcaw' => $auth_user['cawangan'], 'nopelanggan' => $no_pelanggan, 'nokpbaru' => $nokpbaru, @@ -224,61 +385,117 @@ class CustomersController extends Controller 'teller' => $auth_user['name'], 'telefon2' => $request->alternate_phone, 'nosiri' => $nosiri_latest, - 'nota'=>$request->nota, - 'kodkerja'=>$request->pekerjaan, - 'nota_pekerjaan'=>$request->nota_pekerjaan, - 'notaarcc'=>$request->notaarcc, - 'tujuangadai'=>$request->tujuan_gadai, + 'nota' => $request->nota, + 'kodkerja' => $request->pekerjaan, + 'nota_pekerjaan' => $request->nota_pekerjaan, + 'notaarcc' => $request->notaarcc, + 'tujuangadai' => $request->tujuan_gadai, ]); Session::put('customer_info', $customer_info); Session::put('noic', $request->noic); - event(new PelangganNotify('lulus',$auth_user['cawangan'])); - return redirect()->route('customer_info')->with( ['customer_info' => $customer_info] ); + event(new PelangganNotify('lulus', $auth_user['cawangan'])); + return redirect()->route('customer_info')->with(['customer_info' => $customer_info]); } - public function getOTP(Request $request){ + public function getOTP(Request $request) + { $auth_user = Auth::user(); $expired = Carbon::now(); $expired = new Carbon(); $expired = $expired->addHours(24); $currentDateTime = Carbon::now(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $nama_cawangan = $cawangan_info["details_caw"]; $nokp = $request->noic_otp; - $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/customers/'.$nokp)->json(); - $recipient = '6'.$customer['telefon']; + $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $nokp)->json(); + $recipient = '6' . $customer['telefon']; // $recipient = '60189025461'; //pembinaan token - function token($length) { + function token($length) + { $characters = array( - "A","B","C","D","E","F","G","H","J","K","L","M", - "N","P","Q","R","S","T","U","V","W","X","Y","Z", - "a","b","c","d","e","f","g","h","i","j","k","m", - "n","o","p","q","r","s","t","u","v","w","x","y","z", - "1","2","3","4","5","6","7","8","9"); + "A", + "B", + "C", + "D", + "E", + "F", + "G", + "H", + "J", + "K", + "L", + "M", + "N", + "P", + "Q", + "R", + "S", + "T", + "U", + "V", + "W", + "X", + "Y", + "Z", + "a", + "b", + "c", + "d", + "e", + "f", + "g", + "h", + "i", + "j", + "k", + "m", + "n", + "o", + "p", + "q", + "r", + "s", + "t", + "u", + "v", + "w", + "x", + "y", + "z", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ); if ($length < 0 || $length > count($characters)) return null; shuffle($characters); return implode("", array_slice($characters, 0, $length)); } - $otp_token = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/' . $nokp) ->json(); - $otp_token_used = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/used/' . $nokp) ->json(); + $otp_token = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/' . $nokp)->json(); + $otp_token_used = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/otp/used/' . $nokp)->json(); - if (is_array($otp_token) || is_object($otp_token)){ - if($otp_token){ + if (is_array($otp_token) || is_object($otp_token)) { + if ($otp_token) { return response(['error' => "OTP Akaun Telah Di Jana"]); - }else{ - if (is_array($otp_token_used) || is_object($otp_token_used)){ - if($otp_token_used){ + } else { + if (is_array($otp_token_used) || is_object($otp_token_used)) { + if ($otp_token_used) { return response(['error' => "Pelanggan Sudah Mendaftar Pada Customer Portal"]); - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -286,12 +503,12 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -299,17 +516,17 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } } - }else{ - if (is_array($otp_token_used) || is_object($otp_token_used)){ - if($otp_token_used){ + } else { + if (is_array($otp_token_used) || is_object($otp_token_used)) { + if ($otp_token_used) { return response(['error' => "Pelanggan Sudah Mendaftar Pada Customer Portal"]); - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -317,12 +534,12 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } - }else{ + } else { $random = token(6); - $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/api/otp/generateotp/' . $nokp,[ + $otp_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/otp/generateotp/' . $nokp, [ 'otptoken' => $random, 'expired' => $expired, 'kodcaw' => $auth_user['cawangan'] @@ -330,23 +547,36 @@ class CustomersController extends Controller // $message = "Your OTP code is " . $random; $message = 'AR-RAHN PKB ' . $nama_cawangan . ' : OTP: ' . $random . ' ' . $currentDateTime . '. AR-RAHN CARELINE CENTRE 1300-22-4343'; $this->sendWhatsAppMessage($message, $recipient); - return response()->json(['otp'=>$random]); + return response()->json(['otp' => $random]); } } } public function sendWhatsAppMessage(string $message, string $recipient) { - $status = Http::withOptions(['verify' => config('app.api_verify')])->get('http://gateway.onewaysms.com.my:10001/api.aspx',[ + $status = Http::withOptions(['verify' => config('app.api_verify')])->get('http://gateway.onewaysms.com.my:10001/api.aspx', [ 'apiusername' => 'APIUK330HDAFO', 'apipassword' => 'APIUK330HDAFOUK330', 'senderid' => 'INFO', 'mobileno' => $recipient, - 'message'=> $message, - 'languagetype'=> 1 + 'message' => $message, + 'languagetype' => 1 ]); return ($status); } + public function assignAnggota(Request $request) + { + $noic = $request->noic; + + $response = Http::withOptions(['verify' => config('app.api_verify')]) + ->put(config('api.url') . '/api/customers/' . $noic . '/assign-anggota'); + + if ($response->successful()) { + return redirect()->back()->with('success', 'Pelanggan berjaya ditandakan sebagai anggota koperasi.'); + } else { + return redirect()->back()->with('error', 'Gagal mengemaskini status anggota. Sila cuba semula.'); + } + } } diff --git a/app/Http/Controllers/GadaianController.php b/app/Http/Controllers/GadaianController.php index eb6e6b81..63dc13b7 100644 --- a/app/Http/Controllers/GadaianController.php +++ b/app/Http/Controllers/GadaianController.php @@ -18,6 +18,8 @@ use Carbon\Carbon; use App\Http\Controllers\AliranTunaiController; use App\User; +use Illuminate\Support\Facades\Log; + class GadaianController extends Controller { public $AliranTunaiController; @@ -26,61 +28,62 @@ class GadaianController extends Controller public function __construct() { $this->middleware('auth'); - $this->customerService = New CustomerService(); - $this->AliranTunaiController = New AliranTunaiController(); + $this->customerService = new CustomerService(); + $this->AliranTunaiController = new AliranTunaiController(); } - public function index(Request $request){ + public function index(Request $request) + { $api_url = config('api.url'); $current = Carbon::now(); $current = new Carbon(); - $curent_year = substr($current->year,2,2); + $curent_year = substr($current->year, 2, 2); $curent_month = sprintf("%02d", $current->month); $current_day = sprintf("%02d", $current->day); $noic = $request->noic; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $noic)->json(); $customer_info = $customers_info; $limit_pinjaman_semasa = 0; $auth_user = Auth::user(); - if($request->session()->get('page_reload') == null){ - $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json(); - if($gadai_transaction){ + if ($request->session()->get('page_reload') == null) { + $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/' . $auth_user['cawangan'] . '/' . $current->toDateString())->json(); + if ($gadai_transaction) { $new_sirig = $gadai_transaction['sirig'] + 1; - }else{ + } else { $new_sirig = 1; } - $new_transaction = sprintf("%04d",$new_sirig); - $norujukan = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction; - Session::put('norujukan',$norujukan); - Session::put('nokp',$noic); - Session::put('nopelanggan',$customer_info['nopelanggan']); - Session::put('page_reload',true); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/api/gadai/'.$auth_user['cawangan'],[ + $new_transaction = sprintf("%04d", $new_sirig); + $norujukan = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' . $new_transaction; + Session::put('norujukan', $norujukan); + Session::put('nokp', $noic); + Session::put('nopelanggan', $customer_info['nopelanggan']); + Session::put('page_reload', true); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/gadai/' . $auth_user['cawangan'], [ 'norujukan' => $norujukan, 'nopelanggan' => $customer_info['nopelanggan'], 'nokp' => $noic, 'sirig' => $new_sirig ]); - }else{ + } else { $norujukan = Session::get('norujukan'); $nokp = Session::get('nokp'); $nopelanggan = Session::get('nopelanggan'); - $gadai_session = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/check/sag',['kodcaw'=>$auth_user['cawangan'],'norujukan'=>$norujukan,'nokp'=>$nokp])->json(); - if($gadai_session == null){ - $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/'. $auth_user['cawangan'] . '/' . $current->toDateString())->json(); - if($gadai_transaction){ + $gadai_session = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/check/sag', ['kodcaw' => $auth_user['cawangan'], 'norujukan' => $norujukan, 'nokp' => $nokp])->json(); + if ($gadai_session == null) { + $gadai_transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/' . $auth_user['cawangan'] . '/' . $current->toDateString())->json(); + if ($gadai_transaction) { $new_sirig = $gadai_transaction['sirig'] + 1; - }else{ + } else { $new_sirig = 1; } - $new_transaction = sprintf("%04d",$new_sirig); - $norujukan_baru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' .$new_transaction; - Session::put('norujukan',$norujukan_baru); - Session::put('nokp',$nokp); - Session::put('nopelanggan',$nopelanggan); - Session::put('page_reload',true); - $gadai_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') .'/api/gadai/'.$auth_user['cawangan'],[ + $new_transaction = sprintf("%04d", $new_sirig); + $norujukan_baru = strtoupper($auth_user['cawangan']) . $curent_year . $curent_month . $current_day . '-' . $new_transaction; + Session::put('norujukan', $norujukan_baru); + Session::put('nokp', $nokp); + Session::put('nopelanggan', $nopelanggan); + Session::put('page_reload', true); + $gadai_baru = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/gadai/' . $auth_user['cawangan'], [ 'norujukan' => $norujukan_baru, 'nopelanggan' => $nopelanggan, 'nokp' => $nokp, @@ -91,57 +94,60 @@ class GadaianController extends Controller } - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - return view('gadaian.' . $cawangan_info['version'] . '.index',compact('customer_info','limit_pinjaman_semasa','cawangan_info','norujukan','api_url','current')); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); + return view('gadaian.' . $cawangan_info['version'] . '.index', compact('customer_info', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url', 'current')); } - public function edit(Request $request,$norujukan){ + public function edit(Request $request, $norujukan) + { $api_url = config('api.url'); $current = Carbon::now(); $current = new Carbon(); - $curent_year = substr($current->year,2,2); + $curent_year = substr($current->year, 2, 2); $curent_month = sprintf("%02d", $current->month); $current_day = sprintf("%02d", $current->day); // dd($current_day); - $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json(); + $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); - if(sizeof($gadaiannorujukan) != 0) + if (sizeof($gadaiannorujukan) != 0) $gadaiannorujukan = $gadaiannorujukan[0][0]; $noic = $request->noic; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadaiannorujukan['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadaiannorujukan['nokp'])->json(); $customer_info = $customers_info; $limit_pinjaman_semasa = 0; $auth_user = Auth::user(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); - return view('gadaian.' . $cawangan_info['version'] . '.edit',compact('customer_info','gadaiannorujukan','limit_pinjaman_semasa','cawangan_info','norujukan','api_url')); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); + return view('gadaian.' . $cawangan_info['version'] . '.edit', compact('customer_info', 'gadaiannorujukan', 'limit_pinjaman_semasa', 'cawangan_info', 'norujukan', 'api_url')); } - public function editmarhun(Request $request){ + public function editmarhun(Request $request) + { $api_url = config('api.url'); $auth_user = Auth::user(); - $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/edit/marhun/'. $auth_user['cawangan'] . '/' . $request->norujukan,[ + $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/edit/marhun/' . $auth_user['cawangan'] . '/' . $request->norujukan, [ "recno" => $request->recno ])->json(); return $gadaiannorujukan; } - public function ubahmarhun(Request $request){ + public function ubahmarhun(Request $request) + { $api_url = config('api.url'); $auth_user = Auth::user(); - $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/ubah/marhun/'. $auth_user['cawangan'] . '/' . $request->norujukedit,[ + $gadaiannorujukan = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/ubah/marhun/' . $auth_user['cawangan'] . '/' . $request->norujukedit, [ 'recno' => $request->recno, 'karat' => $request->sltkarat, 'berat' => $request->berat, @@ -153,15 +159,16 @@ class GadaianController extends Controller return redirect()->back(); } - public function store(Request $request){ + public function store(Request $request) + { $auth_user = Auth::user(); //$total_nilai_marhun = $request->total_nilai_marhun; //need to get total nilai marhun by api get from table marhun - $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/gadai/'. $auth_user['cawangan'] .'/'. $request->norujukan_gadai)->json(); + $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/gadai/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai)->json(); $total_nilai_marhun = $marhun; - $total_nilai_marhun = str_replace(',','',$total_nilai_marhun); + $total_nilai_marhun = str_replace(',', '', $total_nilai_marhun); $keuntungan_sebln = $request->keuntungan_sebulan; - $keuntungan_sebln = str_replace(',','',$keuntungan_sebln); + $keuntungan_sebln = str_replace(',', '', $keuntungan_sebln); $onepercent = $request->onepercent; $ujrah = $request->ujrah; @@ -171,7 +178,8 @@ class GadaianController extends Controller $keuntungan12bulan = $keuntungan_sebln * 12; $hargajualan = $request->pinjaman + $keuntungan12bulan; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $request->norujukan_gadai,[ + Log::info('DEBUG NOKP:' . $request->nokp); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai, [ 'kodcaw' => $auth_user['cawangan'], 'nilaimarhun' => round($total_nilai_marhun, 2), 'berat' => round($request->total_berat, 2), @@ -179,7 +187,7 @@ class GadaianController extends Controller 'kadarupah' => round($kadarupah, 2), 'marhun' => $request->marhun_detail, 'percentpinj' => $margin_pinjaman, - 'teller'=> $auth_user['name'], + 'teller' => $auth_user['name'], 'upah6' => $keuntungan6bulan, 'upah12' => $keuntungan12bulan, 'hargajualan' => $hargajualan, @@ -189,19 +197,20 @@ class GadaianController extends Controller 'ujrah' => $ujrah, 'onepercent' => $onepercent, 'margin_semasa' => $margin_pinjaman, + 'nokp' => $request->nokp, ])->json(); - $komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/transaksi',[ + $komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/komuditi/transaksi', [ 'unit_komuditi' => round($request->pinjaman, 2), 'norujukan' => $request->norujukan_gadai, 'kodcaw' => $auth_user['cawangan'], 'teller' => $auth_user['name'] ]); - $this->AliranTunaiController->alirantunaiGadai($request,$auth_user['name']); + $this->AliranTunaiController->alirantunaiGadai($request, $auth_user['name']); - event(new GadaiNotify('lulus',$auth_user['cawangan'])); + event(new GadaiNotify('lulus', $auth_user['cawangan'])); $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); @@ -210,13 +219,14 @@ class GadaianController extends Controller return redirect()->route('customer_info'); } - public function editstore(Request $request){ + public function editstore(Request $request) + { $auth_user = Auth::user(); $total_nilai_marhun = $request->total_nilai_marhun; - $total_nilai_marhun = str_replace(',','',$total_nilai_marhun); + $total_nilai_marhun = str_replace(',', '', $total_nilai_marhun); $keuntungan_sebln = $request->keuntungan_sebulan; - $keuntungan_sebln = str_replace(',','',$keuntungan_sebln); + $keuntungan_sebln = str_replace(',', '', $keuntungan_sebln); $onepercent = $request->onepercent; $ujrah = $request->ujrah; @@ -226,7 +236,7 @@ class GadaianController extends Controller $keuntungan6bulan = $keuntungan_sebln * 6; $keuntungan12bulan = $keuntungan_sebln * 12; $hargajualan = $request->pinjaman + $keuntungan12bulan; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' . $request->norujukan_gadai,[ + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $request->norujukan_gadai, [ 'kodcaw' => $auth_user['cawangan'], 'nilaimarhun' => round($total_nilai_marhun, 2), 'berat' => round($request->total_berat, 2), @@ -234,7 +244,7 @@ class GadaianController extends Controller 'kadarupah' => round($kadarupah, 2), 'marhun' => $request->marhun_detail, 'percentpinj' => $margin_pinjaman, - 'teller'=> $auth_user['name'], + 'teller' => $auth_user['name'], 'upah6' => $keuntungan6bulan, 'upah12' => $keuntungan12bulan, 'hargajualan' => $hargajualan, @@ -245,29 +255,31 @@ class GadaianController extends Controller 'onepercent' => $onepercent, 'margin_semasa' => $margin_pinjaman, ])->json(); - $update_komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/komuditi/update',[ + $update_komuditi = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/komuditi/update', [ 'unit_komuditi' => round($request->pinjaman, 2), 'norujukan' => $request->norujukan_gadai ])->json(); - event(new GadaiNotify('lulus',$auth_user['cawangan'])); + event(new GadaiNotify('lulus', $auth_user['cawangan'])); $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); return redirect()->route('customer_info'); } - public function batal(Request $request){ + public function batal(Request $request) + { $norujukan = $request->norujukan; $auth_user = Auth::user(); - Http::withOptions(['verify' => config('app.api_verify')])->delete(config('api.url').'/api/gadai/batal/'. $auth_user['cawangan'] .'/' . $norujukan); + Http::withOptions(['verify' => config('app.api_verify')])->delete(config('api.url') . '/api/gadai/batal/' . $auth_user['cawangan'] . '/' . $norujukan); $request->session()->forget('page_reload'); $request->session()->forget('norujukan'); return redirect()->route('customer_info'); } - public function batalmarhun(Request $request){ + public function batalmarhun(Request $request) + { $norujukan = $request->norujukan; $auth_user = Auth::user(); @@ -278,74 +290,75 @@ class GadaianController extends Controller // return redirect()->route('customer_info'); } - public function cetakSAG(Request $request){ + public function cetakSAG(Request $request) + { $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/cetak/'.$auth_user['cawangan'].'/'.$request->norujukan_modal); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $request->norujukan_modal); return redirect()->route('home'); } - public function serahMarhun(Request $request){ + public function serahMarhun(Request $request) + { $auth_user = Auth::user(); $norujukan_serah = $request->norujukanpilih; - $arraynorujukan = explode(",",$norujukan_serah); + $arraynorujukan = explode(",", $norujukan_serah); - $results=array_search("",$arraynorujukan,true); - if($results !== false) { + $results = array_search("", $arraynorujukan, true); + if ($results !== false) { unset($arraynorujukan[$results]); } - foreach($arraynorujukan as $index=>$norujukan){ - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url'). '/api/gadai/norujukan/serah/'. $auth_user['cawangan'] .'/'. $norujukan); + foreach ($arraynorujukan as $index => $norujukan) { + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/serah/' . $auth_user['cawangan'] . '/' . $norujukan); - if($gadai->failed()){ + if ($gadai->failed()) { break; } } - event(new SerahanPenilai($auth_user['cawangan'],"LULUS")); + event(new SerahanPenilai($auth_user['cawangan'], "LULUS")); return redirect()->route('home'); } - public function printSAG(Request $request){ + public function printSAG(Request $request) + { $norujukan = $request->norujukan_modal; $auth_user = Auth::user(); $auth_username = $auth_user['name']; $kodcaw = $auth_user['cawangan']; $api_url = config('api.url'); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $auth_user['cawangan'] .'/' .$norujukan)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); $gadai_detail = $gadai[0]; - if(isset($request->jenisprint)) - { - - $cetak_sag = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url').'/api/gadai/norujukan/cetak/'.$auth_user['cawangan'].'/'.$norujukan,[ - 'penilai' => $auth_user['name'] - ]); + if (isset($request->jenisprint)) { + $cetak_sag = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/gadai/norujukan/cetak/' . $auth_user['cawangan'] . '/' . $norujukan, [ + 'penilai' => $auth_user['name'] + ]); } - - $kakitangan = User::where([['role_harian','khazanah'],['cawangan',$kodcaw]])->first(); + + $kakitangan = User::where([['role_harian', 'khazanah'], ['cawangan', $kodcaw]])->first(); // dd($kakitangan); - - $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai_detail['nokp'])->json(); + + $customer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai_detail['nokp'])->json(); $customer_detail = $customer; - $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/marhun/'. $norujukan)->json(); + $marhun = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/' . $norujukan)->json(); $marhun_detail = $marhun[0]; - $mutu = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/marhun/mutu/sag',[ + $mutu = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/mutu/sag', [ 'kodcaw' => $auth_user['cawangan'], 'norujukan' => $norujukan ])->json(); // dd($mutu); - $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/detail/'. $auth_user['cawangan'])->json(); + $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/detail/' . $auth_user['cawangan'])->json(); $cawangan_detail = $cawangan[0]; @@ -357,17 +370,17 @@ class GadaianController extends Controller $pembayaran_segera = "https://pay.arrahn.com.my"; $komoditi = Http::withOptions(['verify' => config('app.api_verify')]) - ->get($api_url . '/api/komuditi/check') - ->json(); + ->get($api_url . '/api/komuditi/check') + ->json(); $product = Http::withOptions(['verify' => config('app.api_verify')]) - ->get($api_url . '/api/komuditi/description', ['kodproduk' => $komoditi['kodproduct']]) - ->json(); + ->get($api_url . '/api/komuditi/description', ['kodproduk' => $komoditi['kodproduct']]) + ->json(); $kuantiti = $gadai_detail['pinjaman'] / $komoditi['nilai']; if ($gadai_detail['tagbaru'] == 1) { - return view('print.sag_ujrah_3', compact('komoditi', 'product', 'kuantiti', 'gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu', 'kadar_ujrah','kakitangan')); + return view('print.sag_ujrah_3', compact('komoditi', 'product', 'kuantiti', 'gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu', 'kadar_ujrah', 'kakitangan')); } else { - return view('print.sag', compact('gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu','kakitangan')); + return view('print.sag', compact('gadai_detail', 'customer_detail', 'marhun_detail', 'cawangan_detail', 'api_url', 'pembayaran_segera', 'auth_username', 'mutu', 'kakitangan')); } } @@ -376,32 +389,32 @@ class GadaianController extends Controller $auth_user = Auth::user(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/id/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/id/' . $id)->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - if(sizeof($transaction) != 0) + if (sizeof($transaction) != 0) $transaction = $transaction[0]; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $transaction['norujukan'])->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $transaction['norujukan'])->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json(); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - if($gadai['tagbaru'] == 1) { - return view('print.resitansuran_ujrah',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + if ($gadai['tagbaru'] == 1) { + return view('print.resitansuran_ujrah', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); } else { - return view('print.resitansuran',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + return view('print.resitansuran', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); // return view('print.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); } } @@ -411,30 +424,30 @@ class GadaianController extends Controller $auth_user = Auth::user(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $transaction['nowakil'])->json(); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - if($gadai['tagbaru'] == 1) { - return view('print.resitansuran_ujrah',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + if ($gadai['tagbaru'] == 1) { + return view('print.resitansuran_ujrah', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); } else { - return view('print.resitansuran',compact('transaction','gadai','customers_info','wakil','cawangan_info')); + return view('print.resitansuran', compact('transaction', 'gadai', 'customers_info', 'wakil', 'cawangan_info')); // return view('print.resittebus',compact('transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran')); } } @@ -448,28 +461,28 @@ class GadaianController extends Controller // if(sizeof($transaction) != 0) // $transaction = $transaction[0]; - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); // dd($wakil); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - return view('print.resitansuransebelum',compact('gadai','customers_info','wakil','penebusan')); + return view('print.resitansuransebelum', compact('gadai', 'customers_info', 'wakil', 'penebusan')); } public function resittebusseparuh($id) @@ -477,44 +490,43 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); - foreach($transaction as $trans) - { - $totaltransaction += $trans['duit_masuk']; + foreach ($transaction as $trans) { + $totaltransaction += $trans['duit_masuk']; } - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); // dd($wakil); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; - $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json(); + $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran', ['norujukan' => $id])->json(); $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json(); - + $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate', ['norujukan' => $id])->json(); - return view('print.resit.tebus_separuh',compact('totalrebate','khazanah_user','totalBayaranAnsuran','transaction_tebus','gadai','customers_info','penebusan','wakil')); + + return view('print.resit.tebus_separuh', compact('totalrebate', 'khazanah_user', 'totalBayaranAnsuran', 'transaction_tebus', 'gadai', 'customers_info', 'penebusan', 'wakil')); } public function resitautotawarruq($id) @@ -522,44 +534,43 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); - foreach($transaction as $trans) - { - $totaltransaction += $trans['duit_masuk']; + foreach ($transaction as $trans) { + $totaltransaction += $trans['duit_masuk']; } - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $transaction_keuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/transaksi_keuntungan_latest/'. $id)->json(); + $transaction_keuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaksi_keuntungan_latest/' . $id)->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); // dd($wakil); - if(sizeof($wakil) != 0) + if (sizeof($wakil) != 0) $wakil = $wakil[0]; $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - return view('print.resittebusautotawarruq',compact('transaction_tebus', 'transaction','gadai','customers_info','penebusan','wakil','totaltransaction','transaction_keuntungan', 'khazanah_user','cawangan_info')); + return view('print.resittebusautotawarruq', compact('transaction_tebus', 'transaction', 'gadai', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'transaction_keuntungan', 'khazanah_user', 'cawangan_info')); } public function resittebus($id) @@ -567,55 +578,54 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); $totaltransaction = 0; - $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/'. $id)->json(); + $transaction = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/' . $id)->json(); - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); - foreach($transaction as $trans) - { - $totaltransaction += $trans['duit_masuk']; + foreach ($transaction as $trans) { + $totaltransaction += $trans['duit_masuk']; } - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'],[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); - $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json(); + $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran', ['norujukan' => $id])->json(); - $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json(); + $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate', ['norujukan' => $id])->json(); // dd($wakil); $surat_wakil = []; - if(sizeof($wakil) != 0) { + if (sizeof($wakil) != 0) { $wakil = $wakil[0]; $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); } $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - if($gadai['tagbaru'] == 1) { - return view('print.resittebus_ujrah',compact('surat_wakil','totalrebate','transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); + if ($gadai['tagbaru'] == 1) { + return view('print.resittebus_ujrah', compact('surat_wakil', 'totalrebate', 'transaction_tebus', 'transaction', 'gadai', 'cawangan_info', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'totalBayaranAnsuran', 'khazanah_user')); } else { - return view('print.resittebus',compact('surat_wakil', 'transaction_tebus', 'transaction','gadai','cawangan_info','customers_info','penebusan','wakil','totaltransaction','totalBayaranAnsuran', 'khazanah_user')); + return view('print.resittebus', compact('surat_wakil', 'transaction_tebus', 'transaction', 'gadai', 'cawangan_info', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'totalBayaranAnsuran', 'khazanah_user')); } } @@ -624,38 +634,35 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'] ,[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; // dd($penebusan['nowakil']); - if($penebusan['nowakil'] != 0) - { - $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); + if ($penebusan['nowakil'] != 0) { + $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); - if(sizeof($wakil) != 0) - $wakil = $wakil[0]; - } - else - { + if (sizeof($wakil) != 0) + $wakil = $wakil[0]; + } else { $wakil = []; } - return view('print.resittebussebelum',compact('gadai','customers_info','penebusan','wakil')); + return view('print.resittebussebelum', compact('gadai', 'customers_info', 'penebusan', 'wakil')); } public function resitadvansur($id) @@ -663,32 +670,30 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $advansur = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/advansur/'. $auth_user['cawangan'] . '/'. $id)->json(); + $advansur = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/advansur/' . $auth_user['cawangan'] . '/' . $id)->json(); - if($advansur['nowakil'] != 0){ + if ($advansur['nowakil'] != 0) { $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $advansur['nowakil'])->json(); - if(sizeof($wakil) != 0){ + if (sizeof($wakil) != 0) { $wakil = $wakil[0]; } - } - else - { + } else { $wakil = []; } - return view('print.resitadvansur',compact('gadai','customers_info','advansur','wakil')); + return view('print.resitadvansur', compact('gadai', 'customers_info', 'advansur', 'wakil')); } public function resittambahpinjam($id) @@ -696,103 +701,93 @@ class GadaianController extends Controller $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $id)->json(); - $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/'. $id)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $id)->json(); + $transaction_tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/one/' . $id)->json(); - if(sizeof($gadai) != 0) + if (sizeof($gadai) != 0) $gadai = $gadai[0][0]; - $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $gadai['nokp'])->json(); + $customers_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/' . $gadai['nokp'])->json(); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); // if(sizeof($customers_info) != 0) // $customers_info = $customers_info[0]; - $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'] ,[ "norujukan" => $id])->json(); + $penebusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], ["norujukan" => $id])->json(); - if(sizeof($penebusan) != 0) + if (sizeof($penebusan) != 0) $penebusan = $penebusan[0]; // dd($penebusan['nowakil']); $surat_wakil = []; - if($penebusan['nowakil'] != 0) - { - $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); + if ($penebusan['nowakil'] != 0) { + $wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getwakil/' . $auth_user['cawangan'] . '/code/' . $penebusan['nowakil'])->json(); - if(sizeof($wakil) != 0){ - $wakil = $wakil[0]; - $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); - } - } - else - { + if (sizeof($wakil) != 0) { + $wakil = $wakil[0]; + $surat_wakil = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/getsuratwakil/' . $auth_user['cawangan'] . '/' . $id)->json(); + } + } else { $wakil = []; } - $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran',['norujukan'=>$id])->json(); + $totalBayaranAnsuran = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/transaction/norujukan/total/ansuran', ['norujukan' => $id])->json(); $khazanah_user = User::where('role_harian', 'khazanah')->where('cawangan', $auth_user['cawangan'])->select('name')->first(); - $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate',['norujukan'=>$id])->json(); + $totalrebate = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/totalrebate', ['norujukan' => $id])->json(); - return view('print.resit.tambah_pinjaman',compact('surat_wakil','totalrebate','khazanah_user','totalBayaranAnsuran','transaction_tebus','gadai','customers_info','penebusan','wakil','cawangan_info')); + return view('print.resit.tambah_pinjaman', compact('surat_wakil', 'totalrebate', 'khazanah_user', 'totalBayaranAnsuran', 'transaction_tebus', 'gadai', 'customers_info', 'penebusan', 'wakil', 'cawangan_info')); } public function history(Request $request) { $auth_user = Auth::user(); - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $request->norujukan)->json(); + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $request->norujukan)->json(); - if(sizeof($gadai) > 0) - { + if (sizeof($gadai) > 0) { $history = $gadai[0][0]['historygadaian']; $dahtebus = $gadai[0][0]['sttebus']; $norujukan = $gadai[0][0]['norujukan']; - } $count = 0; $arrayhist = []; - while($history != "0" && $history != '' || $dahtebus == 'T') - { - if($history != "0" && $history != '') - { - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $history)->json(); - $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/'. $auth_user['cawangan'],[ - "norujukan" => $history + while ($history != "0" && $history != '' || $dahtebus == 'T') { + if ($history != "0" && $history != '') { + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $history)->json(); + $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [ + "norujukan" => $history ])->json(); - if(sizeof($gadai) > 0) - { - if($history == $gadai[0][0]['historygadaian']) + if (sizeof($gadai) > 0) { + if ($history == $gadai[0][0]['historygadaian']) $history = 0; - else{ - array_push($arrayhist,["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0),"tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0),"hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0),"norujukan" => $history,"jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0),"jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0),"t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); + else { + array_push($arrayhist, ["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0), "tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0), "norujukan" => $history, "jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0), "jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0), "t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); $history = $gadai[0][0]['historygadaian']; } } - $count++; - - } - else{ - $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json(); - $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/'. $auth_user['cawangan'],[ - "norujukan" => $norujukan + $count++; + } else { + $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); + $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/' . $auth_user['cawangan'], [ + "norujukan" => $norujukan ])->json(); - array_push($arrayhist,["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0),"tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''),"pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0),"norujukan" => $norujukan,"jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0),"jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0),"t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); + array_push($arrayhist, ["historygadaian" => ((isset($gadai[0][0]['historygadaian'])) ? $gadai[0][0]['historygadaian'] : 0), "tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0), "norujukan" => $norujukan, "jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0), "jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0), "t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]); break; } } - return response()->json($arrayhist,200); + return response()->json($arrayhist, 200); } /// KELULUSAN/// @@ -804,18 +799,15 @@ class GadaianController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/' . $auth_user['cawangan'],[ + $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/' . $auth_user['cawangan'], [ "norujukan" => $norujukan ])->json(); - if(sizeof($kelulusan) > 0) - { + if (sizeof($kelulusan) > 0) { $kelulusan = $kelulusan['benar']; - } - else - { + } else { $kelulusan = ''; } @@ -830,11 +822,11 @@ class GadaianController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); - return response()->json($updatelulus,200); + return response()->json($updatelulus, 200); } public function createkelulusan(Request $request) @@ -844,7 +836,7 @@ class GadaianController extends Controller $norujukan = $request->norujukan; - $gadai_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json(); + $gadai_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)->json(); $pinjaman = ($gadai_info[0][0]['pinjaman']) ? $gadai_info[0][0]['pinjaman'] : '-'; $nilaimarhun = ($gadai_info[0][0]['nilaimarhun']) ? $gadai_info[0][0]['nilaimarhun'] : '-'; @@ -864,11 +856,92 @@ class GadaianController extends Controller 'tagoperasi' => ($request->tagoperasi) ? $request->tagoperasi : 0, ])->json(); - event(new StatusLiked($auth_user['cawangan'],$auth_user['name'])); + event(new StatusLiked($auth_user['cawangan'], $auth_user['name'])); - return response()->json($createlulus,201); + return response()->json($createlulus, 201); } + public function createkelulusanAnggota(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $verify_ssl = config('app.api_verify'); + + // 🔸 Validasi asas + $request->validate([ + 'norujukan' => 'required|string', + 'noic' => 'required|string', + 'komen' => 'required|string', + 'teller' => 'required|string', + ]); + + $norujukan = $request->norujukan; + $current = Carbon::now(); + + // 1️⃣ Dapatkan info cawangan + $cawangan_info = Http::withOptions(['verify' => $verify_ssl]) + ->get("{$api_url}/api/cawangan/{$auth_user->cawangan}") + ->json(); + + if (empty($cawangan_info)) { + return response()->json(['message' => 'Maklumat cawangan tidak ditemui.'], 404); + } + + // 2️⃣ Dapatkan siri terkini (supaya sistem tahu kelulusan ke berapa) + $getsiri = Http::withOptions(['verify' => $verify_ssl]) + ->get("{$api_url}/api/ListLatestLulus/{$auth_user->cawangan}/{$norujukan}") + ->json(); + + $siri = isset($getsiri['siri']) ? ((int) $getsiri['siri'] + 1) : 1; + + $createlulus = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url') . '/api/CreateLulus/' . $auth_user['cawangan'] . '/' . $norujukan, [ + 'mohon' => $request->mohon, + 'teller' => $auth_user['name'], + 'komen' => $request->komen, + 'status' => $request->status, + 'ansuran' => $request->ansuran, + 'tagoperasi' => ($request->tagoperasi) ? $request->tagoperasi : 0, + ])->json(); + + // 3️⃣ Hantar permohonan ke API utama + $payload = [ + 'komen' => $request->komen, + 'dategadai' => $current->toDateString(), + 'bilgadai' => 1, + 'siri' => $siri, + 'status' => 'TUNGGU KELULUSAN OPERASI', + 'teller' => $request->teller, + 'peloperasi' => 'operasi', + 'mohon' => 'Assign Anggota', + 'noic' => $request->noic, + 'jenistebus' => 'A', // “A” = anggota + 'tagoperasi' => 1, // 1 = tunggu kelulusan operasi + ]; + + $createLulus = Http::withOptions(['verify' => $verify_ssl]) + ->post("{$api_url}/api/CreateKelulusanAnggota/{$auth_user->cawangan}/{$norujukan}/roles/operasi", $payload) + ->json(); + + // 4️⃣ Jika API gagal + if (isset($createLulus['error']) || !$createLulus) { + return response()->json([ + 'message' => 'Gagal menghantar permohonan kelulusan operasi.', + 'error' => $createLulus['error'] ?? $createLulus + ], 500); + } + + // 5️⃣ Trigger event untuk notifikasi operasi + event(new StatusLiked($auth_user->cawangan, $auth_user->name)); + + // 6️⃣ Hantar respon berjaya + return response()->json([ + 'message' => 'Permohonan kelulusan operasi (Assign Anggota) berjaya dihantar.', + 'siri' => $siri, + 'api_response' => $createLulus, + ], 201); + } + + ///END KELULUSAN/// } diff --git a/app/Http/Controllers/OperasiController.php b/app/Http/Controllers/OperasiController.php index 1b8872f8..74189123 100644 --- a/app/Http/Controllers/OperasiController.php +++ b/app/Http/Controllers/OperasiController.php @@ -7,6 +7,7 @@ namespace App\Http\Controllers; use App\Events\OperasiNotice; use App\Events\StatusLiked; use App\Events\NotifikasiKelulusan; +use App\Events\NotifikasiAnggota; use App\Events\Dashboard\KomoditiNotify; use Illuminate\Support\Facades\Auth; @@ -25,31 +26,29 @@ class OperasiController extends Controller $this->middleware('auth'); } - public function kelulusan(Request $request){ + public function kelulusan(Request $request) + { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasi/')->json(); $arraykelulusan = []; - foreach($kelulusan as $index=>$lulus) - { - foreach($lulus['kelulusanall'] as $index=>$kel) - { - array_push($arraykelulusan,["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $kel['teller'], 'siri' => $kel['siri'] , "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'],'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'),'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]); + foreach ($kelulusan as $index => $lulus) { + foreach ($lulus['kelulusanall'] as $index => $kel) { + array_push($arraykelulusan, ["cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'], "namateller" => $kel['teller'], 'siri' => $kel['siri'], "norujukan" => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'komen' => $kel['komen'], 'nilaimarhun' => ($kel['nilaimarhun'] ?? '-'), 'berat' => ($kel['berat'] ?? '-'), 'margin' => ($kel['margin'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['pelulus']]); } - foreach($lulus['kelulusanMohonid'] as $index=>$mohon) - { - array_push($arraykelulusan,["mohonid" => true,"ansuran" => $mohon['ansuran'],"cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'],"namateller" => $mohon['teller'], 'recno' => $mohon['recno'] , "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'],'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'),'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]); + foreach ($lulus['kelulusanMohonid'] as $index => $mohon) { + array_push($arraykelulusan, ["mohonid" => true, "ansuran" => $mohon['ansuran'], "cawangan" => $lulus['cawangan'], "cawangankod" => $lulus['cawangankod'], "namateller" => $mohon['teller'], 'recno' => $mohon['recno'], "norujukan" => $mohon['norujukan'], 'pinjaman' => $mohon['pinjaman'], 'komen' => $mohon['katalaluan'], 'nilaimarhun' => ($mohon['nilaimarhun'] ?? '-'), 'berat' => ($mohon['berat'] ?? '-'), 'margin' => ($mohon['margin'] ?? '-'), 'status' => ($mohon['mohon'] ?? '-')]); } } - return view('operasi.kelulusan',compact('cawangan_info','api_url','arraykelulusan')); + return view('operasi.kelulusan', compact('cawangan_info', 'api_url', 'arraykelulusan')); } public function getkelulusan(Request $request) @@ -59,16 +58,13 @@ class OperasiController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/SenaraiDahLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); - if(sizeof($kelulusan) > 0) - { + if (sizeof($kelulusan) > 0) { $kelulusan = $kelulusan[0]['masalulus']; - } - else - { + } else { $kelulusan = ''; } @@ -84,21 +80,20 @@ class OperasiController extends Controller $norujukan = $request->norujukan; - if($request->pembatalan == null) - { - if(!$request->taglulus){ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ + if ($request->pembatalan == null) { + if (!$request->taglulus) { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [ "komen" => $request->komenkelulusan, 'siri' => $request->siri ])->json(); - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [ 'sahkan' => 1, 'namaoperasi' => $request->namaoperasi, 'siri' => $request->siri ])->json(); - }else{ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[ + } else { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [ 'siri' => $request->siri, "kodcaw" => $request->kodcaw, "norujukan" => $request->norujukan, @@ -108,26 +103,23 @@ class OperasiController extends Controller } - if($updatelulus) - { - event(new NotifikasiKelulusan($norujukan,"lulus",$request->siri,$request->komenkelulusan,$request->teller)); + if ($updatelulus) { + event(new NotifikasiKelulusan($norujukan, "lulus", $request->siri, $request->komenkelulusan, $request->teller)); } - } - else - { - if(!$request->taglulus){ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[ + } else { + if (!$request->taglulus) { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan, [ "komen" => $request->komenkelulusan, 'siri' => $request->siri ])->json(); - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan,[ + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/' . $request->kodcaw . '/' . $norujukan, [ 'sahkan' => 2, 'namaoperasi' => $request->namaoperasi, 'siri' => $request->siri ])->json(); - }else{ - $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran',[ + } else { + $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateHapusAnsuran', [ 'siri' => $request->siri, "kodcaw" => $request->kodcaw, "norujukan" => $request->norujukan, @@ -136,18 +128,100 @@ class OperasiController extends Controller ])->json(); } - if($updatelulus) - { - event(new NotifikasiKelulusan($norujukan,"batal",$request->siri,$request->komenkelulusan,$request->teller)); + if ($updatelulus) { + event(new NotifikasiKelulusan($norujukan, "batal", $request->siri, $request->komenkelulusan, $request->teller)); } } - return response()->json($updatelulus,200); + return response()->json($updatelulus, 200); } + public function updatekelulusananggota(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + + // Data asas + $nokp = $request->nokp; + $kodcaw = $request->kodcaw; + $komen = $request->komenkelulusan; + $namaoperasi = $request->namaoperasi; + $taglulus = $request->taglulus; // contoh: 'Y' = lulus, 'N' = batal + + // 1️⃣ Tentukan status kelulusan + $status = ($taglulus == 'Y') ? 1 : 2; // 1 = Lulus, 2 = Batal/Tolak + + try { + // 2️⃣ Panggil API baru — ikut route baru dengan {kodcaw} + $endpoint = $api_url . '/api/UpdateKelulusanAnggota/' . $kodcaw; + + $payload = [ + 'nokp' => $nokp, + 'komenkelulusan' => $komen, + 'namaoperasi' => $namaoperasi, + 'sahkan' => $status + ]; + + Log::info('Menghantar permintaan ke API UpdateKelulusanAnggota', [ + 'endpoint' => $endpoint, + 'payload' => $payload + ]); + + $response = Http::withOptions(['verify' => config('app.api_verify')]) + ->put($endpoint, $payload); + + $updatelulus = $response->json(); + + // 3️⃣ Log hasil respon API + Log::info('Respon dari API UpdateKelulusanAnggota', [ + 'status' => $response->status(), + 'body' => $updatelulus + ]); + + // 4️⃣ Jika berjaya, cipta event notifikasi + if ($response->successful() && $updatelulus && isset($updatelulus['success']) && $updatelulus['success'] === true) { + // $jenis = ($status == 1) ? 'lulus' : 'batal'; + // event(new NotifikasiAnggota($nokp, $jenis, null, $komen, $namaoperasi)); + + $statusText = ($status == 1) ? 'DILULUSKAN' : 'DITOLAK'; + event(new NotifikasiAnggota($nokp, $statusText, $komen, $namaoperasi)); + + + Log::info('Event NotifikasiAnggota dispatched', [ + 'nokp' => $nokp, + 'komen' => $komen, + 'namaoperasi' => $namaoperasi + ]); + } else { + Log::warning('Gagal kemas kini kelulusan anggota', [ + 'nokp' => $nokp, + 'kodcaw' => $kodcaw, + 'response' => $updatelulus + ]); + } + + return response()->json($updatelulus, $response->status()); + } catch (\Exception $e) { + Log::error('Ralat UpdateKelulusanAnggota (frontend)', [ + 'message' => $e->getMessage(), + 'line' => $e->getLine() + ]); + + return response()->json([ + 'success' => false, + 'message' => 'Ralat semasa menghantar kelulusan anggota.', + 'error' => $e->getMessage() + ], 500); + } + } + + + + + public function createkelulusan(Request $request) { $auth_user = Auth::user(); @@ -158,14 +232,13 @@ class OperasiController extends Controller $norujukan = $request->norujukan; - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - $getsiri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListLatestLulus/'. $auth_user['cawangan'] . '/' . $norujukan)->json(); + $getsiri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListLatestLulus/' . $auth_user['cawangan'] . '/' . $norujukan)->json(); - if(isset($getsiri['siri'])) - { + if (isset($getsiri['siri'])) { $siri = $getsiri['siri'] + 1; - }else{ + } else { $siri = 1; } @@ -185,57 +258,110 @@ class OperasiController extends Controller ])->json(); - event(new StatusLiked($auth_user['cawangan'],$auth_user['name'])); + event(new StatusLiked($auth_user['cawangan'], $auth_user['name'])); - return response()->json($siri,201); + return response()->json($siri, 201); + } + + + public function createkelulusanAnggota(Request $request) + { + try { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $current = Carbon::now(); + + Log::info('createkelulusanAnggota', $request->all()); + + // Dapatkan maklumat cawangan + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/cawangan/' . $auth_user['cawangan']) + ->json(); + + // Generate siri baru + $getsiri = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/ListLatestLulus/' . $auth_user['cawangan'] . '/anggota') + ->json(); + + $siri = isset($getsiri['siri']) ? $getsiri['siri'] + 1 : 1; + + // Hantar ke API + $createlulus = Http::withOptions(['verify' => config('app.api_verify')]) + ->post($api_url . '/api/CreateKelulusanAnggota/' . $auth_user['cawangan'] . '/roles/operasi', [ + 'komen' => $request->komen, + 'date_mohon' => $current->toDateString(), + 'siri' => $siri, + 'nokp' => $request->nokp, + 'teller' => $request->teller, + 'peloperasi' => 'operasi' + ]) + ->json(); + + event(new StatusLiked($auth_user['cawangan'], $auth_user['name'])); + + return response()->json([ + 'success' => true, + 'message' => 'Permohonan kelulusan anggota berjaya dihantar.', + 'siri' => $siri, + 'data' => $createlulus, + ], 201); + + Log::info('🛰️ API CreateKelulusanAnggota Response:', [ + 'status' => $response->status(), + 'body' => $response->body(), + ]); + } catch (\Throwable $th) { + Log::error('❌ createkelulusanAnggota error: ' . $th->getMessage()); + return response()->json([ + 'success' => false, + 'message' => $th->getMessage(), + ], 500); + } } public function mintakatalaluansemula(Request $request) { - if(Hash::check($request->passsemula, Auth::user()->password)) - { + if (Hash::check($request->passsemula, Auth::user()->password)) { return "True"; - } - else - { + } else { return "False"; } - } public function parameter() { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); - return view('operasi.parameter',compact('cawangan_info','api_url')); + return view('operasi.parameter', compact('cawangan_info', 'api_url')); } public function hargaemas() { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $harga_emas = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/')->json(); - return view('operasi.hargaemas',compact('cawangan_info','api_url','harga_emas')); + return view('operasi.hargaemas', compact('cawangan_info', 'api_url', 'harga_emas')); } - public function margin(){ + public function margin() + { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); $margin_pembiayaan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/maxpinjaman')->json(); - return view('operasi.margin_pembiayaan',compact('cawangan_info','api_url','margin_pembiayaan')); + return view('operasi.margin_pembiayaan', compact('cawangan_info', 'api_url', 'margin_pembiayaan')); } public function kelulusanrekodlepas() { $auth_user = Auth::user(); $api_url = config('api.url'); - $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json(); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); //declare array baru $arraykelulusan = []; @@ -243,29 +369,36 @@ class OperasiController extends Controller $kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasiKelulusan/')->json(); - foreach($kelulusan as $index=>$k) - { - foreach($k['kelulusanall'] as $index1=>$kel) - { - $komen = explode("|",$kel['komen']); + foreach ($kelulusan as $index => $k) { + foreach ($k['kelulusanall'] as $index1 => $kel) { + $komen = explode("|", $kel['komen']); - $results=array_search("",$komen,true); - if($results !== false) { + $results = array_search("", $komen, true); + if ($results !== false) { unset($komen[$results]); } - array_push($arraykelulusan,['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'),'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]); - + array_push($arraykelulusan, ['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'), 'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]); } } - return view('operasi.rekodtelahlulus',compact('cawangan_info','api_url','arraykelulusan')); - + return view('operasi.rekodtelahlulus', compact('cawangan_info', 'api_url', 'arraykelulusan')); } public function notifyKomoditi() { $auth_user = Auth::user(); - event(new KomoditiNotify('lulus',$auth_user['cawangan'])); + event(new KomoditiNotify('lulus', $auth_user['cawangan'])); + } + + public function kelulusananggota(Request $request) + { + $auth_user = Auth::user(); + $api_url = config('api.url'); + $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json(); + + $arraykelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/list/approval/anggota')->json(); + + return view('operasi.kelulusan_anggota', compact('cawangan_info', 'api_url', 'arraykelulusan')); } } diff --git a/app/Imports/AnggotaImport.php b/app/Imports/AnggotaImport.php new file mode 100644 index 00000000..c5a12bb1 --- /dev/null +++ b/app/Imports/AnggotaImport.php @@ -0,0 +1,24 @@ + $row['noic'], + 'nama' => $row['nama'], + 'status' => $row['status'] ?? 'aktif', + ]); + } +} diff --git a/routes/web.php b/routes/web.php index af251bcb..3e35c0ae 100644 --- a/routes/web.php +++ b/routes/web.php @@ -110,6 +110,7 @@ Route::post('/createwakil',['as'=>'wakil.create','uses'=>'PenebusanController@cr Route::get('/firstwakil',['as'=>'wakil.first','uses'=>'PenebusanController@getfirstWakil'])->middleware('auth','teller'); Route::get('/history',['as'=>'gadai.history','uses'=>'GadaianController@history'])->middleware('auth','teller'); Route::get('/history/khazanah',['as'=>'gadai.history.khazanah','uses'=>'GadaianController@history'])->middleware('auth','khazanah'); +Route::post('/customer/assign-anggota', ['as' => 'customer.assignAnggota','uses' => 'CustomersController@assignAnggota'])->middleware('auth', 'teller'); //Kemaskini Upah Route::get('/kemaskiniupah',['as'=>'kemaskini.upah','uses'=>'AliranTunaiController@kemaskiniupah'])->middleware('auth','teller'); @@ -203,6 +204,8 @@ Route::post('/deletependahuluanserahan',['as'=>'khazanah.deletependser','uses'=> //Ubah dan Hapus Route::get('/getkelulu',['as'=>'teller.getkelulusan','uses'=>'GadaianController@getkelulusan'])->middleware('auth','teller'); Route::post('/createkelulu',['as'=>'teller.createkelulusan','uses'=>'GadaianController@createkelulusan'])->middleware('auth'); +Route::post('/createkeluluanggota',['as'=>'teller.createkelulusan-anggota','uses'=>'GadaianController@createkelulusanAnggota'])->middleware('auth'); + Route::put('/updatekelulu',['as'=>'teller.updatekelulusan','uses'=>'GadaianController@updatekelulusan'])->middleware('auth','khazanah'); @@ -334,9 +337,12 @@ Route::post('/barcodescanned',['as'=>'barcode.scanned','uses'=>'KhazanahControll //Operasi Route::get('/operasi/kelulusan','OperasiController@kelulusan')->name('operasi.kelulusan')->middleware('auth','operasi'); +Route::get('/operasi/kelulusan/anggota','OperasiController@kelulusanAnggota')->name('operasi.kelulusananggota')->middleware('auth','operasi'); Route::post('/operasi/createkelulusan',['as'=>'operasi.createkelulusan','uses'=>'OperasiController@createkelulusan'])->middleware('auth','teller'); +Route::post('/operasi/createkelulusan-anggota',['as'=>'operasi.createkelulusan-anggota','uses'=>'OperasiController@createkelulusanAnggota'])->middleware('auth','teller'); Route::get('/operasi/getkelulusan',['as'=>'operasi.getkelulusan','uses'=>'OperasiController@getkelulusan'])->middleware('auth','teller'); Route::put('/operasi/updatekelulusan',['as'=>'operasi.updatekelulusan','uses'=>'OperasiController@updatekelulusan'])->middleware('auth','operasi'); +Route::put('/operasi/updatekelulusananggota',['as'=>'operasi.updatekelulusananggota','uses'=>'OperasiController@updatekelulusananggota'])->middleware('auth','operasi'); Route::get('/operasi/parameter','OperasiController@parameter')->name('parameter')->middleware('auth','operasi'); Route::get('/operasi/hargaemas',['as'=>'operasi.hargaemas','uses'=>'OperasiController@hargaemas'])->middleware('auth','operasi'); Route::post('/operasi/hargaemas/update',['as'=>'hargaemas.update','uses'=>'OperasiController@updatehargaemas'])->middleware('auth','operasi'); From 31dc30ed608c7175e4b55fa3fb99d224917c52d7 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:46:37 +0800 Subject: [PATCH 02/26] update all blade views for kadar anggota koperasi --- resources/views/customers/v2/index.blade.php | 106 ++-- resources/views/customers/v2/info.blade.php | 328 +++++++++++- resources/views/gadaian/v2/index.blade.php | 6 + .../views/homepage/operasi/home.blade.php | 1 + .../views/operasi/kelulusan_anggota.blade.php | 480 ++++++++++++++++++ 5 files changed, 878 insertions(+), 43 deletions(-) create mode 100644 resources/views/operasi/kelulusan_anggota.blade.php diff --git a/resources/views/customers/v2/index.blade.php b/resources/views/customers/v2/index.blade.php index 10d2fcb3..5bdfe898 100644 --- a/resources/views/customers/v2/index.blade.php +++ b/resources/views/customers/v2/index.blade.php @@ -71,12 +71,27 @@ @if($search == true && $blacklist_search == false) -
- -
- @endif +
+ + {{-- ✅ Jika anggota tapi belum daftar pelanggan --}} + @if(isset($showDaftarPelangganBtn) && $showDaftarPelangganBtn) + + @endif + + {{-- ✅ Jika pelanggan dah ada tapi belum anggota --}} + @if(isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn) +
+ @csrf + + +
+ @endif + +
+@endif + @@ -478,42 +493,75 @@ + +@endif @@ -167,7 +339,7 @@ $activate_tab = request()->session()->pull('activate_tab', 'SAG_lama'); $activate_tab_SAG_baru = $activate_tab === 'SAG_baru' ? 'active' : ''; - $aria_selected_SAG_baru = $activate_tab === 'SAG_baru' ? 'true' : 'false'; + $aria_selected_SAG_baru = $activate_tab === 'SAG_baru' ? 'true' : 'false'; $activate_pane_SAG_baru = $activate_tab === 'SAG_baru' ? 'active show' : ''; $activate_tab_SAG_lama = $activate_tab === 'SAG_lama' ? 'active' : ''; @@ -403,16 +575,24 @@
@php - $poskod = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/poskod/'. $customer_info['poskod'])->json(); - // $data = $poskod; - // $poskod2 = array('koddaerah'=>'NIL','kodnegeri' => 'NIL'); - // dd($poskod,$poskod2,$data,$customer_info); - if(empty($poskod)){ - $poskod = array('koddaerah'=>'NIL','kodnegeri' => 'NIL'); - } - $daerah = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/daerah/' . $poskod['koddaerah'])->json(); - @endphp - + $poskod = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/poskod/' . $customer_info['poskod']) + ->json(); + + // Jika tiada data poskod atau tiada koddaerah + if (empty($poskod) || !isset($poskod['koddaerah'])) { + $poskod = ['koddaerah' => 'NIL', 'kodnegeri' => 'NIL']; + } + + $daerah = Http::withOptions(['verify' => config('app.api_verify')]) + ->get($api_url . '/api/daerah/' . $poskod['koddaerah']) + ->json(); +@endphp + + +
@@ -2996,6 +3176,126 @@ }); } } + + async function assignAnggota(e){ + let noic = $(e).data('noic'); + + const swalWithBootstrapButtons = Swal.mixin({ + customClass: { + confirmButton: 'btn btn-success me-2', + cancelButton: 'btn btn-danger' + }, + buttonsStyling: false + }); + + try { + // 1️⃣ Sahkan tindakan + const confirm = await swalWithBootstrapButtons.fire({ + title: 'Mohon Kelulusan Operasi', + text: 'Adakah anda pasti mahu mohon kelulusan operasi untuk assign sebagai anggota?', + icon: 'question', + showCancelButton: true, + confirmButtonText: 'Ya, Hantar Mohon', + cancelButtonText: 'Batal', + reverseButtons: true + }); + + if (!confirm.isConfirmed) { + await Swal.fire('Dibatalkan', 'Tindakan tidak diteruskan.', 'info'); + return; + } + + console.log(confirm); + + // 2️⃣ Masukkan komen + const komenPrompt = await Swal.fire({ + title: 'Masukkan Komen', + input: 'text', + inputPlaceholder: 'Contoh: Layak sebagai anggota', + showCancelButton: true, + confirmButtonText: 'Hantar', + cancelButtonText: 'Batal', + inputValidator: (value) => !value && 'Sila masukkan komen!' + }); + + if (!komenPrompt.isConfirmed) { + await Swal.fire('Dibatalkan', 'Tiada komen dimasukkan.', 'info'); + return; + } + + const komen = komenPrompt.value; + + // 3️⃣ Papar popup loading + Swal.fire({ + title: 'Tunggu Pengesahan Operasi', + text: 'Permohonan sedang menunggu kelulusan operasi...', + icon: 'info', + allowOutsideClick: false, + allowEscapeKey: false, + showConfirmButton: false, + didOpen: () => Swal.showLoading() + }); + + // 4️⃣ Aktifkan listener Pusher terlebih dahulu + const pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", { + cluster: 'ap1', + encrypted: true + }); + const channel = pusher.subscribe('notice-anggota'); + + channel.bind('my-anggota', function (data) { + // Padankan hanya berdasarkan noic + console.log(data,noic); + if (data.noic == noic) { + Swal.close(); // tutup loading + + if (data.status === 'DILULUSKAN') { + Swal.fire({ + icon: 'success', + title: 'Diluluskan oleh Operasi', + confirmButtonText: 'OK' + }).then(() => location.reload()); + } else if (data.status === 'DITOLAK') { + Swal.fire({ + icon: 'warning', + title: 'Permohonan Dibatalkan', + confirmButtonText: 'OK' + }); + } + } + }); + + // 5️⃣ Hantar permohonan ke backend + const response = await fetch("{{ route('operasi.createkelulusan-anggota') }}", { + method: 'POST', + headers: { + "Content-Type": "application/json", + "X-CSRF-TOKEN": "{{ csrf_token() }}" + }, + body: JSON.stringify({ + mohon: "Assign Anggota", + nokp: noic, + komen: komen, + teller: "{{ Auth::user()->name }}", + tagoperasi: 1 // tunggu kelulusan operasi + }) + }); + + const result = await response.json(); + if (!response.ok || !result) throw new Error(result.message || 'Ralat semasa menghantar permohonan.'); + + console.log(result); + + } catch (error) { + console.error('Ralat mohonKelulusanOperasiAnggota:', error); + Swal.fire({ + icon: 'error', + title: 'Ralat', + text: 'Gagal menghantar permohonan kelulusan operasi. Sila cuba semula.' + }); + } +} + +@endsection From 71990e75822d8f4bcbdd5ef71810f5cdd0612cbf Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:47:48 +0800 Subject: [PATCH 03/26] update new format sag from syariah --- resources/views/print/sag_ujrah_3.blade.php | 812 ++++++++++++-------- 1 file changed, 506 insertions(+), 306 deletions(-) diff --git a/resources/views/print/sag_ujrah_3.blade.php b/resources/views/print/sag_ujrah_3.blade.php index d3d1f363..291c9449 100644 --- a/resources/views/print/sag_ujrah_3.blade.php +++ b/resources/views/print/sag_ujrah_3.blade.php @@ -153,7 +153,7 @@ .tnc-table td, .tnc-table th { padding: 1.5px; - font-size: 10px; + font-size: 9px; vertical-align: top; text-align: justify; } @@ -397,11 +397,11 @@
-

KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)

+

KOPERASI PERMODALAN KELANTAN BERHAD (D-5-0228)

{{ $cawangan_detail['namacaw'] }}

{{ $cawangan_detail['alamat1'] }}

{{ $cawangan_detail['alamat2'] }}

-

No Tel: {{ $cawangan_detail['notel'] }}

+

{{ $cawangan_detail['notel'] }}

@@ -410,11 +410,8 @@
-
- {!! QrCode::size(60)->generate($pembayaran_segera) !!} -

-
https://pay.arrahn.com.my
+ {{--
https://pay.arrahn.com.my
--}}
UNTUK KEGUNAAN PELANGGAN
@@ -437,7 +434,7 @@ '" alt="barcode" />'; @endphp - PEMBIAYAAN AR-RAHN TAWARRUQ DAN
PENYIMPANAN EMAS + PEMBIAYAAN AR-RAHN TAWARRUQ @php @@ -450,8 +447,6 @@ NAMA {{ $customer_detail['nama'] }} - - NO MYKAD / PASSPORT {{ $gadai_detail['nokp'] }} @@ -485,26 +480,27 @@ echo $customer_detail['poskod'] . ', ' . $namadaerah . ', ' . $negeri; @endphp - - + NO TELEFON {{ $customer_detail['telefon'] }} + TARIKH PEMBIAYAAN - + @php $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); $formattedweddingdate = $myDateTime->format('d-m-Y'); echo $formattedweddingdate; @endphp +
- + - - + + @@ -593,11 +589,11 @@ - + {{-- - + --}}
@@ -582,8 +578,8 @@ Nombor Sijil {{ $komoditi['no_sijil'] }} 4Kuantiti{{ number_format($kuantiti, 2) }}Kuantiti (Unit){{ number_format($kuantiti, 2) }} TAN
2harga kos {{ 'RM' . number_format($gadai_detail['pinjaman'], 2) }}
3 Unit {{ $product['unit'] }}
{{-- MAKLUMAT PEMBIAYAAN SECTION --}} @@ -612,7 +608,8 @@ HARGA JUALAN - RM{{ number_format($gadai_detail['hargajualan'], 2) }} + RM{{ number_format($gadai_detail['hargajualan'], 2) }} + @@ -632,13 +629,14 @@ - + - @@ -656,62 +654,20 @@ - + - - - - - - - - - - - - - - - - - - - - -
{{ $formatted_t_matang_1 }}
JUMLAH KEUNTUNGAN DAN LAIN-LAIN CAJ YANG PERLU DIBAYARJUMLAH KEUNTUNGAN (1%) DAN LAIN-LAIN CAJ YANG PERLU DIBAYAR RM{{ number_format($gadai_detail['bakiupah'] / 6, 2) }} RM{{ number_format($gadai_detail['bakiupah'], 2) }} RM{{ number_format($gadai_detail['bakiupah'], 2) }}
JUMLAH KEUNTUNGAN DAN LAIN-LAIN CAJ TERKUMPUL
SEPANJANG TEMPOH PEMBIAYAAN +
JUMLAH KEUNTUNGAN (1%) DAN LAIN-LAIN CAJ TERKUMPUL
SEPANJANG TEMPOH + PEMBIAYAAN
- RM{{ number_format($gadai_detail['bakiupah'], 2) }}TRANSAKSI PEMBIAYAAN AR-RAHN
AKAD JUALAN MURABAHAH (JUAL BELI SECARA TANGGUH)KONSEP TAWARRUQ
KoPKB dengan ini menjual dan Pelanggan dengan ini membeli - komoditi pada Harga Jualan dengan bayaran tangguh. Komoditi adalah sebagaimana - yang dinyatakan di - dalam nombor sijil - komoditi mengikut Jumlah Pembiayaan yang diberikan kepada Pelanggan. -
*Pelanggan dengan ini bersetuju untuk menerima komoditi yang telah - dijualkan - kepada Pelanggan seperti dinyatakan dalam SAG ini.
AKAD WAKALAH
Pelanggan :
Berkenaan pilihan pengambilan komoditi, sila tandakan (/) pada - salah satu - kotak dibawah (yang berkenaan):
Pelanggan dengan ini - melantik KoPKB sebagai wakil dan KoPKB dengan ini menerima perlantikan - tersebut untuk + + Kemudahan pembiayaan adalah di bawah prinsip syariah jual beli komoditi + Murabahah + (Tawarruq) di mana berdasarkan akujanji daripada pihak pelanggan, + KoPKB akan membeli komoditi daripada pihak pembekal komoditi dan seterusnya menjual komoditi - kepada pihak ketiga secara tunai yang bersamaan dengan - Jumlah Pembiayaan diberikan kepada Pelanggan. Pelanggan dengan ini mengaku janji untuk - menanggung rugi - KoPKB atas segala kerugian, kos, perbelanjaan atau kerosakan yang mungkin - dialami atau ditanggung oleh KoPKB akibat memenuhi fungsinya sebagai wakil Pelanggan; - Atau, -
- - - - - - @@ -720,23 +676,32 @@ + +
- Pelanggan bersetuju - mengambil komoditi tersebut dan menanggung segala kos dan caj yang berkaitan dan - dengan - mengambil komoditi tersebut, Jumlah Pembiayaan tidak akan dikreditkan ke dalam - akaun Pelanggan atau - dibayar tunai kepada Pelanggan. + kepada pelanggan berlandaskan kontrak Murabahah pada harga jualan + (kos komoditi beserta keuntungan) secara tangguh dan kemudian, sebagai ejen + (Wakalah) + pelanggan, + KoPKB menjualkannya kepada pembeli pihak ketiga dengan cara tunai.
Pelanggan bersetuju dan dengan ini menggadaikan Marhun sebagai cagaran kepada - Jumlah Pembiayaan termasuk Jumlah Keuntungan dan Lain-Lain Caj Terkumpul mengikut - syarat-syarat pembiayaan dalam SAG ini. KoPKB dengan ini menerima gadaian Marhun + Jumlah Pembiayaan termasuk Jumlah Keuntungan dan Lain-Lain Caj Terkumpul + mengikut + syarat-syarat pembiayaan dalam SAG ini. KoPKB dengan ini menerima gadaian Marhun tersebut.
+ + + + +
AKAD (SIMPAN MARHUN)
- Pelanggan dengan ini bersetuju marhun disimpan oleh KoPKB dan bersetuju membayar lain-lain caj + Pelanggan dengan ini bersetuju marhun disimpan oleh KoPKB dan bersetuju membayar + lain-lain caj sebagaimana jadual dibawah bagi setiap RM100.00 Jumlah Marhun Keseluruhan:
- +
@@ -758,66 +723,220 @@ +
NILAI MARHUN KESELURUHAN - RM{{ $kadar_ujrah[2]['kadarujrah'] }}/sebulan
+ + + +
+ {{-- tnc baru --}} +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{-- + + + + + + + + + + + + + + + + + + + + + + --}} +
+ TERMA DAN SYARAT SAG +
1.Pelanggan bersetuju:
a.Bahawa Marhun yang digadai adalah milik mutlaknya; atau Pelanggan + ialah wakil yang dilantik oleh pemilik Marhun melalui Surat Kuasa Wakil.
b.Menggadaikan Marhun seperti di dalam keterangan Marhun sebagai + cagaran kepada pembiayaan ini;
c.Bagi Marhun yang mempunyai batu permata, KoPKB akan mengasingkan + batu permata tersebut semasa penilaian emas dibuat atau Pelanggan diberi hak + untuk mengeluarkan sendiri batu permata di mana-mana kedai yang difikirkan patut + sebelum penilaian dilakukan;
d.KoPKB tidak bertanggungjawab atas apa-apa kerosakan yang terjadi + disebabkan pengasingan batu permata daripada Marhun;
e.Membayar Jumlah Pembiayaan termasuk Jumlah Keuntungan dan + Lain-Lain Caj Terkumpul yang diberi mengikut dalam tempoh seperti di SAG ini; +
f.Tertakluk kepada pembayaran penuh Jumlah Pembiayaan termasuk + Jumlah Keuntungan dan Lain-Lain Caj Terkumpul, Pelanggan perlu hadir sendiri + menyelesaikan Pembiayaan;
g.Sekiranya Penyelesaian Pembiayaan dilakukan melalui lantikan + wakil, Pelanggan perlu membawa dokumen berikut:
i.Surat Pelantikan Wakil yang telah diisi dan ditandatangan oleh Pelanggan asal; +
ii.SAG asal.
iii.Salinan Kad Pengenalan Pelanggan dan Kad Pengenalan wakil yang dilantik.
h.Semakan fizikal Marhun hanya boleh dibuat di cawangan asal di + mana pembiayaan dipohon dan diluluskan;
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ i. Surat Pelantikan Wakil yang telah diisi dan ditandatangan oleh + Pelanggan asal;
ii. SAG asal.
iii. Salinan Kad Pengenalan Pelanggan + dan Kad Pengenalan wakil yang + dilantik.
h.Semakan fizikal Marhun hanya boleh dibuat di cawangan asal di + mana pembiayaan dipohon dan diluluskan;
+ i. Pelanggan perlu memaklumkan kepada KoPKB sebarang kerosakan/kecacatan pada + Marhun (jika ada) sewaktu + Penyelesaian Pembiayaan. KoPKB tidak akan bertanggungjawab di atas sebarang + kerosakan/kecacatan Marhun selepas + daripada Penyelesaian Pembiayaan: +
j.Membenarkan KoPKB untuk mendedahkan apa-apa maklumat peribadi + atau + dokumen berkenaan Pembiayaan Marhun Pelanggan kepada mana-mana pihak + ketiga yang + difikirkan wajar termasuk tetapi tidak terhad kepada:
+ i. Anak syarikat KoPKB dan/atau mana-mana syarikat di bawah + kumpulan + KoPKB; dan
+ ii. Mana-mana syarikat atau institusi bagi tujuan pelaksanaan + konsep Syariah dan pembelian/penjualan komoditi;
{{-- SIGNATURE SECTION --}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TANDATANGAN PIHAK KOPERASITANDATANGAN PELANGGANTANDATANGAN SAKSI
NAMA - @if ($gadai_detail['penilai'] == '') - {{ $auth_username }} - @else - {{ $gadai_detail['penilai'] }} - @endif - NAMA{{ $customer_detail['nama'] }}NAMA{{ $gadai_detail['teller'] }}
TARIKH - @php - $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); - $formattedweddingdate = $myDateTime->format('d-m-Y'); - echo $formattedweddingdate; - @endphp - TARIKH - @php - $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); - $formattedweddingdate = $myDateTime->format('d-m-Y'); - echo $formattedweddingdate; - @endphp - TARIKH - @php - $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); - $formattedweddingdate = $myDateTime->format('d-m-Y'); - echo $formattedweddingdate; - @endphp -
+ {{-- + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TANDATANGAN PIHAK KOPERASITANDATANGAN PELANGGANTANDATANGAN SAKSI
NAMA + @if ($gadai_detail['penilai'] == '') + {{ $auth_username }} + @else + {{ $gadai_detail['penilai'] }} + @endif + NAMA{{ $customer_detail['nama'] }}NAMA{{ $gadai_detail['teller'] }}
TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
--}}
@@ -827,140 +946,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1078,31 +1063,6 @@ - - -
TERMA DAN SYARAT SAG
1.Pelanggan bersetuju: -
a.Bahawa Marhun yang digadai adalah milik mutlaknya; atau Pelanggan - ialah wakil - yang dilantik oleh pemilik Marhun melalui Surat Kuasa Wakil
b.Menggadaikan Marhun seperti di dalam keterangan Marhun - sebagai cagaran kepada pembiayaan ini;
c.Bagi Marhun yang mempunyai batu permata, KoPKB akan - mengasingkan batu permata tersebut semasa penilaian emas dibuat atau Pelanggan - diberi hak - untuk mengeluarkan sendiri batu permata di mana-mana kedai yang difikirkan patut - sebelum - penilaian dilakukan; -
d.KoPKB tidak bertanggungjawab atas apa-apa kerosakan yang terjadi - disebabkan pengasingan batu permata daripada Marhun; -
e.Membayar Jumlah Pembiayaan termasuk Jumlah Keuntungan dan Lain-Lain - Caj Terkumpul yang diberi mengikut dalam - tempoh - seperti di SAG ini; -
f.Tertakluk kepada pembayaran penuh Jumlah Pembiayaan termasuk Jumlah - Keuntungan dan Lain-Lain Caj Terkumpul, Pelanggan perlu - hadir - sendiri menyelesaikan Pembiayaan; -
g.Sekiranya Penyelesaian Pembiayaan dilakukan melalui lantikan wakil, - Pelanggan perlu membawa dokumen berikut: -
i.Surat Pelantikan Wakil yang telah diisi dan ditandatangan oleh - Pelanggan - asal; -
ii.SAG asal. -
iii.Salinan Kad Pengenalan Pelanggan dan Kad Pengenalan wakil yang - dilantik. -
h.Semakan fizikal Marhun hanya boleh dibuat di cawangan asal di mana - pembiayaan dipohon dan diluluskan; -
i.Pelanggan perlu memaklumkan kepada KoPKB sebarang - kerosakan/kecacatan pada Marhun (jika ada) sewaktu - Penyelesaian Pembiayaan. KoPKB tidak akan bertanggungjawab di atas sebarang - kerosakan/kecacatan Marhun selepas - daripada Penyelesaian Pembiayaan: -
j.Membenarkan KoPKB untuk mendedahkan apa-apa maklumat peribadi - atau - dokumen berkenaan Pembiayaan Marhun Pelanggan kepada mana-mana pihak - ketiga yang - difikirkan wajar termasuk tetapi tidak terhad kepada: - -
i.Anak syarikat KoPKB dan/atau mana-mana syarikat di bawah kumpulan - KoPKB; dan -
ii.Mana-mana syarikat atau institusi bagi tujuan pelaksanaan - konsep Syariah dan pembelian/penjualan komoditi; -
k.
u.Memberikan hak mutlak kepada KoPKB, atas budi bicara KoPKB dan tanpa - notis lain kepada - Pelanggan, untuk menjual, menyerah, menovasi -
- - - -
- - - - - - - - - - + + sehingga tempoh matang) atau sehingga tempoh lanjutan (sekiranya layak) + - +
dan/atau memindah hak dan kepentingan - atas SAG ini, - menurut sebarang transaksi yang mungkin dimeterai oleh KoPKB dan jika notis perlu - diberikan kepada - Pelanggan menurut undang-undang, perengan (u) ini adalah notis yang diperlukan itu - dan memadai; -
v. Jika berlaku kehilangan SAG ini, KoPKB hanya boleh mengeluarkan salinan yang disahkan, @@ -1113,14 +1073,15 @@
w.v. SAG ini sah diperlakukan sepanjang tempoh matang (daripada tarikh pembiayaan - sehingga tempoh matang) atau sehingga tempoh lanjutan (sekiranya layak)
x.w. KoPKB berhak mengubah, mengubahsuai, menambah atau mengeluarkan terma dan syarat ini atau @@ -1137,6 +1098,9 @@
+ + + @@ -1200,11 +1164,9 @@ - + - +
IBRA'
(REBAT)
=BEZA MARGIN
-
MAKSIMUM MARGIN -
BAKI TEMPOH PEMBIAYAAN
XLAIN-LAIN CAJJUMLAH KEUNTUNGAN 1% DAN LAIN-LAIN CAJ YANG PERLU DIBAYAR

@@ -1240,12 +1202,18 @@ 5. + KoPKB tidak bertanggungjawab terhadap zakat ke atas emas yang + digadai dan zakat tersebut hendaklah dibayar oleh pelanggan sendiri. + + + + 6. Sekiranya Pelanggan mempunyai sebarang pertanyaan atau aduan, Pelanggan boleh menghubungi KoPKB sebagaimana berikut: - + @@ -1281,7 +1249,7 @@ arrahncareline@gmail.com
Koperasi Permodalan Kelantan Berhad
-
+ {{--



@@ -1293,12 +1261,243 @@ Pelanggan + --}} + + + + {{--
--}} + + + + + + +
+ + + + + + + +
Akujanji Untuk Membeli
+ Selaras dengan SAG, pelanggan dengan ini berakujanji untuk membeli komoditi yang + dinyatakan di dalam SAG daripada + KoPKB pada Harga Jualan yang disebut dalam SAG yang akan dibayar mengikut terma dan + syarat di dalam SAG. +
+
+ + + + + + + + + + + + +
Akad Wakalah
+ Berkenaan pilihan pengambilan komoditi, sila tandakan (/) pada salah satu kotak + dibawah (yang berkenaan): +
+ + Pelanggan dengan ini melantik KoPKB sebagai wakil dan KoPKB dengan ini + menerima perlantikan tersebut untuk menjual komoditi kepada pihak ketiga secara + tunai yang bersamaan dengan Jumlah Pembiayaan yang diberikan kepada + Pelanggan. Pelanggan dengan ini mengaku janji untuk menanggung rugi KoPKB + atas segala kerugian, kos, perbelanjaan atau kerosakan yang mungkin dialami atau + ditanggung oleh KoPKB akibat memenuhi fungsinya sebagai wakil Pelanggan; Atau, +
+ + Pelanggan bersetuju mengambil komoditi tersebut dan menanggung segala + kos dan caj yang berkaitan dan dengan mengambil komoditi tersebut, Jumlah + Pembiayaan tidak akan dikreditkan ke dalam akaun Pelanggan atau dibayar tunai + kepada Pelanggan. +
+ +
+ {{-- SIGNATURE SECTION --}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TANDATANGAN PIHAK KOPERASITANDATANGAN PELANGGANTANDATANGAN SAKSI
NAMA + @if ($gadai_detail['penilai'] == '') + {{ $auth_username }} + @else + {{ $gadai_detail['penilai'] }} + @endif + NAMA{{ $customer_detail['nama'] }}NAMA{{ $gadai_detail['teller'] }}
TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp + TARIKH + @php + $myDateTime = DateTime::createFromFormat('Y-m-d', $gadai_detail['t_gadai']); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
+
+
+ + + + +
+ + + + + + + +
KONTRAK JUALAN MURABAHAH (TARIKH MERUJUK KEPADA TARIKH + SIJIL KOMODITI)
+ Berdasarkan perjanjian di antara KoPKB dan Pelanggan di dalam Surat Akuan + Gadaian ‘SAG’, KoPKB dengan ini menjual dan Pelanggan dengan ini membeli + komoditi di dalam Maklumat Komoditi pada Harga Jualan merangkumi Nilai + Pembiayaan dan Jumlah Keuntungan dengan pembayaran secara tangguh tertakluk + kepada terma dan syarat di dalam SAG. + + Setelah pemeteriaan Kontrak Jualan Murabahah ini disempurnakan, liabiliti + dan hak pemilikan bermanfaat terhadap komoditi hendaklah dengan segera + diserahkan kepada pelanggan. + + Dengan ini, KoPKB bersetuju untuk menjual komoditi seperti di dalam Maklumat + Komoditi dengan Harga Jualan secara pembayaran tertangguh yang dinyatakan di + dalam SAG ini. + + Dengan ini, pelanggan bersetuju untuk membeli komoditi seperti di dalam + Maklumat Komoditi dengan Harga Jualan secara pembayaran tertangguh yang + dinyatakan di dalam SAG. +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + +
T/t KoPKB / Penjual:
+
+
+
Nama: + @if ($gadai_detail['penilai'] == '') + {{ $auth_username }} + @else + {{ $gadai_detail['penilai'] }} + @endif +
Tarikh: + @php + $myDateTime = DateTime::createFromFormat( + 'Y-m-d', + $gadai_detail['t_gadai'], + ); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
+
+ + + + + + + + + + + + + + + +
T/t Pelanggan / Pembeli:
+
+
+
Nama: + {{ $customer_detail['nama'] }} +
Tarikh: + @php + $myDateTime = DateTime::createFromFormat( + 'Y-m-d', + $gadai_detail['t_gadai'], + ); + $formattedweddingdate = $myDateTime->format('d-m-Y'); + echo $formattedweddingdate; + @endphp +
+
+ +
+
+
+ + {{-- new page --}}
{{-- HEADER SECTION --}} @@ -1319,8 +1518,8 @@
{{--
- {{ $jenisAT != 'AT' ? $jenisAT : '(PS)' }}{{ $gadai_detail['percentpinj'] }}% -
--}} + {{ $jenisAT != 'AT' ? $jenisAT : '(PS)' }}{{ $gadai_detail['percentpinj'] }}% +
--}}
UNTUK KEGUNAAN PEJABAT
@@ -1343,7 +1542,7 @@ '" alt="barcode" />'; @endphp - PEMBIAYAAN AR-RAHN TAWARRUQ DAN
PENYIMPANAN EMAS + PEMBIAYAAN AR-RAHN TAWARRUQ @php @@ -1541,7 +1740,8 @@ HARGA JUALAN - RM{{ number_format($gadai_detail['hargajualan'], 2) }} + RM{{ number_format($gadai_detail['hargajualan'], 2) }} + @@ -1641,7 +1841,7 @@ '" alt="barcode" />'; @endphp - {{--
{{ $gadai_detail['percentpinj'] }}%
--}} + {{--
{{ $gadai_detail['percentpinj'] }}%
--}}
@@ -1751,7 +1951,7 @@
From 80b8fd3a24858de559a82fb2e9a0fa25a5f4d2e7 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:18:16 +0800 Subject: [PATCH 04/26] enable panjar for kopkb --- resources/views/homepage/khazanah/home.blade.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/resources/views/homepage/khazanah/home.blade.php b/resources/views/homepage/khazanah/home.blade.php index 5e806a8d..66578f88 100644 --- a/resources/views/homepage/khazanah/home.blade.php +++ b/resources/views/homepage/khazanah/home.blade.php @@ -274,11 +274,9 @@ - @if(Auth::user()->cawangan == '011237') - @endif
Aliran Tunai From 1e174a48b69eb74ddd3f90f2a85b5875e77221c5 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:20:12 +0800 Subject: [PATCH 05/26] enable route panjar --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 3e35c0ae..abc6fc7b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -186,7 +186,7 @@ Route::get('/capaian',['as'=>'khazanah.capaian','uses'=>'KhazanahController@capa Route::get('/alirantunai',['as'=>'khazanah.alirantunai','uses'=>'KhazanahController@alirantunai'])->middleware('auth','khazanah'); Route::get('/pelangganan',['as'=>'khazanah.pelangganan','uses'=>'KhazanahController@pelanggan'])->middleware('auth','khazanah'); Route::get('/bajet',['as'=>'khazanah.bajet','uses'=>'KhazanahController@bajet'])->middleware('auth','khazanah'); -//Route::get('/panjar',['as'=>'khazanah.panjar','uses'=>'KhazanahController@panjar'])->middleware('auth','khazanah'); +Route::get('/panjar',['as'=>'khazanah.panjar','uses'=>'KhazanahController@panjar'])->middleware('auth','khazanah'); Route::get('/getkelulusan',['as'=>'khazanah.getkelulusan','uses'=>'KhazanahController@getkelulusan'])->middleware('auth','teller'); Route::post('/createkelulusan',['as'=>'khazanah.createkelulusan','uses'=>'KhazanahController@createkelulusan'])->middleware('auth','teller'); Route::put('/updatekelulusan',['as'=>'khazanah.updatekelulusan','uses'=>'KhazanahController@updatekelulusan'])->middleware('auth','khazanah'); From cd9f83e21fe9442d2e39ae4f7edebd4c8cf5e557 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:30:36 +0800 Subject: [PATCH 06/26] enable i/duga biasa --- resources/views/khazanah/laporan/index.blade.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/views/khazanah/laporan/index.blade.php b/resources/views/khazanah/laporan/index.blade.php index d3248985..35a33ede 100644 --- a/resources/views/khazanah/laporan/index.blade.php +++ b/resources/views/khazanah/laporan/index.blade.php @@ -189,6 +189,10 @@ Notis Peringatan
+ From 3456059db4aca45c4e78730cbf015aa2825c4f19 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 23:46:10 +0800 Subject: [PATCH 07/26] fix button assign anggota --- resources/views/customers/v2/info.blade.php | 5867 ++++++++++--------- 1 file changed, 3017 insertions(+), 2850 deletions(-) diff --git a/resources/views/customers/v2/info.blade.php b/resources/views/customers/v2/info.blade.php index 457bf7d6..523f34cc 100644 --- a/resources/views/customers/v2/info.blade.php +++ b/resources/views/customers/v2/info.blade.php @@ -1,379 +1,393 @@ @extends('layouts.app') @section('content') -@include('modal.historytebus') -@include('modal.wakil') -@include('errors.alert', ['errorapproval' => $getApprovalError ?? null]) -
-
-
-
- + @include('modal.historytebus') + @include('modal.wakil') + @include('errors.alert', ['errorapproval' => $getApprovalError ?? null]) +
+
+
+
+ -
-
-
-
- Nama -
-
- -
-
-
-
-
-
- No Kad Pengenalan -
-
- @php - if($customer_info['kpbaru'] != null){ - $noic = $customer_info['kpbaru']; - }else{ - $noic = $customer_info['kplama']; - } - @endphp - -
-
-
-
-
-
- Pembiayaan -
-
- @php - if($customer_info['kpbaru'] != null){ - $noic = $customer_info['kpbaru']; - }else{ - $noic = $customer_info['kplama']; - } - $outstanding_semasa = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/gadai/customers/'. $noic .'/outstandingsemasa/'.$cawangan_info['kodcaw'])->json(); - @endphp - -
-
- -
-
- Baki Limit Pembiayaan -
-
- @php - $limit_pinjaman_semasa = 300000 - $outstanding_semasa; - @endphp - -
-
- -
-
- Baki Lelong -
-
- -
-
- @if(isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 1) -
-
- Status +
+
+
+
+ Nama +
+
+ +
-
-
+
+
+
+ No Kad Pengenalan +
+
+ @php + if ($customer_info['kpbaru'] != null) { + $noic = $customer_info['kpbaru']; + } else { + $noic = $customer_info['kplama']; + } + @endphp + +
+
- @endif +
+
+
+ Pembiayaan +
+
+ @php + if ($customer_info['kpbaru'] != null) { + $noic = $customer_info['kpbaru']; + } else { + $noic = $customer_info['kplama']; + } + $outstanding_semasa = Http::withOptions(['verify' => config('app.api_verify')]) + ->get( + $api_url . + '/api/gadai/customers/' . + $noic . + '/outstandingsemasa/' . + $cawangan_info['kodcaw'], + ) + ->json(); + @endphp + +
+
+ +
+
+ Baki Limit Pembiayaan +
+
+ @php + $limit_pinjaman_semasa = 300000 - $outstanding_semasa; + @endphp + +
+
+ +
+
+ Baki Lelong +
+
+ +
+
+ @if (isset($customer_info['tag_anggota']) && $customer_info['tag_anggota'] == 1) +
+
+ Status +
+
+ +
+
+ @endif + +
+
+
+
+ No Telefon +
+
+ +
+
+ +
+
+ Nota +
+
+ +
+
+ +
+
+ Rugi Lelong +
+
+ +
+
+
+
+ +
+ + + + + + + + @if (isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn) +
+ +
+ + + @endif +
-
-
-
- No Telefon -
-
- -
-
-
-
- Nota -
-
- -
-
- -
-
- Rugi Lelong -
-
- -
-
-
-
+ - - +
+
+ + + +
+ +
+ - -@if(isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn && isset($kodcaw) && $kodcaw == 'X0301') - -
- -
- - -@endif -
- -
- -
- - - -
-
- - - -
- -
- - - - -
-
-
-
- {{$kakitangan['name']}} + {{ $kakitangan['name'] }} Tandatangan
- - - - - - - - - - - - - - -
BilNo RujukanTarikh PembiayaanTarikh MatangBaki Harga JualanBaki PembiayaanMarginTempohKeuntunganLelong
-
- + + + {{-- Sudah Tebus --}} + + + + + + + + + + + + +
BilNo RujukanTarikh Penyelesaian PembiayaanBaki PembiayaanMarginTempoh
+ + + + + + + + + + + + + + + + + +
BilNo RujukanTarikh LelongTarikh TuntutPembiayaanHarga JualJum Tuntut/BayarKeuntunganCaj LelongStatus TuntutanCetak
+ +
+ + + + +
+ - - {{-- Sudah Tebus --}} - - - - - - - - - - - - -
BilNo RujukanTarikh Penyelesaian PembiayaanBaki PembiayaanMarginTempoh
- - - - - - - - - - - - - - - - - -
BilNo RujukanTarikh LelongTarikh TuntutPembiayaanHarga JualJum Tuntut/BayarKeuntunganCaj LelongStatus TuntutanCetak
- -
- - - - -
- - - + - -