|  | @@ -40,28 +40,26 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |              return true;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private bool LoadRequisitionItems(Requisition entity, ref IEnumerable<RequisitionItem> requisitionitems)
 | 
	
		
			
				|  |  | +        private bool LoadRequisitionItems(Requisition entity, ref IList<RequisitionItem> requisitionitems)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            if (requisitionitems == null)
 | 
	
		
			
				|  |  | -                requisitionitems = Provider.Query(
 | 
	
		
			
				|  |  | +            requisitionitems ??= Provider.Query(
 | 
	
		
			
				|  |  |                      new Filter<RequisitionItem>(x => x.RequisitionLink.ID).IsEqualTo(entity.ID)
 | 
	
		
			
				|  |  | -                ).Rows.Select(x => x.ToObject<RequisitionItem>());
 | 
	
		
			
				|  |  | +                ).ToList<RequisitionItem>();
 | 
	
		
			
				|  |  |              return requisitionitems.Any();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private bool LoadDeliveryItems(Requisition entity, ref IEnumerable<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  | +        private bool LoadDeliveryItems(Requisition entity, ref IList<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            if (deliveryitems == null)
 | 
	
		
			
				|  |  | -                deliveryitems = Provider.Query(
 | 
	
		
			
				|  |  | +            deliveryitems ??= Provider.Query(
 | 
	
		
			
				|  |  |                      new Filter<DeliveryItem>(x => x.RequisitionLink.ID).IsEqualTo(entity.ID),
 | 
	
		
			
				|  |  |                      new Columns<DeliveryItem>(x => x.ID, x => x.DeliveredDate)
 | 
	
		
			
				|  |  | -                ).Rows.Select(x => x.ToObject<DeliveryItem>());
 | 
	
		
			
				|  |  | +                ).ToList<DeliveryItem>();
 | 
	
		
			
				|  |  |              return deliveryitems.Any();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          #region TakenBy
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void UpdateTakenBy(Requisition entity, ref IEnumerable<RequisitionItem> items, ref IEnumerable<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  | +        private void UpdateTakenBy(Requisition entity, ref IList<RequisitionItem> items, ref IList<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              Log("UpdateTakenBy() - starting");
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -116,8 +114,8 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.AfterSave(entity);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            IEnumerable<RequisitionItem> requisitionitems = null;
 | 
	
		
			
				|  |  | -            IEnumerable<DeliveryItem> deliveryitems = null;
 | 
	
		
			
				|  |  | +            IList<RequisitionItem> requisitionitems = null;
 | 
	
		
			
				|  |  | +            IList<DeliveryItem> deliveryitems = null;
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  |              UpdateDeliveryItems(entity, ref requisitionitems, ref deliveryitems);
 | 
	
		
			
				|  |  |              UpdateTakenBy(entity, ref requisitionitems, ref deliveryitems);
 | 
	
	
		
			
				|  | @@ -153,8 +151,8 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          #region Delivery Items
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void CreateDeliveryItems(Requisition entity, ref IEnumerable<RequisitionItem> requisitionitems,
 | 
	
		
			
				|  |  | -            ref IEnumerable<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  | +        private void CreateDeliveryItems(Requisition entity, ref IList<RequisitionItem> requisitionitems,
 | 
	
		
			
				|  |  | +            ref IList<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              if (!LoadRequisitionItems(entity, ref requisitionitems))
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -172,7 +170,7 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |              deliveryitems = updates;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void ClearDeliveryItems(Requisition entity, ref IEnumerable<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  | +        private void ClearDeliveryItems(Requisition entity, ref IList<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              if (!LoadDeliveryItems(entity, ref deliveryitems))
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -185,8 +183,8 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |              deliveryitems = new List<DeliveryItem>();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void UpdateDeliveryItems(Requisition entity, ref IEnumerable<RequisitionItem> requisitionitems,
 | 
	
		
			
				|  |  | -            ref IEnumerable<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  | +        private void UpdateDeliveryItems(Requisition entity, ref IList<RequisitionItem> requisitionitems,
 | 
	
		
			
				|  |  | +            ref IList<DeliveryItem> deliveryitems)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              Log("UpdateDeliveryItems() - starting");
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -241,10 +239,9 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |              return movement;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void CreateStockBatch(Requisition entity, ref IEnumerable<RequisitionItem> items)
 | 
	
		
			
				|  |  | +        private void CreateStockBatch(Requisition entity, ref IList<RequisitionItem> items)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            LoadRequisitionItems(entity, ref items);
 | 
	
		
			
				|  |  | -            if (!items.Any())
 | 
	
		
			
				|  |  | +            if(!LoadRequisitionItems(entity, ref items))
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  Log("CreateStockBatch() - no items to update!");
 | 
	
		
			
				|  |  |                  return;
 | 
	
	
		
			
				|  | @@ -278,7 +275,7 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |                          new Filter<StockHolding>(x => x.Location.ID).IsEqualTo(locationid)
 | 
	
		
			
				|  |  |                              .And(x => x.Product.ID).IsEqualTo(productid)
 | 
	
		
			
				|  |  |                              .And(x => x.Style.ID).IsEqualTo(styleid)
 | 
	
		
			
				|  |  | -                            .And(x => x.Dimensions.UnitSize).IsEqualTo(unitsize)
 | 
	
		
			
				|  |  | +                            .And(x => x.Dimensions).DimensionEquals(item.Dimensions)
 | 
	
		
			
				|  |  |                              .And(x => x.Job.ID).IsEqualTo(jobid)
 | 
	
		
			
				|  |  |                              .And(x => x.Qty).IsGreaterThan(0.0),
 | 
	
		
			
				|  |  |                          new Columns<StockHolding>(x => x.Qty)
 | 
	
	
		
			
				|  | @@ -339,7 +336,7 @@ namespace Comal.Stores
 | 
	
		
			
				|  |  |                  FindSubStore<StockMovementBatch>().Delete(batches, "");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        private void UpdateStockBatches(Requisition entity, ref IEnumerable<RequisitionItem> items)
 | 
	
		
			
				|  |  | +        private void UpdateStockBatches(Requisition entity, ref IList<RequisitionItem> items)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              Log("UpdateStockBatch() - starting");
 | 
	
		
			
				|  |  |              if (!NeedsUpdating(entity, x => x.StockUpdated))
 |