V6Settings.cs 6.5 KB

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