Ext.QuickTips.init(); Ext.define('erp.controller.pm.make.MakePlan!Add', { extend: 'Ext.app.Controller', requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'], views:[ 'pm.make.MakePlan!Add','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger', 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit','core.button.FormBook', 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit', 'core.button.Scan','core.button.Banned','core.button.ResBanned','core.form.MultiField','core.button.Confirm','core.button.Sync', 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField', 'core.grid.YnColumn','core.trigger.AddDbfindTrigger', 'core.form.FileField','core.form.SplitTextField','core.button.End','core.button.ResEnd','core.form.CheckBoxGroup','core.button.TurnMJProject', 'core.form.MonthDateField','core.form.SpecialContainField','core.form.SeparNumber','core.button.AutoInvoice','core.button.CleanDetail','core.form.DateToNumberField' ], init:function(){ var me = this; me.FormUtil = Ext.create('erp.util.FormUtil'); me.GridUtil = Ext.create('erp.util.GridUtil'); me.BaseUtil = Ext.create('erp.util.BaseUtil'); this.control({ 'erpFormPanel': { alladded: function(form){ var grid = Ext.getCmp('grid'); if(grid) me.resize(form, grid); } }, 'erpGridPanel2': { itemclick: this.onGridItemClick, reconfigure: function(grid){ var form = Ext.getCmp('form'); if(form) me.resize(form, grid); } }, 'erpSaveButton': { afterrender: function(btn){ var form = me.getForm(btn); var codeField = Ext.getCmp(form.codeField); if(Ext.getCmp(form.codeField) && (Ext.getCmp(form.codeField).value != null && Ext.getCmp(form.codeField).value != '')){ btn.hide(); } }, click: function(btn){ var form = me.getForm(btn); if(!Ext.isEmpty(form.codeField) && Ext.getCmp(form.codeField) && ( Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == '')){ me.BaseUtil.getRandomNumber(caller);//自动添加编号 } this.FormUtil.beforeSave(this); } }, 'erpDeleteButton' : { click: function(btn){ me.FormUtil.onDelete(Ext.getCmp(me.getForm(btn).keyField).value); } }, 'erpUpdateButton': { click: function(btn){ this.FormUtil.onUpdate(this); } }, 'erpAddButton': { click: function(btn){ var title = btn.ownerCt.ownerCt.title || ' '; var url = window.location.href; url = url.replace(basePath, ''); url = url.substring(0, url.lastIndexOf('formCondition')-1); me.FormUtil.onAdd('add' + caller, title, url); } }, 'erpCloseButton': { click: function(btn){ me.FormUtil.beforeClose(me); } }, 'erpSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp(me.getForm(btn).statuscodeField); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onSubmit(Ext.getCmp(me.getForm(btn).keyField).value); } }, 'erpResSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp(me.getForm(btn).statuscodeField); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResSubmit(Ext.getCmp(me.getForm(btn).keyField).value); } }, 'erpAuditButton': { afterrender: function(btn){ var status = Ext.getCmp(me.getForm(btn).statuscodeField); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onAudit(Ext.getCmp(me.getForm(btn).keyField).value); } }, 'erpResAuditButton': { afterrender: function(btn){ var status = Ext.getCmp(me.getForm(btn).statuscodeField); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResAudit(Ext.getCmp(me.getForm(btn).keyField).value); } }, 'dbfindtrigger[name=mp_linecode]': { beforetrigger: function(t){ var wccode = Ext.getCmp('mp_wccode'); if(wccode && wccode.value !='' && wccode.value != null){ t.dbBaseCondition = " li_wccode='"+ wccode.value+"'"; } } }, 'erpAutoInvoiceButton': { afterrender: function(btn){ btn.setWidth(90); btn.setText('自动生成'); var status = Ext.getCmp(me.getForm(btn).statuscodeField); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ var linecode = ''; if(Ext.getCmp('mp_linecode')){ linecode = Ext.getCmp('mp_linecode').value; } var grid = Ext.getCmp('grid'); var me = this; win = Ext.create('Ext.Window', { title: '自动生成生产计划', height: 150, id: 'addPlan', width: 600, items: [{ xtype: 'form', height: '100%', width: '100%', layout: 'column', bodyStyle: 'background:#f1f2f5;', items: [{ xtype: 'numberfield', fieldLabel: '开始时间', labelSeparator: ':', allowBlank: false, id: 'mp_begintime', columnWidth: 0.3, minValue:0, maxValue:23, labelWidth:70, allowBlank: false, value:8, style: { 'margin-top': '10px' } },{ xtype: 'numberfield', fieldLabel: '结束时间', labelSeparator: ':', id: 'mp_endtime', allowBlank: false, columnWidth: 0.3, minValue:0, maxValue:23, labelWidth:70, value:19, style: { 'margin-top': '10px' } },{ xtype: 'numberfield', fieldLabel: '排产数量', labelSeparator: ':', id: 'mp_planqty', allowBlank: false, columnWidth: 0.3, minValue:0, labelWidth:70, style: { 'margin-top': '10px' } }], closeAction: 'hide', buttonAlign: 'center', buttons: [{ text: $I18N.common.button.erpConfirmButton, handler: function(btn) { var form = btn.ownerCt.ownerCt, a = form.down('#mp_begintime').value, b = form.down('#mp_endtime').value, c = form.down('#mp_planqty').value; number = 0; i= 0; j = 0; singledata=''; detailgrid = Ext.getCmp('grid'); count = detailgrid.store.data.items.length; length = count; m=0; if( a==null || a>23 || a<0){ Ext.Msg.alert('温馨提示', '起始时间介于0-23'); return; } if( b==null ||b>23 || b<0){ Ext.Msg.alert('温馨提示', '结束时间介于0-23'); return; } if(b-a>0){ number = b-a; }else if (b-a < 0){ number = 24-a+b; }else if(b-a == 0){ number = 24; } for(i=0;i24){ a=a-24; } m=1; break; } } } if(m==1){ detailgrid.store.data.items[j].set('mpd_datenum','H'+a); detailgrid.store.data.items[j].set('mpd_planqty',c); detailgrid.store.data.items[j].set('mpd_linecode',linecode); a++; if(a>24){ a=a-24; } j++; } if(m==0){ detailgrid.store.data.items[j].set('mpd_datenum','H'+a); detailgrid.store.data.items[j].set('mpd_planqty',c); detailgrid.store.data.items[j].set('mpd_linecode',linecode); length++; a++; if(a>24){ a=a-24; } } } Ext.getCmp('addPlan').close(); } }, { text: $I18N.common.button.erpCloseButton, cls: 'x-btn-gray', handler: function(btn) { btn.up('window').close(); } }] }] }); win.show(); } }, 'erpCleanDetailButton':{ afterrender: function(btn){ var status = Ext.getCmp(me.getForm(btn).statuscodeField); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ var param = me.getGridItems(); if(param == null || param == ''){ showError("没有需要清除的明细"); return ; } me.cleanDetail(); } } }) }, onGridItemClick: function(selModel, record){//grid行选择 this.GridUtil.onGridItemClick(selModel, record); }, getForm: function(btn){ return btn.ownerCt.ownerCt; }, resize: function(form, grid){ if(!this.resized && form && grid && form.items.items.length > 0){ var height = window.innerHeight, fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight(); form.setHeight(70 + fh); grid.setHeight(height - fh - 70); this.resized = true; } }, cleanDetail: function(){ var grid=Ext.getCmp('grid'); grid.setLoading(true); Ext.Ajax.request({ url :basePath+ 'pm/make/cleanMakePlanDetail.action', params: { id:Ext.getCmp('mp_id').value, code:Ext.getCmp('mp_code').value }, method : 'post', callback : function(options,success,response){ grid.setLoading(false); var localJson = new Ext.decode(response.responseText); if(localJson.success){ showMessage('提示', '清除成功!', 1000); //update成功后刷新页面进入可编辑的页面 window.location.reload(); } else if(localJson.exceptionInfo){ showError(localJson.exceptionInfo);return; } } }); }, getGridItems :function(){//检查明细行是否有明细 var grid = Ext.getCmp('grid'); var jsonGridData = new Array(); var form = Ext.getCmp('form'); if(grid!=null){ grid.getStore().each(function(item){//将grid里面各行的数据获取并拼成jsonGridData var data = Ext.clone(item.data); var dd = new Object(); if(data[grid.necessaryField] != null && data[grid.necessaryField] != ""){ if(grid.mainField && form && form.keyField){//例如,将pu_id的值赋给pd_puid dd[grid.mainField] = Ext.getCmp(form.keyField).value; } Ext.each(grid.columns, function(c){ if((c.logic != 'ignore') && c.dataIndex){//只需显示,无需后台操作的字段,自动略去 if(c.xtype == 'datecolumn'){ if(Ext.isDate(data[c.dataIndex])){ dd[c.dataIndex] = Ext.Date.toString(data[c.dataIndex]);//在这里把GMT日期转化成Y-m-d格式日期 } else { dd[c.dataIndex] = Ext.Date.format(new Date(), 'Y-m-d');//如果用户没输入日期,或输入有误,就给个默认日期, //或干脆return;并且提示一下用户 } } else if(c.xtype == 'numbercolumn'){//赋个默认值0吧,不然不好保存 if(data[c.dataIndex] == null || data[c.dataIndex] == ''){ dd[c.dataIndex] = '0';//也可以从data里面去掉这些字段 } else { dd[c.dataIndex] = "" + data[c.dataIndex]; } }else{ dd[c.dataIndex] = data[c.dataIndex]; } } }); jsonGridData.push(Ext.JSON.encode(dd)); } }); return jsonGridData; } } });