Bladeren bron

PRS DESKTOP - updated shipping panel/scanner to check for barcode if not found in cache instead of doing nothing

Nick-PRSDigital@bitbucket.org 2 jaren geleden
bovenliggende
commit
9bdec2316e
1 gewijzigde bestanden met toevoegingen van 19 en 3 verwijderingen
  1. 19 3
      prs.desktop/Panels/Shipments/ShippingPanel.xaml.cs

+ 19 - 3
prs.desktop/Panels/Shipments/ShippingPanel.xaml.cs

@@ -8,6 +8,7 @@ using InABox.Clients;
 using InABox.Core;
 using InABox.DynamicGrid;
 using InABox.WPF;
+using jdk.nashorn.@internal.ir;
 using Motorola.Snapi;
 using Motorola.Snapi.Constants.Enums;
 using Motorola.Snapi.EventArguments;
@@ -306,7 +307,11 @@ namespace PRSDesktop
                 Shipment = null;
                 Requi = null;
 
-                var row = CheckShipment(code);
+                var row = CheckShipmentLocalCache(code);
+
+                if (row == null)                
+                    row = CheckShipmentOnServer(code);
+                
                 if (row != null)
                 {
                     Shipments.ScrollIntoView(row);
@@ -360,8 +365,7 @@ namespace PRSDesktop
             }
         }
 
-
-        private CoreRow CheckShipment(string code)
+        private CoreRow CheckShipmentLocalCache(string code)
         {
             var row = Shipments.MasterData.Rows.FirstOrDefault(r => r.Get<Shipment, string>(c => c.BarCode).Equals(code));
             if (row != null)
@@ -369,6 +373,18 @@ namespace PRSDesktop
             return null;
         }
 
+        private CoreRow? CheckShipmentOnServer(string code)
+        {
+            var row = new Client<Shipment>().Query(new Filter<Shipment>(x => x.BarCode).IsEqualTo(code))
+                .Rows.FirstOrDefault();
+            if (row != null)
+            {
+                Shipments.AddRow(row);
+                return row;
+            }             
+            return null;
+        }
+
         private DeliveryItem CheckItem(string code)
         {
             var row = ItemCache.Rows.FirstOrDefault(r => String.Equals(r.Get<DeliveryItem, string>(c => c.Barcode),code));