ModifyForm.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.make.ModifyForm', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
  5. views:[
  6. 'core.form.Panel','pm.make.MakeCommon','core.grid.Panel2','core.toolbar.Toolbar','core.form.YnField',
  7. 'core.button.Save','core.button.Add','core.button.Close','core.button.Delete','core.button.Update',
  8. 'core.trigger.DbfindTrigger'
  9. ],
  10. init:function(){
  11. var me = this;
  12. me.FormUtil = Ext.create('erp.util.FormUtil');
  13. me.GridUtil = Ext.create('erp.util.GridUtil');
  14. me.BaseUtil = Ext.create('erp.util.BaseUtil');
  15. this.control({
  16. 'erpGridPanel2': {
  17. afterrender: function(grid){
  18. grid.setReadOnly(true);
  19. },
  20. itemclick:me.ItemClick
  21. },
  22. 'dbfindtrigger[name=mm_prodcode]': {
  23. /*focus: function(t){
  24. var grid = parent.Ext.getCmp('grid');
  25. var c = null;
  26. Ext.each(grid.store.data.items, function(item){
  27. if(item.data['mm_prodcode'] != null && item.data['mm_prodcode'] != ''){
  28. if(c == null){
  29. c = "(pr_code<>'" + item.data['mm_prodcode'] + "'";
  30. } else {
  31. c += " and pr_code<>'" + item.data['mm_prodcode'] + "'";
  32. }
  33. }
  34. });
  35. if(c != null){
  36. t.dbBaseCondition = c + ")";
  37. }
  38. }*/
  39. },
  40. 'erpSaveButton' :{
  41. click:function(btn){
  42. //this.FormUtil.beforeSave(this);
  43. var form=me.getForm(btn);
  44. var r = form.getValues();
  45. var keys = Ext.Object.getKeys(r), f;
  46. Ext.each(keys, function(k){
  47. f = form.down('#' + k);
  48. if(f && f.logic == 'ignore') {
  49. delete r[k];
  50. }
  51. });
  52. me.FormUtil.setLoading(true);
  53. Ext.Ajax.request({
  54. url : basePath + form.saveUrl,
  55. params : {
  56. formStore: unescape(Ext.JSON.encode(r).replace(/\\/g,"%")),
  57. _noc:1
  58. },
  59. method : 'post',
  60. callback : function(options,success,response){
  61. me.FormUtil.setLoading(false);
  62. var localJson = new Ext.decode(response.responseText);
  63. if(localJson.success){
  64. saveSuccess(function(){
  65. //add成功后刷新页面进入可编辑的页面
  66. var value = localJson.Id;
  67. var formCondition = "mm_id IS" + value ;
  68. if(me.FormUtil.contains(window.location.href, '?', true)){
  69. var href=window.location.href;
  70. window.location.href = href.substring(0,href.lastIndexOf('&')) + '&whoami=&formCondition=' +
  71. formCondition;
  72. } else {
  73. window.location.href = window.location.href + '?formCondition=' +
  74. formCondition;
  75. }
  76. });
  77. } else if(localJson.exceptionInfo){
  78. var str = localJson.exceptionInfo;
  79. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  80. str = str.replace('AFTERSUCCESS', '');
  81. saveSuccess(function(){
  82. //add成功后刷新页面进入可编辑的页面
  83. var value = r[form.keyField];
  84. var formCondition = form.keyField + "IS" + value ;
  85. if(me.contains(window.location.href, '?', true)){
  86. window.location.href = window.location.href + '&formCondition=' +
  87. formCondition ;
  88. } else {
  89. window.location.href = window.location.href + '?formCondition=' +
  90. formCondition;
  91. }
  92. });
  93. showError(str);
  94. } else {
  95. showError(str);
  96. return;
  97. }
  98. } else{
  99. saveFailure();//@i18n/i18n.js
  100. }
  101. }
  102. });
  103. }
  104. },
  105. 'erpDeleteButton': {
  106. click: function(btn){
  107. //me.GridUtil.deleteDetailForEditGrid(btn);
  108. var grid = parent.Ext.getCmp('grid');
  109. var records = grid.selModel.getSelection();
  110. Ext.Ajax.request({
  111. url : basePath + "pm/make/deleteModifyMaterial.action",
  112. params: {
  113. id: records[0].data[grid.keyField]
  114. },
  115. method : 'post',
  116. callback : function(options,success,response){
  117. grid.BaseUtil.getActiveTab().setLoading(false);
  118. var localJson = new Ext.decode(response.responseText);
  119. if(localJson.exceptionInfo){
  120. showError(localJson.exceptionInfo);return;
  121. }
  122. if(localJson.success){
  123. grid.store.remove(records[0]);
  124. delSuccess(function(){
  125. });//@i18n/i18n.js
  126. parent.Ext.getCmp('win').close();
  127. } else {
  128. delFailure();
  129. }
  130. }
  131. });
  132. },
  133. },
  134. 'erpCloseButton':{
  135. click:function(btn){
  136. parent.Ext.getCmp('win').close();
  137. }
  138. },
  139. 'erpAddButton': {
  140. click: function(btn){
  141. var form= me.getForm(btn);
  142. //form.getForm().reset(); 不行
  143. Ext.Array.each(form.items.items,function(item){
  144. if(item.name!='mm_maid'){
  145. item.setValue(null);
  146. }
  147. });
  148. }
  149. },
  150. 'field[name=mm_oneuseqty]': {
  151. change: function(f) {
  152. var v = f.value || 0,
  153. q = parent.Ext.getCmp('ma_qty');
  154. Ext.getCmp('mm_qty').setValue(v * q.value);
  155. }
  156. }
  157. });
  158. },
  159. getForm: function(btn){
  160. return btn.ownerCt.ownerCt;
  161. },
  162. ItemClick:function(view ,record){
  163. if(caller=='MakeBase!Sub'){
  164. Ext.getCmp('deletebutton').setDisabled(false);
  165. var form=view.ownerCt.ownerCt.items.items[0];
  166. form.getForm().setValues(record.data);
  167. }
  168. }
  169. });