Преглед на файлове

Made requisitionstore holding loading better and added transaction ids even for single-transaction stock movements

Kenric Nugteren преди 1 година
родител
ревизия
83765f5b79
променени са 1 файла, в които са добавени 6 реда и са изтрити 8 реда
  1. 6 8
      prs.stores/RequisitionStore.cs

+ 6 - 8
prs.stores/RequisitionStore.cs

@@ -284,13 +284,12 @@ 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.UnitSize).IsEqualTo(unitsize),
+                    new Columns<StockHolding>(x => x.Job.ID)
                 );
-                var holdingrow = holdings.Rows.FirstOrDefault(r => r.Get<StockHolding, Guid>(c => c.Job.ID).Equals(jobid));
-                if (holdingrow == null)
-                    holdingrow = holdings.Rows.FirstOrDefault(r => r.Get<StockHolding, Guid>(c => c.Job.ID).Equals(Guid.Empty));
-                if (holdingrow == null)
-                    holdingrow = holdings.Rows.FirstOrDefault();
+                var holdingrow = holdings.Rows.FirstOrDefault(r => r.Get<StockHolding, Guid>(c => c.Job.ID).Equals(jobid))
+                    ?? holdings.Rows.FirstOrDefault(r => r.Get<StockHolding, Guid>(c => c.Job.ID).Equals(Guid.Empty))
+                    ?? holdings.Rows.FirstOrDefault();
                 Guid holdingjobid = holdingrow != null
                     ? holdingrow.Get<StockHolding, Guid>(c => c.Job.ID)
                     : Guid.Empty;
@@ -298,10 +297,9 @@ namespace Comal.Stores
                 var qty = item.ActualQuantity;
                 var dimensions = item.Product.DefaultInstance.Dimensions;
 
-                var txnid = Guid.Empty;
+                var txnid = Guid.NewGuid();
                 if (jobid != holdingjobid)
                 {
-                    txnid = Guid.NewGuid();
                     updates.Add(CreateStockMovement(entity.Employee.ID, DateTime.Now, batch.ID, productid, locationid, styleid, holdingjobid,
                         -qty, dimensions, txnid, true, string.Format("Requisition #{0} Internal Transfer", entity.Number)));
                     updates.Add(CreateStockMovement(entity.Employee.ID, DateTime.Now, batch.ID, productid, locationid, styleid, jobid, qty, dimensions, txnid, true,