let button_read_mykad = document.getElementById("button_read_mykad"); let getMyKadDetail = () => { return fetch(mykad_reader_endpoint).then((response) => response.json()); }; let checkIfMyKadExist = (myKadNumber) => { const url = wakil_caricustomer_endpoint + '/?icno=' + myKadNumber; return fetch(url).then((response) => response.json()); }; let handleMyKadReader = () => { let myKadDetail; getMyKadDetail() .then(response => myKadDetail = response[0]) .then(() => checkIfMyKadExist(myKadDetail.IdNo)) .then(response => response[0]) .then(response => { if (response === 'no-data') { populateDaftarPelangganModal(myKadDetail); } else { let input_search_noic = document.getElementById("noic"); let form_search_noic = document.querySelector("form[name='frmsearch']"); input_search_noic.value = myKadDetail.IdNo; form_search_noic.submit(); } }) }; let populateDaftarPelangganModal = (data) => { let modal_form = document.querySelector(".modal-body .row.form-group"); const religions = [ ['01', 'Islam'], ['02', 'Hindu'], ['03', 'Buddha'], ['04', 'Kristian'], ['05', 'Lain-lain'], ]; const ethnicities = [ ['M', 'Melayu'], ['C', 'Cina'], ['I', 'India'], ['L', 'Lain-lain'], ]; let getCodeFromValue = (needle, haystack) => { let title_cased_text = needle.split(' ') .map(w => w[0].toUpperCase() + w.substring(1).toLowerCase()) .join(' '); return haystack.filter(x => x[1] == title_cased_text)[0][0]; }; let getFormattedDateOfBirth = (date_of_birth) => { const [year, month, day] = date_of_birth.split('-'); return day + '/' + month + '/' + year; }; let getAgeFromDateOfBirth = (date_of_birth) => { const [birth_year, birth_month, birth_day] = date_of_birth.split('-'); const count_leap_year = countLeapYears(birth_year, birth_month, birth_day) - 1; const start = new Date(date_of_birth), end = new Date(), diff = new Date(end - start), days = ((diff / 1000 / 60 / 60 / 24) - count_leap_year) / 365; return parseInt(days); }; modal_form.querySelector("input[name='name']").value = data.Name; modal_form.querySelector("input[name='noic']").value = data.IdNo; modal_form.querySelector("input[name='tarikh_lahir']").value = getFormattedDateOfBirth(data.DateOfBirth); modal_form.querySelector("input[name='negeri_lahir']").value = data.State; modal_form.querySelector("input[name='jantina']").value = data.Gender == 'L' ? 'Lelaki' : 'Perempuan'; modal_form.querySelector("select[name='agama']").value = getCodeFromValue(data.Religion, religions); modal_form.querySelector("textarea[name='alamat']").value = [data.Address1, data.Address2, data.Address3].join(", "); modal_form.querySelector("input[name='poskod']").value = data.Postcode; modal_form.querySelector("input[name='daerah']").value = data.Town; modal_form.querySelector("input[name='negeri']").value = data.State; modal_form.querySelector("input[name='age']").value = getAgeFromDateOfBirth(data.DateOfBirth); modal_form.querySelector("select[name='bangsa']").value = getCodeFromValue(data.Ethnicity, ethnicities); calculatePassportAge(); $('#daftar_pelanggan').modal('show'); }; button_read_mykad.addEventListener("click", handleMyKadReader);