V6Settings.cs 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. using System;
  2. using InABox.Configuration;
  3. using InABox.Core;
  4. namespace Comal.Classes
  5. {
  6. public enum V6ProjectType
  7. {
  8. None,
  9. Quote,
  10. Project
  11. }
  12. public enum V6DesignType
  13. {
  14. None,
  15. Approved,
  16. NotApproved
  17. }
  18. public enum V6Measurement
  19. {
  20. Millimetres,
  21. Metres,
  22. Inches
  23. }
  24. public class V6Settings : BaseObject, IGlobalConfigurationSettings
  25. {
  26. [TextBoxEditor]
  27. [EditorSequence(1)]
  28. public string Server { get; set; }
  29. [TextBoxEditor]
  30. [EditorSequence(2)]
  31. public string Database { get; set; }
  32. [TextBoxEditor]
  33. [EditorSequence(3)]
  34. public string UserID { get; set; }
  35. [PasswordEditor]
  36. [EditorSequence(4)]
  37. public string Password { get; set; }
  38. public string AsConnectionString() => String.IsNullOrWhiteSpace(UserID) && String.IsNullOrWhiteSpace(Password)
  39. ? $"server={Server};database={Database};integrated security=SSPI;"
  40. : $"server={Server};database={Database};integrated security=false;user id={UserID};password={Password}";
  41. [EnumLookupEditor(typeof(V6ProjectType))]
  42. [EditorSequence(5)]
  43. [Caption("Import Projects")]
  44. public V6ProjectType ImportProjects { get; set; }
  45. [CheckBoxEditor]
  46. [EditorSequence(6)]
  47. public bool UseV6QuoteNumber { get; set; }
  48. [CheckBoxEditor]
  49. [EditorSequence(7)]
  50. [Caption("Import BOMs")]
  51. public bool ImportBoms { get; set; }
  52. [CheckBoxEditor]
  53. [EditorSequence(8)]
  54. [Caption("Import Requis")]
  55. public bool ImportRequis { get; set; }
  56. [EnumLookupEditor(typeof(V6DesignType))]
  57. [EditorSequence(9)]
  58. [Caption("Import Designs")]
  59. public V6DesignType ImportDesigns { get; set; }
  60. // private class GlassUomLookupGenerator : AbstractUomLookupGenerator
  61. // {
  62. //
  63. // protected GlassUomLookupGenerator(object[] items) : base(items) { }
  64. //
  65. // protected override Filter<ProductDimensionUnit> UomFilter() =>
  66. // new Filter<ProductDimensionUnit>(x => x.HasHeight).IsEqualTo(true).And(x=>x.HasWidth).IsEqualTo(true);
  67. // }
  68. //[ComboLookupEditor(typeof(GlassUomLookupGenerator))]
  69. //[ComboLookupEditor(typeof(GlassUomLookupGenerator))]
  70. [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)]
  71. [EditorSequence(10)]
  72. public String PacketTemplate { get; set; }
  73. private class ProfileUomLookup : 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("1. Profiles", 1)]
  84. [Caption("Unit")]
  85. [LookupDefinition(typeof(ProfileUomLookup))]
  86. public ProductDimensionUnitLink ProfileUom { get; set; }
  87. [EditorSequence("1. Profiles", 2)]
  88. [EnumLookupEditor(typeof(V6Measurement))]
  89. [Caption("Scale")]
  90. public V6Measurement ProfileMeasurement { get; set; }
  91. [MemoEditor(Height=200)]
  92. [EditorSequence("1. Profiles", 3)]
  93. [Caption("BOM")]
  94. public String BOMProfilesSQL { get; set; }// = V6Profile.SQL;
  95. [MemoEditor(Height=200)]
  96. [EditorSequence("1. Profiles", 4)]
  97. [Caption("Design")]
  98. public String DesignProfilesSQL { get; set; }// = V6Profile.SQL;
  99. private class GasketUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  100. {
  101. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  102. {
  103. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  104. .And(x=>x.HasWidth).IsEqualTo(false)
  105. .And(x=>x.HasHeight).IsEqualTo(false)
  106. .And(x=>x.HasQuantity).IsEqualTo(false);
  107. }
  108. }
  109. [EditorSequence("2. Gaskets", 1)]
  110. [LookupDefinition(typeof(GasketUomLookup))]
  111. [Caption("Unit")]
  112. public ProductDimensionUnitLink GasketUom { get; set; }
  113. [EditorSequence("2. Gaskets", 2)]
  114. [EnumLookupEditor(typeof(V6Measurement))]
  115. [Caption("Scale")]
  116. public V6Measurement GasketMeasurement { get; set; }
  117. [MemoEditor]
  118. [EditorSequence("2. Gaskets", 3)]
  119. [Caption("Query")]
  120. public string GasketSQL { get; set; }
  121. private class ComponentUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  122. {
  123. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  124. {
  125. return new Filter<ProductDimensionUnit>(x=>x.HasQuantity).IsEqualTo(true)
  126. .And(x => x.HasLength).IsEqualTo(false)
  127. .And(x=>x.HasWidth).IsEqualTo(false)
  128. .And(x=>x.HasHeight).IsEqualTo(false);
  129. }
  130. }
  131. [EditorSequence("3. Components", 1)]
  132. [LookupDefinition(typeof(ComponentUomLookup))]
  133. [Caption("Unit")]
  134. public ProductDimensionUnitLink ComponentUom { get; set; }
  135. [MemoEditor]
  136. [EditorSequence("3. Components", 2)]
  137. [Caption("Query")]
  138. public String ComponentSQL { get; set; }// = V6Component.SQL;
  139. private class GlassUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  140. {
  141. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  142. {
  143. return new Filter<ProductDimensionUnit>(x=>x.HasHeight).IsEqualTo(true)
  144. .And(x=>x.HasWidth).IsEqualTo(true)
  145. .And(x => x.HasLength).IsEqualTo(false)
  146. .And(x=>x.HasQuantity).IsEqualTo(false);
  147. }
  148. }
  149. [EditorSequence("4. Glass", 1)]
  150. [LookupDefinition(typeof(GlassUomLookup))]
  151. [Caption("Unit")]
  152. public ProductDimensionUnitLink GlassUom { get; set; }
  153. [EditorSequence("4. Glass", 2)]
  154. [EnumLookupEditor(typeof(V6Measurement))]
  155. [Caption("Scale")]
  156. public V6Measurement GlassMeasurement { get; set; }
  157. [MemoEditor]
  158. [EditorSequence("4. Glass", 2)]
  159. [Caption("Query")]
  160. public String GlassSQL { get; set; }// = V6Glass.SQL;
  161. [MemoEditor]
  162. [EditorSequence("5. Labour", 1)]
  163. [Caption("Query")]
  164. public String LabourSQL { get; set; }// = V6Labour.SQL;
  165. }
  166. }