Explorar el Código

Added Category Field to Suppliers

frogsoftware hace 1 año
padre
commit
d05c860b1a

+ 4 - 0
prs.classes/Entities/Supplier/Supplier.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq.Expressions;
+using System.Runtime.InteropServices;
 using InABox.Core;
 
 namespace Comal.Classes
@@ -72,6 +73,9 @@ namespace Comal.Classes
         
         [EditorSequence(5)]
         public StockLocationLink DefaultLocation { get; set; }
+        
+        [EditorSequence(6)]
+        public SupplierCategoryLink Category { get; set; }
 
         [EditorSequence("Delivery",1)]
         public Address Delivery { get; set; }

+ 18 - 0
prs.classes/Entities/Supplier/SupplierCategory.cs

@@ -0,0 +1,18 @@
+using System;
+using InABox.Core;
+
+namespace Comal.Classes
+{
+    public class SupplierCategory : Entity, IRemotable, IPersistent, ILicense<CoreLicense>, IExportable, IImportable,
+        IMergeable
+    {
+        [UniqueCodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
+        [EditorSequence(1)]
+        public String Code { get; set; } = "";
+
+        [TextBoxEditor]
+        [EditorSequence(2)]
+        public String Description { get; set; } = "";
+        
+    }
+}

+ 21 - 0
prs.classes/Entities/Supplier/SupplierCategoryLink.cs

@@ -0,0 +1,21 @@
+using System;
+using InABox.Core;
+
+namespace Comal.Classes
+{
+    public class SupplierCategoryLink : EntityLink<SupplierCategory>
+    {
+        [LookupEditor(typeof(SupplierCategory))]
+        [EditorSequence(1)]
+        public override Guid ID { get; set; }
+        
+        [CodeEditor(Visible = Visible.Default)]
+        [EditorSequence(2)]
+        public String Code { get; set; } = "";
+
+        [TextBoxEditor(Visible = Visible.Optional, Editable = Editable.Hidden)]
+        [EditorSequence(3)]
+        public String Description { get; set; } = "";
+        
+    }
+}

+ 26 - 0
prs.classes/Entities/Supplier/SupplierCategoryLookup.cs

@@ -0,0 +1,26 @@
+using InABox.Core;
+
+namespace Comal.Classes
+{
+    public class SupplierCategoryLookup : EntityLookup<SupplierCategory>
+    {
+        public override Columns<SupplierCategory> DefineColumns()
+        {
+            return new Columns<SupplierCategory>(
+                x => x.ID,
+                x => x.Code,
+                x => x.Description
+            );
+        }
+
+        public override Filter<SupplierCategory>? DefineFilter()
+        {
+            return null;
+        }
+
+        public override SortOrder<SupplierCategory> DefineSortOrder()
+        {
+            return new SortOrder<SupplierCategory>(x => x.Code);
+        }
+    }
+}

+ 7 - 0
prs.desktop/Panels/Suppliers/SupplierPanel.xaml.cs

@@ -54,6 +54,13 @@ public partial class SupplierPanel : UserControl, IPanel<Supplier>
     public void CreateToolbarButtons(IPanelHost host)
     {
         AccountsSetupActions.Standard(host);
+        
+        host.CreateSetupActionIfCanView<SupplierCategory>("Supplier Categories", PRSDesktop.Resources.supplier, (action) =>
+        {
+            var list = new MasterList(typeof(SupplierCategory));
+            list.ShowDialog();
+        });
+        
         host.CreateSetupSeparator();
         AccountsSetupActions.SupplierSpreadsheetTemplates(host);
     }