Ext.QuickTips.init(); Ext.define('erp.controller.scm.sale.Sale', { 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.sale.Sale','core.grid.Panel2','core.toolbar.Toolbar','core.form.FileField','core.form.MultiField','core.form.CheckBoxGroup', 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit', 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit', 'core.button.Consign','core.button.TurnNotify','core.button.FeatureDefinition','core.button.PrintA4', 'core.button.FeatureView','core.button.OutSchedule','core.button.ResSubmitTurnSale','core.button.SubmitTurnSale','core.button.TurnNormalSale', 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.grid.YnColumn','core.form.FileField', 'core.button.CopyAll','core.button.RunATP','core.button.TurnProdInOutSale','core.button.TurnCustomer', 'core.button.RefreshSync', 'core.button.MrpOpen','core.button.MrpClose','core.button.RefreshQty','core.grid.YnColumnNV','core.button.LoadFitting', 'core.button.End','core.button.BOMCost','core.button.ConfirmAgree','core.button.TurnB2CSaleOut' ], init:function(){ var me = this; this.control({ 'erpGridPanel2': { itemclick: function(selModel, record){ if(record.data.sd_id != 0 && record.data.sd_id != null && record.data.sd_id != ''){ var btn = Ext.getCmp('featuredefinition'); btn && btn.setDisabled(false); btn = Ext.getCmp('featureview'); btn && btn.setDisabled(false); btn = Ext.getCmp('outschedule'); btn && btn.setDisabled(false); btn = Ext.getCmp('updatepmc'); btn && btn.setDisabled(false); btn = Ext.getCmp('splitSaleButton'); btn && btn.setDisabled(false); btn = Ext.getCmp('bomopen'); btn && btn.setDisabled(false); btn = Ext.getCmp('updateDiscount'); btn && btn.setDisabled(false); btn = Ext.getCmp('MrpOpen'); btn && btn.setDisabled(false); btn = Ext.getCmp('MrpClose'); btn && btn.setDisabled(false); //设置载入配件按钮 var status = Ext.getCmp('sa_statuscode'); if(status && status.value == 'ENTERING'){ btn = Ext.getCmp("loadFittingbutton"); btn && btn.setDisabled(false); } } this.onGridItemClick(selModel, record); } }, 'erpBOMCostButton': { click: function(btn) { var form = btn.ownerCt.ownerCt, sa_id = Ext.getCmp('sa_id').value; form.setLoading(true); Ext.Ajax.request({ url: basePath + 'scm/sale/salebomcost.action', params: { sa_id: sa_id, caller: caller }, timeout: 600000, callback: function(opt, s, r) { form.setLoading(false); var rs = Ext.decode(r.responseText); if(rs.success) { alert('计算完成!'); me.GridUtil.loadNewStore(form.ownerCt.down('grid'), {caller: caller, condition: 'sd_said=' + sa_id}); } else if(r.exceptionInfo) { showError(r.exceptionInfo); } } }); } }, /** * 订单分拆 */ '#splitSaleButton': { click: function(btn) { var record=btn.ownerCt.ownerCt.getSelectionModel().getLastSelected(); me.SaleSplit(record); } }, /** * 更改PMC日期 */ '#updatepmc': { click: function(btn) { var record=btn.ownerCt.ownerCt.getSelectionModel().getLastSelected(); me.UpdatePmc(record); } }, /** * BOM多级展开 */ '#bomopen': { click: function(btn) { var record=btn.ownerCt.ownerCt.getSelectionModel().getLastSelected(); var pr_code=record.data.sd_prodcode; var url="jsps/pm/bom/BOMStructQuery.jsp?whoami=BOMStruct!Struct!Query"; var condition=""; //母件编号带出展开的料号不对 参照万利达配置 if(pr_code){ condition+="pr_codeIS'"+pr_code+"'"; } me.FormUtil.onAdd('BOMStruct'+ pr_code, 'BOM多级展开', url+"&condition="+condition); } }, /** * 更新比例 */ '#updateDiscount': { afterrender: function(btn) { Ext.defer(function(){ var status = Ext.getCmp('sa_statuscode'); if(status && status.value == 'ENTERING'){ btn.hide(); } }, 100); }, click: function() { me.updateDiscount(); } }, 'mfilefield':{//附件一直都可以上传下载 beforerender:function(f){ f.readOnly=false; } }, /** * 载入配件 * */ '#loadFittingbutton': { click: function(btn) { //新产生的配件明细,存下原始订单序号到SD_MAKEID。 //载入之前判断此序号是否已经存在sd_makeid相等的明细行,如果有就不让再载入 var record = btn.ownerCt.ownerCt.getSelectionModel().getLastSelected(); var pr_code = record.data.sd_prodcode; var detno = record.data.sd_detno; var sa_id = Ext.getCmp('sa_id').value; var sd_qty = record.data.sd_qty; me.loadFitting (pr_code,sd_qty,sa_id,detno); } }, 'textfield[name=sa_custcode]':{ beforerender: function(field){ if(Ext.getCmp('sa_sourcecode')&&Ext.getCmp('sa_sourcecode').value){ if(Ext.getCmp('sa_sourcetype')&& Ext.getCmp('sa_sourcetype').value=="报价单"){ field.readOnly=true; } } } }, 'field[name=sa_currency]': { beforetrigger: function(field) { var t = field.up('form').down('field[name=sa_date]'), value = t.getValue(); if(value) { field.findConfig = 'cm_yearmonth=' + Ext.Date.format(value, 'Ym'); } } }, 'erpSaveButton': { click: function(btn){ var form = me.getForm(btn); if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){ me.getRandomNumber();//自动添加编号 } this.beforeSaveSale(); } }, 'erpDeleteButton' : { click: function(btn){ me.FormUtil.onDelete({id: Number(Ext.getCmp('sa_id').value)}); } }, 'erpUpdateButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ me.beforeUpdate(); } }, 'erpAddButton': { click: function(){ me.FormUtil.onAdd('addSale', '销售单', 'jsps/scm/sale/sale.jsp?whoami=' + caller); } }, 'erpCloseButton': { click: function(btn){ me.FormUtil.beforeClose(me); } }, 'dbfindtrigger[name=sa_toplace]': { afterrender:function(trigger){ trigger.dbKey='sa_custcode'; trigger.mappingKey='cu_code'; trigger.dbMessage='请先选客户编号!'; } }, 'dbfindtrigger[name=sa_paymentscode]': { afterrender:function(trigger){ if(trigger.fieldConfig == 'PT') { trigger.dbKey='sa_custcode'; trigger.mappingKey='cu_code'; trigger.dbMessage='请先选客户编号!'; } } }, 'dbfindtrigger[name=sd_custprodcode]': { focus: function(t){ t.setHideTrigger(false); t.setReadOnly(false); if(Ext.getCmp('sa_custcode')){ var cucode = Ext.getCmp('sa_custcode').value, record = Ext.getCmp('grid').selModel.lastSelected; if(Ext.isEmpty(cucode)){ showError("请先选择客户编号!"); t.setHideTrigger(true); t.setReadOnly(true); } else { t.dbBaseCondition = "pc_custcode='" + cucode + "'"; } } } }, 'dbfindtrigger[name=sd_price]': { focus: function(t){ t.setHideTrigger(false); t.setReadOnly(false); if(Ext.getCmp('sa_custcode')){ var cucode = Ext.getCmp('sa_custcode').value, currency = Ext.getCmp('sa_currency').value; record = Ext.getCmp('grid').selModel.lastSelected, prodcode = record.data['sd_prodcode']; if(Ext.isEmpty(cucode)){ showError("请先选择客户编号!"); t.setHideTrigger(true); t.setReadOnly(true); } else if(Ext.isEmpty(currency)){ showError("请先填写币别!"); t.setHideTrigger(true); t.setReadOnly(true); } else if(Ext.isEmpty(prodcode)){ showError("请先选择物料编号!"); t.setHideTrigger(true); t.setReadOnly(true); } else { t.dbBaseCondition = "SPD_ARCUSTCODE='" + cucode + "' and SPD_CURRENCY='" + currency + "' and spd_prodcode='" + prodcode + "'"; } } } }, 'erpSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'); if(status && status.value != 'ENTERING'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onSubmit(Ext.getCmp('sa_id').value); } }, 'erpMrpOpenButton' : { click: function(btn){ var grid = Ext.getCmp('grid'); var record = grid.selModel.lastSelected; var id = record.data.sd_id; if (id && id>0){ Ext.Ajax.request({ url : basePath + "scm/sale/saleMrpOpen.action", params: { id:id, caller:caller }, method : 'post', async: false, callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo); return; } showError("打开Mrp成功!"); } }); } } }, 'erpMrpCloseButton' : { click: function(btn){ var grid = Ext.getCmp('grid'); var record = grid.selModel.lastSelected; var id = record.data.sd_id; if (id && id>0){ Ext.Ajax.request({ url : basePath + "scm/sale/saleMrpClose.action", params: { id:id, caller:caller }, method : 'post', async: false, callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo); return; } showError("关闭Mrp成功!"); } }); } } }, //刷新已转数 'erpRefreshQtyButton':{ click: function(btn){ warnMsg("确定要刷新已转数?", function(btn){ if(btn == 'yes'){ me.FormUtil.getActiveTab().setLoading(true);//loading... Ext.Ajax.request({ url : basePath + 'scm/sale/refreshSaleYQTY.action', params: { id: Ext.getCmp('sa_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){ Ext.Msg.alert("提示","刷新成功!"); window.location.reload(); } } }); } }); } }, //帕诺迪专用 'erpTurnCustomerButton': { beforerender:function(btn){ btn.setText("收款情况"); }, afterrender:function(btn){ var status = Ext.getCmp('sa_statuscode'); if(status.value != 'AUDITED'){ btn.hide(); } }, click:function(){ var sacode=Ext.getCmp('sa_id').value; var formCondition="sp_saleid IS"+sacode; var linkCaller='SalePayment'; 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, ""); } } }); win.show(); } }, 'erpResSubmitButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResSubmit(Ext.getCmp('sa_id').value); } }, 'erpAuditButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'); if(status && status.value != 'COMMITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onAudit(Ext.getCmp('sa_id').value); } }, 'erpResAuditButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'); if(status && status.value != 'AUDITED'){ btn.hide(); } }, click: function(btn){ me.FormUtil.onResAudit(Ext.getCmp('sa_id').value); } }, 'erpSubmitTurnSaleButton':{ click:function(btn){ var id=Ext.getCmp('sa_id').getValue(); Ext.Ajax.request({//拿到grid的columns url : basePath + "scm/sale/submitTurnSale.action", params: { id:id }, method : 'post', callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ var str = res.exceptionInfo; if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面 str = str.replace('AFTERSUCCESS', ''); submitSuccess(function(){ window.location.reload(); }); } showMessage("提示", str);return; } else if(res.success){ submitSuccess(function(){ window.location.reload(); }); } } }); }, afterrender:function(btn){ var sa_commitstatus=Ext.getCmp('sa_commitstatus').getValue(); var sa_statuscode=Ext.getCmp('sa_statuscode').getValue(); var sa_source=Ext.getCmp('sa_source').getValue(); var bool=true; if((Ext.isEmpty(sa_commitstatus)||sa_commitstatus=='未提交')&&sa_statuscode=='AUDITED'&&sa_source=='非正常'){ bool=false; } if(bool) btn.hide(); } }, 'erpResSubmitTurnSaleButton':{ click:function(btn){ var id=Ext.getCmp('sa_id').getValue(); Ext.Ajax.request({//拿到grid的columns url : basePath + "scm/sale/resSubmitTurnSale.action", params: { id:id }, method : 'post', callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } if(res.success){ resSubmitSuccess(); window.location.reload(); } } }); }, afterrender:function(btn){ var sa_commitstatus=Ext.getCmp('sa_commitstatus').getValue(); if(sa_commitstatus!='已提交'){ btn.hide(); } } }, 'erpTurnNormalSaleButton':{ click:function(btn){ var id=Ext.getCmp('sa_id').getValue(); Ext.Ajax.request({//拿到grid的columns url : basePath + "scm/sale/TurnNormalSale.action", params: { id:id }, method : 'post', callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } if(res.success){ Ext.Msg.alert('提示','转正式订单成功!',function(){ window.location.reload(); }); } } }); }, afterrender:function(btn){ var sa_commitstatus=Ext.getCmp('sa_commitstatus'); if(sa_commitstatus && sa_commitstatus.value!='已提交'){ btn.hide(); } } }, 'erpPrintButton':{ click:function(btn){ var reportName="salelist"; var condition='{Sale.sa_id}='+Ext.getCmp('sa_id').value+''; var id=Ext.getCmp('sa_id').value; me.FormUtil.onwindowsPrint2(id,reportName,condition); } }, 'erpPrintA4Button':{ click:function(btn){ var reportName="SaleCheck"; var condition='{Sale.sa_id}='+Ext.getCmp('sa_id').value+''; var id=Ext.getCmp('sa_id').value; me.FormUtil.onwindowsPrint2(id,reportName,condition); } }, 'field[name=sa_statuscode]': { change: function(f){ var grid = Ext.getCmp('grid'); if(grid && f.value != 'ENTERING' && f.value != 'COMMITED'){ grid.setReadOnly(true);//只有未审核的订单,grid才能编辑 } } }, 'erpConsignButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'), sk_outtype = Ext.getCmp('sk_outtype'); if(status && status.value != 'AUDITED'){ btn.hide(); } if(sk_outtype && sk_outtype.value != 'TURNSN'){ btn.hide(); } } }, 'erpTurnProdInOutSaleButton': { afterrender: function(btn){ var status = Ext.getCmp('sa_statuscode'), sk_outtype = Ext.getCmp('sk_outtype'); if(status && status.value != 'AUDITED'){ btn.hide(); } if(sk_outtype && sk_outtype.value != 'TURNOUT'){ btn.hide(); } } }, 'erpFeatureDefinitionButton':{ click: function(btn){ var grid = Ext.getCmp('grid'); var record = grid.selModel.lastSelected; 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', title: '生成特征料号', height: "90%", width: "95%", 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; 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; } } } }); } } }, 'erpRunATPButton':{ click: function(btn){ if(Ext.getCmp('sa_code').value != null){ var mb = new Ext.window.MessageBox(); mb.wait('正在运算中','请稍后...',{ interval: 10000, //bar will move fast! duration: 1000000, increment: 20, scope: this }); Ext.Ajax.request({//拿到grid的columns url : basePath + "/pm/atp/runATPFromOther.action", params: { fromcode:Ext.getCmp('sa_code').value, fromwhere:'SALE' }, method : 'post', timeout: 600000, callback : function(options,success,response){ mb.close(); var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } if(res.success){ if(res.atpid != '' && res.atpid != null && res.atpid>0){ me.FormUtil.onAdd(null, 'ATP运算', 'jsps/pm/atp/ATPMain.jsp?formCondition=am_id=' + res.atpid + '&&gridCondition=ad_amid='+res.atpid+'&_noc=1'); } else { showError('无数据,运算失败');return; } } } }); } } }, 'dbfindtrigger[name=sd_batchcode]': { focus: function(t){ t.setHideTrigger(false); t.setReadOnly(false);//用disable()可以,但enable()无效 var record = Ext.getCmp('grid').selModel.getLastSelected(); var pr = record.data['sd_prodcode']; if(pr == null || pr == ''){ showError("请先选择料号!"); t.setHideTrigger(true); t.setReadOnly(true); } else { var id = record.data['sd_warehouseid']; if(id == null || id == ''){ id = Ext.getCmp('sd_warehouseid'); if(id == null || id == '' || id== 0 ){ showError("请先选择仓库!"); t.setHideTrigger(true); t.setReadOnly(true); } } else { t.dbBaseCondition = "ba_warehouseid='" + id + "' AND ba_prodcode='" + pr + "'"; } t.dbBaseCondition = "ba_prodcode='" + pr + "'"; } } }, 'erpOutScheduleButton': { click: function() { var grid = Ext.getCmp('grid'),record = grid.selModel.lastSelected; if(record) { me.schedule(record); } } }, 'erpCopyButton': { click: function(btn) { me.copy(); } }, 'erpEndButton': { afterrender: function(btn) { var status = Ext.getCmp('sa_statuscode'); if (status && status.value != 'AUDITED') { btn.hide(); } }, click: function(btn) { warnMsg("确定结案?", function(btn){ if(btn == 'yes'){ me.FormUtil.getActiveTab().setLoading(true);//loading... var grid = Ext.getCmp('grid'), jsonData=new Array(); grid.store.each(function(item){ if(item.get('sd_id') > 0) jsonData.push({sd_id: item.get('sd_id')}); }); Ext.Ajax.request({ url : basePath + 'scm/sale/endSale.action', params: { caller: caller, data: Ext.JSON.encode(jsonData) }, 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){ alert("结案成功!"); window.location.reload(); } } }); } }); } }, 'dbfindtrigger[name=sd_forecastdetno]': { focus: function(t){ t.setHideTrigger(false); t.setReadOnly(false); var record = Ext.getCmp('grid').selModel.lastSelected; var code = record.data['sd_forecastcode']; if(code == null || code == ''){ showError("请先选择预测单号!"); t.setHideTrigger(true); t.setReadOnly(true); } else { t.dbBaseCondition = "sf_code='" + code + "'"; } } }, /* 'field[name=sa_sellercode]' : {// 自动带事业部 aftertrigger: function(f, r) { var v = r.get('em_depart'); if(!Ext.isEmpty(v)) { var n = f.up('form').down('#sa_parentorname'); if (n && n.store.findRecord('value', v)) { n.setValue(v); } } } },*/ /** * 是否使用客户物料对照表 */ 'field[name=sa_statuscode]': { afterrender: function(f) { if('ENTERING' == f.getValue()) { me['UseCustomerProduct'] = me.getSetting('UseCustomerProduct'); } } }, /** * 将客户编号传入 */ 'dbfindtrigger[name=sd_prodcode]': { focus: function(t) { if(me.UseCustomerProduct) { t.setHideTrigger(false); t.setReadOnly(false); var cust = Ext.getCmp('sa_custcode').getValue(); if(cust != null && cust != '') { t.dbOrderby = "ORDER BY case when cp_custcode='" + cust + "' then 0 else 1 end,PR_CODE DESC"; } else { t.dbOrderby = null; } } } }, 'erpRefreshSyncButton': { afterrender: function(btn) { var form = btn.ownerCt.ownerCt, s = form.down('#sa_statuscode'), v = form.down('#sa_sync'); if (s.getValue() != 'AUDITED' || (v && v.getValue() == null)) { btn.hide(); } } }, 'erpConfirmAgreeButton':{//平台获取的销售订单确认接收 click:function(){ me.FormUtil.getActiveTab().setLoading(true);//loading... var id = Ext.getCmp("sa_id").value; Ext.Ajax.request({ url : basePath + 'scm/sale/confirmAgree.action', params: { caller: caller, sa_id : id }, 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){ showMessage('提示', '接收成功!', 1000); window.location.reload(); } } }); }, afterrender:function(btn){ var form = btn.ownerCt.ownerCt, s = form.down('#sa_statuscode'); if (s.getValue() != 'AUDITED') { btn.hide(); } } }, 'erpTurnB2CSaleOutButton':{ click:function(){ me.FormUtil.getActiveTab().setLoading(true);//loading... var id = Ext.getCmp("sa_id").value; Ext.Ajax.request({ url : basePath + 'scm/sale/turnB2CSaleOut.action', params: { caller: caller, sa_id : id }, method : 'post', timeout: 30000, 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){ if(localJson.log){ showMessage("提示", localJson.log); } } } }); }, afterrender:function(btn){ var form = btn.ownerCt.ownerCt, s = form.down('#sa_statuscode'); if (s.getValue() != 'AUDITED') { btn.hide(); } } } }); }, onGridItemClick: function(selModel, record){//grid行选择 if(!selModel.ownerCt.readOnly){ this.GridUtil.onGridItemClick(selModel, record); } }, getRecordByPrCode: function(){ if(this.gridLastSelected && this.gridLastSelected.findable){ var data = Ext.getCmp('grid').store.data.items[this.gridLastSelected.index].data; var code = data.pd_prodcode; if(code != null && code!= ''){//看用户输入了编号没有 var str = "sd_prodcode='" + code + "'"; this.GridUtil.getRecordByCode({caller: 'Sale', condition: str}); } } }, getForm: function(btn){ return btn.ownerCt.ownerCt; }, beforeSaveSale: function(){ var grid = Ext.getCmp('grid'); var cust = Ext.getCmp('sa_custid').value; if(cust == null || cust == '' || cust == '0' || cust == 0){ showError('未选择客户,或客户编号无效!'); return; } var items = grid.store.data.items; var bool = true, code = Ext.getCmp('sa_code').value; //数量不能为空或0 Ext.each(items, function(item){ if('sd_bodycost' in item.data && 'sd_flash' in item.data && 'sd_sisvel' in item.data) {// check if {key} in {Object} item.set('sd_bodycost',item.data['sd_price'] - item.data['sd_flash'] - item.data['sd_sisvel']); } if(!Ext.isEmpty(item.data['sd_prodcode'])){ item.set('sd_code', code); if(item.data['sd_qty'] == null || item.data['sd_qty'] == '' || item.data['sd_qty'] == '0' || item.data['sd_qty'] == 0){ bool = false; showError('明细表第' + item.data['sd_detno'] + '行的数量为空');return; } } }); //PMC回复日期不能小于当前日期 Ext.each(items, function(item){ if(!Ext.isEmpty(item.data['sd_prodcode'])){ if(Ext.isEmpty(item.data['sd_pmcdate'])){ item.set('sd_pmcdate', item.data['sd_delivery']); } // if(!Ext.isEmpty(item.data['sd_pmcdate'])){ // if(Ext.Date.format(item.data['sd_pmcdate'], 'Y-m-d') < Ext.Date.format(new Date(), 'Y-m-d')){ // bool = false; // showError('明细表第' + item.data['sd_detno'] + '行的PMC回复日期小于当前日期');return; // } // } } }); var cr = Ext.getCmp('sa_currency'); if(cr && cr.getValue() == 'RMB') { var record = grid.store.findRecord('sd_taxrate', 0); if (record) { } } //保存sale if(bool) this.FormUtil.beforeSave(this); }, beforeUpdate: function(){ var grid = Ext.getCmp('grid'); var cust = Ext.getCmp('sa_custid').value; var items = grid.store.data.items, sacode = Ext.getCmp('sa_code').value; var bool = true; if(cust == null || cust == '' || cust == '0' || cust == 0){ showError('未选择客户,或客户编号无效!'); return; } //数量不能为空或0 Ext.each(items, function(item){ if('sd_bodycost' in item.data && 'sd_flash' in item.data && 'sd_sisvel' in item.data) {// check if {key} in {Object} item.set('sd_bodycost',item.data['sd_price'] - item.data['sd_flash'] - item.data['sd_sisvel']); } if(!Ext.isEmpty(item.data['sd_prodcode'])){ item.set('sd_code', sacode); if(item.data['sd_qty'] == null || item.data['sd_qty'] == '' || item.data['sd_qty'] == '0' || item.data['sd_qty'] == 0){ bool = false; showError('明细表第' + item.data['sd_detno'] + '行的数量为空');return; } } }); /*//PMC回复日期不能小于当前日期 Ext.each(items, function(item){ if(!Ext.isEmpty(item.data['sd_prodcode'])){ if(Ext.isEmpty(item.data['sd_pmcdate'])){ item.set('sd_pmcdate', item.data['sd_delivery']); } if(!Ext.isEmpty(item.data['sd_pmcdate'])){ if(Ext.Date.format(item.data['sd_pmcdate'], 'Y-m-d') < Ext.Date.format(new Date(), 'Y-m-d')){ bool = false; showError('明细表第' + item.data['sd_detno'] + '行的PMC回复日期小于当前日期');return; } } } });*/ //保存 if(bool) this.FormUtil.onUpdate(this); }, getPmcWindow : function() { var me = this; return Ext.create('Ext.window.Window',{ width: 330, height: 180, closeAction: 'hide', cls: 'custom-blue', title:'