V6Settings.cs 6.9 KB

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