Ext.QuickTips.init(); Ext.define('erp.controller.scm.purchase.Inquiry', { 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','scm.purchase.Inquiry','core.grid.Panel2','core.toolbar.Toolbar','core.form.FileField', 'core.button.Save','core.button.Update','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload', 'core.button.Audit','core.button.Close','core.button.Delete','core.button.DeleteDetail','core.button.ResSubmit', 'core.button.ResAudit','core.button.HistoryQuotation','core.button.HistoryInPrice','core.button.UpdateMaxlimitInfo', 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.button.TurnPurcPrice','core.button.AgreePrice','core.grid.YnColumn' ], init:function(){ var me = this; me.alloweditor = true; this.control({ 'erpGridPanel2': { afterrender: function(grid){ var status = Ext.getCmp('in_statuscode'); if(status && status.value != 'ENTERING' && status.value != 'COMMITED'){ Ext.each(grid.columns, function(c){ c.setEditor(null); }); } }, itemclick: this.onGridItemClick }, 'erpSaveButton': { click: function(btn){ var form = me.getForm(btn); if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){ me.BaseUtil.getRandomNumber();//自动添加编号 } var bool = true; //供应商必填 var grid = Ext.getCmp('grid'), start = Ext.getCmp('in_recorddate').value, end = Ext.getCmp('in_enddate').value; grid.getStore().each(function(item){ if(item.dirty && item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ""){ if(item.data['id_vendcode'] == null || item.data['id_vendcode'] == ''){ bool = false; showError('明细表第' + item.data['id_detno'] + '行的供应商为空');return; } if(item.data['id_fromdate'] ==null){ item.set('id_fromdate', start); } if(item.data['id_todate'] ==null){ item.set('id_todate', end); } if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') > Ext.Date.format(item.data['id_todate'],'Y-m-d')){ bool=false; showError('明细有效开始日期大于截止日期,不能保存!');return; } if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') < Ext.Date.format(new Date(),'Y-m-d')){ bool=false; showError('明细有效开始日期小于当前日期,不能保存!');return; } } }); if(bool){ this.FormUtil.beforeSave(this); } } }, 'erpUpdateButton': { click: function(btn){ var bool = true; //供应商必填 var grid = Ext.getCmp('grid'), fromDate = Ext.getCmp('in_recorddate').value, toDate = Ext.getCmp('in_enddate').value; grid.getStore().each(function(item){ if(item.dirty && item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ""){ if(item.data['id_vendcode'] == null || item.data['id_vendcode'] == ''){ bool = false; showError('明细表第' + item.data['id_detno'] + '行的供应商为空');return; } if(item.data['id_fromdate'] ==null ){ item.set('id_fromdate',fromDate); } if(item.data['id_todate'] ==null){ item.set('id_todate',toDate); } if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') > Ext.Date.format(item.data['id_todate'],'Y-m-d')){ bool = false; showError('明细有效开始日期大于截止日期,不能保存!');return; } console.log(Ext.Date.format(item.data['id_fromdate'],'Y-m-d')); if(Ext.Date.format(item.data['id_fromdate'],'Y-m-d') < Ext.Date.format(new Date(),'Y-m-d')){ bool = false; showError('明细有效开始日期小于当前日期,不能保存!');return; } } }); if(bool){ this.FormUtil.onUpdate(this); } } }, 'erpDeleteButton' : { click: function(btn){ me.FormUtil.onDelete(Ext.getCmp('in_id').value); } }, 'erpAddButton': { click: function(){ me.FormUtil.onAdd('addInquiry', '新增询价单', 'jsps/scm/purchase/inquiry.jsp'); } }, 'erpUpdateMaxlimitInfoButton':{ afterrender:function(btn){ btn.setDisabled(true); }, click: function(btn){ var id=btn.ownerCt.ownerCt.ownerCt.items.items[1].selModel.selected.items[0].data["id_id"]; var idstatus=btn.ownerCt.ownerCt.ownerCt.items.items[1].selModel.selected.items[0].data["id_status"]; if(idstatus!='已报价'){ showError("只能针对已报价的询价做限购"); }else{ var formCondition="id_id IS"+id; var linkCaller='InquiryMaxlimit'; var win = new Ext.window.Window({ id : 'win', height : '90%', width : '95%', maximizable : true, buttonAlign : 'center', layout : 'anchor', items : [ { tag : 'iframe', frame : true, anchor : '100% 100%', layout : 'fit', html : '' } ], listeners:{ 'beforeclose':function(view ,opt){ //grid 刷新一次 var grid=Ext.getCmp('grid'); var gridParam = {caller: caller, condition: gridCondition}; grid.GridUtil.getGridColumnsAndStore(grid, 'common/singleGridPanel.action', gridParam, ""); Ext.getCmp('updateMaxlimitInfo').setDisabled(true); } } }); win.show(); } } }, 'erpCloseButton': { click: function(btn){ me.FormUtil.beforeClose(me); } }, 'erpSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp('in_statuscode'); var checkstatus = Ext.getCmp('in_checkstatuscode').value; if(status && status.value != 'AUDITED'){ btn.hide(); }else if(checkstatus&&checkstatus!=null&&checkstatus!='ENTERING'){ btn.hide(); } }, click: function(btn){ /*Ext.getCmp('in_kind').setValue = 'ss'; Ext.getCmp('in_enddate').setValue= 'ss'; console.log('ce'); me.FormUtil.onSubmit(Ext.getCmp('in_id').value);*/ var inclass = Ext.getCmp('in_class'); if(inclass&&inclass.value=='主动报价'){ me.FormUtil.getActiveTab().setLoading(true); Ext.Ajax.request({ url : basePath + 'scm/purchase/submitInquiry.action', params: { id: Ext.getCmp('in_id').value }, method : 'post', callback : function(options,success,response){ me.FormUtil.getActiveTab().setLoading(false); var localJson = new Ext.decode(response.responseText); if(localJson.exceptionInfo){ showError(localJson.exceptionInfo); } if(localJson.success){ window.location.reload(); } } }); }else{ me.FormUtil.onSubmit(Ext.getCmp('in_id').value); } } }, 'erpResSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp('in_checkstatuscode'); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResSubmit(Ext.getCmp('in_id').value); } }, 'erpAuditButton': { afterrender: function(btn){ var status = Ext.getCmp('in_statuscode'); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onAudit(Ext.getCmp('in_id').value); } }, 'erpResAuditButton': { afterrender: function(btn){ var status = Ext.getCmp('in_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResAudit(Ext.getCmp('in_id').value); } }, 'erpPrintButton': { click: function(btn){ me.FormUtil.onPrint(Ext.getCmp('in_id').value); } }, 'erpAgreePriceButton': { afterrender: function(btn){ var status = Ext.getCmp('in_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ var appstatus = Ext.getCmp('in_checkstatuscode'); if(appstatus && appstatus.value == 'APPROVED'){ showError('审批完成的询价单不能进行最终判定!');return; }else{ inid=Ext.getCmp('in_id').value; var url = basePath+'jsps/common/vastDatalist.jsp?_noc=1&whoami=ToPrice&urlcondition=id_inid='+inid+' and nvl(id_price,0)>0'; var main = parent.parent.Ext.getCmp("content-panel"); var panelId='Inquiry' + id; var title='采购询价转核价' + id; if(main){ panelId = panelId == main.getActiveTab().id ? Math.random() : panelId; var panel = Ext.getCmp(panelId); if(!panel){ var value = ""; if (title.toString().length>5) { value = title.toString().substring(0,5); } else { value = title; } if(!contains(url, 'http://', true) && !contains(url, basePath, true)){ url = basePath + url; } panel = { title : value, tag : 'iframe', tabConfig:{tooltip:title}, frame : true, border : false, layout : 'fit', iconCls : 'x-tree-icon-tab-tab', html : '', closable : true }; me.FormUtil.openTab(panel, panelId); } else { main.setActiveTab(panel); } } else { if(!contains(url, basePath, true)){ url = basePath + url; } window.open(url); } } //me.FormUtil.onPrint(Ext.getCmp('in_id').value); } }, 'erpTurnPurcPriceButton': { afterrender: function(btn){ var status = Ext.getCmp('in_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ warnMsg("确定要转入物料核价单吗?", function(btn){ if(btn == 'yes'){ me.FormUtil.getActiveTab().setLoading(true);//loading... Ext.Ajax.request({ url : basePath + 'scm/purchase/turnPurcPrice.action', params: { id: Ext.getCmp('in_id').value }, method : 'post', callback : function(options,success,response){ me.FormUtil.getActiveTab().setLoading(false); var localJson = new Ext.decode(response.responseText); if(localJson.exceptionInfo){ showError(localJson.exceptionInfo); } if(localJson.success){ turnSuccess(function(){ var id = localJson.id; var url = "jsps/scm/purchase/purchasePrice.jsp?formCondition=pp_id=" + id + "&gridCondition=ppd_ppid=" + id; me.FormUtil.onAdd('PurchasePrice' + id, '物料核价单' + id, url); }); } } }); } }); } }, /** * 查看历史入库价 */ 'button[id=historyin]': { click: function(){ var record = Ext.getCmp('grid').selModel.lastSelected; if(record){ var prod = record.data['id_prodcode']; var win = Ext.getCmp('in-win'); if(win == null){ win = Ext.create('Ext.window.Window', { id: 'in-win', width: '80%', height: '100%', maximizable : true, layout: 'anchor', closeAction: 'hide', items: [Ext.create('erp.view.core.grid.Panel2', { id: 'inhistory', anchor: '100% 100%', caller: 'ProdInOut!In!History', condition: "pd_prodcode='" + prod + "' order by pd_prodmadedate desc", bbar: null })], setMyTitle: function(code){//@param code 料号 this.setTitle('编号:' + code + ' 的历史入库价  ' + '' + ''); }, reload: function(code){//@param code 料号 var g = this.down('grid[id=inhistory]'); g.GridUtil.loadNewStore(g, { caller: g.caller, condition: "pd_prodcode='" + code + "' order by pd_prodmadedate desc" }); this.setMyTitle(code); }, prev: function(){//查看上一条 var item = Ext.getCmp('grid').prev(); if(item != null){ this.reload(item.data['id_prodcode']); } }, next: function(){//查看下一条 var item = Ext.getCmp('grid').next(); if(item != null){ this.reload(item.data['id_prodcode']); } } }); win.setMyTitle(prod); win.show(); } else { win.reload(prod); win.show(); } } else { alert("请先选择明细!"); } } }, /** * 查看历史报价 */ 'button[id=historyquo]': { click: function(){ var record = Ext.getCmp('grid').selModel.lastSelected; if(record){ var prod = record.data['id_prodcode']; var win = Ext.getCmp('history-win'); if(win == null){ win = Ext.create('Ext.window.Window', { id: 'history-win', width: '80%', height: '100%', maximizable : true, layout: 'anchor', closeAction: 'hide', setMyTitle: function(code){//@param code 料号 this.setTitle('编号:' + code + ' 的报价历史  ' + '' + ''); }, reload: function(code){//@param code 料号 var g = this.down('grid[id=history]'); g.GridUtil.loadNewStore(g, { caller: g.caller, condition: "id_prodcode='" + code + "'" }); g = this.down('grid[id=invid]'); g.GridUtil.loadNewStore(g, { caller: g.caller, condition: "ppd_prodcode='" + code + "' AND ppd_statuscode='VALID'" }); this.setMyTitle(code); }, prev: function(){//查看上一条 var item = Ext.getCmp('grid').prev(); if(item != null){ this.reload(item.data['id_prodcode']); } }, next: function(){//查看下一条 var item = Ext.getCmp('grid').next(); if(item != null){ this.reload(item.data['id_prodcode']); } } }); win.setMyTitle(prod); win.show(); win.add(Ext.create('erp.view.core.grid.Panel2', { id: 'history', anchor: '100% 60%', caller: 'Inquiry!History', condition: "id_prodcode='" + prod + "'", bbar: null, listeners: { reconfigure: function(){ win.add(Ext.create('erp.view.core.grid.Panel2', { id: 'invid', title: '现有效价格', anchor: '100% 40%', caller: 'PurchasePrice!Invid', condition: "ppd_prodcode='" + prod + "' AND ppd_statuscode='VALID'", bbar: null })); } } })); } else { win.reload(prod); win.show(); } } else { alert("请先选择明细!"); } } } }); }, onGridItemClick: function(selModel, record){//grid行选择 this.GridUtil.onGridItemClick(selModel, record); var grid=selModel.ownerCt; var show=0; Ext.Array.each(grid.necessaryFields, function(field) { var fieldValue=record.data[field]; if(fieldValue==undefined||fieldValue==""||fieldValue==null){ show=1; return; } }); if(show==1){ Ext.getCmp('updateMaxlimitInfo').setDisabled(true); }else { Ext.getCmp('updateMaxlimitInfo').setDisabled(false); } }, getForm: function(btn){ return btn.ownerCt.ownerCt; } });