![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/keeview_app/html/theme/mobile/ |
Upload File : |
"use strict"; theme.formAdvance_payment_requestEdit = function(params){ var formContainer = DOMElement.div({}); var commands = [{ icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "save" }), cmd: function(){ params.cmdbutton.save(getValueFunction).then(function(){ if (params.id == 0){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); } }]; var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_advance_payment_request"), commands: commands }, on: { action: function(){ params.cmdbutton.cancel(getValueFunction).then(function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }); }, command: function(event){ event.commandItem.cmd(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [formContainer] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.cmdbutton.cancel(getValueFunction).then(function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }); } }); var getValueFunction; contentModule.makeFormData({ typeid: data_module.form_config.request_advance_payment.typeid, formid: data_module.form_config.request_advance_payment.mobile_input_form, initialValue: params.value, formContainer: formContainer, typelists: data_module.typelists.items, variableType: "system" }).then(function(getValue){ getValueFunction = getValue; formContainer.formFragment.setContext('host', params); if (params.id == 0){ formContainer.formFragment.afterEntryCompleted().then(function(){ var elt = absol.form.findComponent(formContainer.formFragment.view, { name: 'type_request_advance_payment_employeeid', depth: false }); if (elt){ elt.attributes.value = params.employeeOfMe[0]; } }); } }); }; theme.showAdvancePaymentRequestApproval = function(params){ var approval_ctn = DOMElement.div({ attrs: { className: "cardsimpletableclass" } }); var childs = [ absol.buildDom({ class: 'm-mk-section-header', child: [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_approval") } } ] }), DOMElement.div({ attrs: {style: {lineHeight: "var(--control-height)"}}, text: LanguageModule.text("txt_approval_method") + ": " + params.approval_methodText }), approval_ctn ]; var res = absol.buildDom({ attr: { "data-sectionid": "approval" }, child: childs }); res.drawApprovalFunc = function(ps){ var pIndex = ps.database.advance_payment_policies.getIndex(ps.dataAdvance_payment_requestEdit.policyid); var header = []; header.push( {text: LanguageModule.text("txt_employee")}, {text: LanguageModule.text("txt_status")}, {text: LanguageModule.text("txt_time")}, {text: LanguageModule.text("txt_note")} ); var approversDic = {}; ps.database.employee_benefit_and_liability_request_approvers.items.forEach(function(item){ if (item.status == 3) return; if (item.requestid == ps.dataAdvance_payment_requestEdit.id) approversDic[item.employeeid] = item; }); var over_due = false; var time_hours_needed_for_approval = ps.database.advance_payment_policies.items[pIndex].time_hours_needed_for_approval; var datetime = ps.dataAdvance_payment_requestEdit.date.setHours(0, 0, 0, 0); if (datetime - time_hours_needed_for_approval*60*60*1000 < new Date().getTime()){ over_due = true; } var data = [], row, employeeid, eIndex, dIndex, orgIndex, approversItem, orgId; var direct_done = true; if (ps.database.advance_payment_policies.items[pIndex].direct_manager_approves_first){ var employeeid = ps.dataAdvance_payment_requestEdit.employeeid; var empIndex = ps.employeeDic[employeeid]; var direct_manager = ps.database.employees.items[empIndex].direct_manager; eIndex = ps.employeeDic[direct_manager]; if (eIndex >= 0){ dIndex = ps.database.employees.items[eIndex].orgIndex; row = []; row.push({ text: ps.database.employees.items[eIndex].fullname }); approversItem = approversDic[direct_manager]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { direct_done = false; if (ps.dataAdvance_payment_requestEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } row.push({}); row.push({}); } data.push(row); } } var indirect_done = true; if (ps.database.advance_payment_policies.items[pIndex].indirect_manager_approves_first){ var employeeid = ps.dataAdvance_payment_requestEdit.employeeid; var empIndex = ps.employeeDic[employeeid]; var indirect_manager = ps.database.employees.items[empIndex].indirect_manager; eIndex = ps.employeeDic[indirect_manager]; if (eIndex >= 0){ row.push({ text: ps.database.employees.items[eIndex].fullname }); approversItem = approversDic[indirect_manager]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { indirect_done = false; if (ps.dataAdvance_payment_requestEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } row.push({}); row.push({}); } data.push(row); } } var prev_done = true; var approval_method = ps.database.advance_payment_policies.items[pIndex].approval_method; var approvers = ps.database.advance_payment_policies.items[pIndex].approvers; for (var i = 0; i < approvers.length; i++){ employeeid = approvers[i].employeeid; eIndex = ps.database.employees.getIndex(employeeid); dIndex = ps.database.employees.items[eIndex].orgIndex; row = []; row.push({ text: ps.database.employees.items[eIndex].fullname }); approversItem = approversDic[employeeid]; if (approversItem){ if (approversItem.status == 1){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status approved" }, text: LanguageModule.text("txt_approved") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status deny" }, text: LanguageModule.text("txt_deny") }) }); } row.push({text: contentModule.getDateTimeView(approversItem.time)}); row.push({ text: approversItem.comment }); } else { switch (approval_method) { case "one_approver": if (ps.dataAdvance_payment_requestEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } break; case "parallel": if (direct_done && indirect_done && ps.dataAdvance_payment_requestEdit.status == 0){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } break; case "sequence": if (direct_done && indirect_done && ps.dataAdvance_payment_requestEdit.status == 0 && prev_done){ if (!over_due){ row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status waiting-approval" }, text: LanguageModule.text("txt_waiting_approval") }) }); } else { row.push({ children: DOMElement.span({ attrs: { className: "table-list-view-status over-due" }, text: LanguageModule.text("txt_over_due") }) }); } } else { row.push({}); } prev_done = false; break; default: row.push({}); } row.push({}); row.push({}); } data.push(row); } var tableView = DOMElement.table({ data: data }); DOMElement.removeAllChildren(approval_ctn); approval_ctn.appendChild(tableView); }; return res; }; theme.showAdvancePaymentRequestGeneralInfomation = function(params){ var viewGeneralInformation = DOMElement.div({ attrs: { style: { paddingLeft: "var(--control-verticle-distance-2)", paddingTop: "var(--control-verticle-distance-2)" } } }); var childs = [ { class: 'm-mk-section-header-name', child: { text: LanguageModule.text("txt_request_advance_payment") }, } ]; if (params.cmdbutton.editFunc){ childs.push({ class: 'm-mk-section-header-right', child: [ DOMElement.a({ attrs: { onclick: function(){ params.cmdbutton.editFunc(); } }, text: LanguageModule.text("txt_edit") }) ] }); } var res = absol.buildDom({ attr: { "data-sectionid": "request_advance_payment" }, child: [ absol.buildDom({ class: 'm-mk-section-header', child: childs }), viewGeneralInformation ] }); res.viewGeneralInformation = viewGeneralInformation; return res; }; theme.showAdvancePaymentRequest = function(params){ var scrollInto = function(value){ if (sectionList[value]) sectionList[value].scrollIntoView(); }; var data_ctn = DOMElement.div({}); data_ctn.appendChild(params.info_ctn); data_ctn.appendChild(params.general_information_ctn); data_ctn.appendChild(params.approval_ctn); data_ctn.appendChild(contentModule.drawComment({frameList: params.frameList, taskid: params.id, tablename: "employee_benefit_and_liability_request"})); var sectionList = {}; absol.$("div", data_ctn, function(elt){ var id = elt.getAttribute("data-sectionid"); if (!id) return; sectionList[id] = elt; }); var commands = []; if (params.cmdbutton.approval){ commands.push({ icon: DOMElement.i({ attrs: { className: "mdi mdi-checkbox-marked-circle hr-icon-approval" } }), cmd: params.cmdbutton.approval }); } if (params.cmdbutton.deny){ commands.push({ icon: DOMElement.i({ attrs: { className: "mdi mdi-close-circle hr-icon-deny" } }), cmd: params.cmdbutton.deny }); } var header = absol.buildDom({ tag: 'mheaderbar', props: { actionIcon: DOMElement.i({ attrs: { className: "material-icons" }, text: "arrow_back_ios" }), title: LanguageModule.text("txt_advance_payment_request"), commands: commands, quickmenu: { props: { extendClasses: 'cd-context-menu', items: [ { text: LanguageModule.text("txt_request_advance_payment"), icon: DOMElement.i({ attrs: { className: "mdi mdi-information-outline" } }), extendClasses: "bsc-quickmenu", cmd: function(){ scrollInto("request_advance_payment"); } }, { text: LanguageModule.text("txt_approval"), extendClasses: "bsc-quickmenu", icon: DOMElement.span({ attrs: { className: "mdi mdi-clock-time-eight-outline" } }), cmd: function(){ scrollInto("approval"); } }, { text: LanguageModule.text("txt_comment"), extendClasses: "bsc-quickmenu", icon: DOMElement.span({ attrs: { className: "mdi mdi-clock-time-eight-outline" } }), cmd: function(){ scrollInto("comment"); } } ] }, onSelect: function (x) { x.cmd(); } } }, on: { action: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); }, command: function(event){ event.commandItem.cmd(); } } }); var singlePage = absol.buildDom({ tag: 'tabframe', child:[ header, DOMElement.div({ attrs: { className: "card-mobile-content" }, children: [data_ctn] }) ] }); params.frameList.addChild(singlePage); singlePage.requestActive(); window.backLayoutFunc.push({ func: function(){ params.frameList.removeLast(); window.backLayoutFunc.pop(); } }); }; theme.formAdvance_payment_requestGetRow = function(params, content){ var cells = []; function applyParam(elt){ if (content.func.view){ elt.classList.add("hr-table-cell-link"); elt.onclick = function(){ content.func.view(); }; } return elt; } cells.push({ innerText: content.employeeName, render: function(tdElt){ tdElt.appendChild(applyParam(DOMElement.div({text: content.employeeName}))); } }); cells.push({ style: {textAlign: "right"}, innerText: content.amount, render: function(tdElt){ tdElt.appendChild(applyParam(DOMElement.div({ text: contentModule.moneyFormat2(content.amount) }))); } }); var item; switch (content.status) { case "over_due": item = { innerText: LanguageModule.text("txt_over_due"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status over-due", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_over_due") })); }, keySort: LanguageModule.text("txt_over_due") }; break; case "draf": item = { innerText: LanguageModule.text("txt_draf"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status draf", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_draf") })); }, keySort: LanguageModule.text("txt_draf") }; break; case "waiting_approval": item = { innerText: LanguageModule.text("txt_waiting_approval"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status waiting-approval", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_waiting_approval") })); }, keySort: LanguageModule.text("txt_waiting_approval") }; break; case "approved": item = { innerText: LanguageModule.text("txt_approved"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status approved", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_approved") })); }, keySort: LanguageModule.text("txt_approved") }; break; case "deny": item = { innerText: LanguageModule.text("txt_deny"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status deny", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_deny") })); }, keySort: LanguageModule.text("txt_deny") }; break; case "canceled": item = { innerText: LanguageModule.text("txt_canceled"), render: function(tdElt){ tdElt.addChild(DOMElement.div({ attrs: { className: "table-view-status canceled", onclick: function(){ if (content.func.view) content.func.view(); } }, text: LanguageModule.text("txt_canceled") })); }, keySort: LanguageModule.text("txt_canceled") }; break; default: item = {}; } cells.push(item); cells.push({ style: {width: "40px"}, render: function(tdElt){ var qmenuButton = DOMElement.div({ attrs: { className: "card-icon-cover" }, children: [DOMElement.i({ attrs: { className: "material-icons bsc-icon-hover-black" }, text: "more_vert" })] }); absol.QuickMenu.toggleWhenClick(qmenuButton, { getMenuProps: function(){ var quickMenuItems = []; if (content.func.view) quickMenuItems.push({ text: LanguageModule.text("txt_view"), extendClasses: "bsc-quickmenu", icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "visibility" }), cmd: function(){ content.func.view(); } }); if (content.func.cancel) quickMenuItems.push({ text: LanguageModule.text("txt_cancel"), extendClasses: ["bsc-quickmenu", "red"], icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "cancel" }), cmd: function(){ content.func.cancel(); } }); if (content.func.delete) quickMenuItems.push({ text: LanguageModule.text("txt_delete"), extendClasses: ["bsc-quickmenu", "red"], icon: DOMElement.i({ attrs: { className: "material-icons" }, text: "delete" }), cmd: function(){ content.func.delete(); } }); return {items: quickMenuItems}; }, onSelect: function (item){ item.cmd(); }, anchor: [3, 4] }); tdElt.addChild(qmenuButton); } }); var row = { cells: cells }; return row; }; theme.formAdvance_payment_requestContentData = function(params){ var data = []; for (var i = 0; i < params.data.length; i++){ data.push(theme.formAdvance_payment_requestGetRow(params, params.data[i])); } params.tableView = absol.buildDom({ tag: "dynamictable", style:{ height:'calc(var(--body-height) - 100px)' }, props: { id: "advance_payment_request", adapter: { data: { head: { rows: [ { cells: [] } ] }, body: { rows: data } } } } }); params.tableView.attachSearchInput(params.inputsearchbox); return params.tableView; }; ModuleManagerClass.register({ name: "Advance_payment_request_view", prerequisites: ["ModalElement"] });