diff --git a/app/Http/Controllers/CustomersController.php b/app/Http/Controllers/CustomersController.php
index 10b5c78..7b8f14c 100644
--- a/app/Http/Controllers/CustomersController.php
+++ b/app/Http/Controllers/CustomersController.php
@@ -173,6 +173,18 @@ class CustomersController extends Controller
$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)){
+
+ $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();
+
+ }
+
$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,
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index cda0864..795194a 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -31,6 +31,7 @@ class HomeController extends Controller
$auth_user = Auth::user();
$api_url = config('api.url');
+
if(session()->has('iklan') && session()->get('iklan') == 0)
{
session()->put('iklan', 1);
@@ -40,6 +41,7 @@ class HomeController extends Controller
}
}
+
if($auth_user['roles'] == 'teller'){
if($auth_user['role_harian'] == 'teller'){
$cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
@@ -55,13 +57,14 @@ class HomeController extends Controller
}
}
elseif($auth_user['roles'] == 'pc' || $auth_user['roles'] == 'ppc'){
+ $countkhazanah = 0;
$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/serah_marhun/khazanah/'. $auth_user['cawangan'])->json();
$listserah = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/listSerahMarhunController/'.$auth_user['cawangan'])->json();
$countkhazanah = sizeof($gadai) + sizeof($listserah);
-
+
return view('homepage.khazanah.home',compact('cawangan_info','api_url','countkhazanah'));
}
else{
diff --git a/app/Http/Middleware/NoHttpCache.php b/app/Http/Middleware/NoHttpCache.php
index d76a5eb..21392d2 100644
--- a/app/Http/Middleware/NoHttpCache.php
+++ b/app/Http/Middleware/NoHttpCache.php
@@ -31,10 +31,10 @@ class NoHttpCache
/**
* @var $headers \Symfony\Component\HttpFoundation\HeaderBag
*/
- $response->header('Pragma', 'no-cache');
- $response->header('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT');
- $response->header('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private');
+ $response->headers->set('Pragma', 'no-cache');
+ $response->headers->set('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT');
+ $response->headers->set('Cache-Control', 'no-cache, must-revalidate, no-store, max-age=0, private');
return $response;
}
-}
\ No newline at end of file
+}
diff --git a/config/filesystems.php b/config/filesystems.php
index 94c8112..6298208 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -48,6 +48,11 @@ return [
'root' => storage_path('app'),
],
+ 'supports' => [
+ 'driver' => 'local',
+ 'root' => storage_path('drivers'),
+ ],
+
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
diff --git a/public/js/iris-mykad-websocket-client-api.js b/public/js/iris-mykad-websocket-client-api.js
index 6101f3d..a8af13b 100644
--- a/public/js/iris-mykad-websocket-client-api.js
+++ b/public/js/iris-mykad-websocket-client-api.js
@@ -1,258 +1,294 @@
-WebSocketManager = {
- url:"",
+WebSocketManager = {
+ url:"",
init: function(url) {
WebSocketManager.url = url;
- },
- open: function(callback, slot) {
+ },
+ open: function(callback, slot) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"OPEN","Slot":"'+ slot +'"}');
- };
+ wsocket.send('{"Cmd":"OPEN","Slot":"'+ slot +'"}');
+ };
wsocket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
wsocket.close();
callback(obj);
- };
-
- },
- listReader: function(callback) {
+ };
+
+ },
+ listReader: function(callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"LIST_READER"}');
- };
+ wsocket.send('{"Cmd":"LIST_READER"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode);
- };
-
- },
+ };
+
+ wsocket.onerror = evt => {
+ let hideLoader = () => {
+ let pageLoader = document.getElementById('page_loader');
+ pageLoader.removeAttribute('class');
+ };
+
+ hideLoader();
+ wsocket.close();
+ Swal.fire({
+ icon: 'error',
+ title: 'MyKad driver/services tidak dapat dikesan, sila pasang driver',
+ html: `
+
+
+
+
+ `,
+ showCancelButton: false,
+ showConfirmButton: false,
+ willOpen: () => {
+ const yes = document.querySelector('button.btn-yes')
+ const download_driver = document.querySelector('button.btn-download-driver')
+
+ yes.addEventListener('click', () => {
+ swal.close();
+ })
+
+ download_driver.addEventListener('click', () => {
+ window.location.href = mykad_reader_driver_endpoint;
+ })
+ }
+ });
+
+ };
+ },
close: function(callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
wsocket.send('{"Cmd":"CLOSE"}');
- };
+ };
wsocket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
wsocket.close();
callback(obj);
};
- },
- verifyFPTemplate: function(callback, ThumbCode, Bas64FPLeft, Bas64FPRight) {
+ },
+ verifyFPTemplate: function(callback, ThumbCode, Bas64FPLeft, Bas64FPRight) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"VERIFY_FP_TEMPLATE","ThumbCode":"'+ ThumbCode +'","Bas64FPLeft":"'+ Bas64FPLeft +'","Bas64FPRight":"'+ Bas64FPRight +'"}');
- };
+ wsocket.send('{"Cmd":"VERIFY_FP_TEMPLATE","ThumbCode":"'+ ThumbCode +'","Bas64FPLeft":"'+ Bas64FPLeft +'","Bas64FPRight":"'+ Bas64FPRight +'"}');
+ };
wsocket.onmessage = function (evt) {
var obj = JSON.parse(evt.data);
wsocket.close();
- callback(obj.RespCode, obj.RespMessage);
- };
-
+ callback(obj.RespCode, obj.RespMessage);
+ };
+
},
- readMyKad: function (callback) {
+ readMyKad: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_MYKAD"}');
- };
+ wsocket.send('{"Cmd":"READ_MYKAD"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readAllText: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_ALL_TEXT"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readPhoto: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_PHOTO"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readBio: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_BIO"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- readMyKid: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"READ_MYKID"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioEnrol: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_ENROL"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- //var data = JSON.parse(obj.RespMessage);
- wsocket.close();
- callback(obj);
- };
- },
- getThumbImage: function (callback) {
- wsocket = new WebSocket(WebSocketManager.url);
- wsocket.onopen = function () {
- wsocket.send('{"Cmd":"GET_MYKAD_THUMB_IMAGE"}');
- };
- wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
+ var obj = JSON.parse(evt.data);
var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- getThumbBin1: function (callback) {
+ };
+ },
+ readAllText: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"GET_THUMB_BIN1"}');
- };
+ wsocket.send('{"Cmd":"READ_ALL_TEXT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- getThumbBin2: function (callback) {
+ };
+ },
+ readPhoto: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"GET_THUMB_BIN2"}');
- };
+ wsocket.send('{"Cmd":"READ_PHOTO"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioEnrolBin1: function (callback) {
+ };
+ },
+ readBio: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN1"}');
- };
+ wsocket.send('{"Cmd":"READ_BIO"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ readMyKid: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"READ_MYKID"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ FPBioEnrol: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"FP_BIO_ENROL"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
//var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(obj);
- };
- },
- FPBioEnrolBin2: function (callback) {
+ };
+ },
+ getThumbImage: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN2"}');
- };
+ wsocket.send('{"Cmd":"GET_MYKAD_THUMB_IMAGE"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ getThumbBin1: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"GET_THUMB_BIN1"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ getThumbBin2: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"GET_THUMB_BIN2"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ },
+ FPBioEnrolBin1: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN1"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
//var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(obj);
- };
- },
- FPBioVerify: function (callback) {
+ };
+ },
+ FPBioEnrolBin2: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_ENROL_BIN2"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ //var data = JSON.parse(obj.RespMessage);
wsocket.close();
- callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyBin: function (callback) {
+ callback(obj);
+ };
+ },
+ FPBioVerify: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyLeft: function (callback) {
+ };
+ },
+ FPBioVerifyBin: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_LEFT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyBinLeft: function (callback) {
+ };
+ },
+ FPBioVerifyLeft: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_LEFT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_LEFT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyRight: function (callback) {
+ };
+ },
+ FPBioVerifyBinLeft: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_RIGHT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_LEFT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- },
- FPBioVerifyBinRight: function (callback) {
+ };
+ },
+ FPBioVerifyRight: function (callback) {
wsocket = new WebSocket(WebSocketManager.url);
wsocket.onopen = function () {
- wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_RIGHT"}');
- };
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_RIGHT"}');
+ };
wsocket.onmessage = function (evt) {
- var obj = JSON.parse(evt.data);
- var data = JSON.parse(obj.RespMessage);
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
wsocket.close();
callback(data, obj.RespCode, obj.RespSW12AndApiName);
- };
- }
+ };
+ },
+ FPBioVerifyBinRight: function (callback) {
+ wsocket = new WebSocket(WebSocketManager.url);
+ wsocket.onopen = function () {
+ wsocket.send('{"Cmd":"FP_BIO_VERIFY_BIN_RIGHT"}');
+ };
+ wsocket.onmessage = function (evt) {
+ var obj = JSON.parse(evt.data);
+ var data = JSON.parse(obj.RespMessage);
+ wsocket.close();
+ callback(data, obj.RespCode, obj.RespSW12AndApiName);
+ };
+ }
}
diff --git a/public/js/mykad-reader-customer.js b/public/js/mykad-reader-customer.js
index caca8e5..3c53b65 100644
--- a/public/js/mykad-reader-customer.js
+++ b/public/js/mykad-reader-customer.js
@@ -205,7 +205,7 @@ let original_photo_loader = document.querySelector("#photo-mykad").src;
let mykad_modal = document.querySelector("#daftar_pelanggan_mykad_reader");
let photo_container = mykad_modal.querySelector("#photo-mykad-container");
- modal_form.querySelector("input[name='name']").value = data.OrgName;
+ modal_form.querySelector("textarea[name='name']").value = data.OrgName;
modal_form.querySelector("input[name='noic']").value = getMyKadNumberWithoutHypens(data.IDNum);
modal_form.querySelector("input[name='tarikh_lahir']").value = getFormattedDateOfBirth(data.BirthDate);
modal_form.querySelector("input[name='negeri_lahir']").value = data.BirthPlace;
diff --git a/public/js/postcode-concerns.js b/public/js/postcode-concerns.js
new file mode 100644
index 0000000..6ad4ae5
--- /dev/null
+++ b/public/js/postcode-concerns.js
@@ -0,0 +1,172 @@
+let handlePoskodDetail_NotFound_MyKad = (modal) => {
+
+
+ let input_negeri = modal.querySelector('input#negeri');
+ let input_daerah = modal.querySelector('input#daerah');
+ let select_daerah = modal.querySelector('select#select-daerah');
+
+ handlePoskodDetail_NotFound(modal, input_negeri, input_daerah, select_daerah);
+}
+
+let handlePoskodDetail_Found_MyKad = (modal) => {
+
+ let input_negeri = modal.querySelector('input#negeri');
+ let input_daerah = modal.querySelector('input#daerah');
+ let select_daerah = modal.querySelector('select#select-daerah');
+
+ handlePoskodDetail_Found(input_negeri, input_daerah, select_daerah);
+}
+
+let handlePoskodDetail_NotFound_Passport = (modal) => {
+
+ let input_negeri = modal.querySelector('input#passport_negeri');
+ let input_daerah = modal.querySelector('input#passport_daerah');
+ let select_daerah = modal.querySelector('select#select-daerah');
+
+ handlePoskodDetail_NotFound(modal, input_negeri, input_daerah, select_daerah);
+}
+
+let handlePoskodDetail_Found_Passport = (modal) => {
+
+ let input_negeri = modal.querySelector('input#passport_negeri');
+ let input_daerah = modal.querySelector('input#passport_daerah');
+ let select_daerah = modal.querySelector('select#select-daerah');
+
+ handlePoskodDetail_Found(input_negeri, input_daerah, select_daerah);
+}
+
+let handlePoskodDetail_NotFound = (modal, input_negeri, input_daerah, select_daerah) => {
+
+ input_daerah.closest('div.col-md-8').style.display = 'none';
+ input_daerah.disabled = true;
+ input_daerah.required = false;
+
+ select_daerah.closest('div.col-md-8').style.display = 'block';
+ select_daerah.disabled = false;
+ select_daerah.readOnly = false;
+ select_daerah.required = true;
+
+ input_negeri.value = '';
+ input_negeri.placeholder = '';
+
+ let getAllNegeri = () => {
+ return fetch(api_url + '/api/daerah');
+ };
+
+ $(select_daerah).attr("data-placeholder","Sila pilih daerah");
+ $(select_daerah).val('').trigger('change');
+
+ getAllNegeri()
+ .then(response => response.json())
+ .then(x => x.map(y => {
+ return {
+ "id": y.namadaerah,
+ "text": y.namadaerah + ' - ' + y.negeri.negeri,
+ "data-koddaerah": y.koddaerah,
+ }
+ }))
+ .then(x => {
+ $(select_daerah).select2({
+ placeholder: "Sila pilih daerah pelanggan",
+ closeOnSelect: true,
+ dropdownPosition: 'below',
+ data: x,
+ dropdownParent: $(modal),
+ });
+ })
+ .then(() => $(select_daerah).val('').trigger('change'));
+
+};
+
+let handlePoskodDetail_Found = (input_negeri, input_daerah, select_daerah) => {
+
+ select_daerah.closest('div.col-md-8').style.display = 'none';
+ select_daerah.disabled = 'true';
+ select_daerah.required = false;
+
+ input_daerah.closest('div.col-md-8').style.display = 'block';
+ input_daerah.disabled = false;
+ input_daerah.required = true;
+
+ input_negeri.readOnly = true;
+ input_negeri.placeholder = '';
+ input_daerah.readOnly = true;
+ input_daerah.placeholder = '';
+};
+
+$('select.select2-daerah').on('select2:select', function (e) {
+
+ let caller = e.target || e.srcElement;
+ let modal = caller.closest('div.modal.fade');
+ let input_negeri = modal.querySelector('input[name="negeri"]');
+
+ let selected_daerah = e.params.data;
+ let selected_kod_daerah = selected_daerah['data-koddaerah'];
+
+ let getDaerahDetail = (koddaerah) => {
+ return fetch(api_url + '/api/daerah/' + koddaerah)
+ .then(response => response.json())
+ .then(x => fetch(api_url + '/api/negeri/' + x.kodnegeri))
+ .then(response => response.json())
+ };
+
+ let populatePostcodeRegistrationInputs = (koddaerah, kodnegeri) => {
+ const input_koddaerah = document.createElement("input");
+ input_koddaerah.className = "d-none";
+ input_koddaerah.name = "koddaerah";
+ input_koddaerah.value = koddaerah;
+
+ const input_kodnegeri = document.createElement("input");
+ input_kodnegeri.className = "d-none";
+ input_kodnegeri.name = "kodnegeri";
+ input_kodnegeri.value = kodnegeri;
+
+ modal.querySelector('form').appendChild(input_koddaerah);
+ modal.querySelector('form').appendChild(input_kodnegeri);
+ }
+
+ getDaerahDetail(selected_kod_daerah)
+ .then(x => {
+ populatePostcodeRegistrationInputs(selected_kod_daerah, x.kodnegeri)
+ return x;
+ })
+ .then(x => input_negeri.value = x.negeri);
+});
+
+$('#daftar_pelanggan_mykad_reader textarea#alamat').change(function(){
+ let modal = document.querySelector('#daftar_pelanggan_mykad_reader');
+ let input_poskod = modal.querySelector('input#poskod');
+ let input_daerah = modal.querySelector('input#daerah');
+ let input_negeri = modal.querySelector('input#negeri');
+ let select_daerah = modal.querySelector('select#select-daerah');
+
+ input_poskod.value = '';
+ input_poskod.readOnly = false;
+
+ input_daerah.value = '';
+ input_daerah.closest('div.col-md-8').style.display = 'none';
+ input_daerah.disabled = true;
+ input_daerah.readOnly = true;
+
+ select_daerah.closest('div.col-md-8').style.display = 'block';
+ select_daerah.disabled = true;
+ select_daerah.readOnly = false;
+
+ // Handle stubborn select2
+ let isSelect2exist = modal.querySelector('span.select2');
+
+ if(isSelect2exist){
+ modal.querySelector('span.select2')
+ .querySelector('span.select2-selection__rendered')
+ .textContent = '';
+
+ $(select_daerah).select2('destroy');
+ }
+
+ select_daerah.value = ''
+
+ input_negeri.value = '';
+ input_negeri.readOnly = true;
+
+ input_poskod.focus();
+});
diff --git a/resources/views/customers/index.blade.php b/resources/views/customers/index.blade.php
index 986a32f..934d9bf 100644
--- a/resources/views/customers/index.blade.php
+++ b/resources/views/customers/index.blade.php
@@ -6,6 +6,7 @@
visibility: hidden;
position: absolute;
}
+
@@ -40,6 +41,9 @@
@php
$user_cawangan = strtolower(auth()->user()->cawangan_kerja->details_caw);
$enabled_cawangan = array_map(fn($x) => strtolower($x), config('mykad-reader.enabled_cawangan'));
+
+ $is_in_pelanggan_main_page = request()->path() === 'pelanggan';
+
$is_enabled_to_use_mykad_reader = function () use($user_cawangan, $enabled_cawangan){
if(sizeof($enabled_cawangan) == 0){
@@ -55,7 +59,8 @@
};
@endphp
- @if( $is_enabled_to_use_mykad_reader() )
+
+ @if( $is_in_pelanggan_main_page && $is_enabled_to_use_mykad_reader() )
Baca MyKad
@endif
@@ -121,13 +126,7 @@
Ahli
-
-
-
+
@@ -137,15 +136,20 @@
Poskod
Daerah
-
+
+
+
+
+
+
Negeri
-
+
Umur
Bangsa