OutputCtrl.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. define([ 'app/app','common/services','service/Purc'], function(app) {
  2. app.register.controller('OutputCtrl',['$scope', '$http', '$rootScope', '$location', '$filter','$stateParams','$modal','PurcOrder','toaster', 'OutOper', 'SupportUtil','Ring', 'Online','ngTableParams','SessionService','$document', 'smartySuggestor', '$window', '$timeout', function($scope, $http, $rootScope, $location, $filter,$stateParams,$modal,PurcOrder,toaster, OutOper, SupportUtil,Ring, Online,ngTableParams,SessionService,$document, smartySuggestor, $window, $timeout){
  3. $scope.orders = $rootScope.outMMOrders || [];
  4. $rootScope.title = '';
  5. $scope.whcode = SessionService.getCookie('defaultWhcode');
  6. var again = 1;//解决请求在未返回之前重复
  7. $scope.tableParams = new ngTableParams({
  8. page : 1,
  9. count : 10,
  10. sorting : {
  11. PD_PDNO: 'ASC'
  12. },
  13. filter : {}
  14. }, {
  15. total: $scope.orders.length,
  16. getData : function($defer, params) {
  17. var orderedData = params.sorting() ?
  18. $filter('orderBy')($scope.orders, params.orderBy()) :
  19. $scope.orders;
  20. orderedData = params.filter() ?
  21. $filter('filter')(orderedData, params.filter()) :
  22. orderedData;
  23. params.total(orderedData.length);
  24. $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
  25. }
  26. });
  27. setTimeout( function(){
  28. try{
  29. document.getElementById("batchCode").focus();
  30. } catch(e){}
  31. }, 200);
  32. var getProdcode = function(code,whcode,pi_id) {
  33. $scope.loading = true;
  34. OutOper.get({inoutNo: code,whcode:whcode,pi_id:pi_id}, function(data) {//获取成功
  35. again = 1;
  36. $scope.loading = false;
  37. if(data.exceptionInfo){
  38. toaster.pop('error', '查询失败',data.exceptionInfo);
  39. Ring.error();
  40. }else if(data.target && data.totalCount > 0){
  41. var or = new Object();
  42. or = data.target;
  43. $scope.whcode = or[0].PI_WHCODE;
  44. $scope.orders.push(or[0]) ;//= data.target;
  45. $rootScope.outMMOrders = $scope.orders;
  46. $scope.tableParams.reload();
  47. Ring.success();//提示成功响铃
  48. $scope.batchCode = '';//重置输入框
  49. }
  50. }, function(response){//获取失败处理
  51. if(response.status == 0){ //无网络错误
  52. Online.setOnline(false);//修改网络状态
  53. Ring.error();
  54. toaster.pop('error', "网络连接不可用,请稍后再试");
  55. }else{
  56. $scope.loading = false;
  57. toaster.pop('error', '查询失败',response.data.exceptionInfo);
  58. Ring.error();
  59. }
  60. again = 1;
  61. });
  62. };
  63. var getWhcode = function(code,whcode,pi_id){
  64. again = 0;
  65. PurcOrder.getWhcode({inoutNo:code,whcode:whcode,pi_id:pi_id,condition:'pd_outqty'},{},function(data){
  66. if(data.exceptionInfo){
  67. toaster.pop('error', '查询失败',data.exceptionInfo);
  68. Ring.error();
  69. }else if(data.data.length > 1 && data.data[0].PI_INOUTNO){ //弹出选择框,选择出入库单号,类型
  70. $scope.items = data.data;
  71. var modalInstance = $modal.open({
  72. templateUrl: 'billModalContent.html',
  73. controller: 'ModalInstanceCtrl',
  74. resolve: {
  75. items: function () {
  76. return $scope.items;
  77. }
  78. }
  79. });
  80. modalInstance.result.then(function(selectedItem) {
  81. $scope.selected = selectedItem;
  82. getWhcode($scope.selected.PI_INOUTNO,whcode,$scope.selected.PI_ID);
  83. });
  84. }else if(data.data.length > 1 && data.data[0].PD_WHCODE){
  85. //弹出选择框,选择仓库
  86. $scope.items = data.data;
  87. var modalInstance = $modal.open({
  88. templateUrl: 'myModalContent.html',
  89. controller: 'ModalInstanceCtrl',
  90. resolve: {
  91. items: function () {
  92. return $scope.items;
  93. }
  94. }
  95. });
  96. modalInstance.result.then(function(selectedItem) {
  97. $scope.selected = selectedItem;
  98. getProdcode($scope.batchCode,$scope.selected,data.data[0].PI_ID);
  99. });
  100. }else{
  101. getProdcode(code,data.data[0].PD_WHCODE,data.data[0].PI_ID);
  102. }
  103. },function (response){
  104. if(response.status == 0){ //无网络错误
  105. Online.setOnline(false);//修改网络状态
  106. Ring.error();
  107. toaster.pop('error', '提交失败',"网络连接不可用,请稍后再试");
  108. }else{
  109. toaster.pop('error', '查询失败',response.data.exceptionInfo);
  110. }
  111. again = 1;
  112. });
  113. };
  114. $scope.getOrder = function(code,whcode) {//根据输入的单据id号获取下载单据信息
  115. if(again == 1){
  116. if(SupportUtil.contains(JSON.stringify($scope.orders),code,"PI_INOUTNO") || SupportUtil.contains(JSON.stringify($scope.orders),code,"PI_ID")){//请求的单据id或者单号已经被下载在本地了
  117. toaster.pop('error', '单据重复',"请勿重复采集");
  118. } else {//请求的单据id或者单号未被下载在本地了,向服务器发送请求获取数据
  119. if(!whcode){
  120. whcode = '';
  121. }
  122. if(!code){
  123. alert("请输入出库单号!");
  124. return ;
  125. }
  126. getWhcode(code,whcode);
  127. }
  128. }
  129. };
  130. $scope.search = function($event, batchCode,whcode){//enter键触发事件
  131. if($event.keyCode == 13) {//Enter事件
  132. $scope.getOrder(batchCode,whcode);
  133. }
  134. };
  135. $scope.operate = function(order) {//跳转至对应的单据操作页面
  136. if(!$scope.again){
  137. $scope.selectedId = order.PI_INOUTNO;
  138. $location.path('outMMOperation/' + order.PI_INOUTNO);
  139. }
  140. $scope.again = false;
  141. };
  142. /*var getClearAgain = function(order){
  143. var grid = $rootScope.outMMgrid;
  144. angular.forEach(grid, function(value, key){
  145. if(value.bi_inoutno == order.PI_INOUTNO) {//出入库单号相等删除
  146. $rootScope.outMMgrid.splice(key,1);
  147. }
  148. });
  149. angular.forEach($scope.orders, function(value, key){
  150. if(value.PI_ID == order.PI_ID) {//修改状态
  151. $scope.orders.splice(key,1);
  152. }
  153. });
  154. $rootScope.outMMOrders = $scope.orders ;
  155. getWhcode(order.PI_INOUTNO,order.PI_WHCODE,order.PI_ID);
  156. }*/
  157. $scope.getAgain = function (order){//重新采集
  158. if(confirm("确认重新采集,将会清空所有已采集数据包含已提交的数据")){
  159. PurcOrder.clearGet({no:order.PI_ID,whcode:order.PI_WHCODE,type:'out'},{},function(data){
  160. if(data.exceptionInfo){
  161. /* var str = data.exceptionInfo;
  162. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){
  163. str = str.replace('AFTERSUCCESS', '');
  164. toaster.pop('success',str);
  165. getClearAgain(order);
  166. }else{*/
  167. toaster.pop('error',data.exceptionInfo);
  168. Ring.error();
  169. //}
  170. }else {
  171. var grid = $rootScope.outMMgrid;
  172. angular.forEach(grid, function(value, key){
  173. if(value.bi_inoutno == order.PI_INOUTNO) {//出入库单号相等删除
  174. $rootScope.outMMgrid.splice(key,1);
  175. }
  176. });
  177. angular.forEach($scope.orders, function(value, key){
  178. if(value.PI_ID == order.PI_ID) {//修改状态
  179. $scope.orders.splice(key,1);
  180. }
  181. });
  182. $rootScope.outMMOrders = $scope.orders ;
  183. getWhcode(order.PI_INOUTNO,order.PI_WHCODE,order.PI_ID);
  184. toaster.pop('success', '已清空采集数据');
  185. }
  186. },function(response){
  187. if(response.status == 0){ //无网络错误
  188. Online.setOnline(false);//修改网络状态
  189. Ring.error();
  190. toaster.pop('error', "网络连接不可用,请稍后再试");
  191. }else{
  192. toaster.pop('error', '清空失败');
  193. }
  194. });
  195. }
  196. $scope.again = true;
  197. };
  198. $scope.deleteDe = function (order){
  199. if(confirm("确认删除?")){
  200. angular.forEach($scope.orders, function(value, key){
  201. if(value.PI_ID == order.PI_ID) {//修改状态
  202. $scope.orders.splice(key,1);
  203. }
  204. });
  205. $rootScope.orders = $scope.orders ;
  206. $scope.tableParams.reload();
  207. Ring.success();
  208. toaster.pop('success', '删除成功');
  209. }
  210. };
  211. //模糊查询
  212. $scope.suggestions = function(val){
  213. if (val == "" || angular.isUndefined(val) || val.length < 3) {
  214. return null ;
  215. }else{
  216. return smartySuggestor.getSmartySuggestions(val,'pd_outqty').then(function(res) {
  217. if(res.data != null && res.data.length > 0){
  218. return $filter("limitTo")(res.data, 5).map(function(item) {
  219. return item.PI_INOUTNO;
  220. });
  221. }
  222. });
  223. }
  224. };
  225. }]);
  226. });