Check.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.bom.Check', {
  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.Check','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar','core.form.MultiField','core.form.FileField',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.button.DeleteDetail','pm.bom.ECRChangeGrid',
  10. 'core.button.Submit','core.button.ResSubmit','core.button.Audit','core.button.ResAudit',
  11. 'core.button.Update','core.button.Delete','core.form.YnField','core.button.TurnECN',
  12. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.grid.YnColumn','core.button.Location','core.button.Print'
  13. ],
  14. init:function(){
  15. var me = this;
  16. this.control({
  17. 'erpGridPanel2': {
  18. /*afterrender: function(btn){
  19. console.log(Ext.getCmp('grid'));
  20. Ext.getCmp('grid').readOnly = false;
  21. },*/
  22. itemclick: function(selModel, record){
  23. Ext.getCmp('location').setDisabled(false);
  24. this.GridUtil.onGridItemClick(selModel, record);
  25. }
  26. },
  27. 'erpDeleteDetailButton': {
  28. afterrender: function(btn){
  29. if(btn.ownerCt.ownerCt.xtype=='erpGridPanel2'){
  30. btn.ownerCt.add({
  31. xtype: 'erpLocationButton'
  32. });
  33. }
  34. }
  35. },
  36. 'textareafield[name=ecr_tempb]':{
  37. beforerender:function(field){
  38. field.labelAlign='top';
  39. field.height=200;
  40. field.fieldStyle=field.fieldStyle+';font-weight:700;font-color:#0A0A0A;';
  41. }
  42. },
  43. 'textareafield[name=ecr_tempc]':{
  44. beforerender:function(field){
  45. field.labelAlign='top';
  46. field.height=200;
  47. field.fieldStyle=field.fieldStyle+';font-weight:700;font-color:#0A0A0A;';
  48. }
  49. },
  50. 'erpSaveButton': {
  51. click: function(btn){
  52. var form = me.getForm(btn);
  53. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  54. me.BaseUtil.getRandomNumber();//自动添加编号
  55. }
  56. this.FormUtil.beforeSave(this);
  57. }
  58. },
  59. 'erpCloseButton': {
  60. click: function(btn){
  61. this.FormUtil.beforeClose(this);
  62. }/*,
  63. afterrender:function(btn){
  64. var form=btn.ownerCt.ownerCt;
  65. var bool=false;
  66. var insertId=0;
  67. var keys=form.items.keys;
  68. Ext.Array.each(keys,function(key,index){
  69. if(key=='ecr_tempc'){
  70. insertId=index;
  71. bool=true;
  72. return;
  73. }
  74. });
  75. if(bool){
  76. var tempb=Ext.getCmp('ecr_tempb').value;
  77. var tempc=Ext.getCmp('ecr_tempc').value;
  78. form.insert(insertId+1,{
  79. title:'变更前后',
  80. columnWidth:1,
  81. griddata:{
  82. tempb:tempb,
  83. tempc:tempc
  84. },
  85. xtype:'erpECRChangeGridPanel'
  86. });
  87. }
  88. }*/
  89. },
  90. 'erpUpdateButton': {
  91. click: function(btn){
  92. this.FormUtil.onUpdate(this);
  93. }
  94. },
  95. 'erpDeleteButton': {
  96. click: function(btn){
  97. me.FormUtil.onDelete(Ext.getCmp('ecr_id').value);
  98. }
  99. },
  100. 'erpAddButton': {
  101. click: function(){
  102. me.FormUtil.onAdd('addCheck', '新增ECR资料', 'jsps/pm/bom/check.jsp');
  103. }
  104. },
  105. 'erpSubmitButton': {
  106. afterrender: function(btn){
  107. var status = Ext.getCmp('ecr_checkstatus2code');
  108. if(status && status.value != 'ENTERING'){
  109. btn.hide();
  110. }
  111. },
  112. click: function(btn){
  113. me.onSubmit(Ext.getCmp('ecr_id').value);
  114. }
  115. },
  116. 'erpResSubmitButton': {
  117. afterrender: function(btn){
  118. var status = Ext.getCmp('ecr_checkstatus2code');
  119. if(status && status.value != 'COMMITED'){
  120. btn.hide();
  121. }
  122. },
  123. click: function(btn){
  124. me.FormUtil.onResSubmit(Ext.getCmp('ecr_id').value);
  125. }
  126. },
  127. 'erpPrintButton': {
  128. click:function(btn){
  129. var reportName="EcrAudit";
  130. var condition='{ECR.ecr_id}='+Ext.getCmp('ecr_id').value+'';
  131. var id=Ext.getCmp('ecr_id').value;
  132. me.FormUtil.onwindowsPrint(id,reportName,condition);
  133. }
  134. },
  135. 'erpAuditButton': {
  136. afterrender: function(btn){
  137. var status = Ext.getCmp('ecr_checkstatus2code');
  138. if(status && status.value != 'COMMITED'){
  139. btn.hide();
  140. }
  141. },
  142. click: function(btn){
  143. me.FormUtil.onAudit(Ext.getCmp('ecr_id').value);
  144. }
  145. },
  146. 'erpResAuditButton': {
  147. afterrender: function(btn){
  148. var status = Ext.getCmp('ecr_checkstatus2code');
  149. if(status && status.value != 'AUDITED'){
  150. btn.hide();
  151. }
  152. },
  153. click: function(btn){
  154. me.FormUtil.onResAudit(Ext.getCmp('ecr_id').value);
  155. }
  156. },
  157. 'erpLocationButton': {
  158. click: function(btn){
  159. var grid = btn.ownerCt.ownerCt;
  160. var record = grid.selModel.lastSelected;
  161. var id = record.data['ecrd_id'];
  162. if(id != null && id != '' && id != 0 && id != '0'){
  163. me.FormUtil.onAdd('locationBOM' + id, '位置维护', 'jsps/pm/bom/ECRDetailLocation.jsp?_noc=1&formCondition=ecrd_id=' + id +
  164. "&gridCondition=edl_ecrdid=" + id);
  165. }
  166. }
  167. },
  168. 'erpTurnECNButton': {
  169. afterrender: function(btn){
  170. var status = Ext.getCmp('ecr_checkstatus2code');
  171. if(status && status.value != 'AUDITED'){
  172. btn.hide();
  173. }
  174. },
  175. click: function(btn){
  176. warnMsg("确定要转入工程变更单吗?", function(btn){
  177. if(btn == 'yes'){
  178. me.FormUtil.getActiveTab().setLoading(true);//loading...
  179. Ext.Ajax.request({
  180. url : basePath + 'pm/bom/turnECN.action',
  181. params: {
  182. id: Ext.getCmp('ecr_id').value
  183. },
  184. method : 'post',
  185. callback : function(options,success,response){
  186. me.FormUtil.getActiveTab().setLoading(false);
  187. var localJson = new Ext.decode(response.responseText);
  188. if(localJson.exceptionInfo){
  189. showError(localJson.exceptionInfo);
  190. }
  191. if(localJson.success){
  192. turnSuccess(function(){
  193. var id = localJson.id;
  194. var url = "jsps/pm/bom/ECN.jsp?formCondition=ecn_idIS" + id + "&gridCondition=ed_ecnidIS"+id;
  195. me.FormUtil.onAdd('ECN' + id, '工程变更单' + id, url);
  196. });
  197. }
  198. }
  199. });
  200. }
  201. });
  202. }
  203. } ,
  204. 'dbfindtrigger[name=ecrd_bomid]': {
  205. focus: function(t){
  206. t.setHideTrigger(false);
  207. t.setReadOnly(false);
  208. var record = Ext.getCmp('grid').selModel.getLastSelected();
  209. var type = record.data['ecrd_type'];
  210. if (type=='' || type == null){
  211. showError("请先选择操作类型 !");
  212. t.setHideTrigger(true);
  213. t.setReadOnly(true);
  214. }else{
  215. if(type.indexOf("BATCH")!=-1 ){//需指定BOM
  216. showError("批量操作不能指定BOM!");
  217. t.setHideTrigger(true);
  218. t.setReadOnly(true);
  219. }
  220. }
  221. }
  222. },
  223. 'dbfindtrigger[name=ecrd_bddetno]': {
  224. focus: function(t){
  225. t.autoDbfind = false;
  226. //t.setHideTrigger(false);
  227. //t.setReadOnly(false);
  228. var record = Ext.getCmp('grid').selModel.getLastSelected();
  229. var bomid = record.data['ecrd_bomid'];
  230. var type = record.data['ecrd_type'];
  231. if (type=='' || type == null){
  232. showError("请先选择操作类型 !");
  233. //t.setHideTrigger(true);
  234. //t.setReadOnly(true);
  235. return;
  236. }else{
  237. if( type.indexOf("BATCH")!=-1 ){//批量处理,不需要指定BOM和序号
  238. showError("批量处理不需要指定BOM和序号 !");
  239. //t.setHideTrigger(true);
  240. //t.setReadOnly(true);
  241. return;
  242. }else{//非批量处理
  243. if(bomid=='' || bomid ==null) {
  244. if( type.indexOf("BATCH")==-1 ){//非批量处理,需指定BOM
  245. showError("请先选择BOM编号 !");
  246. //t.setHideTrigger(true);
  247. //t.setReadOnly(true);
  248. return;
  249. }
  250. }
  251. if(type=="ADD" ){//需指定BOM 序号
  252. showError("增加物料不需要选择BOM序号!");
  253. //t.setHideTrigger(true);
  254. //t.setReadOnly(true);
  255. return;
  256. }
  257. }
  258. }
  259. t.dbBaseCondition = "bd_bomid='" + bomid + "'";
  260. },
  261. aftertrigger:function(t){
  262. var record = Ext.getCmp('grid').selModel.getLastSelected();
  263. var data=record.data;
  264. var type = record.data['ecrd_type'];
  265. if (type.indexOf("SWITCH")!=-1){
  266. record.set('ecrd_repcode',data['ecrd_soncode']);
  267. record.set('ecrd_repname',data['pr_detail']);
  268. record.set('ecrd_soncode',null);
  269. record.set('pr_detail',null);
  270. record.set('pr_spec',null);
  271. record.set('ecrd_newbaseqty',data['ecrd_oldbaseqty']);
  272. }
  273. }
  274. }
  275. /*'dbfindtrigger[name=ecrd_soncode]': {
  276. focus: function(t){
  277. t.setHideTrigger(false);
  278. t.setReadOnly(false);
  279. var record = Ext.getCmp('grid').selModel.getLastSelected();
  280. var type = record.data['ecrd_type'];
  281. if (type=='' || type == null){
  282. showError("请先选择操作类型 !");
  283. t.setHideTrigger(true);
  284. t.setReadOnly(true);
  285. return;
  286. }else{
  287. if( type!="ADD" && type!="SWITCH" && type.indexOf("BATCH")==-1){//非批量处理,且非增加、替换物料 不能直接选择子件料号
  288. showError("必须选择BOM和BOM序号 !");
  289. t.setHideTrigger(true);
  290. t.setReadOnly(true);
  291. return;
  292. }
  293. }
  294. }
  295. } */
  296. });
  297. },
  298. onGridItemClick: function(selModel, record){//grid行选择
  299. this.GridUtil.onGridItemClick(selModel, record);
  300. },
  301. getForm: function(btn){
  302. return btn.ownerCt.ownerCt;
  303. },
  304. onSubmit: function(id){
  305. var me=this;
  306. var form = Ext.getCmp('form');
  307. if(form && form.getForm().isValid()){
  308. var s = me.FormUtil.checkFormDirty(form);
  309. var grids = Ext.ComponentQuery.query('gridpanel');
  310. if(grids.length > 0){//check所有grid是否已修改
  311. var param = grids[0].GridUtil.getAllGridStore(grids[0]);
  312. /*
  313. if(param == null || param == ''){
  314. if (Ext.getCmp('ecr_newprodname').value==''|| Ext.getCmp('ecr_newspec').value==''){
  315. showError("明细表还未添加数据,无法提交!");
  316. return;
  317. }
  318. }
  319. */
  320. Ext.each(grids, function(grid, index){
  321. if(grid.GridUtil){
  322. var msg = grid.GridUtil.checkGridDirty(grid);
  323. if(msg.length > 0){
  324. s = s + '<br/>' + grid.GridUtil.checkGridDirty(grid);
  325. }
  326. }
  327. });
  328. }
  329. if(s == '' || s == '<br/>'){
  330. me.FormUtil.submit(id);
  331. } else {
  332. Ext.MessageBox.show({
  333. title:'保存修改?',
  334. msg: '该单据已被修改:<br/>' + s + '<br/>提交前要先保存吗?',
  335. buttons: Ext.Msg.YESNOCANCEL,
  336. icon: Ext.Msg.WARNING,
  337. fn: function(btn){
  338. if(btn == 'yes'){
  339. me.FormUtil.onUpdate(form);
  340. } else if(btn == 'no'){
  341. me.FormUtil.submit(id);
  342. } else {
  343. return;
  344. }
  345. }
  346. });
  347. }
  348. } else {
  349. me.FormUtil.checkForm();
  350. }
  351. }
  352. });