AccountRegisterAP.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.gs.AccountRegisterAP', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. views:[
  7. 'fa.gs.AccountRegisterAP','core.form.Panel','fa.gs.AccountRegisterTree','common.datalist.GridPanel',
  8. 'core.button.Add','core.button.Close','core.form.ConDateField','core.button.Query','common.datalist.Toolbar',
  9. 'core.trigger.DbfindTrigger','core.form.YnField'
  10. ],
  11. refs: [{
  12. ref: 'centerpanel',
  13. selector: '#centerpanel'
  14. }],
  15. init:function(){
  16. var me = this;
  17. me.datamanager = [];
  18. this.control({
  19. 'accountregistertree': {
  20. itemmousedown: function(selModel, record){
  21. if (me.isGroup === undefined) {
  22. var d = record.raw ? record.raw.data : record.data.data;
  23. if(d.ma_id) {
  24. me.isGroup = true;
  25. } else {
  26. me.isGroup = false;
  27. }
  28. }
  29. me.loadTab(selModel, record);
  30. me.lastSelected = record;
  31. }
  32. },
  33. 'erpCloseButton': {
  34. click: function(btn){
  35. this.FormUtil.beforeClose(this);
  36. }
  37. },
  38. 'erpQueryButton': {
  39. click : function(btn) {
  40. var _win = this.getCenterpanel().getEl().down('iframe').dom.contentWindow;
  41. if(_win.Ext && caller == _win.caller) {// caller一致就不用刷咯
  42. var grid = _win.Ext.getCmp('grid');
  43. if(grid) {
  44. _win.caller = caller;
  45. var date1=Ext.getCmp('ar_date').firstVal,date2=Ext.getCmp('ar_date').secondVal;
  46. var condition = "ar_date BETWEEN to_date('" + Ext.Date.toString(date1) + " 00:00:00','yyyy-MM-dd HH24:mi:ss') AND to_date('"
  47. + Ext.Date.toString(date2) + " 23:59:59','yyyy-MM-dd HH24:mi:ss')";
  48. grid.getCount(caller, condition);
  49. }
  50. }
  51. }
  52. },
  53. 'erpAddButton':{
  54. click: function(btn){
  55. var record = me.lastSelected,
  56. url = 'jsps/fa/gs/accountRegister.jsp?whoami=AccountRegister!AP';
  57. if(record) {
  58. var data = record.raw ? record.raw.data : record.data.data;
  59. url += '&ar_cateid=' + data.ca_id;
  60. url += '&ar_accountcode=' + data.ca_code;
  61. url += '&ar_accountname=' + data.ca_name;
  62. url += '&ar_accountcurrency=' + data.ca_currency;
  63. }
  64. me.FormUtil.onAdd('addAccountRegister', '新增银行存款登记', url);
  65. }
  66. }
  67. });
  68. },
  69. getForm: function(btn){
  70. return btn.ownerCt.ownerCt;
  71. },
  72. getCurrentStore: function(value){
  73. var grid = Ext.getCmp('grid');
  74. var items = grid.store.data.items;
  75. var array = new Array();
  76. var o = null;
  77. Ext.each(items, function(item, index){
  78. o = new Object();
  79. o.selected = false;
  80. if(index == 0){
  81. o.prev = null;
  82. } else {
  83. o.prev = items[index-1].data[keyField];
  84. }
  85. if(index == items.length - 1){
  86. o.next = null;
  87. } else {
  88. o.next = items[index+1].data[keyField];
  89. }
  90. var v = item.data[keyField];
  91. o.value = v;
  92. if(v == value)
  93. o.selected = true;
  94. array.push(o);
  95. });
  96. return array;
  97. },
  98. loadTab: function(selModel, record){
  99. var me = this, tree = Ext.getCmp('tree-panel'),
  100. data = record.raw ? record.raw.data : record.data.data;
  101. if (!record.get('leaf')) {
  102. if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
  103. record.collapse(true, true);//收拢
  104. } else {//未展开
  105. //看是否加载了其children
  106. if(record.childNodes.length == 0){
  107. //从后台加载
  108. tree.setLoading(true, tree.body);
  109. Ext.Ajax.request({//拿到tree数据
  110. url : basePath + 'fa/gs/getCategoryBankTree.action',
  111. params: {
  112. master: data.ma_name || data.CURRENTMASTER,
  113. parentid: data.ca_id || 0
  114. },
  115. async: false,
  116. callback : function(options,success,response){
  117. tree.setLoading(false);
  118. var res = new Ext.decode(response.responseText);
  119. if(res.tree){
  120. record.appendChild(res.tree);
  121. record.expand(false, true);//展开
  122. if(data.ma_id)
  123. me.refreshDatalist(data);
  124. } else if(res.exceptionInfo){
  125. showError(res.exceptionInfo);
  126. }
  127. }
  128. });
  129. } else {
  130. record.expand(false, true);//展开
  131. if(data.ma_id)
  132. me.refreshDatalist(data);
  133. }
  134. }
  135. } else {
  136. this.refreshDatalist(data);
  137. }
  138. },
  139. refreshDatalist : function(data) {
  140. var ca_id = data.ca_id || 0,
  141. condition = 'ar_cateid=' + ca_id;
  142. var dd = Ext.getCmp('ar_date'),
  143. date1 = dd.firstVal,
  144. date2 = dd.secondVal;
  145. condition += " and ar_date BETWEEN to_date('" + Ext.Date.toString(date1)
  146. + " 00:00:00','yyyy-MM-dd HH24:mi:ss') AND to_date('"
  147. + Ext.Date.toString(date2) + " 23:59:59','yyyy-MM-dd HH24:mi:ss')";
  148. if (this.isGroup) {
  149. if(data.ma_type == 2 && data.ma_soncode) {
  150. var s = data.ma_soncode.split(','), m = [];
  151. for(i in s) {
  152. m.push('\'' + s[i] + '\'');
  153. }
  154. condition = 'CURRENTMASTER in(' + m.join(',') + ')';
  155. } else if(data.ma_type == 3) {
  156. condition = 'CURRENTMASTER=\'' + (data.ma_name || data.CURRENTMASTER) + '\'';
  157. } else {
  158. condition += ' AND CURRENTMASTER=\'' + (data.ma_name || data.CURRENTMASTER) + '\'';
  159. }
  160. }
  161. this.FormUtil.getFieldValue('Category', 'nvl(ca_nowbalance,0)+nvl(ca_nowbalance2,0)', 'ca_id=' + ca_id, 'ca_balance');
  162. this.FormUtil.getFieldValue('Category', 'ca_bankaccount', 'ca_id=' + ca_id, 'ca_bankaccount');
  163. var _win = this.getCenterpanel().getEl().down('iframe').dom.contentWindow;
  164. if(_win.Ext && caller == _win.caller) {// caller一致就不用刷咯
  165. var grid = _win.Ext.getCmp('grid');
  166. if(grid) {
  167. _win.caller = caller;
  168. _win.condition = condition;
  169. _win._noc=1;
  170. grid.getCount(caller, condition);
  171. }
  172. } else {
  173. this.getCenterpanel().getEl().down('iframe').dom.contentWindow.location.href =
  174. basePath + 'jsps/common/datalist.jsp?whoami=' + caller + '&urlcondition=' +
  175. condition+"&_noc=1";
  176. }
  177. }
  178. });