tambah carian nama arcc

This commit is contained in:
Nur Izzati
2025-08-03 14:17:47 +08:00
parent b9fa797caa
commit a5da573ea7
5 changed files with 311 additions and 59 deletions
+196 -29
View File
@@ -338,50 +338,154 @@ class CallCenterController extends Controller
}
public function search(Request $request){
// dd($request->all());
$noic = $request->noic;
$nama = $request->nama;
$idtype = $request->customerIDType;
$kodcaw = $request->cawangan;
Session::put('noic', $noic);
Session::put('kodcaw', $kodcaw);
$api_url = config('api.url');
$auth_user = Auth::user();
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->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();
$request->session()->forget('page_reload');
$request->session()->forget('norujukan');
$search = true;
if($customer_info){
Session::put('customer_info_arcc',$customer_info);
return redirect()->route('arcc.customer_info', ['customer_info' => $customer_info,'cawangan_info'=>$cawangan_info,'api_url'=>$api_url]);
}else{
return redirect()->route('arcc.pelanggan')
->with('failed','Maaf,Tiada Data Pelanggan...');
// Simpan ke session hanya jika ada input
if ($noic) {
Session::put('noic', $noic);
}
if ($kodcaw) {
Session::put('kodcaw', $kodcaw);
}
$api_url = config('api.url');
$auth_user = Auth::user();
// Dapatkan maklumat cawangan jika kodcaw ada
$cawangan_info = null;
if ($kodcaw) {
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)
->json();
}
// Dapatkan senarai bank (jika perlu)
$bank = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/bank')->json();
// Bersihkan session yang tidak perlu
$request->session()->forget('page_reload');
$request->session()->forget('norujukan');
$customer_info = null;
// Cari ikut IC jika diisi
if ($noic) {
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customers/' . $noic)
->json();
}
// Kalau nama diberi & IC tidak jumpa
elseif ($nama) {
$queryParams = ['nama' => $nama];
if ($kodcaw) {
$queryParams['kodcaw'] = $kodcaw;
}
$response = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customers', $queryParams);
if ($response->successful()) {
$customers = $response->json();
// Jika lebih dari satu pelanggan dijumpai
if (is_array($customers) && count($customers) > 1) {
Session::put('customer_list', $customers);
return redirect()->route('arcc.pilihpelanggan');
}
// Jika satu pelanggan dijumpai
$customer_info = $customers[0] ?? null;
} else {
logger('API carian nama gagal: ' . $response->body());
}
}
// Jika berjaya jumpa pelanggan
if ($customer_info) {
Session::put('customer_info_arcc', $customer_info);
return redirect()->route('arcc.customer_info', [
'customer_info' => $customer_info,
'cawangan_info' => $cawangan_info,
'api_url' => $api_url
]);
}
// Gagal jumpa pelanggan
return redirect()->route('arcc.pelanggan')
->with('failed', 'Maaf, Tiada Data Pelanggan...');
}
public function info(Request $request){
$auth_user = Auth::user();
public function info(Request $request)
{
$customer = $request->input('customer_info');
if (!$customer || !isset($customer['kodcaw'])) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Maklumat pelanggan tidak lengkap.');
}
$kodcaw = $customer['kodcaw'];
$nokp = $customer['kpbaru'] ?? $customer['kplama'] ?? null;
if (!$nokp) {
return redirect()->route('arcc.pelanggan')->with('failed', 'No KP pelanggan tidak dijumpai.');
}
Session::put('noic', $nokp);
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. Session::get('kodcaw'))->json();
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json();
$bakilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . Session::get('kodcaw') . '/' . Session::get('noic') . '/baki')->json();
$rugilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . Session::get('kodcaw') . '/' . Session::get('noic') . '/rugi')->json();
// Maklumat cawangan
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)
->json();
$negeri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/negeri/')->json();
if (!isset($cawangan_info['version'])) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Maklumat cawangan tidak dijumpai.');
}
// Maklumat pelanggan
$customer_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/customers/' . $nokp)
->json();
if (!$customer_info || isset($customer_info['error'])) {
return redirect()->route('arcc.pelanggan')->with('failed', 'Pelanggan tidak wujud dalam sistem.');
}
// Data lelong
$bakilelong = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/bakilelong/cawangan/' . $kodcaw . '/' . $nokp . '/baki')
->json();
$rugilelong = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/bakilelong/cawangan/' . $kodcaw . '/' . $nokp . '/rugi')
->json();
// Negeri
$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'));
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');
@@ -966,4 +1070,67 @@ 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');
if ($customerData) {
$customer = json_decode(base64_decode($customerData), true);
$kodcaw = $customer['kodcaw'];
Session::put('customer_info_arcc', $customer);
$api_url = config('api.url');
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
->get($api_url . '/api/cawangan/' . $kodcaw)->json();
return redirect()->route('arcc.customer_info', [
'customer_info' => $customer,
'cawangan_info' => $cawangan_info,
'api_url' => $api_url
]);
}
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();
}
}