MakeResource.js 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.make.MakeResource', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil', 'erp.util.RenderUtil'],
  5. views:[
  6. 'common.query.Viewport', 'pm.make.MakeResourceGrid', 'common.query.Form',
  7. 'core.trigger.DbfindTrigger','core.form.FtField','core.form.FtFindField','core.form.ConDateField',
  8. 'core.trigger.TextAreaTrigger','core.form.YnField', 'core.form.MonthDateField','core.button.Import','core.button.ImportAll'
  9. ],
  10. init:function(){
  11. var me = this;
  12. me.resized = false;
  13. this.control({
  14. 'button[id=query]':{
  15. beforerender:function(btn){
  16. btn.handler=function(){
  17. var form=btn.ownerCt.ownerCt;
  18. if(form){
  19. var condition=form.spellCondition(urlcondition);
  20. if(!Ext.isEmpty(condition)) {
  21. var grid=Ext.getCmp('grid');
  22. condition=urlcondition+" AND "+condition;
  23. Ext.create('erp.util.GridUtil').loadNewStore(grid,{caller:caller,condition:condition});
  24. }
  25. }
  26. };
  27. }
  28. },
  29. 'erpQueryGridPanel':{
  30. storeloaded:function (grid){
  31. var count=grid.store.prefetchData.items.length;
  32. Ext.getCmp('gridcount').setText('总条数:'+count);
  33. },
  34. afterrender:function (grid){
  35. var count=grid.store.prefetchData.items.length;
  36. Ext.getCmp('gridcount').setText('总条数:'+count);
  37. }
  38. },
  39. 'button[id=close]':{
  40. afterrender:function(btn){
  41. btn.ownerCt.insert(2,{
  42. xtype:'erpImportButton'
  43. });
  44. btn.ownerCt.insert(2,{
  45. xtype:'erpImportAllButton'
  46. });
  47. }
  48. },
  49. 'erpImportButton':{
  50. click:function(btn){
  51. me.vastDeal('/pm/make/loadMake.action');
  52. }
  53. },
  54. 'erpImportAllButton':{
  55. click:function(btn){
  56. //全部装载会选不中所有数据
  57. var form=btn.ownerCt.ownerCt;
  58. var panelId=getUrlParam('panelId');
  59. if(form){
  60. var condition=form.spellCondition(urlcondition);
  61. if(!Ext.isEmpty(condition)) {
  62. condition=urlcondition+" AND "+condition;
  63. }
  64. var wc_id=getUrlParam('keyValue');
  65. var main = parent.Ext.getCmp("content-panel");
  66. main.getActiveTab().setLoading(true);
  67. Ext.Ajax.request({
  68. method:'post',
  69. url:basePath+'pm/make/loadAllMakeByCondition.action',
  70. params:{
  71. wc_id:wc_id,
  72. condition:condition,
  73. caller:'WCPlan'
  74. },
  75. callback : function(options,success,response){
  76. main.getActiveTab().setLoading(false);
  77. var localJson = new Ext.decode(response.responseText);
  78. if(localJson.exceptionInfo){
  79. var str = localJson.exceptionInfo;
  80. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){
  81. str = str.replace('AFTERSUCCESS', '');
  82. grid.multiselected = new Array();
  83. Ext.getCmp('dealform').onQuery();
  84. }
  85. showError(str);return;
  86. }
  87. if(localJson.success){
  88. if(localJson.log){
  89. showMessage("提示", localJson.log);
  90. }
  91. Ext.Msg.alert("提示", "处理成功!", function(){
  92. /*grid.multiselected = new Array();
  93. Ext.getCmp('dealform').onQuery();*/
  94. var panel=parent.Ext.getCmp(panelId);
  95. main.getActiveTab().close();
  96. var loadgrid=panel.currentGrid;
  97. loadgrid.GridUtil.loadNewStore(loadgrid,{caller:'WCPlan',condition:'wd_wcid='+wc_id});
  98. main.setActiveTab(panel);
  99. });
  100. }
  101. }
  102. });
  103. }
  104. }
  105. }
  106. });
  107. },
  108. resize: function(form, grid){
  109. if(!this.resized && form && grid && form.items.items.length > 0){
  110. var height = window.innerHeight;
  111. if(Ext.isIE){
  112. height = screen.height*0.75;
  113. }
  114. var cw = 0;
  115. Ext.each(form.items.items, function(){
  116. if(!this.hidden && this.xtype != 'hidden') {
  117. cw += this.columnWidth;
  118. }
  119. });
  120. cw = Math.ceil(cw);
  121. if(cw == 0){
  122. cw = 5;
  123. } else if(cw > 2 && cw <= 5){
  124. cw -= 1;
  125. } else if(cw > 5 && cw < 8){
  126. cw = 4;
  127. }
  128. cw = Math.min(cw, 5);
  129. form.setHeight(height*cw/10 + 10);
  130. grid.setHeight(height*(10 - cw)/10 - 10);
  131. this.resized = true;
  132. }
  133. },
  134. countGrid: function(){
  135. //重新计算合计栏值
  136. var grid = Ext.getCmp('querygrid');
  137. Ext.each(grid.columns, function(column){
  138. if(column.summary){
  139. var sum = 0;
  140. Ext.each(grid.store.data.items, function(item){
  141. if(item.value != null && item.value != ''){
  142. sum += Number(item.value);
  143. }
  144. });
  145. Ext.getCmp(column.dataIndex + '_sum').setText(column.text + '(sum):' + sum);
  146. } else if(column.average) {
  147. var average = 0;
  148. Ext.each(grid.store.data.items, function(item){
  149. if(item.value != null && item.value != ''){
  150. average += Number(item.value);
  151. }
  152. });
  153. average = average/grid.store.data.items.length;
  154. Ext.getCmp(column.dataIndex + '_average').setText(column.text + '(average):' + average);
  155. } else if(column.count) {
  156. var count = 0;
  157. Ext.each(grid.store.data.items, function(item){
  158. if(item.value != null && item.value != ''){
  159. count++;
  160. }
  161. });
  162. Ext.getCmp(column.dataIndex + '_count').setText(column.text + '(count):' + count);
  163. }
  164. });
  165. },
  166. vastDeal: function(url,type){
  167. var grid = Ext.getCmp('grid');
  168. var form = Ext.getCmp('queryform');
  169. var wc_id=getUrlParam('keyValue');
  170. var panelId=getUrlParam('panelId');
  171. var records =null;
  172. if(type&&type=='all'){
  173. records=Ext.Array.unique(grid.getStore().data.items);
  174. }else {
  175. var items = grid.selModel.getSelection();
  176. Ext.each(items, function(item, index){
  177. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  178. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  179. item.index = this.data[grid.keyField];
  180. grid.multiselected.push(item);
  181. }
  182. });
  183. records = Ext.Array.unique(grid.multiselected);
  184. }
  185. if(records.length > 0){
  186. var params = new Object();
  187. params.caller = caller;
  188. var data = new Array();
  189. var bool = false;
  190. Ext.each(records, function(record, index){
  191. var f = form.fo_detailMainKeyField;
  192. if((grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  193. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0)
  194. ||(f && this.data[f] != null && this.data[f] != ''
  195. && this.data[f] != '0' && this.data[f] != 0)){
  196. bool = true;
  197. var o = new Object();
  198. if(grid.keyField){
  199. o[grid.keyField] = record.data[grid.keyField];
  200. } else {
  201. params.id[index] = record.data[form.fo_detailMainKeyField];
  202. }
  203. if(grid.toField){
  204. Ext.each(grid.toField, function(f, index){
  205. var v = Ext.getCmp(f).value;
  206. if(v != null && v.toString().trim() != '' && v.toString().trim() != 'null'){
  207. o[f] = v;
  208. }
  209. });
  210. }
  211. if(grid.necessaryFields){
  212. Ext.each(grid.necessaryFields, function(f, index){
  213. var v = record.data[f];
  214. if(Ext.isDate(v)){
  215. v = Ext.Date.toString(v);
  216. }
  217. o[f] = v;
  218. });
  219. }
  220. data.push(o);
  221. }
  222. });
  223. if(bool){
  224. params.data = unescape(Ext.JSON.encode(data).replace(/\\/g,"%"));
  225. params.wc_id=wc_id;
  226. params._noc=1;
  227. var main = parent.Ext.getCmp("content-panel");
  228. main.getActiveTab().setLoading(true);//loading...
  229. Ext.Ajax.request({
  230. url : basePath + url,
  231. params: params,
  232. method : 'post',
  233. callback : function(options,success,response){
  234. main.getActiveTab().setLoading(false);
  235. var localJson = new Ext.decode(response.responseText);
  236. if(localJson.exceptionInfo){
  237. var str = localJson.exceptionInfo;
  238. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){
  239. str = str.replace('AFTERSUCCESS', '');
  240. grid.multiselected = new Array();
  241. Ext.getCmp('dealform').onQuery();
  242. }
  243. showError(str);return;
  244. }
  245. if(localJson.success){
  246. if(localJson.log){
  247. showMessage("提示", localJson.log);
  248. }
  249. Ext.Msg.alert("提示", "处理成功!", function(){
  250. /*grid.multiselected = new Array();
  251. Ext.getCmp('dealform').onQuery();*/
  252. var panel=parent.Ext.getCmp(panelId);
  253. var loadgrid=panel.currentGrid;
  254. loadgrid.GridUtil.loadNewStore(loadgrid,{caller:'WCPlan',condition:'wd_wcid='+wc_id});
  255. main.getActiveTab().close();
  256. main.setActiveTab(panel);
  257. });
  258. }
  259. }
  260. });
  261. } else {
  262. showError("没有需要处理的数据!");
  263. }
  264. }
  265. }
  266. });