From bb8bcae8e82f66cea219bc5fc625e4912c4f6636 Mon Sep 17 00:00:00 2001 From: nurafrinaalimi16 Date: Mon, 10 Nov 2025 18:41:42 +0800 Subject: [PATCH] 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 0000000..c08a055 --- /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 a156c2f..7857386 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 eb6e6b8..63dc13b 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 1b8872f..7418912 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 0000000..c5a12bb --- /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 af251bc..3e35c0a 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');