LogikalSettings.cs 7.0 KB

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