VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/tech_preview/hr/data_module.js
'use strict';
data_module.makeDatabaseCommon = function(content){
    var i, keys;
    keys = Object.keys(content);
    keys.forEach(function(item, i){
        data_module[item] = {};
        data_module[item].items = content[item];
        data_module[item].getIndex = function(id){
            for (var i = 0; i < data_module[item].items.length; i++){
                if (data_module[item].items[i].id == id) return i;
            }
            return -1;
        }
    });
};

data_module.loadInputFormList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        // rs(form_module.defaultInputFormForPrimitiveType().concat(content));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadMobileInputFormList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_mobile_load_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        // rs(form_module.defaultInputFormForPrimitiveType().concat(content));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadMobileOutputFormList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'output_form_mobile_load_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        // rs(form_module.defaultInputFormForPrimitiveType().concat(content));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOutputFormList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'output_form_load_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        // rs(form_module.defaultOutputFormForPrimitiveType().concat(content));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadType_listsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_type_lists_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadDataCommon = function(){
    return new Promise(function(resolve, reject){
        ModalElement.show_loading();
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_common"},
                {name: "privSystem", value: systemconfig.privSystem}
            ],
            func: function(success, message){
                ModalElement.close(-1);
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        data_module.employeeOfMe = content.employeeOfMe;
                        delete content.employeeOfMe;
                        if (content.config_checkin.length > 0){
                            var x = EncodingClass.string.toVariable(content.config_checkin[0].content);
                            hr.maximumDistance = x.distance_checkin;
                        }
                        else {
                            hr.maximumDistance = 100;
                        }
                        delete content.config_checkin;
                        // if (content.config_functional_matrix.length > 0){
                        //     var x = EncodingClass.string.toVariable(content.config_functional_matrix[0].content);
                        //     hr.functional_matrix_model = x.model;
                        // }
                        // else {
                        //     hr.functional_matrix_model = 100;
                        // }
                        // delete content.config_functional_matrix;
                        if (systemconfig.privSystem < 2){
                            data_module.admin_rights_of_me = {};
                            for (var i = 0; i < content.admin_rights_of_me.length; i++){
                                data_module.admin_rights_of_me[content.admin_rights_of_me[i].priv] = true;
                            }
                            delete content.admin_rights_of_me;
                        }
                        data_module.makeDatabaseCommon(content);
                        resolve();
                        // data_module.typelists.items = contentModule.getDatatypePrimitiveList().concat(data_module.typelists.items);
                        //
                        // contentModule.makeInputFormDecode(data_module.input_forms.items);
                        // contentModule.makeInputFormDecode(data_module.mobile_input_forms.items);
                        // contentModule.makeOutputFormDecode(data_module.output_forms.items);
                        // contentModule.makeOutputFormDecode(data_module.mobile_output_forms.items);
                        // var p1 = hr.input_form.loadFormConstructorToAssembler(data_module.input_forms.items, data_module.typelists.items);
                        // var p2 = hr.output_form.loadFormConstructorToAssembler(data_module.output_forms.items, data_module.typelists.items);
                        // var p3 = hr.input_form_mobile.loadFormConstructorToAssembler(data_module.mobile_input_forms.items, data_module.typelists.items);
                        // var p4 = hr.output_form_mobile.loadFormConstructorToAssembler(data_module.mobile_output_forms.items, data_module.typelists.items);
                        // Promise.all([p1, p2, p3, p4]).then(function(){resolve();}, function(message){console.log(message); reject(message)});
                    }
                    else {
                        ModalElement.alert({message: message});
                        reject(message);
                    }
                }
                else {
                    ModalElement.alert({message: message});
                    reject(message);
                }
            }
        });
    });
};

data_module.loadTypeList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "input_form_load_typelists"}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        console.log(message);
                        rj(message);
                    }
                }
                else {
                    console.log(message);
                    rj(message);
                }
            }
        })
    });
};


data_module.loadFormContent = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: 'database_load.php',
            params: [
                {name: 'task', value: 'input_form_load_by_id'},
                {name: 'id', value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        if (content.length == 0) {
                            ModalElement.alert({message: "error"});
                            reject("error");
                        }
                        else {
                            content[0].content = EncodingClass.string.toVariable(content[0].content);
                            resolve(content[0].content);
                        }
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        })
    });
};

