/* Run this script on: remote.minovais.com, 1452.Bintang_Temp - This database will be modified to synchronize it with: remote.minovais.com, 1452.MinovaHR_Indomobil_Prod You are recommended to back up your database before running this script Script created by SQL Data Compare version 15.0.9.23488 from Red Gate Software Ltd at 27/12/2023 19.14.35 */ SET NUMERIC_ROUNDABORT OFF GO SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS, NOCOUNT ON GO SET DATEFORMAT YMD GO SET XACT_ABORT ON GO SET TRANSACTION ISOLATION LEVEL Serializable GO BEGIN TRANSACTION PRINT(N'Add rows to [dbo].[dev_object]') INSERT INTO [dbo].[dev_object] ([instance], [name], [type], [version], [active], [locked], [application], [module], [submodule], [object], [view], [code_dev], [code_prod], [description], [create_by], [create_datetime], [change_by], [change_datetime]) VALUES (N'00000', N'controller.wf.leave.leave', N'controller', N'1.0.0.6', N'1', N'0', N'wf', N'leave', N'', N'leave', N'', N'Ext.define(''MinovaIS.ERP.Web.controller.wf.leave.leave'', { extend: ''Ext.app.Controller'', store: [''wf.leave.LeaveConf''], views: [''wf.leave.leave''], config: { delegate_mode: 2 }, init: function () { this.control({ ''wf-leave-leave'': { afterrender: this.onAfterRender }, ''wf-leave-leave button[action=lookupEmpOnDelegateLeave]'': { click: this.showEmployeeLeave }, ''wf-leave-leave combobox[name=main_absence_type]'': { select: this.selectAbsenceType }, ''wf-leave-leave textfield[name=main_start_date]'': { change: this.ValidasiMaksimaPengajuan }, ''wf-leave-leave textfield[name=main_end_date]'': { change: this.changeDateRange }, ''employee_id textfield[name=employee_id]'': { change: this.changeDateRange }, ''wf-leave-leave combo[name=list_of_delegate]'': { select: this.selecttDelegation } }); }, onDocumentInit: function (me) { switch (me.config.delegate_mode) { case 0: MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=lookup_of_delegate]'').hide(); MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=list_of_delegate]'').hide(); break case 1: MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=lookup_of_delegate]'').hide() break case 2: MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=list_of_delegate]'').hide(); break default: break } var btn_lookup_delegate = MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=lookup_of_delegate]''); btn_lookup_delegate.on(''click'', function () { var popupEmployee = this.getController(''popup.employee.employee''); popupEmployee.onSelect = function (recs) { MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=delegate_delegate_id]'').setValue(recs.data.code); MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=delegate_delegate_name]'').setValue(recs.data.desc); } popupEmployee.showPopup(); }, me) }, onDocumentReady: function (me) { var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var taskId = MinovaUtil.WORKFLOW.getTaskId(); var listTaskFormEnabled = ['''', ''create'', ''start'', ''revise_creator'', ''creator_confirm'', ''revise_after_confirm_dirspv'', ''revise_after_rd'', ''revise_creator_back''] body.down(''[name=main_absence_type]'').store.load({ params: { paramid: ''combobox_lv_absencetype'', emp_id: MinovaUtil.WORKFLOW.getEmpId() }, callback: function () { MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''combo[name=main_absence_type]'').setValue(MinovaUtil.WORKFLOW.getRegValuesByName(''main_absence_type'')) } }); if (listTaskFormEnabled.indexOf(taskId) < 0) { MinovaUtil.WORKFLOW.setReadOnlyViewBodyWorkflow(); } }, onDocumentBeforeSubmit: function (submit, taskId, me) { var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var absence_type = body.down(''[name=main_absence_type]'').getValue(); var lvbolehbackdated = [''0001'', ''0002'', ''1100'', ''1200'', ''3900'', ''CL5'', ''CL6'', ''CL7'']; var qdeduc = body.down(''[name=main_quota_deduction]'').getValue(); if (qdeduc = ''Y'') { MinovaUtil.executeParamQuery({ paramid: "leave_update_remaining_quota_save", emp_id: MinovaUtil.WORKFLOW.getEmpId(), landscape: ''100'', start_date: body.down(''[name=main_quota_start_date]'').getValue(), end_date: body.down(''[name=main_quota_end_date]'').getValue(), start_date2: body.down(''[name=main_quota_start_date_2]'').getValue(), end_date2: body.down(''[name=main_quota_end_date_2]'').getValue(), quota_type: body.down(''[name=main_quota_type]'').getValue(), quota_taken: body.down(''[name=main_quota_taken]'').getValue(), quota_taken2: body.down(''[name=main_quota_taken_2]'').getValue() }, function (s) { var data = Ext.decode(s.responseText).data[0]; var formLeave = body.down(''form[name=Leave_Main]'').getForm(); formLeave.setValues(data); }, function (f) {}); } if (taskId === ''start'' || taskId === '''' || taskId === ''create'') { var sdate = body.down(''[name=main_start_date]''); var edate = body.down(''[name=main_end_date]''); var now = Ext.Date.format(new Date(), ''Ymd''); if (lvbolehbackdated.indexOf(absence_type) < 0 && (sdate.getValue() < now || edate.getValue() < now)) { alert("Leave Cannot be backdated. Please adjust field Start Date or End Date"); } else me.validasi_cuti_tahunan(submit); } else me.validasi_cuti_tahunan(submit); }, selecttDelegation: function (_this, recs, opt) { var Body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); Body.down(''textfield[name=delegate_delegate_id]'').setValue(recs[0].data.emp_id); Body.down(''textfield[name=delegate_delegate_name]'').setValue(recs[0].data.fullname); }, now8: function () { Ext.global.console.log(''>>now8''); return Ext.Date.format(new Date(), ''Ymd''); }, GetDateDiff: function (EndDate, StartDate) { var DateI = new Date(EndDate.substring(4, 6) + "/" + EndDate.substring(6, 8) + "/" + EndDate.substring(0, 4)); var Date2 = new Date(StartDate.substring(4, 6) + "/" + StartDate.substring(6, 8) + "/" + StartDate.substring(0, 4)); var DiffDays = parseInt((DateI - Date2) / (1000 * 60 * 60 * 24)); return DiffDays; }, onAfterRender: function (_this) { Ext.global.console.log(''>>onAfterRender'', _this); var me = this; var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow() body.down(''combo[name=main_absence_type]'').store.on(''beforeload'', function (store, operation, eOpts) { store.proxy.extraParams = { paramid: ''combobox_lv_absencetype'', emp_id: MinovaUtil.WORKFLOW.getEmpId() }; }); var header = _this.up(''panel[name=content]'').down(''panel[name=wf_form_header]''); var taskId = header.down(''textfield[name=task_id_run]''); var empId = header.down(''textfield[name=employee_id]''); if (empId !== undefined) empId.on(''change'', me.onBehalfEmpId, me); Ext.global.console.log(''<>onBehalfEmpId'', field); this.getDelegate(field, newValue, oldValue, eOpts); this.getStoreAbsence(field, newValue, oldValue, eOpts); if (MinovaUtil.WORKFLOW.isRequest()) { this.clearMainForm(field, newValue, oldValue, eOpts); } this.changeValue( field.up().up().up().query(''wf-leave-leave textfield[name=main_remaining_quota]'')[0], newValue, oldValue, eOpts); Ext.global.console.log(''<>onBehalfTaskId'', field); this.leaveConfSet(field, newValue, oldValue, eOpts); Ext.global.console.log(''<>leaveConfSet'', field); var leaveConf = field.up().up().up().query(''wf-leave-leave combobox[name=main_leave_confirmation]'')[0]; switch (newValue) { case ''creator_confirm'': leaveConf.show(); break; case ''apv_ds2'': leaveConf.show(); leaveConf.setReadOnly(true); break; } Ext.global.console.log(''<>onLeaveInbox'', field); this.getStoreAbsence(field, newValue, oldValue, eOpts); Ext.global.console.log(''<>beforedestroyleaveConf'', field); field.up().up().up().query(''wf-leave-leave textfield[name=main_leave_quota]'')[0].setValue(0); field.up().up().up().query(''wf-leave-leave textfield[name=main_remaining_quota]'')[0].setValue(0); field.up().up().up().query(''wf-leave-leave textfield[name=main_total_remaining_quota]'')[0].setValue(0); field.up().up().up().query(''wf-leave-leave textfield[name=main_absence_type]'')[0].setValue(''''); field.up().up().up().query(''wf-leave-leave textfield[name=main_quota_type]'')[0].setValue(''''); Ext.global.console.log(''<>getStoreAbsence'', field); MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''combo[name=main_absence_type]'').store.load(); me.changeDateRange(field, newValue, oldValue, eOpts); Ext.global.console.log(''<>getDelegate'', field); }, changeValue: function (field, newValue, oldValue, eOpts) { Ext.global.console.log(''>>changeValue'', field); try { var remainQuota = field.up().query(''textfield[name=main_remaining_quota]'')[0].value; var totalTakenQuota = field.up().query(''textfield[name=main_total_quota_taken]'')[0].value; field.up().query(''textfield[name=main_total_remaining_quota]'')[0].setValue(remainQuota - totalTakenQuota); } catch (e) {} Ext.global.console.log(''<>selectAbsenceType'', combo); var me = this; var fHeader = me.getFormHeader(); var Body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); Body.down(''[name=main_start_date]'').setValue(''''); Body.down(''[name=main_end_date]'').setValue(''''); combo.up().up().query(''textfield[name=main_quota_type]'')[0].setValue(combo.displayTplData[0].quota_type); Body.down(''[name=main_quota_deduction]'').setValue(combo.displayTplData[0].quotadeduction); MinovaUtil.executeParamQuery({ paramid: "combobox_lv_block_continue", emp_id: fHeader.requester_id, now: me.now8(), quota_type: combo.displayTplData[0].quota_type }, function (s) { var obj2 = Ext.decode(s.responseText).data[0]; Body.down(''[name=main_block_contain]'').setValue(obj2.result); }, function (f) {}); me.changeDateRange(combo, '''', '''', ''''); Ext.global.console.log(''<>calculate'', field); var me = this; var sdt = sDate.getValue(); var edt = eDate.getValue(); var empid = MinovaUtil.WORKFLOW.getEmpId(); var landscape = ''100''; leaveCheckDate(); } }, getFormHeader: function () { Ext.global.console.log(''>>getFormHeader''); var formHeader = Ext.ComponentQuery.query(''wf-request-formHeader'')[0]; if (formHeader !== undefined) { formHeader = Ext.ComponentQuery.query(''wf-request-formHeader'')[0].getForm().getValues(); } else { formHeader = Ext.ComponentQuery.query(''wf-run-formHeader'')[0].getForm().getValues(); } Ext.global.console.log(''< 0) { MinovaUtil.MESSAGE.error(data.msg) } } else { submit() } }, function (f) {}) } }, ValidasiMaksimaPengajuan: function (submit) { var taskID = MinovaUtil.WORKFLOW.getTaskId(); var BizprocId = MinovaUtil.WORKFLOW.getBizprocId(); var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var Sd = body.down(''[name=main_start_date]'').getValue(); var Ed = body.down(''[name=main_end_date]'').getValue(); var NDate = null; var izin = ''''; var absence_type = body.down(''[name=main_absence_type]'').getValue(); if (taskID == ''start'' && BizprocId == ''leave'') { MinovaUtil.executeParamQuery({ paramid: ''ValidasiLeaveSetahun'', emp_id: MinovaUtil.WORKFLOW.getEmpId(), start_date: Sd }, function (s) { var result = Ext.decode(s.responseText); var data = result.data[0]; var obju = data; if (obju !== undefined) { izin = obju.IZIN; } }, function (f) {}) if (absence_type == ''AL1'' || absence_type == ''AL2'') { if (izin == ''no'' || izin == '''') { MinovaUtil.MESSAGE.error("Anda belum diperkenankan untuk melakukan pengajuan cuti"); body.down(''[name=main_start_date]'').setValue(''''); } } } MinovaUtil.executeParamQuery({ paramid: ''now_date'' }, function (s) { var data = Ext.decode(s.responseText).data[0] if (data != null) { NDate = data.NowDate; } else { NDate = me.now8(); } }, function (f) {}) var Duration = this.GetDateDiff(Sd, NDate); var abs_type = body.down(''[name=main_absence_type]'').getValue(); var CountDt = null; MinovaUtil.executeParamQuery({ paramid: ''wf_leave_get_absentype'', abs_type: abs_type }, function (s) { var data = Ext.decode(s.responseText).data[0] if (data != null) { CountDt = data.Res; } }, function (f) {}) var Duration = this.GetDateDiff(Sd, NDate); var quotadeduc = body.down(''textfield[name=main_quota_deduction]'').getValue(); if (taskID === ''start'' || taskID === ''revisess_creator'') { if (CountDt >= 1 && Duration < 3) { MinovaUtil.MESSAGE.error("Pengajuan ESS bisa dilakukan Maksimal 3 Hari berikutnya"); body.down(''[name=main_start_date]'').setValue(''''); } else { this.changeDateRange(); } } } }); Ext.apply(Ext.form.field.VTypes, { block_leave: function (val, field) { var wfv = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var a = wfv.down(''textfield[name=main_quota_start_date_2]''); var a1 = wfv.down(''textfield[name=main_quota_start_date]''); var b = wfv.down(''textfield[name=main_quota_lb_cont_2]''); var b1 = wfv.down(''textfield[name=main_quota_lb_cont]''); var c = wfv.down(''textfield[name=main_total_remaining_quota_2]''); var c1 = wfv.down(''textfield[name=main_total_remaining_quota]''); var d1 = wfv.down(''[name=main_quota_taken]''); var d = wfv.down(''[name=main_quota_taken_2]''); var dt = wfv.down(''[name=main_total_quota_taken]''); var absenceType = wfv.down(''[name=main_absence_type]''); if (absenceType.getValue() === ''1000'') { if ((a.getValue() !== '''' || a.getValue() !== ''0'') && b.getValue() === ''0'' && c.getValue() < 5 && c.getValue() !== null) { if (c.getValue() < 5 && dt.getValue() < 5 && dt.getValue() !== null) { return false; } } else if ((a.getValue() === '''' || a.getValue() === ''0'') && b1.getValue() === ''0'' && c1.getValue() < 5 && c1.getValue() !== null) { if (c1.getValue() < 5 && dt.getValue() < 5 && dt.getValue() !== null) { return false; } } } return true; }, block_leaveText: ''Block leave must be taken'', total_taken: function (val, field) { var lv_block = Ext.ComponentQuery.query(''textfield[name=main_block_contain]'')[0]; try { var q_taken = Ext.ComponentQuery.query(''textfield[name=main_total_quota_taken]'')[0]; var q_remain = Ext.ComponentQuery.query(''textfield[name=main_total_remaining_quota]'')[0]; if (lv_block.value === "0") { try { if (q_taken.value < 5 && q_remain.value < 5) { return false; } } catch (e) {} } if (lv_block.value === "1") { try { if (q_taken.value >= 5) { return false; } } catch (e) {} } } catch (e) {} return true; }, total_takenText: ''Types of absences are included in the block leave and unused. Mandatory quotas taken at least 5'' }); Ext.QuickTips.init();' COLLATE SQL_Latin1_General_CP1_CI_AS, N'Ext.define(''MinovaIS.ERP.Web.controller.wf.leave.leave'', { extend: ''Ext.app.Controller'', store: [''wf.leave.LeaveConf''], views: [''wf.leave.leave''], config: { delegate_mode: 2 }, init: function () { this.control({ ''wf-leave-leave'': { afterrender: this.onAfterRender }, ''wf-leave-leave button[action=lookupEmpOnDelegateLeave]'': { click: this.showEmployeeLeave }, ''wf-leave-leave combobox[name=main_absence_type]'': { select: this.selectAbsenceType }, ''wf-leave-leave textfield[name=main_start_date]'': { change: this.ValidasiMaksimaPengajuan }, ''wf-leave-leave textfield[name=main_end_date]'': { change: this.changeDateRange }, ''employee_id textfield[name=employee_id]'': { change: this.changeDateRange }, ''wf-leave-leave combo[name=list_of_delegate]'': { select: this.selecttDelegation } }); }, onDocumentInit: function (me) { switch (me.config.delegate_mode) { case 0: MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=lookup_of_delegate]'').hide(); MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=list_of_delegate]'').hide(); break case 1: MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=lookup_of_delegate]'').hide() break case 2: MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=list_of_delegate]'').hide(); break default: break } var btn_lookup_delegate = MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=lookup_of_delegate]''); btn_lookup_delegate.on(''click'', function () { var popupEmployee = this.getController(''popup.employee.employee''); popupEmployee.onSelect = function (recs) { MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=delegate_delegate_id]'').setValue(recs.data.code); MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''[name=delegate_delegate_name]'').setValue(recs.data.desc); } popupEmployee.showPopup(); }, me) }, onDocumentReady: function (me) { var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var taskId = MinovaUtil.WORKFLOW.getTaskId(); var listTaskFormEnabled = ['''', ''create'', ''start'', ''revise_creator'', ''creator_confirm'', ''revise_after_confirm_dirspv'', ''revise_after_rd'', ''revise_creator_back''] body.down(''[name=main_absence_type]'').store.load({ params: { paramid: ''combobox_lv_absencetype'', emp_id: MinovaUtil.WORKFLOW.getEmpId() }, callback: function () { MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''combo[name=main_absence_type]'').setValue(MinovaUtil.WORKFLOW.getRegValuesByName(''main_absence_type'')) } }); if (listTaskFormEnabled.indexOf(taskId) < 0) { MinovaUtil.WORKFLOW.setReadOnlyViewBodyWorkflow(); } }, onDocumentBeforeSubmit: function (submit, taskId, me) { var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var absence_type = body.down(''[name=main_absence_type]'').getValue(); var lvbolehbackdated = [''0001'', ''0002'', ''1100'', ''1200'', ''3900'', ''CL5'', ''CL6'', ''CL7'']; var qdeduc = body.down(''[name=main_quota_deduction]'').getValue(); if (qdeduc = ''Y'') { MinovaUtil.executeParamQuery({ paramid: "leave_update_remaining_quota_save", emp_id: MinovaUtil.WORKFLOW.getEmpId(), landscape: ''100'', start_date: body.down(''[name=main_quota_start_date]'').getValue(), end_date: body.down(''[name=main_quota_end_date]'').getValue(), start_date2: body.down(''[name=main_quota_start_date_2]'').getValue(), end_date2: body.down(''[name=main_quota_end_date_2]'').getValue(), quota_type: body.down(''[name=main_quota_type]'').getValue(), quota_taken: body.down(''[name=main_quota_taken]'').getValue(), quota_taken2: body.down(''[name=main_quota_taken_2]'').getValue() }, function (s) { var data = Ext.decode(s.responseText).data[0]; var formLeave = body.down(''form[name=Leave_Main]'').getForm(); formLeave.setValues(data); }, function (f) {}); } if (taskId === ''start'' || taskId === '''' || taskId === ''create'') { var sdate = body.down(''[name=main_start_date]''); var edate = body.down(''[name=main_end_date]''); var now = Ext.Date.format(new Date(), ''Ymd''); if (lvbolehbackdated.indexOf(absence_type) < 0 && (sdate.getValue() < now || edate.getValue() < now)) { alert("Leave Cannot be backdated. Please adjust field Start Date or End Date"); } else me.validasi_cuti_tahunan(submit); } else me.validasi_cuti_tahunan(submit); }, selecttDelegation: function (_this, recs, opt) { var Body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); Body.down(''textfield[name=delegate_delegate_id]'').setValue(recs[0].data.emp_id); Body.down(''textfield[name=delegate_delegate_name]'').setValue(recs[0].data.fullname); }, now8: function () { Ext.global.console.log(''>>now8''); return Ext.Date.format(new Date(), ''Ymd''); }, GetDateDiff: function (EndDate, StartDate) { var DateI = new Date(EndDate.substring(4, 6) + "/" + EndDate.substring(6, 8) + "/" + EndDate.substring(0, 4)); var Date2 = new Date(StartDate.substring(4, 6) + "/" + StartDate.substring(6, 8) + "/" + StartDate.substring(0, 4)); var DiffDays = parseInt((DateI - Date2) / (1000 * 60 * 60 * 24)); return DiffDays; }, onAfterRender: function (_this) { Ext.global.console.log(''>>onAfterRender'', _this); var me = this; var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow() body.down(''combo[name=main_absence_type]'').store.on(''beforeload'', function (store, operation, eOpts) { store.proxy.extraParams = { paramid: ''combobox_lv_absencetype'', emp_id: MinovaUtil.WORKFLOW.getEmpId() }; }); var header = _this.up(''panel[name=content]'').down(''panel[name=wf_form_header]''); var taskId = header.down(''textfield[name=task_id_run]''); var empId = header.down(''textfield[name=employee_id]''); if (empId !== undefined) empId.on(''change'', me.onBehalfEmpId, me); Ext.global.console.log(''<>onBehalfEmpId'', field); this.getDelegate(field, newValue, oldValue, eOpts); this.getStoreAbsence(field, newValue, oldValue, eOpts); if (MinovaUtil.WORKFLOW.isRequest()) { this.clearMainForm(field, newValue, oldValue, eOpts); } this.changeValue( field.up().up().up().query(''wf-leave-leave textfield[name=main_remaining_quota]'')[0], newValue, oldValue, eOpts); Ext.global.console.log(''<>onBehalfTaskId'', field); this.leaveConfSet(field, newValue, oldValue, eOpts); Ext.global.console.log(''<>leaveConfSet'', field); var leaveConf = field.up().up().up().query(''wf-leave-leave combobox[name=main_leave_confirmation]'')[0]; switch (newValue) { case ''creator_confirm'': leaveConf.show(); break; case ''apv_ds2'': leaveConf.show(); leaveConf.setReadOnly(true); break; } Ext.global.console.log(''<>onLeaveInbox'', field); this.getStoreAbsence(field, newValue, oldValue, eOpts); Ext.global.console.log(''<>beforedestroyleaveConf'', field); field.up().up().up().query(''wf-leave-leave textfield[name=main_leave_quota]'')[0].setValue(0); field.up().up().up().query(''wf-leave-leave textfield[name=main_remaining_quota]'')[0].setValue(0); field.up().up().up().query(''wf-leave-leave textfield[name=main_total_remaining_quota]'')[0].setValue(0); field.up().up().up().query(''wf-leave-leave textfield[name=main_absence_type]'')[0].setValue(''''); field.up().up().up().query(''wf-leave-leave textfield[name=main_quota_type]'')[0].setValue(''''); Ext.global.console.log(''<>getStoreAbsence'', field); MinovaUtil.WORKFLOW.getViewBodyWorkflow().down(''combo[name=main_absence_type]'').store.load(); me.changeDateRange(field, newValue, oldValue, eOpts); Ext.global.console.log(''<>getDelegate'', field); }, changeValue: function (field, newValue, oldValue, eOpts) { Ext.global.console.log(''>>changeValue'', field); try { var remainQuota = field.up().query(''textfield[name=main_remaining_quota]'')[0].value; var totalTakenQuota = field.up().query(''textfield[name=main_total_quota_taken]'')[0].value; field.up().query(''textfield[name=main_total_remaining_quota]'')[0].setValue(remainQuota - totalTakenQuota); } catch (e) {} Ext.global.console.log(''<>selectAbsenceType'', combo); var me = this; var fHeader = me.getFormHeader(); var Body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); Body.down(''[name=main_start_date]'').setValue(''''); Body.down(''[name=main_end_date]'').setValue(''''); combo.up().up().query(''textfield[name=main_quota_type]'')[0].setValue(combo.displayTplData[0].quota_type); Body.down(''[name=main_quota_deduction]'').setValue(combo.displayTplData[0].quotadeduction); MinovaUtil.executeParamQuery({ paramid: "combobox_lv_block_continue", emp_id: fHeader.requester_id, now: me.now8(), quota_type: combo.displayTplData[0].quota_type }, function (s) { var obj2 = Ext.decode(s.responseText).data[0]; Body.down(''[name=main_block_contain]'').setValue(obj2.result); }, function (f) {}); me.changeDateRange(combo, '''', '''', ''''); Ext.global.console.log(''<>calculate'', field); var me = this; var sdt = sDate.getValue(); var edt = eDate.getValue(); var empid = MinovaUtil.WORKFLOW.getEmpId(); var landscape = ''100''; leaveCheckDate(); } }, getFormHeader: function () { Ext.global.console.log(''>>getFormHeader''); var formHeader = Ext.ComponentQuery.query(''wf-request-formHeader'')[0]; if (formHeader !== undefined) { formHeader = Ext.ComponentQuery.query(''wf-request-formHeader'')[0].getForm().getValues(); } else { formHeader = Ext.ComponentQuery.query(''wf-run-formHeader'')[0].getForm().getValues(); } Ext.global.console.log(''< 0) { MinovaUtil.MESSAGE.error(data.msg) } } else { submit() } }, function (f) {}) } }, ValidasiMaksimaPengajuan: function (submit) { var taskID = MinovaUtil.WORKFLOW.getTaskId(); var BizprocId = MinovaUtil.WORKFLOW.getBizprocId(); var body = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var Sd = body.down(''[name=main_start_date]'').getValue(); var Ed = body.down(''[name=main_end_date]'').getValue(); var NDate = null; var izin = ''''; var absence_type = body.down(''[name=main_absence_type]'').getValue(); if (taskID == ''start'' && BizprocId == ''leave'') { MinovaUtil.executeParamQuery({ paramid: ''ValidasiLeaveSetahun'', emp_id: MinovaUtil.WORKFLOW.getEmpId(), start_date: Sd }, function (s) { var result = Ext.decode(s.responseText); var data = result.data[0]; var obju = data; if (obju !== undefined) { izin = obju.IZIN; } }, function (f) {}) if (absence_type == ''AL1'' || absence_type == ''AL2'') { if (izin == ''no'' || izin == '''') { MinovaUtil.MESSAGE.error("Anda belum diperkenankan untuk melakukan pengajuan cuti"); body.down(''[name=main_start_date]'').setValue(''''); } } } MinovaUtil.executeParamQuery({ paramid: ''now_date'' }, function (s) { var data = Ext.decode(s.responseText).data[0] if (data != null) { NDate = data.NowDate; } else { NDate = me.now8(); } }, function (f) {}) var Duration = this.GetDateDiff(Sd, NDate); var abs_type = body.down(''[name=main_absence_type]'').getValue(); var CountDt = null; MinovaUtil.executeParamQuery({ paramid: ''wf_leave_get_absentype'', abs_type: abs_type }, function (s) { var data = Ext.decode(s.responseText).data[0] if (data != null) { CountDt = data.Res; } }, function (f) {}) var Duration = this.GetDateDiff(Sd, NDate); var quotadeduc = body.down(''textfield[name=main_quota_deduction]'').getValue(); if (taskID === ''start'' || taskID === ''revisess_creator'') { if (CountDt >= 1 && Duration < 3) { MinovaUtil.MESSAGE.error("Pengajuan ESS bisa dilakukan Maksimal 3 Hari berikutnya"); body.down(''[name=main_start_date]'').setValue(''''); } else { this.changeDateRange(); } } } }); Ext.apply(Ext.form.field.VTypes, { block_leave: function (val, field) { var wfv = MinovaUtil.WORKFLOW.getViewBodyWorkflow(); var a = wfv.down(''textfield[name=main_quota_start_date_2]''); var a1 = wfv.down(''textfield[name=main_quota_start_date]''); var b = wfv.down(''textfield[name=main_quota_lb_cont_2]''); var b1 = wfv.down(''textfield[name=main_quota_lb_cont]''); var c = wfv.down(''textfield[name=main_total_remaining_quota_2]''); var c1 = wfv.down(''textfield[name=main_total_remaining_quota]''); var d1 = wfv.down(''[name=main_quota_taken]''); var d = wfv.down(''[name=main_quota_taken_2]''); var dt = wfv.down(''[name=main_total_quota_taken]''); var absenceType = wfv.down(''[name=main_absence_type]''); if (absenceType.getValue() === ''1000'') { if ((a.getValue() !== '''' || a.getValue() !== ''0'') && b.getValue() === ''0'' && c.getValue() < 5 && c.getValue() !== null) { if (c.getValue() < 5 && dt.getValue() < 5 && dt.getValue() !== null) { return false; } } else if ((a.getValue() === '''' || a.getValue() === ''0'') && b1.getValue() === ''0'' && c1.getValue() < 5 && c1.getValue() !== null) { if (c1.getValue() < 5 && dt.getValue() < 5 && dt.getValue() !== null) { return false; } } } return true; }, block_leaveText: ''Block leave must be taken'', total_taken: function (val, field) { var lv_block = Ext.ComponentQuery.query(''textfield[name=main_block_contain]'')[0]; try { var q_taken = Ext.ComponentQuery.query(''textfield[name=main_total_quota_taken]'')[0]; var q_remain = Ext.ComponentQuery.query(''textfield[name=main_total_remaining_quota]'')[0]; if (lv_block.value === "0") { try { if (q_taken.value < 5 && q_remain.value < 5) { return false; } } catch (e) {} } if (lv_block.value === "1") { try { if (q_taken.value >= 5) { return false; } } catch (e) {} } } catch (e) {} return true; }, total_takenText: ''Types of absences are included in the block leave and unused. Mandatory quotas taken at least 5'' }); Ext.QuickTips.init();' COLLATE SQL_Latin1_General_CP1_CI_AS, N'', N'minovais', '2021-11-18 09:35:44.360', N'minovais', '2021-11-18 15:19:33.197') PRINT(N'Operation applied to 1 rows out of 330') COMMIT TRANSACTION GO