QueryPanelController.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. Ext.define('make.view.osmake.osMake.QueryPanelController', {
  2. extend: 'saas.view.core.query.QueryPanelController',
  3. alias: 'controller.osmake-osmake-querypanel',
  4. init: function (form) {
  5. var me = this;
  6. this.control({
  7. // 物料编号
  8. 'dbfindtrigger[name=pr_detail]':{
  9. beforerender:function(f){
  10. Ext.apply(f,{
  11. dbfinds:[{
  12. from:'pr_code',to:'pd_prodcode'
  13. }, {
  14. from:'pr_detail',to:'pr_detail'
  15. }, {
  16. from:'pr_orispeccode',to:'pr_orispeccode'
  17. }],
  18. }) ;
  19. }
  20. },'dbfindtrigger[name=creatorName]':{
  21. beforerender:function(f){
  22. Ext.apply(f,{
  23. dbfinds:[{
  24. from:'em_code',to:'em_code'
  25. },{
  26. from:'em_name',to:'creatorName'
  27. }],
  28. }) ;
  29. }
  30. },'dbfindtrigger[name=ma_auditman]':{
  31. beforerender:function(f){
  32. Ext.apply(f,{
  33. dbfinds:[{
  34. from:'em_code',to:'em_code'
  35. },{
  36. from:'em_name',to:'ma_auditman',
  37. }],
  38. }) ;
  39. }
  40. },'dbfindtrigger[name=Prodiodetail.pd_prodcode]':{
  41. beforerender:function(f){
  42. Ext.apply(f,{
  43. dbfinds:[{
  44. from:'pr_code',to:'Prodiodetail.pd_prodcode',
  45. }, {
  46. from:'pr_detail',to:'pr_detail'
  47. }, {
  48. from:'pr_orispeccode',to:'pr_orispeccode'
  49. }, {
  50. from:'pr_brand',to:'pr_brand'
  51. }],
  52. }) ;
  53. }
  54. },'dbfindtrigger[name=ma_prodcode]':{
  55. beforerender:function(f){
  56. Ext.apply(f,{
  57. //放大镜赋值设置
  58. dbfinds:[{
  59. from:'pr_code',to:'ma_prodcode'
  60. },{
  61. from:'pr_detail',to:'pr_detail'
  62. },{
  63. from:'pr_spec',to:'pr_spec'
  64. },{
  65. from: 'pr_brand', to: 'pr_brand'
  66. },{
  67. from: 'pr_orispeccode', to: 'pr_orispeccode'
  68. },{
  69. from: 'pr_unit', to: 'pr_unit'
  70. }],
  71. });
  72. }
  73. },'dbfindtrigger[name=ma_salecode]':{
  74. beforerender:function(f){
  75. Ext.apply(f,{
  76. dbfinds:[{
  77. from:'sa_code',to:'ma_salecode',
  78. },{
  79. from:'sa_custname',to:'sa_custname',
  80. }],
  81. }) ;
  82. }
  83. },'dbfindtrigger[name=ma_custname]':{
  84. beforerender:function(f){
  85. Ext.apply(f,{
  86. dbfinds:[{
  87. from:'cu_code',to:'cu_code',
  88. },{
  89. from:'cu_name',to:'ma_custname',
  90. }],
  91. }) ;
  92. }
  93. },'dbfindtrigger[name=ma_vendname]':{
  94. beforerender:function(f){
  95. Ext.apply(f,{
  96. dbfinds:[{
  97. from:'ve_code',to:'ve_code',
  98. },{
  99. from:'ve_name',to:'ma_vendname',
  100. }],
  101. }) ;
  102. }
  103. }
  104. });
  105. },
  106. /**
  107. *
  108. * @param {结案} form
  109. */
  110. onEnd:function(form){
  111. var me = this;
  112. var queryPanel = me.getView(),
  113. queryGrid = queryPanel.down('core-query-querygridpanel');
  114. // queryGrid.vastOperation("batchEnd","结案");
  115. url = queryGrid.baseVastUrl+'batchEnd',
  116. data = queryGrid.getGridSelected(),
  117. params = JSON.stringify({baseDTOs:data});
  118. if(data && data.length>0){
  119. form.setLoading(true);
  120. saas.util.BaseUtil.request({
  121. url: url,
  122. params: params,
  123. method: 'POST',
  124. async:false
  125. })
  126. .then(function(res) {
  127. if (res.success) {
  128. form.setLoading(false);
  129. queryGrid.store.load();
  130. if(res.data.error){
  131. saas.util.BaseUtil.showErrorToast(res.data.error);
  132. }else if(res.data.checkData){
  133. //弹出结案检测的结果,弹出window
  134. me.showEndCheckDataWin(res.data.checkData);
  135. }
  136. }
  137. })
  138. .catch(function(res) {
  139. form.setLoading(false);
  140. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  141. });
  142. }else{
  143. saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
  144. }
  145. },
  146. /**
  147. *
  148. * @param {反结案} form
  149. */
  150. onResEnd:function(form){
  151. var me = this;
  152. var queryPanel = me.getView(),
  153. queryGrid = queryPanel.down('core-query-querygridpanel');
  154. queryGrid.vastOperation("batchResEnd","反结案");
  155. },
  156. /**
  157. *
  158. * @param {外协领料} form
  159. */
  160. onPick: function (form){
  161. var me = this,
  162. queryPanel = me.getView(),
  163. queryGrid = queryPanel.down('core-query-querygridpanel'),
  164. url ,
  165. data,
  166. params;
  167. if(queryPanel.down('checkbox[name=showDetail]').value && queryPanel.down('checkbox[name=showDetail]').showDetail){
  168. url = '/api/make/material/batchPickWithQty';
  169. data = me.getGridSelected(queryGrid);
  170. params = JSON.stringify(data);
  171. }else{
  172. url = queryGrid.baseVastUrl+'batchPick';
  173. data = queryGrid.getGridSelected();
  174. params = JSON.stringify({baseDTOs:data});
  175. };
  176. if(data && data.length>0){
  177. form.setLoading(true);
  178. saas.util.BaseUtil.request({
  179. url: url,
  180. params: params,
  181. method: 'POST',
  182. async:false
  183. })
  184. .then(function(res) {
  185. if (res.success) {
  186. form.setLoading(false);
  187. queryGrid.store.load();
  188. if(res.data.error){
  189. saas.util.BaseUtil.showErrorToast(res.data.error);
  190. }else{
  191. saas.util.BaseUtil.showSuccessToast('转单成功');
  192. }
  193. if(res.data.result){
  194. Ext.Array.each(res.data.result, function(value) {
  195. var intValue = value.id,
  196. codeValue = value.code,
  197. name = '外协领料';
  198. saas.util.BaseUtil.openTab('osmakepick-formpanel', name + "(" + codeValue + ")", codeValue + intValue, {
  199. initId: intValue
  200. });
  201. });
  202. }
  203. }
  204. })
  205. .catch(function(res) {
  206. form.setLoading(false);
  207. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  208. });
  209. }else{
  210. saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
  211. }
  212. },
  213. /**
  214. *
  215. * @param {验收入库} form
  216. */
  217. onIn: function (form){
  218. var me = this;
  219. var queryPanel = me.getView(),
  220. queryGrid = queryPanel.down('core-query-querygridpanel');
  221. var data = queryGrid.getGridSelected();
  222. if(data&&data.length>0){
  223. form.setLoading(true);
  224. var params = JSON.stringify({baseDTOs:data});
  225. saas.util.BaseUtil.request({
  226. url: queryGrid.baseVastUrl+'batchIn',
  227. params: params,
  228. method: 'POST',
  229. async:false
  230. })
  231. .then(function(res) {
  232. if (res.success) {
  233. form.setLoading(false);
  234. queryGrid.store.load();
  235. if(res.data){
  236. Ext.Array.each(res.data, function(value) {
  237. var intValue = value.id,
  238. codeValue = value.code,
  239. name = '外协验收';
  240. saas.util.BaseUtil.openTab('osmake-osmakecheckin-formpanel', name + "(" + codeValue + ")", codeValue + intValue, {
  241. initId: intValue
  242. });
  243. });
  244. }
  245. }
  246. })
  247. .catch(function(res) {
  248. form.setLoading(false);
  249. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  250. });
  251. }else{
  252. saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
  253. }
  254. },
  255. /**
  256. *展示明细 领料获取grid 数据
  257. */
  258. getGridSelected:function(grid){
  259. var me = this,
  260. items = grid.selModel.getSelection(),
  261. data = new Array() ;
  262. var ids=[];
  263. Ext.each(items, function(item, index){
  264. var o = new Object();
  265. if(item.data['mm_thisqty']>0){
  266. o['mm_id'] = item.data['mm_id'];
  267. o['mm_maid'] = item.data['ma_id'];
  268. o['mm_thisqty'] = item.data['mm_thisqty'];
  269. o['mm_prodcode'] = item.data['mm_prodcode'];
  270. data.push(o);
  271. }
  272. });
  273. return data;
  274. },
  275. intelligentMake: function() {
  276. var me = this,
  277. queryPanel = me.getView(),
  278. gridPanel = queryPanel.down('core-query-querygridpanel'),
  279. id = 'selfMakeBalance';
  280. appId = saas.util.BaseUtil.getCompanyApp();
  281. saas.util.BaseUtil.openTab('sale-selfmakebalance-querypanel','智能工单',id);
  282. },
  283. /**
  284. * 显示结案检测结果弹框
  285. */
  286. showEndCheckDataWin: function(data){
  287. var me = this,
  288. base = me.getView(),
  289. vm = base.getViewModel();
  290. tab = saas.util.BaseUtil.getCurrentTab(),
  291. win = tab.add({
  292. xtype: 'make-makebase-endcheck-window',
  293. modal: true,
  294. onConfirm: function () {
  295. win.close();
  296. }
  297. });
  298. win.show();
  299. win.loadData(data);
  300. },
  301. });