FormPanelController.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. Ext.define('saas.view.money.payBalance.FormPanelController', {
  2. extend: 'saas.view.core.form.FormPanelController',
  3. alias: 'controller.money-paybalance-formpanel',
  4. init: function (form) {
  5. var me = this;
  6. this.control({
  7. // 供应商名称
  8. 'dbfindtrigger[name=pb_vendname]':{
  9. beforerender: function (f) {
  10. Ext.apply(f, {
  11. dbfinds: [{
  12. from: 've_code',
  13. to: 'pb_vendcode'
  14. }, {
  15. from: 've_name',
  16. to: 'pb_vendname'
  17. },{
  18. from: 've_leftamount',
  19. to: 've_leftamount'
  20. },{
  21. from: 'id',
  22. to: 'pb_vendid',
  23. ignore:true
  24. },{
  25. from:'ve_currency',to:'pb_currency'
  26. },{
  27. from:'cr_rate',to:'pb_rate'
  28. }],
  29. });
  30. }
  31. },
  32. // 来源单号
  33. 'oriOrderMutiDbfindTrigger[name=pbd_slcode]': {
  34. beforerender: function (f) {
  35. Ext.apply(f, {
  36. dbfinds: [{
  37. from: 'id',
  38. to: 'pbd_slid'
  39. }, {
  40. from: 'sl_code',
  41. to: 'pbd_slcode'
  42. },{
  43. from: 'sl_orderamount',
  44. to: 'pbd_amount'
  45. },{
  46. from: 'sl_yamount',
  47. to: 'sl_yamount'
  48. },{
  49. from: 'sl_namount',
  50. to: 'sl_namount'
  51. },{
  52. from:'sl_date',
  53. to:'pbd_sldate'
  54. },{
  55. from:'sl_kind',
  56. to:'pbd_slkind'
  57. },{
  58. from:'sl_namount',
  59. to:'pbd_nowbalance'
  60. }],
  61. defaultCondition: "sl_vendid<>0 and ((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+
  62. "(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0"
  63. });
  64. },
  65. beforequery: function(f) {
  66. var me = this,
  67. viewModel = me.getViewModel(),
  68. pb_vendname = viewModel.get('pb_vendname'),
  69. pb_currency = viewModel.get('pb_currency'),
  70. pb_vendid = viewModel.get('pb_vendid');
  71. if(!pb_vendname) {
  72. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">供应商名称</span>】');
  73. return false;
  74. }
  75. if(!pb_currency) {
  76. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">币别</span>】');
  77. return false;
  78. }
  79. Ext.apply(f, {
  80. 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) ) "+
  81. ") and sl_namount<>0 "
  82. });
  83. },
  84. beforetriggerclick: function(f) {
  85. var me = this,
  86. viewModel = me.getViewModel(),
  87. pb_vendname = viewModel.get('pb_vendname'),
  88. pb_currency = viewModel.get('pb_currency'),
  89. pb_vendid = viewModel.get('pb_vendid');
  90. if(!pb_vendname) {
  91. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">供应商名称</span>】');
  92. return false;
  93. }
  94. if(!pb_currency) {
  95. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">币别</span>】');
  96. return false;
  97. }
  98. Ext.apply(f, {
  99. 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) ) "+
  100. ") and sl_namount<>0 "
  101. });
  102. }
  103. },
  104. // 资金账户
  105. 'dbfindtrigger[name=pd_bankname]':{
  106. beforerender: function (f) {
  107. Ext.apply(f, {
  108. dbfinds: [{
  109. from: 'id',
  110. to: 'pd_bankid',ignore:true
  111. }, {
  112. from: 'bk_bankcode',
  113. to: 'pd_bankcode'
  114. },{
  115. from: 'bk_bankname',
  116. to: 'pd_bankname'
  117. }],
  118. });
  119. },
  120. beforequery: function(f) {
  121. var me = this,
  122. viewModel = me.getViewModel(),
  123. rb_custname = viewModel.get('pb_vendname'),
  124. pb_currency = viewModel.get('pb_currency');
  125. if(!rb_custname) {
  126. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">供应商名称</span>】');
  127. return false;
  128. }
  129. if(!pb_currency) {
  130. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">币别</span>】');
  131. return false;
  132. }
  133. Ext.apply(f, {
  134. defaultCondition: "bk_currency ='"+rb_currency+"'"
  135. });
  136. },
  137. beforetriggerclick: function(f) {
  138. var me = this,
  139. viewModel = me.getViewModel(),
  140. rb_custname = viewModel.get('pb_vendname'),
  141. pb_currency = viewModel.get('pb_currency');
  142. if(!rb_custname) {
  143. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">供应商名称</span>】');
  144. return false;
  145. }
  146. if(!pb_currency) {
  147. saas.util.BaseUtil.showErrorToast('请先选择【' + '<span style="color: red;">币别</span>】');
  148. return false;
  149. }
  150. Ext.apply(f, {
  151. defaultCondition: "bk_currency ='"+rb_currency+"'"
  152. });
  153. }
  154. }
  155. });
  156. },
  157. addCombo:function(){
  158. var combo=this.ownerCmp;
  159. Ext.create('Ext.window.Window',{
  160. layout:'vbox',
  161. bodyPadding: 15,
  162. width:500,
  163. items:[{
  164. fieldLabel:'实际值',
  165. xtype:'textfield'
  166. },{
  167. fieldLabel:'显示值',
  168. xtype:'textfield'
  169. }],
  170. buttons:[{
  171. text:'确认',
  172. handler:function(b){
  173. combo.setValue('ok');
  174. b.up('window').close();
  175. }
  176. }],
  177. renderTo:this.ownerCmp.ownerCt.getEl()
  178. }).show();
  179. },
  180. turnIn: function() {
  181. var me = this,
  182. form = me.getView(),
  183. id = form.getForm().findField(form._idField);
  184. form.setLoading(true);
  185. saas.util.BaseUtil.request({
  186. url: form._turnInUrl+id.value,
  187. method: 'GET',
  188. })
  189. .then(function(localJson) {
  190. form.setLoading(false);
  191. if(localJson.success){
  192. saas.util.BaseUtil.showSuccessToast('转单成功');
  193. }
  194. })
  195. .catch(function(e) {
  196. form.setLoading(false);
  197. saas.util.BaseUtil.showErrorToast('转单失败: ' + e.message);
  198. });
  199. },
  200. onSave: function() {
  201. var me = this,
  202. form = me.getView(),
  203. viewModel = me.getViewModel(),
  204. store1 = viewModel.get('detail0').detailStore,
  205. store2 = viewModel.get('detail1').detailStore;
  206. var valid = form.isValid();
  207. if(!valid) {
  208. saas.util.BaseUtil.showErrorToast(form.invalidText);
  209. return false;
  210. }
  211. var sum_pd_amount = store1.sum('pd_amount'); // 付款金额合计
  212. var pb_discounts = viewModel.get('pb_discounts'); // 折扣金额
  213. var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计
  214. var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance;
  215. viewModel.set("pb_pbdamount",sum_pbd_nowbalance);
  216. viewModel.set("pb_pdamount",sum_pd_amount);
  217. viewModel.set("pb_preamount",flag);
  218. if(flag != 0) {
  219. var t = flag > 0 ? '大' : '小';
  220. saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次核销金额,是否仍要保存?')
  221. .then(function(y) {
  222. if(y == 'yes') {
  223. me.save();
  224. }
  225. });
  226. }else {
  227. me.save();
  228. }
  229. },
  230. vendnamechange:function(dbfindtrigger){
  231. var me = this,
  232. viewModel = me.getViewModel(),
  233. c = viewModel.get('pb_vendname_change'),
  234. pb_currency = viewModel.get('pb_currency');
  235. if(c!=null&&c!=''){
  236. c = ' and sl_vendid='+c;
  237. }else{
  238. c ='';
  239. }
  240. if(pb_currency!=null&&pb_currency!='') {
  241. c = ' and sl_currency='+pb_currency+"'";
  242. }
  243. dbfindtrigger.defaultCondition="((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+
  244. "(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0" + c
  245. },
  246. myInitCopyData: function(formData) {
  247. var main = formData.main;
  248. main.pb_auditman = '';
  249. main.pb_auditdate = null;
  250. return formData;
  251. },
  252. /**
  253. * 清空所有从表数据
  254. */
  255. clearDetails: function() {
  256. var me = this;
  257. me.clearDetail0();
  258. me.clearDetail1();
  259. },
  260. /**
  261. * 清空第一个从表数据
  262. */
  263. clearDetail0: function(f, n, o) {
  264. var me = this,
  265. form = me.getView(),
  266. grid = form.query('detailGridField')[0];
  267. me.clearDetail(grid);
  268. },
  269. /**
  270. * 清空第二个从表数据
  271. */
  272. clearDetail1: function() {
  273. var me = this,
  274. form = me.getView(),
  275. grid = form.query('detailGridField')[1];
  276. me.clearDetail(grid);
  277. },
  278. /**
  279. * 清空一个从表数据
  280. */
  281. clearDetail: function(grid) {
  282. var datas = [],
  283. emptyRows = grid.emptyRows,
  284. detnoColumn = grid.detnoColumn,
  285. detno = 0,
  286. store = grid.getStore();
  287. Ext.Array.each(new Array(emptyRows), function() {
  288. detno += 1;
  289. var data = {};
  290. data[detnoColumn] = detno;
  291. datas.push(data);
  292. })
  293. store.removeAll();
  294. store.add(datas);
  295. },
  296. });