QueryPanelController.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. Ext.define('make.view.osmake.makeDetail.QueryPanelController', {
  2. extend: 'saas.view.core.query.QueryPanelController',
  3. alias: 'controller.osmake-makedetail-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:'mm_prodcode'
  13. }, {
  14. from:'pr_detail',to:'pr_detail'
  15. }, {
  16. from:'pr_orispeccode',to:'pr_orispeccode'
  17. }],
  18. }) ;
  19. }
  20. },'dbfindtrigger[name=make.creatorName]':{
  21. beforerender:function(f){
  22. Ext.apply(f,{
  23. dbfinds:[{
  24. from:'em_name',to:'make.creatorName'
  25. }],
  26. }) ;
  27. }
  28. },'dbfindtrigger[name=ma_auditman]':{
  29. beforerender:function(f){
  30. Ext.apply(f,{
  31. dbfinds:[{
  32. from:'em_name',to:'ma_auditman',
  33. }],
  34. }) ;
  35. }
  36. },'dbfindtrigger[name=makematerial.mm_prodcode]':{
  37. beforerender:function(f){
  38. Ext.apply(f,{
  39. dbfinds:[{
  40. from:'pr_code',to:'makematerial.mm_prodcode',
  41. }, {
  42. from:'pr_detail',to:'pr_detail'
  43. }, {
  44. from:'pr_orispeccode',to:'pr_orispeccode'
  45. }, {
  46. from:'pr_brand',to:'pr_brand'
  47. }],
  48. }) ;
  49. }
  50. },'dbfindtrigger[name=ma_prodcode]':{
  51. beforerender:function(f){
  52. Ext.apply(f,{
  53. //放大镜赋值设置
  54. dbfinds:[{
  55. from:'pr_code',to:'ma_prodcode'
  56. },{
  57. from:'pr_detail',to:'pr_detail'
  58. },{
  59. from:'pr_spec',to:'pr_spec'
  60. },{
  61. from: 'pr_brand', to: 'pr_brand'
  62. },{
  63. from: 'pr_orispeccode', to: 'pr_orispeccode'
  64. },{
  65. from: 'pr_unit', to: 'pr_unit'
  66. }],
  67. });
  68. }
  69. }
  70. });
  71. },
  72. /**
  73. * 批量发料
  74. */
  75. turnPick:function(form){
  76. var me = this;
  77. var queryPanel = me.getView(),
  78. queryGrid = queryPanel.down('core-query-querygridpanel');
  79. var data = me.getGridSelected(queryGrid);
  80. if(data && data.length>0){
  81. form.setLoading(true);
  82. var params = JSON.stringify(data);
  83. saas.util.BaseUtil.request({
  84. url: queryGrid.baseVastUrl+'batchPickWithQty',
  85. params: params,
  86. method: 'POST',
  87. async:false
  88. })
  89. .then(function(res) {
  90. if (res.success) {
  91. form.setLoading(false);
  92. queryGrid.store.load();
  93. if(res.data.error){
  94. saas.util.BaseUtil.showErrorToast(res.data.error);
  95. }else{
  96. saas.util.BaseUtil.showSuccessToast('转单成功');
  97. }
  98. if(res.data.result){
  99. Ext.Array.each(res.data.result, function(value) {
  100. var intValue = value.id,
  101. codeValue = value.code,
  102. name = '外协领料';
  103. saas.util.BaseUtil.openTab('osmakepick-formpanel', name + "(" + codeValue + ")", codeValue + intValue, {
  104. initId: intValue
  105. });
  106. });
  107. }
  108. }
  109. })
  110. .catch(function(res) {
  111. form.setLoading(false);
  112. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  113. });
  114. }else{
  115. saas.util.BaseUtil.showErrorToast('请勾选至少一条有效明细。');
  116. }
  117. },
  118. /**
  119. * 批量退料
  120. */
  121. turnBack:function(form){
  122. var me = this;
  123. var queryPanel = me.getView(),
  124. queryGrid = queryPanel.down('core-query-querygridpanel');
  125. var data = me.getGridSelected(queryGrid);
  126. if(data && data.length>0){
  127. form.setLoading(true);
  128. var params = JSON.stringify(data);
  129. saas.util.BaseUtil.request({
  130. url: queryGrid.baseVastUrl+'batchBackWithQty',
  131. params: params,
  132. method: 'POST',
  133. async:false
  134. })
  135. .then(function(res) {
  136. if (res.success) {
  137. form.setLoading(false);
  138. queryGrid.store.load();
  139. if(res.data.error){
  140. saas.util.BaseUtil.showErrorToast(res.data.error);
  141. }else{
  142. saas.util.BaseUtil.showSuccessToast('生成退料单成功');
  143. }
  144. if(res.data.result){
  145. Ext.Array.each(res.data.result, function(value) {
  146. var intValue = value.id,
  147. codeValue = value.code,
  148. name = '外协退料';
  149. saas.util.BaseUtil.openTab('osmakereturn-formpanel', name + "(" + codeValue + ")", codeValue + intValue, {
  150. initId: intValue
  151. });
  152. });
  153. }
  154. }
  155. })
  156. .catch(function(res) {
  157. form.setLoading(false);
  158. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  159. });
  160. }else{
  161. saas.util.BaseUtil.showErrorToast('请勾选至少一条有效明细。');
  162. }
  163. },
  164. /**
  165. * 批量报废
  166. */
  167. turnScrap:function(form){
  168. var me = this;
  169. var queryPanel = me.getView(),
  170. queryGrid = queryPanel.down('core-query-querygridpanel');
  171. var data = me.getGridSelected(queryGrid);
  172. if(data && data.length>0){
  173. form.setLoading(true);
  174. var params = JSON.stringify(data);
  175. saas.util.BaseUtil.request({
  176. url: queryGrid.baseVastUrl+'batchScrapWithQty',
  177. params: params,
  178. method: 'POST',
  179. async:false
  180. })
  181. .then(function(res) {
  182. if (res.success) {
  183. form.setLoading(false);
  184. queryGrid.store.load();
  185. if(res.data.error){
  186. saas.util.BaseUtil.showErrorToast(res.data.error);
  187. }else{
  188. saas.util.BaseUtil.showSuccessToast('生成报废单成功');
  189. }
  190. if(res.data.result){
  191. Ext.Array.each(res.data.result, function(value) {
  192. var intValue = value.id,
  193. codeValue = value.code,
  194. name = '外协报废';
  195. saas.util.BaseUtil.openTab('osmakescrap-formpanel', name + "(" + codeValue + ")", codeValue + intValue, {
  196. initId: intValue
  197. });
  198. });
  199. }
  200. }
  201. })
  202. .catch(function(res) {
  203. form.setLoading(false);
  204. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  205. });
  206. }else{
  207. saas.util.BaseUtil.showErrorToast('请勾选至少一条有效明细。');
  208. }
  209. },
  210. /**
  211. * 成套发料
  212. */
  213. turnSetPick:function(form){
  214. var me = this;
  215. var queryPanel = me.getView(),
  216. queryGrid = queryPanel.down('core-query-querygridpanel');
  217. var data = queryGrid.getGridSelected();
  218. if(data && data.length>0){
  219. form.setLoading(true);
  220. var params = JSON.stringify({baseDTOs:data});
  221. saas.util.BaseUtil.request({
  222. url: queryGrid.baseVastUrl+'batchSetPick',
  223. params: params,
  224. method: 'POST',
  225. async:false
  226. })
  227. .then(function(res) {
  228. if (res.success) {
  229. form.setLoading(false);
  230. queryGrid.store.load();
  231. if(res.data.error){
  232. saas.util.BaseUtil.showErrorToast(res.data.error);
  233. }else{
  234. saas.util.BaseUtil.showSuccessToast('套料发料成功');
  235. }
  236. if(res.data.result){
  237. Ext.Array.each(res.data.result, function(value) {
  238. var intValue = value.id,
  239. codeValue = value.code,
  240. name = '外协领料';
  241. saas.util.BaseUtil.openTab('osmakepick-formpanel', name + "(" + codeValue + ")", codeValue + intValue, {
  242. initId: intValue
  243. });
  244. });
  245. }
  246. }
  247. })
  248. .catch(function(res) {
  249. form.setLoading(false);
  250. saas.util.BaseUtil.showErrorToast(('操作失败: ') + res.message);
  251. });
  252. }else{
  253. saas.util.BaseUtil.showErrorToast('请勾选至少一条有效明细。');
  254. }
  255. },
  256. /**
  257. *获取grid 数据
  258. */
  259. getGridSelected:function(grid){
  260. var me = this,
  261. items = grid.selModel.getSelection(),
  262. data = new Array() ;
  263. var ids=[];
  264. Ext.each(items, function(item, index){
  265. var o = new Object();
  266. if(item.data['mm_thisqty']>0){
  267. o['mm_id'] = item.data['mm_id'];
  268. o['mm_maid'] = item.data['ma_id'];
  269. o['mm_thisqty'] = item.data['mm_thisqty'];
  270. o['mm_prodcode'] = item.data['mm_prodcode'];
  271. data.push(o);
  272. }
  273. });
  274. return data;
  275. }
  276. });