diff --git a/.envy b/.envy
new file mode 100644
index 00000000..5c53f303
--- /dev/null
+++ b/.envy
@@ -0,0 +1,50 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=base64:WRTHcFTq5YARKVdA8YDUzsh9Ue8vD63ivgZgXNNBiGo=
+APP_DEBUG=true
+APP_URL=http://ujrahkopkb.erahn.com.my
+API_URL=http://apiujrah-kopkb.erahn.com.my
+#API_ARRAHNBID=http://lelong.test/api/
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=kaunter_erahn
+DB_USERNAME=spider
+DB_PASSWORD=G0dz!ll4
+
+BROADCAST_DRIVER=pusher
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+PUSHER_APP_ID=1132718
+PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
+PUSHER_APP_SECRET=421b61fb5a8ecce477a6
+
+MAIL_MAILER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS=null
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
+
+MYKAD_READER_PORT=8085
+MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
diff --git a/app/Console/Commands/updateImbangDuga.php b/app/Console/Commands/updateImbangDuga.php
new file mode 100644
index 00000000..0af8bd6c
--- /dev/null
+++ b/app/Console/Commands/updateImbangDuga.php
@@ -0,0 +1,81 @@
+option('all')){
+ $zone = 'all';
+ }else if($this->option('1')){
+ $zone = '1';
+ }else if ($this->option('2')){
+ $zone = '2';
+ }else if ($this->option('3')){
+ $zone = '3';
+ }
+
+ $monthly = Carbon::now();
+ $monthly = new Carbon();
+
+ $previousmonth = $monthly->subMonthsNoOverflow()->endOfMonth();
+ $tahun = $previousmonth->year;
+ $month = $previousmonth->month;
+
+ $response = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/reports/updateigall',[
+ 'month' => $month,
+ 'year' => $tahun,
+ ]);
+
+ if ($response->successful()) {
+ $data = $response->json();
+ Log::info('Imbang Duga update successful', [
+ 'month' => $month,
+ 'year' => $tahun,
+ 'data' => $data
+ ]);
+ $this->info('Imbang Duga update successful');
+ } else {
+ Log::error('API error', [
+ 'url' => $response->effectiveUri(),
+ 'status' => $response->status(),
+ 'body' => $response->body()
+ ]);
+ }
+ }
+}
diff --git a/app/Events/AutoSerahan.php b/app/Events/AutoSerahan.php
new file mode 100644
index 00000000..a6186363
--- /dev/null
+++ b/app/Events/AutoSerahan.php
@@ -0,0 +1,36 @@
+pengesahan = $pengesahan;
+ $this->id = $id;
+ $this->cawangan = $cawangan;
+ $this->kodlaluan = $kodlaluan;
+ }
+
+ public function broadcastOn()
+ {
+ return ['autoserahan-notice'];
+ }
+
+ public function broadcastAs()
+ {
+ return 'autoserahan-event';
+ }
+}
\ No newline at end of file
diff --git a/app/Events/NotifikasiAnggota.php b/app/Events/NotifikasiAnggota.php
new file mode 100644
index 00000000..64a1f25c
--- /dev/null
+++ b/app/Events/NotifikasiAnggota.php
@@ -0,0 +1,46 @@
+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/Events/NotifikasiKelulusan.php b/app/Events/NotifikasiKelulusan.php
index 3bee0306..0c537192 100644
--- a/app/Events/NotifikasiKelulusan.php
+++ b/app/Events/NotifikasiKelulusan.php
@@ -11,15 +11,16 @@ class NotifikasiKelulusan implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
- public $norujukan,$kelulusan,$siri,$komen,$teller;
+ public $norujukan,$kelulusan,$siri,$komen,$teller,$tagoperasi;
- public function __construct($norujukan,$kelulusan,$siri,$komen,$teller)
+ public function __construct($norujukan,$kelulusan,$siri,$komen,$teller,$tagoperasi = null)
{
$this->norujukan = $norujukan;
$this->kelulusan = $kelulusan;
$this->siri = $siri;
$this->komen = $komen;
$this->teller = $teller;
+ $this->tagoperasi = $tagoperasi;
}
public function broadcastOn()
diff --git a/app/Http/Controllers/CallCenterController.php b/app/Http/Controllers/CallCenterController.php
index f344853e..fe63b240 100644
--- a/app/Http/Controllers/CallCenterController.php
+++ b/app/Http/Controllers/CallCenterController.php
@@ -308,6 +308,16 @@ class CallCenterController extends Controller
$bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
return view('callcenter.pdfbycawdetailnotisperingatan', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
}
+ elseif($request->type == 'excel')
+ {
+ $current = Carbon::now();
+ $current = new Carbon();
+ $tarikh_cetak = $current->toDateString();
+ $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
+ $cawangan_detail=$cawangan[0];
+ $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
+ return view('callcenter.notisperingatanpertama_excel', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
+ }
return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
}
@@ -327,7 +337,23 @@ class CallCenterController extends Controller
}
}
- public function search(Request $request){
+ public function pelanggannew()
+ {
+ $search = false;
+
+ $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();
+ $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json();
+ if($auth_user->roles == 'admin'){
+ return view('admin.customer_index',compact('search','cawangan_info','bank','api_url','idtype','auth_user'));
+ }else{
+ return view('callcenter.indexnama',compact('search','cawangan_info','bank','api_url','idtype','auth_user'));
+ }
+ }
+
+ public function search(Request $request){
// dd($request->all());
$noic = $request->noic;
$idtype = $request->customerIDType;
@@ -355,6 +381,112 @@ class CallCenterController extends Controller
}
}
+ public function searchnama(Request $request)
+ {
+ $noic = $request->noic;
+ $kodcaw = $request->cawangan;
+ Session::put('noic', $noic);
+ Session::put('kodcaw', $kodcaw);
+
+ $api_url = config('api.url');
+
+ $request->session()->forget('page_reload');
+ $request->session()->forget('norujukan');
+
+ if (empty($noic)) {
+ return redirect()->route('arcc.pelanggannew')->with('failed', 'Maaf, Tiada Data Pelanggan...');
+ }
+
+ // ======================
+ // 1️⃣ Kalau isi NOIC sahaja
+ // ======================
+ if ($noic && !$kodcaw) {
+ $customersWithGadai = [];
+
+ // Ambil semua cawangan
+ $cawanganList = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/cawangan')
+ ->json();
+
+
+ if (is_array($cawanganList)) {
+ foreach ($cawanganList as $caw) {
+ $kod = $caw['kodcaw'];
+
+ // Check customer di cawangan tu
+ $customer = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/customers/' . $noic, ['kodcaw' => $kod])
+ ->json();
+
+
+ if (!empty($customer)) {
+ // Check rekod gadai
+ $nokp = !empty($customer['kpbaru']) ? $customer['kpbaru'] : (!empty($customer['kplama']) ? $customer['kplama'] : $noic);
+ $gadaiData = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/arcc/rekodgadai', [
+ 'nokp' => $nokp,
+ 'kodcaw' => $kod
+ ])
+ ->json();
+ // dump($gadaiData);
+
+ if (!empty($gadaiData['data']) && $gadaiData['status'] === true) {
+ $customersWithGadai[] = [
+ 'nama' => $customer['nama'] ?? '-',
+ 'kpbaru' => $customer['kpbaru'] ?? null,
+ 'kplama' => $customer['kplama'] ?? null,
+ 'customer' => $customer,
+ 'kodcaw' => $kod,
+ 'nama_cawangan' => $caw['details_caw'] ?? $kod,
+ // 'rekod_gadai' => $gadaiData
+
+ ];
+ }
+ }
+ }
+ }
+ // dd(true);
+
+ // Kalau lebih 1 → pilih pelanggan
+ if (count($customersWithGadai) >= 1) {
+ Session::put('customer_list', $customersWithGadai);
+ return redirect()->route('arcc.pilihpelanggan');
+ }
+
+ return redirect()->route('arcc.pelanggannew')->with('failed', 'Maaf, Tiada Data Pelanggan...');
+ }
+
+ // ======================
+ // 2️⃣ Kalau isi NOIC + Cawangan
+ // ======================
+ if ($noic && $kodcaw) {
+ $customer_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/customers/' . $noic, ['kodcaw' => $kodcaw])
+ ->json();
+
+ // Check sama ada $customer_info bukan null dan ada data penting seperti 'nama' (atau key lain)
+ if ($customer_info && !empty($customer_info['nama'])) {
+ Session::put('customer_info_arcc', $customer_info);
+
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/cawangan/' . $kodcaw)
+ ->json();
+
+ return redirect()->route('arcc.customer_info_nama', [
+ 'customer_info' => $customer_info,
+ 'cawangan_info' => $cawangan_info,
+ 'api_url' => $api_url
+ ]);
+ }
+
+ // Jika tiada data pelanggan di cawangan tu
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Maaf, Tiada Data Pelanggan di cawangan ini.');
+ }
+
+
+ // Boleh tambah kes lain (Nama sahaja, Nama + Cawangan) kalau nak
+ }
+
public function info(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
@@ -372,6 +504,54 @@ class CallCenterController extends Controller
return view('callcenter.' . $cawangan_info['version'] . '.info',compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','negeri'));
}
+
+ public function infonama(Request $request)
+ {
+ $auth_user = Auth::user();
+ $api_url = Session::get('api_url_arcc', config('api.url'));
+
+ $cawangan_info = Session::get('cawangan_info_arcc');
+ $customer_info = Session::get('customer_info_arcc');
+
+ // Kalau data kosong, fallback panggil API
+ if (!$cawangan_info) {
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/cawangan/' . Session::get('kodcaw'))
+ ->json();
+ }
+ if (!$customer_info) {
+ $customer_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/customers/' . Session::get('noic'))
+ ->json();
+
+ $customer_info = $response['data'] ?? [];
+ }
+
+ $bakilelong = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/bakilelong/cawangan/' . Session::get('kodcaw') . '/' . Session::get('noic') . '/baki')
+ ->json();
+
+ $rugilelong = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/bakilelong/cawangan/' . Session::get('kodcaw') . '/' . Session::get('noic') . '/rugi')
+ ->json();
+
+ $negeri = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/negeri/')
+ ->json();
+
+ $request->session()->forget('page_reload');
+ $request->session()->forget('norujukan');
+
+ return view('callcenter.' . $cawangan_info['version'] . '.info', compact(
+ 'cawangan_info',
+ 'api_url',
+ 'customer_info',
+ 'bakilelong',
+ 'rugilelong',
+ 'negeri'
+ ));
+ }
+
public function notisperingatankedua(Request $request){
$auth_user = Auth::user();
$api_url = config('api.url');
@@ -831,50 +1011,83 @@ class CallCenterController extends Controller
{
$auth_user = Auth::user();
- $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $request->norujukan)->json();
+ $norujukan = $request->norujukan;
+ $gadai = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/gadai/norujukan/' . $norujukan)
+ ->json();
- 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/'. $gadai[0][0]['kodcaw'],[
- "norujukan" => $history
- ])->json();
+ if (sizeof($gadai) > 0) {
+ $history = $gadai[0][0]['historygadaian'];
+ $dahtebus = $gadai[0][0]['sttebus'];
+ $kodcaw = $gadai[0][0]['kodcaw'];
+ // Kalau belum ada history, ambil rekod asal sahaja
+ if ($dahtebus == 'T') {
+
+ $tebusList = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/listpenebusanhistory/' . $kodcaw, [
+ 'norujukan' => $norujukan
+ ])
+ ->json();
- if(sizeof($gadai) > 0)
- {
- if($history == $gadai[0][0]['historygadaian'])
- $history = 0;
- else{
- array_push($arrayhist,["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'];
+ $tebus = collect($tebusList)->firstWhere('norujukan', $norujukan);
+
+ $arrayhist[] = [
+ "tagbaru" => $gadai[0][0]['tagbaru'] ?? 0,
+ "hargajualan" => $gadai[0][0]['hargajualan'] ?? '',
+ "pinjaman" => $tebus['pinjaman'] ?? 0,
+ "norujukan" => $norujukan,
+ "jenistebus" => $tebus['jenistebus'] ?? 0,
+ "jbg" => $tebus['jbg'] ?? 0,
+ "t_tebus" => $tebus['t_tebus'] ?? 0,
+ "bayaran_keuntungan" => $tebus['bayaran_keuntungan'] ?? 0,
+ "bayaran_pembiayaan" => $tebus['bayaran_pembiayaan'] ?? 0,
+ "duit_masuk" => $tebus['duit_masuk'] ?? 0,
+ "trans_type" => $tebus['trans_type'] ?? 0,
+ ];
+ } else {
+ // Loop ke belakang (rekod lepas-lepas)
+ while ($history != "0" && $history != '') {
+ $prevGadai = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/gadai/norujukan/' . $history)
+ ->json();
+
+ $prevKodcaw = $prevGadai[0][0]['kodcaw'] ?? null;
+
+ if (!$prevKodcaw) break;
+
+ $tebusList = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/listpenebusanhistory/' . $prevKodcaw, [
+ 'norujukan' => $history
+ ])
+ ->json();
+
+ $tebus = collect($tebusList)->firstWhere('norujukan', $history);
+
+ $arrayhist[] = [
+ "tagbaru" => $prevGadai[0][0]['tagbaru'] ?? 0,
+ "hargajualan" => $prevGadai[0][0]['hargajualan'] ?? '',
+ "pinjaman" => $tebus['pinjaman'] ?? 0,
+ "norujukan" => $history,
+ "jenistebus" => $tebus['jenistebus'] ?? 0,
+ "jbg" => $tebus['jbg'] ?? 0,
+ "t_tebus" => $tebus['t_tebus'] ?? 0,
+ "bayaran_keuntungan" => $tebus['bayaran_keuntungan'] ?? 0,
+ "bayaran_pembiayaan" => $tebus['bayaran_pembiayaan'] ?? 0,
+ "duit_masuk" => $tebus['duit_masuk'] ?? 0,
+ "trans_type" => $tebus['trans_type'] ?? 0,
+ ];
+
+ $nextHistory = $prevGadai[0][0]['historygadaian'] ?? '0';
+
+ // Elakkan infinite loop
+ if ($nextHistory == $history) {
+ break;
}
+
+ $history = $nextHistory;
}
-
- $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/'. $gadai[0][0]['kodcaw'],[
- "norujukan" => $norujukan
- ])->json();
-
-
- array_push($arrayhist,["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;
}
}
@@ -923,4 +1136,242 @@ class CallCenterController extends Controller
$pertambahpinjaman = 0.80;
return view('callcenter.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman'));
}
+
+
+ public function pilihPelanggan()
+ {
+ if (!Session::has('customer_list')) {
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Tiada pelanggan untuk dipilih.');
+ }
+
+ $kodcaw = Session::get('kodcaw'); // Ambil dari sesi
+
+ $cawangan_info = null;
+
+ // Kalau kodcaw ada, baru ambil cawangan_info
+ if ($kodcaw) {
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/cawangan/' . $kodcaw)
+ ->json();
+ // dd($cawangan_info );
+ }
+
+ return view('callcenter.pilihpelanggan', compact('cawangan_info'));
+ }
+
+
+
+ public function pilihPelangganProceed(Request $request)
+ {
+ $customerData = $request->input('customer');
+ $kodcaw = $request->input('kodcaw');
+
+ if ($customerData) {
+ $customer = json_decode(base64_decode($customerData), true);
+
+ // Merge data penuh supaya flat & senang guna di Blade
+ $customer_info = array_merge(
+ $customer['customer'] ?? $customer, // kalau ada sub-array 'customer', ambil dia
+ [
+ 'kodcaw' => $customer['kodcaw'] ?? $kodcaw,
+ 'nama_cawangan' => $customer['nama_cawangan'] ?? '',
+ ]
+ );
+
+ // Simpan dalam session
+ Session::put('customer_info_arcc', $customer_info);
+ Session::put('kodcaw', $kodcaw);
+ Session::put('noic', $customer_info['kpbaru'] ?? $customer_info['kplama']);
+
+ $api_url = config('api.url');
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/cawangan/' . $kodcaw)->json();
+
+ // Simpan juga dalam session
+ Session::put('cawangan_info_arcc', $cawangan_info);
+ Session::put('api_url_arcc', $api_url);
+
+ return redirect()->route('arcc.customer_info');
+ }
+
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Pelanggan tidak sah dipilih.');
+ }
+
+ public function ajaxSearchCustomer(Request $request)
+ {
+ $search = strtolower($request->query('search', ''));
+ $customers = collect(session('customer_list', []))
+ ->filter(function ($customer) use ($search) {
+ return strpos(strtolower($customer['nama']), $search) !== false ||
+ strpos(strtolower($customer['nokp']), $search) !== false;
+ });
+
+ return view('callcenter.partials.customertable', ['customers' => $customers])->render();
+ }
+ public function cariannama(Request $request)
+ {
+ $nama = $request->nama;
+ $api_url = config('api.url');
+
+ if (empty($nama)) {
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Maaf, Tiada Data Pelanggan...');
+ }
+
+ session(['last_search' => $request->all()]);
+
+ // Clear session lama
+ $request->session()->forget(['page_reload', 'norujukan']);
+
+ // 1. Call API carian nama
+ $customers = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/customers', ['nama' => $nama])
+ ->json();
+
+
+ if (!is_array($customers) || empty($customers)) {
+ return redirect()->route('arcc.pelanggannew')->with('failed', 'Tiada pelanggan dijumpai.');
+ }
+
+ // 2. Ambil senarai cawangan
+ $cawanganList = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/cawangan')
+ ->json();
+
+ if (!is_array($cawanganList) || empty($cawanganList)) {
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Tiada senarai cawangan.');
+ }
+
+ // 3. Kumpul semua IC (kpbaru / kplama) dari senarai customer
+ $nokpList = collect($customers)
+ ->map(function ($customer) {
+ return $customer['kpbaru'] ?? $customer['kplama'] ?? null;
+ })
+ ->filter()
+ ->unique()
+ ->values()
+ ->toArray();
+
+
+ $customersWithGadai = collect();
+
+ foreach ($cawanganList as $caw) {
+ $kod = $caw['kodcaw'];
+
+ $response = Http::withOptions(['verify' => config('app.api_verify')])
+ ->post($api_url . '/arcc/rekodgadai-batch', [
+ 'nokp_list' => $nokpList,
+ 'kodcaw' => $kod
+ ]);
+
+ if ($response->failed()) {
+ continue;
+ }
+
+ $data = $response->json();
+
+ if (!empty($data['data']) && is_array($data['data'])) {
+ foreach ($data['data'] as $rekod) {
+ $customer = collect($customers)->first(function ($c) use ($rekod) {
+ return ($c['kpbaru'] ?? $c['kplama']) === $rekod['nokp'];
+ });
+
+ if ($customer) {
+ $customersWithGadai->put(
+ $customer['kpbaru'] ?? $customer['kplama'], // guna IC as key
+ [
+ 'nama' => $customer['nama'] ?? '-',
+ 'kpbaru' => $customer['kpbaru'] ?? null,
+ 'kplama' => $customer['kplama'] ?? null,
+ 'customer' => $customer,
+ 'kodcaw' => $kod,
+ 'nama_cawangan' => $caw['details_caw'] ?? $kod
+ ]
+ );
+ }
+ }
+ }
+ }
+
+ $customersWithGadai = $customersWithGadai
+ ->sortBy('nama') // sort ikut nama A→Z
+ ->values(); // reset key semula
+
+
+ // 5. Return ikut result
+ if ($customersWithGadai->count() > 1) {
+ Session::put('customer_list', $customersWithGadai);
+ return redirect()->route('arcc.pilihpelanggannama');
+ } elseif ($customersWithGadai->count() === 1) {
+ $singleCustomer = $customersWithGadai->first();
+ Session::put('customer_info_arcc', $singleCustomer['customer']);
+
+ return redirect()->route('arcc.customer_info', [
+ 'customer_info' => $singleCustomer['customer'],
+ 'cawangan_info' => [
+ 'kodcaw' => $singleCustomer['kodcaw'],
+ 'nama_cawangan' => $singleCustomer['nama_cawangan']
+ ],
+ 'api_url' => $api_url
+ ]);
+ }
+
+ return redirect()->route('arcc.pelanggannew')->with('failed', 'Tiada pelanggan dengan rekod gadai.');
+ }
+
+ public function pilihPelanggannama()
+ {
+ if (!Session::has('customer_list')) {
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Tiada pelanggan untuk dipilih.');
+ }
+
+ $kodcaw = Session::get('kodcaw'); // Ambil dari sesi
+
+ $cawangan_info = null;
+
+ // Kalau kodcaw ada, baru ambil cawangan_info
+ if ($kodcaw) {
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/cawangan/' . $kodcaw)
+ ->json();
+ // dd($cawangan_info );
+ }
+
+ return view('callcenter.pilihpelanggannama', compact('cawangan_info'));
+ }
+
+ public function pilihPelangganProceednama(Request $request)
+ {
+ $customerData = $request->input('customer');
+ $kodcaw = $request->input('kodcaw');
+
+ if ($customerData) {
+ $customer = json_decode(base64_decode($customerData), true);
+
+ // Merge data penuh supaya flat & senang guna di Blade
+ $customer_info = array_merge(
+ $customer['customer'] ?? $customer, // kalau ada sub-array 'customer', ambil dia
+ [
+ 'kodcaw' => $customer['kodcaw'] ?? $kodcaw,
+ 'nama_cawangan' => $customer['nama_cawangan'] ?? '',
+ ]
+ );
+
+ // Simpan dalam session
+ Session::put('customer_info_arcc', $customer_info);
+ Session::put('kodcaw', $kodcaw);
+ Session::put('noic', $customer_info['kpbaru'] ?? $customer_info['kplama']);
+
+ $api_url = config('api.url');
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/cawangan/' . $kodcaw)->json();
+
+ // Simpan juga dalam session
+ Session::put('cawangan_info_arcc', $cawangan_info);
+ Session::put('api_url_arcc', $api_url);
+
+ return redirect()->route('arcc.customer_info');
+ }
+
+ return redirect()->route('arcc.pelanggan')->with('failed', 'Pelanggan tidak sah dipilih.');
+ }
}
diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php
index c5b978d0..40fee0c9 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,80 +39,241 @@ 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';
+ // Logik papar butang "Assign sebagai Anggota"
+ $showAssignAnggotaBtn = false;
+ $noic = Session::get('noic');
- if($request->tebus_auto_tawarruq_berjaya === 'true'){
+ if (!empty($customer_info)) {
+
+ $anggota_info = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/customer/anggota', [
+ 'noic' => $noic
+ ])
+ ->json();
+ $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;
+ }
+ }
+
+ $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'));
+ 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,
+ // ]);
+
+ 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'
+ ));
}
}
@@ -119,9 +281,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);
@@ -145,60 +307,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,
@@ -220,60 +380,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,
- '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']
@@ -281,12 +498,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']
@@ -294,17 +511,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']
@@ -312,12 +529,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']
@@ -325,23 +542,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 e45f110b..e99391e0 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,19 @@ 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();
+
+ //Log::info('[DEBUG-GADAI] Request Input Data', $request->all());
+
+ $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 +181,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 +190,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,21 +200,22 @@ class GadaianController extends Controller
'ujrah' => $ujrah,
'onepercent' => $onepercent,
'margin_semasa' => $margin_pinjaman,
+ 'nokp' => $request->nokp,
'kadar_rebate' => $request->kadar_rebate,
'rebate' => $request->rebate
])->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');
@@ -212,13 +224,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;
@@ -228,7 +241,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),
@@ -236,7 +249,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,
@@ -247,29 +260,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();
@@ -280,74 +295,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];
@@ -359,17 +375,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'));
}
}
@@ -378,30 +394,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();
- if(sizeof($transaction) != 0)
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
+
+ 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'));
+ 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'));
+ 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 +429,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();
+ $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'));
+ 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'));
+ 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 +466,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 +495,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,42 +539,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();
- $transaction_keuntungan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/transaksi_keuntungan_latest/'. $id)->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();
// 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'));
+ return view('print.resittebusautotawarruq', compact('transaction_tebus', 'transaction', 'gadai', 'customers_info', 'penebusan', 'wakil', 'totaltransaction', 'transaction_keuntungan', 'khazanah_user', 'cawangan_info'));
}
public function resittebus($id)
@@ -565,55 +583,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'));
}
}
@@ -622,38 +639,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)
@@ -661,32 +675,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)
@@ -694,97 +706,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();
+
// 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();
+ $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(sizeof($wakil) != 0)
- $wakil = $wakil[0];
- }
- 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('totalrebate','khazanah_user','totalBayaranAnsuran','transaction_tebus','gadai','customers_info','penebusan','wakil'));
+ 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///
@@ -796,18 +804,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 = '';
}
@@ -822,11 +827,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)
@@ -836,7 +841,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'] : '-';
@@ -849,14 +854,99 @@ class GadaianController extends Controller
'nilaimarhun' => $nilaimarhun,
'berat' => $berat,
'margin' => $percentpinj,
- 'teller' => $auth_user['name']
+ 'teller' => $auth_user['name'],
+ 'komen' => $request->komen,
+ 'status' => $request->status,
+ 'ansuran' => $request->ansuran,
+ '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/HapusAnsuranController.php b/app/Http/Controllers/HapusAnsuranController.php
new file mode 100644
index 00000000..7c481f78
--- /dev/null
+++ b/app/Http/Controllers/HapusAnsuranController.php
@@ -0,0 +1,63 @@
+middleware('auth');
+ }
+
+ public function createApproval(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();
+
+ $norujukan = $request->norujukan;
+ $komen = $request->komen;
+ $marg = $request->margin;
+ $ber = $request->berat;
+ $nm = $request->nilaimarhun;
+ $status = $request->status;
+ $jumpinjam = $request->jumpinjam;
+ $teller = $request->teller;
+ $ansuran = $request->ansuran;
+
+ // Get the approval data
+ $approvalData = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/hapusansuran/create', [
+ 'cawangan' => $auth_user['cawangan'],
+ "norujukan" => $norujukan,
+ "komen" => $komen,
+ "margin" => $marg,
+ "berat" => $ber,
+ "nilaimarhun" => $nm,
+ "status" => $status,
+ "jumpinjam" => $jumpinjam,
+ "teller" => $teller,
+ "ansuran" => $ansuran,
+ ])
+ ->json();
+
+ if (isset($approvalData['status']) && $approvalData['status'] === 'success') {
+ Session::flash('success', 'Kelulusan berjaya dibuat.');
+ return redirect()->route('operasi.kelulusan');
+ } else {
+ Session::flash('error', 'Gagal membuat kelulusan. Sila cuba lagi.');
+ return redirect()->back();
+ }
+
+ }
+
+
+}
diff --git a/app/Http/Controllers/KhazanahController.php b/app/Http/Controllers/KhazanahController.php
index 98eca069..22d1f834 100644
--- a/app/Http/Controllers/KhazanahController.php
+++ b/app/Http/Controllers/KhazanahController.php
@@ -13,6 +13,7 @@ use App\Events\NotifikasiKelulusan;
use App\Events\NotifikasiUbahHapus;
use App\Events\NotifikasiAGH;
use App\Events\NotifikasiPetiBesi;
+use App\Events\AutoSerahan;
use App\User;
use App\Cawangan;
@@ -215,7 +216,11 @@ class KhazanahController extends Controller
$denominasi=$denominasi[0];
}
- return view('khazanah.pendahuluanserahanmain',compact('cawangan_info','listgldetail','denominasi'));
+ $proses = Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url_koop') .'/api/autoserahan/checkapproval',[
+ 'pc_name' => $auth_user['name']
+ ])->json();
+
+ return view('khazanah.pendahuluanserahanmain',compact('cawangan_info','listgldetail','denominasi','proses'));
}
@@ -570,15 +575,9 @@ class KhazanahController extends Controller
{
$auth_user = Auth::user();
- $api_url = config('api.url');
-
$norujukan = $request->norujukan;
$pelulus = $request->pelulus;
- $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
-
- $getlulus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/GetLulus/'. $auth_user['cawangan'],['norujukan' => $norujukan])->json();
-
if($request->khazanah != null)
{
if($request->batal != null)
@@ -587,22 +586,32 @@ class KhazanahController extends Controller
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan,[
"pembatalan" => $request->batal,
"komen" => $request->komenubahhapus,
- "khazanah" => $request->khazanah
+ "khazanah" => $request->khazanah,
+ "recno" => isset($request->recno) ? $request->recno : null,
])->json();
if($updatelulus)
{
- event(new NotifikasiUbahHapus($norujukan,"batal",$request->komenubahhapus,$request->teller));
+ if(isset($request->tagoperasi) && $request->tagoperasi == 1){
+ event(new NotifikasiKelulusan($norujukan,"batal",$request->recno,$request->komenubahhapus,$request->teller));
+ }else{
+ event(new NotifikasiUbahHapus($norujukan,"batal",$request->komenubahhapus,$request->teller));
+ }
}
}else{
$updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusan/kepohonan/' . $auth_user['cawangan'] . '/' . $norujukan,[
- "khazanah" => $request->khazanah
+ "khazanah" => $request->khazanah,
+ "recno" => isset($request->recno) ? $request->recno : null,
])->json();
if($updatelulus)
{
- event(new NotifikasiUbahHapus($norujukan,"lulus","tiada",$request->teller));
+ if(isset($request->tagoperasi) && $request->tagoperasi == 1){
+ event(new NotifikasiKelulusan($norujukan,"lulus",$request->recno,$request->komenubahhapus,$request->teller,1));
+ }else{
+ event(new NotifikasiUbahHapus($norujukan,"lulus","tiada",$request->teller));
+ }
}
}
}
@@ -3072,7 +3081,9 @@ class KhazanahController extends Controller
$cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$cawangan_detail=$cawangan[0];
- return view('print.laporan_pendahuluanserahan', compact('pendser','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url'));
+ $jenisLaporan = $request->radpendser;
+
+ return view('print.laporan_pendahuluanserahan', compact('pendser','cawangan_detail','tarikh_cetak','mula_date','hingga_date','api_url','jenisLaporan'));
}
public function laporanDenominasi()
@@ -4117,9 +4128,13 @@ class KhazanahController extends Controller
if($request->radaktif === 'aktif')
{
- $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],
+ // $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],
+ $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],
['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
- return view('print.laporan_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
+ $stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all();
+ // dd($stokaudit);
+ // return view('print.laporan_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
+ return view('print.laporan_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
}
}
@@ -4137,11 +4152,13 @@ class KhazanahController extends Controller
$cawangan=Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$auth_user['cawangan'])->json();
$cawangan_detail=$cawangan[0];
- $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
-
+ // $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
+ $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
+ $stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all();
if($request->type == 'excel')
{
- return view('excel.excel_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
+ // return view('excel.excel_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
+ return view('excel.excel_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
}
elseif($request->type == 'whatsapp')
{
@@ -4160,8 +4177,11 @@ class KhazanahController extends Controller
}
else
{
- $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
- return view('pdf.pdf_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
+ // $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhas/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
+ $stokaudit = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/api/stokauditkhasbynorujukan/aktif/'. $auth_user['cawangan'],['daritempoh' => $daritempoh, 'hinggatempoh' => $hinggatempoh])->json();
+ $stokaudit = collect($stokaudit)->sortByDesc('norujukan')->values()->all();
+ // return view('pdf.pdf_stokauditkhas', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
+ return view('pdf.pdf_stokauditkhasbysag', compact('stokaudit','cawangan_detail','tarikh_cetak','daritempoh','hinggatempoh','api_url','cawangan_info'));
}
}
@@ -4291,4 +4311,117 @@ class KhazanahController extends Controller
$val = preg_replace('/\.(?=.*\.)/', '', $val);
return floatval($val);
}
+
+
+ public function AutoSerahan(Request $request)
+ {
+ if(isset($request->do_delete) && $request->do_delete == true){
+
+ $teller = $request->teller;
+
+ if ($teller !== html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8'))
+ $teller = html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8');
+
+ $call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
+ ->post(config('api.url_koop') . '/api/autoserahan/delete', [
+ 'recno' => $request->recno,
+ 'version' => 'v3',
+ 'kodcaw' => $request->kodcaw,
+ 'teller' => $teller,
+ 'amaun' => $request->amaun,
+ ])->json();
+
+ return response()->json([
+ 'status' => 'success',
+ 'message' => 'Approval process completed successfully',
+ 'id' => $call_approval_v3['id'],
+ ]);
+
+ }
+
+ $teller = $request->arraysend['teller'];
+
+ if ($teller !== html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8'))
+ $teller = html_entity_decode($teller, ENT_QUOTES | ENT_HTML5, 'UTF-8');
+
+
+ // Step 1: Call API v3 First
+ $call_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
+ ->post(config('api.url_koop') . '/api/autoserahan/create', [
+ 'kodcaw' => $request->arraysend['kodcaw'],
+ 'teller' => $teller,
+ 'amaun' => $request->arraysend['amaun'],
+ 'txtring1' => $request->arraysend['ambilanring1'],
+ 'txtring5' => $request->arraysend['ambilanring5'],
+ 'txtring10' => $request->arraysend['ambilanring10'],
+ 'txtring20' => $request->arraysend['ambilanring20'],
+ 'txtring50' => $request->arraysend['ambilanring50'],
+ 'txtring100' => $request->arraysend['ambilanring100'],
+ 'txtsen1' => $request->arraysend['ambilansen1'],
+ 'txtsen5' => $request->arraysend['ambilansen5'],
+ 'txtsen10' => $request->arraysend['ambilansen10'],
+ 'txtsen20' => $request->arraysend['ambilansen20'],
+ 'txtsen50' => $request->arraysend['ambilansen50'],
+ 'jenis' => 'pendahuluan',
+ 'action' => 'create',
+ 'version' => 'v3',
+ ])->json();
+
+ // Check if API v3 was successful before proceeding
+ if (!isset($call_approval_v3['id']) || $call_approval_v3['status'] !== 'success') {
+ return response()->json([
+ 'status' => 'failed',
+ 'message' => 'API v3 failed. Cannot proceed to API v2.',
+ 'error' => $call_approval_v3
+ ], 400);
+ }
+
+ // Step 2: Call API v2 using response from API v3
+ $call_approval_v2 = Http::withOptions(['verify' => config('app.api_verify')])
+ ->post(config('api.url_pkb') . '/api/autoserahan/create', [
+ 'id' => $call_approval_v3['id'], // Use ID from API v3 response
+ 'kodcaw' => $request->arraysend['kodcaw'],
+ 'teller' => $teller,
+ 'amaun' => $request->arraysend['amaun'],
+ 'txtring1' => $request->arraysend['ambilanring1'],
+ 'txtring5' => $request->arraysend['ambilanring5'],
+ 'txtring10' => $request->arraysend['ambilanring10'],
+ 'txtring20' => $request->arraysend['ambilanring20'],
+ 'txtring50' => $request->arraysend['ambilanring50'],
+ 'txtring100' => $request->arraysend['ambilanring100'],
+ 'txtsen1' => $request->arraysend['ambilansen1'],
+ 'txtsen5' => $request->arraysend['ambilansen5'],
+ 'txtsen10' => $request->arraysend['ambilansen10'],
+ 'txtsen20' => $request->arraysend['ambilansen20'],
+ 'txtsen50' => $request->arraysend['ambilansen50'],
+ 'jenis' => 'serahan',
+ 'version' => 'v2',
+ ])->json();
+
+ $call_set_approval_v3 = Http::withOptions(['verify' => config('app.api_verify')])
+ ->put(config('api.url_koop') . '/api/autoserahan/setapproval', [
+ 'jenis' => 'create',
+ 'id' => $call_approval_v3['id'],
+ 'deno_id' => $call_approval_v2['denoid']
+ ])->json();
+
+
+ // Step 3: Check if both API v3 and API v2 were successful
+ if ($call_approval_v2['status'] === 'success' && $call_approval_v3['status'] === 'success' && $call_set_approval_v3['status'] === 'success') {
+ event(new AutoSerahan("Operasi",$call_approval_v3['id'],$request->arraysend['kodcaw'],$teller));
+
+ return response()->json([
+ 'status' => 'success',
+ 'message' => 'Approval process completed successfully',
+ 'id' => $call_approval_v3['id'],
+ ]);
+ } else {
+ return response()->json([
+ 'status' => 'failed',
+ 'message' => 'One of the approvals failed',
+ ], 400);
+ }
+ }
+
+
}
diff --git a/app/Http/Controllers/OperasiController.php b/app/Http/Controllers/OperasiController.php
index 11a2e510..74189123 100644
--- a/app/Http/Controllers/OperasiController.php
+++ b/app/Http/Controllers/OperasiController.php
@@ -7,6 +7,7 @@ namespace App\Http\Controllers;
use App\Events\OperasiNotice;
use App\Events\StatusLiked;
use App\Events\NotifikasiKelulusan;
+use App\Events\NotifikasiAnggota;
use App\Events\Dashboard\KomoditiNotify;
use Illuminate\Support\Facades\Auth;
@@ -16,6 +17,7 @@ use Illuminate\Support\Facades\Hash;
use Carbon\Carbon;
+use Illuminate\Support\Facades\Log;
class OperasiController extends Controller
{
@@ -24,26 +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'] ?? '-')]);
}
}
- 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)
@@ -53,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 = '';
}
@@ -78,49 +80,148 @@ class OperasiController extends Controller
$norujukan = $request->norujukan;
- if($request->pembatalan == null)
- {
- $updatelulus = Http::withOptions(['verify' => config('app.api_verify')])->put(config('api.url') . '/api/UpdateKelulusanKomen/' . $request->kodcaw . '/' . $norujukan,[
- "komen" => $request->komenkelulusan,
- 'siri' => $request->siri
- ])->json();
+ 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,[
- 'sahkan' => 1,
- 'namaoperasi' => $request->namaoperasi,
- 'siri' => $request->siri
- ])->json();
-
- if($updatelulus)
- {
- event(new NotifikasiKelulusan($norujukan,"lulus",$request->siri,$request->komenkelulusan,$request->teller));
+ $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', [
+ 'siri' => $request->siri,
+ "kodcaw" => $request->kodcaw,
+ "norujukan" => $request->norujukan,
+ 'namaoperasi' => $request->namaoperasi,
+ 'sahkan' => 1,
+ ])->json();
}
- }
- else
- {
- $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,[
- 'sahkan' => 2,
- 'namaoperasi' => $request->namaoperasi,
- 'siri' => $request->siri
- ])->json();
- if($updatelulus)
- {
- event(new NotifikasiKelulusan($norujukan,"batal",$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, [
+ "komen" => $request->komenkelulusan,
+ 'siri' => $request->siri
+ ])->json();
+
+ $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', [
+ 'siri' => $request->siri,
+ "kodcaw" => $request->kodcaw,
+ "norujukan" => $request->norujukan,
+ 'namaoperasi' => $request->namaoperasi,
+ 'sahkan' => 2,
+ ])->json();
+ }
+
+ 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();
@@ -131,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;
}
@@ -158,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 = [];
@@ -216,29 +369,36 @@ class OperasiController extends Controller
$kelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/ListOperasiKelulusan/')->json();
- foreach($kelulusan as $index=>$k)
- {
- foreach($k['kelulusanall'] as $index1=>$kel)
- {
- $komen = explode("|",$kel['komen']);
+ foreach ($kelulusan as $index => $k) {
+ foreach ($k['kelulusanall'] as $index1 => $kel) {
+ $komen = explode("|", $kel['komen']);
- $results=array_search("",$komen,true);
- if($results !== false) {
+ $results = array_search("", $komen, true);
+ if ($results !== false) {
unset($komen[$results]);
}
- array_push($arraykelulusan,['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'),'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]);
-
+ array_push($arraykelulusan, ['norujukan' => $kel['norujukan'], 'pinjaman' => $kel['jumpinj'], 'nilaimarhun' => ($komen[1] ?? $kel['nilaimarhun'] ?? '-'), 'berat' => ($komen[2] ?? $kel['berat'] ?? '-'), 'margin' => ($komen[3] ?? $kel['margin'] ?? '-'), 'komen' => ($komen[0] ?? $kel['komen'] ?? '-'), 'status' => ($kel['status'] ?? '-'), 'pelulus' => $kel['operasi'],]);
}
}
- return view('operasi.rekodtelahlulus',compact('cawangan_info','api_url','arraykelulusan'));
-
+ return view('operasi.rekodtelahlulus', compact('cawangan_info', 'api_url', 'arraykelulusan'));
}
public function notifyKomoditi()
{
$auth_user = Auth::user();
- event(new KomoditiNotify('lulus',$auth_user['cawangan']));
+ event(new KomoditiNotify('lulus', $auth_user['cawangan']));
+ }
+
+ public function kelulusananggota(Request $request)
+ {
+ $auth_user = Auth::user();
+ $api_url = config('api.url');
+ $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])->json();
+
+ $arraykelulusan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/list/approval/anggota')->json();
+
+ return view('operasi.kelulusan_anggota', compact('cawangan_info', 'api_url', 'arraykelulusan'));
}
}
diff --git a/app/Imports/AnggotaImport.php b/app/Imports/AnggotaImport.php
new file mode 100644
index 00000000..c5a12bb1
--- /dev/null
+++ b/app/Imports/AnggotaImport.php
@@ -0,0 +1,24 @@
+ $row['noic'],
+ 'nama' => $row['nama'],
+ 'status' => $row['status'] ?? 'aktif',
+ ]);
+ }
+}
diff --git a/app/Services/ImbangdugaServices.php b/app/Services/ImbangdugaServices.php
index f4909ccb..bd490fbe 100644
--- a/app/Services/ImbangdugaServices.php
+++ b/app/Services/ImbangdugaServices.php
@@ -287,7 +287,12 @@ class ImbangdugaServices
foreach($response as $variable=>$res)
{
if($variable !== 'recno' && $variable !== 'kodcaw' && $variable !== 'tarikh' && $variable !== 'totalharta' && $variable !== 'totaltanggungan' && $variable !== 'tagtally' && $variable !== 'created_at' && $variable !== 'updated_at'){
- $imbangdugadata = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first()->toArray();
+ //$imbangdugadata = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first()->toArray();
+ if($variable == 'bakilelong'){
+ $imbangdugadata = ImbangDuga::orderBy('glcode')->where([['single_var',$variable],['variable',$variable]])->first()->toArray();
+ }else{
+ $imbangdugadata = ImbangDuga::orderBy('glcode')->where('variable',$variable)->orWhere('single_var',$variable)->first()->toArray();
+ }
if($imbangdugadata['jenis'] == 'harta'){
array_push($array_harta,['glcode' => $imbangdugadata['glcode'],'descpt' => $imbangdugadata['descpt'],'amaun' => $res]);
}else{
diff --git a/app/View/Components/AutoSerah.php b/app/View/Components/AutoSerah.php
new file mode 100644
index 00000000..85365bc1
--- /dev/null
+++ b/app/View/Components/AutoSerah.php
@@ -0,0 +1,28 @@
+ env('API_URL')
+ 'url' => env('API_URL'),
+ 'url_koop' => env('API_URL_KOOP','https://apiujrah.erahn.com.my'),
+ 'url_pkb' => env('API_URL_PKB','http://localhost:8000'),
];
\ No newline at end of file
diff --git a/config/redeemoption.php b/config/redeemoption.php
index 6467b1ea..ed814c80 100644
--- a/config/redeemoption.php
+++ b/config/redeemoption.php
@@ -1,9 +1,10 @@
env('ENABLE_TAMBAHPINJAM',1),
- 'enable_separuh' => env('ENABLE_SEPARUH',1),
- 'enable_pembiayaansemula' => env('ENABLE_AUTOTAWARRUQ',1),
+ 'enable_tambahpinjam' => env('ENABLE_TAMBAHPINJAM',0),
+ 'enable_separuh' => env('ENABLE_SEPARUH',0),
+ 'enable_pembiayaansemula' => env('ENABLE_AUTOTAWARRUQ',0),
// 'enable_specific_block' => env('ENABLE_BLOCK',0),
- 'cawangan_block' => explode(',', env('CAWANGAN_BLOCK', '1STOP,010915,010219,011013,011412,010621,010620,010617,010618')),
+ 'ansuran_block' => explode(',', env('ANSURAN_BLOCK', '011227')),
+ 'cawangan_block' => explode(',', env('CAWANGAN_BLOCK', 'KB2,WCY,1STOP,020301,WB,ALS,020306,ARM,APM,010311,GC,JLI,ARP,010621,011227,010620,010617,010915,011228,010219,011229,011230,011013,011412,011231,011232,020303,010618,KB1,011238,011235,010136,011233,011234,011237')),
];
?>
diff --git a/env.docker.example/base.env b/env.docker.example/base.env
new file mode 100644
index 00000000..6cb310f7
--- /dev/null
+++ b/env.docker.example/base.env
@@ -0,0 +1,50 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=base64:FFRogE6mJj8FaDSSHl/KpXpzqi2M+P4plxVSRgVM8JI=
+APP_DEBUG=true
+APP_URL=http://kaunterv2.localhost
+API_URL=http://apiv2.localhost
+API_ARRAHNBID=http://lelong.localhost/api/
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=database_zone2
+DB_PORT=3306
+DB_DATABASE=kaunterpkb
+DB_USERNAME=root
+DB_PASSWORD=secret
+
+BROADCAST_DRIVER=pusher
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+PUSHER_APP_ID=1132718
+PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
+PUSHER_APP_SECRET=421b61fb5a8ecce477a6
+
+MAIL_MAILER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS=null
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
+
+MYKAD_READER_PORT=8085
+MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
diff --git a/env.docker.example/kgmk.env b/env.docker.example/kgmk.env
new file mode 100644
index 00000000..e56a06cc
--- /dev/null
+++ b/env.docker.example/kgmk.env
@@ -0,0 +1,50 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=base64:FFRogE6mJj8FaDSSHl/KpXpzqi2M+P4plxVSRgVM8JI=
+APP_DEBUG=true
+APP_URL=http://kaunterv2.localhost
+API_URL=http://apiv2.kgmk.localhost
+API_ARRAHNBID=http://lelong.localhost/api/
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=database_zone_franchise
+DB_PORT=3306
+DB_DATABASE=kaunter_koopguru
+DB_USERNAME=root
+DB_PASSWORD=secret
+
+BROADCAST_DRIVER=pusher
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+PUSHER_APP_ID=1132718
+PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
+PUSHER_APP_SECRET=421b61fb5a8ecce477a6
+
+MAIL_MAILER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS=null
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
+
+MYKAD_READER_PORT=8085
+MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
diff --git a/env.docker.example/krk.env b/env.docker.example/krk.env
new file mode 100644
index 00000000..c56d8d65
--- /dev/null
+++ b/env.docker.example/krk.env
@@ -0,0 +1,50 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=base64:FFRogE6mJj8FaDSSHl/KpXpzqi2M+P4plxVSRgVM8JI=
+APP_DEBUG=true
+APP_URL=http://kaunterv2.localhost
+API_URL=http://apiv2.krk.localhost
+API_ARRAHNBID=http://lelong.localhost/api/
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=mysql
+DB_HOST=database_zone_franchise
+DB_PORT=3306
+DB_DATABASE=kaunter_krk
+DB_USERNAME=root
+DB_PASSWORD=secret
+
+BROADCAST_DRIVER=pusher
+CACHE_DRIVER=file
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+PUSHER_APP_ID=1132718
+PUSHER_APP_KEY=26b0ec2f297f94b7aa9b
+PUSHER_APP_SECRET=421b61fb5a8ecce477a6
+
+MAIL_MAILER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS=null
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
+
+MYKAD_READER_PORT=8085
+MYKAD_READER_ENABLED_CAWANGAN='' # IF NO CAWANGAN STATED, ALL CAWANGAN IS ENABLED
diff --git a/public/js/notification.js b/public/js/notification.js
index 58dc2537..e24df5a0 100644
--- a/public/js/notification.js
+++ b/public/js/notification.js
@@ -17,14 +17,14 @@ const Toast = Swal.mixin({
const notify = new NotifyKhazanah(channel,event,apikey);
notify.channel_subscribe((data) => {
- console.log(data);
- Toast.fire({
- icon: 'info',
- title: 'Permohonan Kelulusan Wang Tunai Teller!'
- });
const currentPath = window.location.pathname;
if(window.kodcaw == data.cawangan){
+ Toast.fire({
+ icon: 'info',
+ title: 'Permohonan Kelulusan Wang Tunai Teller!'
+ });
+
if (currentPath === "/home") {
notify_main();
} else if (currentPath === "/menu") {
diff --git a/resources/views/auth/v2/login.blade.php b/resources/views/auth/v2/login.blade.php
index e63913e8..164d9d3a 100644
--- a/resources/views/auth/v2/login.blade.php
+++ b/resources/views/auth/v2/login.blade.php
@@ -81,8 +81,10 @@
diff --git a/resources/views/callcenter/bycawdetailnotisperingatan.blade.php b/resources/views/callcenter/bycawdetailnotisperingatan.blade.php
index 41d5cbf8..7f34b8c4 100644
--- a/resources/views/callcenter/bycawdetailnotisperingatan.blade.php
+++ b/resources/views/callcenter/bycawdetailnotisperingatan.blade.php
@@ -230,17 +230,17 @@
dom: 'Bfrtip',
buttons: [
- // {
- // className: 'btn btn-outline-success pl-4 pr-4 btn-sm export',
- // target: "_blank",
- // titleAttr: 'Export to Excel',
- // text: '
EXCEL ',
- // action: function ( e, dt, node, config ) {
- // $('#typedonwload').val('excel');
- // $("#exportpdf").submit();
- // // window.open("_blank");
- // }
- // },
+ {
+ className: 'btn btn-outline-success pl-4 pr-4 btn-sm export',
+ target: "_blank",
+ titleAttr: 'Export to Excel',
+ text: '
EXCEL ',
+ action: function ( e, dt, node, config ) {
+ $('#typedonwload').val('excel');
+ $("#exportpdf").submit();
+ // window.open("_blank");
+ }
+ },
{
className: 'btn btn-outline-danger pl-4 pr-4 btn-sm export',
titleAttr: 'Export to PDF',
@@ -251,22 +251,22 @@
}
},
- {
- className: 'btn btn-outline-info pl-4 pr-4 btn-sm export',
- target: "_blank",
- titleAttr: 'Blast Whatsapp',
- text: '
WHATSAPP & SMS ',
- action: function ( e, dt, node, config ) {
- // $('#typedonwload').val('whatsapp');
- // $("#exportpdf").submit();
- $("#exportpdf").click(function() {
- $('[data-toggle="tooltip"]').tooltip()
- alert("ADAKAH ANDA PASTI?");
- $('#typedonwload').val('whatsapp');
- $("#exportpdf").submit();
- });
- }
- }
+ // {
+ // className: 'btn btn-outline-info pl-4 pr-4 btn-sm export',
+ // target: "_blank",
+ // titleAttr: 'Blast Whatsapp',
+ // text: '
WHATSAPP & SMS ',
+ // action: function ( e, dt, node, config ) {
+ // // $('#typedonwload').val('whatsapp');
+ // // $("#exportpdf").submit();
+ // $("#exportpdf").click(function() {
+ // $('[data-toggle="tooltip"]').tooltip()
+ // alert("ADAKAH ANDA PASTI?");
+ // $('#typedonwload').val('whatsapp');
+ // $("#exportpdf").submit();
+ // });
+ // }
+ // }
diff --git a/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php b/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php
index 2c8238f5..e8e2a5e5 100644
--- a/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php
+++ b/resources/views/callcenter/bycawdetailnotisperingatankedua.blade.php
@@ -284,22 +284,22 @@
}
},
- {
- className: 'btn btn-outline-info pl-4 pr-4 btn-sm export',
- target: "_blank",
- titleAttr: 'Blast Whatsapp',
- text: '
WHATSAPP & SMS ',
- action: function ( e, dt, node, config ) {
- // $('#typedonwload').val('whatsapp');
- // $("#exportpdf").submit();
- $("#exportpdf").click(function() {
- $('[data-toggle="tooltip"]').tooltip()
- alert("ADAKAH ANDA PASTI?");
- $('#typedonwload').val('whatsapp');
- $("#exportpdf").submit();
-});
- }
- }
+ // {
+ // className: 'btn btn-outline-info pl-4 pr-4 btn-sm export',
+ // target: "_blank",
+ // titleAttr: 'Blast Whatsapp',
+ // text: '
WHATSAPP & SMS ',
+ // action: function ( e, dt, node, config ) {
+ // // $('#typedonwload').val('whatsapp');
+ // // $("#exportpdf").submit();
+ // $("#exportpdf").click(function() {
+ // $('[data-toggle="tooltip"]').tooltip()
+ // alert("ADAKAH ANDA PASTI?");
+ // $('#typedonwload').val('whatsapp');
+ // $("#exportpdf").submit();
+ // });
+ // }
+ // }
diff --git a/resources/views/callcenter/index.blade.php b/resources/views/callcenter/index.blade.php
index c707dc73..411fcaf5 100644
--- a/resources/views/callcenter/index.blade.php
+++ b/resources/views/callcenter/index.blade.php
@@ -7,6 +7,33 @@
position: absolute;
}
+
@@ -21,16 +48,17 @@
-
Pilih Cawangan Dan Masukkan nombor kad pengenalan
-
+
+
+
+
+
+@endsection
diff --git a/resources/views/callcenter/notisperingatanpertama_excel.blade.php b/resources/views/callcenter/notisperingatanpertama_excel.blade.php
new file mode 100644
index 00000000..b86924f1
--- /dev/null
+++ b/resources/views/callcenter/notisperingatanpertama_excel.blade.php
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Senarai Notis Peringatan Pertama
+
+ Tarikh Cetak:
+ @php
+ $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
+ $formattedweddingdate = $myDateTime->format('d-m-Y');
+ echo($formattedweddingdate)
+ @endphp
+
+
+
+
+
+
+
+
+
+ Bil
+ No.Rujukan
+ Nama
+ No.KP
+ No.Telefon
+ Tempoh
+ Baki Pembiayaan (RM)
+ Keuntungan 6Bulan (RM)
+ Amaun Telah Bayar (RM)
+ Keuntungan Semasa (RM)
+ Tarikh Matang
+ Tarikh Tamat Kontrak
+ Tarikh Blast
+
+
+
+ @foreach ($bycawnotisperingatan as $index => $item)
+
+ {{ $loop->iteration }}
+ {{$item['norujukan']}}
+ {{$item['namacust']['nama'] ?? ''}}
+ {{$item['nokp']}}
+ 6{{$item['namacust']['telefon'] ?? ''}}
+ {{$item['jbg']}}
+ {{number_format($item['datagadai']['bakipjm'], 2, '.', ',')}}
+ {{number_format($item['datagadai']['bakiupah'], 2, '.', ',')}}
+ {{number_format($item['datagadai']['hargajualan']-$item['datagadai']['bakihargajualan'], 2, '.', ',')}}
+ @if($item['datagadai']['tagbaru'] == '0')
+ {{number_format($item['keuntungan'], 2, '.', ',')}}
+ @elseif($item['datagadai']['tagbaru'] == '1')
+ {{number_format($item['keuntungan']['ujrah']+$item['keuntungan']['onepercent'], 2, '.', ',')}}
+ @endif
+
+ @if($item['tmatang'] == null)
+ @else
+ @php
+ $myDateTime = DateTime::createFromFormat('Y-m-d', $item['tmatang']);
+ $formattedweddingdate = $myDateTime->format('d-m-Y');
+ echo($formattedweddingdate);
+ @endphp
+ @endif
+
+ @if($item['tmatang1'] == null)
+ @else
+ @php
+ $myDateTime = DateTime::createFromFormat('Y-m-d', $item['tmatang1']);
+ $formattedweddingdate = $myDateTime->format('d-m-Y');
+ echo($formattedweddingdate);
+ @endphp
+ @endif
+
+ @if($item['tarikhnotis1'] == null)
+
+ @else
+ @php
+ $myDateTime = DateTime::createFromFormat('Y-m-d', $item['tarikhnotis1']);
+ $formattedweddingdate = $myDateTime->format('d-m-Y');
+ echo($formattedweddingdate);
+ @endphp
+ @endif
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/callcenter/partials/customertable.blade.php b/resources/views/callcenter/partials/customertable.blade.php
new file mode 100644
index 00000000..b7e9e5b2
--- /dev/null
+++ b/resources/views/callcenter/partials/customertable.blade.php
@@ -0,0 +1,32 @@
+@if(count($customers) > 0)
+
+
+
+ Nama
+ No KP
+ Kod Cawangan
+ Tindakan
+
+
+
+ @foreach($customers as $customer)
+
+ {{ $customer['nama'] }}
+ {{ $customer['kpbaru'] ?? $customer['kplama'] ?? '-' }}
+ {{ $customer['kodcaw'] }}
+
+
+ @csrf
+
+
+
+ Pilih
+
+
+
+ @endforeach
+
+
+@else
+
Tiada pelanggan dijumpai.
+@endif
diff --git a/resources/views/callcenter/pilihpelanggan.blade.php b/resources/views/callcenter/pilihpelanggan.blade.php
new file mode 100644
index 00000000..17a7b320
--- /dev/null
+++ b/resources/views/callcenter/pilihpelanggan.blade.php
@@ -0,0 +1,48 @@
+@extends('layouts.app_callcenter')
+
+@section('content')
+
+
Kembali
+
Senarai Cawangan Dijumpai
+ @if(session('customer_list') && count(session('customer_list')) > 0)
+
+
+
+ Nama
+ No KP
+ Nama Cawangan
+ Tindakan
+
+
+
+ @foreach(session('customer_list') as $customer)
+
+ {{ $customer['nama'] }}
+ @php
+ if($customer['kpbaru'] != null){
+ $noic = $customer['kpbaru'];
+ }else{
+ $noic = $customer['kplama'];
+ }
+ @endphp
+ {{ $noic }}
+ {{ $customer['nama_cawangan'] }}
+
+
+ @csrf
+
+
+ Pilih
+
+
+
+ @endforeach
+
+
+ @else
+
Tiada pelanggan dijumpai.
+ @endif
+
+
Kembali
+
+@endsection
diff --git a/resources/views/callcenter/pilihpelanggannama.blade.php b/resources/views/callcenter/pilihpelanggannama.blade.php
new file mode 100644
index 00000000..df895e18
--- /dev/null
+++ b/resources/views/callcenter/pilihpelanggannama.blade.php
@@ -0,0 +1,49 @@
+@extends('layouts.app_callcenter')
+
+@section('content')
+
+
Kembali
+
Senarai Nama Pelanggan Dijumpai
+ @if(session('customer_list') && count(session('customer_list')) > 0)
+
+
+
+ Nama
+ No KP
+
+ Tindakan
+
+
+
+ @foreach(session('customer_list') as $customer)
+
+ {{ $customer['nama'] }}
+ @php
+ if($customer['kpbaru'] != null){
+ $noic = $customer['kpbaru'];
+ }else{
+ $noic = $customer['kplama'];
+ }
+ @endphp
+ {{ $noic }}
+
+
+
+ @csrf
+
+
+
+ Pilih
+
+
+
+ @endforeach
+
+
+ @else
+
Tiada pelanggan dijumpai.
+ @endif
+
+
Kembali
+
+@endsection
diff --git a/resources/views/callcenter/v1/info.blade.php b/resources/views/callcenter/v1/info.blade.php
index 4ea9d4ff..3a65bdaa 100644
--- a/resources/views/callcenter/v1/info.blade.php
+++ b/resources/views/callcenter/v1/info.blade.php
@@ -7,7 +7,7 @@
@include('modal.agh')
-
+
@@ -155,7 +155,8 @@
Margin
Tempoh
Keuntungan
-
Lelong
+
Lelong
+
Pembayaran Terakhir
@@ -722,6 +723,7 @@
}
var taglel = '';
+ var lastbayar = '';
if(gadai_detail['taglel'] == 1){
if(tagarrahnbid == 1){
$.ajax({
@@ -731,6 +733,7 @@
success: function(data){
taglel = data.lelong.t_lelong;
+ lastbayar = data.lelong.lastbayar;
}
});
} else {
@@ -744,6 +747,7 @@
},
success: function(v){
taglel = v.t_lelong;
+
}
});
}
@@ -777,6 +781,7 @@
gadai_detail['tempoh'],
'RM '+ formatter.format(upahsemasa),
'
' + taglel + '
',
+ '
' + lastbayar + '
',
]).draw();
}
}else if(jenistebus == "sudah_tebus"){
diff --git a/resources/views/callcenter/v2/info.blade.php b/resources/views/callcenter/v2/info.blade.php
index 958a29dd..92dd1a1e 100644
--- a/resources/views/callcenter/v2/info.blade.php
+++ b/resources/views/callcenter/v2/info.blade.php
@@ -7,7 +7,7 @@
@section('content')
-@include('modal.historytebus')
+@include('modal.historytebusarcc')
@include('modal.wakil')
-
+ {{--
Maklumat Pelanggan
-
+
--}}
-
@@ -156,7 +156,7 @@
@endphp
SAG Baru
-
SAG Lama
+
SAG Lama
@@ -255,6 +255,52 @@
+
+
+
+
+
+
+
+ @php
+ if($customer_info['kpbaru'] != null){
+ $noic = $customer_info['kpbaru'];
+ } else {
+ $noic = $customer_info['kplama'];
+ }
+ @endphp
+
+
+
Nama: {{ $customer_info['nama'] }}
+
No. K/P: {{ $noic }}
+
No. Telefon: {{ $customer_info['telefon'] ? $customer_info['telefon'] : '' }}
+
Alamat: {{ $customer_info['alamat1'] }}
+
No. Pelanggan: {{ $customer_info['nopelanggan'] }}
+
Nota Pelanggan: {{ $customer_info['nota'] }}
+
+
+ Nota Arcc:
+ {{ $customer_info['nota_arcc'] }}
+
+
+
+
+
+
+
+
+
+
+
@@ -282,7 +330,10 @@
No KP
-
+ {{-- --}}
+
+ {{ $customer_info['kpbaru'] ? $customer_info['kpbaru'] : $customer_info['kplama'] }}
+
@@ -290,7 +341,10 @@
No Pelanggan
-
+ {{-- --}}
+
+ {{ $customer_info['nopelanggan'] }}
+
@@ -298,7 +352,10 @@
No Telefon 1
-
+ {{-- --}}
+
+ {{ $customer_info['telefon'] ? $customer_info['telefon'] : '' }}
+
@@ -307,7 +364,10 @@
No Telefon 2
-
+ {{-- --}}
+
+ {{ $customer_info['telefon2'] ? $customer_info['telefon2'] : '' }}
+
@@ -316,7 +376,7 @@
Bank
- @php
+ {{-- @php
$bank = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/bank')->json();
@endphp
@@ -324,7 +384,22 @@
@foreach($bank as $banks)
{{ $banks['name'] }}
@endforeach
-
+ --}}
+ @php
+ $bank = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get($api_url . '/api/bank')
+ ->json();
+ $selectedBank = '-';
+ foreach ($bank as $banks) {
+ if ($banks['abbreviation'] == $customer_info['kodbank']) {
+ $selectedBank = $banks['name'];
+ break;
+ }
+ }
+ @endphp
+
+ {{ $selectedBank }}
+
@@ -333,7 +408,10 @@
No Akaun
-
+ {{-- --}}
+
+ {{ $customer_info['noakaun'] }}
+
@@ -343,58 +421,75 @@
Alamat
-
+ {{--
{{ $customer_info['alamat1'] ? $customer_info['alamat1'] : 'NIL' }}
-
+
--}}
+
+
+ {{ $customer_info['alamat1'] ? $customer_info['alamat1'] : 'NIL' }}
+
+
--}}
- {{-- Ubah --}}
- Terima
+ {{-- Ubah
+ Terima --}}
{{-- Daftar Akaun Online --}}
@@ -867,11 +962,12 @@
urlroute = urlroute.replace(':id', gadai_detail["norujukan"]);
var tuntutan = '';
- if(gadai_detail['datatuntut']['teller'] == 'DM')
- {
+ if(gadai_detail['datatuntut'] && gadai_detail['datatuntut']['teller'] == 'DM') {
tuntutan = 'WTD';
- }else{
+ }else if (gadai_detail['trkhtuntut'] !== null) {
tuntutan = 'Pelanggan';
+ }else {
+ tuntutan = '';
}
if(gadai_detail['trkhtuntut'] == null){
@@ -1254,10 +1350,10 @@
$.ajax({
method:'get',
- url:'{{ route("arcc.history") }}',
+ url: '{{ route("arcc.history", ":kodcaw") }}'.replace(':kodcaw', kodcaw),
data:{ "norujukan" : histid},
success:function(data){
- historytebustable(data);
+ historytebustable(data,histid);
$.ajax({
method: 'get',
@@ -1336,7 +1432,10 @@
urlroute = urlroute.replace(':id', bayaran['id']);
historybayarandatatable.row.add([
counter,
+ bayaran['norujukan'],
bayaran['created_at'],
+ "RM " + bayaran['bayaran_pembiayaan'],
+ "RM " + bayaran['bayaran_keuntungan'],
"RM " + bayaran['duit_masuk'],
bayaranteller,
bayaran['trans_type'],
@@ -1350,54 +1449,54 @@
"ordering": false
});
- function historytebustable(data){
+ function historytebustable(data, histid)
+ {
+ console.log("Full data returned tebus:", histid); // Debug
var counter = 1;
historytebusbayaran.clear().draw();
- $.each(data,function(index,tebusaz){
+ // TAPIS hanya entry yang sama dengan norujukan klik user
+ let filtered = data.filter(tebusaz => tebusaz.norujukan === histid);
+ $.each(filtered, function(index, tebusaz){
+ console.log("Tebus untuk:", tebusaz.norujukan);
+
+ var urlroute = '';
switch(tebusaz['jenistebus']) {
case 'P':
- var urlroute = '{{ route("resit.tambahpinjam", ":id") }}';
- urlroute = urlroute.replace(':id', tebusaz['norujukan']);
+ urlroute = '{{ route("resit.tambahpinjam", ":id") }}'.replace(':id', tebusaz['norujukan']);
break;
case 'T':
-
- if(tebusaz['hargajualan'] === '')
- {
- var urlroute = '{{ route("resit.belumtebus", ":id") }}';
- urlroute = urlroute.replace(':id', tebusaz['norujukan']);
-
- }else{
- var urlroute = '{{ route("resit.tebus", ":id") }}';
- urlroute = urlroute.replace(':id', tebusaz['norujukan']);
- }
-
+ urlroute = (tebusaz['hargajualan'] === '')
+ ? '{{ route("resit.belumtebus", ":id") }}'.replace(':id', tebusaz['norujukan'])
+ : '{{ route("resit.tebus", ":id") }}'.replace(':id', tebusaz['norujukan']);
break;
case 'A':
- var urlroute = '{{ route("resit.belumansurans", ":id") }}';
- urlroute = urlroute.replace(':id', tebusaz['norujukan']);
+ urlroute = '{{ route("resit.belumansurans", ":id") }}'.replace(':id', tebusaz['norujukan']);
break;
case 'S':
- var urlroute = '{{ route("resit.tebusseparuh", ":id") }}';
- urlroute = urlroute.replace(':id', tebusaz['norujukan']);
- break;
- }
+ urlroute = '{{ route("resit.tebusseparuh", ":id") }}'.replace(':id', tebusaz['id']);
+ break;
+ }
historytebusbayaran.row.add([
counter,
- tebusaz['norujukan'],
- tebusaz['jenistebus'],
- tebusaz['pinjaman'],
+ histid,
+ tebusaz['trans_type'],
+ "RM " + tebusaz['bayaran_pembiayaan'],
+ "RM " + tebusaz['bayaran_keuntungan'],
+ "RM " + tebusaz['duit_masuk'],
tebusaz['jbg'],
tebusaz['t_tebus'],
''
]).draw();
- counter = counter + 1;
+
+ counter++;
});
}
+
function daftarwakil()
{
let nopelanggan = $('#nopelangganwakil').val();
@@ -2343,6 +2442,7 @@
$('#kodbank').attr('disabled', false);
$('#noakaun').attr('readonly', false);
$('#nota').attr('readonly', false);
+ $('#nota_arcc').attr('readonly', false);
$('#alamat').attr('readonly', false);
$('#poskod').attr('readonly', false);
@@ -2364,6 +2464,7 @@
$('#kodbank').attr('disabled', true);
$('#noakaun').attr('readonly', true);
$('#nota').attr('readonly', true);
+ $('#nota_arcc').attr('readonly', true);
$('#alamat').attr('readonly', true);
$('#poskod').attr('readonly', true);
}
@@ -2371,18 +2472,20 @@
$("#kemaskiniform").submit(function(event) {
event.preventDefault();
- var nokp = $('#icno').val();
+ var nokp = $('#noic').val();
var telefon1 = $('#telefon').val();
var telefon2 = $('#telefon2').val();
var kodbank = $('#kodbank').val();
var noakaun = $('#noakaun').val();
var nota = $('#nota').val();
+ var nota_arcc = $('#nota_arcc').val();
var alamat = $('#alamat').val();
var poskod = $('#poskod').val();
$.ajax({
method:"put",
- url: api_url + "/api/customers/update/kaunter/" + nokp,
+ // url: api_url + "/api/customers/update/kaunter/" + nokp + "/" + kodcaw,
+ url: api_url + "/api/callcenter/customers/update/kaunter/" + nokp + "/" + kodcaw,
data:{
"namateller" : "{{ Auth::user()->name }}",
"telefon1": telefon1,
@@ -2390,6 +2493,7 @@
"kodbank":kodbank,
"noakaun":noakaun,
'nota':nota,
+ 'nota_arcc':nota_arcc,
'alamat':alamat,
'poskod':poskod
},
@@ -2426,94 +2530,119 @@
});
});
+ // function kemaskinipelanggan(){
+
+ // var errortelefon1 = 0;
+ // var errortelefon2 = 0;
+
+ // if(!($('#telefon').val().length >= 9 && $('#telefon').val().length < 12)){
+ // $('#errortelefon').show();
+ // $('#errortelefon').text("*lebih kecil dari 10 dan lebih besar dari 12");
+ // $('#telefon').addClass('is-invalid');
+ // errortelefon1++;
+ // }else{
+ // $('#errortelefon').hide();
+ // $('#telefon').removeClass('is-invalid');
+ // errortelefon1--;
+ // }
+
+ // if($('#telefon2').val() != ''){
+ // if(!($('#telefon2').val().length >= 9 && $('#telefon2').val().length < 12)){
+ // $('#errortelefon2').show();
+ // $('#errortelefon2').text("*lebih kecil dari 10 dan lebih besar dari 12");
+ // $('#telefon2').addClass('is-invalid');
+ // errortelefon2++;
+ // }else{
+ // $('#errortelefon2').hide();
+ // $('#telefon2').removeClass('is-invalid');
+ // errortelefon2--;
+ // }
+ // }else{
+ // $('#errortelefon2').hide();
+ // $('#telefon2').removeClass('is-invalid');
+ // errortelefon2--;
+ // }
+
+ // if(errortelefon1 <= 0 && errortelefon2 <= 0){
+ // $('#btnkemaskini').removeClass('btn-danger');
+ // $('#btnkemaskini').addClass('btn-primary');
+ // $('#btnkemaskini').text('Ubah');
+ // $('#btnkemaskini').attr('onclick','kemaskinifunc()');
+ // $('#btnotp').text('Daftar Akuan Online');
+ // $('#btnotp').attr('onclick','#');
+
+ // //attribute nak readonly false
+ // $('#telefon').attr('readonly', true);
+ // $('#telefon2').attr('readonly', true);
+ // $('#noakaun').attr('readonly', true);
+ // $('#kodbank').attr('readonly', true);
+ // $('#nota').attr('readonly', true);
+ // $('#nota_arcc').attr('readonly', true);
+ // $('#alamat').attr('readonly', true);
+ // $('#poskod').attr('readonly', true);
+
+ // $('#kemaskiniform').trigger('submit');
+ // }
+ // }
+
+ // $('#btnotp').click(function(){
+ // $('#customer_detail').modal('hide');
+ // var noic = $('#noic').val();
+ // $('#noic_otp').val(noic);
+ // $('#opt_modal').modal('show');
+ // });
+
+ // $('#jana_otp').click(function(){
+ // var noic = $('#noic_otp').val();
+
+ // $.ajax({
+ // method:'get',
+ // url: "{{ route('customer.otp') }}",
+ // data:{
+ // 'noic_otp' : noic
+ // },
+ // dataType:'json',
+ // success: function(otp_token){
+ // if(otp_token['error']){
+ // Swal.fire({
+ // icon: 'error',
+ // title: 'Amaran!',
+ // text: otp_token['error']
+ // });
+ // }else if(otp_token['otp']){
+ // $('#otp_form').hide();
+ // $('#otp_generate').show();
+ // $('#otp_number').text(otp_token['otp']);
+ // }
+ // },
+ // error: function(xhRequest, ErrorText, thrownError){
+ // console.log(xhRequest);
+ // }
+ // });
+ // });
+
function kemaskinipelanggan(){
+ // Tukar butang "Batal" jadi "Ubah" semula
+ $('#btnkemaskini').removeClass('btn-danger');
+ $('#btnkemaskini').addClass('btn-primary');
+ $('#btnkemaskini').text('Ubah');
+ $('#btnkemaskini').attr('onclick','kemaskinifunc()');
+ $('#btnotp').text('Daftar Akuan Online');
+ $('#btnotp').attr('onclick','#');
- var errortelefon1 = 0;
- var errortelefon2 = 0;
+ // Lock balik semua field
+ $('#telefon').attr('readonly', true);
+ $('#telefon2').attr('readonly', true);
+ $('#noakaun').attr('readonly', true);
+ $('#kodbank').attr('disabled', true);
+ $('#nota').attr('readonly', true);
+ $('#nota_arcc').attr('readonly', true);
+ $('#alamat').attr('readonly', true);
+ $('#poskod').attr('readonly', true);
- if(!($('#telefon').val().length >= 9 && $('#telefon').val().length < 12)){
- $('#errortelefon').show();
- $('#errortelefon').text("*lebih kecil dari 10 dan lebih besar dari 12");
- $('#telefon').addClass('is-invalid');
- errortelefon1++;
- }else{
- $('#errortelefon').hide();
- $('#telefon').removeClass('is-invalid');
- errortelefon1--;
- }
+ console.log("👉 Hantar form kemaskini (nota_arcc)");
+ $('#kemaskiniform').trigger('submit');
+}
- if($('#telefon2').val() != ''){
- if(!($('#telefon2').val().length >= 9 && $('#telefon2').val().length < 12)){
- $('#errortelefon2').show();
- $('#errortelefon2').text("*lebih kecil dari 10 dan lebih besar dari 12");
- $('#telefon2').addClass('is-invalid');
- errortelefon2++;
- }else{
- $('#errortelefon2').hide();
- $('#telefon2').removeClass('is-invalid');
- errortelefon2--;
- }
- }else{
- $('#errortelefon2').hide();
- $('#telefon2').removeClass('is-invalid');
- errortelefon2--;
- }
-
- if(errortelefon1 <= 0 && errortelefon2 <= 0){
- $('#btnkemaskini').removeClass('btn-danger');
- $('#btnkemaskini').addClass('btn-primary');
- $('#btnkemaskini').text('Ubah');
- $('#btnkemaskini').attr('onclick','kemaskinifunc()');
- $('#btnotp').text('Daftar Akuan Online');
- $('#btnotp').attr('onclick','#');
-
- //attribute nak readonly false
- $('#telefon').attr('readonly', true);
- $('#telefon2').attr('readonly', true);
- $('#noakaun').attr('readonly', true);
- $('#kodbank').attr('disabled', true);
- $('#nota').attr('readonly', true);
- $('#alamat').attr('readonly', true);
- $('#poskod').attr('readonly', true);
-
- $('#kemaskiniform').trigger('submit');
- }
- }
-
- $('#btnotp').click(function(){
- $('#customer_detail').modal('hide');
- var noic = $('#noic').val();
- $('#noic_otp').val(noic);
- $('#opt_modal').modal('show');
- });
-
- $('#jana_otp').click(function(){
- var noic = $('#noic_otp').val();
-
- $.ajax({
- method:'get',
- url: "{{ route('customer.otp') }}",
- data:{
- 'noic_otp' : noic
- },
- dataType:'json',
- success: function(otp_token){
- if(otp_token['error']){
- Swal.fire({
- icon: 'error',
- title: 'Amaran!',
- text: otp_token['error']
- });
- }else if(otp_token['otp']){
- $('#otp_form').hide();
- $('#otp_generate').show();
- $('#otp_number').text(otp_token['otp']);
- }
- },
- error: function(xhRequest, ErrorText, thrownError){
- console.log(xhRequest);
- }
- });
- });
@endsection
diff --git a/resources/views/components/auto-serah.blade.php b/resources/views/components/auto-serah.blade.php
new file mode 100644
index 00000000..9e6537ee
--- /dev/null
+++ b/resources/views/components/auto-serah.blade.php
@@ -0,0 +1,2 @@
+
+Serahan V3
\ No newline at end of file
diff --git a/resources/views/customers/v2/index.blade.php b/resources/views/customers/v2/index.blade.php
index 10d2fcb3..7e1a139d 100644
--- a/resources/views/customers/v2/index.blade.php
+++ b/resources/views/customers/v2/index.blade.php
@@ -71,12 +71,27 @@
@if($search == true && $blacklist_search == false)
-
-
- Daftar Pelanggan
-
-
- @endif
+
+
+ {{-- ✅ Jika anggota tapi belum daftar pelanggan --}}
+ @if(isset($showDaftarPelangganBtn) && $showDaftarPelangganBtn)
+
+ Daftar Pelanggan
+
+ @endif
+
+ {{-- ✅ Jika pelanggan dah ada tapi belum anggota --}}
+ @if(isset($showAssignAnggotaBtn) && $showAssignAnggotaBtn)
+
+ @csrf
+
+ Assign sebagai Anggota
+
+ @endif
+
+
+@endif
+
@@ -478,42 +493,73 @@
+
+ @endif
-
-
-
- Maklumat Pelanggan
-
+
-
+
-
-
-
-
+
-
+
-
-
-
-
-
+
+
+
+
+
- @if(!in_array(Auth::user()->cawangan, config('redeemoption.cawangan_block', [])))
+ @if (!in_array(Auth::user()->cawangan, config('redeemoption.cawangan_block', [])))
Daftar Pembiayaan
@endif
+
+
+ @php
+ $activate_tab = request()->session()->pull('activate_tab', 'SAG_lama');
+
+ $activate_tab_SAG_baru = $activate_tab === 'SAG_baru' ? 'active' : '';
+ $aria_selected_SAG_baru = $activate_tab === 'SAG_baru' ? 'true' : 'false';
+ $activate_pane_SAG_baru = $activate_tab === 'SAG_baru' ? 'active show' : '';
+
+ $activate_tab_SAG_lama = $activate_tab === 'SAG_lama' ? 'active' : '';
+ $aria_selected_SAG_lama = $activate_tab === 'SAG_lama' ? 'true' : 'false';
+ $activate_pane_SAG_lama = $activate_tab === 'SAG_lama' ? 'active show' : '';
+
+ @endphp
+
SAG Baru
+
SAG Lama
-
- @php
- $activate_tab = request()->session()->pull('activate_tab', 'SAG_lama');
-
- $activate_tab_SAG_baru = $activate_tab === 'SAG_baru' ? 'active' : '';
- $aria_selected_SAG_baru = $activate_tab === 'SAG_baru' ? 'true' : 'false';
- $activate_pane_SAG_baru = $activate_tab === 'SAG_baru' ? 'active show' : '';
-
- $activate_tab_SAG_lama = $activate_tab === 'SAG_lama' ? 'active' : '';
- $aria_selected_SAG_lama = $activate_tab === 'SAG_lama' ? 'true' : 'false';
- $activate_pane_SAG_lama = $activate_tab === 'SAG_lama' ? 'active show' : '';
-
- @endphp
-
SAG Baru
-
SAG Lama
-
-
-
-
-
-
-
- Bil
- No Rujukan
- Tarikh Pembiayaan
- Tarikh Matang
- Baki Harga Jualan
- Baki Pembiayaan
- Margin
- Tempoh
- Keuntungan
- Lelong
-
-
-
-
-
-
-
- {{--
+
+
+
+
+
+
+ Bil
+ No Rujukan
+ Tarikh Pembiayaan
+ Tarikh Matang
+ Baki Harga Jualan
+ Baki Pembiayaan
+ Margin
+ Tempoh
+ Keuntungan
+ Lelong
+
+
+
+
+
+
+
+ {{--
Bil
No Rujukan
Tarikh Gadai
@@ -210,618 +398,688 @@
Tempoh
Lelong
--}}
+
+ Bil
+ No Rujukan
+ Tarikh Pembiayaan
+ Tarikh Matang
+ Baki Harga Jualan
+ Baki Pembiayaan
+ Margin
+ Tempoh
+ Keuntungan
+ Lelong
+
+
+
+
+
+
+ {{-- Sudah Tebus --}}
+
+
+
Bil
No Rujukan
- Tarikh Pembiayaan
- Tarikh Matang
- Baki Harga Jualan
+ Tarikh Penyelesaian Pembiayaan
Baki Pembiayaan
Margin
Tempoh
- Keuntungan
- Lelong
+
+
+
+
+ Bil
+ No Rujukan
+ Tarikh Lelong
+ Tarikh Tuntut
+ Pembiayaan
+ Harga Jual
+ Jum Tuntut/Bayar
+ Keuntungan
+ Caj Lelong
+ Status Tuntutan
+ Cetak
+
+
+
+
+
+ Ubah
+ Hapus
+ Rekod Pembiayaan
+ Hapus Ansuran
+
+
-
- {{-- Sudah Tebus --}}
-
-
-
-
- Bil
- No Rujukan
- Tarikh Penyelesaian Pembiayaan
- Baki Pembiayaan
- Margin
- Tempoh
-
-
-
-
-
-
-
- Bil
- No Rujukan
- Tarikh Lelong
- Tarikh Tuntut
- Pembiayaan
- Harga Jual
- Jum Tuntut/Bayar
- Keuntungan
- Caj Lelong
- Status Tuntutan
- Cetak
-
-
-
-
-
- Ubah
- Hapus
- Rekod Pembiayaan
- {{-- Hapus Ansuran --}}
-
-
-
-
-
+
-
-
@@ -133,6 +134,7 @@
{{ $k['teller'] }}
{{ $k['status'] }}
{{ Helper::formatNumber($k['jumpinj']) }}
+
{{ Helper::formatNumber($k['nilaimarhun']) }}
{{ $k['berat'] }}
{{ $k['margin'] }}
@@ -141,11 +143,12 @@
@endforeach
@foreach($kelulusanmohonid as $index=>$km)
-
+
{{ $km['norujukan'] }}
{{ $km['teller'] }}
{{ $km['mohon'] }}
{{ Helper::formatNumber($km['pinjaman']) }}
+ {{ Helper::formatNumber($km['ansuran']) }}
{{ Helper::formatNumber($km['nilaimarhun']) }}
{{ $km['berat'] }}
{{ $km['margin'] }}
@@ -514,6 +517,8 @@
let norujukan = $(e).data('norujukan');
let teller = $(e).closest('tr').children('td:eq(1)').text();
let namakhazanah = "{{ $auth_user = Auth::user()->name }}";
+ let recno = $(e).closest('tr').data('recno');
+ let tagoperasi = $(e).closest('tr').data('tagoperasi');
teller = String(teller);
@@ -524,7 +529,9 @@
"_token": "{{ csrf_token() }}",
"norujukan" : norujukan,
"khazanah" : namakhazanah,
- 'teller' : teller
+ 'teller' : teller,
+ "recno" : recno,
+ "tagoperasi" : tagoperasi,
},
success:function(data){
@@ -593,6 +600,8 @@
let norujukan = $(e).data('norujukan');
let namakhazanah = "{{ $auth_user = Auth::user()->name }}";
let teller = $(e).closest('tr').children('td:eq(1)').text();
+ let recno = $(e).closest('tr').data('recno');
+ let tagoperasi = $(e).closest('tr').data('tagoperasi');
teller = String(teller);
@@ -605,7 +614,9 @@
"khazanah" : namakhazanah,
"komenubahhapus" : komenkelulusan,
"batal" : 'batal',
- 'teller' : teller
+ 'teller' : teller,
+ "recno" : recno,
+ "tagoperasi" : tagoperasi
},
success:function(data){
diff --git a/resources/views/khazanah/laporan/index.blade.php b/resources/views/khazanah/laporan/index.blade.php
index b36c91de..2ac1140b 100644
--- a/resources/views/khazanah/laporan/index.blade.php
+++ b/resources/views/khazanah/laporan/index.blade.php
@@ -1,146 +1,198 @@
@extends('layouts.app')
-
@section('content')
-
-
-
-
-
-
- Home
- Laporan
-
-
+
+
+
+
+
+
+ Home
+ Laporan
+
+
- @php
- $auth_user = Auth::user();
- $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
- $version = $cawangan['version'];
- @endphp
+ @php
+ $auth_user = Auth::user();
+ $cawangan = Http::withOptions(['verify' => config('app.api_verify')])
+ ->get(config('api.url') . '/api/cawangan/' . $auth_user['cawangan'])
+ ->json();
+ $version = $cawangan['version'];
+ @endphp
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SA(Whatsapp & SMS)
+
-
-
diff --git a/resources/views/khazanah/laporan/tuntutbaki.blade.php b/resources/views/khazanah/laporan/tuntutbaki.blade.php
index 8c97193b..2e30ad91 100644
--- a/resources/views/khazanah/laporan/tuntutbaki.blade.php
+++ b/resources/views/khazanah/laporan/tuntutbaki.blade.php
@@ -126,7 +126,8 @@
$.ajax({
method:'get',
- url: api_url + '/api/gadai/norujukan/' + tb['norujukan'],
+ // url: api_url + '/api/gadai/norujukan/' + tb['norujukan'],
+ url: api_url + '/api/gadai/norujukankodcaw/' + tb['kodcaw'] + '/' + tb['norujukan'],
success: function(gadai){
$.ajax({
method:'get',
diff --git a/resources/views/khazanah/pendahuluanserahanmain.blade.php b/resources/views/khazanah/pendahuluanserahanmain.blade.php
index 8ba70643..36210046 100644
--- a/resources/views/khazanah/pendahuluanserahanmain.blade.php
+++ b/resources/views/khazanah/pendahuluanserahanmain.blade.php
@@ -3,8 +3,26 @@
@section('content')
@include('modal.pendahuluanserahan')
+@include('modal.autoserahan')
@include('modal.denominasimodalpendahuluanserahan')
+@if(count($proses) > 0)
+
+@endif
@@ -51,7 +69,7 @@
{{ $gldetail['descpt'] }}
{{ ($gldetail['pendahuluan'] == 0 && ($gldetail['ktacct'] == '7000/102' || $gldetail['ktacct'] == '7000/106')) ? number_format($gldetail['amaun'],2) : number_format($gldetail['pendahuluan'],2) }}
{{ ($gldetail['serahan'] == 0 && ($gldetail['dtacct'] == '1000/026' || $gldetail['dtacct'] == '1000/020' || $gldetail['dtacct'] == '1000/090')) ? number_format($gldetail['amaun'],2) : number_format($gldetail['serahan'],2) }}
- @if($date === $gldetail['tarikh'] && !fnmatch('SERAHAN BAYAR ONLINE*',$gldetail['descpt'])) @else @endif
+ @if($date === $gldetail['tarikh'] && !fnmatch('SERAHAN BAYAR ONLINE*',$gldetail['descpt'])) @else @endif
@endforeach
@@ -61,7 +79,9 @@
Daftar
-
+ @if(Auth::user()->cawangan != '011227')
+
+ @endif
@@ -205,25 +225,47 @@
}
$('#pendahuluanserahanModal').on('shown.bs.modal', function (e) {
+ let input = $(e.relatedTarget);
+ let inputselected = input.data('input');
+
+
+ if(inputselected == 'AutoSerahan')
+ {
+ $('#jenisserahan').val('auto');
+ $('input[name="radwang"][value="pendahuluan"]').prop('disabled', true);
+ $('input[name="radwang"][value="serahan"]').prop('checked', true);
+ $('input[name="radwang"][value="serahan"]').prop('disabled', true);
+ $('#keterangan').val('Serahan Kepada V3');
+ $('#keterangan').attr('readonly', true);
+ $('#dtacct').val('1000/010');
+ $('#ktacct').val('1000/020');
+ $('input[name="denominasi"]').attr('style','display: block');
+ $('.denominasi').attr('style','display: block');
+ }else{
+ $('#jenisserahan').val('biasa');
+ $('input[name="radwang"][value="pendahuluan"]').prop('disabled', false);
+ $('#bundle1').val('');
+ $('#totalb1').val(0.00);
+ $('#bundle5').val('');
+ $('#totalb5').val(0.00);
+ $('#bundle10').val('');
+ $('#totalb10').val(0.00);
+ $('#bundle20').val('');
+ $('#totalb20').val(0.00);
+ $('#bundle50').val('');
+ $('#totalb50').val(0.00);
+ $('#bundle100').val('');
+ $('#totalb100').val(0.00);
+ $('#amaunkiraan').val('');
+ $('#dtacct').val('');
+ $('#ktacct').val('');
+ $('#keterangan').val('');
+ $('#amaun').val('');
+ $('#keterangan').attr('readonly', false);
+ $('input[name="radwang"]').prop('checked', false);
+ }
+
- $('#bundle1').val('');
- $('#totalb1').val(0.00);
- $('#bundle5').val('');
- $('#totalb5').val(0.00);
- $('#bundle10').val('');
- $('#totalb10').val(0.00);
- $('#bundle20').val('');
- $('#totalb20').val(0.00);
- $('#bundle50').val('');
- $('#totalb50').val(0.00);
- $('#bundle100').val('');
- $('#totalb100').val(0.00);
- $('#amaunkiraan').val('');
- $('#dtacct').val('');
- $('#ktacct').val('');
- $('#keterangan').val('');
- $('#amaun').val('');
- $('input[name="radwang"]').prop('checked', false);
});
@@ -314,7 +356,7 @@
function funcbatal()
{
$('#denominasiHQModal').modal('hide');
- $('#pendahuluanserahanModal').modal('show');
+ // $('#pendahuluanserahanModal').modal('show');
$("#terima_transaksi").prop('disabled', false);
@@ -343,6 +385,7 @@
let dtacct = $('#dtacct').val();
let ktacct = $('#ktacct').val();
let auth_user = $('#auth_user').val(); //letak user
+ let jenisserahan = $('#jenisserahan').val();
// Denominasi bundle
let bundle1 = $('#bundle1').val();
@@ -372,72 +415,316 @@
});
return false;
}
+ let SwalPengesahan = '';
- Swal.fire({
- title: 'Memuatkan...',
- allowEscapeKey: false,
- allowOutsideClick: false,
- didOpen: function () {
- Swal.showLoading();
- $('#denominasiHQModal').modal('hide');
- }
- });
+ if(jenisserahan == 'biasa')
+ {
+ Swal.fire({
+ title: 'Memuatkan...',
+ allowEscapeKey: false,
+ allowOutsideClick: false,
+ didOpen: function () {
+ Swal.showLoading();
+ $('#denominasiHQModal').modal('hide');
+ }
+ });
+ }else{
+ let SwalPengesahan = Swal.fire({
+ title: 'Tunggu Pengesahan Daripada Operasi.',
+ icon: 'info',
+ width: 600,
+ padding: '3em',
+ background: '#fffff',
+ showCancelButton: false,
+ showConfirmButton: false,
+ allowOutsideClick: false,
+ allowEscapeKey: false,
+ allowEnterKey: false,
+ didOpen: function () {
+ $('#denominasiHQModal').modal('hide');
+ }
+ });
+ }
- $.ajax({
- method: 'post',
- url: '{{ route("khazanah.pendahuluanserahanHQ") }}',
- data: {
- "_token": "{{ csrf_token() }}",
- 'amaun': amaun,
- 'jenisgldetail': jenis,
- 'keterangan': keterangan,
- 'kodcaw': kodcaw,
- 'teller': teller,
- 'dtacct': dtacct,
- 'ktacct': ktacct,
- 'auth_user': auth_user, // mskkan auth_user
- 'ambilansen1': sen1,
- 'ambilansen5': sen5,
- 'ambilansen10': sen10,
- 'ambilansen20': sen20,
- 'ambilansen50': sen50,
- 'ambilanring1': ringgit1,
- 'ambilanring5': ringgit5,
- 'ambilanring10': ringgit10,
- 'ambilanring20': ringgit20,
- 'ambilanring50': ringgit50,
- 'ambilanring100': ringgit100
- },
- success: function (data) {
- if (data == 'LULUS') {
+ let array_send = {
+ amaun: amaun,
+ jenisgldetail: jenis,
+ keterangan: keterangan,
+ kodcaw: kodcaw,
+ teller: teller,
+ dtacct: dtacct,
+ ktacct: ktacct,
+ auth_user: auth_user,
+ ambilansen1: sen1,
+ ambilansen5: sen5,
+ ambilansen10: sen10,
+ ambilansen20: sen20,
+ ambilansen50: sen50,
+ ambilanring1: ringgit1,
+ ambilanring5: ringgit5,
+ ambilanring10: ringgit10,
+ ambilanring20: ringgit20,
+ ambilanring50: ringgit50,
+ ambilanring100: ringgit100
+ };
+ this.sendRequest(array_send,jenisserahan);
+ }
+
+ function sendRequest(arraysend,jenisserahan){
+ if(jenisserahan == 'biasa'){
+ console.log(arraysend);
+ $.ajax({
+ method: 'post',
+ url: '{{ route("khazanah.pendahuluanserahanHQ") }}',
+ data: {
+ "_token": "{{ csrf_token() }}",
+ 'amaun': arraysend['amaun'],
+ 'jenisgldetail': arraysend['jenisgldetail'],
+ 'keterangan': arraysend['keterangan'],
+ 'kodcaw': arraysend['kodcaw'],
+ 'teller': arraysend['teller'],
+ 'dtacct': arraysend['dtacct'],
+ 'ktacct': arraysend['ktacct'],
+ 'auth_user': arraysend['auth_user'],
+ 'ambilansen1': arraysend['ambilansen1'],
+ 'ambilansen5': arraysend['ambilansen5'],
+ 'ambilansen10': arraysend['ambilansen10'],
+ 'ambilansen20': arraysend['ambilansen20'],
+ 'ambilansen50': arraysend['ambilansen50'],
+ 'ambilanring1': arraysend['ambilanring1'],
+ 'ambilanring5': arraysend['ambilanring5'],
+ 'ambilanring10': arraysend['ambilanring10'],
+ 'ambilanring20': arraysend['ambilanring20'],
+ 'ambilanring50': arraysend['ambilanring50'],
+ 'ambilanring100': arraysend['ambilanring100']
+ },
+ success: function (data) {
+ if (data == 'LULUS') {
+ Swal.fire({
+ icon: 'success',
+ title: 'Transaksi Berjaya',
+ allowEscapeKey: false,
+ allowOutsideClick: false
+ }).then(function () {
+ $('#denominasiHQModal').modal('hide');
+ $('#pendahuluanserahanModal').modal('hide');
+ location.reload();
+ });
+ } else if (data == 'GAGAL') {
+ Swal.fire({
+ icon: 'error',
+ title: 'Transaksi Gagal',
+ allowEscapeKey: false,
+ allowOutsideClick: false
+ }).then(function () {
+ $('#denominasiHQModal').modal('hide');
+ $('#pendahuluanserahanModal').modal('hide');
+ $("#terima_transaksi").prop('disabled', false);
+ });
+ }
+ },
+ error: function (jqXHR, textStatus, errorThrown) {
+ console.log(textStatus, errorThrown);
+ }
+ });
+ }else{
+ let approvalid = '';
+ $.ajax({
+ method: 'post',
+ url: '{{ route("khazanah.autoserahan") }}',
+ data: {
+ "_token": "{{ csrf_token() }}",
+ 'arraysend': arraysend
+ },
+ success:function(e){
+ approvalid = e.id;
+ if(e.status == 'success'){
+ Swal.update({
+ text: 'Menunggu Pengesahan Daripada Operasi!',
+ });
+ }
+ }
+ });
+
+ var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", {
+ cluster: 'ap1',
+ encrypted: true
+ });
+
+ var channel = pusher.subscribe('autoserahan-notice');
+ channel.bind('autoserahan-event', function(data) {
+ console.log(data,approvalid,kodcaw,teller);
+ if(data.pengesahan === 'Lulus' && data.id == approvalid && data.kodlaluan == teller)
+ {
Swal.fire({
icon: 'success',
- title: 'Transaksi Berjaya',
- allowEscapeKey: false,
- allowOutsideClick: false
- }).then(function () {
- $('#denominasiHQModal').modal('hide');
- $('#pendahuluanserahanModal').modal('hide');
- location.reload();
+ title: 'Serahan V3/Auto Pendahuluan V2 Berjaya',
+ text: 'Operasi berjaya meluluskan Serahan ke V3 dan Auto Pendahuluan dari V2!'
+ }).then(function(){
+ location.reload();
});
- } else if (data == 'GAGAL') {
+ }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){
Swal.fire({
icon: 'error',
- title: 'Transaksi Gagal',
- allowEscapeKey: false,
- allowOutsideClick: false
- }).then(function () {
- $('#denominasiHQModal').modal('hide');
- $('#pendahuluanserahanModal').modal('hide');
- $("#terima_transaksi").prop('disabled', false);
+ title: 'Serahan V3/Auto Pendahuluan V2 Dibatalkan',
+ text: 'Operasi membatalkan Serahan ke V3 dan Auto Pendahuluan dari V2!'
+ }).then(function(){
+ location.reload();
});
}
- },
- error: function (jqXHR, textStatus, errorThrown) {
- console.log(textStatus, errorThrown);
- }
- });
+
+ });
+ }
+
}
+ function deleteautoserahan(e){
+ let recno = $(e).data('recno');
+ let pend = $(e).data('pend');
+ let ser = $(e).data('ser');
+
+ let SwalPengesahan = Swal.fire({
+ title: 'Tunggu Pengesahan Daripada Operasi.',
+ icon: 'info',
+ width: 600,
+ padding: '3em',
+ background: '#fffff',
+ showCancelButton: false,
+ showConfirmButton: false,
+ allowOutsideClick: false,
+ allowEscapeKey: false,
+ allowEnterKey: false,
+ });
+
+ let approvalid = '';
+ $.ajax({
+ method: 'post',
+ url: '{{ route("khazanah.autoserahan") }}',
+ data: {
+ "_token": "{{ csrf_token() }}",
+ 'do_delete': true,
+ 'recno' : recno,
+ 'kodcaw' : kodcaw,
+ 'teller' : teller,
+ 'amaun' : (pend > 0 ) ? pend : ser
+ },
+ success:function(e){
+ approvalid = e.id;
+ if(e.status == 'success'){
+ Swal.update({
+ text: 'Menunggu Pengesahan Daripada Operasi!',
+ });
+ }
+ }
+ });
+
+ var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", {
+ cluster: 'ap1',
+ encrypted: true
+ });
+
+ var channel = pusher.subscribe('autoserahan-notice');
+ channel.bind('autoserahan-event', function(data) {
+ console.log(data,approvalid,teller,kodcaw);
+ if(data.pengesahan === 'Lulus' && data.id == approvalid && data.kodlaluan == teller)
+ {
+ Swal.fire({
+ icon: 'success',
+ title: 'Serahan V3/Auto Pendahuluan V2 Berjaya',
+ text: 'Operasi berjaya meluluskan Serahan ke V3 dan Auto Pendahuluan dari V2!'
+ }).then(function(){
+ location.reload();
+ });
+ }else if(data.pengesahan == 'Batal' && data.id == approvalid && data.kodlaluan == teller){
+ Swal.fire({
+ icon: 'error',
+ title: 'Serahan V3/Auto Pendahuluan V2 Dibatalkan',
+ text: 'Operasi membatalkan Serahan ke V3 dan Auto Pendahuluan dari V2!'
+ }).then(function(){
+ location.reload();
+ });
+ }else{
+ Swal.fire({
+ icon: 'error',
+ title: 'Auto Serahan Mengalami Ralat',
+ text: 'Auto Serahan tidak berjaya!'
+ }).then(function(){
+ location.reload();
+ });
+ }
+
+
+ });
+ }
+
+ const getCurrentDate = () => {
+ const today = new Date();
+ const day = String(today.getDate()).padStart(2, '0');
+ const month = String(today.getMonth() + 1).padStart(2, '0');
+ const year = today.getFullYear();
+
+ return `${day}/${month}/${year}`;
+ };
+
+ function triggerValue(){
+ let form = $('form[name="autoserah"]');
+ form.find('[name="tarikh"]').val(getCurrentDate());
+ }
+
+ $('#autoSerahanModal').on('shown.bs.modal', function () {
+ $('input[name="denominasi"]').attr('style','display: block');
+ $('.denominasi').attr('style','display: block');
+ triggerValue();
+ });
+
+ function terima_autoserah(){
+ let form = $('form[name="autoserah"]');
+
+ let amaun = form.find('[name="amaun"]').val();
+ let keterangan = form.find('[name="keterangan"]').val();
+ let dtacct = form.find('[name="dtacct"]').val();
+ let ktacct = form.find('[name="ktacct"]').val();
+
+ if(!amaun){
+ $("[name='erroramaun']").show();
+ $("[name='erroramaun']").text("*Isikan amaun dalam input!");
+ $("[name='amaun']").addClass('is-invalid');
+ boolamaun = true;
+ }else{
+ $("[name='erroramaun']").hide();
+ $("[name='amaun']").removeClass('is-invalid');
+ boolamaun = false;
+ }
+
+ if(!keterangan){
+ $("[name='errorketerangan']").show();
+ $("[name='errorketerangan']").text("*Isikan keterangan dalam input!");
+ $("[name='keterangan']").addClass('is-invalid');
+ boolketerangan = true;
+ }else{
+ $("[name='errorketerangan']").hide();
+ $("[name='keterangan']").removeClass('is-invalid');
+ boolketerangan = false;
+ }
+
+ // If all validations pass
+ if(boolamaun === false && boolketerangan === false) {
+ // Carry all validated values, including auth_user
+
+ $('#amaundiminta').val(amaun);
+ $('#denominasiHQModal').modal('show');
+ $('#autoSerahanModal').modal('hide');
+ $('#jenisjenis').val('serahan');
+ $('#jenisserahan').val('auto');
+
+ return true;
+ }else{
+ $("#terima_transaksi_autoserah").prop('disabled', false);
+ event.preventDefault();
+ return false;
+ }
+ }
+
+
@endsection
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index cfdcc626..777e5ede 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -8,7 +8,15 @@
- SISTEM AR-RAHN
+
+ @if (isset($cawangan_info['details_caw']) && $cawangan_info['details_caw'] == 'Putatan')
+ v2 Putatan Lama
+ @elseif (isset($cawangan_info['details_caw']) && $cawangan_info['details_caw'] == 'Putatan 2')
+ v2 Putatan Baru
+ @else
+ SISTEM AR-RAHN
+ @endif
+
@@ -114,6 +122,10 @@
border-bottom:none;
}
+ .text-gold {
+ color: gold !important;
+ }
+
@@ -131,21 +143,49 @@
@endphp
-
+
';
diff --git a/resources/views/layouts/app_operasi.blade.php b/resources/views/layouts/app_operasi.blade.php
index ddda7341..32b86c29 100644
--- a/resources/views/layouts/app_operasi.blade.php
+++ b/resources/views/layouts/app_operasi.blade.php
@@ -126,37 +126,7 @@
var audio = new Audio("{{ asset('sound/3.wav') }}");
audio.muted = true;
- // Enable pusher logging - don't include this in production
- Pusher.logToConsole = false;
-
- var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", {
- cluster: 'ap1',
- encrypted: true
- });
-
- var channel = pusher.subscribe('operasi-notify');
- channel.bind('operasi-event', function(data) {
- let message = JSON.stringify(data);
-
- $('#bell').css("color", "red");
- $('#linkz').text(data.namateller + " Pohon Kelulusan");
- $("#linkz").attr("href", "{{ url('kelulusan') }}");
-
- if(window.location.pathname === '/operasi/kelulusan')
- {
- location.reload();
- }else{
- audio.play();
- audio.muted = false;
- var countlagu = 1;
- audio.onended = function() {
- if(countlagu <= 3){
- countlagu++;
- this.play();
- }
- }
- }
- const Toast = Swal.mixin({
+ const Toast = Swal.mixin({
toast: true,
position: 'top-end',
showConfirmButton: false,
@@ -166,7 +136,67 @@
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
- })
+ });
+
+ // Enable pusher logging - don't include this in production
+ Pusher.logToConsole = false;
+
+ var pusher = new Pusher("{{ env('PUSHER_APP_KEY') }}", {
+ cluster: 'ap1',
+ encrypted: true
+ });
+
+ var kelulusanhapus = pusher.subscribe('notice-kelulusan');
+ kelulusanhapus.bind('my-kelulusan', function(data) {
+ if(data.tagoperasi == 1){
+ let message = JSON.stringify(data);
+
+ $('#bell').css("color", "red");
+ $('#linkz').text(data.namateller + " Pohon Kelulusan Dihapuskan");
+ $("#linkz").attr("href", "{{ url('kelulusan') }}");
+ if(window.location.pathname === '/operasi/kelulusan')
+ location.reload();
+ else{
+ audio.play();
+ audio.muted = false;
+ var countlagu = 1;
+ audio.onended = function() {
+ if(countlagu <= 3){
+ countlagu++;
+ this.play();
+ }
+ }
+ }
+ Toast.fire({
+ icon: 'info',
+ title: 'Kelulusan Dipohon Sekarang!'
+ });
+ }
+ });
+
+
+ var channel = pusher.subscribe('operasi-notify');
+ channel.bind('operasi-event', function(data) {
+ let message = JSON.stringify(data);
+
+ $('#bell').css("color", "red");
+ $('#linkz').text(data.namateller + " Pohon Kelulusan");
+ $("#linkz").attr("href", "{{ url('kelulusan') }}");
+
+ if(window.location.pathname === '/operasi/kelulusan')
+ {
+ location.reload();
+ }else{
+ audio.play();
+ audio.muted = false;
+ var countlagu = 1;
+ audio.onended = function() {
+ if(countlagu <= 3){
+ countlagu++;
+ this.play();
+ }
+ }
+ }
Toast.fire({
icon: 'error',
diff --git a/resources/views/modal/autoserahan.blade.php b/resources/views/modal/autoserahan.blade.php
new file mode 100644
index 00000000..ca56f53f
--- /dev/null
+++ b/resources/views/modal/autoserahan.blade.php
@@ -0,0 +1,49 @@
+
+
diff --git a/resources/views/modal/denominasimodalpendahuluanserahan.blade.php b/resources/views/modal/denominasimodalpendahuluanserahan.blade.php
index 0ba00966..7b7e068f 100644
--- a/resources/views/modal/denominasimodalpendahuluanserahan.blade.php
+++ b/resources/views/modal/denominasimodalpendahuluanserahan.blade.php
@@ -132,6 +132,7 @@
+
diff --git a/resources/views/modal/historytebus.blade.php b/resources/views/modal/historytebus.blade.php
index eb5a3b27..4ecb8f39 100644
--- a/resources/views/modal/historytebus.blade.php
+++ b/resources/views/modal/historytebus.blade.php
@@ -1,6 +1,12 @@
+
+@php
+$reportNames = [
+ 'serahan' => 'LAPORAN SERAHAN HQ',
+ 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3',
+ 'pendahuluan' => 'LAPORAN PENDAHULUAN HQ',
+ 'online' => 'LAPORAN SERAHAN ONLINE HQ',
+ 'serahankepadav3' => 'LAPORAN SERAHAN KEPADA V3',
+ 'serahanlelong' => 'LAPORAN SERAHAN LELONG HQ',
+ 'serahanonline' => 'LAPORAN SERAHAN DAN SERAHAN ONLINE HQ',
+ 'all' => 'LAPORAN KESELURUHAN HQ'
+];
+
+$displayJenisLaporan = $reportNames[$jenisLaporan] ?? 'Laporan Tidak Diketahui';
+@endphp
- LAPORAN PENDAHULUAN/SERAHAN HQ
+ {{-- LAPORAN PENDAHULUAN/SERAHAN HQ --}}
+ {{ $displayJenisLaporan }} (arOSv2)
diff --git a/resources/views/print/laporan_stokauditkhasbysag.blade.php b/resources/views/print/laporan_stokauditkhasbysag.blade.php
new file mode 100644
index 00000000..e5b53970
--- /dev/null
+++ b/resources/views/print/laporan_stokauditkhasbysag.blade.php
@@ -0,0 +1,428 @@
+@extends('layouts.app')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@section('content')
+
+
+
+
+
+
+ Home
+ Laporan
+ SA(Blast Whatsapp)
+ Stok Audit Khas (Blast Whatsapp)
+
+
+
+
+
+
+
+ {{-- Blast Whatsapp & SMS --}}
+ @csrf
+
+
+
+
+
+
+ Laporan Stok Audit Khas (Blast Whatsapp)
+
+ Tarikh Cetak:
+ @php
+ $myDateTime = DateTime::createFromFormat('Y-m-d', $tarikh_cetak);
+ $formattedweddingdate = $myDateTime->format('d-m-Y');
+ echo $formattedweddingdate;
+ @endphp
+
+
+
+
+ Dari Tempoh: {{$daritempoh}} hingga Tempoh: {{$hinggatempoh}}
+
+
+
+
+
+
+
+
+ Bil
+
+ Nama
+ No. KP
+ No. Telefon
+ Norujukan
+ Tempoh
+ Berat
+ Nilai Marhun (RM)
+ Pembiayaan Asal (RM)
+ Baki Pembiayaan (RM)
+ Keuntungan Belum Bayar (RM)
+
+ @php
+ $counter = 1;
+ $totalpinjaman = 0;
+
+ // Sort ikut norujukan
+ $rekod = collect($stokaudit[0])->sortBy('norujukan')->values();
+ @endphp
+
+ @foreach ($rekod as $item)
+ @php
+ $status = $item['blasted'] == null ? 'Belum' : 'Selesai';
+ $totalpinjaman += $item['pinjaman'];
+ @endphp
+
+
+ {{ $counter }}
+
+ {{ $item['customer']['nama'] ?? '-' }}
+ {{ $item['nokp'] }}
+ {{ $item['customer']['telefon'] ?? '-' }}
+ {{ $item['norujukan'] }}
+ {{ $item['tempoh'] }}
+ {{ $item['berat'] }}
+ {{ number_format($item['nilaimarhun'], 2) }}
+ {{ number_format($item['pinjaman'], 2) }}
+ {{ number_format($item['bakipjm'], 2) }}
+ {{ number_format($item['tunggakan'], 2) }}
+
+ @php $counter++; @endphp
+ @endforeach
+
+
+ Jumlah
+ {{ number_format(collect($rekod)->sum('berat'), 2) }}
+ {{ number_format(collect($rekod)->sum('nilaimarhun'), 2) }}
+ {{ number_format(collect($rekod)->sum('pinjaman'), 2) }}
+ {{ number_format(collect($rekod)->sum('bakipjm'), 2) }}
+ {{ number_format(collect($rekod)->sum('tunggakan'), 2) }}
+
+
+
+
+
+
+
+{{--
+
+
+ ..................................................................
+
+ ..................................................................
+
+
+
+
+ DI SEMAK
+
+ DI SAHKAN
+
+
+
--}}
+
+
+
+
+
+
+
+
+@endsection
diff --git a/resources/views/print/laporan_tuntutbaki.blade.php b/resources/views/print/laporan_tuntutbaki.blade.php
index 17c7bff4..06733372 100644
--- a/resources/views/print/laporan_tuntutbaki.blade.php
+++ b/resources/views/print/laporan_tuntutbaki.blade.php
@@ -230,8 +230,8 @@
{{ $counter }}
@php
-
- $gadaidetail = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/gadai/norujukan/' . $item['norujukan'])->json();
+ // $gadaidetail = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/gadai/norujukan/' . $item['norujukan'])->json();
+ $gadaidetail = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/gadai/norujukankodcaw/' . $item['kodcaw'] . '/' . $item['norujukan'])->json();
$customer_detail = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/customers/' . $gadaidetail[0][0]['nokp'])->json();
echo $customer_detail['nama'];
@endphp
diff --git a/resources/views/print/resit/tambah_pinjaman.blade.php b/resources/views/print/resit/tambah_pinjaman.blade.php
index 41e47286..a1011624 100644
--- a/resources/views/print/resit/tambah_pinjaman.blade.php
+++ b/resources/views/print/resit/tambah_pinjaman.blade.php
@@ -464,11 +464,21 @@
}