![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/tech_preview/hr/ |
Upload File : |
hr.partner.deletePartner = function(host, id){ return new Promise(function(resolve, reject){ ModalElement.show_loading(); FormClass.api_call({ url: "partner_delete.php", params: [{name: "id", value: id}], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var index = host.database.partner.getIndex(id); host.database.partner.items.splice(index, 1); if (data_module.partnerReady){ var index = data_module.partner.getIndex(id); data_module.partner.items.splice(index, 1); } var randomId = contentModule.generateRandom(); data_module.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "change_data_module", type: "partner", randomId: randomId }); resolve(); } else if (message == "lock_system"){ ModalElement.alert({message: LanguageModule.text("war_txt_system_lock")}); } else if (message == "failed_used"){ ModalElement.alert({ message: LanguageModule.text("war_txt_can_not_delete") }); } else if (message == "failed_has_data"){ ModalElement.alert({ message: LanguageModule.text("war_txt_failed_has_data") }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.partner.deletePartnerConfirm = function(host, id){ return new Promise(function(resolve, reject){ var index = host.database.partner.getIndex(id); var listPromise = []; var ni; for (var i = 0; i < host.database.partner.items[index].class.length; i++){ ni = host.database.partner.items[index].class[i]; var pIndex = host.database.partner_class.getIndex(ni); listPromise.push(new Promise(function(rs, rj){ hr.partner.loadExtraDataByTypeid(host, id, host.database.partner_class.items[pIndex].type_extra).then(function(value){ if (value.id > 0){ ModalElement.alert({ message: LanguageModule.text("war_txt_failed_has_data") }); return; } else { rs(); } }); })); } Promise.all(listPromise).then(function(values){ ModalElement.question({ title: LanguageModule.text("war_title_delete_partner"), message: LanguageModule.text2("war_txt_detele", [host.database.partner.items[index].name]), onclick: function(sel){ if (sel == 0){ hr.partner.deletePartner(host, id).then(function(value){ resolve(value); }); } } }); }); }); }; hr.partner.addPartnerSubmitFunc = function(host, id, getValueFunction){ return new Promise(function(resolve, reject){ var data = getValueFunction(); if (!data) return; var oldData; if (id > 0){ oldData = host.dataPartnerEdit; var ischange = contentModule.isChanged(oldData, data, ["name", "fullname", "nation_city", "address", "class", "phone", "email", "website", "fax", "taxcode", "gps", "description", "available", "extrainfo"] ); if (!ischange){ resolve(oldData); return; } } else { oldData = {}; } data.id = id; data.available = data.available? 1 : 0; if (id > 0){ var index = host.database.partner.getIndex(id); data.ver = host.dataPartnerEdit.ver; } else { data.ver = 1; } for (var i = 0; i < host.database.partner.length; i++){ if (host.database.partner.items[i].id == id) continue; if (host.database.partner.items[i].name == data.name){ ModalElement.alert({message: LanguageModule.text("war_txt_short_name_was_used")}); return; } if (host.database.partner.items[i].fullname == data.fullname){ ModalElement.alert({message: LanguageModule.text("war_txt_full_name_was_used")}); return; } } if (data.nation_city){ data.nationid = data.nation_city[0]; data.cityid = data.nation_city[1]; } else { data.nationid = 0; data.cityid = 0; } data.extrainfo = EncodingClass.string.fromVariable(data.extrainfo); ModalElement.show_loading(); FormClass.api_call({ url: "partner_save.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(data)}, {name: "old_data", value: EncodingClass.string.fromVariable(oldData)} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); st.class = data.class; st.extrainfo = EncodingClass.string.toVariable(st.extrainfo); st.nation_city = data.nation_city; resolve(st); data_module.loadDataPartnerGlobal(); var randomId = contentModule.generateRandom(); data_module.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "change_data_module", type: "partner", randomId: randomId }); } else if (message.startsWith("war_txt_")){ ModalElement.alert({message: LanguageModule.text(message)}); } else if (message == "lock_system"){ ModalElement.alert({message: LanguageModule.text("war_txt_system_lock")}); } else if (message == "deleted" || message == "edited"){ data_module.loadDataPartnerGlobal(); ModalElement.alert({ message: LanguageModule.text("war_txt_failed_ver_reload_data") }); } else if (message == "exist_name"){ ModalElement.alert({message: LanguageModule.text("war_txt_exist_name")}); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.partner.addPartnerSubmit = function(host, id, getValueFunction){ return new Promise(function(resolve, reject){ hr.partner.addPartnerSubmitFunc(host, id, getValueFunction).then(function(st){ resolve(); if (id > 0){ var ex; if (EncodingClass.string.compare(host.dataPartnerEdit.class, st.class) != 0){ ex = true; } var index = host.database.partner.getIndex(id); st.marked = host.database.partner.items[index].marked; host.database.partner.items[index] = st; host.dataPartnerEdit = host.database.partner.items[index]; host.drawPartnerViewFunc(host.viewPartner); if (ex){ host.drawPartnerExtraDataFunc(); } if (host.redraw_history_func){ host.redraw_history_func(); } } else { id = st.id; host.database.partner.items.push(st); hr.partner.showPartnerPre(host, id); } if (!host.quick_open) hr.partner.redraw(host); }); }); }; hr.partner.addPartnerClose = function(host, id, getValueFunction){ return new Promise(function(resolve, reject){ var data = getValueFunction("no_alert"); if (!data) { resolve(); return; } if (id > 0){ var oldData = host.dataPartnerEdit; var ischange = contentModule.isChanged(oldData, data, ["name", "fullname", "nation_city", "address", "class", "phone", "email", "website", "fax", "taxcode", "description", "gps", "available"] ); } else { var ischange = false; } if (!ischange){ resolve(); return; } contentModule.questionChange({ onclick: function(sel){ if (sel == 0){ hr.partner.addPartnerSubmit(host, host.partnerid, getValueFunction).then(function(){ resolve(); }); } else if (sel == 1){ resolve(); } } }); }); }; hr.partner.redrawDetails = function(host, id){ host.partnerid = id; function redraw(value){ var formContainer = DOMElement.div({}); theme.fromPartnerEdit({ title: (id == 0)? LanguageModule.text("txt_add") : LanguageModule.text("txt_edit"), formContainer: formContainer, frameList: host.frameList, func: { save: function(){ return hr.partner.addPartnerSubmit(host, host.partnerid, getValueFunction); }, cancel: function(){ return hr.partner.addPartnerClose(host, host.partnerid, getValueFunction); } } }); var getValueFunction; contentModule.makeFormData({ typeid: host.form_config.partner.typeid, formid: host.form_config.partner.input_form, initialValue: value, formContainer: formContainer, typelists: host.database.typelists.items, variableType: "system" }).then(function(getValue){ getValueFunction = getValue; absol.form.traversal(formContainer.formFragment.view, function(item){ if (item.node.tag === "TextInput") { item.node.domElt.focus(); item.stop(); return; } }); }); }; if (id == 0){ redraw(); } else { redraw(host.dataPartnerEdit); } }; hr.partner.addPartner = function(host, id){ if (id == 0){ hr.partner.redrawDetails(host, id); } else { ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_by_id"}, {name: "id", value: id} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ host.dataPartnerEdit = EncodingClass.string.toVariable(message.substr(2)); if (host.dataPartnerEdit.extrainfo == "") host.dataPartnerEdit.extrainfo = {}; else host.dataPartnerEdit.extrainfo = EncodingClass.string.toVariable(host.dataPartnerEdit.extrainfo); if ((host.dataPartnerEdit.nationid != 0) && (host.dataPartnerEdit.cityid != 0)){ host.dataPartnerEdit.nation_city = [host.dataPartnerEdit.nationid, host.dataPartnerEdit.cityid]; } else { host.dataPartnerEdit.nation_city = null; } hr.partner.redrawDetails(host, id); } else if (message == "war_txt_failed_data"){ ModalElement.alert({ message: LanguageModule.text("war_txt_failed_data"), func: function(){ hr.partner.init(host); } }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); } }; hr.partner.checkin = function(host, partnerid, partnerGPS){ return new Promise(function(resolve, reject){ ModalElement.show_loading(); var lat, lng; if (partnerGPS == "") { ModalElement.alert({message: "Chưa nhập GPS cho công ty này, vui lòng nhập GPS trước"}); return; } var x = partnerGPS.indexOf(","); if (x > 0){ lat = parseFloat(partnerGPS.substr(0, x)); lng = parseFloat(partnerGPS.substr(x + 1)); } else { ModalElement.alert({message: "GPS của công ty này không hợp lệ, vui lòng nhập lại GPS"}); return; } var showLocation = function(position){ savePosition(position); }; var savePosition = function(position){ if (absol.$.isRealNumber(position.accuracy) && position.accuracy > hr.maximumAllowableAccuracy){ ModalElement.alert({message: LanguageModule.text("war_txt_maximum_allowable_error")}); return; } var d = contentModule.calcCrow(lat, lng, position.latitude, position.longitude); if (d > hr.maximumDistance) { ModalElement.alert({message: LanguageModule.text2("war_txt_checkin_distance_invalid", [hr.maximumDistance])}); return; } var data = { employeeid: host.employeeOfMe[0], partnerid: partnerid, partnerGPS: partnerGPS, checkingps: position.latitude + "," + position.longitude, checkin_follow_gps: 1, checkintime: new Date() }; FormClass.api_call({ url: "partner_checkin_save_auto.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(data)} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ ModalElement.alert({message: "Checkin thành công"}); resolve(); } else { ModalElement.alert({message: message}); return; } } else { ModalElement.alert({message: message}); return; } } }); }; if (window.isApp){ var getLocation = function(){ mobileHost.getLocation(function(value){ if (value == null){ ModalElement.alert({message: LanguageModule.text("war_txt_devices_not_supported_gps")}); return; } else { showLocation(value); } }); }; var isPriv = mobileHost.checkLocationPermission(); if (isPriv){ getLocation(); } else { mobileHost.requestLocationPermission(function(value){ if (value) getLocation(); }); } } else { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position){ showLocation(position.coords); }, function(err){ if (err){ ModalElement.alert({message: err.message}); } }); } else { console.log("Geolocation is not supported by this browser."); } } }); }; hr.partner.loadOrgEmpPrivileges = function(host){ return new Promise(function(resolve, reject){ ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [{name: "task", value: "load_data_orgs_emps_and_privileges"}], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); host.employeeOfMe = st.employeeOfMe; delete st.employeeOfMe; contentModule.makeDatabaseContent(host, st); contentModule.makeOrgsIndex(host); contentModule.makeEmployeeData(host); contentModule.makeEmployeesIndex(host); contentModule.makeEmployeeGroupMemberIndex(host); contentModule.makePrivilegesContactConfigs(host); host.privilegesLoaded = true; resolve(); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.partner.loadExtraDataByTypeid = function(host, partnerid, typeid){ return new Promise(function(resolve, reject){ console.log(fconnector); console.log(new Date().getTime(), 45); if (fconnector === undefined){ setTimeout(function(){ hr.partner.loadExtraDataByTypeid(host, partnerid, typeid).then(function(value){ resolve(value); }); }, 50); return; } else if (fconnector === null){ ModalElement.alert({message: "Không kết nối được với hệ thống mở rộng"}); return; } var pattern = { type: "struct", cond: "and", children: { partnerid: { type: "number", cond: "eq", value: parseInt(partnerid, 10) }, typeid: { type: "number", cond: "eq", value: typeid }, extraid: { type: "number", cond: "true" } } }; fconnector.search("extradata_partner_links", pattern, function(value1) { if (value1 && value1.length > 0){ fconnector.read("extradata_partner_links", value1[value1.length - 1], function (success2, value2){ if (success2){ fconnector.read("extradata_partner", value2.extraid, function (success3, value3){ if (success3){ resolve({ id: value2.extraid, data: value3 }); } else { resolve({id: 0}); } }); } else { resolve({id: 0}); } }); } else { resolve({id: 0}); } }); }); }; hr.partner.editExtraDataSubmit = function(host, oldvalue, typeid, getValueFunction){ return new Promise(function(resolve, reject){ var data = getValueFunction(); console.log(data); if (!data) return; if (oldvalue.id > 0){ var ischange = EncodingClass.string.compare(oldvalue.data, data); if (!ischange){ resolve(); return; } } var old_data; if (!oldvalue.data){ var typeDict = {}; host.database.typelists.items.forEach(function(elt){ typeDict[elt.id] = elt; }); old_data = contentModule.makeDefaultData(host, typeid, typeDict[typeid], typeDict); } else { old_data = oldvalue.data; } ModalElement.show_loading(); FormClass.api_call({ url: "partner_save_extradata.php", params: [ {name: "id", value: oldvalue.id}, {name: "partnerid", value: host.partnerid}, {name: "typeid", value: typeid}, {name: "data", value: EncodingClass.string.fromVariable(data)}, {name: "old_data", value: EncodingClass.string.fromVariable(old_data)} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ fconnector.refresh("extradata_partner_links"); fconnector.refresh("extradata_partner"); host.drawPartnerExtraDataSingle(host.partner_class_dataEdit); resolve(); if (host.redraw_history_func){ host.redraw_history_func(); } } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.partner.editExtraDataClose = function(host, oldvalue, typeid, getValueFunction){ return new Promise(function(resolve, reject){ var data = getValueFunction("no_alert"); if (!data){ resolve(); return; } if (oldvalue.id > 0){ var ischange = EncodingClass.string.compare(oldvalue.data, data); } else { var ischange = false; } if (!ischange){ resolve(); return; } contentModule.questionChange({ onclick: function(sel){ if (sel == 0){ hr.partner.editExtraDataSubmit(host, oldvalue, typeid, getValueFunction).then(function(){ resolve(); }); } else if (sel == 1){ resolve(); } } }); }); }; hr.partner.editExtraData = function(host, partner_class_data){ host.partner_class_dataEdit = partner_class_data; ModalElement.show_loading(); hr.partner.loadExtraDataByTypeid(host, host.partnerid, partner_class_data.type_extra).then(function(value){ ModalElement.close(-1); var formContainer = DOMElement.div({}); theme.fromPartnerEditExtraData({ title: LanguageModule.text("txt_data_extra") + " (" + partner_class_data.name + ")", formContainer: formContainer, frameList: host.frameList, func: { save: function(){ return hr.partner.editExtraDataSubmit(host, value, partner_class_data.type_extra, getValueFunction); }, cancel: function(){ return hr.partner.editExtraDataClose(host, value, partner_class_data.type_extra, getValueFunction); } } }); var getValueFunction; contentModule.makeFormData({ typeid: partner_class_data.type_extra, formid: hr.isMobile? partner_class_data.mobile_input_form_extra : partner_class_data.input_form_extra, initialValue: value.data, formContainer: formContainer, typelists: host.database.typelists.items, variableType: "user" }).then(function(getValue){ getValueFunction = getValue; }); }); }; hr.partner.showPartner = function(host, id){ host.drawPartnerViewFunc = function(viewPartner){ host.viewPartner = viewPartner; DOMElement.removeAllChildren(host.nameViewCtn); host.nameViewCtn.appendChild(DOMElement.span({ attrs: {style: {fontWeight: "bold"}}, text: host.dataPartnerEdit.fullname })); contentModule.makeOutputFormData({ typeid: host.form_config.partner.typeid, formid: host.form_config.partner.output_form, initialValue: host.dataPartnerEdit, formContainer: viewPartner, typelists: host.database.typelists.items, variableType: "system" }).then(function(getValue){}); }; contentModule.makeDatabaseContent(host, {contact: []}); host.drawContactListFunc = function(){ var loadContactByPartnerid = function(){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_contact_by_partnerid"}, {name: "partnerid", value: host.partnerid} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); contentModule.makeDatabaseContent(host, st); redraw(); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }; var redraw = function(){ DOMElement.removeAllChildren(host.viewContact); hr.contact.redraw({ employeeEditContactDic: host.employeeEditContactDic, employeeOfMe: host.employeeOfMe, holder: host.holder, user_column_configsDic: host.user_column_configsDic, form_config: host.form_config, database: host.database, fromPartner: true, partnerid: host.partnerid, data_container: host.viewContact, frameList: host.frameList, done: 1 }); }; if (data_module.contactReady){ var contact = data_module.contact.items.filter(function(item){ return item.partnerid == host.partnerid; }); contentModule.makeDatabaseContent(host, {contact: contact}); redraw(); } else { loadContactByPartnerid(); } }; host.drawCheckinFunc = function(viewCheckin){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_checkin_by_partnerid"}, {name: "partnerid", value: host.partnerid} ], func: function(success, message) { if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); contentModule.makeDatabaseContent(host, st); var index = host.database.partner.getIndex(host.partnerid); if (index >= 0) host.database.partner.items[index].gps = host.dataPartnerEdit.gps; contentModule.makeParnerCheckinData(host); hr.partner_checkin.redraw({ holder: host.holder, user_column_configsDic: host.user_column_configsDic, form_config: host.form_config, database: host.database, fromPartner: true, partnerid: host.partnerid, data_container: viewCheckin, frameList: host.frameList, employeeOfMe: host.employeeOfMe }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }; var load_history_func = function(){ return new Promise(function(rs, rj){ ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_history_by_id"}, {name: "id", value: id} ], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); st.sort(function(a, b){ return b.createdtime - a.createdtime; }); rs(st); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; host.partnerid = id; var params = { func: { editPartner: function(){ hr.partner.addPartner(host, host.partnerid); }, editExtraDataFunc: function(partner_class_data){ hr.partner.editExtraData(host, partner_class_data); }, addContact: function(){ hr.contact.addContact({ holder: host.holder, employeeEditContactDic: host.employeeEditContactDic, employeeOfMe: host.employeeOfMe, user_column_configsDic: host.user_column_configsDic, form_config: host.form_config, database: host.database, fromPartner: true, partnerid: host.partnerid, data_container: host.viewContact, frameList: host.frameList, done: 1 }, 0); } }, quick_open: host.quick_open, load_history_func: function(){ return load_history_func(); } }; theme.formPartnerShow(host, params); host.redraw_history_func = params.redraw_history_func; }; hr.partner.showPartnerPre = function(host, id){ var loadData = function(){ ModalElement.show_loading(); if (host.quick_open){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_by_id_quick"}, {name: "id", value: id} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); host.database = {}; contentModule.makeDatabaseContent(host, st); host.form_config = contentModule.configVariable(host); host.user_column_configsDic = contentModule.getUser_column_configsDic(host); var index = host.database.partner.getIndex(id); if ((host.database.partner.items[index].nationid != 0) && (host.database.partner.items[index].cityid != 0)){ host.database.partner.items[index].nation_city = [host.database.partner.items[index].nationid, host.database.partner.items[index].cityid]; } else { host.database.partner.items[index].nation_city = null; } host.dataPartnerEdit = host.database.partner.items[index]; hr.partner.showPartner(host, id); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); } else { FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_by_id"}, {name: "id", value: id} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ host.dataPartnerEdit = EncodingClass.string.toVariable(message.substr(2)); if (host.dataPartnerEdit.extrainfo == "") host.dataPartnerEdit.extrainfo = {}; else host.dataPartnerEdit.extrainfo = EncodingClass.string.toVariable(host.dataPartnerEdit.extrainfo); if ((host.dataPartnerEdit.nationid != 0) && (host.dataPartnerEdit.cityid != 0)){ host.dataPartnerEdit.nation_city = [host.dataPartnerEdit.nationid, host.dataPartnerEdit.cityid]; } else { host.dataPartnerEdit.nation_city = null; } hr.partner.showPartner(host, id); } else if (message == "war_txt_failed_data"){ ModalElement.alert({ message: LanguageModule.text("war_txt_failed_data"), func: function(){ hr.partner.init(host); } }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); } }; if (host.quick_open) host.database = {}; if (host.privilegesLoaded){ loadData(); } else { hr.partner.loadOrgEmpPrivileges(host).then(function(){ loadData(); }); } }; hr.partner.convertToContactSubmit = function(host, id, owner){ return new Promise(function(resolve, reject){ ModalElement.show_loading(); FormClass.api_call({ url: "partner_convert_to_contact.php", params: [ {name: "id", value: id}, {name: "owner", value: owner} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ ModalElement.close(); ModalElement.alert({message: LanguageModule.text("war_txt_convert_successfull")}); data_module.loadDataPartnerGlobal(); data_module.loadDataContactGlobal(); var randomId = contentModule.generateRandom(); data_module.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "change_data_module", table: "partner", randomId: randomId }); randomId = contentModule.generateRandom(); data_module.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "change_data_module", table: "contact", randomId: randomId }); resolve(); } else if (message == "deleted"){ ModalElement.close(); ModalElement.alert({ message: "Đối tác không tồn tại", func: function(){ data_module.loadDataPartnerGlobal(); data_module.loadDataContactGlobal(); resolve(); } }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; hr.partner.convertToContact = function(host, id){ return new Promise(function(resolve, reject){ var redraw = function(){ var owner_select = absol.buildDom({ tag: "selecttreeleafmenu", props: { items: host.ownerConvertItems, value: data_module.employeeOfMe.length > 0? data_module.employeeOfMe[0] : 0, enableSearch: true } }); ModalElement.showWindow({ title: LanguageModule.text("txt_convert_to_contact"), bodycontent: DOMElement.div({ children: [ DOMElement.div({ attrs: { style: { lineHeight: "var(--control-height)" } }, text: LanguageModule.text("txt_setting_owner_for_contact_from_partner") }), DOMElement.span({ attrs: { style: { marginRight: "var(--control-horizontal-distance-2)", verticalAlign: "middle", lineHeight: "var(--control-height)" } }, text: LanguageModule.text("txt_owner") }), owner_select ] }), buttonlist: [ { text: LanguageModule.text("txt_convert"), onclick: function(){ var owner = owner_select.value; if (owner == 0){ ModalElement.alert({message: "Chưa chọn owner cho liên hệ"}); } hr.partner.convertToContactSubmit(host, id, owner).then(function(value){ resolve(value); }); } }, { text: LanguageModule.text("txt_cancel"), onclick: function(){ ModalElement.close(); } } ] }); }; var loadData = function(){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_check_has_contact"}, {name: "id", value: id} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0,2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); if (st.hasContact){ ModalElement.alert({message: LanguageModule.text("war_txt_partner_has_contact")}); } else { redraw(); } } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }; if (!host.ownerConvertItems){ ModalElement.show_loading(); data_module.loadEmployeeItemsPrivView().then(function(x){ host.ownerConvertItems = contentModule.getMemberOfEmployeeSelectMenu(x); loadData(); }); } else { ModalElement.show_loading(); loadData(); } }); }; hr.partner.getCellPartner = function(host, item){ var func = { view: function(){ hr.partner.showPartnerPre(host, item.id); }, markedFunc: function(id, marked){ return contentModule.markedFunc(host, { id: id, marked: marked, task: "partner", tablename: "partner" }); } }; func.delete = function(){ return new Promise(function(resolve, reject){ hr.partner.deletePartnerConfirm(host, item.id).then(function(value){ resolve(value); }); }); }; func.checkin = function(){ hr.partner.checkin(host, item.id, item.gps); }; func.convert_to_contact = function(){ return new Promise(function(resolve, reject){ hr.partner.convertToContact(host, item.id).then(function(value){ resolve(value); }); }); }; var res = item; res.func = func; return res; }; hr.partner.export = function(host){ if (!host.done){ setTimeout(function(){ hr.partner.export(host); }, 50); return; } host.data_container.getExcelData().then(function(excelData){ ModalElement.close(-1); ModalElement.alert({message: LanguageModule.text("txt_export_notification")}); var x = contentModule.getDateTimeExcelExport(new Date()); var startWorker = function(result, fileName = "partner_list_"+x+".xlsx") { var w; if(typeof(Worker) !== "undefined") { if(typeof(w) == "undefined") { w = new Worker(window.domain + "exceljs.js"); w.postMessage(result); } w.onmessage = function(event) { var data = event.data; if(data.name == "end") { var link = document.createElement('a'); link.href = window.URL.createObjectURL(data.data); link.download = fileName; link.click(); } } } else { console.log("Sorry, your browser does not support Web Workers..."); } } startWorker(excelData); }); }; hr.partner.loadLazyData = function (host, callbackfunc) { if (!host.data_container.insertData) { setTimeout(function (host, callbackfunc) { return function () { hr.partner.loadLazyData(host, callbackfunc); } } (host, callbackfunc), 50); return; } var xhost = { host: host, lastindex: 0, first_content: 1, callbackfunc: callbackfunc } if (data_module.partnerLoading == false) { data_module.partnerLoading = true; data_module.partnerReady = false; } // FormClass.api_call({ // url: "database_load.php", // params: [ // {name: "task", value: hr.isMobile? "partner_load_lazy_mobile" : "partner_load_lazy"}, // {name: "startIndex", value: host.database.partner.items.length}, // {name: "partnerCondition", value: host.partnerCondition} // ], // func: function(success, message){ // if (success){ // if (message.substr(0, 2) == "ok"){ // var st = EncodingClass.string.toVariable(message.substr(2)); // hr.partner.loadLazyData(host); // } // else { // ModalElement.alert({message: message}); // } // } // else { // ModalElement.alert({message: message}); // } // } // }); xhost.ffunc = function (host) { return function (content) { if (data_module.partner_class === undefined) { setTimeout(function (host, content) { return function () { host.ffunc(content); } } (host, content), 10); return; } data_module.partnerReady = true; data_module.makeDatabaseCommon({ partner: host.host.database.partner.items, partner_class_links: host.host.database.partner_class_links.items }); var partnerDic = contentModule.makeDictionaryIndex(data_module.partner.items); for (var i = 0; i < data_module.partner.items.length; i++) { data_module.partner.items[i].class = []; } var k; for (var i = 0; i < data_module.partner_class_links.items.length; i++){ k = partnerDic[data_module.partner_class_links.items[i].partnerid]; if (k >= 0) { data_module.partner.items[k].class.push(data_module.partner_class_links.items[i].classid); } } var classDic = contentModule.makeDictionaryIndex(data_module.partner_class.items); var ni, cIndex; for (var i = 0; i < data_module.partner.items.length; i++){ data_module.partner.items[i].className = ""; for (var j = 0; j < data_module.partner.items[i].class.length; j++){ ni = data_module.partner.items[i].class[j]; cIndex = classDic[ni]; if (cIndex >= 0) { data_module.partner.items[i].className += ", " + data_module.partner_class.items[cIndex].name; } } if (data_module.partner.items[i].class.length > 0){ data_module.partner.items[i].className = data_module.partner.items[i].className.substr(2); } } } } (xhost); data_module.loadPartnerFunc({ finalize: function (host) { return function (content) { host.ffunc(content); host.host.done = 1; host.callbackfunc(host.host); } } (xhost), process: function (host) { return function (content) { var st; var i, n; console.log(content.finished); host.host.done = (content.finished) ? 1 : 0; st = { partner: content.partner, partner_class_links: content.partner_class_links, user_marked: host.host.database.user_marked.items } var x = { database: {} }; contentModule.makeDatabaseContent(x, st); contentModule.makePartnerData(x); contentModule.makePartnerClassLinksData(x); contentModule.makeUserMarkerData(host.host, "partner"); host.host.data_container.insertData(x.database.partner.items); host.host.database.partner.items = host.host.database.partner.items.concat(x.database.partner.items); host.host.database.partner_class_links.items = host.host.database.partner.items.concat(x.database.partner_class_links.items); if (host.first_content == 1) { host.first_content = 0; ModalElement.close(-1); } } } (xhost), sort: true }) }; hr.partner.redraw = function(host){ host.dataContentTable = { database: host.database, inputsearchbox: host.inputsearchbox, marked_view_elt: host.marked_view_elt, ctn: host.data_container, form_config: host.form_config, user_column_configsDic: host.user_column_configsDic, partner_class_select: host.partner_class_select, nation_cities_select: host.nation_cities_select, inputidboxes: host.inputidboxes, listPartnerMerge: host.listPartnerMerge, merge_ing: host.merge_ing, getCellPartner: function(item){ return hr.partner.getCellPartner(host, item); } }; theme.formPartnerContentData(host.dataContentTable); }; hr.partner.viewMaps = function(host){ if (!host.done){ setTimeout(function(){ hr.partner.viewMaps(host); }, 50); return; } ModalElement.close(-1); var points = []; theme.formPartnerViewMaps({ nation_city: host.nation_cities_select.value, classid : host.partner_class_select.value, database: host.database, frameList: host.frameList }); }; hr.partner.mergeSubmit = function(host, list, data, extra){ var mainData = contentModule.getPartnerMainData(); var value = {}; for (var x in mainData){ value[mainData[x]] = data[x]; delete data[x]; } value.extrainfo = data; var idList = []; var nameList = []; for (var i = 0; i < list.length; i++){ idList.push(list[i].id); nameList.push({name: list[i].name, fullname: list[i].fullname}); } if (value.nation_city){ value.nationid = value.nation_city[0]; value.cityid = value.nation_city[1]; } else { value.nationid = 0; value.cityid = 0; } value.extrainfo = EncodingClass.string.fromVariable(value.extrainfo); ModalElement.show_loading(); FormClass.api_call({ url: "partner_merge_save.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(value)}, {name: "idList", value: EncodingClass.string.fromVariable(idList)}, {name: "extra", value: EncodingClass.string.fromVariable(extra)}, {name: "nameList", value: EncodingClass.string.fromVariable(nameList)} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); st.class = value.class; var idDic = {}; for (var i = 0; i < idList.length; i++){ idDic[idList[i]] = true; } host.database.partner.items = host.database.partner.items.filter(function(item){ return !idDic[item.id]; }); host.database.partner.items.unshift(st); host.frameList.removeLast(); host.listPartnerMerge = {}; host.inputidboxes = {}; hr.partner.redraw(host); data_module.loadDataPartnerGlobal(); if (data_module.contactReady){ for (var i = 0; i < data_module.contact.items.length; i++){ if (idDic[data_module.contact.items[i].partnerid]) data_module.contact.items[i].partnerid = st.id; } } var randomId = contentModule.generateRandom(); data_module.listMessRandomCreate[randomId] = true; hr.sendMessageFunc({ messageType: "change_data_module", table: "partner", randomId: randomId }); hr.sendMessageFunc({ messageType: "change_data_module", table: "contact", randomId: randomId }); } else if (message == "deleted"){ data_module.loadDataPartnerGlobal(); ModalElement.alert({ message: LanguageModule.text("war_txt_failed_ver_reload_data") }); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }; hr.partner.redrawMerge = function(host, list){ var dict = {}; host.database.typelists.items.forEach(function (elt, index) { dict[elt.id] = elt; }); var mainData = contentModule.getMainData(host.form_config.partner.typeid, dict); var listData = [], data; for (var i = 0; i < list.length; i++){ data = {}; for (var x in mainData){ data[x] = list[i][mainData[x]]; } for (var x in list[i].extrainfo){ data[x] = list[i].extrainfo[x]; } listData.push(data); } var drawExtraInforFunc = function(classValue){ DOMElement.removeAllChildren(extra_infor_ctn); var extraList = []; if (classValue.length == 0) ModalElement.close(-1); var listP = []; classValue.forEach(function(item){ listP.push(new Promise(function(rs, rj){ var k, tid, dataExtra; k = host.database.partner_class.getIndex(item); if (k >= 0){ dataExtra = []; tid = host.database.partner_class.items[k].type_extra; var promiseList = []; for (var j = 0; j < list.length; j++){ if (list[j].class.indexOf(item) >= 0){ promiseList.push(hr.partner.loadExtraDataByTypeid(host, list[j].id, tid).then(function(value){ if (value.id > 0){ dataExtra.push(value.data); } })); } } if (promiseList.length > 0){ Promise.all(promiseList).then(function(){ if (dataExtra.length > 0){ contentModule.getFieldsMergeByTypeID(host, host.database.partner_class.items[k].type_extra).then(function(descriptor){ descriptor.displayName = LanguageModule.text("txt_data_extra") + " (" + host.database.partner_class.items[k].name + ")"; var x = absol.buildDom({ tag: 'objectmergetool', props: { objects: dataExtra, descriptor: descriptor } }); extra_infor_ctn.appendChild(x); extraList.push({ typeid: host.database.partner_class.items[k].type_extra, mTool: x }); }); rs(); } else { rs(); } }); } else rs(); } })); }); Promise.all(listP).then(function(){ ModalElement.close(-1); extra_infor_ctn.getValue = function(){ var data = []; for (var i = 0; i < extraList.length; i++){ data.push({ typeid: extraList[i].typeid, data: extraList[i].mTool.data }); } return data; }; }); }; var mTool; host.typelistsDic = contentModule.makeDictionaryIndex(host.database.typelists.items); host.change_partner_class_func = function(classValue){ ModalElement.show_loading(); drawExtraInforFunc(classValue); }; ModalElement.show_loading(); contentModule.getFieldsMergeByTypeID(host, host.form_config.partner.typeid).then(function(descriptor){ descriptor.displayName = LanguageModule.text("txt_general_information"); mTool = absol.buildDom({ tag: 'objectmergetool', props: { objects: listData, descriptor: descriptor } }); general_infor_ctn.appendChild(mTool); }); var general_infor_ctn = DOMElement.div({}); var extra_infor_ctn = DOMElement.div({}); var data_ctn = DOMElement.div({ children: [ general_infor_ctn, extra_infor_ctn ] }); drawExtraInforFunc(list[0].class); var singlePage = absol.buildDom({ tag: "singlepage", child: [ DOMElement.div({ attrs: {className: 'button-panel-header absol-single-page-header'}, children: [ DOMElement.div({ attrs: {className: "single-button-header"}, children: [theme.backButton({ onclick: function(){ host.frameList.removeLast(); } })] }), DOMElement.div({ attrs: {className: "single-button-header"}, children: [theme.saveButton({ onclick: function(){ hr.partner.mergeSubmit(host, list, mTool.data, extra_infor_ctn.getValue()); } })] }) ] }), data_ctn ] }); host.frameList.addChild(singlePage); singlePage.requestActive(); }; hr.partner.merge = function(host){ if (host.merge_ing){ ModalElement.close(-1); var list = []; for (var i = 0; i < host.database.partner.items.length; i++){ if (host.inputidboxes[host.database.partner.items[i].id] && host.inputidboxes[host.database.partner.items[i].id].checked){ list.push(host.database.partner.items[i]); } } if (list.length < 2){ ModalElement.alert({message: "Bạn phải chọn ít nhất 2 đối tác để trộn"}); return; } hr.partner.redrawMerge(host, list); } else { if (!host.dataContentTable.tableView){ setTimeout(function(){ hr.partner.merge(host); }, 50); return; } ModalElement.close(-1); host.dataContentTable.tableView.hiddenColumns = []; host.merge_ing = true; host.back_btn_ctn.classList.remove("hidden"); host.close_btn_ctn.classList.add("hidden"); host.add_btn_ctn.classList.add("hidden"); host.view_maps_btn_ctn.classList.add("hidden"); } }; hr.partner.massInput = function(host){ var navItems = [ {text: LanguageModule.text("txt_filter_partner")}, {text: LanguageModule.text("txt_input_data")}, {text: LanguageModule.text("txt_finished")} ]; var vTimeline = absol.buildDom({ tag: 'verticaltimeline', props: { items: navItems } }); var nation_cities_select = absol.buildDom({ tag: "dualselectmenu", props: { items: host.nation_cities_select.items, value: host.nation_cities_select.value, enableSearch: true } }); var partnerItems = host.partner_class_select.items; partnerItems[0].text = LanguageModule.text("txt_select_value"); var partner_class_select = absol.buildDom({ tag: "selectmenu", props: { items: partnerItems, value: host.partner_class_select.value, enableSearch: true } }); var filterPageCtn = DOMElement.div({ attrs: { className: 'kv-document-2-site-right kv-document-page' }, children: [ absol.buildDom({ class: 'kv-document-page-header', child: [ { tag: 'span', class: 'kv-document-page-title', child: { text: LanguageModule.text("txt_filter_partner") } }, { tag: 'button', class: ['kv-document-transparent-btn', 'kv-document-page-close-btn'], child: 'span.mdi.mdi-close', on: { click: function(){ ModalElement.close(); } } } ] }), DOMElement.div({ attrs: {className: "kv-document-page-content"}, children: [ DOMElement.div({ attrs: {style: {height: "var(--control-height)", lineHeight: "var(--control-height)", fontWeight: "bold"}}, text: LanguageModule.text("txt_set_partner_filters_to_mass_input") }), DOMElement.div({ children: [ DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_nationcity") }), nation_cities_select, DOMElement.div({ attrs: { className: "card-mobile-label-form-edit" }, text: LanguageModule.text("txt_partner_class") }), partner_class_select ] }) ] }), absol.buildDom({ class: 'kv-document-page-footer', child: [ DOMElement.div({attrs: {className: "kv-document-page-footer-left"}}), DOMElement.div({ attrs: {className: "kv-document-page-footer-right"}, children: [ theme.noneIconButton({ className: "primary", text: LanguageModule.text("txt_next"), onclick: function(){ var partner_classid = partner_class_select.value; if (partner_classid == 0){ ModalElement.alert({message: LanguageModule.text("war_txt_partner_class_is_null")}); return; } vTimeline.current = 1; filterPageCtn.style.display = "none"; inputDataPageCtn.style.display = ""; redrawInputDataPage(partner_classid); } }), DOMElement.div({ attrs: { className: "kv-document-link", onclick: function(){ ModalElement.close(); } }, text: LanguageModule.text("txt_cancel") }) ] }) ] }) ] }); var redrawInputDataPage = function(partner_classid){ var pIndex = host.database.partner_class.getIndex(partner_classid); var data_ctn = DOMElement.div({}); var typeDic = contentModule.makeDictionaryIndex(host.database.typelists.items); var items = [{value: 0, text: LanguageModule.text("txt_select_value")}]; if (host.database.partner_class.items[pIndex].type_extra != 0){ var columnList = contentModule.getColumnListFromTypeid(host, host.database.partner_class.items[pIndex].type_extra, {}, true); columnList.forEach(function(item){ var tIndex = typeDic[item.type]; var type = host.database.typelists.items[tIndex].type; if (type == "enum" || type == "extends_enum" || host.database.typelists.items[tIndex].type2 == "enum"){ items.push({ value: item.value, text: item.text }); } }); } var field_select = absol.buildDom({ tag: "selectmenu", props: { items: items, enableSearch: true }, on: { change: function(){ var itemsList = [{value: 0, text: LanguageModule.text("txt_select_value")}]; if (this.value != 0){ var t; for (var i = 0; i < columnList.length; i++){ if (columnList[i].value == this.value){ t = columnList[i].type; } } if (t){ var x = []; contentModule.getDetailsExtends(host, x, t); for (var i = 0; i < x.length; i++){ itemsList.push({value: x[i].localid, text: x[i].text}); } } } DOMElement.removeAllChildren(data_ctn); var elt = absol.buildDom({ tag: "selectmenu", props: { items: itemsList, enableSearch: true } }); data_ctn.appendChild(elt); data_ctn.getValue = function(){ var value = elt.value; if (value == 0){ ModalElement.alert({message: "Chưa chọn giá trị"}); return; } var text; for (var i = 0; i < elt.items.length; i++){ if (elt.items[i].value == value){ text = elt.items[i].text; break; } } return { value: value, text: text }; }; } } }); DOMElement.removeAllChildren(input_data_ctn); input_data_ctn.appendChild(DOMElement.table({ data: [ [ {text: "Trường thay đổi"}, {attrs: {style: {width: "var(--control-horizontal-distance-2)"}}}, field_select ], [{attrs: {style: {height: "var(--control-verticle-distance-2)"}}}], [ {text: "Dữ liệu"}, {attrs: {style: {width: "var(--control-horizontal-distance-2)"}}}, data_ctn ] ] })); input_data_ctn.getValue = function(){ var field = field_select.value; if (field == 0){ ModalElement.alert({message: "Chưa chọn trường dữ liệu"}); return; } var input = data_ctn.getValue(); if (!input) return; var field_text; for (var i = 0; i < field_select.items.length; i++){ if (field_select.items[i].value == field){ field_text = field_select.items[i].text; break; } } return { field: field, field_text: field_text, input: input.value, input_text: input.text }; }; }; var input_data_ctn = DOMElement.div({ attrs: { className: 'kv-document-page-content' } }); var inputDataPageCtn = DOMElement.div({ attrs: { className: 'kv-document-2-site-right kv-document-page', style: {display: "none"} }, children: [ absol.buildDom({ class: 'kv-document-page-header', child: [ { tag: 'span', class: 'kv-document-page-title', child: { text: LanguageModule.text("txt_input_data") } }, { tag: 'button', class: ['kv-document-transparent-btn', 'kv-document-page-close-btn'], child: 'span.mdi.mdi-close', on: { click: function(){ ModalElement.close(); } } } ] }), input_data_ctn, absol.buildDom({ class: 'kv-document-page-footer', child: [ DOMElement.div({ attrs: {className: "kv-document-page-footer-left"}, children: [ theme.noneIconButton({ text: LanguageModule.text("txt_back"), onclick: function(){ vTimeline.current = 0; filterPageCtn.style.display = ""; inputDataPageCtn.style.display = "none"; } }) ] }), DOMElement.div({ attrs: {className: "kv-document-page-footer-right"}, children: [ theme.noneIconButton({ className: "primary", text: LanguageModule.text("txt_start"), onclick: function(){ var saveFunc = function(){ if (!host.done){ setTimeout(function(){ saveFunc(); }, 50); return; } var partnerIDList = []; var nation_city = nation_cities_select.value; var classid = partner_class_select.value; host.database.partner.items.forEach(function(partnerItem){ var view = true; if (nation_city[0] != 0){ if (partnerItem.nationid != nation_city[0]) view = false; else if (nation_city[1] != 0 && nation_city[1] != partnerItem.cityid) view = false; } if (view){ if (partnerItem.class.indexOf(classid) < 0) view = false; } if (view) partnerIDList.push(partnerItem.id); }); if (partnerIDList.length == 0){ ModalElement.close(-1); DOMElement.removeAllChildren(finishElt); finishElt.appendChild(DOMElement.span({ text: LanguageModule.text2("txt_you_mass_input_for_partner", [0]) })); vTimeline.current = 2; inputDataPageCtn.style.display = "none"; finishPageCtn.style.display = ""; return; } partnerIDList.sort(function(a, b){ return a - b; }); var pIndex = host.database.partner_class.getIndex(classid); var data = { partnerIDList: partnerIDList, input_data: input_data.input, field: input_data.field, typeid: host.database.partner_class.items[pIndex].type_extra }; if (host.database.partner_class.items[pIndex].type_extra != 0){ var typeDict = {}; host.database.typelists.items.forEach(function(elt){ typeDict[elt.id] = elt; }); data.defaultData = contentModule.makeDefaultData(host, host.database.partner_class.items[pIndex].type_extra, typeDict[host.database.partner_class.items[pIndex].type_extra], typeDict); data.defaultData[input_data.field] = input_data.value; } var dataLogs = { field_text: input_data.field_text, input_data_text: input_data.input_text, input_data: input_data.input, field: input_data.field, typeid: host.database.partner_class.items[pIndex].type_extra }; FormClass.api_call({ url: "partner_mass_input.php", params: [ {name: "data", value: EncodingClass.string.fromVariable(data)}, {name: "dataLogs", value: EncodingClass.string.fromVariable(dataLogs)} ], func: function(success, message){ ModalElement.close(-1); if (success){ if (message.substr(0, 2) == "ok"){ var count = parseInt(message.substr(2), 10); DOMElement.removeAllChildren(finishElt); finishElt.appendChild(DOMElement.span({ text: LanguageModule.text2("txt_you_mass_input_for_partner", [partnerIDList.length]) })); vTimeline.current = 2; inputDataPageCtn.style.display = "none"; finishPageCtn.style.display = ""; var partnerDic = contentModule.makeDictionaryIndex(host.database.partner.items); var k; for (var i = 0; i < partnerIDList.length; i++){ k = partnerDic[partnerIDList[i]]; if (k >= 0){ if (host.database.partner.items[k].extra_data){ host.database.partner.items[k].extra_data[input_data.field] = input_data.value; } else { host.database.partner.items[k].extra_data = data.defaultData; } } } } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }; var input_data = input_data_ctn.getValue(); if (!input_data) return; ModalElement.show_loading(); saveFunc(); } }), DOMElement.div({ attrs: { className: "kv-document-link", onclick: function(){ ModalElement.close(); } }, text: LanguageModule.text("txt_cancel") }) ] }) ] }) ] }); var finishElt = DOMElement.div({attrs: {align: "center", paddingTop: "50px", fontWeight: "bold"}}); var finishPageCtn = DOMElement.div({ attrs: { className: 'kv-document-2-site-right kv-document-page', style: {display: "none"} }, children: [ absol.buildDom({ class: 'kv-document-page-header', child: [ { tag: 'span', class: 'kv-document-page-title', child: { text: LanguageModule.text("txt_finished") } }, { tag: 'button', class: ['kv-document-transparent-btn', 'kv-document-page-close-btn'], child: 'span.mdi.mdi-close', on: { click: function(){ ModalElement.close(); } } } ] }), DOMElement.div({ attrs: { className: 'kv-document-page-content' }, children: [finishElt] }), absol.buildDom({ class: 'kv-document-page-footer', child: [ DOMElement.div({ attrs: {className: "kv-document-page-footer-left"} }), DOMElement.div({ attrs: {className: "kv-document-page-footer-right"}, children: [ theme.noneIconButton({ className: "primary", text: LanguageModule.text("txt_close"), onclick: function(){ ModalElement.close(); } }) ] }) ] }) ] }); ModalElement.show({ bodycontent: absol.buildDom({ class: 'kv-document-2-site', style: { minWidth: "50vw", height: "70vh" }, child: [ { class: 'kv-document-2-site-left', child: [ { class: 'kv-document-2-site-left-header', child: [ { tag: 'span', class: 'kv-document-2-site-left-header-text', child: { text: LanguageModule.text("txt_mass_input") } } ] }, vTimeline ] }, filterPageCtn, inputDataPageCtn, finishPageCtn ] }) }); }; hr.partner.init = function(host){ return new Promise(function(resolveMn, rejectMn){ hr.menu.changeCurrentUrlTab(host, "partner"); host.database = {}; var loadPartner = ((!data_module.partnerReady) || (data_module.partner === undefined) || (data_module.partner_class_links === undefined) || (data_module.partner_class === undefined)); host.listPartnerMerge = {}; host.merge_ing = false; host.inputidboxes = {}; ModalElement.show_loading(); FormClass.api_call({ url: "database_load.php", params: [ //{name: "task", value: loadPartner? "partner_load_init": "partner_load_init_no_load_partner"} {name: "task", value: "partner_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); host.done = content.done; delete content.done; host.employeeOfMe = content.employeeOfMe; delete content.employeeOfMe; contentModule.makeDatabaseContent(host, content); if (!loadPartner) { contentModule.makeDatabaseContent(host, { partner: EncodingClass.string.duplicate(data_module.partner.items), partner_class_links: EncodingClass.string.duplicate(data_module.partner_class_links.items), partner_class: EncodingClass.string.duplicate(data_module.partner_class.items) }); } contentModule.makeCitiesIndex(host); contentModule.makePartnerData(host); contentModule.makePartnerClassLinksData(host); if (EncodingClass.type.isFunction(host.database["partner"].items.map)) contentModule.makeUserMarkerData(host, "partner"); if (!loadPartner) { host.database.partner.items.sort(function(a, b){ if (b.marked > a.marked) return 1; if (b.marked < a.marked) return -1; return a.name - b.name; }); } host.form_config = contentModule.configVariable(host); host.user_column_configsDic = contentModule.getUser_column_configsDic(host); var cmdbutton = { close: function (host) { return function (event, me) { host.cancel = true; if (hr.isMobile) { host.holder.selfRemove(); hr.menu.loadPage(1000); } else { hr.menu.tabPanel.removeTab(host.holder.id); } } } (host), add: function (event, me) { hr.partner.addPartner(host, 0); }, view_maps: function(){ ModalElement.show_loading(); hr.partner.viewMaps(host); }, merge: function(){ ModalElement.show_loading(); hr.partner.merge(host); }, back: function(){ host.dataContentTable.tableView.hiddenColumns = [1]; host.merge_ing = false; host.back_btn_ctn.classList.add("hidden"); host.close_btn_ctn.classList.remove("hidden"); host.add_btn_ctn.classList.remove("hidden"); host.view_maps_btn_ctn.classList.remove("hidden"); } }; if (systemconfig.privSystem >= 2) { cmdbutton.mass_input = function() { hr.partner.massInput(host); } }; host.data_container = DOMElement.div({}); host.holder.addChild(host.frameList); var singlePage = theme.formPartnerInit({ cmdbutton: cmdbutton, database: host.database, data_container: host.data_container, func: { export: function(){ ModalElement.show_loading(); hr.partner.export(host); } } }); host.nation_cities_select = singlePage.nation_cities_select; host.partner_class_select = singlePage.partner_class_select; host.inputsearchbox = singlePage.inputsearchbox; host.marked_view_elt = singlePage.marked_view_elt; host.close_btn_ctn = singlePage.close_btn_ctn; host.back_btn_ctn = singlePage.back_btn_ctn; host.add_btn_ctn = singlePage.add_btn_ctn; host.view_maps_btn_ctn = singlePage.view_maps_btn_ctn; host.frameList.addChild(singlePage); singlePage.requestActive(); hr.partner.redraw(host); if (loadPartner) { hr.partner.loadLazyData(host, function (resolveMn, host) { return function () { resolveMn(host); } } (resolveMn, host)); } else { host.done = 1; ModalElement.close(-1); resolveMn(host); } } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); };