ExchangeGl.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.gla.ExchangeGl', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. views: ['fa.gla.ExchangeGl', 'core.trigger.CateTreeDbfindTrigger', 'core.button.Close'],
  6. init: function(){
  7. this.control({
  8. 'displayfield[name=yearmonth]': {
  9. afterrender: function(f) {
  10. this.getCurrentMonth(f);
  11. }
  12. },
  13. 'cateTreeDbfindTrigger[name=ca_code]': {
  14. afterrender: function(f) {
  15. this.getDefaultCatecode(f);
  16. }
  17. },
  18. 'button[id=deal]': {
  19. click: function(btn) {
  20. var form = btn.ownerCt.ownerCt,
  21. ym = form.down('#yearmonth').value,
  22. cacode = form.down('#ca_code').value,
  23. account = form.down('#account').value,
  24. grid = form.ownerCt.down('gridpanel');
  25. var dd = new Array(), err = new Array();
  26. grid.store.each(function(){
  27. dd.push(this.data);
  28. if(this.get('cm_endrate') == 0) {
  29. err.push(this.get('cm_crname'));
  30. }
  31. });
  32. if(err.length > 0) {
  33. showError('汇率不能为空,币别:' + err.join(','));
  34. return;
  35. }
  36. this.deal(form, grid, ym, cacode, account, Ext.encode(dd));
  37. }
  38. }
  39. });
  40. },
  41. getCurrentMonth: function(f) {
  42. var me = this;
  43. Ext.Ajax.request({
  44. url: basePath + 'fa/getMonth.action',
  45. params: {
  46. type: 'MONTH-A'
  47. },
  48. callback: function(opt, s, r) {
  49. var rs = Ext.decode(r.responseText);
  50. if(rs.data) {
  51. f.setValue(rs.data.PD_DETNO);
  52. me.getCurrencyMonth(f.ownerCt.ownerCt.down('gridpanel'), f.value);
  53. }
  54. }
  55. });
  56. },
  57. getDefaultCatecode: function(f) {
  58. this.FormUtil.getFieldValue('Setting', 'nvl(se_value,\' \')', 'se_what=\'ExchangeCatecode\'', f.id);
  59. },
  60. getCurrencyMonth: function(grid, ym) {
  61. Ext.Ajax.request({
  62. url : basePath + 'common/getFieldsDatas.action',
  63. async: false,
  64. params: {
  65. caller: 'CurrencysMonth',
  66. fields: 'cm_code,cm_crname,cm_endrate',
  67. condition: 'cm_yearmonth=' + ym
  68. },
  69. method : 'post',
  70. callback : function(opt, s, r){
  71. var rs = new Ext.decode(r.responseText);
  72. if(rs.exceptionInfo){
  73. showError(rs.exceptionInfo);return;
  74. }
  75. if(rs.success){
  76. var data = Ext.decode(rs.data), _data = new Array();
  77. Ext.each(data, function(d) {
  78. _data.push({
  79. cm_code: d.CM_CODE,
  80. cm_crname: d.CM_CRNAME,
  81. cm_endrate: d.CM_ENDRATE
  82. });
  83. });
  84. grid.store.loadData(_data);
  85. }
  86. }
  87. });
  88. },
  89. deal: function(form, grid, ym ,ca_code, account, data) {
  90. var me = this;
  91. Ext.Ajax.request({
  92. url: basePath + 'fa/gla/exchangegl.action',
  93. params: {
  94. yearmonth: ym,
  95. ca_code: ca_code,
  96. account: account,
  97. data: data
  98. },
  99. callback: function(opt, s, r) {
  100. var rs = Ext.decode(r.responseText);
  101. if(rs.success) {
  102. if(rs.data) {
  103. showMessage('提示', rs.data);
  104. }
  105. me.getCurrencyMonth(grid, ym);
  106. }
  107. }
  108. });
  109. }
  110. });