Browse Source

防止发货过程中的明细序号与完成的发货单的明细序号混乱

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@1829 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 10 years ago
parent
commit
696fc0cb9f

+ 3 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseNoticeServiceImpl.java

@@ -306,7 +306,9 @@ public class PurchaseNoticeServiceImpl implements PurchaseNoticeService {
 					if (endQty > notice.getQty())
 						throw new IllegalOperatorException("累计发货数量将超出本次送货提醒的需求数!");
 					item.setNotice(notice);
-					item.setNumber(++number);
+					if(item.getNumber() == null || item.getNumber() == 0) {// 带了序号则不重设序号,不带这重设序号
+						item.setNumber(++number);
+					}
 					item.setOrderItem(notice.getOrderItem());
 					item.setOrderItemId(notice.getOrderItemId());
 					saleSend.setRate(notice.getOrderItem().getOrder().getRate());

+ 12 - 9
src/main/webapp/resources/js/index/app.js

@@ -382,10 +382,11 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 			});
 		};
 	}]);
-	app.controller('TruckModalCtrl', ['$scope', '$rootScope', '$modalInstance', 'SaleTruck', 'PurcNotice', 'toaster', '$state', function($scope, $rootScope, $modalInstance, SaleTruck, PurcNotice, toaster, $state){
+	app.controller('TruckModalCtrl', ['$scope', '$rootScope', '$modalInstance', 'SaleTruck', 'PurcNotice', 'toaster', '$state', '$filter', function($scope, $rootScope, $modalInstance, SaleTruck, PurcNotice, toaster, $state, $filter){
 		$scope.saleSend = {sendItems: []};
 		SaleTruck.detail({}, function(data){
-			$scope.notices = data;
+			// 按物料编号排序
+			$scope.notices = $filter('orderBy')(data, 'orderItem.product.code');
 		});
 		$scope.remove = function(index, notice) {
 			SaleTruck.remove({noticeId: notice.id}, function(data){
@@ -417,6 +418,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 			var currency = $scope.notices[0].orderItem.order.currency,
 					custUU = $scope.notices[0].enUU,
 					payments = $scope.notices[0].orderItem.order.payments, valid = true, items = [];
+			var num = 1;
 			for(var i in $scope.notices) {
 				var item = $scope.notices[i];
 				if(item.id) {
@@ -424,7 +426,7 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 						valid = false;
 						break;
 					}
-					items[i] = {noticeId: item.id, qty: item.thisSendQty, price: item.orderItem.price};
+					items[i] = {noticeId: item.id, qty: item.thisSendQty, price: item.orderItem.price, number: num ++};
 				}
 			}
 			if(!valid) {
@@ -1909,8 +1911,8 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 			var q = 0, t = 0;
 			if(data) {
 				angular.forEach(data,function(d){
-					q += d.thisSendQty;
-					t += d.thisSendQty * d.orderItem.price;
+					q += (d.thisSendQty || 0);
+					t += (d.thisSendQty || 0) * (d.orderItem.price || 0);
 				});
 			}
 			$scope.totalQty = q;
@@ -1932,8 +1934,9 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 				return;
 			}
 			var a = 0;
+			var num = 1;
 			var valid = true;
-			angular.forEach($scope.notices, function(item){
+			angular.forEach($scope.notices, function(item, key){
 				if(item.$selected) {
 					if(a == 0) {//第一次
 						$scope.saleSend.currency = item.orderItem.order.currency;
@@ -1945,9 +1948,9 @@ define([ 'toaster', 'charts', 'ngTable', 'common/services', 'service/Purc', 'ser
 						if($scope.saleSend.custUU != item.enUU) valid = false;
 						if($scope.saleSend.payments != item.orderItem.order.payments) valid = false;
 					}
-					$scope.saleSend.sendItems[$scope.saleSend.sendItems.length] = {
-						noticeId: item.id, qty: item.thisSendQty, price: item.orderItem.price
-					};
+					$scope.saleSend.sendItems.push({
+						noticeId: item.id, qty: item.thisSendQty, price: item.orderItem.price, number: num ++
+					});
 				}
 			});
 			if(!valid) {

+ 1 - 3
src/main/webapp/resources/tpl/index/sale/sendByBatch.html

@@ -27,7 +27,6 @@
 			<table class="table table-bordered table-hover">
 				<tbody id="fixedHeader" class="fixedHeader">
 					<tr class="text-center">
-						<th width="30px"></th>
 						<th>商品</th>
 						<th width="90px">剩余未发</th>
 						<th width="100px">本次发货</th>
@@ -41,7 +40,6 @@
 					<tr class="repeat"
 						ng-repeat="notice in notices | orderBy: 'notice.orderItem.product.code'"
 						ng-if="notice.$selected">
-						<td>{{$index+1}}</td>
 						<td>
 							<div ng-bind="::notice.orderItem.product.code"></div>
 							<div ng-bind="::notice.orderItem.product.title"></div>
@@ -82,7 +80,7 @@
 		<div class="pull-left">
 			<ul class="list-inline">
 				<li><span class="text-muted">总数量:</span> <span
-					class="text-num text-bold" ng-bind="totalQty"></span></li>
+					class="text-num text-bold" ng-bind="totalQty | number"></span></li>
 				<li><span class="text-muted">总金额:</span> <span
 					class="text-num text-bold" ng-bind="total | number:2"></span></li>
 			</ul>

+ 2 - 2
src/main/webapp/resources/tpl/index/sale/track.html

@@ -24,7 +24,7 @@
 	</div>
 	<table class="table table-default table-bordered" style="margin: 0;">
 		<tr class="header">
-			<th width="200">商品</th>
+			<th width="200">商品 <i class="fa fa-long-arrow-down"></i></th>
 			<th width="80">剩余未发</th>
 			<th width="120">本次发货</th>
 			<th width="120">单价</th>
@@ -37,7 +37,7 @@
 	<div style="max-height: 400px; overflow-y: scroll;">
 		<table class="table table-striped table-bordered table-hover">
 			<tr
-				ng-repeat="notice in notices | orderBy: 'notice.orderItem.product.code'">
+				ng-repeat="notice in notices">
 				<td width="200">
 					<div ng-bind="::notice.orderItem.product.code"></div>
 					<div ng-bind="::notice.orderItem.product.title"></div>