LogikalSettings.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. using System;
  2. using InABox.Configuration;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public enum LogikalProjectType
  7. {
  8. None,
  9. Quote,
  10. Project
  11. }
  12. public enum LogikalCostType
  13. {
  14. None,
  15. BOM,
  16. Requisition
  17. }
  18. public enum LogikalDesignType
  19. {
  20. None,
  21. Approved,
  22. NotApproved
  23. }
  24. public class LogikalSettings : BaseObject, IGlobalConfigurationSettings
  25. {
  26. [FileNameEditor]
  27. [EditorSequence(1)]
  28. public string Path { get; set; }
  29. [TextBoxEditor]
  30. [EditorSequence(2)]
  31. public string UserID { get; set; }
  32. [PasswordEditor]
  33. [EditorSequence(3)]
  34. public string Password { get; set; }
  35. [EnumLookupEditor(typeof(LogikalProjectType))]
  36. [EditorSequence(4)]
  37. [Caption("Import Projects")]
  38. public LogikalProjectType ImportProjects { get; set; }
  39. [EnumLookupEditor(typeof(LogikalCostType))]
  40. [EditorSequence(5)]
  41. [Caption("Import Costs")]
  42. public LogikalCostType ImportCosts { get; set; }
  43. [EnumLookupEditor(typeof(LogikalDesignType))]
  44. [EditorSequence(7)]
  45. [Caption("Import Designs")]
  46. public LogikalDesignType ImportDesigns { get; set; }
  47. [MemoEditor]
  48. [EditorSequence("1. Finishes", 1)]
  49. [Caption("Finishes")]
  50. public String FinishSQL { get; set; }
  51. private class ProfileUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  52. {
  53. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  54. {
  55. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  56. .And(x=>x.HasWidth).IsEqualTo(false)
  57. .And(x=>x.HasHeight).IsEqualTo(false)
  58. .And(x=>x.HasQuantity).IsEqualTo(false);
  59. }
  60. }
  61. [EditorSequence("2. Profiles", 1)]
  62. [Caption("Unit")]
  63. [LookupDefinition(typeof(ProfileUomLookup))]
  64. public ProductDimensionUnitLink ProfileUom { get; set; }
  65. [MemoEditor]
  66. [EditorSequence("2. Profiles", 2)]
  67. [Caption("BOM")]
  68. public String BillOfMaterialsProfileSQL { get; set; }
  69. [MemoEditor]
  70. [EditorSequence("2. Profiles", 3)]
  71. [Caption("Designs")]
  72. public String DesignProfileSQL { get; set; }
  73. private class GasketUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  74. {
  75. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  76. {
  77. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  78. .And(x=>x.HasWidth).IsEqualTo(false)
  79. .And(x=>x.HasHeight).IsEqualTo(false)
  80. .And(x=>x.HasQuantity).IsEqualTo(false);
  81. }
  82. }
  83. [EditorSequence("3. Gaskets", 1)]
  84. [LookupDefinition(typeof(GasketUomLookup))]
  85. public ProductDimensionUnitLink GasketUom { get; set; }
  86. [MemoEditor]
  87. [EditorSequence("3. Gaskets", 2)]
  88. [Caption("BOM")]
  89. public string BillOfMaterialsGasketSQL { get; set; }
  90. [MemoEditor]
  91. [EditorSequence("3. Gaskets", 3)]
  92. [Caption("Designs")]
  93. public string DesignGasketSQL { get; set; }
  94. private class ComponentUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  95. {
  96. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  97. {
  98. return new Filter<ProductDimensionUnit>(x=>x.HasQuantity).IsEqualTo(true)
  99. .And(x => x.HasLength).IsEqualTo(false)
  100. .And(x=>x.HasWidth).IsEqualTo(false)
  101. .And(x=>x.HasHeight).IsEqualTo(false);
  102. }
  103. }
  104. [EditorSequence("4. Components", 1)]
  105. [LookupDefinition(typeof(ComponentUomLookup))]
  106. [Caption("Unit")]
  107. public ProductDimensionUnitLink ComponentUom { get; set; }
  108. [MemoEditor]
  109. [EditorSequence("4. Components", 2)]
  110. [Caption("BOM")]
  111. public String BillOfMaterialsComponentSQL { get; set; }
  112. [MemoEditor]
  113. [EditorSequence("4. Components", 3)]
  114. [Caption("Designs")]
  115. public String DesignComponentSQL { get; set; }
  116. private class GlassUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  117. {
  118. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  119. {
  120. return new Filter<ProductDimensionUnit>(x=>x.HasWidth).IsEqualTo(true)
  121. .And(x=>x.HasHeight).IsEqualTo(true)
  122. .And(x => x.HasLength).IsEqualTo(false)
  123. .And(x=>x.HasQuantity).IsEqualTo(false);
  124. }
  125. }
  126. [EditorSequence("5. Glass", 1)]
  127. [LookupDefinition(typeof(GlassUomLookup))]
  128. public ProductDimensionUnitLink GlassUom { get; set; }
  129. [MemoEditor]
  130. [EditorSequence("5. Glass", 2)]
  131. [Caption("BOM")]
  132. public String BillOfMaterialsGlassSQL { get; set; }
  133. [MemoEditor]
  134. [EditorSequence("5. Glass", 3)]
  135. [Caption("Designs")]
  136. public String DesignGlassSQL { get; set; }
  137. [MemoEditor]
  138. [EditorSequence("6. Labour", 1)]
  139. [Caption("BOM")]
  140. public String BillOfMaterialsLabourSQL { get; set; }
  141. [MemoEditor]
  142. [EditorSequence("6. Labour", 2)]
  143. [Caption("Designs")]
  144. public String DesignLabourSQL { get; set; }
  145. }
  146. }