MpsDesk.js 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.mps.MpsDesk', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'core.form.Panel','pm.mps.MpsDesk','core.grid.Panel2','core.toolbar.Toolbar','core.button.ExecuteOperation','pm.mps.DeskForm',
  9. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  10. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.ResAudit',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger'
  12. ],
  13. init:function(){
  14. var me=this;
  15. this.control({
  16. 'erpGridPanel2': {
  17. itemclick: function(selModel, record){
  18. if(!Ext.getCmp('grid').readOnly){
  19. this.onGridItemClick(selModel, record);
  20. }
  21. }
  22. },
  23. 'dbfindtrigger[name=mm_code]':{
  24. afterrender:function(f){
  25. var kind=me.BaseUtil.getUrlParam('kind');
  26. if (kind)
  27. {
  28. f.dbBaseCondition="mm_kind IS '"+kind+"'";
  29. }
  30. var code= me.BaseUtil.getUrlParam('code');
  31. if (code)
  32. {
  33. f.setValue(code);
  34. f.autoDbfind('form', caller, f.name, f.name + ' like\'%' + f.value + '%\'');
  35. }
  36. }
  37. },
  38. 'erpExecuteOperationButton':{
  39. click:function(btn){
  40. me.ExecuteOperation();
  41. }
  42. },
  43. 'button[id=tomake]':{
  44. click:function(btn){
  45. var code=Ext.getCmp('mm_code').getValue();
  46. Ext.Ajax.request({//拿到grid的columns
  47. url : basePath + 'pm/mps/turnmake.action',
  48. params: {
  49. code:code
  50. },
  51. method : 'post',
  52. timeout: 6000,
  53. callback : function(options,success,response){
  54. var res = new Ext.decode(response.responseText);
  55. if(res.exceptionInfo){
  56. showError(res.exceptionInfo);
  57. return;
  58. }else if(res.success){
  59. showError(res.message);
  60. }
  61. }
  62. });
  63. }
  64. },
  65. 'button[id=topurchase]':{
  66. click:function(btn){
  67. var code=Ext.getCmp('mm_code').getValue();
  68. Ext.Ajax.request({//拿到grid的columns
  69. url : basePath + 'pm/mps/turnpurchase.action',
  70. params: {
  71. code:code
  72. },
  73. method : 'post',
  74. timeout: 6000,
  75. callback : function(options,success,response){
  76. var res = new Ext.decode(response.responseText);
  77. if(res.exceptionInfo){
  78. showError(res.exceptionInfo);
  79. return;
  80. }else if(res.success){
  81. showError(res.message);
  82. }
  83. }
  84. });
  85. }
  86. },
  87. 'button[id=topurchaseforecast]':{
  88. click:function(btn){
  89. var code=Ext.getCmp('mm_code').getValue();
  90. Ext.Ajax.request({//拿到grid的columns
  91. url : basePath + 'pm/mps/turnpurchaseforecast.action',
  92. params: {
  93. code:code
  94. },
  95. method : 'post',
  96. timeout: 6000,
  97. callback : function(options,success,response){
  98. var res = new Ext.decode(response.responseText);
  99. if(res.exceptionInfo){
  100. showError(res.exceptionInfo);
  101. return;
  102. }else if(res.success){
  103. showError(res.message);
  104. }
  105. }
  106. });
  107. }
  108. },
  109. 'button[id=product]':{
  110. click:function(btn){
  111. var id=Ext.getCmp('mm_id').getValue();
  112. var condition="md_mpsid='"+id+"'";
  113. me.FormUtil.onAdd('MPSProduct','物料','/jsps/pm/mps/DeskProduct.jsp?whoami=MPSSupply&_noc=1&urlcondition='+condition);
  114. }
  115. },
  116. 'button[id=supply]':{
  117. click:function(btn){
  118. var id=Ext.getCmp('mm_id').getValue();
  119. var code=Ext.getCmp('mm_code').getValue();
  120. var condition="md_mpsid='"+id+"' AND md_kind='SUPPLY' AND nvl(pr_supplytype,' ') <>'VIRTUAL'";
  121. me.FormUtil.onAdd('MPSSupply','供应','/jsps/pm/mps/MRPThrow.jsp?whoami=MPSSupply&_noc=1&urlcondition='+condition+"&mpscode="+code);
  122. }
  123. },
  124. 'button[id=need]':{
  125. click:function(btn){
  126. var id=Ext.getCmp('mm_id').getValue();
  127. var code=Ext.getCmp('mm_code').getValue();
  128. var condition="md_mpsid='"+id+"'AND md_kind='NEED' AND nvl(pr_supplytype,' ') <>'VIRTUAL' ";
  129. me.FormUtil.onAdd('MPSNeed','需求','/jsps/pm/mps/MRPThrow.jsp?whoami=MPSNeed&_noc=1&urlcondition='+condition+"&mpscode="+code);
  130. }
  131. },
  132. 'button[id=error]':{
  133. click:function(btn){
  134. var id=Ext.getCmp('mm_id').getValue();
  135. var win = new Ext.window.Window({
  136. id : 'win',
  137. title: "异常信息",
  138. height: "70%",
  139. width: "80%",
  140. maximizable : false,
  141. buttonAlign : 'center',
  142. layout : 'anchor',
  143. items: [{
  144. xtype: 'erpGridPanel2',
  145. anchor: '100% 100%',
  146. id:'errorgrid',
  147. condition: 'mm_mpsid='+id,
  148. caller:'MRPmessage',
  149. bbar:{},
  150. listeners:{
  151. itemclick: function(selModel, record){
  152. me.GridUtil.onGridItemClick(selModel, record);
  153. }
  154. },
  155. plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
  156. clicksToEdit: 1
  157. })],
  158. }],
  159. bbar: ['->',{
  160. text:'导出',
  161. iconCls: 'x-button-icon-excel',
  162. cls: 'x-btn-gray',
  163. handler: function(btn){
  164. me.BaseUtil.createExcel('MRPmessage', 'detailgrid', 'mm_mpsid='+id,'错误信息');
  165. }
  166. },{
  167. text:'关闭',
  168. cls: 'x-btn-gray',
  169. iconCls: 'x-button-icon-close',
  170. listeners: {
  171. click: function(){
  172. win.close();
  173. }
  174. }
  175. },'->']
  176. });
  177. win.show();
  178. }
  179. },
  180. 'button[id=close]':{
  181. click:function(btn){
  182. var main = parent.Ext.getCmp("content-panel");
  183. main.getActiveTab().close();
  184. }
  185. },
  186. });
  187. },
  188. onGridItemClick: function(selModel, record){//grid行选择
  189. this.GridUtil.onGridItemClick(selModel, record);
  190. },
  191. getForm: function(btn){
  192. return btn.ownerCt.ownerCt;
  193. },
  194. save: function(btn){
  195. var me = this;
  196. if(Ext.getCmp('team_code').value == null || Ext.getCmp('team_code').value == ''){
  197. me.BaseUtil.getRandomNumber();
  198. }
  199. me.FormUtil.beforeSave(me);
  200. },
  201. changeGrid: function(trigger){
  202. var grid = Ext.getCmp('grid');
  203. Ext.Array.each(grid.store.data.items, function(item){
  204. item.set('tm_prjid',trigger.value);
  205. });
  206. },
  207. ExecuteOperation:function(){
  208. var code=Ext.getCmp('mm_code').getValue();
  209. /* var main = parent.Ext.getCmp('content-panel');*/
  210. var mb = new Ext.window.MessageBox();
  211. mb.wait('正在运算中','请稍后...',{
  212. interval: 10000, //bar will move fast!
  213. duration: 1000000,
  214. increment: 20,
  215. /* text: 'Runing...',*/
  216. scope: this,
  217. });
  218. Ext.Ajax.request({//拿到grid的columns
  219. url : basePath + 'pm/mps/RunMrp.action',
  220. params: {
  221. code:code
  222. },
  223. method : 'post',
  224. timeout: 600000,
  225. callback : function(options,success,response){
  226. mb.close();
  227. var res = new Ext.decode(response.responseText);
  228. if(res.exceptionInfo){
  229. showError(res.exceptionInfo);
  230. return;
  231. }else if(res.success){
  232. Ext.Msg.alert('提示',res.message,function(){
  233. if(res.message=='运算成功') window.location.href=basePath+"jsps/pm/mps/MpsDesk.jsp?kind=MRP&&code="+code;
  234. });
  235. }
  236. }
  237. });
  238. }
  239. }
  240. );