MaterialLackForPull.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.make.MaterialLackForPull', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil', 'erp.util.RenderUtil'],
  5. views:[
  6. 'common.batchDeal.Viewport','common.batchDeal.Form','pm.mps.MRPThrowGrid',
  7. 'core.trigger.DbfindTrigger','core.form.FtField','core.form.FtFindField','core.form.ConDateField',
  8. 'core.trigger.TextAreaTrigger','core.form.YnField', 'core.form.MonthDateField','core.form.ConMonthDateField',
  9. 'core.grid.YnColumn','core.button.WipSend'
  10. ],
  11. init:function(){
  12. var me = this;
  13. me.resized = false;
  14. this.control({
  15. 'erpBatchDealFormPanel': {
  16. alladded: function(form){
  17. var grid = Ext.getCmp('batchDealGridPanel');
  18. me.resize(form, grid);
  19. }
  20. },
  21. 'erpBatchDealGridPanel': {
  22. afterrender: function(grid){
  23. var form = Ext.getCmp('dealform');
  24. me.resize(form, grid);
  25. }
  26. },
  27. 'button[id=close]':{
  28. afterrender:function(btn){
  29. btn.ownerCt.insert(2,{
  30. xtype:'erpWipSendButton'
  31. });
  32. }
  33. },
  34. 'button[id=WipSend]': {
  35. click:function(btn){
  36. me.toLSSend('pm/wcplan/throwwipneed.action');
  37. }
  38. },
  39. 'monthdatefield': {
  40. afterrender: function(f) {
  41. var type = '', con = null;
  42. if(f.name == 'vo_yearmonth' && caller == 'Voucher!Audit!Deal') {
  43. type = 'MONTH-A';
  44. con = Ext.getCmp('condatefield');
  45. } else if(f.name == 'vo_yearmonth' && caller == 'Voucher!ResAudit!Deal') {
  46. type = 'MONTH-A';
  47. con = Ext.getCmp('condatefield');
  48. }
  49. if(type != '') {
  50. this.getCurrentMonth(f, type, con);
  51. }
  52. }
  53. }
  54. });
  55. },
  56. resize: function(form, grid){
  57. if(!this.resized && form && grid && form.items.items.length > 0){
  58. var height = window.innerHeight;
  59. if(Ext.isIE){
  60. height = screen.height*0.75;
  61. }
  62. var cw = 0;
  63. Ext.each(form.items.items, function(){
  64. if(!this.hidden && this.xtype != 'hidden') {
  65. cw += this.columnWidth;
  66. }
  67. });
  68. cw = Math.ceil(cw);
  69. if(cw == 0){
  70. cw = 5;
  71. } else if(cw > 2 && cw <= 5){
  72. cw -= 1;
  73. } else if(cw > 5 && cw < 8){
  74. cw = 4;
  75. }
  76. cw = Math.min(cw, 5);
  77. form.setHeight(height*cw/10 + 10);
  78. grid.setHeight(height*(10 - cw)/10 - 10);
  79. this.resized = true;
  80. }
  81. },
  82. countGrid: function(){
  83. //重新计算合计栏值
  84. var grid = Ext.getCmp('batchDealGridPanel');
  85. Ext.each(grid.columns, function(column){
  86. if(column.summary){
  87. var sum = 0;
  88. Ext.each(grid.store.data.items, function(item){
  89. if(item.value != null && item.value != ''){
  90. sum += Number(item.value);
  91. }
  92. });
  93. Ext.getCmp(column.dataIndex + '_sum').setText(column.text + '(sum):' + sum);
  94. } else if(column.average) {
  95. var average = 0;
  96. Ext.each(grid.store.data.items, function(item){
  97. if(item.value != null && item.value != ''){
  98. average += Number(item.value);
  99. }
  100. });
  101. average = average/grid.store.data.items.length;
  102. Ext.getCmp(column.dataIndex + '_average').setText(column.text + '(average):' + average);
  103. } else if(column.count) {
  104. var count = 0;
  105. Ext.each(grid.store.data.items, function(item){
  106. if(item.value != null && item.value != ''){
  107. count++;
  108. }
  109. });
  110. Ext.getCmp(column.dataIndex + '_count').setText(column.text + '(count):' + count);
  111. }
  112. });
  113. },
  114. toLSSend: function(url){
  115. var grid = Ext.getCmp('batchDealGridPanel');
  116. var items = grid.selModel.getSelection();
  117. Ext.each(items, function(item, index){
  118. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  119. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  120. var bool = true;
  121. Ext.each(grid.multiselected, function(){
  122. if(this.data[grid.keyField] == item.data[grid.keyField]){
  123. bool = false;
  124. }
  125. });
  126. if(bool){
  127. grid.multiselected.push(item);
  128. }
  129. }
  130. });
  131. var params = new Object();
  132. var records = grid.multiselected;
  133. if(records.length > 0){
  134. if(records.length > 500) {
  135. showMessage('提示', '勾选行数必须小于500条!');
  136. return;
  137. }
  138. var data = new Array();
  139. Ext.each(records, function(record, index){
  140. dd=new Object();
  141. dd['mlp_id']=record.data['mlp_id'];
  142. data.push(dd);
  143. });
  144. params.data = unescape(Ext.JSON.encode(data).replace(/\\/g,"%"));
  145. grid.setLoading(true);
  146. Ext.Ajax.request({
  147. url : basePath + url,
  148. params: params,
  149. method : 'post',
  150. callback : function(options,success,response){
  151. grid.setLoading(false);
  152. var localJson = new Ext.decode(response.responseText);
  153. if(localJson.exceptionInfo){
  154. showError(localJson.exceptionInfo);
  155. } else if(localJson.log){
  156. showMessage('提示', localJson.log);
  157. Ext.getCmp('dealform').onQuery(true);
  158. }
  159. }
  160. });
  161. }
  162. },
  163. getCurrentMonth: function(f, type, con) {
  164. Ext.Ajax.request({
  165. url: basePath + 'fa/getMonth.action',
  166. params: {
  167. type: type
  168. },
  169. callback: function(opt, s, r) {
  170. var rs = Ext.decode(r.responseText);
  171. if(rs.data) {
  172. f.setValue(rs.data.PD_DETNO);
  173. if(con != null) {
  174. con.setMonthValue(rs.data.PD_DETNO);
  175. }
  176. }
  177. }
  178. });
  179. }
  180. });