瀏覽代碼

PRS DESKTOP - changed supplier bill line grid to import based on Purchase Order Items instead of purchase orders

Nick-PRSDigital@bitbucket.org 2 年之前
父節點
當前提交
35790ef00b

+ 3 - 0
prs.desktop/Grids/EntityDocumentGrids/BillDocumentGrid.cs

@@ -1,10 +1,13 @@
 using Comal.Classes;
 using InABox.DynamicGrid;
+using java.lang;
+using Syncfusion.UI.Xaml.CellGrid.Styles;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows;
 
 namespace PRSDesktop
 {

+ 29 - 21
prs.desktop/Panels/Suppliers/SupplierBillLineGrid.cs

@@ -22,8 +22,8 @@ namespace PRSDesktop
                 .Add(DynamicGridOption.DirectEdit)
                 .EndUpdate();
 
-            AddButton("Import PO", PRSDesktop.Resources.purchase.AsBitmapImage(), ImportPurchaseOrder);
-            
+            AddButton("Import", PRSDesktop.Resources.purchase.AsBitmapImage(), ImportPOLines);
+
             HiddenColumns.Add(x => x.TaxCode.ID);
             HiddenColumns.Add(x => x.TaxCode.Code);
             HiddenColumns.Add(x => x.TaxCode.Description);
@@ -36,19 +36,25 @@ namespace PRSDesktop
 
         }
 
-        private bool ImportPurchaseOrder(Button arg1, CoreRow[] arg2)
+        private bool ImportPOLines(Button arg1, CoreRow[] arg2)
         {
-            MultiSelectDialog<PurchaseOrder> dlg = new MultiSelectDialog<PurchaseOrder>(
-                new Filter<PurchaseOrder>(x => x.SupplierLink.ID).IsEqualTo(Item.SupplierLink.ID).And(x => x.ClosedDate).IsEqualTo(DateTime.MinValue),
-                new Columns<PurchaseOrder>(x => x.ID).Add(x => x.PONumber).Add(x => x.Notes).Add(x => x.Balance),
-                false
-            );
+            MultiSelectDialog<PurchaseOrderItem> dlg = new MultiSelectDialog<PurchaseOrderItem>(
+                new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.SupplierLink.ID).IsEqualTo(Item.SupplierLink.ID).And(x => x.PurchaseOrderLink.ClosedDate).IsEqualTo(DateTime.MinValue),
+                new Columns<PurchaseOrderItem>
+                (
+                    x => x.ID,
+                    x => x.Description,
+                    x => x.Product.Code,
+                    x => x.ReceivedDate,
+                    x => x.Consignment.Number,
+                    x => x.PurchaseOrderLink.PONumber
+            ));
             if (dlg.ShowDialog() == true)
             {
                 var items = new Client<PurchaseOrderItem>().Query(
-                    new Filter<PurchaseOrderItem>(x => x.PurchaseOrderLink.ID).InList(dlg.IDs()),
+                    new Filter<PurchaseOrderItem>(x => x.ID).InList(dlg.IDs()),
                     new Columns<PurchaseOrderItem>(x => x.ID)
-                        .Add(x=>x.Description)
+                        .Add(x => x.Description)
                         .Add(x => x.TaxCode.ID)
                         .Add(x => x.TaxCode.Code)
                         .Add(x => x.TaxCode.Description)
@@ -58,13 +64,16 @@ namespace PRSDesktop
                         .Add(x => x.Tax)
                         .Add(x => x.IncTax)
                         .Add(x => x.Created)
-                        .Add(x=>x.PurchaseOrderLink.ID)
-                        .Add(x=>x.PurchaseOrderLink.PONumber)
+                        .Add(x => x.PurchaseOrderLink.ID)
+                        .Add(x => x.PurchaseOrderLink.PONumber)
+                        .Add(x => x.Product.ID)
+                        .Add(x => x.Product.Code)
+                        .Add(x => x.Product.Name)
                 );
                 foreach (var row in items.Rows)
                 {
                     var line = new BillLine();
-                    
+
                     line.OrderItem.ID = row.Get<PurchaseOrderItem, Guid>(x => x.ID);
                     line.OrderItem.PurchaseOrderLink.ID = row.Get<PurchaseOrderItem, Guid>(x => x.PurchaseOrderLink.ID);
                     line.OrderItem.PurchaseOrderLink.PONumber = row.Get<PurchaseOrderItem, String>(x => x.PurchaseOrderLink.PONumber);
@@ -78,24 +87,23 @@ namespace PRSDesktop
                         description.Add(Description);
                     line.Description = string.Join("\n", description);
 
+                    line.ExTax = row.Get<PurchaseOrderItem, double>(x => x.ExTax);
                     line.TaxCode.ID = row.Get<PurchaseOrderItem, Guid>(x => x.TaxCode.ID);
                     line.TaxCode.Code = row.Get<PurchaseOrderItem, string>(x => x.TaxCode.Code);
                     line.TaxCode.Description = row.Get<PurchaseOrderItem, string>(x => x.TaxCode.Description);
                     line.TaxCode.Rate = row.Get<PurchaseOrderItem, double>(x => x.TaxCode.Rate);
-                    line.TaxRate = row.Get<PurchaseOrderItem, double>(x => x.TaxRate);
-                    line.ExTax = row.Get<PurchaseOrderItem, double>(x => x.ExTax);
-                    line.Tax = row.Get<PurchaseOrderItem, double>(x => x.Tax);
-                    line.IncTax = row.Get<PurchaseOrderItem, double>(x => x.IncTax);
+                    //line.TaxRate = row.Get<PurchaseOrderItem, double>(x => x.TaxRate);                    
+                    //line.Tax = row.Get<PurchaseOrderItem, double>(x => x.Tax);
+                    //line.IncTax = row.Get<PurchaseOrderItem, double>(x => x.IncTax);
+                    line.OrderItem.Product.ID = row.Get<PurchaseOrderItem, Guid>(x => x.Product.ID);
+                    line.OrderItem.Product.Code = row.Get<PurchaseOrderItem, string>(x => x.Product.Code);
+                    line.OrderItem.Product.Name = row.Get<PurchaseOrderItem, string>(x => x.Product.Name);
                     Items.Add(line);
-
                 }
 
                 return true;
-
             }
-
             return false;
-
         }
     }
 }