Merged in izzati-hotfix-carian-nama (pull request #311)
Izzati hotfix carian nama
This commit is contained in:
@@ -337,6 +337,22 @@ class CallCenterController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
@@ -365,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');
|
||||
@@ -383,6 +505,52 @@ class CallCenterController extends Controller
|
||||
}
|
||||
|
||||
|
||||
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();
|
||||
@@ -994,32 +1162,41 @@ class CallCenterController extends Controller
|
||||
|
||||
|
||||
public function pilihPelangganProceed(Request $request)
|
||||
{
|
||||
$customerData = $request->input('customer');
|
||||
|
||||
{
|
||||
$customerData = $request->input('customer');
|
||||
$kodcaw = $request->input('kodcaw');
|
||||
|
||||
if ($customerData) {
|
||||
$customer = json_decode(base64_decode($customerData), true);
|
||||
$kodcaw = $customer['kodcaw'];
|
||||
Session::put('customer_info_arcc', $customer);
|
||||
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'] ?? '',
|
||||
]
|
||||
);
|
||||
|
||||
$api_url = config('api.url');
|
||||
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])
|
||||
->get($api_url . '/api/cawangan/' . $kodcaw)->json();
|
||||
// Simpan dalam session
|
||||
Session::put('customer_info_arcc', $customer_info);
|
||||
Session::put('kodcaw', $kodcaw);
|
||||
Session::put('noic', $customer_info['kpbaru'] ?? $customer_info['kplama']);
|
||||
|
||||
return redirect()->route('arcc.customer_info', [
|
||||
'customer_info' => $customer,
|
||||
'cawangan_info' => $cawangan_info,
|
||||
'api_url' => $api_url
|
||||
]);
|
||||
$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.');
|
||||
}
|
||||
|
||||
return redirect()->route('arcc.pelanggan')->with('failed', 'Pelanggan tidak sah dipilih.');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function ajaxSearchCustomer(Request $request)
|
||||
{
|
||||
$search = strtolower($request->query('search', ''));
|
||||
@@ -1031,4 +1208,170 @@ class CallCenterController extends Controller
|
||||
|
||||
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.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,943 @@
|
||||
@extends('layouts.app_callcenter')
|
||||
|
||||
@section('content')
|
||||
<style>
|
||||
.file {
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
#loadingOverlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.overlay-background {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.overlay-spinner {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
<div class="container">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb pb-3">
|
||||
<li class="breadcrumb-item"><a href="{{ route('home') }}">Home</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">Pengenalan Diri</li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="text-center">
|
||||
<h5 class="text-uppercase">Masukkan Nombor Kad Pengenalan Atau Nama Pelanggan</h5>
|
||||
<form id="searchForm" action="{{ route('arcc.searchpelanggannama') }}" method="GET" class="mb-3">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-9">
|
||||
<div class="input-group">
|
||||
<!-- Input IC/Passport -->
|
||||
<input type="text" class="form-control" id="noic" name="noic"
|
||||
placeholder="No.KP/Passport" autocomplete="off">
|
||||
|
||||
<!-- Dropdown jenis ID -->
|
||||
<select class="form-select" id="idType" name="idType" style="max-width: 120px;">
|
||||
<option value="nokp">No.KP</option>
|
||||
<option value="passport">Passport</option>
|
||||
</select>
|
||||
|
||||
<!-- Butang Cari -->
|
||||
<button class="btn btn-outline-primary" type="submit">Cari</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="text-center">Atau</div>
|
||||
|
||||
{{-- Form carian Nama --}}
|
||||
<form id="searchForm2" action="{{ route('arcc.cariannama') }}" method="GET">
|
||||
<div class="row justify-content-center mt-2">
|
||||
<div class="col-md-9">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="nama" name="nama"
|
||||
placeholder="Nama Pelanggan">
|
||||
<button class="btn btn-outline-primary" type="submit">Cari</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Spinner Overlay -->
|
||||
<div id="loadingOverlay" style="display: none;">
|
||||
<div class="overlay-background"></div>
|
||||
<div class="overlay-spinner">
|
||||
<div class="spinner-border text-light" role="status"></div>
|
||||
<div style="color: white; margin-top: 10px;">Carian sedang diproses...</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div class="row justify-content-center mt-2">
|
||||
@if ($message = Session::get('success'))
|
||||
<div class="alert alert-success">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@elseif ($message = Session::get('failed'))
|
||||
<div class="alert alert-danger">
|
||||
<p>{{ $message }}</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- Modal No KP -->
|
||||
<div class="modal fade" id="daftar_pelanggan" tabindex="-1" data-backdrop="static" aria-labelledby="ModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="ModalLabel">Daftar Pelanggan</h5>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{{ route('customer.store') }}" onsubmit="verifycustomer()" method="POST">
|
||||
@csrf
|
||||
<div class="row form-group">
|
||||
<div class="col-md-6">
|
||||
<div class="row form-group">
|
||||
<div class="col-md-4">Nama</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="name" id="name" autocomplete="off" placeholder="Nama"></div>
|
||||
<div class="col-md-4">No KP</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="noic" id="noic" value="{{$noic ?? ''}}" readonly></div>
|
||||
<div class="col-md-4">Tarikh Lahir</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="tarikh_lahir" id="tarikh_lahir" readonly></div>
|
||||
<div class="col-md-4">Negeri Lahir</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="negeri_lahir" id="negeri_lahir" readonly></div>
|
||||
<div class="col-md-4">Jantina</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="jantina" id="jantina" readonly></div>
|
||||
<div class="col-md-4">No Telefon 1</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="main_phone" id="main_phone" autocomplete="off" placeholder="No Telefon"></div>
|
||||
<div class="col-md-4">No Telefon 2</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="alternate_phone" id="alternate_phone" autocomplete="off" placeholder="No Telefon"></div>
|
||||
<div class="col-md-12 ml-4">
|
||||
<div class="form-group row">
|
||||
<div class="form-check form-check-inline">
|
||||
<input checked class="form-check-input" type="checkbox" id="warganegara" name="warganegara" value="warganegara">
|
||||
<label class="form-check-label" for="warganegara">Warganegara</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input checked class="form-check-input" type="checkbox" id="bumiputera" name="bumiputera" value="bumiputera">
|
||||
<label class="form-check-label" for="bumiputera">Bumiputera</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">Agama</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="agama" id="agama">
|
||||
<option selected value="01">Islam</option>
|
||||
<option value="02">Hindu</option>
|
||||
<option value="03">Buddha</option>
|
||||
<option value="04">Kristian</option>
|
||||
<option value="05">Lain-lain</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Ahli</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="kumpulan_sahabat" id="kumpulan_sahabat">
|
||||
<option value="0">Tidak</option>
|
||||
<option value="1">Kumpulan PKINK</option>
|
||||
<option value="2">Sahabat</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="row form-group">
|
||||
<div class="col-md-4">Alamat</div>
|
||||
<div class="col-md-8"><textarea class="form-control" style="resize:none" name="alamat" id="alamat" cols="30" rows="3" placeholder="Alamat Pelanggan"></textarea></div>
|
||||
<div class="col-md-4">Poskod</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="poskod" id="poskod" autocomplete="off" placeholder="Poskod"></div>
|
||||
<div class="col-md-4">Daerah</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="daerah" id="daerah" readonly autocomplete="off"></div>
|
||||
<div class="col-md-4">Negeri</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="negeri" id="negeri" readonly autocomplete="off"></div>
|
||||
<div class="col-md-4">Umur</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="age" id="age" readonly></div>
|
||||
<div class="col-md-4">Bangsa</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="bangsa" id="bangsa">
|
||||
<option selected value="M">Melayu</option>
|
||||
<option value="C">Cina</option>
|
||||
<option value="I">India</option>
|
||||
<option value="L">Lain-lain</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4"> Nama Bank</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="bank_name" data-placeholder="Pilih Bank" id="bank_name">
|
||||
<option disabled selected value> -- Pilih Bank -- </option>
|
||||
@foreach($bank as $banks)
|
||||
<option value="{{ $banks['abbreviation'] }}">{{ $banks['name'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">No Akaun Bank</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="no_akaun" id="no_akaun" placeholder="No Akaun Bank"></div>
|
||||
<div class="col-md-4">Tujuan Pembiayaan</div>
|
||||
@php
|
||||
$tujuangadai = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/tujuangadai')->json();
|
||||
@endphp
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="tujuan_gadai" data-placeholder="Pilih Tujuan Gadai" id="tujuan_gadai">
|
||||
<option disabled selected value> -- Pilih Tujuan Pembiayaan -- </option>
|
||||
@foreach($tujuangadai as $tujuan)
|
||||
<option value="{{ $tujuan['keterangan'] }}">{{ $tujuan['keterangan'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Pekerjaan</div>
|
||||
@php
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json();
|
||||
@endphp
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="pekerjaan" data-placeholder="Pilih Pekerjaan" id="pekerjaan">
|
||||
<option disabled selected value> -- Pilih Pekerjaan -- </option>
|
||||
@foreach($pekerjaan as $kerja)
|
||||
<option value="{{ $kerja['kodkerja'] }}">{{ $kerja['keterangan'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Nota</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="nota" id="nota" placeholder="Nota"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="text" hidden name="idtype" value="nokp">
|
||||
<button type="button" class="btn btn-danger" data-dismiss="modal">Batal</button>
|
||||
<input type="submit" name="submit" class="btn btn-primary" value="Terima">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal Passport -->
|
||||
<div class="modal fade" id="passport_pelanggan" tabindex="-1" data-backdrop="static" aria-labelledby="ModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="ModalLabel">Daftar Pelanggan</h5>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form action="{{ route('customer.store') }}" onsubmit="verifycustomerpassport()" method="POST">
|
||||
@csrf
|
||||
<div class="row form-group">
|
||||
<div class="col-md-6">
|
||||
<div class="row form-group">
|
||||
<div class="col-md-4">Nama</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="name" id="passport_name" autocomplete="off" placeholder="Nama"></div>
|
||||
<div class="col-md-4">No Passport</div>
|
||||
<div class="col-md-8"><input class="form-control" readonly type="text" name="noic" id="passport_noic" value="{{$noic ?? ''}}"></div>
|
||||
<div class="col-md-4">Tarikh Lahir</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" placeholder="Tarikh Lahir" onchange="calculatePassportAge()" name="tarikh_lahir" id="passport_tarikh_lahir"></div>
|
||||
<div class="col-md-4">Jantina</div>
|
||||
<div class="col-md-8">
|
||||
<select name="jantina" id="jantina_passport" class="form-control">
|
||||
<option value="Lelaki" selected>Lelaki</option>
|
||||
<option value="Perempuan">Perempuan</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">No Telefon 1</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="main_phone" id="passport_main_phone" autocomplete="off" placeholder="No Telefon"></div>
|
||||
<div class="col-md-4">No Telefon 2</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="alternate_phone" id="passport_alternate_phone" autocomplete="off" placeholder="No Telefon"></div>
|
||||
<div class="col-md-4">Agama</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="agama" id="passport_agama">
|
||||
<option selected value="01">Islam</option>
|
||||
<option value="02">Hindu</option>
|
||||
<option value="03">Buddha</option>
|
||||
<option value="04">Kristian</option>
|
||||
<option value="05">Lain-lain</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Ahli</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="kumpulan_sahabat" id="passport_kumpulan_sahabat">
|
||||
<option value="0">Tidak</option>
|
||||
<option value="1">Kumpulan PKINK</option>
|
||||
<option value="2">Sahabat</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="row form-group">
|
||||
<div class="col-md-4">Alamat</div>
|
||||
<div class="col-md-8"><textarea class="form-control" style="resize:none" name="alamat" id="passport_alamat" cols="30" rows="3" placeholder="Alamat Pelanggan"></textarea></div>
|
||||
<div class="col-md-4">Poskod</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="poskod" id="passport_poskod" autocomplete="off" placeholder="Poskod"></div>
|
||||
<div class="col-md-4">Daerah</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="daerah" id="passport_daerah" readonly autocomplete="off"></div>
|
||||
<div class="col-md-4">Negeri</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="negeri" id="passport_negeri" readonly autocomplete="off"></div>
|
||||
<div class="col-md-4">Umur</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="age" id="passport_age" readonly></div>
|
||||
<div class="col-md-4">Bangsa</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="bangsa" id="passport_bangsa">
|
||||
<option selected value="M">Melayu</option>
|
||||
<option value="C">Cina</option>
|
||||
<option value="I">India</option>
|
||||
<option value="L">Lain-lain</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Bank</div>
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="bank_name" data-placeholder="Pilih Bank" id="passport_bank_name">
|
||||
<option disabled selected value> -- Pilih Bank -- </option>
|
||||
@foreach($bank as $banks)
|
||||
<option value="{{ $banks['abbreviation'] }}">{{ $banks['name'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">No Akaun Bank</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="no_akaun" id="passport_no_akaun" placeholder="No Akaun Bank"></div>
|
||||
<div class="col-md-4">Tujuan Pembiayaan</div>
|
||||
@php
|
||||
$tujuangadai = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/tujuangadai')->json();
|
||||
@endphp
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="tujuan_gadai" data-placeholder="Pilih Tujuan Gadai" id="passport_tujuan_gadai">
|
||||
<option disabled selected value> -- Pilih Tujuan Pembiayaan -- </option>
|
||||
@foreach($tujuangadai as $tujuan)
|
||||
<option value="{{ $tujuan['keterangan'] }}">{{ $tujuan['keterangan'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Pekerjaan</div>
|
||||
@php
|
||||
$pekerjaan = Http::withOptions(['verify' => config('app.api_verify')])->get($api_url . '/api/pekerjaan')->json();
|
||||
@endphp
|
||||
<div class="col-md-8">
|
||||
<select class="form-control" name="pekerjaan" data-placeholder="Pilih Pekerjaan" id="passport_pekerjaan">
|
||||
<option disabled selected value> -- Pilih Pekerjaan -- </option>
|
||||
@foreach($pekerjaan as $kerja)
|
||||
<option value="{{ $kerja['kodkerja'] }}">{{ $kerja['keterangan'] }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-4">Nota</div>
|
||||
<div class="col-md-8"><input class="form-control" type="text" name="nota" id="passport_nota" placeholder="Nota"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="text" hidden name="idtype" value="passport">
|
||||
<button type="button" class="btn btn-danger" data-dismiss="modal">Batal</button>
|
||||
<input type="submit" name="submit" class="btn btn-primary" value="Terima">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const form = document.getElementById('searchForm');
|
||||
const overlay = document.getElementById('loadingOverlay');
|
||||
|
||||
form.addEventListener('submit', function () {
|
||||
overlay.style.display = 'block';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const form = document.getElementById('searchForm2');
|
||||
const overlay = document.getElementById('loadingOverlay');
|
||||
|
||||
form.addEventListener('submit', function () {
|
||||
overlay.style.display = 'block';
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var api_url = "<?php echo $api_url ?>";
|
||||
var search = "<?php echo $search ?>";
|
||||
var type_id = "<?php echo $idtype ?>";
|
||||
$(document).ready(function(){
|
||||
$('#passport_tarikh_lahir').datepicker({
|
||||
format: 'dd/mm/yyyy',
|
||||
endDate: new Date()
|
||||
});
|
||||
var noic = $('#noic').val();
|
||||
identifyIC(noic);
|
||||
|
||||
if(search == true){
|
||||
Swal.fire({
|
||||
icon: 'info',
|
||||
title: 'Pelanggan Tiada Dalam Rekod!',
|
||||
text: 'Sila Daftar Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
function calculatePassportAge(){
|
||||
var passport_lahir = $('#passport_tarikh_lahir').val();
|
||||
var split_date = passport_lahir.split('/');
|
||||
var count_leap_year = countLeapYears(split_date[2],split_date[1],split_date[0]) - 1;
|
||||
|
||||
var start = new Date(split_date[2] + '-' + split_date[1] + '-' + split_date[0]),
|
||||
end = new Date(),
|
||||
diff = new Date(end - start),
|
||||
days = ((diff/1000/60/60/24)- count_leap_year)/365;
|
||||
|
||||
var age = parseInt(days);
|
||||
$('#passport_age').val(age);
|
||||
}
|
||||
|
||||
function newcustomer(){
|
||||
var id_type = $('#customerIDType').val();
|
||||
if(id_type=='nokp'){
|
||||
$('#daftar_pelanggan').modal('show');
|
||||
}else if(id_type=='passport'){
|
||||
$('#passport_pelanggan').modal('show');
|
||||
}
|
||||
}
|
||||
|
||||
$('#warganegara').on('click',function(){
|
||||
if(this.checked == false) {
|
||||
$('#bumiputera').prop('checked',false);
|
||||
}
|
||||
});
|
||||
|
||||
$('#bumiputera').on('click',function(){
|
||||
if(this.checked) {
|
||||
$('#warganegara').prop('checked',true);
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on("click", ".browse", function() {
|
||||
var file = $(this).parents().find(".file");
|
||||
file.trigger("click");
|
||||
});
|
||||
$('input[type="file"]').change(function(e) {
|
||||
var fileName = e.target.files[0].name;
|
||||
$("#file").val(fileName);
|
||||
|
||||
var reader = new FileReader();
|
||||
reader.onload = function(e) {
|
||||
// get loaded data and render thumbnail.
|
||||
document.getElementById("preview").src = e.target.result;
|
||||
};
|
||||
// read the image file as a data URL.
|
||||
reader.readAsDataURL(this.files[0]);
|
||||
});
|
||||
|
||||
$('#poskod').change(function(){
|
||||
var poskod = this.value;
|
||||
|
||||
$.ajax({
|
||||
method:'GET',
|
||||
url:api_url+'/api/poskod/'+poskod,
|
||||
success:function(poskod_detail){
|
||||
var koddaerah = poskod_detail['koddaerah'];
|
||||
var kodnegeri = poskod_detail['kodnegeri'];
|
||||
$.ajax({
|
||||
url:api_url+'/api/negeri/'+kodnegeri,
|
||||
method:'GET',
|
||||
success:function(negeri){
|
||||
$('#negeri').val(negeri['negeri']);
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url:api_url+'/api/daerah/'+koddaerah,
|
||||
method:'GET',
|
||||
success:function(daerah){
|
||||
$('#daerah').val(daerah['namadaerah']);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$('#passport_poskod').change(function(){
|
||||
var poskod = this.value;
|
||||
|
||||
$.ajax({
|
||||
method:'GET',
|
||||
url:api_url+'/api/poskod/'+poskod,
|
||||
success:function(poskod_detail){
|
||||
var koddaerah = poskod_detail['koddaerah'];
|
||||
var kodnegeri = poskod_detail['kodnegeri'];
|
||||
$.ajax({
|
||||
url:api_url+'/api/negeri/'+kodnegeri,
|
||||
method:'GET',
|
||||
success:function(negeri){
|
||||
$('#passport_negeri').val(negeri['negeri']);
|
||||
}
|
||||
});
|
||||
$.ajax({
|
||||
url:api_url+'/api/daerah/'+koddaerah,
|
||||
method:'GET',
|
||||
success:function(daerah){
|
||||
$('#passport_daerah').val(daerah['namadaerah']);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function verifycustomer(){
|
||||
var customername = $('#name').val();
|
||||
var customeralamat = $('#alamat').val();
|
||||
var customerposkod = $('#poskod').val();
|
||||
var customerphone = $('#main_phone').val();
|
||||
var customerphone_alternate = $('#alternate_phone').val();
|
||||
var age = $('#age').val();
|
||||
if(age < 18){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Umur Pelanggan Tidak Mencukupi 18 Tahun'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(customername == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nama Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(customeralamat == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Alamat Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(customerposkod == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Poskod'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if(customerposkod.length != 5){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa Poskod'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if($.isNumeric(customerposkod) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa Poskod'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(customerphone == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if((customerphone.length < 9 || customerphone.length >= 12)){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if($.isNumeric(customerphone) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nombor Sahaja Pada No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(customerphone_alternate != ''){
|
||||
if(customerphone_alternate.length < 8 && customerphone_alternate.length > 12){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if($.isNumeric(customerphone_alternate) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nombor Sahaja Pada No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function verifycustomerpassport(){
|
||||
var customername = $('#passport_name').val();
|
||||
var customeralamat = $('#passport_alamat').val();
|
||||
var customerposkod = $('#passport_poskod').val();
|
||||
var customerphone = $('#passport_main_phone').val();
|
||||
var customerphone_alternate = $('#passport_alternate_phone').val();
|
||||
var tarikh_lahir = $('#passport_tarikh_lahir').val();
|
||||
var age = $('#passport_age').val();
|
||||
|
||||
if(age < 18){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Umur Pelanggan Tidak Mencukupi 18 Tahun'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(customername == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nama Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(tarikh_lahir == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Tarikh Lahir Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(customeralamat == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Alamat Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(customerposkod == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Poskod'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if(customerposkod.length != 5){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa Poskod'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if($.isNumeric(customerposkod) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa Poskod'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(customerphone == ''){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if(customerphone.length <= 9 || customerphone.length >= 12){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if($.isNumeric(customerphone) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nombor Sahaja Pada No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(customerphone_alternate != ''){
|
||||
if(customerphone_alternate.length <= 8 && customerphone_alternate.length >= 12){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}else{
|
||||
if($.isNumeric(customerphone_alternate) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nombor Sahaja Pada No Telefon Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function identifyIC(noic){
|
||||
if(noic.match(/^(\d{2})(\d{2})(\d{2})-?\d{2}-?\d{4}$/)) {
|
||||
var year = noic.slice(0,2);
|
||||
var month = noic.slice(2,4);
|
||||
var day = noic.slice(4,6);
|
||||
var nl = noic.slice(6,8);
|
||||
var last_ic = noic.slice(8,12);
|
||||
|
||||
var now = new Date().getFullYear().toString();
|
||||
|
||||
var decade = now.substr(0, 2);
|
||||
if (now.substr(2,2) > year) {
|
||||
year = parseInt(decade.concat(year.toString()), 10);
|
||||
}
|
||||
|
||||
if (parseInt(last_ic,10)%2 != 0){
|
||||
var jantina = 'Lelaki';
|
||||
}
|
||||
else{
|
||||
var jantina = 'Perempuan';
|
||||
}
|
||||
|
||||
var johor_ic = ['01','21','22','23','24'];
|
||||
var kedah_ic = ['02','25','26','27'];
|
||||
var kelantan_ic = ['03','28','29'];
|
||||
var melaka_ic = ['04','30'];
|
||||
var negeri_ic = ['05','31','59'];
|
||||
var pahang_ic = ['06','32','33'];
|
||||
var penang_ic = ['07','34','35'];
|
||||
var perak_ic = ['08','36','37','38','39'];
|
||||
var perlis_ic = ['09','40'];
|
||||
var selangor_ic = ['10','41','42','43','44'];
|
||||
var terengganu_ic = ['11','45','46'];
|
||||
var sabah_ic = ['12','47','48','49'];
|
||||
var sarawak_ic = ['13','50','51','52','53'];
|
||||
var kl_ic = ['14','54','55','56','57'];
|
||||
var labuan_ic = ['15','58'];
|
||||
var putrajaya_ic = ['16'];
|
||||
var unknown_ic = ['82'];
|
||||
|
||||
if(johor_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Johor';
|
||||
}else if(kedah_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Kedah';
|
||||
}else if(kelantan_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Kelantan';
|
||||
}else if(melaka_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Melaka';
|
||||
}else if(negeri_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Negeri Sembilan';
|
||||
}else if(pahang_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Pahang';
|
||||
}else if(penang_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Pulau Pinang';
|
||||
}else if(perak_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Perak';
|
||||
}else if(perlis_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Perlis';
|
||||
}else if(selangor_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Selangor';
|
||||
}else if(terengganu_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Terengganu';
|
||||
}else if(sabah_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Sabah';
|
||||
}else if(sarawak_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Sarawak';
|
||||
}else if(kl_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Kuala Lumpur';
|
||||
}else if(labuan_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Labuan';
|
||||
}else if(putrajaya_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Putrajaya';
|
||||
}else if(unknown_ic.indexOf(nl)>=0){
|
||||
var negeri_lahir = 'Negeri Tidak Diketahui';
|
||||
}
|
||||
var date = new Date(year, (month - 1), day, 0, 0, 0, 0);
|
||||
var tarikh_lahir_test = date.getFullYear() + '-' + month + '-' + day;
|
||||
|
||||
var count_leap_year = countLeapYears(date.getFullYear(),month,day) - 1;
|
||||
|
||||
var start = new Date(tarikh_lahir_test),
|
||||
end = new Date(),
|
||||
diff = new Date(end - start),
|
||||
days = ((diff/1000/60/60/24)- count_leap_year)/365;
|
||||
|
||||
var age = parseInt(days);
|
||||
$('#age').val(age);
|
||||
var tarikh_lahir = day + '/' + month + '/' + date.getFullYear();
|
||||
$('#jantina').val(jantina);
|
||||
$('#tarikh_lahir').val(tarikh_lahir);
|
||||
$('#negeri_lahir').val(negeri_lahir);
|
||||
}
|
||||
}
|
||||
|
||||
var countLeapYears = function(y,m,d){
|
||||
var yearNow = new Date().getFullYear(),
|
||||
yearThen = y,
|
||||
beginYear = 0,
|
||||
endYear = 0,
|
||||
leapYearCount = 0;
|
||||
|
||||
var isLeapYear = function(year){
|
||||
return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
|
||||
}
|
||||
|
||||
if(yearNow < y){
|
||||
beginYear = yearNow;
|
||||
endYear = y;
|
||||
}else if(yearNow > y){
|
||||
beginYear = y;
|
||||
endYear = yearNow;
|
||||
}else if(yearNow == y){
|
||||
beginYear = y;
|
||||
endYear = y;
|
||||
}
|
||||
|
||||
for(i = beginYear; i <= endYear; i++){
|
||||
if(isLeapYear(i)){
|
||||
leapYearCount++;
|
||||
}
|
||||
}
|
||||
|
||||
return leapYearCount;
|
||||
}
|
||||
var regex = /^[a-zA-Z0-9]+$/g;
|
||||
|
||||
function verifynokp(){
|
||||
var id_type = $('#customerIDType').val();
|
||||
var nokp = $('#noic').val();
|
||||
if(id_type === 'nokp'){
|
||||
if(!$.isNumeric(nokp)){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Nombor Sahaja Pada No KP Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
if(nokp.length != 12){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa No KP Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
}else if(id_type=='passport'){
|
||||
if(nokp.length < 5){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa Passport Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(nokp.indexOf(' ') > 0){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Masukkan Passport Tanpa Ruang \'Kosong\' \n e.g(AP1111111)'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(regex.test(nokp) == false){
|
||||
Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'Amaran!',
|
||||
text: 'Sila Periksa Passport Pelanggan'
|
||||
});
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<a href="{{ route('arcc.pelanggan') }}" class="btn btn-secondary mt-3">Kembali</a>
|
||||
<h4 class="text-center mb-4">Senarai Pelanggan Dijumpai</h4>
|
||||
<a href="javascript:window.history.go(-1);" class="btn btn-secondary mt-3">Kembali</a>
|
||||
<h4 class="text-center mb-4">Senarai Cawangan Dijumpai</h4>
|
||||
@if(session('customer_list') && count(session('customer_list')) > 0)
|
||||
<table class="table table-bordered table-hover" style="background-color: #f9f9f9;">
|
||||
<thead class="thead-light">
|
||||
@@ -31,6 +31,7 @@
|
||||
<form action="{{ route('arcc.pilihpelanggan.proceed') }}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="customer" value="{{ base64_encode(json_encode($customer)) }}">
|
||||
<input type="hidden" name="kodcaw" value="{{ $customer['kodcaw'] ?? '' }}">
|
||||
<button type="submit" class="btn btn-sm btn-primary">Pilih</button>
|
||||
</form>
|
||||
</td>
|
||||
@@ -42,6 +43,6 @@
|
||||
<div class="alert alert-warning">Tiada pelanggan dijumpai.</div>
|
||||
@endif
|
||||
|
||||
<a href="{{ route('arcc.pelanggan') }}" class="btn btn-secondary mt-3">Kembali</a>
|
||||
<a href="javascript:window.history.go(-1);" class="btn btn-secondary mt-3">Kembali</a>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
@extends('layouts.app_callcenter')
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<a href="javascript:window.history.go(-1);" class="btn btn-secondary mt-3">Kembali</a>
|
||||
<h4 class="text-center mb-4">Senarai Nama Pelanggan Dijumpai</h4>
|
||||
@if(session('customer_list') && count(session('customer_list')) > 0)
|
||||
<table class="table table-bordered table-hover" style="background-color: #f9f9f9;">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th>Nama</th>
|
||||
<th>No KP</th>
|
||||
<!-- <th>Nama Cawangan</th> -->
|
||||
<th>Tindakan</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach(session('customer_list') as $customer)
|
||||
<tr>
|
||||
<td>{{ $customer['nama'] }}</td>
|
||||
<td> @php
|
||||
if($customer['kpbaru'] != null){
|
||||
$noic = $customer['kpbaru'];
|
||||
}else{
|
||||
$noic = $customer['kplama'];
|
||||
}
|
||||
@endphp
|
||||
{{ $noic }}</td>
|
||||
<!-- <td>{{ $customer['nama_cawangan'] }}</td> -->
|
||||
<td>
|
||||
<form action="{{ route('arcc.searchpelanggannama') }}" method="GET">
|
||||
@csrf
|
||||
<input type="hidden" name="customer" value="{{ base64_encode(json_encode($customer)) }}">
|
||||
<input type="hidden" name="kodcaw" value="{{ $customer['kodcaw'] ?? '' }}">
|
||||
<input type="hidden" name="noic" value="{{ $noic ?? '' }}">
|
||||
<button type="submit" class="btn btn-sm btn-primary">Pilih</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@else
|
||||
<div class="alert alert-warning">Tiada pelanggan dijumpai.</div>
|
||||
@endif
|
||||
|
||||
<a href="javascript:window.history.go(-1);" class="btn btn-secondary mt-3">Kembali</a>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -2,27 +2,30 @@
|
||||
|
||||
@section('content')
|
||||
<div class="container">
|
||||
<div class="row justify-content-center mt-5">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="row justify-content-center mt-5">
|
||||
<div class="col-md-10">
|
||||
<div class="card shadow-sm">
|
||||
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb pb-3">
|
||||
<li class="breadcrumb-item"><a href="#">Home</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">Call Center</li>
|
||||
<ol class="breadcrumb mb-0">
|
||||
<li class="breadcrumb-item"><a href="#">Home</a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page">Call Center</li>
|
||||
</ol>
|
||||
</nav>
|
||||
</nav>
|
||||
|
||||
<div class="card-body text-center px-4">
|
||||
<div class="d-flex flex-wrap justify-content-center gap-3">
|
||||
<a href="{{ route('arcc.pelanggan') }}" class="btn btn-info btn-lg m-2">Pelanggan</a>
|
||||
<a href="{{ route('arcc.notisperingatanpertama') }}" class="btn btn-info btn-lg m-2">Notis Peringatan Pertama</a>
|
||||
<a href="{{ route('arcc.notisperingatankedua') }}" class="btn btn-info btn-lg m-2">Notis Peringatan Kedua</a>
|
||||
<a href="{{ route('arcc.pelanggannew') }}" class="btn btn-info btn-lg m-2">Carian Nama Pelanggan</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card-body text-center">
|
||||
<a href="{{ route('arcc.pelanggan') }}" class="btn btn-info btn-lg">Pelanggan</a>
|
||||
<a href="{{ route('arcc.notisperingatanpertama') }}" class="btn btn-info btn-lg">Notis Peringatan Pertama</a>
|
||||
<a href="{{ route('arcc.notisperingatankedua') }}" class="btn btn-info btn-lg">Notis Peringatan Kedua</a>
|
||||
{{-- <a href="{{ route('daftar.kakitangan') }}" class="btn btn-info btn-lg">Kakitangan</a>
|
||||
<a href="{{ route('parameter') }}" class="btn btn-info btn-lg">Parameter</a>
|
||||
<a href="{{ route('komuditi') }}" class="btn btn-info btn-lg">Komoditi</a> --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
||||
|
||||
@@ -440,6 +440,12 @@ Route::get('/arcc/tanyaupah/{norujukan}',['as'=>'tanyaupah','uses' => 'CallCente
|
||||
Route::get('/pilihpelanggan',['as'=>'arcc.pilihpelanggan','uses' => 'CallCenterController@pilihPelanggan'])->middleware('auth','callcenter');
|
||||
Route::post('/pilihpelanggan/proceed', ['as'=>'arcc.pilihpelanggan.proceed','uses' => 'CallCenterController@pilihPelangganProceed'])->middleware('auth','callcenter');
|
||||
Route::get('/ajax/search-customer',['as'=>'arcc.ajaxSearchCustomer','uses' => 'CallCenterController@ajaxSearchCustomer'])->middleware('auth','callcenter');
|
||||
Route::get('/arcc/cariannama',['as'=>'arcc.cariannama','uses'=>'CallCenterController@cariannama'])->middleware('auth','callcenter');
|
||||
Route::get('/pilihpelanggannama',['as'=>'arcc.pilihpelanggannama','uses' => 'CallCenterController@pilihpelanggannama'])->middleware('auth','callcenter');
|
||||
Route::post('/pilihpelanggannamacaw', ['as'=>'arcc.pilihpelanggannamacaw','uses' => 'CallCenterController@pilihPelanggannamacaw'])->middleware('auth','callcenter');
|
||||
Route::get('/arcc/pelanggannew',['as'=>'arcc.pelanggannew','uses'=>'CallCenterController@pelanggannew'])->middleware('auth','callcenter');
|
||||
Route::get('/arcc/searchpelanggannama',['as'=>'arcc.searchpelanggannama','uses'=>'CallCenterController@searchnama'])->middleware('auth','callcenter');
|
||||
Route::get('/arcc/customer_info_nama',['as'=>'arcc.customer_info_nama','uses'=>'CallCenterController@infonama'])->middleware('auth','callcenter');
|
||||
|
||||
//taraf pc atau ppc
|
||||
Route::get('/cawangan/notisperingatan',['as'=>'laporan.notisperingatan','uses'=>'KhazanahController@notisperingatan'])->middleware('auth','khazanah');
|
||||
|
||||
Reference in New Issue
Block a user