Ext.QuickTips.init(); Ext.define('erp.controller.drp.distribution.SaleForecast', { extend: 'Ext.app.Controller', FormUtil: Ext.create('erp.util.FormUtil'), GridUtil: Ext.create('erp.util.GridUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), views:[ 'core.form.Panel','drp.distribution.SaleForecast','core.grid.Panel2','core.toolbar.Toolbar','core.form.MultiField', 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ChangeDate', 'core.button.ResAudit','core.button.Scan','core.button.DeleteDetail','core.button.ResSubmit','core.button.FeatureDefinition', 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.End','core.button.ResEnd','core.button.Print', 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.grid.YnColumn','core.button.FeatureView' ], init:function(){ var me = this; this.control({ 'erpGridPanel2': { itemclick: function(selModel, record){ Ext.getCmp('featuredefinition').setDisabled(false); Ext.getCmp('featureview').setDisabled(false); this.onGridItemClick } }, 'erpChangeDateButton':{ afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click:function(btn){ var keyvalue=Ext.getCmp('sf_id').value; var condition='sd_sfid='+keyvalue; var win = new Ext.window.Window({ id : 'win', height: "100%", width: "80%", maximizable : true, buttonAlign : 'center', layout : 'anchor', items: [{ tag : 'iframe', frame : true, anchor : '100% 100%', layout : 'fit', html : '' }], buttons : [{ text : $I18N.common.button.erpConfirmButton, iconCls: 'x-button-icon-confirm', cls: 'x-btn-gray', handler : function(){ var grid = Ext.getCmp('win').items.items[0].body.dom.getElementsByTagName('iframe')[0].contentWindow.Ext.getCmp("editorColumnGridPanel"); var data = grid.getEffectData(); if(data != null){ grid.setLoading(true); Ext.Ajax.request({ url : basePath + 'scm/sale/SaleForecastChangedate.action', params: { caller: caller, data: Ext.encode(data) }, method : 'post', callback : function(options,success,response){ grid.setLoading(false); var localJson = new Ext.decode(response.responseText); if(localJson.exceptionInfo){ showError(localJson.exceptionInfo); return ""; } if(localJson.success){ if(localJson.log){ showMessage("提示", localJson.log); } Ext.Msg.alert("提示", "处理成功!", function(){ win.close(); var detailgrid= Ext.getCmp('grid'); gridParam = {caller: 'SaleForecast', condition: condition}; me.GridUtil.getGridColumnsAndStore(detailgrid, 'common/singleGridPanel.action', gridParam, "") }); } } }); } } }, { text : $I18N.common.button.erpCloseButton, iconCls: 'x-button-icon-close', cls: 'x-btn-gray', handler : function(){ Ext.getCmp('win').close(); } }] }); win.show(); } }, 'erpSaveButton': { click: function(btn){ var form = me.getForm(btn); if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){ me.BaseUtil.getRandomNumber();//自动添加编号 } this.beforeSaveSaleForecast(this); } }, 'erpDeleteDetailButton': { afterrender: function(btn){ btn.ownerCt.add({ xtype: 'erpFeatureDefinitionButton' }); btn.ownerCt.add({ xtype: 'erpFeatureViewButton' }); } }, 'erpDeleteButton' : { click: function(btn){ me.FormUtil.onDelete(Ext.getCmp('sf_id').value); } }, 'erpUpdateButton': { click: function(btn){ this.beforeUpdate(this); } }, 'erpAddButton': { click: function(){ me.FormUtil.onAdd('addSaleForecast', '新增销售预测单', 'jsps/drp/distribution/saleForecast.jsp'); } }, 'erpCloseButton': { click: function(btn){ me.FormUtil.beforeClose(me); } }, 'erpSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onSubmit(Ext.getCmp('sf_id').value); } }, 'erpResSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResSubmit(Ext.getCmp('sf_id').value); } }, 'erpAuditButton': { afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onAudit(Ext.getCmp('sf_id').value); } }, 'erpResAuditButton': { afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResAudit(Ext.getCmp('sf_id').value); } }, 'erpPrintButton': { click:function(btn){ var reportName="SaleForecastAudit1"; var condition='{SaleForeCast.sf_id}='+Ext.getCmp('sf_id').value+''; var id=Ext.getCmp('sf_id').value; me.FormUtil.onwindowsPrint(id,reportName,condition); } }, 'erpEndButton': { afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onEnd(Ext.getCmp('sf_id').value); } }, 'erpResEndButton': { afterrender: function(btn){ var status = Ext.getCmp('sf_statuscode'); if(status && status.value != 'FINISH'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResEnd(Ext.getCmp('sf_id').value); } }, 'erpFeatureDefinitionButton':{ click: function(btn){ var grid = Ext.getCmp('grid'); var record = grid.selModel.lastSelected; console.log(record); if(record.data.sd_prodcode != null){ Ext.Ajax.request({//拿到grid的columns url : basePath + "pm/bom/getDescription.action", params: { tablename: 'Product', field: 'pr_specvalue', condition: "pr_code='" + record.data.sd_prodcode + "'" }, method : 'post', async: false, callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } if(res.success){ if(res.description != '' && res.description != null && res.description == 'SPECIFIC'){ var win = new Ext.window.Window({ id : 'win' + record.data.sd_id, title: '生成特征料号', height: "90%", width: "70%", maximizable : true, buttonAlign : 'center', layout : 'anchor', items: [{ tag : 'iframe', frame : true, anchor : '100% 100%', layout : 'fit', html : '' }] }); win.show(); } else { showError('物料特征必须为 虚拟特征件');return; } } } }); } } }, 'erpFeatureViewButton':{ click: function(btn){ var grid = Ext.getCmp('grid'); var record = grid.selModel.lastSelected; console.log(record); if(record.data.sd_prodcode != null){ Ext.Ajax.request({//拿到grid的columns url : basePath + "pm/bom/getDescription.action", params: { tablename: 'Product', field: 'pr_specvalue', condition: "pr_code='" + record.data.sd_prodcode + "'" }, method : 'post', async: false, callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } if(res.success){ if(res.description != '' && res.description != null && res.description == 'NOTSPECIFIC'){ var win = new Ext.window.Window({ id : 'win' + record.data.sd_id, title: '特征查看', height: "90%", width: "70%", maximizable : true, buttonAlign : 'center', layout : 'anchor', items: [{ tag : 'iframe', frame : true, anchor : '100% 100%', layout : 'fit', html : '' }] }); win.show(); } else { showError('物料特征必须为 虚拟特征件');return; } } } }); } } }, 'textfield[name=sf_fromdate]': { change: function(field){ if(field.value != null && field.value != ''){ var grid = Ext.getCmp('grid'); var date = field.value; Ext.Array.each(grid.getStore().data.items,function(item){ item.set('sd_startdate',date); }); } } }, 'textfield[name=sf_todate]': { change: function(field){ if(field.value != null && field.value != ''){ var grid = Ext.getCmp('grid'); var date = field.value; Ext.Array.each(grid.getStore().data.items,function(item){ item.set('sd_enddate',date); }); } } }, 'textfield[name=sf_custcode]': { change: function(field){ if(field.value != null && field.value != ''){ var grid = Ext.getCmp('grid'); var date = field.value; Ext.Array.each(grid.getStore().data.items,function(item){ item.set('sd_custcode',date); }); } } } }); }, onGridItemClick: function(selModel, record){//grid行选择 this.GridUtil.onGridItemClick(selModel, record); }, getForm: function(btn){ return btn.ownerCt.ownerCt; }, beforeSaveSaleForecast: function(){ var grid = Ext.getCmp('grid'), items = grid.store.data.items, c = Ext.getCmp('sf_code').value; Ext.Array.each(items, function(item){ item.set('sd_code', c); }); //保存 this.FormUtil.beforeSave(this); }, beforeUpdate: function(){ var grid = Ext.getCmp('grid'), items = grid.store.data.items, c = Ext.getCmp('sf_code').value; Ext.Array.each(items, function(item){ item.set('sd_code', c); }); //更新 this.FormUtil.onUpdate(this); } });