LogikalSettings.cs 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  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 enum LogikalMeasurement
  25. {
  26. Millimetres,
  27. Metres
  28. }
  29. public enum LogikalDrawingFormat
  30. {
  31. DXF,
  32. PNG
  33. }
  34. public enum LogikalDrawingView
  35. {
  36. Interior,
  37. Exterior
  38. }
  39. public enum LogikalDrawingType
  40. {
  41. Explosion,
  42. Section,
  43. Elevation,
  44. ElevationWithSectionLines,
  45. SectionLine,
  46. }
  47. public class LogikalSettings : BaseObject, IGlobalConfigurationSettings
  48. {
  49. [FileNameEditor]
  50. [EditorSequence(1)]
  51. public string Path { get; set; }
  52. [TextBoxEditor]
  53. [EditorSequence(2)]
  54. public string UserID { get; set; }
  55. [PasswordEditor]
  56. [EditorSequence(3)]
  57. public string Password { get; set; }
  58. [EnumLookupEditor(typeof(LogikalProjectType))]
  59. [EditorSequence(4)]
  60. [Caption("Import Projects")]
  61. public LogikalProjectType ImportProjects { get; set; }
  62. [CheckBoxEditor]
  63. [EditorSequence(6)]
  64. public bool UseLogikalProjectNumber { get; set; }
  65. [EnumLookupEditor(typeof(LogikalCostType))]
  66. [EditorSequence(5)]
  67. [Caption("Import Costs")]
  68. public LogikalCostType ImportCosts { get; set; }
  69. [EnumLookupEditor(typeof(LogikalDesignType))]
  70. [EditorSequence(7)]
  71. [Caption("Import Designs")]
  72. public LogikalDesignType ImportDesigns { get; set; }
  73. [EnumLookupEditor(typeof(LogikalDrawingFormat))]
  74. [EditorSequence(8)]
  75. [Caption("Drawing Format")]
  76. public LogikalDrawingFormat DrawingFormat { get; set; } = LogikalDrawingFormat.PNG;
  77. [EnumLookupEditor(typeof(LogikalDrawingView))]
  78. [EditorSequence(9)]
  79. [Caption("Drawing View")]
  80. public LogikalDrawingView DrawingView { get; set; } = LogikalDrawingView.Interior;
  81. [EnumLookupEditor(typeof(LogikalDrawingType))]
  82. [EditorSequence(10)]
  83. [Caption("Drawing Type")]
  84. public LogikalDrawingType DrawingType { get; set; } = LogikalDrawingType.Elevation;
  85. [CheckBoxEditor]
  86. [EditorSequence(11)]
  87. public bool SaveFiles { get; set; }
  88. [MemoEditor]
  89. [EditorSequence("1. Finishes", 1)]
  90. [Caption("Query")]
  91. public String FinishSQL { get; set; }
  92. private class ProfileUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  93. {
  94. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  95. {
  96. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  97. .And(x=>x.HasWidth).IsEqualTo(false)
  98. .And(x=>x.HasHeight).IsEqualTo(false)
  99. .And(x=>x.HasQuantity).IsEqualTo(false);
  100. }
  101. }
  102. [EditorSequence("2. Profiles", 1)]
  103. [Caption("Unit")]
  104. [LookupDefinition(typeof(ProfileUomLookup))]
  105. public ProductDimensionUnitLink ProfileUom { get; set; }
  106. [EditorSequence("2. Profiles", 2)]
  107. [EnumLookupEditor(typeof(LogikalMeasurement))]
  108. [Caption("Scale")]
  109. public LogikalMeasurement ProfileMeasurement { get; set; }
  110. [MemoEditor(Height=200)]
  111. [EditorSequence("2. Profiles", 3)]
  112. [Caption("BOM")]
  113. public String BillOfMaterialsProfileSQL { get; set; }
  114. [MemoEditor(Height=200)]
  115. [EditorSequence("2. Profiles", 4)]
  116. [Caption("Design")]
  117. public String DesignProfileSQL { get; set; }
  118. private class GasketUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  119. {
  120. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  121. {
  122. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  123. .And(x=>x.HasWidth).IsEqualTo(false)
  124. .And(x=>x.HasHeight).IsEqualTo(false)
  125. .And(x=>x.HasQuantity).IsEqualTo(false);
  126. }
  127. }
  128. [EditorSequence("3. Gaskets", 1)]
  129. [LookupDefinition(typeof(GasketUomLookup))]
  130. [Caption("Unit")]
  131. public ProductDimensionUnitLink GasketUom { get; set; }
  132. [EditorSequence("3. Gaskets", 2)]
  133. [EnumLookupEditor(typeof(LogikalMeasurement))]
  134. [Caption("Scale")]
  135. public LogikalMeasurement GasketMeasurement { get; set; }
  136. [MemoEditor]
  137. [EditorSequence("3. Gaskets", 3)]
  138. [Caption("Query")]
  139. public string GasketSQL { get; set; }
  140. private class ComponentUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  141. {
  142. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  143. {
  144. return new Filter<ProductDimensionUnit>(x=>x.HasQuantity).IsEqualTo(true)
  145. .And(x => x.HasLength).IsEqualTo(false)
  146. .And(x=>x.HasWidth).IsEqualTo(false)
  147. .And(x=>x.HasHeight).IsEqualTo(false);
  148. }
  149. }
  150. [EditorSequence("4. Components", 1)]
  151. [LookupDefinition(typeof(ComponentUomLookup))]
  152. [Caption("Unit")]
  153. public ProductDimensionUnitLink ComponentUom { get; set; }
  154. [MemoEditor]
  155. [EditorSequence("4. Components", 2)]
  156. [Caption("Query")]
  157. public String ComponentSQL { get; set; }
  158. private class GlassUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  159. {
  160. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  161. {
  162. return new Filter<ProductDimensionUnit>(x=>x.HasWidth).IsEqualTo(true)
  163. .And(x=>x.HasHeight).IsEqualTo(true)
  164. .And(x => x.HasLength).IsEqualTo(false)
  165. .And(x=>x.HasQuantity).IsEqualTo(false);
  166. }
  167. }
  168. [EditorSequence("5. Glass", 1)]
  169. [LookupDefinition(typeof(GlassUomLookup))]
  170. [Caption("Unit")]
  171. public ProductDimensionUnitLink GlassUom { get; set; }
  172. [EditorSequence("5. Glass", 2)]
  173. [EnumLookupEditor(typeof(LogikalMeasurement))]
  174. [Caption("Scale")]
  175. public LogikalMeasurement GlassMeasurement { get; set; }
  176. [MemoEditor]
  177. [EditorSequence("5. Glass", 2)]
  178. [Caption("Query")]
  179. public String GlassSQL { get; set; }
  180. [MemoEditor]
  181. [EditorSequence("6. Labour", 1)]
  182. [Caption("Query")]
  183. public String LabourSQL { get; set; }
  184. }
  185. }