LogikalSettings.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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 LogikalCostType
  13. {
  14. None,
  15. BOM,
  16. Requisition
  17. }
  18. public enum LogikalDesignType
  19. {
  20. None,
  21. Approved,
  22. NotApproved
  23. }
  24. public class LogikalSettings : BaseObject, IGlobalConfigurationSettings
  25. {
  26. [FileNameEditor]
  27. [EditorSequence(1)]
  28. public string Path { get; set; }
  29. [TextBoxEditor]
  30. [EditorSequence(2)]
  31. public string UserID { get; set; }
  32. [PasswordEditor]
  33. [EditorSequence(3)]
  34. public string Password { get; set; }
  35. [EnumLookupEditor(typeof(LogikalProjectType))]
  36. [EditorSequence(4)]
  37. [Caption("Import Projects")]
  38. public LogikalProjectType ImportProjects { get; set; }
  39. [CheckBoxEditor]
  40. [EditorSequence(6)]
  41. public bool UseLogikalProjectNumber { get; set; }
  42. [EnumLookupEditor(typeof(LogikalCostType))]
  43. [EditorSequence(5)]
  44. [Caption("Import Costs")]
  45. public LogikalCostType ImportCosts { get; set; }
  46. [EnumLookupEditor(typeof(LogikalDesignType))]
  47. [EditorSequence(7)]
  48. [Caption("Import Designs")]
  49. public LogikalDesignType ImportDesigns { get; set; }
  50. [MemoEditor]
  51. [EditorSequence("1. Finishes", 1)]
  52. [Caption("Finishes")]
  53. public String FinishSQL { get; set; }
  54. private class ProfileUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  55. {
  56. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  57. {
  58. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  59. .And(x=>x.HasWidth).IsEqualTo(false)
  60. .And(x=>x.HasHeight).IsEqualTo(false)
  61. .And(x=>x.HasQuantity).IsEqualTo(false);
  62. }
  63. }
  64. [EditorSequence("2. Profiles", 1)]
  65. [Caption("Unit")]
  66. [LookupDefinition(typeof(ProfileUomLookup))]
  67. public ProductDimensionUnitLink ProfileUom { get; set; }
  68. [MemoEditor]
  69. [EditorSequence("2. Profiles", 2)]
  70. [Caption("BOM")]
  71. public String BillOfMaterialsProfileSQL { get; set; }
  72. [MemoEditor]
  73. [EditorSequence("2. Profiles", 3)]
  74. [Caption("Designs")]
  75. public String DesignProfileSQL { get; set; }
  76. private class GasketUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  77. {
  78. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  79. {
  80. return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
  81. .And(x=>x.HasWidth).IsEqualTo(false)
  82. .And(x=>x.HasHeight).IsEqualTo(false)
  83. .And(x=>x.HasQuantity).IsEqualTo(false);
  84. }
  85. }
  86. [EditorSequence("3. Gaskets", 1)]
  87. [LookupDefinition(typeof(GasketUomLookup))]
  88. public ProductDimensionUnitLink GasketUom { get; set; }
  89. [MemoEditor]
  90. [EditorSequence("3. Gaskets", 2)]
  91. [Caption("BOM")]
  92. public string BillOfMaterialsGasketSQL { get; set; }
  93. [MemoEditor]
  94. [EditorSequence("3. Gaskets", 3)]
  95. [Caption("Designs")]
  96. public string DesignGasketSQL { get; set; }
  97. private class ComponentUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  98. {
  99. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  100. {
  101. return new Filter<ProductDimensionUnit>(x=>x.HasQuantity).IsEqualTo(true)
  102. .And(x => x.HasLength).IsEqualTo(false)
  103. .And(x=>x.HasWidth).IsEqualTo(false)
  104. .And(x=>x.HasHeight).IsEqualTo(false);
  105. }
  106. }
  107. [EditorSequence("4. Components", 1)]
  108. [LookupDefinition(typeof(ComponentUomLookup))]
  109. [Caption("Unit")]
  110. public ProductDimensionUnitLink ComponentUom { get; set; }
  111. [MemoEditor]
  112. [EditorSequence("4. Components", 2)]
  113. [Caption("BOM")]
  114. public String BillOfMaterialsComponentSQL { get; set; }
  115. [MemoEditor]
  116. [EditorSequence("4. Components", 3)]
  117. [Caption("Designs")]
  118. public String DesignComponentSQL { get; set; }
  119. private class GlassUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
  120. {
  121. public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
  122. {
  123. return new Filter<ProductDimensionUnit>(x=>x.HasWidth).IsEqualTo(true)
  124. .And(x=>x.HasHeight).IsEqualTo(true)
  125. .And(x => x.HasLength).IsEqualTo(false)
  126. .And(x=>x.HasQuantity).IsEqualTo(false);
  127. }
  128. }
  129. [EditorSequence("5. Glass", 1)]
  130. [LookupDefinition(typeof(GlassUomLookup))]
  131. public ProductDimensionUnitLink GlassUom { get; set; }
  132. [MemoEditor]
  133. [EditorSequence("5. Glass", 2)]
  134. [Caption("BOM")]
  135. public String BillOfMaterialsGlassSQL { get; set; }
  136. [MemoEditor]
  137. [EditorSequence("5. Glass", 3)]
  138. [Caption("Designs")]
  139. public String DesignGlassSQL { get; set; }
  140. [MemoEditor]
  141. [EditorSequence("6. Labour", 1)]
  142. [Caption("BOM")]
  143. public String BillOfMaterialsLabourSQL { get; set; }
  144. [MemoEditor]
  145. [EditorSequence("6. Labour", 2)]
  146. [Caption("Designs")]
  147. public String DesignLabourSQL { get; set; }
  148. }
  149. }