FormPanelController.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. Ext.define('saas.view.money.recBalance.FormPanelController', {
  2. extend: 'saas.view.core.form.FormPanelController',
  3. alias: 'controller.money-recbalance-formpanel',
  4. init: function (form) {
  5. var me = this;
  6. this.control({
  7. // 客户名称
  8. 'dbfindtrigger[name=rb_custname]':{
  9. beforerender:function(f){
  10. Ext.apply(f,{
  11. dbColumns: [{
  12. conditionCode: 'id',
  13. text: "客户ID",
  14. dataIndex: "id",
  15. hidden:true,
  16. xtype: "",
  17. }, {
  18. conditionCode: 'cu_code',
  19. text: "客户编号",
  20. dataIndex: "cu_code",
  21. width: 150,
  22. xtype: "",
  23. }, {
  24. conditionCode: 'cu_name',
  25. text: "客户名称",
  26. dataIndex: "cu_name",
  27. width: 200,
  28. xtype: "",
  29. }, {
  30. conditionCode: 'cu_type',
  31. text: "客户类型",
  32. dataIndex: "cu_type",
  33. width: 110,
  34. xtype: "",
  35. }, {
  36. text: "业务员编号",
  37. dataIndex: "cu_sellercode",
  38. width:110
  39. }, {
  40. text: "业务员",
  41. dataIndex: "cu_sellername",
  42. width:110
  43. }, {
  44. text: "税率",
  45. dataIndex: "cu_taxrate",
  46. xtype: 'numbercolumn',
  47. width:80,
  48. renderer: function (v) {
  49. return Ext.util.Format.number(v, '0');
  50. }
  51. },{
  52. text: "应收款余额",
  53. dataIndex: "cu_leftamount",
  54. width:110,
  55. xtype: 'numbercolumn',
  56. renderer : function(v) {
  57. if(!v) {
  58. return 0;
  59. }
  60. var arr = (v + '.').split('.');
  61. var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
  62. var format = '0.' + xr.join('');
  63. return Ext.util.Format.number(v, format);
  64. }
  65. }, {
  66. text: "结算天数",
  67. dataIndex: "cu_promisedays",
  68. width:110,
  69. xtype: 'numbercolumn',
  70. renderer: function (v) {
  71. return Ext.util.Format.number(v, '0');
  72. }
  73. }, {
  74. text: "额度",
  75. dataIndex: "cu_credit",
  76. width:110,
  77. xtype: 'numbercolumn',
  78. }, {
  79. text: "客户地址",
  80. dataIndex: "ca_address",
  81. width: 250
  82. }],
  83. //赋值
  84. dbfinds:[{
  85. from: 'id', to: 'rb_custid',ignore:true
  86. }, {
  87. from:'cu_code', to:'rb_custcode'
  88. },{
  89. from:'cu_name', to:'rb_custname'
  90. },{
  91. from:'cu_leftamount', to:'cu_leftamount'
  92. }],
  93. }) ;
  94. }
  95. },
  96. // 资金账户
  97. 'dbfindtrigger[name=rd_bankname]':{
  98. beforerender:function(f){
  99. Ext.apply(f,{
  100. //赋值
  101. dbfinds:[{
  102. from: 'id', to: 'rd_bankid',ignore:true
  103. }, {
  104. from:'bk_bankcode', to:'rd_bankcode'
  105. },{
  106. from:'bk_bankname', to:'rd_bankname'
  107. }],
  108. }) ;
  109. },
  110. beforequery: function(f) {
  111. var me = this,
  112. viewModel = me.getViewModel(),
  113. rb_custname = viewModel.get('rb_custname');
  114. if(!rb_custname) {
  115. saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
  116. return false;
  117. }
  118. },
  119. beforetriggerclick: function(f) {
  120. var me = this,
  121. viewModel = me.getViewModel(),
  122. rb_custname = viewModel.get('rb_custname');
  123. if(!rb_custname) {
  124. saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
  125. return false;
  126. }
  127. }
  128. },
  129. // 来源单号
  130. 'oriOrderMutiDbfindTrigger[name=rbd_slcode]': {
  131. beforerender: function (f) {
  132. Ext.apply(f, {
  133. dbfinds: [{
  134. from: 'id',
  135. to: 'rbd_slid',ignore:true
  136. }, {
  137. from: 'sl_code',
  138. to: 'rbd_slcode'
  139. },{
  140. from: 'sl_orderamount',
  141. to: 'rbd_amount'
  142. },{
  143. from: 'sl_yamount',
  144. to: 'sl_yamount'
  145. },{
  146. from: 'sl_namount',
  147. to: 'sl_namount'
  148. },{
  149. from:'sl_date',
  150. to:'rbd_sldate'
  151. },{
  152. from:'sl_kind',
  153. to:'rbd_slkind'
  154. },{
  155. from: 'sl_namount',
  156. to: 'rbd_nowbalance'
  157. }],
  158. defaultCondition: "sl_custid<>0 and ((sl_kind in ('出货单','销售退货单')) or (sl_kind='期初余额' and sl_ym="+
  159. "'(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0'"
  160. });
  161. },
  162. beforequery: function(f) {
  163. var me = this,
  164. viewModel = me.getViewModel(),
  165. rb_custname = viewModel.get('rb_custname');
  166. if(!rb_custname) {
  167. saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
  168. return false;
  169. }
  170. },
  171. beforetriggerclick: function(f) {
  172. var me = this,
  173. viewModel = me.getViewModel(),
  174. rb_custname = viewModel.get('rb_custname');
  175. if(!rb_custname) {
  176. saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">客户名称</span>】');
  177. return false;
  178. }
  179. }
  180. },
  181. });
  182. },
  183. turnIn: function() {
  184. var me = this,
  185. form = me.getView(),
  186. id = form.getForm().findField(form._idField);
  187. form.setLoading(true);
  188. saas.util.BaseUtil.request({
  189. url: form._turnInUrl+id.value,
  190. method: 'GET',
  191. })
  192. .then(function(localJson) {
  193. form.setLoading(false);
  194. if(localJson.success){
  195. saas.util.BaseUtil.showSuccessToast('转单成功');
  196. }
  197. })
  198. .catch(function(res) {
  199. form.setLoading(false);
  200. console.error(res);
  201. saas.util.BaseUtil.showErrorToast('转单失败: ' + res.message);
  202. });
  203. },
  204. onSave: function() {
  205. var me = this,
  206. form = me.getView(),
  207. viewModel = me.getViewModel(),
  208. store1 = viewModel.get('detail0').detailStore,
  209. store2 = viewModel.get('detail1').detailStore;
  210. var valid = form.isValid();
  211. if(!valid) {
  212. saas.util.BaseUtil.showErrorToast(form.invalidText);
  213. return false;
  214. }
  215. var sum_rd_amount = store1.sum('rd_amount'); // 付款金额合计
  216. var rb_discounts = viewModel.get('rb_discounts'); // 折扣金额
  217. var sum_rbd_nowbalance = store2.sum('rbd_nowbalance'); // 本次核销金额合计
  218. var flag = sum_rd_amount + rb_discounts - sum_rbd_nowbalance;
  219. viewModel.set("rb_rbdamount",sum_rbd_nowbalance);
  220. viewModel.set("rb_rdamount",sum_rd_amount);
  221. viewModel.set("rb_preamount",sum_rd_amount-sum_rbd_nowbalance);
  222. viewModel.set("rb_preamount",flag);
  223. if(flag != 0) {
  224. var t = flag > 0 ? '大' : '小';
  225. saas.util.BaseUtil.showConfirm('提示', '收款金额' + t + '于本次核销金额,是否仍要保存?')
  226. .then(function(y) {
  227. if(y == 'yes') {
  228. me.save();
  229. }
  230. });
  231. }else {
  232. me.save();
  233. }
  234. },
  235. custnamechange:function(dbfindtrigger){
  236. var me = this,
  237. viewModel = me.getViewModel();
  238. var c = viewModel.get('rb_custname_change');
  239. if(c!=null&&c!=''){
  240. c = ' and sl_custid='+c;
  241. }else{
  242. c ='';
  243. }
  244. dbfindtrigger.defaultCondition="((sl_kind in ('出货单','销售退货单')) or (sl_kind='期初余额' and sl_ym="+
  245. "(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid))) and sl_namount<>0 " + c
  246. },
  247. myInitCopyData: function(formData) {
  248. var main = formData.main;
  249. main.rb_auditman = '';
  250. main.rb_auditdate = null;
  251. return formData;
  252. }
  253. });