![]() 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/keeview_app/html/ |
Upload File : |
'use strict'; data_module.getConfigs_privilegesFromCache = function(name){ var employees = data_module.getDataTablesFromCache("employees"); var fdic = {}; for (var i = 0; i < employees.length; i++){ if (employees[i].obsoletedby != 0) continue; fdic[employees[i].firstid] = employees[i].id; } var dDic = {}; for (var i = 0; i < employees.length; i++){ if (fdic[employees[i].firstid]) dDic[employees[i].id] = fdic[employees[i].firstid]; } var res = data_module.loadConfigsByName(name); for (var i = 0; i < res.length; i++){ res[i].content = EncodingClass.string.toVariable(res[i].content); var emps = res[i].content.employees; res[i].content.employees = []; for (var j = 0; j < emps.length; j++){ if (emps[j] == 0) res[i].content.employees.push(0); if (dDic[emps[j]]) res[i].content.employees.push(dDic[emps[j]]); } } return res; }; data_module.getConfigs_privilegesFromCacheWorker = function(name){ return new Promise(function(resolve, reject){ data_module.cacheContent_employees.psearch({ searchFunc: function(record){ return { id: record.id, firstid: record.firstid, obsoletedby: record.obsoletedby }; }, callbackfunc: function(employees){ var fdic = {}; for (var i = 0; i < employees.length; i++){ if (employees[i].obsoletedby != 0) continue; fdic[employees[i].firstid] = employees[i].id; } var dDic = {}; for (var i = 0; i < employees.length; i++){ if (fdic[employees[i].firstid]) dDic[employees[i].id] = fdic[employees[i].firstid]; } data_module.loadConfigsByNameWorker(name).then(function(res){ for (var i = 0; i < res.length; i++){ res[i].content = EncodingClass.string.toVariable(res[i].content); var emps = res[i].content.employees; res[i].content.employees = []; for (var j = 0; j < emps.length; j++){ if (emps[j] == 0) res[i].content.employees.push(0); if (dDic[emps[j]]) res[i].content.employees.push(dDic[emps[j]]); } } resolve(res); }); } }) }); }; data_module.loadWorkflows_and_crmPrivileges = function(){ return new Promise(function(resolve, reject){ var tablesList = ["orgs", "employees", "peoples"]; if (systemconfig.privSystem < 2){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(true).then(function(content){ content.orgs = data_module.getOrgsFromCache(); if (systemconfig.privSystem < 2){ content.employee_groups = data_module.getDataTablesFromCache("employee_groups"); content.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); data_module.getConfigs_privilegesFromCacheWorker("work_flows_and_crm_privileges").then(function(configs_privileges){ content.configs_privileges = configs_privileges; resolve(content); }); } else { resolve(content); } }); }); }); }; data_module.loadDataOrgs = function(host){ return new Promise(function(resolve, reject){ data_module.loadTables(["orgs", "employees", "peoples", "positions", "employee_positions",], function(){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(content){ content.orgs = data_module.getOrgsFromCache(); content.positions = data_module.getConfigs_privilegesFromCache("positions"); content.employee_positions = data_module.getDataTablesFromCache("employee_positions"); contentModule.makeDatabaseContent(host, content); contentModule.makeOrgsIndex(host); contentModule.makeEmployeeData(host); contentModule.makeEmployeesIndex(host); contentModule.makeEmployeePositionData(host); resolve(); }); }); }); }; data_module.loadWorktimeLogsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(st){ st.orgs = data_module.getOrgsFromCache(); if (loadPriv){ data_module.getConfigs_privilegesFromCacheWorker("timekeeping_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); rs(st); }); } else { rs(st); } }); }); }); Promise.all([loadDataFromCache, data_module.loadUserColumnConfigsByTypeList(["worktime_logs_list"])]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.loadWorktimeChekinsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(st){ st.orgs = data_module.getOrgsFromCache(); if (loadPriv){ data_module.getConfigs_privilegesFromCacheWorker("timekeeping_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); rs(st); }); } else { rs(st); } }); }); }); Promise.all([loadDataFromCache, data_module.loadUserColumnConfigsByTypeList(["worktime_checkins_list"])]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.loadPositionsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["positions"], function(){ rs({ positions: data_module.getDataTablesFromCache("positions") }); }); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["position_2_list"])]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.loadPaySheetsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "pay_sheet_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "peoples", "orgs", "positions", "employee_positions", "geopos_orgs", "typelists" ]; var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.pay_sheet){ loadPriv = true; } if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(true).then(function(st){ st.orgs = data_module.getOrgsFromCache(); st.positions = data_module.getDataTablesFromCache("positions"); st.employee_positions = data_module.getDataTablesFromCache("employee_positions"); st.geopos_orgs = data_module.getDataTablesFromCache("geopos_orgs"); st.typelists = data_module.getDataTablesFromCache("typelists"); if (loadPriv){ data_module.getConfigs_privilegesFromCacheWorker("payroll_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); rs(st); }); } else { rs(st); } }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadTimesheetsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "timesheet_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.time_sheet){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(st){ st.orgs = data_module.getOrgsFromCache(); if (loadPriv){ data_module.getConfigs_privilegesFromCacheWorker("timekeeping_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); rs(st); }); } else { rs(st); } }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadFunctionalMatrixsInit = function(){ return new Promise(function(resolve, reject){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.time_sheet){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(st){ st.orgs = data_module.getOrgsFromCache(); data_module.loadConfigsByNameWorker("config_functional_matrix").then(function(config_functional_matrix){ st.config_functional_matrix = config_functional_matrix; if (loadPriv){ data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); resolve(st); }); } else { resolve(st); } }); }); }); }); }; data_module.loadDocumentManagersInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "document_manager_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "configs", "employee_groups", "employee_group_members" ]; data_module.loadTables(tablesList, function(){ Promise.all([ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]), data_module.getConfigs_privilegesFromCacheWorker("document_privileges") ]).then(function(values){ var st = { employeeOfMe: values[0].employeeOfMe, employee_groups: data_module.getDataTablesFromCache("employee_groups"), employee_group_members: data_module.getDataTablesFromCache("employee_group_members"), configs_document_privileges: values[1] }; rs(st); }) }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadEmploymentContactsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "employment_contract_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "peoples", "orgs" ]; if (systemconfig.privSystem < 2){ tablesList.push("employee_groups", "employee_group_members", "configs"); } data_module.loadTables(tablesList, function(){ var promiseList = [data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"])]; if (systemconfig.privSystem < 2) promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("human_resource_privileges")); Promise.all(promiseList).then(function(values){ var st = values[0]; st.orgs = data_module.getOrgsFromCache(); if (systemconfig.privSystem < 2){ st.configs_privileges = values[1]; st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); } rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadDecisionOnMeInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "orgs", "peoples", "positions", "employee_positions" ]; if (systemconfig.privSystem < 2){ tablesList.push("employee_groups", "employee_group_members", "configs"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache(), positions: data_module.getDataTablesFromCache("positions"), employee_positions: data_module.getDataTablesFromCache("employee_positions") }; var promiseList = [ data_module.getEmpsFromCacheWorker(false, ["id", "code", "orgid", "peopleid", "firstid", "available"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; }) ]; if (systemconfig.privSystem < 2){ promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("human_resource_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); Promise.all(promiseList).then(function(){ rs(st); }); }); }); var user_column_configsList = [ 'salary_decision_list', 'emulation_reward_list', 'discipline_list' ]; Promise.all([loadDataFromCache, data_module.loadUserColumnConfigsByTypeList(user_column_configsList)]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.getEmployeeRelateMeWorker = function(employeeOfMe){ return new Promise(function(resolve, reject){ var res = { directSubOfMe: [], directManageOfMe: [], indirectSubOfMe: [], indirectManageOfMe: [] }; if (employeeOfMe.length == 0) resolve(res); data_module.cacheContent_employee_managers.psearch({ postFunc: function(record){ switch (record.type) { case "direct": if (employeeOfMe.indexOf(record.managerid) >= 0){ res.directSubOfMe.push(record.employeeid); } else if (employeeOfMe.indexOf(record.employeeid) >= 0){ res.directManageOfMe.push(record.managerid); } break; case "indirect": if (employeeOfMe.indexOf(record.managerid) >= 0){ res.indirectSubOfMe.push(record.employeeid); } else if (employeeOfMe.indexOf(record.employeeid) >= 0){ res.indirectManageOfMe.push(record.managerid); } } }, searchFunc: function(record){ if (extraParams.employeeOfMe.indexOf(record.managerid) >= 0 || extraParams.employeeOfMe.indexOf(record.employeeid) >= 0){ return record; } return null; }, extraParams: { employeeOfMe: employeeOfMe }, callbackfunc: function(values){ resolve(res); } }); }); }; data_module.loadHumanResourcePoliciesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "employee_managers", "configs", "employee_groups", "employee_group_members" ]; data_module.loadTables(tablesList, function(){ Promise.all([ data_module.getEmpsFromCacheWorker(false, ["id"]), data_module.getConfigs_privilegesFromCacheWorker("org_privileges") ]).then(function(values){ var st = { employeeOfMe: values[0].employeeOfMe, config_orgs_privileges: values[1], employee_groups: data_module.getDataTablesFromCache("employee_groups"), employee_group_members: data_module.getDataTablesFromCache("employee_group_members") }; data_module.getEmployeeRelateMeWorker(st.employeeOfMe).then(function(res){ st.directSubOfMe = res.directSubOfMe; rs(st); }); }); }); }); var user_column_configsList = [ 'bonus_policy_list', 'allowance_policy_list', 'benefit_policy_list', 'advance_payment_policy_list', 'insurance_policy_list', 'late_early_checkin_policy_list', 'leave_policy_list', 'other_liability_policy_list', 'punishment_policy_list', 'tax_policy_list', 'trade_union_policy_list', 'overtime_policy_list' ]; Promise.all([loadDataFromCache, data_module.loadUserColumnConfigsByTypeList(user_column_configsList)]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.loadHumanResourceListInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "human_resource_list_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "peoples", "orgs" ]; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.human_resource_list){ tablesList.push("employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var promiseList = [data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"])]; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.human_resource_list){ promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("payroll_privileges")); } Promise.all(promiseList).then(function(values){ var employeeOfMe = values[0].employeeOfMe; var st = { employeeOfMe: employeeOfMe, orgs: data_module.getOrgsFromCache(), employees: values[0].employees }; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.human_resource_list){ st.configs_privileges = values[1] st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); } rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadHumanResourceRequestInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "human_resource_request_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "peoples", "orgs", "employee_managers" ]; data_module.loadTables(tablesList, function(){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(st){ st.orgs = data_module.getOrgsFromCache(); st.employee_managers = data_module.getDataTablesFromCache("employee_managers"); data_module.getEmployeeRelateMeWorker(st.employeeOfMe).then(function(res){ for (var x in res){ st[x] = res[x]; } rs(st); }); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscApprovalValuesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "bsc_approval_values_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs", "configs" ]; if (loadPriv){ tablesList.push("employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = [ data_module.loadConfigsByNameWorker("config_bsc").then(function(config_bsc){ if (config_bsc.length > 0){ var x = EncodingClass.string.toVariable(config_bsc[0].content); for (var i in x){ systemconfig["bsc_" + i] = x[i]; } } }) ]; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscLockValuesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "bsc_lock_values_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs", "configs" ]; if (loadPriv){ tablesList.push("employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = [ data_module.loadConfigsByNameWorker("config_bsc").then(function(config_bsc){ if (config_bsc.length > 0){ var x = EncodingClass.string.toVariable(config_bsc[0].content); for (var i in x){ systemconfig["bsc_" + i] = x[i]; } } }) ]; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscInputValuesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "bsc_input_values_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs", "configs" ]; if (loadPriv){ tablesList.push("employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = [ data_module.loadConfigsByNameWorker("config_bsc").then(function(config_bsc){ if (config_bsc.length > 0){ var x = EncodingClass.string.toVariable(config_bsc[0].content); for (var i in x){ systemconfig["bsc_" + i] = x[i]; } } }) ]; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscAccumulateValuesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "bsc_accumulate_values_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = []; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscScorecardsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "bsc_scorecards_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = []; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscLockScorecardsInit = function(){ return new Promise(function(resolve, reject){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = []; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ resolve(st); }); }); }); }; data_module.loadBscOveriddenResultsInit = function(){ return new Promise(function(resolve, reject){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = []; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ resolve(st); }); }); }); }; data_module.loadProjectsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "projects_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.projects){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs", "nations", "cities" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache(), nations: data_module.getDataTablesFromCache("nations"), cities: data_module.getDataTablesFromCache("cities") }; var promiseList = [ data_module.getEmpsFromCacheWorker(false, ["id", "code", "orgid", "firstid", "peopleid", "available"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; }) ]; if (loadPriv){ promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("org_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadAssign_employee_shifts = function(params){ return new Promise(function(resolve, reject){ data_module.loadTables(["assign_employee_shifts"], function(){ var employeeIdDic = {}; params.employeeIdList.forEach(function(employeeid){ employeeIdDic[employeeid] = true; }); data_module.cacheContent_assign_employee_shifts.psearch({ searchFunc: function(record){ if (record.date < extraParams.timestart) return null; if (record.date > extraParams.timeend) return null; if (!extraParams.employeeIdDic[record.employeeid] && !extraParams.employeeIdDic[record.substitute]) return null; if (extraParams.typeDic){ if (!extraParams.typeDic[record.type]) return null; } return record; }, extraParams: { timestart: params.timestart, timeend: params.timeend, typeDic: params.typeDic, employeeIdDic: employeeIdDic }, callbackfunc: function(assign_employee_shifts){ resolve(assign_employee_shifts); } }); }); }); }; data_module.loadShiftSchedulesInit2 = function(params){ return new Promise(function(resolve, reject){ data_module.loadAssign_employee_shifts(params).then(function(content){ resolve({assign_employee_shifts: content}); }); }); }; data_module.loadShiftSchedulesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "shift_schedule_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs", "positions", "employee_positions" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache(), positions: data_module.getDataTablesFromCache("positions"), employee_positions: data_module.getDataTablesFromCache("employee_positions") }; var promiseList = [ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "code", "available", "peopleid"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; }) ]; if (loadPriv){ promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("timekeeping_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadBscReportsInit = function(host){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "bsc_reports_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ loadPriv = true; } var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = []; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("bsc_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache, data_module.loadConfigBsc()]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } var content = values[0]; if (loadPriv) content.configs_privileges = data_module.getConfigs_privilegesFromCache("bsc_privileges"); host.employeeOfMe = content.employeeOfMe; delete content.employeeOfMe; contentModule.makeDatabaseContent(host, content); contentModule.makeOrgsIndex(host); contentModule.makeEmployeeData(host); contentModule.makeEmployeesIndex(host); contentModule.makeBscCriteriaDefinitionsData(host); if (content.employee_groups){ contentModule.makeEmployeeGroupMemberIndex(host); contentModule.makeConfigPrivileges(host); } host.orgFirstidDic = {}; for (var i = 0; i < host.database.orgs.items.length; i++){ host.orgFirstidDic[host.database.orgs.items[i].firstid] = i; } host.orgIdDic = {}; for (var i = 0; i < host.database.orgs.items.length; i++){ host.orgIdDic[host.database.orgs.items[i].id] = i; } host.orgsDic = contentModule.makeDictionaryIndex(host.database.orgs.items); host.employeesDic = contentModule.makeDictionaryIndex(host.database.employees.items); host.empFirstidDic = {}; for (var i = 0; i < host.database.employees.items.length; i++){ host.empFirstidDic[host.database.employees.items[i].firstid] = i; } host.noSelectCreateDic = {}; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ host.database.orgs.items.forEach(function(item){ if (!host.privilegesDic[item.id] || !host.privilegesDic[item.id].create_report){ host.noSelectCreateDic[item.id] = true; } }); host.database.employees.items.forEach(function(item){ if (!host.privilegesDic[-item.id] || !host.privilegesDic[-item.id].create_report){ host.noSelectCreateDic[-item.id] = true; } }); } host.noSelectLockDic = {}; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ host.database.orgs.items.forEach(function(item){ if (!host.privilegesDic[item.id] || !host.privilegesDic[item.id].lock_unlock_bsc){ host.noSelectLockDic[item.id] = true; } }); host.database.employees.items.forEach(function(item){ if (!host.privilegesDic[-item.id] || !host.privilegesDic[-item.id].lock_unlock_bsc){ host.noSelectLockDic[-item.id] = true; } }); } host.noSelectDeleteDic = {}; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.functional_matrixs_scorecards){ host.database.orgs.items.forEach(function(item){ if (!host.privilegesDic[item.id] || !host.privilegesDic[item.id].create_report){ host.noSelectDeleteDic[item.id] = true; } }); host.database.employees.items.forEach(function(item){ if (!host.privilegesDic[-item.id] || !host.privilegesDic[-item.id].create_report){ host.noSelectDeleteDic[-item.id] = true; } }); } resolve(); }); }); }; data_module.getSubOfMeFromCacheWorker = function(employeeOfMe){ return new Promise(function(resolve, reject){ if (employeeOfMe.length == 0) resolve([]); data_module.cacheContent_employee_managers.psearch({ extraParams: { employeeOfMe: employeeOfMe }, searchFunc: function(record){ if (extraParams.employeeOfMe.indexOf(record.managerid) >= 0){ return record; } return null; }, callbackfunc: function(values){ resolve(values); } }); }); }; data_module.loadPartnerCheckinsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["orgs", "employees", "peoples", "nations", "cities", "employee_managers"], function(){ data_module.getEmpsFromCacheWorker(true).then(function(content){ content.orgs = data_module.getOrgsFromCache(); content.nations = data_module.getDataTablesFromCache("nations"); content.cities = data_module.getDataTablesFromCache("cities", function(record){ return { id: record.id, nationid: record.nationid, name: record.name, available: record.available } }); data_module.getSubOfMeFromCacheWorker(content.employeeOfMe).then(function(subOfMe){ content.subOfMe = subOfMe; }); rs(content); }); }); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["partner_checkin_list"])]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.loadMyAssetsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadOrgsTree(rs); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["my_asset_list"])]).then(function(values){ values[0].user_column_configs = values[1]; resolve(values[0]); }); }); }; data_module.loadAssetTransactionsInit = function(type){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "asset_transactions_load_init"}, {name: "type", value: type} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var loadPriv = false; if (systemconfig.privSystem < 2 && !data_module.admin_rights_of_me.asset_list){ loadPriv = true; } var tablesList = [ "employees", "peoples", "orgs" ]; if (loadPriv){ tablesList.push("configs", "employee_groups", "employee_group_members"); } data_module.loadTables(tablesList, function(){ var st = { orgs: data_module.getOrgsFromCache() }; var promiseList = []; promiseList.push(data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "code"]).then(function(res){ st.employees = res.employees; st.employeeOfMe = res.employeeOfMe; })); if (loadPriv){ st.employee_groups = data_module.getDataTablesFromCache("employee_groups"); st.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(data_module.getConfigs_privilegesFromCacheWorker("asset_privileges").then(function(configs_privileges){ st.configs_privileges = configs_privileges; })); } Promise.all(promiseList).then(function(){ rs(st); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadWarehouseInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "warehouses_load_init"} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ data_module.loadOrgsTree(rs); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ for (var x in values[1]){ values[0][x] = values[1][x]; } resolve(values[0]); }); }); }; data_module.loadCompanyInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["orgs", "geopos_orgs"], function(){ var companies = data_module.getOrgCompaniesFromCache("nations"); var geopos_orgs = data_module.getDataTablesFromCache("geopos_orgs"); rs({ companies: companies, geopos_orgs: geopos_orgs }); }); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["company_list"])]).then(function(values){ var st = { companies: values[0].companies, geopos_orgs: values[0].geopos_orgs, user_column_configs: values[1] }; resolve(st); }); }); }; data_module.loadContactsInit = function(host){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "contact_load_init"}, {name: "isMobile", value: hr.isMobile? 1 : 0} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ var tablesList = ["employees", "contacts", "orgs", "peoples"]; if (systemconfig.privSystem < 2) tablesList.push("configs", "employee_group_members", "employee_groups"); data_module.loadTables(tablesList, function(){ var content = { orgs: data_module.getOrgsFromCache() }; var loadEmployeesFunc = new Promise(function(rss, rjj){ data_module.getEmpsFromCacheWorker(false, ["id", "firstid", "orgid", "peopleid", "available", "userid"]).then(function(values){ content.employees = values.employees; content.employeeOfMe = values.employeeOfMe; rss(); }); }); var loadContactFunc = new Promise(function(rss, rjj){ data_module.cacheContent_contacts.psearch({ searchFunc: function(record){ return { id: record.id, name: record.name, owner: record.owner }; }, callbackfunc: function(values){ content.contact = values; rss(); } }); }); var promiseList = [loadContactFunc, loadEmployeesFunc]; if (systemconfig.privSystem < 2){ content.employee_groups = data_module.getDataTablesFromCache("employee_groups"); content.employee_group_members = data_module.getDataTablesFromCache("employee_group_members"); promiseList.push(new Promise(function(rss, rjj){ data_module.getConfigs_privilegesFromCacheWorker("work_flows_and_crm_privileges").then(function(configs_privileges){ content.configs_privileges = configs_privileges; rss(); }); })); } Promise.all(promiseList).then(function(){ rs(content); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ values[0].markedDic = {}; values[0].user_marked.forEach(function(item){ values[0].markedDic[parseInt(item.taskid, 10)] = true; }); delete values[0].user_marked; var k, t = []; var holderForSort = values[1].contact.map(function(item){ return { item: item, val: absol.string.nonAccentVietnamese(item.name.toLowerCase()) } }); holderForSort.sort(function(a, b){ if (values[0].markedDic[a.item.id] != values[0].markedDic[b.item.id]){ if (values[0].markedDic[a.item.id]) return -1; if (values[0].markedDic[b.item.id]) return 1; } if (a.val < b.val) return -1; if (a.val > b.val) return 1; return 0; }); values[1].contact = holderForSort.map(function(holder){ return holder.item; }); for (var x in values[1]){ values[0][x] = values[1][x]; } host.employeeOfMe = values[0].employeeOfMe; delete values[0].employeeOfMe; host.markedDic = values[0].markedDic; delete values[0].markedDic; contentModule.makeDatabaseContent(host, values[0]); contentModule.makeOrgsIndex(host); contentModule.makeEmployeeData(host); contentModule.makeEmployeesIndex(host); if (values[0].configs_privileges){ contentModule.makeEmployeeGroupMemberIndex(host); contentModule.makeConfigPrivileges(host); } host.allContactIDList = []; host.database.contact.items.forEach(function(item){ if ((systemconfig.privSystem < 2) && (host.employeeOfMe.indexOf(item.owner) < 0)){ if (!host.privilegesDic[-item.owner] || !host.privilegesDic[-item.owner].edit_employees_contacts) return; } host.allContactIDList.push(item.id); }); host.database.contact = null; resolve(); }); }); }; data_module.loadPartnersInit = function(host){ return new Promise(function(resolve, reject){ var loadDataFromDB = new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [ {name: "task", value: "partner_load_init"}, {name: "isMobile", value: hr.isMobile? 1 : 0} ], func: function(success, message) { if (success) { if (message.substr(0, 2) == "ok") { var content = EncodingClass.string.toVariable(message.substr(2)); rs(content); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); var loadDataFromCache = new Promise(function(rs, rj){ data_module.loadTables(["employees", "partners", "partner_class_links", "nations", "cities", "partner_class", "peoples"], function(){ var content = { nations: data_module.getDataTablesFromCache("nations", function(record){ return { id: record.id } }), cities: data_module.getDataTablesFromCache("cities", function(record){ return { id: record.id, nationid: record.nationid } }) }; var loadPartnerFunc = new Promise(function(rss, rjj){ data_module.cacheContent_partners.psearch({ searchFunc: function(record){ return { id: record.id, name: record.name }; }, callbackfunc: function(values){ content.partner = values; rss(); } }); }); var loadEmployeesFunc = new Promise(function(rss, rjj){ data_module.getEmpsFromCacheWorker(false, ["id", "peopleid", "userid"]).then(function(values){ content.employees = values.employees; content.employeeOfMe = values.employeeOfMe; rss(); }); }); Promise.all([loadPartnerFunc, loadEmployeesFunc]).then(function(){ rs(content); }); }); }); Promise.all([loadDataFromDB, loadDataFromCache]).then(function(values){ values[0].markedDic = {}; values[0].user_marked.forEach(function(item){ values[0].markedDic[parseInt(item.taskid, 10)] = true; }); delete values[0].user_marked; var k, t = []; var holderForSort = values[1].partner.map(function(item){ return { id: item.id, val: absol.string.nonAccentVietnamese(item.name.toLowerCase()) } }); holderForSort.sort(function(a, b){ if (values[0].markedDic[a.id] != values[0].markedDic[b.id]){ if (values[0].markedDic[a.id]) return -1; if (values[0].markedDic[b.id]) return 1; } if (a.val < b.val) return -1; if (a.val > b.val) return 1; return 0; }); values[0].partnerIDList = holderForSort.map(function(holder){ return holder.id; }); delete values[1].partner; for (var x in values[1]){ values[0][x] = values[1][x]; } host.allPartnerIDList = values[0].partnerIDList; delete values[0].partnerIDList; host.markedDic = values[0].markedDic; delete values[0].markedDic; contentModule.makeDatabaseContent(host, values[0]); contentModule.makeCitiesIndex(host); host.user_column_configsDic = contentModule.getUser_column_configsDic(host); host.usersDic = {}; host.database.employees.items.forEach(function(item){ host.usersDic[item.userid] = item.peopleid; }); resolve(); }); }); }; data_module.loadPartnerClassInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["partner_class"], function(){ var partner_class = data_module.getDataTablesFromCache("partner_class"); rs({ partner_class: partner_class }); }); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["partner_class_list"])]).then(function(values){ var st = { partner_class: values[0].partner_class, user_column_configs: values[1] }; resolve(st); }); }); }; data_module.loadCitiesInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["nations", "cities"], function(){ var nations = data_module.getDataTablesFromCache("nations"); var cities = data_module.getDataTablesFromCache("cities"); rs({ nations: nations, cities: cities }); }); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["city_list"])]).then(function(values){ var st = { nations: values[0].nations, cities: values[0].cities, user_column_configs: values[1] }; resolve(st); }); }); }; data_module.loadNationsInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["nations"], function(){ var nations = data_module.getDataTablesFromCache("nations"); rs({ nations: nations }); }); }); }; Promise.all([loadDataFromCache(), data_module.loadUserColumnConfigsByTypeList(["nation_list"])]).then(function(values){ var st = { nations: values[0].nations, user_column_configs: values[1] }; resolve(st); }); }); }; data_module.loadAccountInit = function(){ return new Promise(function(resolve, reject){ FormClass.api_call({ url: "database_load.php", params: [{name: "task", value: "accouns_load_init"}], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); resolve(st); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; data_module.loadDatatypeInit = function(){ return new Promise(function(resolve, reject){ var loadDataFromDB = function(){ return new Promise(function(rs, rj){ FormClass.api_call({ url: "database_load.php", params: [{name: "task", value: "datatypes_load_init"}], func: function(success, message){ if (success){ if (message.substr(0, 2) == "ok"){ var st = EncodingClass.string.toVariable(message.substr(2)); rs(st); } else { ModalElement.alert({message: message}); } } else { ModalElement.alert({message: message}); } } }); }); }; var loadDataFromCache = function(){ return new Promise(function(rs, rj){ data_module.loadTables(["typelists"], function(){ var typelists = data_module.getDataTablesFromCache("typelists"); rs({ typelists: typelists }); }); }); }; Promise.all([loadDataFromDB(), loadDataFromCache()]).then(function(values){ var st = { users: values[0].users, typelists: values[1].typelists, user_column_configs: values[0].user_column_configs }; resolve(st); }); }); };