FormPanelController.js 10 KB

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