ECN.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.bom.ECN', {
  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.ECN','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar','core.form.FileField',
  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.Print','core.button.Delete','core.form.YnField','core.button.ECNCheck',
  12. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.grid.YnColumn','core.button.Location'
  13. ],
  14. init:function(){
  15. var me = this;
  16. this.control({
  17. 'erpGridPanel2': {
  18. itemclick: function(selModel, record){
  19. Ext.getCmp('location').setDisabled(false);
  20. Ext.getCmp('closedetail').setDisabled(false);
  21. Ext.getCmp('opendetail').setDisabled(false);
  22. if(!Ext.getCmp('grid').readOnly){
  23. this.onGridItemClick(selModel, record);
  24. }
  25. }
  26. },
  27. 'erpDeleteDetailButton': {
  28. afterrender: function(btn){
  29. btn.ownerCt.add({
  30. xtype: 'erpLocationButton'
  31. });
  32. btn.ownerCt.add({
  33. xtype:'button',
  34. text:'关闭明细行',
  35. width:120,
  36. iconCls: 'x-button-icon-check',
  37. cls: 'x-btn-gray',
  38. id:'closedetail',
  39. style: {
  40. marginLeft: '10px'
  41. },
  42. disabled:true,
  43. handler:function(){
  44. var grid=Ext.getCmp('grid');
  45. var record=grid.getSelectionModel().getLastSelected();
  46. grid.setLoading(true);
  47. Ext.Ajax.request({//拿到grid的columns
  48. url : basePath + "/pm/bom/closeECNDetail.action",
  49. params:{
  50. id:record.data.ed_id
  51. },
  52. method : 'post',
  53. callback : function(options,success,response){
  54. grid.setLoading(false);
  55. var res = new Ext.decode(response.responseText);
  56. if(res.exceptionInfo){
  57. showError(res.exceptionInfo);return;
  58. }else if(res.success){
  59. Ext.Msg.alert('提示','明细行关闭成功!');
  60. var condition='ed_ecnid='+Ext.getCmp('ecn_id').value;
  61. me.GridUtil.loadNewStore(grid,{caller:caller,condition:condition});
  62. }
  63. }
  64. });
  65. }
  66. });
  67. btn.ownerCt.add({
  68. xtype:'button',
  69. text:'打开明细行',
  70. width:120,
  71. iconCls: 'x-button-icon-check',
  72. cls: 'x-btn-gray',
  73. id:'opendetail',
  74. style: {
  75. marginLeft: '10px'
  76. },
  77. disabled:true,
  78. handler:function(){
  79. var grid=Ext.getCmp('grid');
  80. var record=grid.getSelectionModel().getLastSelected();
  81. grid.setLoading(true);
  82. Ext.Ajax.request({//拿到grid的columns
  83. url : basePath + "/pm/bom/openECNDetail.action",
  84. params:{
  85. id:record.data.ed_id
  86. },
  87. method : 'post',
  88. callback : function(options,success,response){
  89. grid.setLoading(false);
  90. var res = new Ext.decode(response.responseText);
  91. if(res.exceptionInfo){
  92. showError(res.exceptionInfo);return;
  93. }else if(res.success){
  94. Ext.Msg.alert('提示','明细行打开成功!');
  95. var condition='ed_ecnid='+Ext.getCmp('ecn_id').value;
  96. me.GridUtil.loadNewStore(grid,{caller:caller,condition:condition});
  97. }
  98. }
  99. });
  100. }
  101. });
  102. }
  103. },
  104. 'erpSaveButton': {
  105. click: function(btn){
  106. var form = me.getForm(btn);
  107. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  108. me.BaseUtil.getRandomNumber();//自动添加编号
  109. }
  110. this.FormUtil.beforeSave(this);
  111. }
  112. },
  113. 'erpCloseButton': {
  114. click: function(btn){
  115. this.FormUtil.beforeClose(this);
  116. }
  117. },
  118. 'erpUpdateButton': {
  119. click: function(btn){
  120. this.FormUtil.onUpdate(this);
  121. }
  122. },
  123. 'erpDeleteButton': {
  124. click: function(btn){
  125. me.FormUtil.onDelete(Ext.getCmp('ecn_id').value);
  126. }
  127. },
  128. 'erpAddButton': {
  129. click: function(){
  130. me.FormUtil.onAdd('addECN', '新增ECN资料', 'jsps/pm/bom/ECN.jsp');
  131. }
  132. },
  133. 'erpSubmitButton': {
  134. afterrender: function(btn){
  135. var status = Ext.getCmp('ecn_checkstatuscode');
  136. if(status && status.value != 'ENTERING'){
  137. btn.hide();
  138. }
  139. },
  140. click: function(btn){
  141. me.FormUtil.onSubmit(Ext.getCmp('ecn_id').value);
  142. }
  143. },
  144. 'erpResSubmitButton': {
  145. afterrender: function(btn){
  146. var status = Ext.getCmp('ecn_checkstatuscode');
  147. if(status && status.value != 'COMMITED'){
  148. btn.hide();
  149. }
  150. },
  151. click: function(btn){
  152. me.FormUtil.onResSubmit(Ext.getCmp('ecn_id').value);
  153. }
  154. },
  155. 'erpAuditButton': {
  156. afterrender: function(btn){
  157. var status = Ext.getCmp('ecn_checkstatuscode');
  158. if(status && status.value != 'COMMITED'){
  159. btn.hide();
  160. }
  161. },
  162. click: function(btn){
  163. me.FormUtil.onAudit(Ext.getCmp('ecn_id').value);
  164. }
  165. },
  166. 'erpResAuditButton': {
  167. afterrender: function(btn){
  168. var status = Ext.getCmp('ecn_checkstatuscode');
  169. if(status && status.value != 'AUDITED'){
  170. btn.hide();
  171. }
  172. },
  173. click: function(btn){
  174. me.FormUtil.onResAudit(Ext.getCmp('ecn_id').value);
  175. }
  176. },
  177. 'erpPrintButton': {
  178. click:function(btn){
  179. var reportName="EcnChange";
  180. var condition='{Ecn.ecn_id}='+Ext.getCmp('ecn_id').value+'';
  181. var id=Ext.getCmp('ecn_id').value;
  182. me.FormUtil.onwindowsPrint(id,reportName,condition);
  183. }
  184. },
  185. 'erpLocationButton': {
  186. click: function(btn){
  187. var grid = btn.ownerCt.ownerCt;
  188. var record = grid.selModel.lastSelected;
  189. var id = record.data['ed_id'];
  190. if(id != null && id != '' && id != 0 && id != '0'){
  191. me.FormUtil.onAdd('locationBOM' + id, '位置维护', 'jsps/pm/bom/ECNDetailLocation.jsp?_noc=1&formCondition=ed_id=' + id +
  192. "&gridCondition=edl_edid=" + id);
  193. }
  194. }
  195. },
  196. 'dbfindtrigger[name=ed_bddetno]': {
  197. focus: function(t){
  198. t.autoDbfind = false;
  199. //t.setHideTrigger(false);
  200. //t.setReadOnly(false);
  201. var record = Ext.getCmp('grid').selModel.getLastSelected();
  202. var bomid = record.data['ed_boid'];
  203. var type = record.data['ed_type'];
  204. if (type=='' || type == null){
  205. showError("请先选择操作类型 !");
  206. //t.setHideTrigger(true);
  207. //t.setReadOnly(true);
  208. return;
  209. }else{
  210. if(bomid=='' || bomid ==null) {
  211. showError("请先选择BOM编号 !");
  212. //t.setHideTrigger(true);
  213. //t.setReadOnly(true);
  214. return;
  215. }
  216. if(type=="ADD" ){//需指定BOM 序号
  217. showError("增加物料不需要选择BOM序号!");
  218. //t.setHideTrigger(true);
  219. //t.setReadOnly(true);
  220. return;
  221. }
  222. }
  223. t.dbBaseCondition = "bd_bomid='" + bomid + "'";
  224. },
  225. aftertrigger:function(t){
  226. var record = Ext.getCmp('grid').selModel.getLastSelected();
  227. var data=record.data;
  228. var type = record.data['ed_type'];
  229. if (type.indexOf("SWITCH")!=-1){
  230. record.set('ed_repcode',data['ed_soncode']);
  231. record.set('ed_soncode',null);
  232. record.set('ed_sonname',null);
  233. record.set('ed_sonspec',null);
  234. record.set('ed_repname',data['ed_sonname']);
  235. record.set('ed_repspec',data['ed_sonspec']);
  236. record.set('ed_newbaseqty',data['ed_oldbaseqty']); //替换的变更,默认新单位用量等于旧单位用量
  237. }
  238. }
  239. }
  240. });
  241. },
  242. onGridItemClick: function(selModel, record){//grid行选择
  243. this.GridUtil.onGridItemClick(selModel, record);
  244. },
  245. getForm: function(btn){
  246. return btn.ownerCt.ownerCt;
  247. }
  248. });