WCPlan.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.make.WCPlan', {
  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. 'pm.make.WCPlan','core.form.Panel','pm.make.WCPlanGrid','core.grid.Panel2','core.button.DeleteAllDetails','core.button.LoadMake','core.button.LoadSale','core.button.ImportExcel',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.form.MultiField','core.button.Scan','core.button.ConfirmRange',
  10. 'core.button.Submit','core.button.ResSubmit','core.button.Audit','core.button.ResAudit','core.button.RunLackMaterial',
  11. 'core.button.Update','core.button.Delete','core.form.YnField','core.button.LoadMake','core.button.LackMateriallResult',
  12. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.button.InMaterialNeed','core.button.MaterialLackTwo',
  13. 'core.button.RunLackWip','core.button.WipNeed'],
  14. init:function(){
  15. var statuscode=null;
  16. var me = this;
  17. this.control({
  18. 'erpSaveButton': {
  19. click: function(btn){
  20. var form = me.getForm(btn);
  21. var codeField=Ext.getCmp(form.codeField);
  22. if(codeField.value == null || codeField.value == ''){
  23. me.BaseUtil.getRandomNumber();//自动添加编号
  24. codeField.setValue('WC_'+codeField.value);
  25. }
  26. this.FormUtil.beforeSave(this);
  27. }
  28. },
  29. 'erpCloseButton': {
  30. click: function(btn){
  31. this.FormUtil.beforeClose(this);
  32. }
  33. },
  34. 'erpGridPanel2':{
  35. itemclick: function(view,record){
  36. me.GridUtil.onGridItemClick(view,record);
  37. }
  38. },
  39. 'erpUpdateButton': {
  40. click: function(btn){
  41. this.update(this);
  42. },
  43. afterrender:function(btn){
  44. statuscode=Ext.getCmp('wc_statuscode').getValue();
  45. if(statuscode!='ENTERING'){
  46. btn.hide();
  47. }
  48. }
  49. },
  50. 'erpDeleteButton': {
  51. click: function(btn){
  52. me.FormUtil.onDelete(Ext.getCmp('wc_id').value);
  53. },
  54. afterrender:function(btn){
  55. statuscode=Ext.getCmp('wc_statuscode').getValue();
  56. if(statuscode!='ENTERING'){
  57. btn.hide();
  58. }
  59. }
  60. },
  61. 'erpAddButton': {
  62. click: function(btn){
  63. me.FormUtil.onAdd('addWCPlan', '新增生产排程', 'jsps/pm/make/WCPlan.jsp');
  64. }
  65. },
  66. 'erpConfirmRangeButton':{
  67. click: function(btn){
  68. var grid=Ext.getCmp('grid');
  69. var fromdate=Ext.getCmp('wc_fromdate').getValue();
  70. var todate=Ext.getCmp('wc_todate').getValue();
  71. var lastcolumns=new Array();
  72. Ext.Array.each(gridcolumns,function(item,m){
  73. if(item.dataIndex=='wd_date'){
  74. var columns=new Array();
  75. var count=(todate-fromdate)/86400000;
  76. for(var i=0;i<count+1;i++){
  77. columns.push({
  78. text:Ext.Date.format(Ext.Date.add(fromdate,Ext.Date.DAY,i),'Y-m-d'),
  79. dataIndex:Ext.Date.format(Ext.Date.add(fromdate,Ext.Date.DAY,i),'Y-m-d'),
  80. width : 100,
  81. sortable : true
  82. });
  83. }
  84. item.columns=columns;
  85. }
  86. lastcolumns[m]=item;
  87. });
  88. grid.reconfigure(grid.store,gridcolumns);
  89. grid.store.loadData(griddata);
  90. }
  91. },
  92. 'erpSubmitButton': {
  93. afterrender:function(btn){
  94. if(statuscode!='ENTERING'){
  95. btn.hide();
  96. }
  97. },
  98. click: function(btn){
  99. me.FormUtil.onSubmit(Ext.getCmp('wc_id').value);
  100. }
  101. },
  102. 'erpResSubmitButton': {
  103. afterrender:function(btn){
  104. if(statuscode!='COMMITED'){
  105. btn.hide();
  106. }
  107. },
  108. click: function(btn){
  109. me.FormUtil.onResSubmit(Ext.getCmp('wc_id').value);
  110. }
  111. },
  112. 'erpAuditButton': {
  113. afterrender:function(btn){
  114. if(statuscode!='COMMITED'){
  115. btn.hide();
  116. }
  117. },
  118. click: function(btn){
  119. me.FormUtil.onAudit(Ext.getCmp('wc_id').value);
  120. }
  121. },
  122. 'erpResAuditButton': {
  123. afterrender:function(btn){
  124. if(statuscode!='AUDITED'){
  125. btn.hide();
  126. }
  127. },
  128. click: function(btn){
  129. me.FormUtil.onResAudit(Ext.getCmp('wc_id').value);
  130. }
  131. },
  132. 'multifield[name=wc_recorder]':{
  133. beforerender:function(field){
  134. field.items.items[1].xtype='datefield';
  135. },
  136. afterrender:function(field){
  137. if(!field.secondvalue){
  138. field.items.items[1].setValue(Ext.Date.format(new Date(), 'Y-m-d'));
  139. }
  140. }
  141. },
  142. 'erpImportExcelButton':{
  143. afterrender:function(btn){
  144. if(statuscode!='ENTERING'){
  145. btn.hide();
  146. }
  147. },
  148. },
  149. 'filefield[id=excelfile]':{
  150. change: function(field){
  151. var filename = '';
  152. if(contains(field.value, "\\", true)){
  153. filename = field.value.substring(field.value.lastIndexOf('\\') + 1);
  154. } else {
  155. filename = field.value.substring(field.value.lastIndexOf('/') + 1);
  156. }
  157. field.ownerCt.getForm().submit({
  158. url: basePath + 'common/upload.action?em_code=' + em_code,
  159. waitMsg: "正在解析文件信息",
  160. success: function(fp,o){
  161. if(o.result.error){
  162. showError(o.result.error);
  163. } else {
  164. var filePath=o.result.filepath;
  165. var keyValue=Ext.getCmp('wc_id').getValue();
  166. Ext.Ajax.request({//拿到form的items
  167. url : basePath + 'pm/make/ImportExcel.action',
  168. params:{
  169. id:keyValue,
  170. fileId:filePath
  171. },
  172. method : 'post',
  173. callback : function(options,success,response){
  174. var result=Ext.decode(response.responseText);
  175. if(result.success){
  176. var grid=Ext.getCmp('grid');
  177. var param={
  178. caller:'WCPlan',
  179. condition:'wd_wcid='+keyValue
  180. };
  181. grid.GridUtil.loadNewStore(grid,param);
  182. }else{
  183. if(result.exceptionInfo != null){
  184. showError(res.exceptionInfo);return;
  185. }
  186. }
  187. }
  188. });
  189. }
  190. }
  191. });
  192. }
  193. },
  194. 'erpDeleteAllDetailsButton':{
  195. afterrender:function(btn){
  196. if(statuscode!='ENTERING'){
  197. btn.hide();
  198. }
  199. },
  200. click: function(btn){
  201. if (confirm('确定要清除所有明细行?')){
  202. me.DeleteAllDetails();
  203. }
  204. }
  205. },
  206. 'erpExportDetailButton':{
  207. afterrender:function(btn){
  208. var grid=Ext.getCmp('grid');
  209. var concount=Ext.getCmp('concount');
  210. if(!concount){
  211. btn.ownerCt.add({
  212. xtype:'tbtext',
  213. id:'concount',
  214. text:'总条数:'+grid.store.prefetchData.items.length
  215. });
  216. }
  217. }
  218. },
  219. 'erpLoadSaleButton':{
  220. afterrender:function(btn){
  221. if(statuscode!='ENTERING'){
  222. btn.hide();
  223. }
  224. },
  225. click:function(btn){
  226. var form=Ext.getCmp('form');
  227. var keyField=form.keyField;
  228. var KeyValue=Ext.getCmp(keyField).value;
  229. if(KeyValue==null||KeyValue==''){
  230. showError('请先保存记录');
  231. }
  232. var me = this;
  233. var url = basePath + "jsps/pm/make/SaleResource.jsp";
  234. var panel = Ext.getCmp("sourceid=" +KeyValue);
  235. var main = parent.Ext.getCmp("content-panel");
  236. var panelId= main.getActiveTab().id;
  237. var urlcondition=" (sd_code,sd_detno) not in (select wd_salecode,wd_saledetno from wcplandetail where wd_wcid="+KeyValue+" and wd_saledetno>0 and NVL(wd_makecode,' ')=' ')";
  238. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  239. if(!panel){
  240. var title = "";
  241. if (KeyValue.toString().length>4) {
  242. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  243. } else {
  244. title = KeyValue;
  245. }
  246. panel = {
  247. title:'生产销售排程来源('+KeyValue+')',
  248. tag : 'iframe',
  249. tabConfig:{tooltip:'生产销售排程来源('+title+')'},
  250. frame : true,
  251. border : false,
  252. layout : 'fit',
  253. iconCls : 'x-tree-icon-tab-tab',
  254. html : '<iframe id="iframe_maindetail_'+caller+"_"+KeyValue+'" src="'+url+'?urlcondition='+urlcondition+'&whoami=WCPlanSaleSource&_noc=1&keyValue='+KeyValue+'&panelId='+panelId+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  255. closable : true,
  256. listeners : {
  257. close : function(){
  258. main.setActiveTab(main.getActiveTab().id);
  259. }
  260. }
  261. };
  262. me.FormUtil.openTab(panel,"sourceid=" + KeyValue);
  263. }else{
  264. main.setActiveTab(panel);
  265. }
  266. }
  267. },
  268. 'erpLoadMakeButton':{
  269. afterrender:function(btn){
  270. if(statuscode!='ENTERING'){
  271. btn.hide();
  272. }
  273. },
  274. click: function(btn){
  275. var form=Ext.getCmp('form');
  276. var keyField=form.keyField;
  277. var KeyValue=Ext.getCmp(keyField).value;
  278. if(KeyValue==null||KeyValue==''){
  279. showError('请先保存记录');
  280. }
  281. var me = this;
  282. var url=basePath+"jsps/pm/make/makeResource.jsp";
  283. var panel = Ext.getCmp("sourceid=" +KeyValue);
  284. var main = parent.Ext.getCmp("content-panel");
  285. var panelId= main.getActiveTab().id;
  286. var urlcondition=" ma_code not in (select wd_makecode from wcplandetail where wd_wcid="+KeyValue+" and wd_makecode<>' ')";
  287. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  288. if(!panel){
  289. var title = "";
  290. if (KeyValue.toString().length>4) {
  291. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  292. } else {
  293. title = KeyValue;
  294. }
  295. panel = {
  296. title:'生产排程来源('+KeyValue+')',
  297. tag : 'iframe',
  298. tabConfig:{tooltip:'生产排程来源('+title+')'},
  299. frame : true,
  300. border : false,
  301. layout : 'fit',
  302. iconCls : 'x-tree-icon-tab-tab',
  303. html : '<iframe id="iframe_maindetail_'+caller+"_"+KeyValue+'" src="'+url+'?urlcondition='+urlcondition+'&whoami=WCPlanSource&_noc=1&keyValue='+KeyValue+'&panelId='+panelId+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  304. closable : true,
  305. listeners : {
  306. close : function(){
  307. main.setActiveTab(main.getActiveTab().id);
  308. }
  309. }
  310. };
  311. me.FormUtil.openTab(panel,"sourceid=" + KeyValue);
  312. }else{
  313. main.setActiveTab(panel);
  314. }
  315. }
  316. },
  317. 'erpRunLackMaterialButton':{
  318. afterrender:function(btn){
  319. if(statuscode!='AUDITED'){
  320. btn.hide();
  321. }
  322. },
  323. click: function(btn){
  324. if (!confirm('确定要运算缺料?')){
  325. return;
  326. }
  327. var code = Ext.getCmp('wc_code').getValue();
  328. var mb = new Ext.window.MessageBox();
  329. mb.wait('正在运算中','请稍后...');
  330. Ext.Ajax.request({//拿到form的items
  331. url : basePath + "pm/make/RunLackMaterial.action",
  332. params:{
  333. caller:caller,
  334. code:code
  335. },
  336. method : 'post',
  337. timeout: 300000,
  338. callback : function(options,success,response){
  339. mb.close();
  340. var result=Ext.decode(response.responseText);
  341. if(result.success){
  342. Ext.Msg.alert('提示',result.message,function(){
  343. window.location.reload();
  344. });
  345. }else{
  346. if(result.exceptionInfo != null){
  347. showError(result.exceptionInfo);return;
  348. }
  349. }
  350. }
  351. });
  352. }
  353. },
  354. 'erpRunLackWipButton':{
  355. afterrender:function(btn){
  356. if(statuscode!='AUDITED'){
  357. btn.hide();
  358. }
  359. },
  360. click: function(btn){
  361. if (!confirm('确定要运算线边仓的缺料?')){
  362. return;
  363. }
  364. var code = Ext.getCmp('wc_code').getValue();
  365. var mb = new Ext.window.MessageBox();
  366. mb.wait('正在运算中','请稍后...');
  367. Ext.Ajax.request({//拿到form的items
  368. url : basePath + "pm/make/RunLackWip.action",
  369. params:{
  370. caller:caller,
  371. code:code
  372. },
  373. method : 'post',
  374. timeout: 300000,
  375. callback : function(options,success,response){
  376. mb.close();
  377. var result=Ext.decode(response.responseText);
  378. if(result.success){
  379. Ext.Msg.alert('提示','运算成功!',function(){
  380. window.location.reload();
  381. });
  382. }else{
  383. if(result.exceptionInfo != null){
  384. showError(result.exceptionInfo);return;
  385. }
  386. }
  387. }
  388. });
  389. }
  390. },
  391. 'erpLackMateriallResultButton':{
  392. afterrender:function(btn){
  393. if(statuscode!='AUDITED'){
  394. btn.hide();
  395. }
  396. },
  397. click: function(btn){
  398. var form=Ext.getCmp('form');
  399. var keyField=form.keyField;
  400. var KeyValue=Ext.getCmp(keyField).value;
  401. if(KeyValue==null||KeyValue==''){
  402. showError('请先保存记录');
  403. }
  404. var me = this;
  405. //var url=basePath+"jsps/pm/make/WCPlanResult.jsp";
  406. var url=basePath+"jsps/common/queryDetail.jsp";
  407. var panel = Ext.getCmp("lackResultid=" +KeyValue);
  408. var main = parent.Ext.getCmp("content-panel");
  409. var urlCondition='ml_planid='+KeyValue;
  410. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  411. if(!panel){
  412. var title = "";
  413. if (KeyValue.toString().length>4) {
  414. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  415. } else {
  416. title = KeyValue;
  417. }
  418. panel = {
  419. title:'排产缺料运算结果('+KeyValue+')',
  420. tag : 'iframe',
  421. tabConfig:{tooltip:'排产缺料运算结果('+title+')'},
  422. frame : true,
  423. border : false,
  424. layout : 'fit',
  425. iconCls : 'x-tree-icon-tab-tab',
  426. html : '<iframe id="iframe_maindetail_'+caller+"_"+KeyValue+'" src="'+url+'?whoami=MaterialLackForWCPlan&_noc=1&urlcondition='+urlCondition+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  427. closable : true,
  428. listeners : {
  429. close : function(){
  430. main.setActiveTab(main.getActiveTab().id);
  431. }
  432. }
  433. };
  434. me.FormUtil.openTab(panel,"lackResultid=" + KeyValue);
  435. }else{
  436. main.setActiveTab(panel);
  437. }
  438. }
  439. },
  440. 'erpMaterialLackTwoButton':{
  441. afterrender:function(btn){
  442. if(statuscode!='AUDITED'){
  443. btn.hide();
  444. }
  445. btn.hide();//强制不显示,以免导致死机
  446. },
  447. click: function(btn){
  448. var form=Ext.getCmp('form');
  449. var keyField=form.keyField;
  450. var KeyValue=Ext.getCmp(keyField).value;
  451. var startdate=Ext.getCmp('wc_fromdate').value;
  452. var enddate=Ext.getCmp('wc_todate').value;
  453. if(KeyValue==null||KeyValue==''){
  454. showError('请先保存记录');
  455. }
  456. var me = this;
  457. var url=basePath+"jsps/pm/make/WCPlanMaterialLack.jsp";
  458. var panel = Ext.getCmp("towsourceid=" +KeyValue);
  459. var main = parent.Ext.getCmp("content-panel");
  460. var urlCondition='ml_planid='+KeyValue;
  461. url=url+"?whoami=MaterialLackForWCPlan&_noc=1&urlcondition="+urlCondition+"&startdate="+startdate+"&enddate="+enddate;
  462. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  463. if(!panel){
  464. var title = "";
  465. if (KeyValue.toString().length>4) {
  466. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  467. } else {
  468. title = KeyValue;
  469. }
  470. panel = {
  471. title:'排产缺料二维查看('+KeyValue+')',
  472. tag : 'iframe',
  473. tabConfig:{tooltip:'排产缺料二维查看('+title+')'},
  474. frame : true,
  475. border : false,
  476. layout : 'fit',
  477. iconCls : 'x-tree-icon-tab-tab',
  478. html : '<iframe id="iframe_maindetail_'+caller+"_"+KeyValue+'" src="'+url+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  479. closable : true,
  480. listeners : {
  481. close : function(){
  482. main.setActiveTab(main.getActiveTab().id);
  483. }
  484. }
  485. };
  486. me.FormUtil.openTab(panel,"twosourceid=" + KeyValue);
  487. }else{
  488. main.setActiveTab(panel);
  489. }
  490. }
  491. },
  492. 'erpInMaterialNeedButton':{
  493. afterrender:function(btn){
  494. if(statuscode!='AUDITED'){
  495. btn.hide();
  496. }
  497. },
  498. click:function(btn){
  499. var form=Ext.getCmp('form');
  500. var keyField=form.keyField;
  501. var KeyValue=Ext.getCmp(keyField).value;
  502. if(KeyValue==null||KeyValue==''){
  503. showError('请先保存记录');
  504. }
  505. var me = this;
  506. var url=basePath+"jsps/pm/make/MaterialLackForNotify.jsp";
  507. var panel = Ext.getCmp("lackNotify=" +KeyValue);
  508. var main = parent.Ext.getCmp("content-panel");
  509. var urlCondition='mln_planid='+KeyValue;
  510. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  511. if(!panel){
  512. var title = "";
  513. if (KeyValue.toString().length>4) {
  514. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  515. } else {
  516. title = KeyValue;
  517. }
  518. panel = {
  519. title:'送货需求('+KeyValue+')',
  520. tag : 'iframe',
  521. tabConfig:{tooltip:'送货需求('+title+')'},
  522. frame : true,
  523. border : false,
  524. layout : 'fit',
  525. iconCls : 'x-tree-icon-tab-tab',
  526. html : '<iframe id="iframe_maindetail_'+caller+"_"+KeyValue+'" src="'+url+'?whoami=MaterialLackForNotify&_noc=1&urlcondition='+urlCondition+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  527. closable : true,
  528. listeners : {
  529. close : function(){
  530. main.setActiveTab(main.getActiveTab().id);
  531. }
  532. }
  533. };
  534. me.FormUtil.openTab(panel,"lackNotify=" + KeyValue);
  535. }else{
  536. main.setActiveTab(panel);
  537. }
  538. }
  539. },
  540. 'erpWipNeedButton':{
  541. afterrender:function(btn){
  542. if(statuscode!='AUDITED'){
  543. btn.hide();
  544. }
  545. },
  546. click:function(btn){
  547. var form=Ext.getCmp('form');
  548. var keyField=form.keyField;
  549. var KeyValue=Ext.getCmp(keyField).value;
  550. if(KeyValue==null||KeyValue==''){
  551. showError('请先保存记录');
  552. }
  553. var me = this;
  554. var url=basePath+"jsps/pm/make/MaterialLackForPull.jsp";
  555. var panel = Ext.getCmp("WipNeed=" +KeyValue);
  556. var main = parent.Ext.getCmp("content-panel");
  557. var urlCondition='mlp_planid='+KeyValue;
  558. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  559. if(!panel){
  560. var title = "";
  561. if (KeyValue.toString().length>4) {
  562. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  563. } else {
  564. title = KeyValue;
  565. }
  566. panel = {
  567. title:'线边仓需求('+KeyValue+')',
  568. tag : 'iframe',
  569. tabConfig:{tooltip:'线边仓需求('+title+')'},
  570. frame : true,
  571. border : false,
  572. layout : 'fit',
  573. iconCls : 'x-tree-icon-tab-tab',
  574. html : '<iframe id="iframe_WipNeed_'+caller+"_"+KeyValue+'" src="'+url+'?whoami=MaterialLackForPull&_noc=1&urlcondition='+urlCondition+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  575. closable : true,
  576. listeners : {
  577. close : function(){
  578. main.setActiveTab(main.getActiveTab().id);
  579. }
  580. }
  581. };
  582. me.FormUtil.openTab(panel,"WipNeed=" + KeyValue);
  583. }else{
  584. main.setActiveTab(panel);
  585. }
  586. }
  587. }
  588. });
  589. },
  590. getForm: function(btn){
  591. return btn.ownerCt.ownerCt;
  592. },
  593. DeleteAllDetails:function(){
  594. var id=Ext.getCmp('wc_id').getValue();
  595. Ext.Ajax.request({//拿到form的items
  596. url : basePath + 'pm/make/deleteAllDetails.action',
  597. params:{
  598. id:id,
  599. },
  600. method : 'post',
  601. callback : function(options,success,response){
  602. var result=Ext.decode(response.responseText);
  603. if(result.success){
  604. var grid=Ext.getCmp('grid');
  605. var param={
  606. caller:'WCPlan',
  607. condition:'wd_wcid='+id
  608. };
  609. grid.GridUtil.loadNewStore(grid,param);
  610. }else{
  611. if(res.exceptionInfo != null){
  612. showError(res.exceptionInfo);return;
  613. }
  614. }
  615. }
  616. });
  617. },
  618. update:function(grid){
  619. var mm = this.FormUtil;
  620. var form = Ext.getCmp('form');
  621. /*var s1 = mm.checkFormDirty(form);
  622. var s2 = '';*/
  623. var grid = Ext.getCmp('grid');
  624. /*if(grid.GridUtil){
  625. var msg = grid.checkGridDirty(grid);
  626. if(msg.length > 0){
  627. s2 = s2 + '<br/>' + grid.checkGridDirty(grid);
  628. }
  629. }
  630. if(s1 == '' && (s2 == '' || s2 == '<br/>')){
  631. showError($I18N.common.form.emptyData + '<br/>' + $I18N.common.grid.emptyDetail);
  632. return;
  633. }*/
  634. if(form && form.getForm().isValid()){
  635. //form里面数据
  636. var r = form.getValues(false, true);
  637. //去除ignore字段
  638. var keys = Ext.Object.getKeys(r), f;
  639. Ext.each(keys, function(k){
  640. f = form.down('#' + k);
  641. if(f && f.logic == 'ignore') {
  642. delete r[k];
  643. }
  644. });
  645. if(!mm.contains(form.updateUrl, '?caller=', true)){
  646. form.updateUrl = form.updateUrl + "?caller=" + caller;
  647. }
  648. var params = [];
  649. var param = grid.GridUtil.getGridStore();
  650. if(grid.necessaryField.length > 0 && (param == null || param == '')){
  651. warnMsg('明细表还未添加数据,是否继续?', function(btn){
  652. if(btn == 'yes'){
  653. params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  654. } else {
  655. return;
  656. }
  657. });
  658. } else {
  659. params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  660. }
  661. mm.update(r, params);
  662. }else{
  663. mm.checkForm(form);
  664. }
  665. },
  666. onSubmit:function(id){
  667. var me = this;
  668. var form = Ext.getCmp('form');
  669. var grid = Ext.getCmp('grid');
  670. var s2='';
  671. if(form && form.getForm().isValid()){
  672. var s = this.FormUtil.checkFormDirty(form);
  673. var param = me.GridUtil.getAllGridStore();
  674. if(grid.necessaryField.length > 0 && (param == null || param == '')){
  675. showError("明细表还未添加数据,无法提交!");
  676. return;
  677. }
  678. if(grid.GridUtil){
  679. var msg = grid.GridUtil.checkGridDirty(grid);
  680. if(msg.length > 0){
  681. s2 = s2 + '<br/>' + grid.GridUtil.checkGridDirty(grid);
  682. }
  683. }
  684. if(s2 == '' || s2 == '<br/>'){
  685. me.FormUtil.submit(id);
  686. } else {
  687. Ext.MessageBox.show({
  688. title:'保存修改?',
  689. msg: '该单据已被修改:<br/>' + s + '<br/>提交前要先保存吗?',
  690. buttons: Ext.Msg.YESNOCANCEL,
  691. icon: Ext.Msg.WARNING,
  692. fn: function(btn){
  693. if(btn == 'yes'){
  694. me.FormUtil.onUpdate(form);
  695. } else if(btn == 'no'){
  696. me.FormUtil.submit(id);
  697. } else {
  698. return;
  699. }
  700. }
  701. });
  702. }
  703. } else {
  704. me.FormUtil.checkForm();
  705. }
  706. },
  707. });