Ext.define('saas.view.money.payBalance.FormPanelController', { extend: 'saas.view.core.form.FormPanelController', alias: 'controller.money-paybalance-formpanel', init: function (form) { var me = this; this.control({ // 供应商名称 'dbfindtrigger[name=pb_vendname]':{ beforerender: function (f) { Ext.apply(f, { dbfinds: [{ from: 've_code', to: 'pb_vendcode' }, { from: 've_name', to: 'pb_vendname' },{ from: 've_leftamount', to: 've_leftamount' },{ from: 'id', to: 'pb_vendid', ignore:true },{ from:'ve_currency',to:'pb_currency' },{ from:'cr_rate',to:'pb_rate' }], }); } }, // 来源单号 'oriOrderMutiDbfindTrigger[name=pbd_slcode]': { beforerender: function (f) { Ext.apply(f, { dbfinds: [{ from: 'id', to: 'pbd_slid' }, { from: 'sl_code', to: 'pbd_slcode' },{ from: 'sl_orderamount', to: 'pbd_amount' },{ from: 'sl_yamount', to: 'sl_yamount' },{ from: 'sl_namount', to: 'sl_namount' },{ from:'sl_date', to:'pbd_sldate' },{ from:'sl_kind', to:'pbd_slkind' },{ from:'sl_namount', to:'pbd_nowbalance' }], defaultCondition: "sl_vendid<>0 and ((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+ "(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0" }); }, beforequery: function(f) { var me = this, viewModel = me.getViewModel(), pb_vendname = viewModel.get('pb_vendname'), pb_currency = viewModel.get('pb_currency'), pb_vendid = viewModel.get('pb_vendid'); if(!pb_vendname) { saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】'); return false; } if(!pb_currency) { saas.util.BaseUtil.showErrorToast('请先选择【' + '币别】'); return false; } Ext.apply(f, { defaultCondition: "sl_vendid = "+pb_vendid+" and sl_currency ='"+rb_currency+"' AND sl_custid <> 0 AND ( sl_kind IN ( '出货单', '销售退货单' ) OR ( sl_kind = '期初余额' AND sl_ym = (select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) ) "+ ") and sl_namount<>0 " }); }, beforetriggerclick: function(f) { var me = this, viewModel = me.getViewModel(), pb_vendname = viewModel.get('pb_vendname'), pb_currency = viewModel.get('pb_currency'), pb_vendid = viewModel.get('pb_vendid'); if(!pb_vendname) { saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】'); return false; } if(!pb_currency) { saas.util.BaseUtil.showErrorToast('请先选择【' + '币别】'); return false; } Ext.apply(f, { defaultCondition: "sl_vendid = "+pb_vendid+" and sl_currency ='"+rb_currency+"' AND sl_custid <> 0 AND ( sl_kind IN ( '出货单', '销售退货单' ) OR ( sl_kind = '期初余额' AND sl_ym = (select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) ) "+ ") and sl_namount<>0 " }); } }, // 资金账户 'dbfindtrigger[name=pd_bankname]':{ beforerender: function (f) { Ext.apply(f, { dbfinds: [{ from: 'id', to: 'pd_bankid',ignore:true }, { from: 'bk_bankcode', to: 'pd_bankcode' },{ from: 'bk_bankname', to: 'pd_bankname' }], }); }, beforequery: function(f) { var me = this, viewModel = me.getViewModel(), rb_custname = viewModel.get('pb_vendname'), pb_currency = viewModel.get('pb_currency'); if(!rb_custname) { saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】'); return false; } if(!pb_currency) { saas.util.BaseUtil.showErrorToast('请先选择【' + '币别】'); return false; } Ext.apply(f, { defaultCondition: "bk_currency ='"+rb_currency+"'" }); }, beforetriggerclick: function(f) { var me = this, viewModel = me.getViewModel(), rb_custname = viewModel.get('pb_vendname'), pb_currency = viewModel.get('pb_currency'); if(!rb_custname) { saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】'); return false; } if(!pb_currency) { saas.util.BaseUtil.showErrorToast('请先选择【' + '币别】'); return false; } Ext.apply(f, { defaultCondition: "bk_currency ='"+rb_currency+"'" }); } } }); }, addCombo:function(){ var combo=this.ownerCmp; Ext.create('Ext.window.Window',{ layout:'vbox', bodyPadding: 15, width:500, items:[{ fieldLabel:'实际值', xtype:'textfield' },{ fieldLabel:'显示值', xtype:'textfield' }], buttons:[{ text:'确认', handler:function(b){ combo.setValue('ok'); b.up('window').close(); } }], renderTo:this.ownerCmp.ownerCt.getEl() }).show(); }, turnIn: function() { var me = this, form = me.getView(), id = form.getForm().findField(form._idField); form.setLoading(true); saas.util.BaseUtil.request({ url: form._turnInUrl+id.value, method: 'GET', }) .then(function(localJson) { form.setLoading(false); if(localJson.success){ saas.util.BaseUtil.showSuccessToast('转单成功'); } }) .catch(function(e) { form.setLoading(false); saas.util.BaseUtil.showErrorToast('转单失败: ' + e.message); }); }, onSave: function() { var me = this, form = me.getView(), viewModel = me.getViewModel(), store1 = viewModel.get('detail0').detailStore, store2 = viewModel.get('detail1').detailStore; var valid = form.isValid(); if(!valid) { saas.util.BaseUtil.showErrorToast(form.invalidText); return false; } var sum_pd_amount = store1.sum('pd_amount'); // 付款金额合计 var pb_discounts = viewModel.get('pb_discounts'); // 折扣金额 var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计 var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance; viewModel.set("pb_pbdamount",sum_pbd_nowbalance); viewModel.set("pb_pdamount",sum_pd_amount); viewModel.set("pb_preamount",flag); if(flag != 0) { var t = flag > 0 ? '大' : '小'; saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次核销金额,是否仍要保存?') .then(function(y) { if(y == 'yes') { me.save(); } }); }else { me.save(); } }, vendnamechange:function(dbfindtrigger){ var me = this, viewModel = me.getViewModel(), c = viewModel.get('pb_vendname_change'), pb_currency = viewModel.get('pb_currency'); if(c!=null&&c!=''){ c = ' and sl_vendid='+c; }else{ c =''; } if(pb_currency!=null&&pb_currency!='') { c = ' and sl_currency='+pb_currency+"'"; } dbfindtrigger.defaultCondition="((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+ "(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0" + c }, myInitCopyData: function(formData) { var main = formData.main; main.pb_auditman = ''; main.pb_auditdate = null; return formData; }, /** * 清空所有从表数据 */ clearDetails: function() { var me = this; me.clearDetail0(); me.clearDetail1(); }, /** * 清空第一个从表数据 */ clearDetail0: function(f, n, o) { var me = this, form = me.getView(), grid = form.query('detailGridField')[0]; me.clearDetail(grid); }, /** * 清空第二个从表数据 */ clearDetail1: function() { var me = this, form = me.getView(), grid = form.query('detailGridField')[1]; me.clearDetail(grid); }, /** * 清空一个从表数据 */ clearDetail: function(grid) { var datas = [], emptyRows = grid.emptyRows, detnoColumn = grid.detnoColumn, detno = 0, store = grid.getStore(); Ext.Array.each(new Array(emptyRows), function() { detno += 1; var data = {}; data[detnoColumn] = detno; datas.push(data); }) store.removeAll(); store.add(datas); }, });