FormPanelController.js 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  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 ('期初余额','采购验收单','采购验退单') and sl_namount<>0"
  125. });
  126. }
  127. },
  128. 'dbfindtrigger[name=pd_bankname]':{
  129. beforerender: function (f) {
  130. Ext.apply(f, {
  131. dbfinds: [{
  132. from: 'id',
  133. to: 'pd_bankid',ignore:true
  134. }, {
  135. from: 'bk_bankcode',
  136. to: 'pd_bankcode'
  137. },{
  138. from: 'bk_bankname',
  139. to: 'pd_bankname'
  140. }],
  141. });
  142. }
  143. }
  144. });
  145. },
  146. addCombo:function(){
  147. var combo=this.ownerCmp;
  148. Ext.create('Ext.window.Window',{
  149. layout:'vbox',
  150. bodyPadding: 15,
  151. width:500,
  152. items:[{
  153. fieldLabel:'实际值',
  154. xtype:'textfield'
  155. },{
  156. fieldLabel:'显示值',
  157. xtype:'textfield'
  158. }],
  159. buttons:[{
  160. text:'确认',
  161. handler:function(b){
  162. combo.setValue('ok');
  163. b.up('window').close();
  164. }
  165. }],
  166. renderTo:this.ownerCmp.ownerCt.getEl()
  167. }).show();
  168. },
  169. turnIn: function() {
  170. var me = this,
  171. form = me.getView(),
  172. id = form.getForm().findField(form._idField);
  173. saas.util.BaseUtil.request({
  174. url: form._turnInUrl+id.value,
  175. method: 'GET',
  176. })
  177. .then(function(localJson) {
  178. if(localJson.success){
  179. saas.util.BaseUtil.showSuccessToast('转单成功');
  180. }
  181. })
  182. .catch(function(res) {
  183. console.error(res);
  184. saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
  185. });
  186. },
  187. onSave: function() {
  188. var me = this,
  189. form = me.getView(),
  190. viewModel = me.getViewModel(),
  191. store1 = viewModel.get('detail0').detailStore,
  192. store2 = viewModel.get('detail1').detailStore;
  193. var valid = form.isValid();
  194. if(!valid) {
  195. saas.util.BaseUtil.showErrorToast(form.invalidText);
  196. return false;
  197. }
  198. var sum_pd_amount = store1.sum('pd_amount'); // 付款金额合计
  199. var pb_discounts = viewModel.get('pb_discounts'); // 折扣金额
  200. var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计
  201. var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance;
  202. viewModel.set("pb_preamount",flag);
  203. if(flag != 0) {
  204. var t = flag > 0 ? '大' : '小';
  205. saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次核销金额,是否仍要保存?')
  206. .then(function(y) {
  207. if(y == 'yes') {
  208. me.save();
  209. }
  210. });
  211. }else {
  212. me.save();
  213. }
  214. },
  215. vendnamechange:function(dbfindtrigger){
  216. var me = this,
  217. viewModel = me.getViewModel();
  218. var c = viewModel.get('pb_vendname_change');
  219. if(c!=null&&c!=''){
  220. c = ' and sl_vendid='+c;
  221. }else{
  222. c ='';
  223. }
  224. dbfindtrigger.defaultCondition = "sl_vendid<>0 and sl_kind in ('期初余额','采购验收单','采购验退单') and sl_namount<>0" + c;
  225. },
  226. myInitCopyData: function(formData) {
  227. var main = formData.main;
  228. main.pb_auditman = '';
  229. main.pb_auditdate = null;
  230. return formData;
  231. }
  232. });