MakeResource.js 9.2 KB

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