const view_travel_pcv = { ip_check: "#hdf_ip_check", div_travel: "div_travel_pcv", change_date_active_lock: 0, section_contract: "section_contract", view_data_ready: false, sale: { init: function () { $('#tab_sale a[href="#div_quote"]').tab('show'); $(".input_string_number").blur(function () { shared.Other.onlyGetNumber("#" + this.id); }); view_travel_pcv.sale.change_medical_plan(); $('#txt_departure_date').change(function () { view_travel_pcv.sale.change_date_active(1); }); $('#txt_return_date').change(function () { view_travel_pcv.sale.change_date_active(2); }); $('#txt_date_number').keyup(function () { view_travel_pcv.sale.change_date_active(3); }); }, action_init: function () { var code_encrypt = $("#hdf_code_encrypt").val(); if (shared.Valid.String(code_encrypt)) { view_travel_pcv.sale.update_init(); } else { view_travel_pcv.sale.insert_init(); } }, insert_init: function () { $('.selectpicker').selectpicker(); shared.ViewFunc.LoadValueSelectFirst('#drl_medical_plan'); shared.ViewFunc.LoadValueSelectFirst('#drl_personal_accident'); shared.CreateControl.DatePicker("#txt_departure_date"); shared.CreateControl.DatePicker("#txt_return_date"); }, update_init: function () { $('.selectpicker').selectpicker(); shared.ViewFunc.LoadValueSelectByClass('selectpicker'); shared.CreateControl.BirthdayPicker("#txt_departure_date"); shared.CreateControl.BirthdayPicker("#txt_return_date"); view_travel_pcv.sale.change_city('drl_buyer_city', 'drl_buyer_district'); }, contract_init: function () { $('.selectpicker').selectpicker(); shared.CreateControl.BirthdayPicker('.datebirthday'); $(".input_string_number").blur(function () { shared.Other.onlyGetNumber("#" + this.id); }); $(".input_string").blur(function () { $("#" + this.id).val($("#" + this.id).val().replaceAll(" ", "")) }); }, load_premium: function (_callback) { let dd = shared.GetInput.Div(view_travel_pcv.div_travel); const dd_check = shared.GetInput.Div('div_quote'); const dd_json = JSON.stringify(dd_check); const dd_code = CryptoJS.SHA256(dd_json).toString(); $(view_travel_pcv.ip_check).val(dd_code); //============================================================================================= dd = API.CreateDataSend('sale/travel/flex/price', dd); API.POST(dd, function (e) { if (_callback != null) _callback(true, e); else { $('#div_contain_premium').removeClass("d-none").addClass("visible"); $("#div_contain_image").removeClass("visible").addClass("hidden"); //============================================================================================= const from_date = $("#txt_departure_date").val(); const to_date = $("#txt_return_date").val(); const total_date = shared.DateTimeFunc.subtractionDate(from_date, to_date) + 1; $("#sp_date_total").text(total_date); //============================================================================================= let total_premium = parseFloat(e); $("#hdf_total_premium").val(total_premium); $("#sp_total_premium").text(Format.FormatNumberCurrencyVND(total_premium, ' VNĐ')); //============================================================================================= $("#sp_area_cover").text($("#drl_area_cover option:selected").text()); $("#sp_origin_country").text($("#drl_origin_country option:selected").text()); $("#sp_policy_type").text($("#drl_policy_type option:selected").text()); $("#sp_medical_plan_package").text($("#drl_medical_plan option:selected").text()); $("#sp_personal_accident").text($("#drl_personal_accident option:selected").text()); $("#sp_incidental_plan").text($("#drl_incidental_plan option:selected").text()); $("#sp_total_insured_person").text($("#txt_total_insured_person").val()); $("#sp_total_insured_person_child").text($("#txt_total_insured_person_child").val()); $("#sp_departure_date").text($("#txt_departure_date").val()); $("#sp_return_date").text($("#txt_return_date").val()); Loading.Hide(); } //if (_callback != null) _callback(); //else Loading.Hide(); }); }, load_contract: function (_callback) { let dd_code_check = $(view_travel_pcv.ip_check).val(); let dd_data_check = shared.GetInput.Div('div_quote'); let dd_json = JSON.stringify(dd_data_check); let dd_code = CryptoJS.SHA256(dd_json).toString(); if (dd_code_check !== dd_code) { func_notification.Warning("Thông tin bảo hiểm đã thay đổi, vui lòng kiểm tra lại phí."); return; } //============================================================================================= $('#tab_sale a[href="#div_contract"]').tab('show'); $("#div_btn_premium").removeClass("visible").addClass("hidden"); let dd = shared.GetInput.Div(view_travel_pcv.div_travel); dd = API.CreateDataSend('sale/travel/flex/contract', dd); API.POST(dd, function (data) { $('#div_contain_insured_person').html(data); view_travel_pcv.sale.contract_init(); view_travel_pcv.share.change_active_date(); shared.ViewFunc.LoadValueSelectByClass('js_contract'); shared.ViewFunc.LoadValueSelectByClass('js_insured'); shared.ViewFunc.ScrollId('#' + view_travel_pcv.div_travel); if (_callback != null) _callback(); else Loading.Hide(); }); }, change_city: function (_city_control_id, _district_control_id) { shared.ViewFunc.SelectPicker_Single_Remove_Option(_district_control_id); var root_id = $("#" + _city_control_id).val(); if (root_id !== '') { let dd = { root_id: root_id }; dd = API.CreateDataSend('base/load/district', dd); API.POST(dd, function (e) { Loading.Hide(); const dd_json = JSON.parse(e); shared.ViewFunc.SelectPickerAddOption(dd_json, "2", _district_control_id); }); } }, choose_answer: function (_question_id, _answer_id) { const elements = document.getElementsByClassName('btn_radio_' + _question_id); for (let i = 0; i < elements.length; i++) { if (elements[i].id === _answer_id) { $("#" + elements[i].id).prop("checked", true); } else { $("#" + elements[i].id).prop("checked", false); $("#answer_" + elements[i].id).val(""); } } }, change_medical_plan: function () { let config = $("#drl_medical_plan").find(':selected').attr('config'); if (config !== "") { config = JSON.parse(config); $("#sp_medical_plan").text(config.BENEFIT.MEDICAL_PLAN); $("#sp_post_discharge_care").text(config.BENEFIT.POST_DISCHARGE_CARE); $("#sp_emergency_evacuation").text(config.BENEFIT.EMERGENCY_EVACUATION); $("#sp_repatriation").text(config.BENEFIT.REPATRIATION); $("#sp_hospitalization_allowance").text(config.BENEFIT.HOSPITALIZATION_ALLOWANCE); $("#sp_additional_cost").text(config.BENEFIT.ADDITIONAL_COST); $("#sp_visit_family").text(config.BENEFIT.VISIT_FAMILY); $("#sp_children_back").text(config.BENEFIT.CHILDREN_BACK); $("#sp_repatriation_corpse").text(config.BENEFIT.REPATRIATION_CORPSE); $("#sp_luggage_belongings").text(config.BENEFIT.LUGGAGE_BELONGINGS); $("#sp_delay_luggage").text(config.BENEFIT.DELAY_LUGGAGE); $("#sp_lost_travel_document").text(config.BENEFIT.LOST_TRAVEL_DOCUMENT); $("#sp_lost_personal_money").text(config.BENEFIT.LOST_PERSONAL_MONEY); $("#sp_delay_trip_cost").text(config.BENEFIT.DELAY_TRIP_COST); $("#sp_delay_trip_money").text(config.BENEFIT.DELAY_TRIP_MONEY); $("#sp_cancel_trip").text(config.BENEFIT.CANCEL_TRIP); $("#sp_personal_responsibility").text(config.BENEFIT.PERSONAL_RESPONSIBILITY); $("#sp_sudden_return").text(config.BENEFIT.SUDDEN_RETURN); $("#sp_reimbursement_rental_car").text(config.BENEFIT.REIMBURSEMENT_RENTAL_CAR); } }, change_rental_car_protection: function () { const control_id = $("#drl_rental_car_protection").val(); if (control_id === "1c57af7a-1570-4301-9d11-cf42054a11f1") { $("#div_rental_car_contain").removeClass("d-none"); shared.CreateControl.DatePicker("#txt_rental_car_from"); shared.CreateControl.DatePicker("#txt_rental_car_to"); } else { $("#div_rental_car_contain").addClass("d-none"); } }, back_quote: function () { $('#tab_sale a[href="#div_quote"]').tab('show'); shared.ViewFunc.ScrollId('#' + view_travel_pcv.div_travel); $("#div_btn_premium").removeClass("hidden").addClass("visible"); }, register: function (_url, _callback) { _url ??= 'sale/travel/flex/register'; let dd = shared.GetInput.Div(view_travel_pcv.div_travel); dd = API.CreateDataSend(_url, dd); API.POST(dd, function (data) { if (_callback != null) { _callback(data); } else { $('#div_contract').html(data); shared.ViewFunc.ScrollId('#' + view_travel_pcv.div_travel); Loading.Hide(); } }); }, change_date_active: function (_type) { if (view_travel_pcv.change_date_active_lock < 1) { const from_date = $("#txt_departure_date").val(); const to_date = $("#txt_return_date").val(); let dd_total_day = Number($("#txt_date_number").val()) - 1; const dd_format = 'dd/MM/yyyy'; const dd_from_date = shared.DateTimeFunc.stringToDate(from_date, dd_format); let dd_to_date = shared.DateTimeFunc.stringToDate(to_date, dd_format); const dd_diff_day = Math.floor((dd_to_date.getTime() - dd_from_date.getTime()) / 86400000); if (_type === 1) { //update to day dd_to_date = shared.DateTimeFunc.addDays(dd_from_date, dd_total_day); } else if (_type === 2) { //update from day dd_total_day = dd_diff_day; } else if (_type === 3) { dd_to_date = shared.DateTimeFunc.addDays(dd_from_date, dd_total_day); } $("#txt_departure_date").val(shared.DateTimeFunc.convertDatetoString(dd_from_date)); $("#active_date").val(shared.DateTimeFunc.convertDatetoString(dd_from_date)); $("#inactive_date").val(shared.DateTimeFunc.convertDatetoString(dd_to_date)); $("#txt_return_date").val(shared.DateTimeFunc.convertDatetoString(dd_to_date)); $("#txt_date_number").val(dd_total_day + 1); view_travel_pcv.change_date_active_lock = 0; } }, change_chk_insured_person: function () { var ll_input = [ ["buyer_fullname", "full_name_1"], ["buyer_email", "insured_person_email_1"], ["buyer_phone", "insured_person_phone_1"], ["buyer_birthday", "date_of_birth_1"], ["buyer_gender", "gender_1"] ]; if ($('#chk_insured_person').is(":checked")) { for (var i = 0; i < ll_input.length; i++) { var dd_value = shared.Other.Input.GetValueByName(ll_input[i][0]); if (dd_value != null) { shared.Other.Input.SetValueByName(ll_input[i][1], dd_value); } } $("#drl_member_type_1").selectpicker('val', '9d8c1f93-5e81-425f-a024-c79efaa378d1'); var buyer_gender = $("#buyer_gender").val();//drl_insured_person_gender_ $("#drl_insured_person_gender_1").selectpicker('val', buyer_gender); } else { for (var i = 0; i < ll_input.length; i++) { var dd_value = shared.Other.Input.GetValueByName(ll_input[i][1]); if (dd_value != null) { shared.Other.Input.SetValueByName(ll_input[i][1], ""); } } $("#drl_member_type_1").selectpicker('val', ''); $("#drl_insured_person_gender_1").selectpicker('val', ''); } shared.CreateControl.BirthdayPicker('.datebirthday'); $(".selectpicker").selectpicker("refresh"); }, }, share: { change_active_date: function () { const from_date = $("#txt_departure_date").val(); const to_date = $("#txt_return_date").val(); $("#active_date").val(from_date); $("#inactive_date").val(to_date); //shared.DateTimeFunc.control_input_lock('#active_date', true); //shared.DateTimeFunc.control_input_lock('#inactive_date', true); }, }, insured_person: { upload_file: function (_this) { let fileSize = _this.files[0].size / 1024 / 1024; // in MB if (fileSize > 10) { func_notification.Info('Tập tin không được quá 10 MB'); } else { let fileName = $(_this).val().split("\\").pop(); $(_this).siblings("#custom-file-label").addClass("selected").html(fileName); shared.File.FiletoBase64(_this, function (e, t, n) { $('#hdf_upload_file_data').val(e); $('#hdf_upload_file_type').val(t); $('#hdf_upload_file_name').val(n); view_travel_pcv.insured_person.load_excel(); }); } }, load_excel: function () { var dd = shared.GetInput.Div(view_travel_pcv.div_travel); dd = API.CreateDataSend('sale/travel/flex/load/excel', dd); API.POST(dd, function (data) { $('#div_contain_insured_person').html(data); view_travel_pcv.sale.contract_init(); shared.ViewFunc.LoadValueSelectByClass('js_insured'); view_travel_pcv.insured_person.clear_file(); Loading.Hide(); func_notification.Warning('Lưu ý bạn vừa thêm thông tin người được bảo hiểm. Vui lòng xem lại thông tin để tránh sai sót'); }, function (_mess) { view_travel_pcv.insured_person.clear_file(); func_notification.Info(_mess); }); }, clear_file: function () { $('#upload_file').val(''); $('#hdf_upload_file_data').val(''); $('#hdf_upload_file_type').val(''); $('#hdf_upload_file_name').val(''); $('#custom-file-label').text('Chọn danh sách người được bảo hiểm'); } }, init: function (_callback) { shared.ViewFunc.ScrollId('#section_header'); shared.CreateControl.FormCustom('#' + view_travel_pcv.section_contract); sha_control_checked.init(); sha_control_select.init('drl_policy_type', 0, function () { view_travel_pcv.premium(); }); sha_control_select.init('drl_arena_covered', 0, function () { view_travel_pcv.premium(); }); sha_control_select.init('drl_benefit_medical', 0, function () { view_travel_pcv.premium(); }); sha_control_select.init('drl_benefit_accident', 0, function () { view_travel_pcv.premium(); }); sha_control_select.init('drl_benefit_incidental', 0, function () { view_travel_pcv.premium(); }); sha_control_select.init('drl_origin_country', 0, function () { view_travel_pcv.premium(); }); sha_control_select.init('drl_kind_action', 0, function () { view_web_shared.change_kind_action(); }); sha_control_select.init('drl_kind_customer', 0, function () { view_web_shared.change_kind_customer(); }); sha_control_select.init('drl_buyer_city', 0, function (e) { view_web_shared.location_load_district('drl_buyer_district', e); }); sha_control_select.init('drl_insured_person_city', 0, function (e) { view_web_shared.location_load_district('drl_insured_person_district', e); }); sha_control_checked.init('chk_insured_person', function (_this, _checked) { view_travel_pcv.change_chk_insured_person(_checked); }); if (_callback != null) _callback(); }, load: function () { var send_data = shared.GetInput.Div('section_para_url'); send_data = API.CreateDataSend('travel/pcv/load/data', send_data); API.POST(send_data, function (e) { $('#' + view_travel_pcv.section_contract).html(e); view_travel_pcv.init(function () { func_set_value_input(function () { view_web_shared.change_kind_action(); view_web_shared.change_kind_customer(); view_travel_pcv.change_total_insured_person(false); view_travel_pcv.view_data_ready = true; view_travel_pcv.premium(); }) }) Loading.Hide(); }); }, premium: function () { if (!view_travel_pcv.view_data_ready) return; var send_data = shared.GetInput.Div('div_quote'); send_data = API.CreateDataSend('travel/pcv/premium', send_data, { loading: false }); API.POST(send_data, function (e) { $('#div_contain_premium').html(e); $("#div_contain_premium").removeClass("d-none"); $("#div_error").addClass("d-none"); var year_buy = sha_control_input.get_val('txt_date_number'); $("#sp_year_buy").text(year_buy); var drl_package = sha_control_select.get_text('drl_benefit_medical'); $("#sp_package").text(drl_package); var premium_payment = $("#hdf_total_premium").val(); var premium_payment_text = Format.Number(premium_payment, 0, ",", "."); $("#sp_total_premium").text(premium_payment_text); //Format.FormatNumberCurrency("#sp_total_premium"); var kind_action = sha_control_select.get_text('drl_kind_action'); if (kind_action !== "" && kind_action != null) { $("#sp_kind_action").text(kind_action); } else { $("#sp_kind_action").text('Đăng ký mới'); } Loading.Hide(); }, function (e) { $("#div_contain_premium").addClass("d-none"); $("#div_error").removeClass("d-none"); $("#p_error_info").text(e); }); }, install: function (_url, _callback) { let is_contract = $('#div_contract').hasClass("d-none"); if (is_contract) { $("#div_contract").removeClass("d-none"); shared.ViewFunc.ScrollId('#div_contract'); view_travel_pcv.change_active_date(3); } else { var dd = shared.GetInput.Div(view_travel_pcv.section_contract); _url ??= 'travel/pcv/install'; dd = API.CreateDataSend(_url, dd); API.POST(dd, function (data) { view_travel_pcv.final(_callback, data); }, function (_mess, _value, _type) { if (_type === "yesno") { $('#hdf_sale_code').val(_value); func_notification.YesNo("Hồ sơ của bạn sẽ cần BHV thẩm định. " + "Quý Khách vui lòng chờ thông báo từ BHV, " + "hoặc nhân viên của BHV sẽ liên hệ với Quý Khách. Cám ơn.", "Xác nhận", function (e) { if (e) { var dd = shared.GetInput.Div(view_travel_pcv.section_contract); dd.sale_code = $('#hdf_sale_code').val(); dd = API.CreateDataSend(_url, dd); API.POST(dd, function (data) { view_travel_pcv.final(_callback, data); }); } else { $('#hdf_sale_code').val(""); } }); } else func_notification.Info(_mess); if (_callback != null) _callback(false, _mess, _value, _type); else Loading.Hide(); }); } }, final: function (_callback, _data) { if (_callback != null) _callback(true, data); else { let title_info_final = 'Đăng ký thành công!'; let kind_action = sha_control_select.get_val('#drl_kind_action', 0); if (kind_action == "update") { title_info_final = 'Cập nhật thành công!'; } else if (kind_action == "renew") { title_info_final = 'Tái tục thành công!'; } $('#' + view_travel_pcv.section_contract).html(_data); $("#section_action").html(''); $("#section_action").addClass("d-none"); shared.ViewFunc.ScrollId('#' + view_travel_pcv.section_contract); $("#title_info_final").text(title_info_final); Loading.Hide(); } }, change_certificate_code: function () { view_web_shared.change_certificate_code(function () { view_travel_pcv.load(); }); }, change_departure_date: function () { view_travel_pcv.change_active_date(1); }, change_return_date: function () { view_travel_pcv.change_active_date(2); }, change_travel_date_total: function () { view_travel_pcv.change_active_date(3); }, change_active_date: function (_type) { const from_date = sha_control_datetime.get_value('txt_departure_date'); const to_date = sha_control_datetime.get_value('txt_return_date'); let date_number_value = sha_control_input.get_val('txt_date_number'); let dd_total_day = Number(date_number_value) - 1; const dd_format = 'dd/MM/yyyy'; const dd_from_date = shared.DateTimeFunc.stringToDate(from_date, dd_format); let dd_to_date = shared.DateTimeFunc.stringToDate(to_date, dd_format); const dd_diff_day = Math.floor((dd_to_date.getTime() - dd_from_date.getTime()) / 86400000); if (_type === 1) { //update to day dd_to_date = shared.DateTimeFunc.addDays(dd_from_date, dd_total_day); } else if (_type === 2) { //update from day dd_total_day = dd_diff_day; } else if (_type === 3) { dd_to_date = shared.DateTimeFunc.addDays(dd_from_date, dd_total_day); } //==================================================== let dd_date_from = shared.DateTimeFunc.convertDatetoString(dd_from_date); let dd_date_to = shared.DateTimeFunc.convertDatetoString(dd_to_date); sha_control_input.set_val('active_date', dd_date_from); sha_control_input.set_val('inactive_date', dd_date_to); sha_control_input.set_val('txt_date_number', dd_total_day + 1); sha_control_datetime.set_value('txt_departure_date', dd_date_from); sha_control_datetime.set_value('txt_return_date', dd_date_to); //==================================================== view_travel_pcv.premium(); }, change_total_insured_person: function (_is_call_premium) { if (_is_call_premium != '') _is_call_premium = true; let dd = shared.GetInput.Div('div_quote'); dd = API.CreateDataSend('travel/pcv/load/insured/person', dd); API.POST(dd, function (data) { $('#div_contain_insured_person').html(data); if (_is_call_premium) { view_travel_pcv.premium(); } var minDate = new Date(this.year - 100, this.month, this.day); shared.CreateControl.DateBOD('.datebirthday', minDate, new Date()); Loading.Hide(); }); }, change_chk_insured_person: function (_checked) { let ll_input = [ ["buyer_fullname", "full_name_1"], ["buyer_identity_card", "identity_card_1"], ["buyer_email", "insured_person_email_1"], ["buyer_phone", "insured_person_phone_1"], ]; if (_checked) { for (let i = 0; i < ll_input.length; i++) { let dd_value = shared.Other.Input.GetValueByName(ll_input[i][0]); if (dd_value != null) { sha_control_input.set_val(ll_input[i][1], dd_value); } } sha_control_select.set_val('drl_member_type_1', '9d8c1f93-5e81-425f-a024-c79efaa378d1'); var buyer_gender = sha_control_select.get_val('drl_buyer_gender'); sha_control_select.set_val('drl_insured_person_gender_1', buyer_gender); let dd_bod = sha_control_datetime.get_value('buyer_birthday'); sha_control_datetime.set_value('date_of_birth_1', dd_bod) } else { for (var i = 0; i < ll_input.length; i++) { var dd_value = shared.Other.Input.GetValueByName(ll_input[i][1]); if (dd_value != null) { sha_control_input.clear_val(ll_input[i][1]); } } sha_control_select.clear_select_val('drl_member_type_1'); sha_control_select.clear_select_val('drl_insured_person_gender_1'); sha_control_datetime.clear_val('date_of_birth_1'); } }, upload_file_insured_person: function () { let dd = shared.GetInput.Div('div_quote'); let dd_file = sha_control_media.get_value('cus_upload_insured_person'); dd.upload_file_data = dd_file.data; dd.upload_file_type = dd_file.type; dd.upload_file_name = dd_file.name; dd = API.CreateDataSend('travel/pcv/load/excel', dd); API.POST(dd, function (data) { $('#div_contain_insured_person').html(data); sha_control_media.clear_value('#cus_upload_insured_person'); var minDate = new Date(this.year - 100, this.month, this.day); shared.CreateControl.DateBOD('.datebirthday', minDate, new Date()); Loading.Hide(); }); }, };