diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-12-05 02:38:10 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2024-12-05 02:38:10 +0200 |
| commit | b77fbb01ed5b63b65f6e755fef9ca49c3e58ea50 (patch) | |
| tree | 40013e359a230404d0bf4fd4e6fbfb7bdd862432 /Software/Visual_Studio | |
| parent | ec3b8fd0d0b4d980a5d93c5fa11b4717cbd0c875 (diff) | |
| download | Tango-b77fbb01ed5b63b65f6e755fef9ca49c3e58ea50.tar.gz Tango-b77fbb01ed5b63b65f6e755fef9ca49c3e58ea50.zip | |
Last say on extra inks branch
Diffstat (limited to 'Software/Visual_Studio')
28 files changed, 1172 insertions, 486 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs index 9e1485f07..783089fcf 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/CsvModel.cs @@ -41,6 +41,11 @@ namespace Tango.FSE.Statistics.Models public String InputMagenta { get; set; } public String InputYellow { get; set; } public String InputBlack { get; set; } + public String InputBBlue { get; set; } + public String InputOrange { get; set; } + public String InputRubine { get; set; } + public String InputNavy { get; set; } + public String InputViolet { get; set; } public String OutputCyan { get; set; } public String OutputMagenta { get; set; } public String OutputYellow { get; set; } @@ -48,6 +53,14 @@ namespace Tango.FSE.Statistics.Models public String OutputLightCyan { get; set; } public String OutputLightMagenta { get; set; } public String OutputLightYellow { get; set; } + public String OutputBlue { get; set; } + public String OutputLightBlue { get; set; } + public String OutputOrange { get; set; } + public String OutputLightOrange { get; set; } + public String OutputRubine { get; set; } + public String OutputLightRubine { get; set; } + public String OutputNavy { get; set; } + public String OutputViolet { get; set; } public String OutputTransparentInk { get; set; } public String OutputLubricant { get; set; } public String FailureReason { get; set; } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs index 9ce4768b5..37602258f 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/LiquidQuantityModel.cs @@ -3,14 +3,15 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Entities; using Tango.BL.Enumerations; namespace Tango.FSE.Statistics.Models { public class LiquidQuantityModel { - public LiquidTypes LiquidType { get; set; } public double Quantity { get; set; } + public LiquidType LiquidType { get; set; } public double Liters { @@ -21,7 +22,7 @@ namespace Tango.FSE.Statistics.Models { get { - return LiquidType.ToDescription() + $": {Liters.ToString("0.0000")} Liters"; + return LiquidType.Name + $": {Liters.ToString("0.0000")} Liters"; } } } diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs index 773bea60b..ab2119573 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StatsModel.cs @@ -31,18 +31,18 @@ namespace Tango.FSE.Statistics.Models public StatsModel() { - LiquidQuantities = new List<LiquidQuantityModel>() + var liquidQuantities = new List<LiquidQuantityModel>(); + + foreach (var item in Enum.GetValues(typeof(LiquidTypes)).Cast<int>()) { - new LiquidQuantityModel() { LiquidType = LiquidTypes.Cyan, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.Magenta, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.Yellow, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.Black, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.LightCyan, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.LightMagenta, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.LightYellow, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.TransparentInk, Quantity = 1 }, - new LiquidQuantityModel() { LiquidType = LiquidTypes.Lubricant, Quantity = 1 }, - }; + liquidQuantities.Add(new LiquidQuantityModel() + { + LiquidType = new Tango.BL.Entities.LiquidType() { Code = item }, + Quantity = 1 + }); + } + + LiquidQuantities = liquidQuantities; FailedRuns = 1; CompletedRuns = 1; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs index d979fe55b..6f92ca2e8 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Models/StopModel.cs @@ -58,94 +58,63 @@ namespace Tango.FSE.Statistics.Models case ColorSpaces.Catalog: return $"{Catalog} => {CatalogItem}"; case ColorSpaces.Volume: - return $"{Math.Round(Cyan, 2)}, {Math.Round(Magenta, 2)}, {Math.Round(Yellow, 2)}, {Math.Round(Black, 2)}"; + return String.Join("\n", GetVolumeInputs().Where(x => x.Volume > 0).Select(x => x.LiquidType.Name + ": " + Math.Round(x.Volume, 2))); } return "Unspecified"; } } - public TimeSpan Duration + public String OutputString { get { - return JobRun.EndDate - JobRun.StartDate; + return String.Join("\n", Output.Where(x => x.Volume > 0).Select(x => x.LiquidType.Name + ": " + Math.Round(x.Volume, 2))); } } - public double CyanOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.Cyan); } - } - - public double MagentaOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.Magenta); } - } - - public double YellowOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.Yellow); } - } - - public double BlackOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.Black); } - } - - public double LightCyanOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.LightCyan); } - } - - public double LightMagentaOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.LightMagenta); } - } - - public double LightYellowOutput + public List<PresentationLiquidVolume> InputVolumes { - get { return GetLiquidTypeOfDefault(LiquidTypes.LightYellow); } - } - - public double TransparentInkOutput - { - get { return GetLiquidTypeOfDefault(LiquidTypes.TransparentInk); } + get + { + return GetVolumeInputs().Where(x => x.Volume > 0).ToList(); + } } - public double LubricantOutput + public List<PresentationLiquidVolume> Output { - get { return GetLiquidTypeOfDefault(LiquidTypes.Lubricant); } + get + { + var output = new List<PresentationLiquidVolume>(); + output.AddRange(LiquidVolumes.Where(x => x.LiquidType.HasPigment && x.Volume > 0).OrderBy(x => x.LiquidType.PreferredIndex)); + output.Add(LiquidVolumes.FirstOrDefault(x => x.LiquidType.Type == LiquidTypes.TransparentInk)); + return output; + } } - private double GetLiquidTypeOfDefault(LiquidTypes liquidType) + public TimeSpan Duration { - var lt = LiquidVolumes.FirstOrDefault(x => x.LiquidType == liquidType); - - if (lt != null) + get { - return Math.Round(lt.Volume, 2); + return JobRun.EndDate - JobRun.StartDate; } - - return 0; } public List<LiquidQuantityModel> LiquidQuantities { get { - return new List<LiquidQuantityModel>() + var quantities = new List<LiquidQuantityModel>(); + + foreach (var liquidVolume in LiquidVolumes) { - new LiquidQuantityModel(){ LiquidType = LiquidTypes.Cyan, Quantity = JobRun.CyanQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.Magenta, Quantity = JobRun.MagentaQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.Yellow, Quantity = JobRun.YellowQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.Black, Quantity = JobRun.BlackQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.LightCyan, Quantity = JobRun.LightCyanQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.LightMagenta, Quantity = JobRun.LightMagentaQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.LightYellow, Quantity = JobRun.LightYellowQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.TransparentInk, Quantity = JobRun.TransparentQuantity }, - new LiquidQuantityModel(){ LiquidType = LiquidTypes.Lubricant, Quantity = JobRun.LubricantQuantity }, - }; + LiquidQuantityModel model = new LiquidQuantityModel(); + model.LiquidType = liquidVolume.LiquidType; + model.Quantity = (double)typeof(JobRun).GetProperty(model.LiquidType.Name.Replace(" ", "") + "Quantity").GetValue(JobRun); + quantities.Add(model); + } + + return quantities; } } @@ -164,8 +133,11 @@ namespace Tango.FSE.Statistics.Models public String LogicalLength { - get { var length = IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength; - return JobRun.NumberOfUnits > 1 ? $"{length} x{JobRun.NumberOfUnits}" : length.ToString(); } + get + { + var length = IsEureka ? JobRun.JobLogicalLength * 4 : JobRun.JobLogicalLength; + return JobRun.NumberOfUnits > 1 ? $"{length} x{JobRun.NumberOfUnits}" : length.ToString(); + } } public double JobLength diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs index a21619aac..c301621f6 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/ViewModels/MainViewVM.cs @@ -1,4 +1,6 @@ -using Newtonsoft.Json; +using LiveCharts; +using LiveCharts.Wpf; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -10,6 +12,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; +using System.Windows.Media; using Tango.BL; using Tango.BL.DTO; using Tango.BL.Entities; @@ -21,6 +24,7 @@ using Tango.Core.ExtensionMethods; using Tango.CSV; using Tango.FSE.Common; using Tango.FSE.Common.AutoComplete; +using Tango.FSE.Common.Converters; using Tango.FSE.Common.Navigation; using Tango.FSE.Common.Notifications; using Tango.FSE.Common.Statistics; @@ -39,6 +43,7 @@ namespace Tango.FSE.Statistics.ViewModels private StatisticsModel _model; private String _currentFineTuningSessionID; private List<StopModel> _fineTuningStops; + private List<LiquidType> _liquidTypes; #region Properties @@ -171,6 +176,14 @@ namespace Tango.FSE.Statistics.ViewModels get { return Stops != null && Stops.Count > 0 && Stops[0].JobIndex != NULL_JOB_INDEX; } } + private SeriesCollection _seriesCollection; + public SeriesCollection SeriesCollection + { + get { return _seriesCollection; } + set { _seriesCollection = value; RaisePropertyChangedAuto(); } + } + + #endregion #region Commands @@ -350,6 +363,7 @@ namespace Tango.FSE.Statistics.ViewModels filters.RmlGuids = SelectedThreads.SynchedSource.Select(x => x.Guid).ToList(); _model = await StatisticsProvider.GetStatistics(filters); + _liquidTypes = _model.StatisticsResult.LiquidTypes.Select(x => x.ToObservable()).ToList(); List<StopModel> stops = new List<StopModel>(); @@ -447,11 +461,6 @@ namespace Tango.FSE.Statistics.ViewModels stop.Green = jobStop.Green; stop.Blue = jobStop.Blue; - stop.Cyan = jobStop.Cyan; - stop.Magenta = jobStop.Magenta; - stop.Yellow = jobStop.Yellow; - stop.Black = jobStop.Black; - stop.Catalog = jobStop.Catalog; stop.CatalogItem = jobStop.CatalogItem; @@ -495,37 +504,47 @@ namespace Tango.FSE.Statistics.ViewModels stats.TotalDyeingTime = TimeSpan.FromHours(timeRuns.Sum(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate.Value).TotalHours)); stats.AverageDyeingTime = TimeSpan.FromHours(timeRuns.Average(x => (x.JobRun.EndDate - x.JobRun.ActualStartDate.Value).TotalHours)); + SeriesCollection seriesCollection = new SeriesCollection(); + List<LiquidQuantityModel> liquidQuantities = new List<LiquidQuantityModel>(); - Dictionary<LiquidTypes, double> quantities = new Dictionary<LiquidTypes, double>(); - quantities.Add(LiquidTypes.Cyan, 0); - quantities.Add(LiquidTypes.Magenta, 0); - quantities.Add(LiquidTypes.Yellow, 0); - quantities.Add(LiquidTypes.Black, 0); - quantities.Add(LiquidTypes.LightCyan, 0); - quantities.Add(LiquidTypes.LightMagenta, 0); - quantities.Add(LiquidTypes.LightYellow, 0); - quantities.Add(LiquidTypes.TransparentInk, 0); - quantities.Add(LiquidTypes.Lubricant, 0); + foreach (var liquidType in _liquidTypes.ToList()) + { + liquidQuantities.Add(new LiquidQuantityModel() + { + LiquidType = liquidType, + Quantity = 0 + }); + } foreach (var stop in Stops) { - quantities[LiquidTypes.Cyan] += stop.JobRun.CyanQuantity; - quantities[LiquidTypes.Magenta] += stop.JobRun.MagentaQuantity; - quantities[LiquidTypes.Yellow] += stop.JobRun.YellowQuantity; - quantities[LiquidTypes.Black] += stop.JobRun.BlackQuantity; - quantities[LiquidTypes.LightCyan] += stop.JobRun.LightCyanQuantity; - quantities[LiquidTypes.LightMagenta] += stop.JobRun.LightMagentaQuantity; - quantities[LiquidTypes.LightYellow] += stop.JobRun.LightYellowQuantity; - quantities[LiquidTypes.TransparentInk] += stop.JobRun.TransparentQuantity; - quantities[LiquidTypes.Lubricant] += stop.JobRun.LubricantQuantity; + foreach (var quantity in liquidQuantities) + { + quantity.Quantity += (double)typeof(JobRun).GetProperty(quantity.LiquidType.Type.ToString() + "Quantity").GetValue(stop.JobRun); + } } - foreach (var item in quantities) + var foreground = Application.Current.Resources["FSE_PrimaryForegroundBrush"] as SolidColorBrush; + var border = Application.Current.Resources["FSE_BorderBrush"] as SolidColorBrush; + + foreach (var liquidQuantity in liquidQuantities) { - liquidQuantities.Add(new LiquidQuantityModel() { LiquidType = item.Key, Quantity = item.Value }); + PieSeries series = new PieSeries(); + series.Foreground = foreground; + series.Stroke = border; + series.Fill = liquidQuantity.LiquidType.LiquidTypeBrush; + series.FontSize = 12; + series.Title = liquidQuantity.Title; + series.Values = new ChartValues<double>() { Convert.ToDouble(liquidQuantity.Quantity) }; + series.DataLabels = false; + series.LabelPoint = Stats.QuantityCounts; + + seriesCollection.Add(series); } + SeriesCollection = seriesCollection; + stats.LiquidQuantities = liquidQuantities; } catch (Exception ex) @@ -639,11 +658,11 @@ namespace Tango.FSE.Statistics.ViewModels input = $"{stop.Catalog}\t{stop.CatalogItem}"; break; case ColorSpaces.Volume: - input = $"{stop.Cyan}\t{stop.Magenta}\t{stop.Yellow}\t{stop.Black}"; + input = String.Join("\t", stop.GetVolumeInputs().Where(x => x.Volume > 0).Select(x => x.Volume)); break; } - Clipboard.SetText($"{stop.ColorSpace}\t{input}\t{stop.CyanOutput}\t{stop.MagentaOutput}\t{stop.YellowOutput}\t{stop.BlackOutput}\t{stop.LightCyanOutput}\t{stop.LightMagentaOutput}\t{stop.LightYellowOutput}\t{stop.TransparentInkOutput}", TextDataFormat.Text); + Clipboard.SetText($"{stop.ColorSpace}\t{input}\t{String.Join("\t", stop.Output.Where(x => x.LiquidType.HasPigment).Where(x => x.Volume > 0).Select(x => x.Volume))}", TextDataFormat.Text); } #endregion @@ -704,18 +723,23 @@ namespace Tango.FSE.Statistics.ViewModels "Measured B", "Delta E", "Approved", - "Input Red", - "Input Green", - "Input Blue", - "Input L", - "Input A", - "Input B", + "Input RGB (R)", + "Input RGB (G)", + "Input RGB (B)", + "Input LAB (L)", + "Input LAB (A)", + "Input LAB (B)", "Input Catalog", "Input Catalog Item", "Input Cyan", "Input Magenta", "Input Yellow", "Input Black", + "Input Blue", + "Input Orange", + "Input Rubine", + "Input Navy", + "Input Violet", "Output Cyan", "Output Magenta", "Output Yellow", @@ -723,6 +747,14 @@ namespace Tango.FSE.Statistics.ViewModels "Output Light Cyan", "Output Light Magenta", "Output Light Yellow", + "Output Blue", + "Output Light Blue", + "Output Orange", + "Output Light Orange", + "Output Rubine", + "Output Light Rubine", + "Output Navy", + "Output Violet", "Output Transparent Ink", "Output Lubricant", "Failure Reason", @@ -763,10 +795,16 @@ namespace Tango.FSE.Statistics.ViewModels model.InputCatalogItem = stop.CatalogItem; break; case ColorSpaces.Volume: - model.InputCyan = stop.Cyan.ToString(); - model.InputMagenta = stop.Magenta.ToString(); - model.InputYellow = stop.Yellow.ToString(); - model.InputBlack = stop.Black.ToString(); + model.InputCyan = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Cyan).ToString(); + model.InputMagenta = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Magenta).ToString(); + model.InputYellow = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Yellow).ToString(); + model.InputBlack = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Black).ToString(); + + model.InputBBlue = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Blue).ToString(); + model.InputOrange = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Orange).ToString(); + model.InputRubine = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Rubine).ToString(); + model.InputNavy = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Navy).ToString(); + model.InputViolet = stop.GetLiquidVolumeInputOrZero(LiquidTypes.Violet).ToString(); break; } @@ -787,15 +825,25 @@ namespace Tango.FSE.Statistics.ViewModels } } - model.OutputCyan = stop.CyanOutput.ToString(); - model.OutputMagenta = stop.MagentaOutput.ToString(); - model.OutputYellow = stop.YellowOutput.ToString(); - model.OutputBlack = stop.BlackOutput.ToString(); - model.OutputLightCyan = stop.LightCyanOutput.ToString(); - model.OutputLightMagenta = stop.LightMagentaOutput.ToString(); - model.OutputLightYellow = stop.LightYellowOutput.ToString(); - model.OutputTransparentInk = stop.TransparentInkOutput.ToString(); - model.OutputLubricant = stop.LubricantOutput.ToString(); + model.OutputCyan = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Cyan).ToString(); + model.OutputMagenta = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Magenta).ToString(); + model.OutputYellow = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Yellow).ToString(); + model.OutputBlack = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Black).ToString(); + model.OutputLightCyan = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightCyan).ToString(); + model.OutputLightMagenta = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightMagenta).ToString(); + model.OutputLightYellow = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightYellow).ToString(); + + model.OutputBlue = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Blue).ToString(); + model.OutputLightBlue = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightBlue).ToString(); + model.OutputOrange = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Orange).ToString(); + model.OutputLightOrange = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightOrange).ToString(); + model.OutputRubine = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Rubine).ToString(); + model.OutputLightRubine = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.LightRubine).ToString(); + model.OutputNavy = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Navy).ToString(); + model.OutputViolet = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Violet).ToString(); + + model.OutputTransparentInk = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.TransparentInk).ToString(); + model.OutputLubricant = stop.GetLiquidVolumeOutputOrZero(LiquidTypes.Lubricant).ToString(); model.FailureReason = stop.JobRun.FailedMessage; csvFile.Append(model); diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml index 0e1d8cb60..205253aa9 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.Statistics/Views/MainView.xaml @@ -274,7 +274,7 @@ <DataGridTextColumn Header="DISTANCE" Width="100" CellStyle="{StaticResource EmptyColumnStyle2}" /> <DataGridTextColumn Header="OFFSET" Width="75" Binding="{Binding StartMeters}" /> <DataGridTextColumn Header="COLOR SPACE" Width="120" Binding="{Binding ColorSpace}" /> - <DataGridTemplateColumn Header="INPUT" Width="150"> + <DataGridTemplateColumn Header="INPUT" Width="300"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ContentControl Content="{Binding}"> @@ -283,11 +283,39 @@ <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> - <TextBlock Text="{Binding Input}"></TextBlock> + <TextBlock Margin="-5" Text="{Binding Input,Mode=OneWay}" TextWrapping="Wrap" FontSize="10"></TextBlock> </DataTemplate> </Setter.Value> </Setter> <Style.Triggers> + <DataTrigger Binding="{Binding ColorSpace}" Value="Volume"> + <Setter Property="ContentTemplate"> + <Setter.Value> + <DataTemplate> + <ItemsControl ClipToBounds="False" Margin="0 -15" VerticalAlignment="Center" ItemsSource="{Binding InputVolumes,Mode=OneWay}" Background="Transparent" ToolTip="{Binding Input,Mode=OneWay}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <WrapPanel/> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border ClipToBounds="False" Background="#7A7A7A" Padding="4 1" Margin="10 0 5 5" CornerRadius="5" BorderThickness="1" BorderBrush="#1B1B1B"> + <Grid> + <Grid Margin="-15 -10 0 0" HorizontalAlignment="Left" VerticalAlignment="Top"> + <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center" Fill="{Binding LiquidType.LiquidTypeBrush}" Width="15" Height="15" Stroke="#BDBDBD" StrokeThickness="0.5" /> + <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 1 0 0" Foreground="Black" Text="{Binding LiquidType.ShortName}" FontSize="10"></TextBlock> + </Grid> + <TextBlock Foreground="White" Text="{Binding Volume,StringFormat='#.##',Mode=OneWay,TargetNullValue=0}" FontSize="11"></TextBlock> + </Grid> + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </DataTemplate> + </Setter.Value> + </Setter> + </DataTrigger> <DataTrigger Binding="{Binding ColorSpace}" Value="Catalog"> <Setter Property="ContentTemplate"> <Setter.Value> @@ -312,27 +340,26 @@ <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Grid> - <StackPanel Orientation="Horizontal"> - <Grid> - <TextBlock HorizontalAlignment="Center" FontWeight="Bold"> - <Run Foreground="Cyan" Text="{Binding CyanOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="Magenta" Text="{Binding MagentaOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="Yellow" Text="{Binding YellowOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="Black" Text="{Binding BlackOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="#9BFFFF" Text="{Binding LightCyanOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="#FFA5FF" Text="{Binding LightMagentaOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="#FFFF9B" Text="{Binding LightYellowOutput,Mode=OneWay,TargetNullValue=0}"></Run> - , - <Run Foreground="#BBBBBB" Text="{Binding TransparentInkOutput,Mode=OneWay,TargetNullValue=0}"></Run> - </TextBlock> - </Grid> - </StackPanel> + <ItemsControl Margin="0 -15" VerticalAlignment="Center" ItemsSource="{Binding Output,Mode=OneWay}" Background="Transparent" ToolTip="{Binding OutputString}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <WrapPanel/> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <Border ClipToBounds="False" Background="#7A7A7A" Padding="4 1" Margin="10 0 5 5" CornerRadius="5" BorderThickness="1" BorderBrush="#1B1B1B"> + <Grid> + <Grid Margin="-15 -10 0 0" HorizontalAlignment="Left" VerticalAlignment="Top"> + <Ellipse HorizontalAlignment="Center" VerticalAlignment="Center" Fill="{Binding LiquidType.LiquidTypeBrush}" Width="15" Height="15" Stroke="#BDBDBD" StrokeThickness="0.5" /> + <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0 1 0 0" Foreground="Black" Text="{Binding LiquidType.ShortName}" FontSize="10"></TextBlock> + </Grid> + <TextBlock Foreground="White" Text="{Binding Volume,StringFormat='#.##',Mode=OneWay,TargetNullValue=0}" FontSize="11"></TextBlock> + </Grid> + </Border> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> <Button Command="{Binding ShowExtendedInfoCommand}" CommandParameter="{Binding}" Background="Transparent" Style="{StaticResource FSE_FlatButton_ForegroundAccentHover}" Foreground="{StaticResource FSE_PrimaryAccentBrush}" FontSize="{StaticResource FSE_SmallerFontSize}" Height="Auto" Padding="0" Cursor="Hand" Margin="0 0 0 0" Visibility="{Binding IsFineTuning,Converter={StaticResource BooleanToVisibilityConverter}}" HorizontalAlignment="Right">More info...</Button> </Grid> @@ -547,18 +574,8 @@ <DockPanel> <TextBlock FontSize="12" DockPanel.Dock="Bottom" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0 0 0 3">Ink Consumption</TextBlock> - <lvc:PieChart Opacity="0.8" FontSize="{StaticResource FSE_SmallFontSize}" DisableAnimations="True" LegendLocation="None" Hoverable="True" DataTooltip="{x:Null}" HorizontalAlignment="Center" Height="155" Width="155" VerticalAlignment="Top" Margin="0 0 0 0"> - <lvc:PieChart.Series> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[0].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[0].Title}" Values="{Binding Stats.LiquidQuantities[0].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[1].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[1].Title}" Values="{Binding Stats.LiquidQuantities[1].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[2].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[2].Title}" Values="{Binding Stats.LiquidQuantities[2].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[3].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[3].Title}" Values="{Binding Stats.LiquidQuantities[3].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[4].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[4].Title}" Values="{Binding Stats.LiquidQuantities[4].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[5].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[5].Title}" Values="{Binding Stats.LiquidQuantities[5].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[6].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[6].Title}" Values="{Binding Stats.LiquidQuantities[6].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[7].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[7].Title}" Values="{Binding Stats.LiquidQuantities[7].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - <lvc:PieSeries Foreground="{StaticResource FSE_PrimaryForegroundBrush}" Stroke="{StaticResource FSE_BorderBrush}" Fill="{Binding Stats.LiquidQuantities[8].LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}" FontSize="12" Title="{Binding Stats.LiquidQuantities[8].Title}" Values="{Binding Stats.LiquidQuantities[8].Quantity,Converter={StaticResource DoubleToChartValuesConverter}}" DataLabels="False" LabelPoint="{Binding Stats.QuantityCounts}"/> - </lvc:PieChart.Series> + <lvc:PieChart Series="{Binding SeriesCollection}" Opacity="0.8" FontSize="{StaticResource FSE_SmallFontSize}" DisableAnimations="True" LegendLocation="None" Hoverable="True" DataTooltip="{x:Null}" HorizontalAlignment="Center" Height="155" Width="155" VerticalAlignment="Top" Margin="0 0 0 0"> + </lvc:PieChart> </DockPanel> @@ -572,11 +589,11 @@ <DataTemplate> <Border Background="Transparent"> <StackPanel Orientation="Horizontal" Margin="4"> - <Ellipse VerticalAlignment="Top" Margin="0 0 0 0" StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" Width="30" Height="30" Fill="{Binding LiquidType,Converter={StaticResource LiquidTypeToColorConverter}}"> + <Ellipse VerticalAlignment="Top" Margin="0 0 0 0" StrokeThickness="1" Stroke="{StaticResource FSE_BorderBrush}" Width="30" Height="30" Fill="{Binding LiquidType.LiquidTypeBrush}"> </Ellipse> <StackPanel Orientation="Vertical" Margin="4 2 0 0"> - <TextBlock Text="{Binding LiquidType,Converter={StaticResource EnumToDescriptionConverter}}" FontWeight="SemiBold"></TextBlock> + <TextBlock Text="{Binding LiquidType.Name}" FontWeight="SemiBold"></TextBlock> <TextBlock > <Run Text="{Binding Liters,Mode=OneWay,StringFormat='0.000'}"></Run> <Run Text=" liters"></Run> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml index 9db3fc735..cfdf46701 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/MachineView.xaml @@ -64,19 +64,6 @@ <Rectangle Stroke="Gray" HorizontalAlignment="Left" StrokeThickness="1" StrokeDashArray="5" RenderTransformOrigin="0.5,0.5"/> </Grid>--> - <UniformGrid Width="310" Canvas.Top="295" Canvas.Left="420" TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="9"> - <TextBlock HorizontalAlignment="Center">1</TextBlock> - <TextBlock HorizontalAlignment="Center">2</TextBlock> - <TextBlock HorizontalAlignment="Center">3</TextBlock> - <TextBlock HorizontalAlignment="Center">4</TextBlock> - <TextBlock HorizontalAlignment="Center">5</TextBlock> - <TextBlock HorizontalAlignment="Center">6</TextBlock> - <TextBlock HorizontalAlignment="Center">7</TextBlock> - <TextBlock HorizontalAlignment="Center">8</TextBlock> - <TextBlock HorizontalAlignment="Center">9</TextBlock> - <TextBlock HorizontalAlignment="Center">10</TextBlock> - </UniformGrid> - <Grid x:Name="gridIds" Width="310" Height="195" Canvas.Top="314" Canvas.Left="420"> <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> <ListBox.ItemContainerStyle> @@ -95,7 +82,7 @@ <DataTemplate> <Grid MaxWidth="35"> <Grid.RowDefinitions> - <RowDefinition Height="11"/> + <RowDefinition Height="14"/> <RowDefinition Height="1*"/> <RowDefinition Height="30"/> </Grid.RowDefinitions> @@ -173,7 +160,7 @@ </Border> </Grid> - <TextBlock Grid.Row="0" FontSize="9" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}"></TextBlock> + <TextBlock Grid.Row="0" FontSize="14" Margin="0 0 0 0" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}" Foreground="Black"></TextBlock> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> @@ -302,18 +289,6 @@ <Image IsHitTestVisible="False" Source="{StaticResource FSE_Machine_Eureka_Full}" MaxWidth="1000" Margin="-150 -50 0 0" RenderOptions.BitmapScalingMode="Fant"/> <StackPanel Margin="160 150 0 0" Width="410" HorizontalAlignment="Left"> - <UniformGrid TextElement.Foreground="#252525" Rows="1" Columns="10" TextElement.FontSize="20"> - <TextBlock HorizontalAlignment="Center">1</TextBlock> - <TextBlock HorizontalAlignment="Center">2</TextBlock> - <TextBlock HorizontalAlignment="Center">3</TextBlock> - <TextBlock HorizontalAlignment="Center">4</TextBlock> - <TextBlock HorizontalAlignment="Center">5</TextBlock> - <TextBlock HorizontalAlignment="Center">6</TextBlock> - <TextBlock HorizontalAlignment="Center">7</TextBlock> - <TextBlock HorizontalAlignment="Center">8</TextBlock> - <TextBlock HorizontalAlignment="Center">9</TextBlock> - <TextBlock HorizontalAlignment="Center">10</TextBlock> - </UniformGrid> <Grid Height="218"> <ListBox ItemsSource="{Binding Configuration.IdsPacks}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent"> @@ -326,17 +301,18 @@ </ListBox.ItemContainerStyle> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> - <UniformGrid Columns="10"></UniformGrid> + <UniformGrid Rows="1"></UniformGrid> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> - <Grid> + <Grid MaxWidth="35"> <Grid.RowDefinitions> + <RowDefinition Height="14"/> <RowDefinition Height="1*"/> <RowDefinition Height="30"/> </Grid.RowDefinitions> - <UniformGrid Columns="1" Rows="2"> + <UniformGrid Grid.Row="1" Columns="1" Rows="2" IsHitTestVisible="False"> <Grid Margin="2"> <Image IsHitTestVisible="False" Source="../Images/dispenser.png" RenderOptions.BitmapScalingMode="Fant"> <Image.Style> @@ -382,7 +358,7 @@ </Grid> </UniformGrid> - <Grid Grid.Row="1" Margin="3" IsHitTestVisible="False"> + <Grid Grid.Row="2" Margin="3" IsHitTestVisible="False"> <Grid.Style> <Style TargetType="Grid"> <Style.Triggers> @@ -409,6 +385,8 @@ </Border.Background> </Border> </Grid> + + <TextBlock Grid.Row="0" FontSize="14" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{Binding PackIndex}" Foreground="Black"></TextBlock> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 8d539769c..75dcdbfe4 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -36,7 +36,7 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels { public class MainViewVM : StudioViewModel<IMainView> { - private const int MAX_IDS_PACKS = 12; + private const int MAX_IDS_PACKS = 15; private INotificationProvider _notification; private IActionLogManager _actionLogManager; private IAuthenticationProvider _authentication; diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml index 240abc688..5f1ff4c9d 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionView.xaml @@ -527,7 +527,7 @@ <RowDefinition Height="1*" /> </Grid.RowDefinitions> - <touch:TouchImageButton Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0" + <touch:TouchImageButton Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{ Binding VectorFineTuningCommand}" > <touch:TouchImageButton.Template> <ControlTemplate TargetType="touch:TouchImageButton"> @@ -596,7 +596,7 @@ <RowDefinition Height="1*" /> </Grid.RowDefinitions> - <touch:TouchImageButton Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0" + <touch:TouchImageButton Visibility="{Binding FineTuningEnabled,Converter={StaticResource BooleanToVisibilityConverter}}" Grid.Row="0" Margin="0 2 45 0" HorizontalAlignment="Right" Width="Auto" Height="70" EnableDropShadow="False" Background="Transparent" BorderThickness="0" Command="{ Binding VectorFineTuningCommand}" > <touch:TouchImageButton.Template> <ControlTemplate TargetType="touch:TouchImageButton"> @@ -614,8 +614,8 @@ <Grid x:Name="CMYKgrid" Grid.Row="2" Margin="80 0 93 0" Style="{StaticResource DisableOnSaveMyColorsGrid}"> <DockPanel> - <ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding SelectedBrushStop.LiquidVolumes}" IsTabStop="False" MinWidth="200"> - <ItemsControl.ItemTemplate> + <touch:TouchListBox DockPanel.Dock="Top" ItemsSource="{Binding SelectedBrushStop.LiquidVolumes}" IsTabStop="False" MinWidth="200"> + <touch:TouchListBox.ItemTemplate> <DataTemplate DataType="{x:Type models:LiquidVolumeModel}"> <touch:TouchColorPickerControl Margin=" 0 10 0 0" MinWidth="200" MinValue="0" IsTabStop="False" ColorPickerText="{Binding IdsPack.LiquidType.Name}" @@ -636,8 +636,8 @@ </touch:TouchColorPickerControl.PickerBrush> </touch:TouchColorPickerControl> </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> + </touch:TouchListBox.ItemTemplate> + </touch:TouchListBox> <!--<touch:TouchColorPickerCMYKControl DockPanel.Dock="Top" x:Name="CMYKPicker" ThumbHeight="30" ThumbHeightInside="28" IsTabStop="False" diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs index 4ba8a6ebf..5b750189f 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs @@ -414,6 +414,21 @@ namespace Tango.PPC.Jobs.Dialogs set { _vectorFineTuningDialogVM = value; RaisePropertyChangedAuto(); } } + public bool FineTuningEnabled + { + get + { + if (SelectedBrushStop == null) return false; + var idsPacks = MachineProvider.Machine.Configuration.GetSupportedIdsPacks(SelectedBrushStop.SegmentModel.Job.Rml).ToList(); + if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Cyan)) return false; + if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Magenta)) return false; + if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Yellow)) return false; + if (!idsPacks.Exists(x => x.LiquidType.Type == LiquidTypes.Black)) return false; + + return true; + } + } + private String _myColorName; public String MyColorName @@ -634,6 +649,7 @@ namespace Tango.PPC.Jobs.Dialogs SelectedBrushStop.ColorChanged += OnBrushColorChanged; CheckIsSelectedColorInLibrary(); SelectedBrushStop.ConvertColor();//test OOG + RaisePropertyChanged(nameof(FineTuningEnabled)); } private void OnSelectedtabChanged() diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs index a98641b25..d05b4c6bf 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Statistics/DefaultStatisticsService.cs @@ -29,6 +29,7 @@ namespace Tango.PPC.Common.Statistics private List<ColorCatalog> _catalogs; private List<ColorCatalogsItem> _color_catalog_Items; private List<ColorSpace> _colorSpaces; + private Dictionary<String, LiquidType> _liquidTypes; public bool Enabled { get; set; } = true; @@ -107,6 +108,8 @@ namespace Tango.PPC.Common.Statistics using (ObservablesContext db = ObservablesContext.CreateDefault()) { + response.Result.LiquidTypes = db.LiquidTypes.ToList().Select(x => LiquidTypeDTO.FromObservable(x)).ToList(); + var filters = request.Filters; var db_JobRuns = db.JobRuns.Where(x => (x.StartDate <= filters.EndDateUTC && x.StartDate >= filters.StartDateUTC)); @@ -173,6 +176,19 @@ namespace Tango.PPC.Common.Statistics } } + if (_liquidTypes == null) + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + var types = await db.LiquidTypes.ToListAsync(); + _liquidTypes = new Dictionary<string, LiquidType>(); + foreach (var t in types) + { + _liquidTypes.Add(t.Name, t); + } + } + } + JobRunComposition jobRunComposition = new JobRunComposition(); jobRunComposition.JobRun = JobRunDTO.FromObservable(jobRun); @@ -197,11 +213,17 @@ namespace Tango.PPC.Common.Statistics foreach (var liquidType in stop.LiquidVolumes) { PresentationLiquidVolume plt = new PresentationLiquidVolume(); - plt.LiquidType = (LiquidTypes)Enum.Parse(typeof(LiquidTypes), liquidType.LiquidTypeName.Replace(" ", "")); - plt.Volume = liquidType.Volume; - pbs.LiquidVolumes.Add(plt); + + if (_liquidTypes.ContainsKey(liquidType.LiquidTypeName)) + { + plt.LiquidType = _liquidTypes[liquidType.LiquidTypeName]; + plt.Volume = liquidType.Volume; + pbs.LiquidVolumes.Add(plt); + } } + pbs.LiquidVolumes = pbs.LiquidVolumes.OrderBy(x => x.LiquidType.PreferredIndex).ToList(); + switch (pbs.ColorSpace) { case ColorSpaces.RGB: @@ -215,29 +237,16 @@ namespace Tango.PPC.Common.Statistics pbs.B = stop.B; break; case ColorSpaces.Volume: - pbs.Cyan = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Cyan).Volume; - pbs.Magenta = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Magenta).Volume; - pbs.Yellow = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Yellow).Volume; - pbs.Black = pbs.LiquidVolumes.First(x => x.LiquidType == LiquidTypes.Black).Volume; - - var lightCyan = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType == LiquidTypes.LightCyan); - var lightMagenta = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType == LiquidTypes.LightMagenta); - var lightYellow = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType == LiquidTypes.LightYellow); - - if (lightCyan != null && lightCyan.Volume > 0) - { - pbs.Cyan = lightCyan.Volume / 10d; - } - - if (lightMagenta != null && lightMagenta.Volume > 0) - { - pbs.Magenta = lightMagenta.Volume / 10d; - } - if (lightYellow != null && lightYellow.Volume > 0) - { - pbs.Yellow = lightYellow.Volume / 10d; - } + //foreach (var lightInk in pbs.LiquidVolumes.Where(x => x.LiquidType.IsLightInk && x.Volume > 0)) + //{ + // var darkInk = pbs.LiquidVolumes.FirstOrDefault(x => x.LiquidType.Code == lightInk.LiquidType.DarkInkCode); + // if (darkInk != null) + // { + // darkInk.Volume = (double)((decimal)lightInk.Volume / 10m); + // lightInk.Volume = 0; + // } + //} break; case ColorSpaces.Catalog: diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs index d17cc8d42..2f5e7aea6 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationBrushStop.cs @@ -9,6 +9,8 @@ namespace Tango.PPC.Shared.Statistics { public class PresentationBrushStop { + + private List<PresentationLiquidVolume> _inputVolumes; public ColorSpaces ColorSpace { get; set; } public double StartMeters { get; set; } public int Red { get; set; } @@ -17,10 +19,7 @@ namespace Tango.PPC.Shared.Statistics public double L { get; set; } public double A { get; set; } public double B { get; set; } - public double Cyan { get; set; } - public double Magenta { get; set; } - public double Yellow { get; set; } - public double Black { get; set; } + public String Catalog { get; set; } public String CatalogItem { get; set; } @@ -30,6 +29,47 @@ namespace Tango.PPC.Shared.Statistics public List<PresentationLiquidVolume> LiquidVolumes { get; set; } + public double GetLiquidVolumeOutputOrZero(LiquidTypes liquidType) + { + var lv = LiquidVolumes.FirstOrDefault(x => x.LiquidType.Type == liquidType); + return lv != null ? lv.Volume : 0.0; + } + + public double GetLiquidVolumeInputOrZero(LiquidTypes liquidType) + { + var lv = GetVolumeInputs().FirstOrDefault(x => x.LiquidType.Type == liquidType); + return lv != null ? lv.Volume : 0.0; + } + + public List<PresentationLiquidVolume> GetVolumeInputs() + { + if (_inputVolumes == null) + { + _inputVolumes = new List<PresentationLiquidVolume>(); + var clones = LiquidVolumes.Select(x => new PresentationLiquidVolume() { LiquidType = x.LiquidType, Volume = x.Volume }).ToList(); + + + foreach (var liquidVolume in clones.Where(x => x.LiquidType.HasPigment)) + { + if (liquidVolume.LiquidType.IsLightInk && liquidVolume.Volume > 0) + { + var darkInk = clones.FirstOrDefault(x => x.LiquidType.Code == liquidVolume.LiquidType.DarkInkCode); + if (darkInk != null) + { + darkInk.Volume = (double)((decimal)liquidVolume.Volume / 10m); + + continue; + } + } + + _inputVolumes.Add(liquidVolume); + } + } + + return _inputVolumes; + } + + public PresentationBrushStop() { LiquidVolumes = new List<PresentationLiquidVolume>(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs index c370d1f5d..fb560ca0c 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/PresentationLiquidVolume.cs @@ -3,13 +3,14 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.BL.Entities; using Tango.BL.Enumerations; namespace Tango.PPC.Shared.Statistics { public class PresentationLiquidVolume { - public LiquidTypes LiquidType { get; set; } + public LiquidType LiquidType { get; set; } public double Volume { get; set; } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs index 8cee4c545..3cbd26e32 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Shared/Statistics/StatisticsResult.cs @@ -11,9 +11,12 @@ namespace Tango.PPC.Shared.Statistics { public List<JobRunComposition> JobRuns { get; set; } + public List<LiquidTypeDTO> LiquidTypes { get; set; } + public StatisticsResult() { JobRuns = new List<JobRunComposition>(); + LiquidTypes = new List<LiquidTypeDTO>(); } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml index 74db8e471..27fb531c3 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MachineStatusView.xaml @@ -45,22 +45,24 @@ </Style> <DataTemplate x:Key="CMYK_Template" DataType="{x:Type entities:BrushStop}"> - <ItemsControl ItemsSource="{Binding LiquidVolumesOrderedPigmentedForStandardUser}" MinWidth="180" HorizontalAlignment="Left" Height="Auto"> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel Orientation="Horizontal"></StackPanel> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <StackPanel Orientation="Vertical" Margin="0 0 10 0"> - <Border Width="50" Height="50" Background="{Binding IdsPack.LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border> - <TextBlock Margin="0 10 0 0" Text="{Binding IdsPack.LiquidType.ShortName}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> - <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Volume, StringFormat=0.##}" ></TextBlock> - </StackPanel> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> + <Viewbox MaxHeight="120" MaxWidth="300"> + <ItemsControl ItemsSource="{Binding LiquidVolumesOrderedPigmentedForStandardUser}" MinWidth="180" HorizontalAlignment="Left" Height="Auto"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal"></StackPanel> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Vertical" Margin="0 0 10 0"> + <Border Width="50" Height="50" Background="{Binding IdsPack.LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0" Text="{Binding IdsPack.LiquidType.ShortName}" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> + <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Volume, StringFormat=0.##}" ></TextBlock> + </StackPanel> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Viewbox> </DataTemplate> <DataTemplate x:Key="RGB_Template" DataType="{x:Type entities:BrushStop}"> @@ -69,13 +71,13 @@ <Border Width="50" Height="50" Background="Red" CornerRadius="16" HorizontalAlignment="Left"></Border> <TextBlock Margin="0 10 0 0" Text="R" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Red}" ></TextBlock> - + </StackPanel> <StackPanel Orientation="Vertical" Margin="4 0 0 0"> <Border Width="50" Height="50" Background="Green" CornerRadius="16" HorizontalAlignment="Left"></Border> <TextBlock Margin="0 10 0 0" Text="G" FontSize="{StaticResource TangoDefaultFontSize}" VerticalAlignment="Center" HorizontalAlignment="Center"/> <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding Green}" ></TextBlock> - + </StackPanel> <StackPanel Orientation="Vertical" Margin="4 0 0 0"> <Border Width="50" Height="50" Background="Blue" CornerRadius="16" HorizontalAlignment="Left"></Border> @@ -91,7 +93,7 @@ <Border Width="50" Height="50" Background="Gray" CornerRadius="16" HorizontalAlignment="Left"></Border> <TextBlock Margin="0 10 0 0 " Text="L" FontSize="{StaticResource TangoDefaultFontSize}" HorizontalAlignment="Center"/> <TextBlock Margin="0 10 0 0" Style="{StaticResource SliderGreyTextStyle}" Text="{Binding L, StringFormat=0.##}" ></TextBlock> - + </StackPanel> <StackPanel Orientation="Vertical" Width="50" HorizontalAlignment="Left" Margin="5 0 0 0"> <Border Width="50" Height="50" Background="red" CornerRadius="16" HorizontalAlignment="Left"></Border> @@ -309,8 +311,8 @@ <DockPanel> <TextBlock DockPanel.Dock="Bottom" Text="Waste" HorizontalAlignment="Center" Margin="0 8 0 0"></TextBlock> <Grid Height="15" DockPanel.Dock="Top"> - </Grid> - <Grid DockPanel.Dock="Top"> + </Grid> + <Grid DockPanel.Dock="Top"> <Grid ClipToBounds="True" HorizontalAlignment="Center"> <Path Fill="#CCCCCC"> <Path.Resources> @@ -323,7 +325,7 @@ <StaticResource ResourceKey="InkContainerPath"/> </CombinedGeometry.Geometry1> <CombinedGeometry.Geometry2> - + <RectangleGeometry Rect="1,0,30,88"> <!--<RectangleGeometry.Rect> <MultiBinding Converter="{StaticResource MidTankLevelToElementRectConverter}"> @@ -984,22 +986,24 @@ </StackPanel> </UniformGrid> - <ItemsControl ItemsSource="{Binding LiquidOutputs}" Margin="0 20 0 0" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}"> - <ItemsControl.ItemsPanel> - <ItemsPanelTemplate> - <StackPanel Orientation="Horizontal" /> - </ItemsPanelTemplate> - </ItemsControl.ItemsPanel> - <ItemsControl.ItemTemplate> - <DataTemplate> - <StackPanel Margin="0 0 10 0" Orientation="Vertical" Width="50" HorizontalAlignment="Left"> - <Border Width="50" Height="50" Background="{Binding LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border> - <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LiquidType.ShortName}"></TextBlock> - <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding Volume}"></TextBlock> - </StackPanel> - </DataTemplate> - </ItemsControl.ItemTemplate> - </ItemsControl> + <Viewbox Margin="0 20 0 0" MaxHeight="120"> + <ItemsControl ItemsSource="{Binding LiquidOutputs}" HorizontalAlignment="Left" Visibility="{Binding IsDyeingProcess,Converter={StaticResource BooleanToVisibilityConverter}}"> + <ItemsControl.ItemsPanel> + <ItemsPanelTemplate> + <StackPanel Orientation="Horizontal" /> + </ItemsPanelTemplate> + </ItemsControl.ItemsPanel> + <ItemsControl.ItemTemplate> + <DataTemplate> + <StackPanel Margin="0 0 10 0" Orientation="Vertical" Width="50" HorizontalAlignment="Left"> + <Border Width="50" Height="50" Background="{Binding LiquidType.LiquidTypeBrush}" CornerRadius="16" HorizontalAlignment="Left"></Border> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding LiquidType.ShortName}"></TextBlock> + <TextBlock Margin="0 10 0 0 " HorizontalAlignment="Center" Text="{Binding Volume}"></TextBlock> + </StackPanel> + </DataTemplate> + </ItemsControl.ItemTemplate> + </ItemsControl> + </Viewbox> </StackPanel> </Grid> @@ -1139,9 +1143,9 @@ </Grid> <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Zone 3</TextBlock> </StackPanel> - - - + + + <!--<StackPanel Orientation="Vertical"> <Grid> @@ -1199,7 +1203,7 @@ </Grid> <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">Dryer Air</TextBlock> </StackPanel>--> - + <StackPanel Orientation="Vertical"> <Grid> <touch:TouchArcProgress RingThickness="8" Value="{Binding Tunnel.Value}" Maximum="{Binding Tunnel.MaxValue}" Minimum="0" Width="100" Height="100"> diff --git a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs index 139223d8d..08e8d7337 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/JobRunDTOBase.cs @@ -357,5 +357,69 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// blue quantity + /// </summary> + public Int64 BlueQuantity + { + get; set; + } + + /// <summary> + /// light blue quantity + /// </summary> + public Int64 LightBlueQuantity + { + get; set; + } + + /// <summary> + /// orange quantity + /// </summary> + public Int64 OrangeQuantity + { + get; set; + } + + /// <summary> + /// light orange quantity + /// </summary> + public Int64 LightOrangeQuantity + { + get; set; + } + + /// <summary> + /// rubine quantity + /// </summary> + public Int64 RubineQuantity + { + get; set; + } + + /// <summary> + /// light rubine quantity + /// </summary> + public Int64 LightRubineQuantity + { + get; set; + } + + /// <summary> + /// navy quantity + /// </summary> + public Int64 NavyQuantity + { + get; set; + } + + /// <summary> + /// violet quantity + /// </summary> + public Int64 VioletQuantity + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs index 1cb00d6bc..eba35dbd6 100644 --- a/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs +++ b/Software/Visual_Studio/Tango.BL/DTO/LiquidTypeDTOBase.cs @@ -93,5 +93,21 @@ namespace Tango.BL.DTO get; set; } + /// <summary> + /// is light ink + /// </summary> + public Boolean IsLightInk + { + get; set; + } + + /// <summary> + /// dark ink code + /// </summary> + public Int32 DarkInkCode + { + get; set; + } + } } diff --git a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs index 6da5b8f8b..54685f7ee 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/JobRunBase.cs @@ -101,6 +101,22 @@ namespace Tango.BL.Entities public event EventHandler<Double> ActualEndPositionChanged; + public event EventHandler<Int64> BlueQuantityChanged; + + public event EventHandler<Int64> LightBlueQuantityChanged; + + public event EventHandler<Int64> OrangeQuantityChanged; + + public event EventHandler<Int64> LightOrangeQuantityChanged; + + public event EventHandler<Int64> RubineQuantityChanged; + + public event EventHandler<Int64> LightRubineQuantityChanged; + + public event EventHandler<Int64> NavyQuantityChanged; + + public event EventHandler<Int64> VioletQuantityChanged; + protected String _machineguid; /// <summary> @@ -1227,6 +1243,222 @@ namespace Tango.BL.Entities } } + protected Int64 _bluequantity; + + /// <summary> + /// Gets or sets the jobrunbase blue quantity. + /// </summary> + + [Column("BLUE_QUANTITY")] + + public Int64 BlueQuantity + { + get + { + return _bluequantity; + } + + set + { + if (_bluequantity != value) + { + _bluequantity = value; + + OnBlueQuantityChanged(value); + + } + } + } + + protected Int64 _lightbluequantity; + + /// <summary> + /// Gets or sets the jobrunbase light blue quantity. + /// </summary> + + [Column("LIGHT_BLUE_QUANTITY")] + + public Int64 LightBlueQuantity + { + get + { + return _lightbluequantity; + } + + set + { + if (_lightbluequantity != value) + { + _lightbluequantity = value; + + OnLightBlueQuantityChanged(value); + + } + } + } + + protected Int64 _orangequantity; + + /// <summary> + /// Gets or sets the jobrunbase orange quantity. + /// </summary> + + [Column("ORANGE_QUANTITY")] + + public Int64 OrangeQuantity + { + get + { + return _orangequantity; + } + + set + { + if (_orangequantity != value) + { + _orangequantity = value; + + OnOrangeQuantityChanged(value); + + } + } + } + + protected Int64 _lightorangequantity; + + /// <summary> + /// Gets or sets the jobrunbase light orange quantity. + /// </summary> + + [Column("LIGHT_ORANGE_QUANTITY")] + + public Int64 LightOrangeQuantity + { + get + { + return _lightorangequantity; + } + + set + { + if (_lightorangequantity != value) + { + _lightorangequantity = value; + + OnLightOrangeQuantityChanged(value); + + } + } + } + + protected Int64 _rubinequantity; + + /// <summary> + /// Gets or sets the jobrunbase rubine quantity. + /// </summary> + + [Column("RUBINE_QUANTITY")] + + public Int64 RubineQuantity + { + get + { + return _rubinequantity; + } + + set + { + if (_rubinequantity != value) + { + _rubinequantity = value; + + OnRubineQuantityChanged(value); + + } + } + } + + protected Int64 _lightrubinequantity; + + /// <summary> + /// Gets or sets the jobrunbase light rubine quantity. + /// </summary> + + [Column("LIGHT_RUBINE_QUANTITY")] + + public Int64 LightRubineQuantity + { + get + { + return _lightrubinequantity; + } + + set + { + if (_lightrubinequantity != value) + { + _lightrubinequantity = value; + + OnLightRubineQuantityChanged(value); + + } + } + } + + protected Int64 _navyquantity; + + /// <summary> + /// Gets or sets the jobrunbase navy quantity. + /// </summary> + + [Column("NAVY_QUANTITY")] + + public Int64 NavyQuantity + { + get + { + return _navyquantity; + } + + set + { + if (_navyquantity != value) + { + _navyquantity = value; + + OnNavyQuantityChanged(value); + + } + } + } + + protected Int64 _violetquantity; + + /// <summary> + /// Gets or sets the jobrunbase violet quantity. + /// </summary> + + [Column("VIOLET_QUANTITY")] + + public Int64 VioletQuantity + { + get + { + return _violetquantity; + } + + set + { + if (_violetquantity != value) + { + _violetquantity = value; + + OnVioletQuantityChanged(value); + + } + } + } + /// <summary> /// Called when the JobName has changed. /// </summary> @@ -1561,6 +1793,78 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the BlueQuantity has changed. + /// </summary> + protected virtual void OnBlueQuantityChanged(Int64 bluequantity) + { + BlueQuantityChanged?.Invoke(this, bluequantity); + RaisePropertyChanged(nameof(BlueQuantity)); + } + + /// <summary> + /// Called when the LightBlueQuantity has changed. + /// </summary> + protected virtual void OnLightBlueQuantityChanged(Int64 lightbluequantity) + { + LightBlueQuantityChanged?.Invoke(this, lightbluequantity); + RaisePropertyChanged(nameof(LightBlueQuantity)); + } + + /// <summary> + /// Called when the OrangeQuantity has changed. + /// </summary> + protected virtual void OnOrangeQuantityChanged(Int64 orangequantity) + { + OrangeQuantityChanged?.Invoke(this, orangequantity); + RaisePropertyChanged(nameof(OrangeQuantity)); + } + + /// <summary> + /// Called when the LightOrangeQuantity has changed. + /// </summary> + protected virtual void OnLightOrangeQuantityChanged(Int64 lightorangequantity) + { + LightOrangeQuantityChanged?.Invoke(this, lightorangequantity); + RaisePropertyChanged(nameof(LightOrangeQuantity)); + } + + /// <summary> + /// Called when the RubineQuantity has changed. + /// </summary> + protected virtual void OnRubineQuantityChanged(Int64 rubinequantity) + { + RubineQuantityChanged?.Invoke(this, rubinequantity); + RaisePropertyChanged(nameof(RubineQuantity)); + } + + /// <summary> + /// Called when the LightRubineQuantity has changed. + /// </summary> + protected virtual void OnLightRubineQuantityChanged(Int64 lightrubinequantity) + { + LightRubineQuantityChanged?.Invoke(this, lightrubinequantity); + RaisePropertyChanged(nameof(LightRubineQuantity)); + } + + /// <summary> + /// Called when the NavyQuantity has changed. + /// </summary> + protected virtual void OnNavyQuantityChanged(Int64 navyquantity) + { + NavyQuantityChanged?.Invoke(this, navyquantity); + RaisePropertyChanged(nameof(NavyQuantity)); + } + + /// <summary> + /// Called when the VioletQuantity has changed. + /// </summary> + protected virtual void OnVioletQuantityChanged(Int64 violetquantity) + { + VioletQuantityChanged?.Invoke(this, violetquantity); + RaisePropertyChanged(nameof(VioletQuantity)); + } + + /// <summary> /// Initializes a new instance of the <see cref="JobRunBase" /> class. /// </summary> public JobRunBase() : base() diff --git a/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs b/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs index d7b0f4f58..b9a7d3557 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/LiquidType.cs @@ -39,6 +39,13 @@ namespace Tango.BL.Entities get { return (LiquidTypes)Code; } } + [NotMapped] + [JsonIgnore] + public LiquidTypes? DarkType + { + get { return DarkInkCode < 0 ? null : (LiquidTypes?)DarkInkCode; } + } + /// <summary> /// Initializes a new instance of the <see cref="LiquidType" /> class. /// </summary> diff --git a/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs b/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs index bfdc8cfb7..82403a11b 100644 --- a/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs +++ b/Software/Visual_Studio/Tango.BL/Entities/LiquidTypeBase.cs @@ -45,6 +45,10 @@ namespace Tango.BL.Entities public event EventHandler<Boolean> IsExtraInkChanged; + public event EventHandler<Boolean> IsLightInkChanged; + + public event EventHandler<Int32> DarkInkCodeChanged; + public event EventHandler<SynchronizedObservableCollection<Cat>> CatsChanged; public event EventHandler<SynchronizedObservableCollection<IdsPack>> IdsPacksChanged; @@ -296,6 +300,60 @@ namespace Tango.BL.Entities } } + protected Boolean _islightink; + + /// <summary> + /// Gets or sets the liquidtypebase is light ink. + /// </summary> + + [Column("IS_LIGHT_INK")] + + public Boolean IsLightInk + { + get + { + return _islightink; + } + + set + { + if (_islightink != value) + { + _islightink = value; + + OnIsLightInkChanged(value); + + } + } + } + + protected Int32 _darkinkcode; + + /// <summary> + /// Gets or sets the liquidtypebase dark ink code. + /// </summary> + + [Column("DARK_INK_CODE")] + + public Int32 DarkInkCode + { + get + { + return _darkinkcode; + } + + set + { + if (_darkinkcode != value) + { + _darkinkcode = value; + + OnDarkInkCodeChanged(value); + + } + } + } + protected SynchronizedObservableCollection<Cat> _cats; /// <summary> @@ -478,6 +536,24 @@ namespace Tango.BL.Entities } /// <summary> + /// Called when the IsLightInk has changed. + /// </summary> + protected virtual void OnIsLightInkChanged(Boolean islightink) + { + IsLightInkChanged?.Invoke(this, islightink); + RaisePropertyChanged(nameof(IsLightInk)); + } + + /// <summary> + /// Called when the DarkInkCode has changed. + /// </summary> + protected virtual void OnDarkInkCodeChanged(Int32 darkinkcode) + { + DarkInkCodeChanged?.Invoke(this, darkinkcode); + RaisePropertyChanged(nameof(DarkInkCode)); + } + + /// <summary> /// Called when the Cats has changed. /// </summary> protected virtual void OnCatsChanged(SynchronizedObservableCollection<Cat> cats) diff --git a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs index 5b4cec488..014ca040a 100644 --- a/Software/Visual_Studio/Tango.BL/LiquidVolume.cs +++ b/Software/Visual_Studio/Tango.BL/LiquidVolume.cs @@ -14,6 +14,7 @@ namespace Tango.BL public class LiquidVolume : ExtendedObject { public event Action VolumeChanged; + private static object _lock = new object(); private BrushStop _brushStop; [JsonIgnore] @@ -82,14 +83,25 @@ namespace Tango.BL public void Invalidate() { - if (BrushStop.LiquidVolumes != null) + lock (_lock) { - InvalidateSolo(); - - foreach (var liquidVolume in BrushStop.LiquidVolumes.ToList().Where(x => x != this)) + try { - liquidVolume.InvalidateSolo(); + if (BrushStop.LiquidVolumes != null) + { + InvalidateSolo(); + + foreach (var liquidVolume in BrushStop.LiquidVolumes.ToList().Where(x => x != this)) + { + liquidVolume.InvalidateSolo(); + } + } } + catch (Exception ex) + { + + throw; + } } } diff --git a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs index 59741cb5d..053cf785f 100644 --- a/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs +++ b/Software/Visual_Studio/Tango.ColorConversion/DefaultColorConverter.cs @@ -17,6 +17,7 @@ using System.IO; using Tango.Core.Helpers; using Tango.Settings; using Tango.ColorConversion.ColorBlending; +using Tango.BL.Dispensing; namespace Tango.ColorConversion { @@ -36,7 +37,7 @@ namespace Tango.ColorConversion #region Color Conversion - public ConversionOutput Convert(ConversionInput conversionInput, int version) + public ConversionOutput Convert(ConversionInput input, int version) { if (version < 1) version = 1; @@ -49,30 +50,47 @@ namespace Tango.ColorConversion ConversionOutput output = new ConversionOutput(); + TransformConversionInput(input); + + IntPtr pDll = NativeMethods.LoadLibrary(fileName); + IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "Convert"); + NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( + pAddressOfFunctionToCall, + typeof(NativeMethodDelegate)); + + NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(convert); + output = nativePMR.Invoke(input); + + bool result = NativeMethods.FreeLibrary(pDll); + + if (output.HasError) + { + throw new ExternalException($"Color Conversion Error: {output.ErrorMessage}!"); + } + + TransformConversionOutput(input, output); + + return output; + } + + #region Convert Transform + + private void TransformConversionInput(ConversionInput input) + { + //Make sure all liquid types exists in the conversion input before converting so the color engine won't fail. List<PMR.ColorLab.LiquidType> checkInks = new List<PMR.ColorLab.LiquidType>() { PMR.ColorLab.LiquidType.Cyan, PMR.ColorLab.LiquidType.Magenta, PMR.ColorLab.LiquidType.Yellow, PMR.ColorLab.LiquidType.Black, - PMR.ColorLab.LiquidType.LightCyan, - PMR.ColorLab.LiquidType.LightMagenta, - PMR.ColorLab.LiquidType.LightYellow, - PMR.ColorLab.LiquidType.Violet, - PMR.ColorLab.LiquidType.Blue, - PMR.ColorLab.LiquidType.LightBlue, - PMR.ColorLab.LiquidType.Orange, - PMR.ColorLab.LiquidType.LightOrange, - PMR.ColorLab.LiquidType.Rubine, - PMR.ColorLab.LiquidType.LightRubine, - PMR.ColorLab.LiquidType.Navy }; foreach (var ink in checkInks) { - if (!conversionInput.InputCoordinates.InputLiquids.Any(x => x.LiquidType == ink)) + if (!input.InputCoordinates.InputLiquids.Any(x => x.LiquidType == ink)) { - conversionInput.InputCoordinates.InputLiquids.Add(new InputLiquid() + input.InputCoordinates.InputLiquids.Add(new InputLiquid() { CalibrationData = new CalibrationData(), LiquidType = ink, @@ -81,60 +99,127 @@ namespace Tango.ColorConversion }); } } + } - IntPtr pDll = NativeMethods.LoadLibrary(fileName); - IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(pDll, "Convert"); - NativeMethodDelegate convert = (NativeMethodDelegate)Marshal.GetDelegateForFunctionPointer( - pAddressOfFunctionToCall, - typeof(NativeMethodDelegate)); - - NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(convert); - output = nativePMR.Invoke(conversionInput); - - bool result = NativeMethods.FreeLibrary(pDll); - - if (output.HasError) - { - throw new ExternalException($"Color Conversion Error: {output.ErrorMessage}!"); - } - - if (conversionInput.ColorSpace == PMR.ColorLab.ColorSpace.Volume) + private void TransformConversionOutput(ConversionInput input, ConversionOutput output) + { + if (input.ColorSpace == PMR.ColorLab.ColorSpace.Volume) { - if (conversionInput.InputCoordinates.InputLiquids.Any(x => x.IsExtraInk && x.Volume > 0)) + if (input.InputCoordinates.InputLiquids.Any(x => x.IsExtraInk && x.Volume > 0)) { //Blend the extra ink volume to the output RGB and LAB. List<BlendableColor> extraInkColors = new List<BlendableColor>(); - foreach (var input in conversionInput.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk && x.Volume > 0)) + foreach (var inputLiquid in input.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk && x.Volume > 0)) { - extraInkColors.Add(new BlendableColor(input.Color, input.Volume, input.CalibrationData)); + extraInkColors.Add(new BlendableColor(inputLiquid.Color, inputLiquid.Volume, inputLiquid.CalibrationData)); } - BlendOutputCoordinates(output.SingleCoordinates, extraInkColors); + BlendOutputColor(output.SingleCoordinates, extraInkColors); - if (conversionInput.GenerateHive) + if (input.GenerateHive) { foreach (var coords in output.HiveCoordinates) { - BlendOutputCoordinates(coords, extraInkColors); + BlendOutputColor(coords, extraInkColors); + } + } + + //Make sure all extra input inks exists on output. + foreach (var inputLiquid in input.InputCoordinates.InputLiquids.Where(x => x.IsExtraInk)) + { + if (!output.SingleCoordinates.OutputLiquids.Any(x => x.LiquidType == inputLiquid.LiquidType)) + { + output.SingleCoordinates.OutputLiquids.Add(new OutputLiquid() + { + LiquidType = inputLiquid.LiquidType, + Volume = inputLiquid.Volume + }); + } + } + + //Perform Light Inks Shifting + if (input.UseLightInks) + { + //Perform Light Inks Shifting... + PerformLightInkShifting(PMR.ColorLab.LiquidType.Blue, PMR.ColorLab.LiquidType.LightBlue, input, output); + PerformLightInkShifting(PMR.ColorLab.LiquidType.Orange, PMR.ColorLab.LiquidType.LightOrange, input, output); + PerformLightInkShifting(PMR.ColorLab.LiquidType.Rubine, PMR.ColorLab.LiquidType.LightRubine, input, output); + + //Check Total NLP With Light Inks. + double totalNLP = CalculateTotalNLP(input, output); + + if (totalNLP > input.ProcessRanges.Max(x => x.MaxInkUptake)) + { + //Shift Back To Dark Inks + PerformDarkInkShifting(PMR.ColorLab.LiquidType.LightBlue, PMR.ColorLab.LiquidType.Blue, input, output); + PerformDarkInkShifting(PMR.ColorLab.LiquidType.LightOrange, PMR.ColorLab.LiquidType.Orange, input, output); + PerformDarkInkShifting(PMR.ColorLab.LiquidType.LightRubine, PMR.ColorLab.LiquidType.Rubine, input, output); + } + } + + //Make sure the output selected process parameters are correct. + if (input.ProcessRanges.Count > 1) + { + StandardColorDispensingCalc calc = new StandardColorDispensingCalc(); + + double totalNLP = CalculateTotalNLP(input, output); + + var firstMaxInTake = input.ProcessRanges[0].MaxInkUptake; + + if (totalNLP > firstMaxInTake) + { + output.SingleCoordinates.ProcessParametersTableIndex = 1; } } } } else { - ResetExtraInks(output.SingleCoordinates, conversionInput); + ResetExtraInks(output.SingleCoordinates, input); - if (conversionInput.GenerateHive) + if (input.GenerateHive) { foreach (var coords in output.HiveCoordinates) { - ResetExtraInks(coords, conversionInput); + ResetExtraInks(coords, input); } } } + } - return output; + private void PerformLightInkShifting(PMR.ColorLab.LiquidType darkInk, PMR.ColorLab.LiquidType lightInk, ConversionInput input, ConversionOutput output) + { + var dark = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == darkInk); + if (dark != null && dark.Volume < input.VMax) + { + var darkInput = input.InputCoordinates.InputLiquids.FirstOrDefault(x => x.LiquidType == darkInk); + if (darkInput != null) + { + var maxInkUpdate = input.ProcessRanges.Max(x => x.MaxInkUptake); + StandardColorDispensingCalc calc = new StandardColorDispensingCalc(); + var nlp = calc.CalculateNanoliterPerCentimeter(dark.Volume * 10d, darkInput.MaxNanoliterPerCentimeter); + if (nlp > maxInkUpdate) return; + } + + var light = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == lightInk); + if (light != null) + { + light.Volume = (double)((decimal)dark.Volume * 10m); + dark.Volume = 0; + } + } + } + + private void PerformDarkInkShifting(PMR.ColorLab.LiquidType lightInk, PMR.ColorLab.LiquidType darkInk, ConversionInput input, ConversionOutput output) + { + var light = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == lightInk); + var dark = output.SingleCoordinates.OutputLiquids.FirstOrDefault(x => x.LiquidType == darkInk); + if (light != null && dark != null) + { + dark.Volume = (double)((decimal)light.Volume / 10m); + light.Volume = 0; + } } private void ResetExtraInks(OutputCoordinates output, ConversionInput input) @@ -154,7 +239,7 @@ namespace Tango.ColorConversion } } - private void BlendOutputCoordinates(OutputCoordinates output, List<BlendableColor> blendableColors) + private void BlendOutputColor(OutputCoordinates output, List<BlendableColor> blendableColors) { Color baseColor = Color.FromRgb((byte)output.Red, (byte)output.Green, (byte)output.Blue); @@ -169,6 +254,26 @@ namespace Tango.ColorConversion output.B = lab.B; } + private double CalculateTotalNLP(ConversionInput input, ConversionOutput output) + { + StandardColorDispensingCalc calc = new StandardColorDispensingCalc(); + + double sumNlp = 0; + + foreach (var outputLiquid in output.SingleCoordinates.OutputLiquids.Where(x => x.Volume > 0).ToList()) + { + var inputLiquid = input.InputCoordinates.InputLiquids.FirstOrDefault(x => x.LiquidType == outputLiquid.LiquidType); + if (inputLiquid != null) + { + sumNlp += calc.CalculateNanoliterPerCentimeter(outputLiquid.Volume, inputLiquid.MaxNanoliterPerCentimeter); + } + } + + return sumNlp; + } + + #endregion + public ConversionOutput Convert(BrushStop stop, Configuration configuration, Rml rml, bool generateHive, bool lightInksInstalled, bool useLightInks = false, ConversionType conversionType = ConversionType.Default) { if (stop == null) @@ -1094,77 +1199,5 @@ namespace Tango.ColorConversion } #endregion - - #region Additional Ink Color Conversion - - private static Color Violet = Color.FromRgb(127, 0, 255); - - - - //private void SetCMYKVToConversionOutput(ConversionOutput output) - //{ - // var violetOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; - // output.SingleCoordinates.OutputLiquids.Add(violetOutput); - - // foreach (var liquid in output.SingleCoordinates.OutputLiquids) - // { - // switch (liquid.LiquidType) - // { - // case PMR.ColorLab.LiquidType.Cyan: - // liquid.Volume = cmykv.C; - // break; - // case PMR.ColorLab.LiquidType.Magenta: - // liquid.Volume = cmykv.M; - // break; - // case PMR.ColorLab.LiquidType.Yellow: - // liquid.Volume = cmykv.Y; - // break; - // case PMR.ColorLab.LiquidType.Black: - // liquid.Volume = cmykv.K; - // break; - // case PMR.ColorLab.LiquidType.Violet: - // liquid.Volume = cmykv.V; - // break; - // default: - // break; - // } - // } - - // if (output.HiveCoordinates.Count > 0) - // { - // var vOutput = new OutputLiquid() { LiquidType = PMR.ColorLab.LiquidType.Violet, Volume = 0 }; - - // foreach (var cell in output.HiveCoordinates) - // { - // cell.OutputLiquids.Add(vOutput); - - // foreach (var liquid in cell.OutputLiquids) - // { - // switch (liquid.LiquidType) - // { - // case PMR.ColorLab.LiquidType.Cyan: - // liquid.Volume = cmykv.C; - // break; - // case PMR.ColorLab.LiquidType.Magenta: - // liquid.Volume = cmykv.M; - // break; - // case PMR.ColorLab.LiquidType.Yellow: - // liquid.Volume = cmykv.Y; - // break; - // case PMR.ColorLab.LiquidType.Black: - // liquid.Volume = cmykv.K; - // break; - // case PMR.ColorLab.LiquidType.Violet: - // liquid.Volume = cmykv.V; - // break; - // default: - // break; - // } - // } - // } - // } - //} - - #endregion } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs index 82150c63c..c04183622 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/JOB_RUNS.cs @@ -59,5 +59,13 @@ namespace Tango.DAL.Remote.DB public int MACHINE_TYPE { get; set; } public double ACTUAL_START_POSITION { get; set; } public double ACTUAL_END_POSITION { get; set; } + public long BLUE_QUANTITY { get; set; } + public long LIGHT_BLUE_QUANTITY { get; set; } + public long ORANGE_QUANTITY { get; set; } + public long LIGHT_ORANGE_QUANTITY { get; set; } + public long RUBINE_QUANTITY { get; set; } + public long LIGHT_RUBINE_QUANTITY { get; set; } + public long NAVY_QUANTITY { get; set; } + public long VIOLET_QUANTITY { get; set; } } } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs index cf6a05620..382efa9e9 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/LIQUID_TYPES.cs @@ -35,6 +35,8 @@ namespace Tango.DAL.Remote.DB public string SHORT_NAME { get; set; } public bool AVAILABLE_FOR_STANDARD_USER { get; set; } public bool IS_EXTRA_INK { get; set; } + public bool IS_LIGHT_INK { get; set; } + public int DARK_INK_CODE { get; set; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] public virtual ICollection<CAT> CATS { get; set; } diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx index 4484f520b..be35aea37 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx @@ -824,6 +824,14 @@ <Property Name="MACHINE_TYPE" Type="int" Nullable="false" /> <Property Name="ACTUAL_START_POSITION" Type="float" Nullable="false" /> <Property Name="ACTUAL_END_POSITION" Type="float" Nullable="false" /> + <Property Name="BLUE_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="LIGHT_BLUE_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="ORANGE_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="LIGHT_ORANGE_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="RUBINE_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="LIGHT_RUBINE_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="NAVY_QUANTITY" Type="bigint" Nullable="false" /> + <Property Name="VIOLET_QUANTITY" Type="bigint" Nullable="false" /> </EntityType> <EntityType Name="JOBS"> <Key> @@ -896,6 +904,8 @@ <Property Name="SHORT_NAME" Type="nvarchar" MaxLength="4" /> <Property Name="AVAILABLE_FOR_STANDARD_USER" Type="bit" Nullable="false" /> <Property Name="IS_EXTRA_INK" Type="bit" Nullable="false" /> + <Property Name="IS_LIGHT_INK" Type="bit" Nullable="false" /> + <Property Name="DARK_INK_CODE" Type="int" Nullable="false" /> </EntityType> <EntityType Name="LIQUID_TYPES_RMLS"> <Key> @@ -6510,6 +6520,14 @@ <Property Name="MACHINE_TYPE" Type="Int32" Nullable="false" /> <Property Name="ACTUAL_START_POSITION" Type="Double" Nullable="false" /> <Property Name="ACTUAL_END_POSITION" Type="Double" Nullable="false" /> + <Property Name="BLUE_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="LIGHT_BLUE_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="ORANGE_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="LIGHT_ORANGE_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="RUBINE_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="LIGHT_RUBINE_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="NAVY_QUANTITY" Type="Int64" Nullable="false" /> + <Property Name="VIOLET_QUANTITY" Type="Int64" Nullable="false" /> </EntityType> <EntityType Name="JOB"> <Key> @@ -6593,6 +6611,8 @@ <Property Name="SHORT_NAME" Type="String" MaxLength="4" FixedLength="false" Unicode="true" /> <Property Name="AVAILABLE_FOR_STANDARD_USER" Type="Boolean" Nullable="false" /> <Property Name="IS_EXTRA_INK" Type="Boolean" Nullable="false" /> + <Property Name="IS_LIGHT_INK" Type="Boolean" Nullable="false" /> + <Property Name="DARK_INK_CODE" Type="Int32" Nullable="false" /> <NavigationProperty Name="CATS" Relationship="RemoteModel.FK_CATS_LIQUID_TYPES1" FromRole="LIQUID_TYPES" ToRole="CAT" /> <NavigationProperty Name="IDS_PACKS" Relationship="RemoteModel.FK_CONFIGURATIONS_DISPENSERS_LIQUIDS" FromRole="LIQUID_TYPES" ToRole="IDS_PACKS" /> <NavigationProperty Name="LIQUID_TYPES_RMLS" Relationship="RemoteModel.FK_LIQUID_TYPES_RMLS_LIQUID_TYPES" FromRole="LIQUID_TYPES" ToRole="LIQUID_TYPES_RMLS" /> @@ -9987,6 +10007,14 @@ <EntitySetMapping Name="JOB_RUNS"> <EntityTypeMapping TypeName="RemoteModel.JOB_RUNS"> <MappingFragment StoreEntitySet="JOB_RUNS"> + <ScalarProperty Name="VIOLET_QUANTITY" ColumnName="VIOLET_QUANTITY" /> + <ScalarProperty Name="NAVY_QUANTITY" ColumnName="NAVY_QUANTITY" /> + <ScalarProperty Name="LIGHT_RUBINE_QUANTITY" ColumnName="LIGHT_RUBINE_QUANTITY" /> + <ScalarProperty Name="RUBINE_QUANTITY" ColumnName="RUBINE_QUANTITY" /> + <ScalarProperty Name="LIGHT_ORANGE_QUANTITY" ColumnName="LIGHT_ORANGE_QUANTITY" /> + <ScalarProperty Name="ORANGE_QUANTITY" ColumnName="ORANGE_QUANTITY" /> + <ScalarProperty Name="LIGHT_BLUE_QUANTITY" ColumnName="LIGHT_BLUE_QUANTITY" /> + <ScalarProperty Name="BLUE_QUANTITY" ColumnName="BLUE_QUANTITY" /> <ScalarProperty Name="ACTUAL_END_POSITION" ColumnName="ACTUAL_END_POSITION" /> <ScalarProperty Name="ACTUAL_START_POSITION" ColumnName="ACTUAL_START_POSITION" /> <ScalarProperty Name="MACHINE_TYPE" ColumnName="MACHINE_TYPE" /> @@ -10095,6 +10123,8 @@ <EntitySetMapping Name="LIQUID_TYPES"> <EntityTypeMapping TypeName="RemoteModel.LIQUID_TYPES"> <MappingFragment StoreEntitySet="LIQUID_TYPES"> + <ScalarProperty Name="DARK_INK_CODE" ColumnName="DARK_INK_CODE" /> + <ScalarProperty Name="IS_LIGHT_INK" ColumnName="IS_LIGHT_INK" /> <ScalarProperty Name="IS_EXTRA_INK" ColumnName="IS_EXTRA_INK" /> <ScalarProperty Name="AVAILABLE_FOR_STANDARD_USER" ColumnName="AVAILABLE_FOR_STANDARD_USER" /> <ScalarProperty Name="SHORT_NAME" ColumnName="SHORT_NAME" /> diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index 15865425b..0a10d54d9 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,103 +5,103 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="58"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="53.25" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="85.75" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="68.5" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="74.375" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="48.625" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="8.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="20.75" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="14.625" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="35.625" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="43.25" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="25.375" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="41.875" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="6.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="3.75" PointY="6.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="6" PointY="5.5" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="8.25" PointY="20.375" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="10.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="2.75" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="39.375" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="54.375" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="81.875" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="30.25" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="68.75" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="2.25" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="1.625" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="71.375" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="66.25" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="32.625" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="38.875" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="33.875" /> - <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="21" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="10.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="1.5" PointY="94" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="3.75" PointY="73.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="92" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6.75" PointY="77.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="1.5" PointY="102" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="3.75" PointY="82" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="7.5" PointY="89.875" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="9.75" PointY="74.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="96" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="82.125" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="98" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="77.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="77.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="88" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="73.875" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="39.875" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="34" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="13.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="21.625" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="45.125" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="14" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="21.625" /> - <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="29.375" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="5.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="43.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="89.875" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="56.625" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="48.625" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="17.875" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="25.875" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="52.125" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="61.875" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="13.75" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="49.75" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="56" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="8.75" PointY="5" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="11" PointY="5.125" /> - <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="8" PointY="1" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.375" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="25.125" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="17.625" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="17.75" /> - <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="14.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="25.375" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="25.75" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="35.5" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="5.25" PointY="18.125" /> - <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="29.875" /> - <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="29.5" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="14.75" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="39.5" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="15.75" PointY="3.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="11.25" PointY="61" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="16.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="12.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="15.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="17.75" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="18.75" PointY="5.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="10.75" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="33.375" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="34.75" /> - <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="5.75" PointY="1.5" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="42.875" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="60.875" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="58.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="67" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="75.75" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="72.875" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="3.75" PointY="1.25" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="21.25" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="12.375" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="42.125" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="8" PointY="91.5" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="8.25" PointY="26" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="26.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="7.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="6" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="21.875" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_MEASUREMENTS" Width="1.5" PointX="10.75" PointY="9.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="5.75" PointY="1.25" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="13.375" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="3.75" PointY="72.75" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="54.875" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="35.375" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="8.25" PointY="79.875" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.75" PointY="9.125" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="8" PointY="8.625" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="69.875" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="64.875" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="21.75" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="18.875" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="57" /> + <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="29.625" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="7.75" PointY="1.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="4.5" PointY="91.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="6.75" PointY="84" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="91.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="3.75" PointY="87.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="9.5" PointY="94.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="11.75" PointY="74.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="6.5" PointY="64.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="8.75" PointY="70.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="8.5" PointY="98.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="10.75" PointY="80.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="1.5" PointY="83.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="3.75" PointY="79.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="78.625" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="87.5" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="83.25" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="8" PointY="4.875" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10.25" PointY="44" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="14.75" PointY="9.25" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="22.25" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="33" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="15.5" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="5.25" PointY="26.125" /> + <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="38.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="2.75" PointY="12.25" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="70" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="3.75" PointY="63.625" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="6" PointY="67.75" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="65.25" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="35.875" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="15.75" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="45.5" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="8" PointY="88.125" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="3.75" PointY="56.875" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="18.875" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="38.625" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="44.875" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="10.75" PointY="5.5" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="13" PointY="5.625" /> + <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="13" PointY="1.5" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="19.875" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="5.25" PointY="29.625" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="39.75" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="39.875" /> + <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="11.75" PointY="13.25" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="26" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="26.25" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="6" PointY="57" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="11.25" PointY="34.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="8.25" PointY="22.375" /> + <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="13.25" PointY="43.75" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="9" PointY="29.875" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="52.625" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="15.75" PointY="1.25" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="15.75" PointY="4.25" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="60" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="2.75" PointY="16.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="16.75" PointY="9.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="16.75" PointY="12.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="16.75" PointY="15.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="17.75" PointY="1.25" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="18.75" PointY="6.25" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="55.5" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="56.875" /> + <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="10.75" PointY="2" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="17.25" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs index d4fcf7f41..1596c4b22 100644 --- a/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs +++ b/Software/Visual_Studio/Tango.Integration/JobRuns/BasicJobRunsLogger.cs @@ -232,6 +232,38 @@ namespace Tango.Integration.JobRuns var lightYellow = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightYellow); run.LightYellowQuantity = lightYellow != null ? lightYellow.Quantity : 0; + //Blue + var blue = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Blue); + run.BlueQuantity = blue != null ? blue.Quantity : 0; + + //Light Blue + var lightBlue = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightBlue); + run.LightBlueQuantity = lightBlue != null ? lightBlue.Quantity : 0; + + //Orange + var orange = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Orange); + run.OrangeQuantity = orange != null ? orange.Quantity : 0; + + //Light Orange + var lightOrange = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightOrange); + run.LightOrangeQuantity = lightOrange != null ? lightOrange.Quantity : 0; + + //Rubine + var rubine = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Rubine); + run.RubineQuantity = rubine != null ? rubine.Quantity : 0; + + //Light Rubine + var lightRubine = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.LightRubine); + run.LightRubineQuantity = lightRubine != null ? lightRubine.Quantity : 0; + + //Navy + var navy = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Navy); + run.NavyQuantity = navy != null ? navy.Quantity : 0; + + //Violet + var violet = run.LiquidQuantities.SingleOrDefault(x => x.LiquidType == LiquidTypes.Violet); + run.VioletQuantity = violet != null ? violet.Quantity : 0; + if (exception != null) { run.FailedMessage = exception.FlattenMessage(); diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml Binary files differindex 99fb198b2..a5b64e7d9 100644 --- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml +++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/OverrideData.xml |
