Author: bleny Date: 2013-04-12 14:40:47 +0200 (Fri, 12 Apr 2013) New Revision: 94 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: introduce requestList.building Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/RequestedArticle.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java trunk/magalie-services/src/main/resources/fixtures.yaml Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/RequestedArticle.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/RequestedArticle.java 2013-04-12 10:23:19 UTC (rev 93) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/RequestedArticle.java 2013-04-12 12:40:47 UTC (rev 94) @@ -3,6 +3,7 @@ import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; @Entity public class RequestedArticle extends AbstractEntity { @@ -16,6 +17,9 @@ @ManyToOne protected RequestedList requestedList; + @OneToOne + protected Location destinationLocation; + protected double quantity; @Override @@ -50,4 +54,12 @@ public void setRequestedList(RequestedList requestedList) { this.requestedList = requestedList; } + + public Location getDestinationLocation() { + return destinationLocation; + } + + public void setDestinationLocation(Location destinationLocation) { + this.destinationLocation = destinationLocation; + } } Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-12 10:23:19 UTC (rev 93) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-12 12:40:47 UTC (rev 94) @@ -30,6 +30,7 @@ import com.franciaflex.magalie.persistence.entity.Article; import com.franciaflex.magalie.persistence.entity.Building; import com.franciaflex.magalie.persistence.entity.DeliveredRequestedArticle; +import com.franciaflex.magalie.persistence.entity.Location; import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.RequestedArticle; import com.franciaflex.magalie.persistence.entity.StorageMovementOrder; @@ -116,8 +117,10 @@ double quantity = requestedArticle.getQuantity(); - BookArticleRequest bookArticleRequest = new BookArticleRequest(magalieUser, building, article, quantity, null, false); + Location destinationLocation = requestedArticle.getDestinationLocation(); + BookArticleRequest bookArticleRequest = new BookArticleRequest(magalieUser, building, article, quantity, destinationLocation, false); + try { storageMovementOrder = articleStorageService.bookArticle(bookArticleRequest); @@ -184,22 +187,28 @@ protected Queue<RequestedArticle> getRequestedArticlesByPriority(List<RequestedArticle> requests) { - Comparator<RequestedArticle> priorityComparator = - Ordering.compound( - Lists.newArrayList( - RequestedArticles.finishEarlyFirstComparator(requests), - RequestedArticles.urgentFirstComparator(), - RequestedArticles.requestDateFirstComparator() - ) - ); + PriorityQueue<RequestedArticle> requestedArticles = new PriorityQueue<RequestedArticle>(); - PriorityQueue<RequestedArticle> requestedArticles = - new PriorityQueue<RequestedArticle>( - requests.size(), - priorityComparator); + if ( ! requests.isEmpty()) { - requestedArticles.addAll(requests); + Comparator<RequestedArticle> priorityComparator = + Ordering.compound( + Lists.newArrayList( + RequestedArticles.finishEarlyFirstComparator(requests), + RequestedArticles.urgentFirstComparator(), + RequestedArticles.requestDateFirstComparator() + ) + ); + requestedArticles = + new PriorityQueue<RequestedArticle>( + requests.size(), + priorityComparator); + + requestedArticles.addAll(requests); + + } + return requestedArticles; } Modified: trunk/magalie-services/src/main/resources/fixtures.yaml =================================================================== --- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-04-12 10:23:19 UTC (rev 93) +++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-04-12 12:40:47 UTC (rev 94) @@ -70,12 +70,19 @@ code: SOM building: *B1 +B01: + &B01 !warehouse + id: warehouse_b01 + code: B01 + building: *B1 + warehouses: - *U01 - *U02 - *U03 - *U04 - *SOM + - *B01 location1: &location1 !location @@ -168,6 +175,13 @@ code: REC requiredAccreditationLevel: 0 +location14: + &location14 !location + id: location14 + warehouse: *B01 + code: SANS + requiredAccreditationLevel: 0 + locations: - *location1 - *location2 @@ -182,6 +196,7 @@ - *location11 - *location12 - *location13 + - *location14 article1: &article1 !article @@ -391,6 +406,7 @@ code: 123456789 requestDate: 2013-04-08 12:00:00 urgent: true + building: *B1 requestedList2: &requestedList2 !requested-list @@ -398,6 +414,7 @@ code: 123456789 requestDate: 2013-04-08 12:00:00 urgent: false + building: *B1 requestedLists: - *requestedList1