Quellcode durchsuchen

Fixed Costcentre not being populated for reservation management screen

Kenric Nugteren vor 1 Jahr
Ursprung
Commit
386fb2246d

+ 6 - 4
prs.desktop/Panels/Products/Reservation Management/JobRequisitionHoldingsReview.xaml.cs

@@ -27,11 +27,11 @@ namespace PRSDesktop
             }
         }
 
-        public event HoldingsReviewRefresh OnHoldingsReviewRefresh;
+        public event HoldingsReviewRefresh? OnHoldingsReviewRefresh;
         List<Job> jobs = new List<Job>();
 
-        private JobRequisitionItem item;
-        public JobRequisitionItem Item
+        private JobRequisitionItem? item;
+        public JobRequisitionItem? Item
         {
             get
             {
@@ -146,7 +146,7 @@ namespace PRSDesktop
             if (item != null)
             {
                 var currentJobHoldings = new JobRequiHoldingsReviewModel(item.Job.ID,
-                    item?.Job.JobNumber, item?.Job.Name, mvts, CompanyDefaultStyle);
+                    item.Job.JobNumber, item.Job.Name, mvts, CompanyDefaultStyle);
                 currentJobHoldings.GetStock(item.Job.ID, item.Style.ID);
                 greenList.Add(currentJobHoldings);
             }
@@ -221,6 +221,8 @@ namespace PRSDesktop
 
         private void LaunchStockSelectionPage(string buttonName, JobRequiHoldingsReviewModel model)
         {
+            if (Item is null) return;
+
             var mvts = model.Movements.Where(x => x.Job.ID == model.JobID);
 
             switch (buttonName)

+ 4 - 5
prs.desktop/Panels/Products/Reservation Management/JobRequisitionPurchasing.xaml.cs

@@ -27,7 +27,7 @@ namespace PRSDesktop
         bool bLoaded = false;
         public void LoadFromRequiLine()
         {
-            if (bLoaded)
+            if (bLoaded || JobRequiItems.Count == 0)
                 return;
 
             var poid = JobRequiItems[0].PurchaseOrderItem.PurchaseOrderLink.ID;
@@ -218,7 +218,7 @@ namespace PRSDesktop
 
         public void DropItems(CoreRow[] rows)
         {
-            var page = Editor.Pages.Find(x => x.GetType() == typeof(SupplierPurchaseOrderItemOneToMany)) as SupplierPurchaseOrderItemOneToMany;
+            var page = Editor.Pages.OfType<SupplierPurchaseOrderItemOneToMany>().First();
             if (page.Items.Count == 0)
                 page.LoadItems(CreatePOItemsFromRequiItems(rows).ToArray());
             else
@@ -233,7 +233,7 @@ namespace PRSDesktop
             return items.ToArray();
         }
 
-        private List<PurchaseOrderItem> CreatePOItemsFromRequiItems(CoreRow[] selected, List<PurchaseOrderItem> comparison = null)
+        private List<PurchaseOrderItem> CreatePOItemsFromRequiItems(CoreRow[] selected, List<PurchaseOrderItem>? comparison = null)
         {
             List<PurchaseOrderItem> items = new List<PurchaseOrderItem>();
             foreach (CoreRow row in selected)
@@ -245,8 +245,7 @@ namespace PRSDesktop
 
                 PurchaseOrderItem POItem = new PurchaseOrderItem();
                 POItem.Product.ID = JobReqItem.Product.ID;
-                POItem.Product.Code = JobReqItem.Product.Code;
-                POItem.Product.Name = JobReqItem.Product.Name;
+                POItem.Product.Synchronise(JobReqItem.Product);
                 POItem.Description = JobReqItem.Product.Name;
                 POItem.Qty = JobReqItem.Qty;
                 POItem.Dimensions.CopyFrom(JobReqItem.Dimensions);

+ 1 - 1
prs.desktop/Panels/Products/Reservation Management/JobRequisitionsPanel.xaml.cs

@@ -208,7 +208,7 @@ namespace PRSDesktop
             holdings.Item = rows.FirstOrDefault()?.ToObject<JobRequisitionItem>();
             if (mode == PanelMode.Purchase)
             {
-                purchasing.JobRequiItems = CreateList(rows);
+                purchasing.JobRequiItems = rows.ToObjects<JobRequisitionItem>().ToList();
                 purchasing.LoadFromRequiLine();
             }
         }