ManufacturingPacketComponent.cs 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using InABox.Core;
  2. using System;
  3. namespace Comal.Classes
  4. {
  5. [UserTracking(typeof(ManufacturingPacket))]
  6. [Caption("Components")]
  7. public class ManufacturingPacketComponent : DimensionedEntity<ProductDimensions>, IRemotable, IPersistent, IOneToMany<ManufacturingPacket>, ILicense<ManufacturingLicense>
  8. {
  9. [EntityRelationship(DeleteAction.Cascade)]
  10. public ManufacturingPacketLink Packet { get; set; }
  11. [EntityRelationship(DeleteAction.SetNull)]
  12. [EditorSequence(1)]
  13. public ProductLink Product { get; set; }
  14. [TextBoxEditor]
  15. [EditorSequence(2)]
  16. public string Description { get; set; }
  17. [DimensionsEditor(typeof(ProductDimensions))]
  18. [EditorSequence(4)]
  19. public override ProductDimensions Dimensions { get; set; }
  20. [EditorSequence(5)]
  21. public int Quantity { get; set; }
  22. [NullEditor]
  23. public int Consumed { get; set; }
  24. /// <summary>
  25. /// When a picking list is creating for a <see cref="ManufacturingPacketComponent"/>, we save a link to the requisition,
  26. /// so that we don't require the same component twice.
  27. /// </summary>
  28. [NullEditor]
  29. public RequisitionLink Requisition { get; set; }
  30. static ManufacturingPacketComponent()
  31. {
  32. LinkedProperties.Register<ManufacturingPacketComponent, ProductLink, string>(x => x.Product, x => x.Name, x => x.Description);
  33. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, Guid>(x => x.Product.UnitOfMeasure, x => x.ID, x => x.Dimensions.Unit.ID);
  34. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, string>(x => x.Product.UnitOfMeasure, x => x.Code, x => x.Dimensions.Unit.Code);
  35. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, string>(x => x.Product.UnitOfMeasure, x => x.Description, x => x.Dimensions.Unit.Description);
  36. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasLength, x => x.Dimensions.Unit.HasLength);
  37. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasHeight, x => x.Dimensions.Unit.HasHeight);
  38. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasQuantity, x => x.Dimensions.Unit.HasQuantity);
  39. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasWeight, x => x.Dimensions.Unit.HasWeight);
  40. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, bool>(x => x.Product.UnitOfMeasure, x => x.HasWidth, x => x.Dimensions.Unit.HasWidth);
  41. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, string>(x => x.Product.UnitOfMeasure, x => x.Formula, x => x.Dimensions.Unit.Formula);
  42. LinkedProperties.Register<ManufacturingPacketComponent, ProductDimensionUnitLink, string>(x => x.Product.UnitOfMeasure, x => x.Format, x => x.Dimensions.Unit.Format);
  43. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Height, x => x.Dimensions.Height);
  44. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Length, x => x.Dimensions.Length);
  45. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Quantity, x => x.Dimensions.Quantity);
  46. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Weight, x => x.Dimensions.Weight);
  47. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Width, x => x.Dimensions.Width);
  48. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, double>(x => x.Product.DefaultInstance.Dimensions, x => x.Value, x => x.Dimensions.Value);
  49. LinkedProperties.Register<ManufacturingPacketComponent, StockDimensions, string>(x => x.Product.DefaultInstance.Dimensions, x => x.UnitSize, x => x.Dimensions.UnitSize);
  50. }
  51. }
  52. }