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, {
dbColumns:[{
text: "供应商ID",
hidden: true,
dataIndex: "id",
xtype: "numbercolumn"
},{
text: "供应商编号",
dataIndex: "ve_code",
width: 150
}, {
text: "供应商名称",
dataIndex: "ve_name",
width: 200
}, {
text: "供应商类型",
dataIndex: "ve_type",
width: 110,
}, {
text: "税率(%)",
dataIndex: "ve_taxrate",
width: 80,
xtype: 'numbercolumn',
align:'end',
renderer : function(v, m, r) {
return saas.util.BaseUtil.numberFormat(v, 2, false);
}
}, {
text: "应付款余额",
dataIndex: "ve_leftamount",
width:110,
xtype: 'numbercolumn',
renderer : function(v, m, r) {
return saas.util.BaseUtil.numberFormat(v, 2, true);
}
},{
text: "结算天数",
dataIndex: "ve_promisedays",
width: 110,
xtype: 'numbercolumn',
align: 'end',
renderer : function(v, m, r) {
return Ext.util.Format.number(v, '0');
}
}, {
text: "纳税人识别号",
dataIndex: "ve_nsrzh",
width: 150
}, {
text: "开户银行",
dataIndex: "ve_bankcode",
width: 150
}, {
text: "银行账户",
dataIndex: "ve_bankaccount",
width: 200
}],
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
}],
});
}
},
// 来源单号
'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');
if(!pb_vendname) {
saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】');
return false;
}
},
beforetriggerclick: function(f) {
var me = this,
viewModel = me.getViewModel(),
pb_vendname = viewModel.get('pb_vendname');
if(!pb_vendname) {
saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】');
return false;
}
}
},
// 资金账户
'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');
if(!rb_custname) {
saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】');
return false;
}
},
beforetriggerclick: function(f) {
var me = this,
viewModel = me.getViewModel(),
rb_custname = viewModel.get('pb_vendname');
if(!rb_custname) {
saas.util.BaseUtil.showErrorToast('请先选择【' + '供应商名称】');
return false;
}
}
}
});
},
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();
var c = viewModel.get('pb_vendname_change');
if(c!=null&&c!=''){
c = ' and sl_vendid='+c;
}else{
c ='';
}
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);
},
});