FormPanelController.js 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. Ext.define('saas.view.money.verification.FormPanelController', {
  2. extend: 'saas.view.core.form.FormPanelController',
  3. alias: 'controller.money-verification-formpanel',
  4. init: function (form) {
  5. var me = this;
  6. this.control({
  7. // 客户
  8. 'dbfindtrigger[name=vc_custname]':{
  9. beforerender:function(f){
  10. Ext.apply(f,{
  11. //赋值
  12. dbfinds:[{
  13. from: 'id', to: 'vc_custid',ignore:true
  14. }, {
  15. from:'cu_code', to:'vc_custcode'
  16. },{
  17. from:'cu_name', to:'vc_custname'
  18. }],
  19. }) ;
  20. }
  21. },
  22. // 转入客户
  23. 'dbfindtrigger[name=vc_turncustname]':{
  24. beforerender:function(f){
  25. Ext.apply(f,{
  26. //赋值
  27. dbfinds:[{
  28. from: 'id', to: 'vc_turncustid',ignore:true
  29. }, {
  30. from:'cu_code', to:'vc_turncustcode'
  31. },{
  32. from:'cu_name', to:'vc_turncustname'
  33. }],
  34. }) ;
  35. }
  36. },
  37. // 供应商
  38. 'dbfindtrigger[name=vc_vendname]':{
  39. beforerender: function (f) {
  40. Ext.apply(f, {
  41. dbfinds: [{
  42. from: 'id',
  43. to: 'vc_vendid',
  44. ignore: true
  45. }, {
  46. from: 've_code',
  47. to: 'vc_vendcode'
  48. }, {
  49. from: 've_name',
  50. to: 'vc_vendname'
  51. }],
  52. });
  53. }
  54. },
  55. // 转出供应商
  56. 'dbfindtrigger[name=vc_outvendname]':{
  57. beforerender: function (f) {
  58. Ext.apply(f, {
  59. dbfinds: [{
  60. from: 'id',
  61. to: 'vc_outvendid',
  62. ignore: true
  63. }, {
  64. from: 've_code',
  65. to: 'vc_outvendcode'
  66. }, {
  67. from: 've_name',
  68. to: 'vc_outvendname'
  69. }],
  70. });
  71. }
  72. },
  73. // 转入供应商
  74. 'dbfindtrigger[name=vc_turnvendname]':{
  75. beforerender: function (f) {
  76. Ext.apply(f, {
  77. dbfinds: [{
  78. from: 'id',
  79. to: 'vc_turncustid',
  80. ignore: true
  81. }, {
  82. from: 've_code',
  83. to: 'vc_turnvendcode'
  84. }, {
  85. from: 've_name',
  86. to: 'vc_turnvendname'
  87. }],
  88. });
  89. }
  90. },
  91. // 来源单号1
  92. 'oriOrderMutiDbfindTrigger[name=vd_slcode]': {
  93. beforerender: function (f) {
  94. Ext.apply(f, {
  95. dbfinds: [{
  96. from: 'id',
  97. to: 'vd_slid',ignore:true
  98. }, {
  99. from: 'sl_code',
  100. to: 'vd_slcode'
  101. },{
  102. from: 'sl_orderamount',
  103. to: 'vd_amount'
  104. },{
  105. from: 'sl_yamount',
  106. to: 'sl_yamount'
  107. },{
  108. from: 'sl_namount',
  109. to: 'sl_namount'
  110. },{
  111. from:'sl_date',
  112. to:'vd_sldate'
  113. },{
  114. from:'sl_kind',
  115. to:'vd_slkind'
  116. },{
  117. from: 'sl_namount',
  118. to: 'vd_nowbalance'
  119. }],
  120. });
  121. },
  122. beforequery: function(f) {
  123. var defaultCondition = this.getDefaultCondition(0);
  124. if(!defaultCondition) {
  125. return false;
  126. }
  127. Ext.apply(f, {
  128. defaultCondition: defaultCondition
  129. });
  130. },
  131. beforetriggerclick: function(f) {
  132. var defaultCondition = this.getDefaultCondition(0);
  133. if(!defaultCondition) {
  134. return false;
  135. }
  136. Ext.apply(f, {
  137. defaultCondition: defaultCondition
  138. });
  139. }
  140. },
  141. // 来源单号2
  142. 'oriOrderMutiDbfindTrigger[name=vcd_slcode]': {
  143. beforerender: function (f) {
  144. Ext.apply(f, {
  145. dbfinds: [{
  146. from: 'id',
  147. to: 'vcd_slid',ignore:true
  148. }, {
  149. from: 'sl_code',
  150. to: 'vcd_slcode'
  151. },{
  152. from: 'sl_orderamount',
  153. to: 'vcd_amount'
  154. },{
  155. from: 'sl_yamount',
  156. to: 'sl_yamount'
  157. },{
  158. from: 'sl_namount',
  159. to: 'sl_namount'
  160. },{
  161. from:'sl_date',
  162. to:'vcd_sldate'
  163. },{
  164. from:'sl_kind',
  165. to:'vcd_slkind'
  166. },{
  167. from: 'sl_namount',
  168. to: 'vcd_nowbalance'
  169. }],
  170. });
  171. },
  172. beforequery: function(f) {
  173. var defaultCondition = this.getDefaultCondition(1);
  174. if(!defaultCondition) {
  175. return false;
  176. }
  177. Ext.apply(f, {
  178. defaultCondition: defaultCondition
  179. });
  180. },
  181. beforetriggerclick: function(f) {
  182. var defaultCondition = this.getDefaultCondition(1);
  183. if(!defaultCondition) {
  184. return false;
  185. }
  186. Ext.apply(f, {
  187. defaultCondition: defaultCondition
  188. });
  189. }
  190. },
  191. });
  192. },
  193. getDefaultCondition: function(idx) {
  194. var me = this,
  195. form = me.getView(),
  196. formItems = form.formItems,
  197. viewModel = me.getViewModel(),
  198. acitveType = form.acitveType,
  199. etc = form.etc,
  200. defaultConditions = etc.defaultConditions,
  201. defaultConditionMode = defaultConditions[acitveType][idx];
  202. var reg = /(.*){(.*)}(.*)/g;
  203. var fieldName = defaultConditionMode.match(/(.*){(.*)}(.*)/)[2];
  204. var fieldLabel = Ext.Array.findBy(formItems, function(f) {
  205. return f.name == fieldName;
  206. }).fieldLabel;
  207. var fieldValue = viewModel.get(fieldName);
  208. if(!fieldValue) {
  209. saas.util.BaseUtil.showErrorToast('请先录入主表字段【' + '<span style="color: red;">' + fieldLabel + '</span>】');
  210. return null;
  211. }
  212. var defaultCondition = defaultConditionMode.replace(reg, '$1' + fieldValue + '$3');
  213. return defaultCondition;
  214. },
  215. /**
  216. * 清空所有从表数据
  217. */
  218. clearDetails: function() {
  219. var me = this;
  220. me.clearDetail0();
  221. me.clearDetail1();
  222. },
  223. /**
  224. * 清空第一个从表数据
  225. */
  226. clearDetail0: function(f, n, o) {
  227. var me = this,
  228. form = me.getView(),
  229. grid = form.query('detailGridField')[0];
  230. me.clearDetail(grid);
  231. },
  232. /**
  233. * 清空第二个从表数据
  234. */
  235. clearDetail1: function() {
  236. var me = this,
  237. form = me.getView(),
  238. grid = form.query('detailGridField')[1];
  239. me.clearDetail(grid);
  240. },
  241. /**
  242. * 清空一个从表数据
  243. */
  244. clearDetail: function(grid) {
  245. var datas = [],
  246. emptyRows = grid.emptyRows,
  247. detnoColumn = grid.detnoColumn,
  248. detno = 0,
  249. store = grid.getStore();
  250. Ext.Array.each(new Array(emptyRows), function() {
  251. detno += 1;
  252. var data = {};
  253. data[detnoColumn] = detno;
  254. datas.push(data);
  255. })
  256. store.removeAll();
  257. store.add(datas);
  258. },
  259. onSave: function() {
  260. var me = this,
  261. form = me.getView(),
  262. viewModel = me.getViewModel(),
  263. store1 = viewModel.get('detail0').detailStore,
  264. store2 = viewModel.get('detail1').detailStore;
  265. var valid = form.isValid();
  266. if(!valid) {
  267. saas.util.BaseUtil.showErrorToast(form.invalidText);
  268. return false;
  269. }
  270. debugger
  271. var sum_detail1 = store1.sum('vd_nowbalance'); // 从表1核销合计
  272. var sum_detail2 = store2.sum('vcd_nowbalance'); // 从表2核销合计
  273. viewModel.set("vc_amount1",sum_detail1);
  274. viewModel.set("vc_amount2",sum_detail2);
  275. me.save();
  276. },
  277. });