Implement Arrival of Supplier Order. #62
@ -103,7 +103,7 @@ public class CreateOrderAction {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                bookingPosition.article = item.article;
 | 
					                bookingPosition.article = item.article;
 | 
				
			||||||
                bookingPosition.amount = -remove;
 | 
					                bookingPosition.amount = -remove;
 | 
				
			||||||
                bookingPosition.slotEntry = slot.copyAddAmount(-remove);
 | 
					                bookingPosition.slotEntry = slot.copyAddAmount(-remove, item.article);
 | 
				
			||||||
                bookingPosition.booking = booking;
 | 
					                bookingPosition.booking = booking;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                booking.positions.add(bookingPosition);
 | 
					                booking.positions.add(bookingPosition);
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,7 @@ public class CreateManuelBookingAction {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            bookingPosition.article = article;
 | 
					            bookingPosition.article = article;
 | 
				
			||||||
            bookingPosition.amount = -amount;
 | 
					            bookingPosition.amount = -amount;
 | 
				
			||||||
            bookingPosition.slotEntry = source.get().copyAddAmount(-amount);
 | 
					            bookingPosition.slotEntry = source.get().copyAddAmount(-amount, article);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (bookingPosition.slotEntry.newSumSlot < 0 || bookingPosition.slotEntry.newSumSlot > article.warehouseUnitsPerSlot) {
 | 
					            if (bookingPosition.slotEntry.newSumSlot < 0 || bookingPosition.slotEntry.newSumSlot > article.warehouseUnitsPerSlot) {
 | 
				
			||||||
                throw new ArticleSlotConstraintFailedException("The quantity of article can only be set in bounds.");
 | 
					                throw new ArticleSlotConstraintFailedException("The quantity of article can only be set in bounds.");
 | 
				
			||||||
@ -53,7 +53,7 @@ public class CreateManuelBookingAction {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if (destination.isPresent()) {
 | 
					        if (destination.isPresent()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (destination.get().article.id != article.id) {
 | 
					            if (destination.get().article.id != article.id && destination.get().newSumSlot > 0) {
 | 
				
			||||||
                throw new ArticleSlotConstraintArticleTypeFailedException();
 | 
					                throw new ArticleSlotConstraintArticleTypeFailedException();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -62,7 +62,7 @@ public class CreateManuelBookingAction {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            bookingPosition.article = article;
 | 
					            bookingPosition.article = article;
 | 
				
			||||||
            bookingPosition.amount = amount;
 | 
					            bookingPosition.amount = amount;
 | 
				
			||||||
            bookingPosition.slotEntry = destination.get().copyAddAmount(amount);
 | 
					            bookingPosition.slotEntry = destination.get().copyAddAmount(amount, article);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (bookingPosition.slotEntry.newSumSlot < 0 || bookingPosition.slotEntry.newSumSlot > article.warehouseUnitsPerSlot) {
 | 
					            if (bookingPosition.slotEntry.newSumSlot < 0 || bookingPosition.slotEntry.newSumSlot > article.warehouseUnitsPerSlot) {
 | 
				
			||||||
                throw new ArticleSlotConstraintFailedException("The quantity of article can only be set in bounds.");
 | 
					                throw new ArticleSlotConstraintFailedException("The quantity of article can only be set in bounds.");
 | 
				
			||||||
 | 
				
			|||||||
@ -49,7 +49,7 @@ public class SupplierOrderArrivedAction {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            bookingPosition.article = article;
 | 
					            bookingPosition.article = article;
 | 
				
			||||||
            bookingPosition.amount = willBeAdded;
 | 
					            bookingPosition.amount = willBeAdded;
 | 
				
			||||||
            bookingPosition.slotEntry = entry.copyAddAmount(willBeAdded);
 | 
					            bookingPosition.slotEntry = entry.copyAddAmount(willBeAdded, article);
 | 
				
			||||||
            bookingPosition.booking = booking;
 | 
					            bookingPosition.booking = booking;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            booking.positions.add(bookingPosition);
 | 
					            booking.positions.add(bookingPosition);
 | 
				
			||||||
 | 
				
			|||||||
@ -89,7 +89,7 @@ public class SupplierOrderController {
 | 
				
			|||||||
								WarehouseBookingPositionSlotEntry.empty(article, slot)
 | 
													WarehouseBookingPositionSlotEntry.empty(article, slot)
 | 
				
			||||||
						)
 | 
											)
 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
				.filter(entry -> entry.article.id == article.id)
 | 
									.filter(entry -> entry.article.id == article.id || entry.newSumSlot == 0)
 | 
				
			||||||
				.collect(Collectors.toList());
 | 
									.collect(Collectors.toList());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		SupplierOrderArrivedAction action = new SupplierOrderArrivedAction(candidates, order, article);
 | 
							SupplierOrderArrivedAction action = new SupplierOrderArrivedAction(candidates, order, article);
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,12 @@ public class WarehouseBookingPositionSlotEntry {
 | 
				
			|||||||
    @ManyToOne
 | 
					    @ManyToOne
 | 
				
			||||||
    public Slot slot;
 | 
					    public Slot slot;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public WarehouseBookingPositionSlotEntry copyAddAmount(int amount) {
 | 
					    public WarehouseBookingPositionSlotEntry copyAddAmount(int amount, Article article) {
 | 
				
			||||||
 | 
					        // Article can be changed if newSumSlot == 0.
 | 
				
			||||||
 | 
					        if (this.newSumSlot != 0 && this.article.id != article.id) {
 | 
				
			||||||
 | 
					            throw new IllegalArgumentException("Article does not match.");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        WarehouseBookingPositionSlotEntry e = new WarehouseBookingPositionSlotEntry();
 | 
					        WarehouseBookingPositionSlotEntry e = new WarehouseBookingPositionSlotEntry();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        e.article = article;
 | 
					        e.article = article;
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user