ProdReplace.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.scm.product.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. 'scm.product.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 activetab = me.BaseUtil.getActiveTab();
  17. activetab.on('close',function(){
  18. var panelId=getUrlParam('panelId');
  19. var bomid =getUrlParam('bomid');
  20. var panel=parent.Ext.getCmp(panelId);
  21. if(panel){
  22. var grid=panel.currentGrid;
  23. me.GridUtil.loadNewStore(grid,{
  24. caller:'BOM',
  25. condition:"bd_bomid="+bomid
  26. });
  27. }
  28. });
  29. this.control({
  30. 'erpGridPanel2': {
  31. itemclick: function(selModel, record){
  32. if(!Ext.getCmp('grid').readOnly){
  33. this.onGridItemClick(selModel, record);
  34. }
  35. },
  36. storeloaded:function(){
  37. var panelId=getUrlParam('panelId');
  38. var bomid =getUrlParam('bomid');
  39. var panel=parent.Ext.getCmp(panelId);
  40. if(panel){
  41. var grid=panel.currentGrid;
  42. me.GridUtil.loadNewStore(grid,{
  43. caller:'BOM',
  44. condition:"bd_bomid="+bomid
  45. });
  46. }
  47. }
  48. },
  49. 'erpSaveButton': {
  50. afterrender:function(btn){
  51. var statuscode=Ext.getCmp('bo_statuscode');
  52. if (statuscode&&statuscode.getValue()!='ENTERING'){
  53. btn.hide();
  54. }
  55. },
  56. click: function(btn){
  57. var grid = Ext.getCmp('grid');
  58. var items = grid.store.data.items;
  59. var bool = true;
  60. Ext.each(items, function(item){
  61. if(item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ''){
  62. if(item.data['pre_baseqty'] == null || item.data['pre_baseqty'] == 0){
  63. bool = false;
  64. showError("明细第" + item.data['pre_detno'] + "行未填写单位数量,或需求为0");return;
  65. }
  66. }
  67. });
  68. if(bool){
  69. me.GridUtil.onSave(Ext.getCmp('grid'));
  70. }
  71. }
  72. },
  73. 'erpSetMainButton':{
  74. click:function(btn){
  75. var record = Ext.getCmp('grid').selModel.lastSelected;
  76. if(record){
  77. if (!confirm('确定要设置'+record.data.pre_repcode+'为主料?')){
  78. return;
  79. }
  80. Ext.Ajax.request({
  81. url : basePath + 'pm/bom/setMain.action',
  82. params: {
  83. pre_id:record.data.pre_id,
  84. caller:caller
  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. me.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. var soncode = Ext.getCmp('bd_soncode').value
  166. Ext.each(items, function(item){
  167. if(item.data[grid.necessaryField] != null && item.data[grid.necessaryField] != ''){
  168. if(item.data['pre_repcode'] == null || item.data['pre_repcode'] == '' ){
  169. bool = false;
  170. showError("明细第" + item.data['pre_detno'] + "行未填写替代料编号");return;
  171. }
  172. if( item.data['pre_repcode'] == soncode ){
  173. bool = false;
  174. showError("明细第" + item.data['pre_detno'] + "行替代料号不能和主料重复");return;
  175. }
  176. }
  177. });
  178. if(bool){
  179. me.GridUtil.onUpdate(Ext.getCmp('grid'));
  180. }
  181. }
  182. },
  183. 'erpDeleteDetailButton':{
  184. afterrender:function(btn){
  185. var statuscode=Ext.getCmp('bo_statuscode');
  186. if (statuscode&&statuscode.getValue()!='ENTERING'){
  187. btn.hide();
  188. }
  189. }
  190. }
  191. });
  192. },
  193. onGridItemClick: function(selModel, record){//grid行选择
  194. this.GridUtil.onGridItemClick(selModel, record);
  195. },
  196. getForm: function(btn){
  197. return btn.ownerCt.ownerCt;
  198. }
  199. });