| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | 
							- using System;
 
- using InABox.Configuration;
 
- using InABox.Core;
 
- namespace Comal.Classes
 
- {
 
-     public enum V6ProjectType
 
-     {
 
-         None,
 
-         Quote,
 
-         Project
 
-     }
 
-     
 
-     public enum V6DesignType
 
-     {
 
-         None,
 
-         Approved,
 
-         NotApproved
 
-     }
 
-     
 
-     public enum V6Measurement
 
-     {
 
-         Millimetres,
 
-         Metres,
 
-         Inches
 
-     }
 
-     
 
-     public class V6Settings : BaseObject, IGlobalConfigurationSettings
 
-     {
 
-         [TextBoxEditor]
 
-         [EditorSequence(1)]
 
-         public string Server { get; set; }
 
-             
 
-         [TextBoxEditor]
 
-         [EditorSequence(2)]
 
-         public string Database { get; set; }
 
-             
 
-         [TextBoxEditor]
 
-         [EditorSequence(3)]
 
-         public string UserID { get; set; }
 
-             
 
-         [PasswordEditor]
 
-         [EditorSequence(4)]
 
-         public string Password { get; set; }
 
-         
 
-         public string AsConnectionString() => String.IsNullOrWhiteSpace(UserID) && String.IsNullOrWhiteSpace(Password)
 
-             ? $"server={Server};database={Database};integrated security=SSPI;"
 
-             : $"server={Server};database={Database};integrated security=false;user id={UserID};password={Password}";
 
-         
 
-         [EnumLookupEditor(typeof(V6ProjectType))]
 
-         [EditorSequence(5)]
 
-         [Caption("Import Projects")]
 
-         public V6ProjectType ImportProjects { get; set; }
 
-         
 
-         [CheckBoxEditor]
 
-         [EditorSequence(6)]
 
-         public bool UseV6QuoteNumber { get; set; }
 
-         
 
-         [CodeEditor(Editable=Editable.Enabled)]
 
-         [EditorSequence(7)]
 
-         [Caption("Job Prefix")]
 
-         public string ProjectPrefix { get; set; }
 
-         [CheckBoxEditor]
 
-         [EditorSequence(8)]
 
-         [Caption("Import BOMs")]
 
-         public bool ImportBoms { get; set; }
 
-         
 
-         
 
-         [CheckBoxEditor]
 
-         [EditorSequence(9)]
 
-         [Caption("Import Requis")]
 
-         public bool ImportRequis { get; set; }
 
-         [EnumLookupEditor(typeof(V6DesignType))]
 
-         [EditorSequence(10)]
 
-         [Caption("Import Designs")]
 
-         public V6DesignType ImportDesigns { get; set; }
 
-         
 
-         [CodeEditor(Visible=Visible.Default, Editable=Editable.Enabled)]
 
-         [EditorSequence(11)]
 
-         public String PacketTemplate { get; set; }
 
-         
 
-         private class ProfileUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
 
-         {
 
-             public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
 
-             {
 
-                 return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
 
-                     .And(x=>x.HasWidth).IsEqualTo(false)
 
-                     .And(x=>x.HasHeight).IsEqualTo(false)
 
-                     .And(x=>x.HasQuantity).IsEqualTo(false);
 
-             }
 
-         }
 
-         
 
-         [EditorSequence("1. Profiles", 1)]
 
-         [Caption("Unit")]
 
-         [LookupDefinition(typeof(ProfileUomLookup))]
 
-         public ProductDimensionUnitLink ProfileUom { get; set; }
 
-         
 
-         [EditorSequence("1. Profiles", 2)]
 
-         [EnumLookupEditor(typeof(V6Measurement))]
 
-         [Caption("Scale")]
 
-         public V6Measurement ProfileMeasurement { get; set; }
 
-         
 
-         [MemoEditor(Height=200)]
 
-         [EditorSequence("1. Profiles", 3)]
 
-         [Caption("BOM")]
 
-         public String BOMProfilesSQL { get; set; }// = V6Profile.SQL;
 
-         
 
-         [MemoEditor(Height=200)]
 
-         [EditorSequence("1. Profiles", 4)]
 
-         [Caption("Design")]
 
-         public String DesignProfilesSQL { get; set; }// = V6Profile.SQL;
 
-         
 
-         private class GasketUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
 
-         {
 
-             public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
 
-             {
 
-                 return new Filter<ProductDimensionUnit>(x => x.HasLength).IsEqualTo(true)
 
-                     .And(x=>x.HasWidth).IsEqualTo(false)
 
-                     .And(x=>x.HasHeight).IsEqualTo(false)
 
-                     .And(x=>x.HasQuantity).IsEqualTo(false);
 
-             }
 
-         }
 
-         
 
-         [EditorSequence("2. Gaskets", 1)]
 
-         [LookupDefinition(typeof(GasketUomLookup))]
 
-         [Caption("Unit")]
 
-         public ProductDimensionUnitLink GasketUom { get; set; }
 
-         
 
-         [EditorSequence("2. Gaskets", 2)]
 
-         [EnumLookupEditor(typeof(V6Measurement))]
 
-         [Caption("Scale")]
 
-         public V6Measurement GasketMeasurement { get; set; }
 
-         
 
-         [MemoEditor]
 
-         [EditorSequence("2. Gaskets", 3)]
 
-         [Caption("Query")]
 
-         public string GasketSQL { get; set; }
 
-         
 
-         private class ComponentUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
 
-         {
 
-             public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
 
-             {
 
-                 return new Filter<ProductDimensionUnit>(x=>x.HasQuantity).IsEqualTo(true)
 
-                     .And(x => x.HasLength).IsEqualTo(false)
 
-                     .And(x=>x.HasWidth).IsEqualTo(false)
 
-                     .And(x=>x.HasHeight).IsEqualTo(false);
 
-             }
 
-         }
 
-         
 
-         [EditorSequence("3. Components", 1)]
 
-         [LookupDefinition(typeof(ComponentUomLookup))]
 
-         [Caption("Unit")]
 
-         public ProductDimensionUnitLink ComponentUom { get; set; }
 
-         
 
-         [MemoEditor]
 
-         [EditorSequence("3. Components", 2)]
 
-         [Caption("Query")]
 
-         public String ComponentSQL { get; set; }// = V6Component.SQL;
 
-             
 
-         private class GlassUomLookup : LookupDefinitionGenerator<ProductDimensionUnit, LogikalSettings>
 
-         {
 
-             public override Filter<ProductDimensionUnit> DefineFilter(LogikalSettings[] items)
 
-             {
 
-                 return new Filter<ProductDimensionUnit>(x=>x.HasHeight).IsEqualTo(true)
 
-                     .And(x=>x.HasWidth).IsEqualTo(true)
 
-                     .And(x => x.HasLength).IsEqualTo(false)
 
-                     .And(x=>x.HasQuantity).IsEqualTo(false);
 
-             }
 
-         }
 
-         
 
-         [EditorSequence("4. Glass", 1)]
 
-         [LookupDefinition(typeof(GlassUomLookup))]
 
-         [Caption("Unit")]
 
-         public ProductDimensionUnitLink GlassUom { get; set; }
 
-         
 
-         [EditorSequence("4. Glass", 2)]
 
-         [EnumLookupEditor(typeof(V6Measurement))]
 
-         [Caption("Scale")]
 
-         public V6Measurement GlassMeasurement { get; set; }
 
-         
 
-         [MemoEditor]
 
-         [EditorSequence("4. Glass", 2)]
 
-         [Caption("Query")]
 
-         public String GlassSQL { get; set; }// = V6Glass.SQL;
 
-             
 
-         [MemoEditor]
 
-         [EditorSequence("5. Labour", 1)]
 
-         [Caption("Query")]
 
-         public String LabourSQL { get; set; }// = V6Labour.SQL;
 
-         
 
-         public bool CanImport<TSecurity>(bool enabled, Job? job) where TSecurity : ISecurityDescriptor, new()
 
-         {
 
-             if (!enabled)
 
-                 return false;
 
-             
 
-             if (job is null)
 
-                 return false;
 
-         
 
-             if (!Security.IsAllowed<TSecurity>())
 
-                 return false;
 
-             
 
-             if (UseV6QuoteNumber)
 
-                 return (string.IsNullOrWhiteSpace(ProjectPrefix) || job.JobNumber.StartsWith(ProjectPrefix)); 
 
-             
 
-             return (string.IsNullOrWhiteSpace(job.SourceRef) || job.SourceRef.StartsWith("V6:"));
 
-         }
 
-         
 
-     }
 
- }
 
 
  |