data_module.loadMobileFormContent = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: 'database_load.php',
            params: [
                {name: 'task', value: 'input_form_mobile_load_by_id'},
                {name: 'id', value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        if (content.length == 0) {
                            ModalElement.alert({message: "error"});
                            reject("error");
                        }
                        else {
                            content[0].content = EncodingClass.string.toVariable(content[0].content);
                            resolve(content[0].content);
                        }
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        })
    });
};

data_module.loadUsersList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_users_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPeoplesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_peoples_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOrgsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_orgs_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadEmployeesListByOrgid = function(orgid){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_employees_by_orgid'},
                {name: "orgid", value: orgid}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadEmployeesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_employees_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadTemplateGroupList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_template_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

// data_module.loadEmployeeById = function(id){
//     return new Promise(function(rs, rj){
//         FormClass.api_call({
//             url: "database_load.php",
//             params: [
//                 {name: "task", value: 'input_form_load_employees_by_id'},
//                 {name: "id", value: id}
//             ],
//             func: function(success, message){
//                 if (success){
//                     if (message.substr(0, 2) == 'ok'){
//                         var content = EncodingClass.string.toVariable(message.substr(2));
//                         rs(content);
//                     }
//                     else {
//                         rj(message);
//                     }
//                 }
//                 else {
//                     rj(message);
//                 }
//             }
//         })
//     });
// };


data_module.loadEmployeeManagersList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_employee_managers_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadGeoposOrgsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_geopos_orgs_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadEmployeePositionsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_employee_position_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPositionsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_positions_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadGeographiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_geographies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadWorktimeMachinesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_worktime_machines'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPositionsListByOrgid = function(orgid){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_positions_list_by_orgid'},
                {name: "orgid", value: orgid},
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPositionById2 = function(id){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_positions_by_id'},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

// data_module.loadPositionById = function(id){
//     return new Promise(function(rs, rj){
//         FormClass.api_call({
//             url: "database_load.php",
//             params: [
//                 {name: "task", value: 'position_load_by_id'},
//                 {name: "orgid", value: 0},
//                 {name: "id", value: id},
//             ],
//             func: function(success, message){
//                 if (success){
//                     if (message.substr(0, 2) == 'ok'){
//                         var content = EncodingClass.string.toVariable(message.substr(2));
//                         rs(content);
//                     }
//                     else {
//                         rj(message);
//                     }
//                 }
//                 else {
//                     rj(message);
//                 }
//             }
//         })
//     });
// };

data_module.generateOrgSelectItems = function(){
    return new Promise(function(resolve, reject){
        data_module.loadOrgsList().then(function(rs){
            var host = {database: {}};
            contentModule.makeDatabaseContent(host, {orgs: rs});
            contentModule.makeOrgsIndex(host);
            resolve(contentModule.getOrgsListSelectTreeMenu(host));
        }, function(rj){
            console.log(rj);
            reject();
        });
    });
};

data_module.generatePositionSelectItems = function(orgid){
    return new Promise(function(resolve, reject){
        data_module.loadPositionsListByOrgid(orgid).then(function(rs){
            var host = {database: {}};
            contentModule.makeDatabaseContent(host, {positions: rs});
            resolve(contentModule.getPositionsListSelectMenu(host));
        }, function(rj){
            console.log(rj);
            reject();
        });
    });
};

data_module.loadStaticFragmentClasses = function () {
    var module = hr.input_form.fragmentClasses;
    if (module.staticLoaded) return;
    module.staticLoaded = true;
    var OOP = absol.OOP;
    var FmFragment = absol.form.FmFragment;
    var NotLoadedLayout = {
        tag: 'LinearLayout',
        style: { width: 'auto', height: 'auto' },
        children: {
            tag: 'text',
            style: { top: 5, left: 5, right: 5, bottom: 5 },
            attributes: { text: 'Lỗi, nếu chưa tải layout!' }
        }
    }


    function SelectPositionInDepartment() {
        FmFragment.call(this);
        this.positionSyncCache = {};
    }

    OOP.mixClass(SelectPositionInDepartment, FmFragment);
    SelectPositionInDepartment.tag = 'unset';//chưa tải về database, không biết tag nào
    SelectPositionInDepartment.prototype.contentViewData = NotLoadedLayout;

    SelectPositionInDepartment.prototype.onCreated = function () {
        //type_select_position_orgid chính là name của input, chỉ cần thêm $ để truy cập vì đã bind sẵn
        var thisFrg = this;
        data_module.generateOrgSelectItems().then(function (orgItems){
            thisFrg.$type_select_position_orgid.domElt.items = orgItems;
            // thisFrg.$type_select_position_orgid.domElt.value = orgItems.length > 0 ? orgItems[0].value : 0;
            thisFrg.handleOrgChange();
        });

        this.$type_select_position_orgid.domElt.on('change', this.handleOrgChange.bind(this));
    };

    SelectPositionInDepartment.prototype.handleOrgChange = function () {
        var orgid = this.$type_select_position_orgid.domElt.value;
        var positionItemsSync = this.positionSyncCache[orgid];
        if (!positionItemsSync) {
            positionItemsSync = data_module.generatePositionSelectItems(orgid);
            this.positionSyncCache[orgid] = positionItemsSync;
        }
        var thisFrg = this;
        positionItemsSync.then(function (positionItems){
            thisFrg.$type_select_position_id.domElt.items = positionItems;
            // thisFrg.$type_select_position_id.domElt.value = positionItems.length > 0 ? positionItems[0].value : 0;
        })

    };

    module.SelectPositionInDepartment = SelectPositionInDepartment;


    function ValidTimeShift(){
        FmFragment.call(this);
    }

    module.ValidTimeShift = ValidTimeShift;

    OOP.mixClass(ValidTimeShift, FmFragment);

    ValidTimeShift.tag = 'unset';//chưa tải về database, không biết tag nào
    ValidTimeShift.prototype.contentViewData = NotLoadedLayout;

    ValidTimeShift.prototype.onCreated = function(){
        this._setupCheckboxTimeView(
            "type_shift_valid_time_check_in_for_first_half_shift_time_start",
            "type_shift_valid_time_check_in_for_first_half_shift_time_start_from",
            "type_shift_valid_time_check_in_for_first_half_shift_time_start_to",
            "type_shift_first_half_shift_time_start"
        );
        this._setupCheckboxTimeView(
            "type_shift_valid_time_check_out_for_first_half_shift_time_finish",
            "type_shift_valid_time_check_out_for_first_half_shift_time_finish_from",
            "type_shift_valid_time_check_out_for_first_half_shift_time_finish_to",
            "type_shift_first_half_shift_time_finish"
        );
        this._setupCheckboxTimeView(
            "type_shift_valid_time_check_in_for_second_half_shift_time_start",
            "type_shift_valid_time_check_in_for_second_half_shift_time_start_from",
            "type_shift_valid_time_check_in_for_second_half_shift_time_start_to",
            "type_shift_second_half_shift_time_start"
        );
        this._setupCheckboxTimeView(
            "type_shift_valid_time_check_out_for_second_half_shift_finish",
            "type_shift_valid_time_check_out_for_second_half_shift_finish_from",
            "type_shift_valid_time_check_out_for_second_half_shift_finish_to",
            "type_shift_second_half_shift_time_finish"
        );
        this._setupOvertimeAfterShiftAllowed(
            "type_shift_overtime_after_shift_allowed",
            "type_shift_overtime_after_shift_wage",
            "type_shift_overtime_after_shift_time_start",
            "type_shift_overtime_after_shift_time_finish",
            "type_shift_overtime_after_shift_min_time",
            "type_shift_overtime_after_shift_round_minute_to_hour"
        );
    };

    ValidTimeShift.prototype._setupCheckboxTimeView = function(checkboxName, startInputName, endInputName, eltDefautName){
        var checkboxElt = this.findViewByName(checkboxName).$content;
        var startInputElt = this.findViewByName(startInputName).domElt;
        var endInputElt = this.findViewByName(endInputName).domElt;
        var eltDefautElt = this.findViewByName(eltDefautName).domElt;
        var oldChecked;
        checkboxElt.on('change', function(){
            if (this.checked){
                startInputElt.disabled = false;
                if (oldChecked !== undefined) startInputElt.dayOffset = eltDefautElt.dayOffset;
                endInputElt.disabled = false;
                if (oldChecked !== undefined) endInputElt.dayOffset = eltDefautElt.dayOffset;
            }
            else {
                startInputElt.disabled = true;
                startInputElt.dayOffset = null;
                endInputElt.disabled = true;
                endInputElt.dayOffset = null;
            }
            oldChecked = this.checked;
        });
    };

    ValidTimeShift.prototype._setupOvertimeAfterShiftAllowed = function(checkboxName, wageName, time_startName, time_finishName, min_timeName, round_minute_to_hourName){
        var checkboxElt = this.findViewByName(checkboxName).$content;
        var wageElt = this.findViewByName(wageName).$content;
        var time_startElt = this.findViewByName(time_startName).domElt;
        var time_finishElt = this.findViewByName(time_finishName).domElt;
        var min_timeElt = this.findViewByName(min_timeName).domElt;
        var round_minute_to_hourElt = this.findViewByName(round_minute_to_hourName).domElt;
        checkboxElt.on('change', function(){
            if (this.checked){
                wageElt.disabled = false;
                time_startElt.disabled = false;
                time_finishElt.disabled = false;
                min_timeElt.disabled = false;
                round_minute_to_hourElt.disabled = false;
            }
            else {
                wageElt.disabled = true;
                wageElt.checked = false;
                time_startElt.disabled = true;
                time_startElt.dayOffset = null;
                time_finishElt.disabled = true;
                time_finishElt.dayOffset = null;
                min_timeElt.disabled = true;
                min_timeElt.value = 0;
                round_minute_to_hourElt.disabled = true;
                round_minute_to_hourElt.value = 0;
            }
        });
    };
};

data_module.makeImageContent = function(id){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_image_content'},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        if (content.length == 0) rs(null);
                        else {
                            if (content[0].file_new) content[0].url = window.domainFilesNew + content[0].id + "_" + content[0].name + ".upload";
                            else content[0].url = window.domainFiles + content[0].id + "_" + content[0].name + ".upload";
                            rs(content[0]);
                        }
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.makeFilesContent = function(id){
    return new Promise(function(rs, rj){
        var array = [];
        var arrayOld = [];
        id.forEach(function(elt){
            if (elt instanceof Object != true) array.push(elt);
            else {
                if (elt.filename) {
                    if (elt.type == "img"){
                        elt.url = window.domainImagesCD + elt.filename + ".upload";
                    }
                    else {
                        elt.url = window.domainFilesCD + elt.filename + ".upload";
                    }
                    arrayOld.push(elt);
                }
            }
        });
        if (array.length == 0){
            rs(arrayOld);
            return;
        }
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_files_content'},
                {name: "id", value: EncodingClass.string.fromVariable(array)}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        if (content.length == 0) rs(arrayOld);
                        else {
                            content.forEach(function(elt){
                                if (elt.file_new) elt.url = window.domainFilesNew + elt.id + "_" + elt.name + ".upload";
                                else elt.url = window.domainFiles + elt.id + "_" + elt.name + ".upload";
                            });
                            rs(arrayOld.concat(content));
                        }
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadAssetsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_assets_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadInstruments_and_toolsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_instruments_and_tools_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadWarehousesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_warehouses_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadAllowance_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_allowance_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadBonus_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_bonus_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadWork_flow_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_work_flow_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadWork_flowsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_work_flows_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadObjectsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_objects_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPayrollCycleList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_payroll_cycle_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadLesson_categoriesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_lesson_categories_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPartner_classList = function(){
    return new Promise(function(rs, rj){
        if (data_module.partner_classReady){
            rs(EncodingClass.string.duplicate(data_module.partner_class.items));
        }
        else {
            FormClass.api_call({
                url: "database_load.php",
                params: [
                    {name: "task", value: 'input_form_load_partner_class_dropdown_list'}
                ],
                func: function(success, message){
                    if (success){
                        if (message.substr(0, 2) == 'ok'){
                            var content = EncodingClass.string.toVariable(message.substr(2));
                            rs(content.partner_class);
                        }
                        else {
                            rj(message);
                        }
                    }
                    else {
                        rj(message);
                    }
                }
            })
        }
    });
};

data_module.loadPartnerList = function(){
    return new Promise(function(rs, rj){
        if (data_module.partnerReady){
            rs(EncodingClass.string.duplicate(data_module.partner.items));
        }
        else {
            var partner = [];
            var partner_class_links = [];
            var loadData = function(startIndex){
                FormClass.api_call({
                    url: "database_load.php",
                    params: [
                        {name: "task", value: 'input_form_load_partner_dropdown_list'},
                        {name: "startIndex", value: startIndex}
                    ],
                    func: function(success, message){
                        if (success){
                            if (message.substr(0, 2) == 'ok'){
                                var content = EncodingClass.string.toVariable(message.substr(2));
                                partner = partner.concat(content.partner);
                                partner_class_links = partner_class_links.concat(content.partner_class_links);
                                if (content.done){
                                    var host = {database: {}};
                                    contentModule.makeDatabaseContent(host, {
                                        partner: partner,
                                        partner_class_links: partner_class_links,
                                        partner_class: EncodingClass.string.duplicate(data_module.partner_class.items)
                                    });
                                    contentModule.makePartnerClassLinksData(host);
                                    contentModule.makePartnerClassLinksDataText(host);
                                    rs(partner);
                                }
                                else {
                                    loadData(partner.length);
                                }
                            }
                            else {
                                rj(message);
                            }
                        }
                        else {
                            rj(message);
                        }
                    }
                })
            };
            data_module.loadDataPartnerClassGlobal().then(function(){
                loadData(0);
            });
        }
    });
};

data_module.loadTaskListLazySimpleData = function(){
    return new Promise(function(rs, rj){
        var task = [];
        var loadData = function(startIndex){
            FormClass.api_call({
                url: "database_load.php",
                params: [
                    {name: "task", value: 'view_column_load_task_single_list'},
                    {name: "startIndex", value: startIndex}
                ],
                func: function(success, message){
                    if (success){
                        if (message.substr(0, 2) == 'ok'){
                            var content = EncodingClass.string.toVariable(message.substr(2));
                            task = task.concat(content.task);
                            if (content.done){
                                rs(task);
                            }
                            else {
                                loadData(task.length);
                            }
                        }
                        else {
                            rj(message);
                        }
                    }
                    else {
                        rj(message);
                    }
                }
            })
        };
        loadData(0);
    });
};

data_module.loadMeetingListLazySimpleData = function(){
    return new Promise(function(rs, rj){
        var meeting = [];
        var loadData = function(startIndex){
            FormClass.api_call({
                url: "database_load.php",
                params: [
                    {name: "task", value: 'view_column_load_meeting_single_list'},
                    {name: "startIndex", value: startIndex}
                ],
                func: function(success, message){
                    if (success){
                        if (message.substr(0, 2) == 'ok'){
                            var content = EncodingClass.string.toVariable(message.substr(2));
                            meeting = meeting.concat(content.meeting);
                            if (content.done){
                                rs(meeting);
                            }
                            else {
                                loadData(meeting.length);
                            }
                        }
                        else {
                            rj(message);
                        }
                    }
                    else {
                        rj(message);
                    }
                }
            })
        };
        loadData(0);
    });
};

data_module.loadPartnerSingleList = function(){
    return new Promise(function(rs, rj){
        if (data_module.partnerReady){
            rs(EncodingClass.string.duplicate(data_module.partner.items));
        }
        else {
            var partner = [];
            var loadData = function(startIndex){
                FormClass.api_call({
                    url: "database_load.php",
                    params: [
                        {name: "task", value: 'view_column_load_partner_single_list'},
                        {name: "startIndex", value: startIndex}
                    ],
                    func: function(success, message){
                        if (success){
                            if (message.substr(0, 2) == 'ok'){
                                var content = EncodingClass.string.toVariable(message.substr(2));
                                partner = partner.concat(content.partner);
                                if (content.done){
                                    rs(partner);
                                }
                                else {
                                    loadData(partner.length);
                                }
                            }
                            else {
                                rj(message);
                            }
                        }
                        else {
                            rj(message);
                        }
                    }
                })
            };
            loadData(0);
        }
    });
};

data_module.loadPartnerGPSList = function(host){
    return new Promise(function(rs, rj){
        if (data_module.partnerReady){
            contentModule.makeDatabaseContent(host, {partner: data_module.partner.items});
            rs();
        }
        else {
            var partner = [];
            var loadData = function(startIndex){
                FormClass.api_call({
                    url: "database_load.php",
                    params: [
                        {name: "task", value: 'checkin_load_partner_list'},
                        {name: "startIndex", value: startIndex}
                    ],
                    func: function(success, message){
                        if (success){
                            if (message.substr(0, 2) == 'ok'){
                                var content = EncodingClass.string.toVariable(message.substr(2));
                                partner = partner.concat(content.partner);
                                if (content.done){
                                    contentModule.makeDatabaseContent(host, {
                                        partner: partner
                                    });
                                    rs();
                                }
                                else {
                                    loadData(partner.length);
                                }
                            }
                            else {
                                rj(message);
                            }
                        }
                        else {
                            rj(message);
                        }
                    }
                })
            };
            loadData(0);
        }
    });
};

data_module.loadContactList = function(){
    return new Promise(function(rs, rj){
        if (data_module.contactReady){
            rs(EncodingClass.string.duplicate(data_module.contact.items));
        }
        else {
            var dataList = [];
            var loadData = function(startIndex){
                FormClass.api_call({
                    url: "database_load.php",
                    params: [
                        {name: "task", value: 'input_form_load_contact_list'},
                        {name: "startIndex", value: startIndex}
                    ],
                    func: function(success, message){
                        if (success){
                            if (message.substr(0, 2) == 'ok'){
                                var content = EncodingClass.string.toVariable(message.substr(2));
                                dataList = dataList.concat(content.contact);
                                if (content.done){
                                    rs(dataList);
                                }
                                else {
                                    loadData(dataList.length);
                                }
                            }
                            else {
                                rj(message);
                            }
                        }
                        else {
                            rj(message);
                        }
                    }
                })
            };
            loadData(0);
        }
    });
};

data_module.loadOther_liability_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_other_liability_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadSalary_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_salary_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadTrade_union_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_trade_union_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOvertime_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_overtime_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOffboardingTypeList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_offboarding_type_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOffboardingReasonList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_offboarding_reason_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPunishment_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_punishment_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadAssetCategoryList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_asset_category_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadInstrumentsAndToolsCategoryList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_instruments_and_tools_category_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadTax_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_tax_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadAdvance_payment_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_advance_payment_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadLate_early_checkin_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_late_early_checkin_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadBenefit_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_benefit_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadLeave_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_leave_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadInsurance_policy_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_insurance_policy_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadTrainingProgram_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_training_program_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadShiftsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_shifts_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadInsurance_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_insurance_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadTax_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_tax_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadTrade_union_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_trade_union_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadLeave_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_leave_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadBenefit_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_benefit_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadAllowance_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_allowance_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadBonus_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_bonus_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOvertime_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_overtime_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPunishment_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_punishment_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadAdvance_payment_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_advance_payment_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadLate_early_checkin_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_late_early_checkin_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadSalary_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_salary_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOther_liability_policiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_other_liability_policies_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadEmployment_contract_typesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_employment_contract_types_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadNationsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_nations_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        console.log(content);
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadCitiesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_cities_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadEthnicsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_ethnics_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadReligionsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_religions_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadProjectsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_projects_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadDocument_typesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_document_types_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadDocument_groupsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_document_groups_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadDocument_foldersList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_document_folders_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadWelcomeTemplatesList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_welcome_templates_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOrgCompanysList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_org_companys_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOrgById = function(id){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'menu_quick_open_link_department'},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadEmployeeById = function(id){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'menu_quick_open_link_employee'},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadPositionById = function(id){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'menu_quick_open_link_position'},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadCommentList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_comment_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadChatList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_chat_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadCompanyInHrDB = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'hr_db_load_company'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadCompanyidFromEmployee_benefit_and_liability_requestById = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_load_employee_benefit_and_liability_request_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        var employeeid = content.employeeid;
                        var eIndex = host.database.employees.getIndex(employeeid);
                        if (eIndex >= 0){
                            var orgid = host.database.employees.items[eIndex].orgid;
                            var oIndex = host.database.orgs.getIndex(orgid);
                            while (host.database.orgs.items[oIndex].parentid > 0){
                                orgid = host.database.orgs.items[oIndex].parentid;
                                oIndex = host.database.orgs.getIndex(orgid);
                            }
                            var items = host.company_select.items;
                            for (var i = 0; i < items.length; i++){
                                if (items[i].value == orgid){
                                    host.company_select.value = orgid;
                                    resolve(orgid);
                                    break;
                                }
                            }
                        }
                    }
                    else if (message == "war_txt_failed_data"){
                        console.log(message);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadCompanyidFromAsset_transactionsById = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_load_asset_transactions_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        var employeeid = content.employeeid;
                        var eIndex = host.database.employees.getIndex(employeeid);
                        if (eIndex >= 0){
                            var orgid = host.database.employees.items[eIndex].orgid;
                            var oIndex = host.database.orgs.getIndex(orgid);
                            while (host.database.orgs.items[oIndex].parentid > 0){
                                orgid = host.database.orgs.items[oIndex].parentid;
                                oIndex = host.database.orgs.getIndex(orgid);
                            }
                            var items = host.company_select.items;
                            for (var i = 0; i < items.length; i++){
                                if (items[i].value == orgid){
                                    host.company_select.value = orgid;
                                    resolve(orgid);
                                    break;
                                }
                            }
                        }
                    }
                    else if (message == "war_txt_failed_data"){
                        console.log(message);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadCompanyidFromEmployment_ContractById = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_load_employment_contract_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        var employeeid = content.employeeid;
                        var eIndex = host.database.employees.getIndex(employeeid);
                        if (eIndex >= 0){
                            var orgid = host.database.employees.items[eIndex].orgid;
                            var oIndex = host.database.orgs.getIndex(orgid);
                            while (host.database.orgs.items[oIndex].parentid > 0){
                                orgid = host.database.orgs.items[oIndex].parentid;
                                oIndex = host.database.orgs.getIndex(orgid);
                            }
                            var items = host.company_select.items;
                            for (var i = 0; i < items.length; i++){
                                if (items[i].value == orgid){
                                    host.company_select.value = orgid;
                                    resolve(orgid);
                                    break;
                                }
                            }
                        }
                    }
                    else if (message == "war_txt_failed_data"){
                        console.log(message);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadCompanyidFromSalary_decisionById = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_load_salary_decision_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        var employeeid = content.employeeid;
                        var eIndex = host.database.employees.getIndex(employeeid);
                        if (eIndex >= 0){
                            var orgid = host.database.employees.items[eIndex].orgid;
                            var oIndex = host.database.orgs.getIndex(orgid);
                            while (host.database.orgs.items[oIndex].parentid > 0){
                                orgid = host.database.orgs.items[oIndex].parentid;
                                oIndex = host.database.orgs.getIndex(orgid);
                            }
                            var items = host.company_select.items;
                            for (var i = 0; i < items.length; i++){
                                if (items[i].value == orgid){
                                    host.company_select.value = orgid;
                                    resolve(orgid);
                                    break;
                                }
                            }
                        }
                    }
                    else if (message == "war_txt_failed_data"){
                        console.log(message);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadCompanyidFromOnboardingById = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_load_onboarding_by_id"},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        var employeeid = content.employeeid;
                        var eIndex = host.database.employees.getIndex(employeeid);
                        if (eIndex >= 0){
                            var orgid = host.database.employees.items[eIndex].orgid;
                            var oIndex = host.database.orgs.getIndex(orgid);
                            while (host.database.orgs.items[oIndex].parentid > 0){
                                orgid = host.database.orgs.items[oIndex].parentid;
                                oIndex = host.database.orgs.getIndex(orgid);
                            }
                            var items = host.company_select.items;
                            for (var i = 0; i < items.length; i++){
                                if (items[i].value == orgid){
                                    host.company_select.value = orgid;
                                    resolve(orgid);
                                    break;
                                }
                            }
                        }
                    }
                    else if (message == "war_txt_failed_data"){
                        console.log(message);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadEmployeeItemsPrivView = function(){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "data_module_load_employee_priv_view"}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        var host = {database: {}};
                        host.employeeOfMe = st.employeeOfMe;
                        delete st.employeeOfMe;
                        contentModule.makeDatabaseContent(host, st);
                        var pDict = {};
                        host.database.peoples.items.forEach(function(elt){
                            pDict[elt.id] = elt;
                        });
                        host.database.employees.items.forEach(function(elt){
                            elt.fullname = pDict[elt.peopleid].fullname;
                        });
                        contentModule.makeOrgsIndex(host);
                        contentModule.makeEmployeesIndex(host);
                        resolve(host);
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadInput_formsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_input_forms_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadOutput_formsList = function(){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_output_forms_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loaddObjectsById = function(id){
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'objects_load_by_id'},
                {name: "id", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs(content);
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadNumberOfChatUnread = function(){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_number_of_chat_unread'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        resolve(st.number_of);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};



data_module.loadAllEmployeesList = function(){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'load_all_employees_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        data_module.makeDatabaseCommon(st);
                        contentModule.makeAllEmployeesDic();
                        resolve();
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};

data_module.loadDataPartnerClassGlobal = function(){
    return new Promise(function(rs, rj){
        data_module.partner_classReady = false;
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'input_form_load_partner_class_list'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        data_module.makeDatabaseCommon({
                            partner_class: content
                        });
                        rs();
                        data_module.partner_classReady = true;
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.loadDataPartnerGlobal = function () {
    data_module.loadPartnerFunc({
        finalize: function (host){
            data_module.partnerReady = true;
            data_module.makeDatabaseCommon({
                partner: host.partner,
                partner_class_links: host.partner_class_links
            });
            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);
                }
            }
        }
    })
};

data_module.loadDataContactGlobal = function(){
    data_module.contactReady = false;
    data_module.loadContactFunc({
        finalize: function (content) {
            data_module.makeDatabaseCommon({
                contact: content
            });
            data_module.contactReady = true;
        }
    });
};

data_module.loadUserTagEmployeeLogs = function() {
    return new Promise(function(rs, rj){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: 'comment_load_user_tag_employee_logs'}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == 'ok'){
                        var content = EncodingClass.string.toVariable(message.substr(2));
                        rs({user_tag_employee_logs: content});
                    }
                    else {
                        rj(message);
                    }
                }
                else {
                    rj(message);
                }
            }
        })
    });
};

data_module.employee_benefit_and_liability_list_load_details = function(host, id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "employee_benefit_and_liability_list_load_details"},
                {name: "listid", value: id}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        var employee_peopleDic = {};
                        for (var i = 0; i < host.database.employees.items.length; i++){
                            employee_peopleDic[host.database.employees.items[i].peopleid] = host.database.employees.items[i].id;
                        }
                        console.log(employee_peopleDic);
                        contentModule.makeDatabaseContent(host, st);
                        host.database.employee_benefit_and_liability_list_details.items.forEach(function(item){
                            console.log(item);
                            if (employee_peopleDic[item.employee_peopleid]) item.employeeid = employee_peopleDic[item.employee_peopleid];
                        });
                        resolve();
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

data_module.loadSCLangNamespaceList = function(){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [{name: "task", value: "load_sclang_namespace_list"}],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        resolve(st);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};



data_module.loadSCLangNodeInfoList = function(){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [{name: "task", value: "load_sclang_node_info_list"}],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        resolve(st);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};



data_module.loadSCLangNamespaceById = function(id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "load_sclang_namespace_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));
                        resolve(st);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};

data_module.loadSCLangNodeContentList = function () {
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [{name: "task", value: "load_sclang_node_content_list"}],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        st.forEach(function(it){
                            it.content = EncodingClass.string.toVariable(it.content);
                        })
                        resolve(st);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};

data_module.loadSCLangNodeById = function(id){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "load_sclang_node_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.content = EncodingClass.string.toVariable(st.content);
                        resolve(st);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};
data_module.loadSCLangNodeByNamespaceId = function(namespaceid){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [
                {name: "task", value: "load_sclang_node_by_namespaceid"},
                {name: "namespaceid", value: namespaceid}
            ],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));

                        resolve(st);
                    }
                    else {
                        reject(message);
                    }
                }
                else {
                    reject(message);
                }
            }
        });
    });
};

data_module.loadConfigBsc = function(){
    return new Promise(function(resolve, reject){
        FormClass.api_call({
            url: "database_load.php",
            params: [{name: "task", value: "options_load_bsc"}],
            func: function(success, message){
                if (success){
                    if (message.substr(0, 2) == "ok"){
                        var st = EncodingClass.string.toVariable(message.substr(2));
                        if (st.length > 0){
                            var x = EncodingClass.string.toVariable(st[0].content);
                            for (var i in x){
                                systemconfig["bsc_" + i] = x[i];
                            }
                        }
                        resolve();
                    }
                    else {
                        ModalElement.alert({message: message});
                    }
                }
                else {
                    ModalElement.alert({message: message});
                }
            }
        });
    });
};

VaKeR 2022