Batchlevel.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.common.Batchlevel', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil', 'erp.util.RenderUtil'],
  5. views:[
  6. 'common.Batchlevel.Viewport','common.Batchlevel.Form','common.Batchlevel.GridPanel',
  7. 'core.trigger.DbfindTrigger','core.form.FtField','core.form.FtFindField','core.form.ConDateField',
  8. 'core.button.VastDeal','core.button.VastPrint','core.button.VastAnalyse','core.button.GetVendor',
  9. 'core.button.VastTurnPurc','core.trigger.TextAreaTrigger','core.form.YnField','core.button.DealMake',
  10. 'core.button.MakeOccur','core.button.SaleOccur','core.button.AllThrow','core.button.SelectThrow','core.form.MonthDateField',
  11. 'core.form.CheckGroup'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'erpBatchDealGridPanel': {
  17. afterrender: function(grid){
  18. var form = Ext.getCmp('dealform');
  19. if(form && form.items.items.length > 0){
  20. //根据form字段的多少来调节form所占高度
  21. var height = window.innerHeight;
  22. if(Ext.isIE){
  23. height = screen.height*0.75;
  24. }
  25. var cw = 0;
  26. Ext.each(form.items.items, function(){
  27. cw += this.columnWidth;
  28. });
  29. cw = Math.ceil(cw);
  30. if(cw == 0){
  31. cw = 5;
  32. } else if(cw > 2 && cw <= 5){
  33. cw -= 1;
  34. } else if(cw > 5 && cw < 8){
  35. cw = 4;
  36. }
  37. cw = Math.min(cw, 5);
  38. form.setHeight(height*cw/10 + 10);
  39. grid.setHeight(height*(10 - cw)/10 - 10);
  40. }
  41. }
  42. },
  43. 'erpVastDealButton': {
  44. click: function(btn){
  45. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  46. }
  47. },
  48. 'erpVastAnalyseButton': {
  49. click: function(btn){
  50. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  51. }
  52. },
  53. /*'erpVastPrintButton': {
  54. click: function(btn){
  55. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  56. }
  57. }*/
  58. });
  59. },
  60. countGrid: function(){
  61. //重新计算合计栏值
  62. var grid = Ext.getCmp('batchDealGridPanel');
  63. Ext.each(grid.columns, function(column){
  64. if(column.summary){
  65. var sum = 0;
  66. Ext.each(grid.store.data.items, function(item){
  67. if(item.value != null && item.value != ''){
  68. sum += Number(item.value);
  69. }
  70. });
  71. Ext.getCmp(column.dataIndex + '_sum').setText(column.text + '(sum):' + sum);
  72. } else if(column.average) {
  73. var average = 0;
  74. Ext.each(grid.store.data.items, function(item){
  75. if(item.value != null && item.value != ''){
  76. average += Number(item.value);
  77. }
  78. });
  79. average = average/grid.store.data.items.length;
  80. Ext.getCmp(column.dataIndex + '_average').setText(column.text + '(average):' + average);
  81. } else if(column.count) {
  82. var count = 0;
  83. Ext.each(grid.store.data.items, function(item){
  84. if(item.value != null && item.value != ''){
  85. count++;
  86. }
  87. });
  88. Ext.getCmp(column.dataIndex + '_count').setText(column.text + '(count):' + count);
  89. }
  90. });
  91. },
  92. vastDeal: function(url){
  93. var grid = Ext.getCmp('batchDealGridPanel');
  94. var items = grid.selModel.getSelection();
  95. Ext.each(items, function(item, index){
  96. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  97. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  98. grid.multiselected.push(item);
  99. }
  100. });
  101. var form = Ext.getCmp('dealform');
  102. var records = Ext.Array.unique(grid.multiselected);
  103. if(records.length > 0){
  104. var params = new Object();
  105. params.caller = caller;
  106. var data = new Array();
  107. var bool = false;
  108. Ext.each(records, function(record, index){
  109. var f = form.fo_detailMainKeyField;
  110. if((grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  111. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0)
  112. ||(f && this.data[f] != null && this.data[f] != ''
  113. && this.data[f] != '0' && this.data[f] != 0)){
  114. bool = true;
  115. var o = new Object();
  116. if(grid.keyField){
  117. o[grid.keyField] = record.data[grid.keyField];
  118. } else {
  119. params.id[index] = record.data[form.fo_detailMainKeyField];
  120. }
  121. if(grid.toField){
  122. Ext.each(grid.toField, function(f, index){
  123. var v = Ext.getCmp(f).value;
  124. if(v != null && v.toString().trim() != '' && v.toString().trim() != 'null'){
  125. o[f] = v;
  126. }
  127. });
  128. }
  129. if(grid.necessaryFields){
  130. Ext.each(grid.necessaryFields, function(f, index){
  131. var v = record.data[f];
  132. if(Ext.isDate(v)){
  133. v = Ext.Date.toString(v);
  134. }
  135. o[f] = v;
  136. });
  137. }
  138. data.push(o);
  139. }
  140. });
  141. if(bool){
  142. params.data = Ext.encode(data);
  143. var main = parent.Ext.getCmp("content-panel");
  144. main.getActiveTab().setLoading(true);//loading...
  145. Ext.Ajax.request({
  146. url : basePath + url,
  147. params: params,
  148. method : 'post',
  149. callback : function(options,success,response){
  150. main.getActiveTab().setLoading(false);
  151. var localJson = new Ext.decode(response.responseText);
  152. if(localJson.exceptionInfo){
  153. showError(localJson.exceptionInfo);
  154. return "";
  155. }
  156. if(localJson.success){
  157. if(localJson.log){
  158. showMessage("提示", localJson.log);
  159. }
  160. Ext.Msg.alert("提示", "处理成功!", function(){
  161. grid.multiselected = new Array();
  162. Ext.getCmp('dealform').onQuery();
  163. });
  164. }
  165. }
  166. });
  167. } else {
  168. showError("没有需要处理的数据!");
  169. }
  170. }
  171. }
  172. });