ProdReplace.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.bom.ProdReplace', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. GridUtil: Ext.create('erp.util.GridUtil'),
  7. views:[
  8. 'pm.bom.ProdReplace','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.button.DeleteDetail',
  10. 'core.button.Submit','core.button.ResSubmit','core.button.Audit','core.button.ResAudit',
  11. 'core.button.Update','core.button.Delete','core.form.YnField',
  12. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.button.SetMain'
  13. ],
  14. init:function(){
  15. var me = this;
  16. var main = parent.Ext.getCmp("content-panel");
  17. var activetab=main.getActiveTab();
  18. activetab.on('close',function(){
  19. var panelId=getUrlParam('panelId');
  20. var bomid =getUrlParam('bomid');
  21. var panel=parent.Ext.getCmp(panelId);
  22. if(panel){
  23. var grid=panel.currentGrid;
  24. me.GridUtil.loadNewStore(grid,{
  25. caller:'BOM',
  26. condition:"bd_bomid="+bomid
  27. });
  28. }
  29. });
  30. this.control({
  31. 'erpGridPanel2': {
  32. itemclick: function(selModel, record){
  33. if(!Ext.getCmp('grid').readOnly){
  34. this.onGridItemClick(selModel, record);
  35. }
  36. },
  37. storeloaded:function(){
  38. var panelId=getUrlParam('panelId');
  39. var bomid =getUrlParam('bomid');
  40. var panel=parent.Ext.getCmp(panelId);
  41. if(panel){
  42. var grid=panel.currentGrid;
  43. me.GridUtil.loadNewStore(grid,{
  44. caller:'BOM',
  45. condition:"bd_bomid="+bomid
  46. });
  47. }
  48. }
  49. },
  50. 'erpSaveButton': {
  51. afterrender:function(btn){
  52. var statuscode=Ext.getCmp('bo_statuscode');
  53. if (statuscode&&statuscode.getValue()!='ENTERING'){
  54. btn.hide();
  55. }
  56. },
  57. click: function(btn){
  58. var grid = Ext.getCmp('grid');
  59. var items = grid.store.data.items;
  60. var bool = true;
  61. Ext.each(items, function(item){
  62. if(item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ''){
  63. if(item.data['pre_baseqty'] == null || item.data['pre_baseqty'] == 0){
  64. bool = false;
  65. showError("明细第" + item.data['pre_detno'] + "行未填写单位数量,或需求为0");return;
  66. }
  67. }
  68. });
  69. if(bool){
  70. me.GridUtil.onSave(Ext.getCmp('grid'));
  71. }
  72. }
  73. },
  74. 'erpSetMainButton':{
  75. click:function(btn){
  76. var record = Ext.getCmp('grid').selModel.lastSelected;
  77. if(record){
  78. if (!confirm('确定要设置'+record.data.pre_repcode+'为主料?')){
  79. return;
  80. }
  81. Ext.Ajax.request({
  82. url : basePath + 'pm/bom/setMain.action',
  83. params: {
  84. pre_id:record.data.pre_id
  85. },
  86. method : 'post',
  87. callback : function(options,success,response){
  88. var localJson = new Ext.decode(response.responseText);
  89. if(localJson.exceptionInfo){
  90. showError(localJson.exceptionInfo);
  91. } else {
  92. if(localJson.success){
  93. window.location.reload();
  94. }
  95. }
  96. }
  97. });
  98. }else{
  99. Ext.Msg.alert("提示","请先选择明细!");
  100. }
  101. }
  102. },
  103. 'erpCloseButton': {
  104. click: function(btn){
  105. this.FormUtil.beforeClose(this);
  106. }
  107. },
  108. 'dbfindtrigger[name=bd_soncode]': {
  109. afterrender: function(t){
  110. t.dbKey = "bd_bomid";
  111. t.mappingKey = "bd_bomid";
  112. t.dbMessage = "请先选择BOMID!";
  113. },
  114. aftertrigger:function(field){
  115. var statuscode=Ext.getCmp('bo_statuscode');
  116. if (statuscode&&statuscode.getValue()!='ENTERING'){
  117. Ext.getCmp('updatebutton').hide();
  118. Ext.getCmp('deletebutton').hide();
  119. } else{
  120. Ext.getCmp('updatebutton').show();
  121. Ext.getCmp('deletebutton').show();
  122. }
  123. }
  124. },
  125. 'dbfindtrigger[name=bd_bomid]': {
  126. aftertrigger:function(field){
  127. var statuscode=Ext.getCmp('bo_statuscode');
  128. if (statuscode&&statuscode.getValue()!='ENTERING'){
  129. Ext.getCmp('updatebutton').hide();
  130. Ext.getCmp('deletebutton').hide();
  131. } else{
  132. Ext.getCmp('updatebutton').show();
  133. Ext.getCmp('deletebutton').show();
  134. }
  135. }
  136. },
  137. 'field[name=bd_id]': {
  138. change: function(f){
  139. if(f.value != null && f.value != ''){
  140. me.GridUtil.loadNewStore(Ext.getCmp('grid'), {
  141. caller: caller,
  142. condition: 'pre_bdid=' + f.value
  143. });
  144. Ext.getCmp('deletebutton').show();
  145. Ext.getCmp('updatebutton').show();
  146. //Ext.getCmp('save').hide();
  147. } else {
  148. Ext.getCmp('deletebutton').hide();
  149. Ext.getCmp('updatebutton').hide();
  150. //Ext.getCmp('save').show();
  151. }
  152. }
  153. },
  154. 'erpUpdateButton': {
  155. afterrender:function(btn){
  156. var statuscode=Ext.getCmp('bo_statuscode');
  157. if (statuscode&&statuscode.getValue()!='ENTERING'){
  158. btn.hide();
  159. }
  160. },
  161. click: function(btn){
  162. var grid = Ext.getCmp('grid');
  163. var items = grid.store.data.items;
  164. var bool = true;
  165. Ext.each(items, function(item){
  166. if(item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ''){
  167. if(item.data['pre_repcode'] == null || item.data['pre_repcode'] == '' ){
  168. bool = false;
  169. showError("明细第" + item.data['pre_detno'] + "行未填写替代料编号");return;
  170. }
  171. }
  172. });
  173. if(bool){
  174. me.GridUtil.onUpdate(Ext.getCmp('grid'));
  175. }
  176. }
  177. },
  178. 'erpDeleteButton' : {
  179. afterrender:function(btn){
  180. var statuscode=Ext.getCmp('bo_statuscode');
  181. if (statuscode&&statuscode.getValue()!='ENTERING'){
  182. btn.hide();
  183. }
  184. },
  185. click: function(btn){
  186. me.FormUtil.onDelete(Ext.getCmp('bd_id').value);
  187. }
  188. },
  189. 'erpAddButton': {
  190. click: function(){
  191. me.FormUtil.onAdd('addProdReplace', '新增BOM替代料维护', 'jsps/pm/bom/prodReplace.jsp');
  192. }
  193. }
  194. });
  195. },
  196. onGridItemClick: function(selModel, record){//grid行选择
  197. this.GridUtil.onGridItemClick(selModel, record);
  198. },
  199. getForm: function(btn){
  200. return btn.ownerCt.ownerCt;
  201. }
  202. });