JobBillOfMaterialsItem.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using System.Linq;
  3. using InABox.Core;
  4. using PRSClasses;
  5. namespace Comal.Classes
  6. {
  7. public class JobBillOfMaterialsItem : StockEntity, IRemotable, IPersistent, IOneToMany<Job>,
  8. IOneToMany<JobBillOfMaterials>, ISequenceable, ILicense<ProjectManagementLicense>, IJobMaterial
  9. {
  10. [EntityRelationship(DeleteAction.Cascade)]
  11. public JobLink Job { get; set; }
  12. [EntityRelationship(DeleteAction.Cascade)]
  13. public JobBillOfMaterialsLink BillOfMaterials { get; set; }
  14. [EditorSequence(1)]
  15. [TextBoxEditor]
  16. public string Section { get; set; }
  17. [EditorSequence(2)]
  18. [EntityRelationship(DeleteAction.SetNull)]
  19. public JobITPLink ITP { get; set; }
  20. [EditorSequence(3)]
  21. [EntityRelationship(DeleteAction.SetNull)]
  22. [RequiredColumn]
  23. public override ProductLink Product { get; set; }
  24. [EditorSequence(4)]
  25. [EntityRelationship(DeleteAction.SetNull)]
  26. public ProductStyleLink Style { get; set; }
  27. [NullEditor]
  28. [Obsolete("Replaced by Dimensions",true)]
  29. public double UnitSize { get; set; }
  30. [EditorSequence(5)]
  31. [RequiredColumn]
  32. [DimensionsEditor(typeof(StockDimensions), AllowEditingUnit = false)]
  33. public override StockDimensions Dimensions { get; set; }
  34. [EditorSequence(6)]
  35. [DoubleEditor(Summary = Summary.Sum)]
  36. public double Quantity { get; set; }
  37. [EditorSequence(7)]
  38. public SupplierLink Supplier { get; set; }
  39. [NullEditor]
  40. public long Sequence { get; set; }
  41. public PurchaseOrderItemLink PurchaseOrderItem { get; set; }
  42. public ManufacturingPacketLink Packet { get; set; }
  43. protected override void Init()
  44. {
  45. base.Init();
  46. Job = new JobLink();
  47. BillOfMaterials = new JobBillOfMaterialsLink();
  48. ITP = new JobITPLink();
  49. Style = new ProductStyleLink();
  50. PurchaseOrderItem = new PurchaseOrderItemLink();
  51. Supplier = new SupplierLink();
  52. Packet = new ManufacturingPacketLink();
  53. }
  54. static JobBillOfMaterialsItem()
  55. {
  56. LinkedProperties.Register<JobBillOfMaterialsItem, ProductStyleLink, Guid>(x=>x.Product.DefaultStyle, x => x.ID, x => x.Style.ID);
  57. StockEntity.LinkStockDimensions<JobBillOfMaterialsItem>();
  58. }
  59. }
  60. }