| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using Comal.Classes;
- using InABox.DynamicGrid;
- using PRSDesktop.Integrations.Logikal;
- namespace PRSDesktop;
- public class LogikalSettingsGrid : DynamicItemsListGrid<LogikalSettings>
- {
- private void ValidateSQL<T>(string tag, string sql, List<string> errors) where T : LogikalItem, new()
- {
- var t = new T();
- List<string> _e = new();
- t.ValidateQuery(sql, _e);
- if (_e.Any())
- {
- errors.Add($"The query for {tag} has some errors:");
- errors.AddRange(_e);
- }
- }
-
- protected override void DoValidate(LogikalSettings[] items, List<string> errors)
- {
- base.DoValidate(items, errors);
- var _item = items.FirstOrDefault();
- if (_item == null)
- return;
-
- if (Guid.Equals(_item.ProfileUom.ID, Guid.Empty))
- errors.Add("Profile UOM may not be blank");
-
- if (Guid.Equals(_item.GasketUom.ID, Guid.Empty))
- errors.Add("Gasket UOM may not be blank");
-
- if (Guid.Equals(_item.ComponentUom.ID, Guid.Empty))
- errors.Add("Component UOM may not be blank");
-
- if (Guid.Equals(_item.GlassUom.ID, Guid.Empty))
- errors.Add("Glass UOM may not be blank");
-
- CheckLogikalQueries(_item);
- ValidateSQL<LogikalFinish>("1. Finishes", _item.FinishSQL, errors);
-
- ValidateSQL<LogikalProfile>("2. Profiles - BOM", _item.BillOfMaterialsProfileSQL, errors);
- ValidateSQL<LogikalGasket>("3. Gaskets - BOM", _item.BillOfMaterialsGasketSQL, errors);
- ValidateSQL<LogikalComponent>("4. Components - BOM", _item.BillOfMaterialsComponentSQL, errors);
- ValidateSQL<LogikalGlass>("5. Glass - BOM", _item.BillOfMaterialsGlassSQL, errors);
- ValidateSQL<LogikalLabour>("6. Labour - BOM", _item.BillOfMaterialsLabourSQL, errors);
-
- ValidateSQL<LogikalProfile>("2. Profiles - Design", _item.DesignProfileSQL, errors);
- ValidateSQL<LogikalGasket>("3. Gaskets - Design", _item.DesignGasketSQL, errors);
- ValidateSQL<LogikalComponent>("4. Components - Design", _item.DesignComponentSQL, errors);
- ValidateSQL<LogikalGlass>("5. Glass - Design", _item.DesignGlassSQL, errors);
- ValidateSQL<LogikalLabour>("6. Labour - Design", _item.DesignLabourSQL, errors);
- }
-
- public void CheckLogikalQueries(LogikalSettings item)
- {
- item.FinishSQL = string.IsNullOrWhiteSpace(item.FinishSQL) ? LogikalFinish.SQL : item.FinishSQL;
-
- item.BillOfMaterialsProfileSQL = string.IsNullOrWhiteSpace(item.BillOfMaterialsProfileSQL) ? LogikalProfile.BillOfMaterialsSQL : item.BillOfMaterialsProfileSQL;
- item.BillOfMaterialsGasketSQL = string.IsNullOrWhiteSpace(item.BillOfMaterialsGasketSQL) ? LogikalGasket.BillOfMaterialsSQL : item.BillOfMaterialsGasketSQL;
- item.BillOfMaterialsComponentSQL = string.IsNullOrWhiteSpace(item.BillOfMaterialsComponentSQL) ? LogikalComponent.BillOfMaterialsSQL : item.BillOfMaterialsComponentSQL;
- item.BillOfMaterialsGlassSQL = string.IsNullOrWhiteSpace(item.BillOfMaterialsGlassSQL) ? LogikalGlass.BillOfMaterialsSQL : item.BillOfMaterialsGlassSQL;
- item.BillOfMaterialsLabourSQL = string.IsNullOrWhiteSpace(item.BillOfMaterialsLabourSQL) ? LogikalLabour.BillOfMaterialsSQL : item.BillOfMaterialsLabourSQL;
- item.DesignProfileSQL = string.IsNullOrWhiteSpace(item.DesignProfileSQL) ? LogikalProfile.DesignSQL : item.DesignProfileSQL;
- item.DesignGasketSQL = string.IsNullOrWhiteSpace(item.DesignGasketSQL) ? LogikalGasket.DesignSQL : item.DesignGasketSQL;
- item.DesignComponentSQL = string.IsNullOrWhiteSpace(item.DesignComponentSQL) ? LogikalComponent.DesignSQL : item.DesignComponentSQL;
- item.DesignGlassSQL = string.IsNullOrWhiteSpace(item.DesignGlassSQL) ? LogikalGlass.DesignSQL : item.DesignGlassSQL;
- item.DesignLabourSQL = string.IsNullOrWhiteSpace(item.DesignLabourSQL) ? LogikalLabour.DesignSQL : item.DesignLabourSQL;
-
- }
-
- }
|