FormPanelController.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  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. dbColumns:[{
  12. text: "供应商ID",
  13. hidden: true,
  14. dataIndex: "id",
  15. xtype: "numbercolumn"
  16. },{
  17. text: "供应商编号",
  18. dataIndex: "ve_code",
  19. width: 150
  20. }, {
  21. text: "供应商名称",
  22. dataIndex: "ve_name",
  23. width: 200
  24. }, {
  25. text: "供应商类型",
  26. dataIndex: "ve_type",
  27. width: 110,
  28. }, {
  29. text: "税率",
  30. dataIndex: "ve_taxrate",
  31. width: 80,
  32. xtype: 'numbercolumn',
  33. align:'end',
  34. renderer : function(v) {
  35. if(!v) {
  36. return 0;
  37. }
  38. var arr = (v + '.').split('.');
  39. var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
  40. var format = '0.' + xr.join();
  41. return Ext.util.Format.number(v, format);
  42. }
  43. }, {
  44. text: "应付款余额",
  45. dataIndex: "ve_leftamount",
  46. width:110,
  47. xtype: 'numbercolumn',
  48. renderer : function(v) {
  49. if(!v) {
  50. return 0;
  51. }
  52. var arr = (v + '.').split('.');
  53. var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
  54. var format = '0.' + xr.join();
  55. return Ext.util.Format.number(v, format);
  56. }
  57. },{
  58. text: "结算天数",
  59. dataIndex: "ve_promisedays",
  60. width: 110,
  61. xtype: 'numbercolumn',
  62. align: 'end',
  63. renderer : function(v) {
  64. return Ext.util.Format.number(v, '0');
  65. }
  66. }, {
  67. text: "纳税人识别号",
  68. dataIndex: "ve_nsrzh",
  69. width: 150
  70. }, {
  71. text: "开户银行",
  72. dataIndex: "ve_bankcode",
  73. width: 150
  74. }, {
  75. text: "银行账户",
  76. dataIndex: "ve_bankaccount",
  77. width: 200
  78. }],
  79. dbfinds: [{
  80. from: 've_code',
  81. to: 'pb_vendcode'
  82. }, {
  83. from: 've_name',
  84. to: 'pb_vendname'
  85. },{
  86. from: 've_leftamount',
  87. to: 've_leftamount'
  88. },{
  89. from: 'id',
  90. to: 'pb_vendid',
  91. ignore:true
  92. }],
  93. });
  94. }
  95. },
  96. 'oriOrderMutiDbfindTrigger[name=pbd_slcode]': {
  97. beforerender: function (f) {
  98. Ext.apply(f, {
  99. dbfinds: [{
  100. from: 'id',
  101. to: 'pbd_slid'
  102. }, {
  103. from: 'sl_code',
  104. to: 'pbd_slcode'
  105. },{
  106. from: 'sl_orderamount',
  107. to: 'pbd_amount'
  108. },{
  109. from: 'sl_yamount',
  110. to: 'sl_yamount'
  111. },{
  112. from: 'sl_namount',
  113. to: 'sl_namount'
  114. },{
  115. from:'sl_date',
  116. to:'pbd_sldate'
  117. },{
  118. from:'sl_kind',
  119. to:'pbd_slkind'
  120. },{
  121. from:'sl_namount',
  122. to:'pbd_nowbalance'
  123. }],
  124. defaultCondition: "sl_vendid<>0 and ((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+
  125. "'(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0'"
  126. });
  127. }
  128. },
  129. 'dbfindtrigger[name=pd_bankname]':{
  130. beforerender: function (f) {
  131. Ext.apply(f, {
  132. dbfinds: [{
  133. from: 'id',
  134. to: 'pd_bankid',ignore:true
  135. }, {
  136. from: 'bk_bankcode',
  137. to: 'pd_bankcode'
  138. },{
  139. from: 'bk_bankname',
  140. to: 'pd_bankname'
  141. }],
  142. });
  143. }
  144. }
  145. });
  146. },
  147. addCombo:function(){
  148. var combo=this.ownerCmp;
  149. Ext.create('Ext.window.Window',{
  150. layout:'vbox',
  151. bodyPadding: 15,
  152. width:500,
  153. items:[{
  154. fieldLabel:'实际值',
  155. xtype:'textfield'
  156. },{
  157. fieldLabel:'显示值',
  158. xtype:'textfield'
  159. }],
  160. buttons:[{
  161. text:'确认',
  162. handler:function(b){
  163. combo.setValue('ok');
  164. b.up('window').close();
  165. }
  166. }],
  167. renderTo:this.ownerCmp.ownerCt.getEl()
  168. }).show();
  169. },
  170. turnIn: function() {
  171. var me = this,
  172. form = me.getView(),
  173. id = form.getForm().findField(form._idField);
  174. form.setLoading(true);
  175. saas.util.BaseUtil.request({
  176. url: form._turnInUrl+id.value,
  177. method: 'GET',
  178. })
  179. .then(function(localJson) {
  180. form.setLoading(false);
  181. if(localJson.success){
  182. saas.util.BaseUtil.showSuccessToast('转单成功');
  183. }
  184. })
  185. .catch(function(res) {
  186. form.setLoading(false);
  187. console.error(res);
  188. saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
  189. });
  190. },
  191. onSave: function() {
  192. var me = this,
  193. form = me.getView(),
  194. viewModel = me.getViewModel(),
  195. store1 = viewModel.get('detail0').detailStore,
  196. store2 = viewModel.get('detail1').detailStore;
  197. var valid = form.isValid();
  198. if(!valid) {
  199. saas.util.BaseUtil.showErrorToast(form.invalidText);
  200. return false;
  201. }
  202. var sum_pd_amount = store1.sum('pd_amount'); // 付款金额合计
  203. var pb_discounts = viewModel.get('pb_discounts'); // 折扣金额
  204. var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计
  205. var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance;
  206. viewModel.set("pb_preamount",flag);
  207. if(flag != 0) {
  208. var t = flag > 0 ? '大' : '小';
  209. saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次核销金额,是否仍要保存?')
  210. .then(function(y) {
  211. if(y == 'yes') {
  212. me.save();
  213. }
  214. });
  215. }else {
  216. me.save();
  217. }
  218. },
  219. vendnamechange:function(dbfindtrigger){
  220. var me = this,
  221. viewModel = me.getViewModel();
  222. var c = viewModel.get('pb_vendname_change');
  223. if(c!=null&&c!=''){
  224. c = ' and sl_vendid='+c;
  225. }else{
  226. c ='';
  227. }
  228. dbfindtrigger.defaultCondition="((sl_kind in ('采购验收单','采购验退单')) or (sl_kind='期初余额' and sl_ym="+
  229. "(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0" + c
  230. },
  231. myInitCopyData: function(formData) {
  232. var main = formData.main;
  233. main.pb_auditman = '';
  234. main.pb_auditdate = null;
  235. return formData;
  236. }
  237. });