QueryPanelController.js 12 KB

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