EmployeeProduct.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using InABox.Core;
  3. namespace Comal.Classes
  4. {
  5. [Caption("Issued Products")]
  6. public class EmployeeProduct : Entity, IRemotable, IPersistent, IOneToMany<Employee>, ILicense<ProductManagementLicense>
  7. {
  8. [NullEditor]
  9. public EmployeeLink Employee { get; set; }
  10. [EditorSequence(1)]
  11. private class ProductLookupGenerator : LookupDefinitionGenerator<Product, EmployeeProduct>
  12. {
  13. public override Filter<Product>? DefineFilter(EmployeeProduct[] items)
  14. => LookupFactory.DefineFilter<Product>().And(x => x.NonStock).IsEqualTo(false).And(x => x.DefaultLocation).LinkValid();
  15. }
  16. [LookupDefinition(typeof(ProductLookupGenerator))]
  17. public ProductLink Product { get; set; }
  18. [DoubleEditor]
  19. [EditorSequence(2)]
  20. public double Quantity { get; set; } = 1.0F;
  21. [TimestampEditor(Visible = Visible.Default)]
  22. [EditorSequence(3)]
  23. public DateTime Issued { get; set; }
  24. [NullEditor]
  25. [EntityRelationship(DeleteAction.SetNull)]
  26. public StockMovementLink IssuedMovement { get; set; }
  27. [TimestampEditor(Visible = Visible.Default)]
  28. [EditorSequence(4)]
  29. public DateTime Returned { get; set; }
  30. [NullEditor]
  31. [EntityRelationship(DeleteAction.Cascade)]
  32. public StockMovementLink ReturnedMovement { get; set; }
  33. [TimestampEditor(Visible = Visible.Default)]
  34. [EditorSequence(5)]
  35. public DateTime Disposed { get; set; }
  36. }
  37. }