ProductBatchUUId.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.scm.product.ProductBatchUUId', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'scm.product.ProductBatchUUId','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar','core.button.Scan','core.button.Export',
  9. 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit',
  10. 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit',
  11. 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.button.CleanDetail','core.button.Confirm','core.button.GetB2CProductKind',
  12. 'scm.product.GetUUid.ComponentGrid','scm.product.GetUUid.Toolbar','core.button.LoadProd','core.button.RemoveUUId','core.button.GetUUId'
  13. ],
  14. init:function(){
  15. var me = this;
  16. this.control({
  17. 'erpGridPanel2': {
  18. itemclick: this.onGridItemClick,
  19. /*cellclick:function(view,td,cellIndex,record,tr,rowIndex,e,eOpts){
  20. var field = view.ownerCt.columns[cellIndex].dataIndex;
  21. if (field == 'pub_uuidstr') {
  22. this.onCellItemClick(record);
  23. };
  24. }*/
  25. },
  26. 'erpConfirmButton':{
  27. beforerender:function(btn){
  28. btn.text="更新";
  29. btn.width=80;
  30. },
  31. click:function(btn){
  32. var stores = me.GridUtil.getGridStore(Ext.getCmp('grid'));
  33. if(stores.length != 0){//
  34. var errInfo = me.GridUtil.getUnFinish(Ext.getCmp('grid'));
  35. if(errInfo.length > 0){
  36. showError('明细表有必填字段未完成填写<hr>' + errInfo);
  37. }else{
  38. me.batchUpdateUUId(stores);
  39. }
  40. }else{
  41. showError("还未添加或修改数据.");
  42. }
  43. }
  44. },
  45. 'erpCloseButton': {
  46. click: function(btn){
  47. me.FormUtil.beforeClose(me);
  48. }
  49. },
  50. 'gridcolumn[dataIndex=pub_uuidstr]': {
  51. afterrender: function(column) {
  52. column.renderer = function(val, meta, record) {
  53. if(val != null && val != "") {
  54. val = '有';
  55. } else {
  56. val = '无';
  57. }
  58. return val;
  59. }
  60. }
  61. },
  62. 'erpGetB2CProductKindButton':{
  63. click:function(btn){
  64. var record = Ext.getCmp('grid').selModel.lastSelected;
  65. if(record && record.get("pub_prodcode")){
  66. me.onCellItemClick(record);
  67. }
  68. },
  69. afterrender:function(btn){
  70. btn.setDisabled(true);
  71. }
  72. },
  73. //清除明细
  74. 'erpCleanDetailButton' : {
  75. click: function(btn){
  76. var param = me.GridUtil.getAllGridStore(Ext.getCmp('grid'));
  77. if(param == null || param == ''){
  78. showError("没有需要清除的明细");
  79. return ;
  80. }
  81. me.cleanDetail();
  82. }
  83. },
  84. 'erpLoadProdButton':{
  85. click:function(btn){
  86. var form=Ext.getCmp('form');
  87. var KeyValue=Ext.getCmp("em_id").value;
  88. var me = this;
  89. var url = basePath + "jsps/scm/product/ProdResource.jsp";
  90. var panel = Ext.getCmp("em_id=" +KeyValue);
  91. var main = parent.Ext.getCmp("content-panel");
  92. var panelId= main.getActiveTab().id;
  93. var urlcondition=" pr_code not in (select pub_prodcode from ProductUUIDBatch)";
  94. main.getActiveTab().currentGrid = Ext.getCmp('grid');
  95. if(!panel){
  96. var title = "";
  97. if (KeyValue.toString().length>4) {
  98. title = KeyValue.toString().substring(KeyValue.toString().length-4);
  99. } else {
  100. title = KeyValue;
  101. }
  102. panel = {
  103. title:'标准料号设置物料来源(('+KeyValue+')',
  104. tag : 'iframe',
  105. tabConfig:{tooltip:'标准料号设置物料来源('+title+')'},
  106. frame : true,
  107. border : false,
  108. layout : 'fit',
  109. iconCls : 'x-tree-icon-tab-tab',
  110. html : '<iframe id="iframe_maindetail_'+caller+"_"+KeyValue+'" src="'+url+'?urlcondition='+urlcondition+'&whoami=BatchUUIdSource&_noc=1&keyValue='+KeyValue+'&panelId='+panelId+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  111. closable : true,
  112. listeners : {
  113. close : function(){
  114. main.setActiveTab(main.getActiveTab().id);
  115. }
  116. }
  117. };
  118. me.FormUtil.openTab(panel,"em_id=" + KeyValue);
  119. }else{
  120. main.setActiveTab(panel);
  121. }
  122. }
  123. },
  124. 'erpRemoveUUIdButton':{
  125. click:function(btn){
  126. var stores = me.GridUtil.getAllGridStore(Ext.getCmp('grid'));
  127. if(stores.length != 0){
  128. me.removeUUId();
  129. }
  130. }
  131. },
  132. 'erpGetUUIdButton':{//自动匹配
  133. click:function(btn){
  134. var stores = me.GridUtil.getAllGridStore(Ext.getCmp('grid'));
  135. //grid.getStore()
  136. if(stores.length != 0){
  137. me.getUUid();
  138. }
  139. }
  140. },
  141. 'erpDeleteDetailButton': {
  142. afterrender: function(btn){
  143. btn.ownerCt.add({
  144. xtype: 'erpGetB2CProductKindButton'
  145. });
  146. }
  147. }
  148. });
  149. },
  150. onCellItemClick:function(record){
  151. var me = this;
  152. // grid行选择
  153. var str = record.data['pub_uuidstr'];
  154. var uuid = record.data['pub_uuid'];
  155. if(!record.dirty && !Ext.isEmpty(uuid)){
  156. //根据uuid获取相关信息
  157. me.getByUUid(uuid,function(data){
  158. if(data != null){
  159. me.createWin(data);
  160. }
  161. });
  162. }else if(!Ext.isEmpty(str)){
  163. me.getByUUid(str,function(data){
  164. if( data != null){
  165. me.createWin(data);
  166. }
  167. });
  168. }else{
  169. var win = me.uuWin;
  170. var linkCaller = 'Product';
  171. if (!win) {
  172. var status= '';
  173. me.uuWin = win = new Ext.window.Window({
  174. id : 'uuWin',
  175. height : "100%",
  176. width : "80%",
  177. maximizable : true,
  178. closeAction : 'hide',
  179. buttonAlign : 'center',
  180. layout : 'anchor',
  181. title : '获取编号',
  182. items : [{
  183. tag : 'iframe',
  184. anchor : '100% 100%',
  185. layout : 'fit',
  186. html : '<iframe id="iframe_'+linkCaller+'" src="'
  187. + basePath
  188. + 'jsps/scm/product/getUUid.jsp?type='
  189. + linkCaller+'&status='+status
  190. + '" height="100%" width="100%" frameborder="0"></iframe>'
  191. }]
  192. });
  193. }
  194. win.show();
  195. }
  196. },
  197. createWin:function(data){
  198. var me = this, win = me.orWin;
  199. me.data=data;
  200. if (!win) {
  201. me.orWin=win = Ext.create('Ext.Window',{
  202. id : 'wind',
  203. title:'标准料号',
  204. height : '65%',
  205. width : '65%',
  206. maximizable : true,
  207. buttonAlign : 'center',
  208. closeAction:'hide',
  209. layout : 'anchor',
  210. items : [{
  211. xtype:'erpComponentGrid',
  212. anchor: '100% 100%'
  213. }],
  214. bbar: ['->',{
  215. text:'关闭',
  216. cls: 'x-btn-gray',
  217. iconCls: 'x-button-icon-close',
  218. listeners: {
  219. click: function(btn){
  220. btn.up('window').close();
  221. }
  222. }
  223. },'->'],
  224. listeners:{
  225. beforeshow:function(win){
  226. var g = win.down('erpComponentGrid');
  227. g.store.loadData(me.data);
  228. dataCount = data.length;
  229. Ext.getCmp('pagingtoolbar').afterOnLoad();
  230. }
  231. }
  232. });
  233. }
  234. win.show();
  235. },
  236. getByUUid:function(str,callback){
  237. Ext.Ajax.request({//获取匹配结果
  238. url : basePath + "scm/product/getByUUIds.action",
  239. params :{
  240. ids:str
  241. },
  242. method : 'post',
  243. callback : function(opt, s, res){
  244. var r = new Ext.decode(res.responseText);
  245. if(r && r.exceptionInfo){
  246. showError(r.exceptionInfo);
  247. }else{
  248. callback && callback.call(null, r.gridStore);
  249. }
  250. }
  251. });
  252. },
  253. cleanDetail: function(){
  254. var grid=Ext.getCmp('grid');
  255. grid.setLoading(true);
  256. Ext.Ajax.request({
  257. url :basePath+ 'scm/product/clearUUDetail.action',
  258. params: {
  259. id:Ext.getCmp('em_id').value,
  260. caller : caller
  261. },
  262. method : 'post',
  263. callback : function(options,success,response){
  264. grid.setLoading(false);
  265. var localJson = new Ext.decode(response.responseText);
  266. if(localJson.success){
  267. showMessage('提示', '操作成功!', 1000);
  268. //update成功后刷新页面进入可编辑的页面
  269. window.location.reload();
  270. } else if(localJson.exceptionInfo){
  271. showError(localJson.exceptionInfo);return;
  272. }
  273. }
  274. });
  275. },
  276. onGridItemClick: function(selModel, record){//grid行选择
  277. var btn= Ext.getCmp('getb2cproductkind');
  278. if(btn && btn.disabled){
  279. btn.setDisabled(false);
  280. }
  281. this.GridUtil.onGridItemClick(selModel, record);
  282. },
  283. getForm: function(btn){
  284. return btn.ownerCt.ownerCt;
  285. },
  286. batchUpdateUUId:function(data){
  287. var me = this;
  288. //有修改值
  289. me.FormUtil.setLoading(true);
  290. Ext.Ajax.request({
  291. url :basePath+ 'scm/product/batchUpdateUUId.action',
  292. params: {
  293. param:unescape(data)
  294. },
  295. method : 'post',
  296. callback : function(options,success,response){
  297. me.FormUtil.setLoading(false);
  298. var localJson = new Ext.decode(response.responseText);
  299. if(localJson.success){
  300. showMessage('提示', '操作成功!', 1000);
  301. //update成功后刷新页面进入可编辑的页面
  302. window.location.reload();
  303. } else if(localJson.exceptionInfo){
  304. showError(localJson.exceptionInfo);return;
  305. }
  306. }
  307. });
  308. },
  309. getUUid:function(){
  310. var me = this;
  311. //有修改值
  312. me.FormUtil.setLoading(true);
  313. Ext.Ajax.request({
  314. url :basePath+ 'scm/product/getUUId.action',
  315. params: {
  316. caller : caller
  317. },
  318. method : 'post',
  319. timeout:300000,
  320. callback : function(options,success,response){
  321. me.FormUtil.setLoading(false);
  322. var localJson = new Ext.decode(response.responseText);
  323. if(localJson.success){
  324. showMessage('提示', '操作成功!', 1000);
  325. //update成功后刷新页面进入可编辑的页面
  326. window.location.reload();
  327. } else if(localJson.exceptionInfo){
  328. showError(localJson.exceptionInfo);return;
  329. }
  330. }
  331. });
  332. },
  333. removeUUId:function(){
  334. var me = this;
  335. //有修改值
  336. me.FormUtil.setLoading(true);
  337. Ext.Ajax.request({
  338. url :basePath+ 'scm/product/removeUUId.action',
  339. params: {
  340. pub_emid:Ext.getCmp("em_id").value,
  341. caller : caller
  342. },
  343. method : 'post',
  344. callback : function(options,success,response){
  345. me.FormUtil.setLoading(false);
  346. var localJson = new Ext.decode(response.responseText);
  347. if(localJson.success){
  348. showMessage('提示', '操作成功!', 1000);
  349. //update成功后刷新页面进入可编辑的页面
  350. window.location.reload();
  351. } else if(localJson.exceptionInfo){
  352. showError(localJson.exceptionInfo);return;
  353. }
  354. }
  355. });
  356. }
  357. });