| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- using System;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     
 
-     public abstract class EntitySpreadsheet<TParent, TParentLink> : Entity, IRemotable, IPersistent, IOneToMany<TParent>, ISpreadsheet<TParent,TParentLink>
 
-         where TParent : Entity
 
-         where TParentLink : IEntityLink<TParent>, new()
 
-     {
 
-         [EditorSequence(1)]
 
-         [CodeEditor(Visible = Visible.Default, Editable = Editable.Enabled)]
 
-         public String Code { get; set; }
 
-         
 
-         [EditorSequence(2)]
 
-         [TextBoxEditor]
 
-         public String Description { get; set; }
 
-         
 
-         [EditorSequence(3)]
 
-         [TimestampEditor]
 
-         [LoggableProperty]
 
-         public DateTime Superceded { get; set; }
 
-         
 
-         [NullEditor]
 
-         public TParentLink Parent { get; set; }
 
-         public byte[] Data { get; set; } = Array.Empty<byte>();
 
-     }
 
-     public class JobSpreadsheet : EntitySpreadsheet<Job, JobLink>, ILicense<ProjectManagementLicense> {  }
 
-     
 
-     public class QuoteSpreadsheet : EntitySpreadsheet<Quote, QuoteLink>, ILicense<QuotesManagementLicense> {  }
 
-     public class ProductSpreadsheet : EntitySpreadsheet<Product, ProductLink>, ILicense<ProductManagementLicense> {  }
 
-     
 
-     public class CustomerSpreadsheet : EntitySpreadsheet<Customer, CustomerLink>, ILicense<AccountsReceivableLicense> {  }
 
-     
 
-     public class SupplierSpreadsheet : EntitySpreadsheet<Supplier, SupplierLink>, ILicense<AccountsPayableLicense> {  }
 
-     public class EmployeeSpreadsheet : EntitySpreadsheet<Employee, EmployeeLink>, ILicense<HumanResourcesLicense> {  }
 
-     
 
- }
 
 
  |