V6Settings.cs 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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 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. [EnumLookupEditor(typeof(V6CostType))]
  46. [EditorSequence(6)]
  47. [Caption("Import Costs")]
  48. public V6CostType ImportCosts { get; set; }
  49. [EnumLookupEditor(typeof(V6DesignType))]
  50. [EditorSequence(7)]
  51. [Caption("Import Designs")]
  52. public V6DesignType ImportDesigns { get; set; }
  53. // private class GlassUomLookupGenerator : AbstractUomLookupGenerator
  54. // {
  55. //
  56. // protected GlassUomLookupGenerator(object[] items) : base(items) { }
  57. //
  58. // protected override Filter<ProductDimensionUnit> UomFilter() =>
  59. // new Filter<ProductDimensionUnit>(x => x.HasHeight).IsEqualTo(true).And(x=>x.HasWidth).IsEqualTo(true);
  60. // }
  61. //[ComboLookupEditor(typeof(GlassUomLookupGenerator))]
  62. //[ComboLookupEditor(typeof(GlassUomLookupGenerator))]
  63. [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)]
  64. [EditorSequence(12)]
  65. public String PacketTemplate { get; set; }
  66. [MemoEditor]
  67. [EditorSequence("1. Quotes", 1)]
  68. public String QuoteSQL { get; set; }// = V6Quote.SQL;
  69. [MemoEditor]
  70. [EditorSequence("2. Elevations", 1)]
  71. public String ElevationSQL { get; set; }// = V6Elevation.SQL;
  72. [MemoEditor]
  73. [EditorSequence("3. Drawings", 1)]
  74. public String DrawingsSQL { get; set; }// = V6Drawings.SQL;
  75. [MemoEditor]
  76. [EditorSequence("4. Finishes", 1)]
  77. public String FinishSQL { get; set; }// = V6Profile.SQL;
  78. private class ProfileUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  79. {
  80. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  81. {
  82. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  83. .And(x=>x.HasWidth).IsEqualTo(false)
  84. .And(x=>x.HasHeight).IsEqualTo(false)
  85. .And(x=>x.HasQuantity).IsEqualTo(false);
  86. }
  87. }
  88. [EditorSequence("5. Profiles", 1)]
  89. [Caption("Unit")]
  90. [LookupDefinition(typeof(ProfileUomLookup))]
  91. public ProductDimensionUnitLink ProfileUom { get; set; }
  92. [MemoEditor]
  93. [EditorSequence("5. Profiles", 2)]
  94. public String ProfileSQL { get; set; }// = V6Profile.SQL;
  95. private class GasketUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  96. {
  97. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  98. {
  99. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  100. .And(x=>x.HasWidth).IsEqualTo(false)
  101. .And(x=>x.HasHeight).IsEqualTo(false)
  102. .And(x=>x.HasQuantity).IsEqualTo(false);
  103. }
  104. }
  105. [EditorSequence("6. Gaskets", 1)]
  106. [LookupDefinition(typeof(GasketUomLookup))]
  107. public ProductDimensionUnitLink GasketUom { get; set; }
  108. [MemoEditor]
  109. [EditorSequence("6. Gaskets", 2)]
  110. public string GasketSQL { get; set; }
  111. private class ComponentUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  112. {
  113. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  114. {
  115. return new Filter<ProductDimensionUnit>(x=>x.HasQuantity).IsEqualTo(true)
  116. .And(x => x.HasLength).IsEqualTo(false)
  117. .And(x=>x.HasWidth).IsEqualTo(false)
  118. .And(x=>x.HasHeight).IsEqualTo(false);
  119. }
  120. }
  121. [EditorSequence("7. Components", 1)]
  122. [LookupDefinition(typeof(ComponentUomLookup))]
  123. [Caption("Unit")]
  124. public ProductDimensionUnitLink ComponentUom { get; set; }
  125. [MemoEditor]
  126. [EditorSequence("7. Components", 2)]
  127. public String ComponentSQL { get; set; }// = V6Component.SQL;
  128. private class GlassUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  129. {
  130. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  131. {
  132. return new Filter<ProductDimensionUnit>(x=>x.HasHeight).IsEqualTo(true)
  133. .And(x=>x.HasWidth).IsEqualTo(true)
  134. .And(x => x.HasLength).IsEqualTo(false)
  135. .And(x=>x.HasQuantity).IsEqualTo(false);
  136. }
  137. }
  138. [EditorSequence("8. Glass", 1)]
  139. [LookupDefinition(typeof(GlassUomLookup))]
  140. public ProductDimensionUnitLink GlassUom { get; set; }
  141. [MemoEditor]
  142. [EditorSequence("8. Glass", 2)]
  143. public String GlassSQL { get; set; }// = V6Glass.SQL;
  144. [MemoEditor]
  145. [EditorSequence("9. Labour", 1)]
  146. public String LabourSQL { get; set; }// = V6Labour.SQL;
  147. }
  148. }