diff --git a/TBF/BenchControl/Elde/FlowMeter/FlowMeter.cs b/TBF/BenchControl/Elde/FlowMeter/FlowMeter.cs index cd70ef326..246463a99 100644 --- a/TBF/BenchControl/Elde/FlowMeter/FlowMeter.cs +++ b/TBF/BenchControl/Elde/FlowMeter/FlowMeter.cs @@ -67,9 +67,13 @@ namespace TBF.BenchControl.Elde.FlowMeter /// public void Initialize() { - if (flowMeterCfg.CalibValidDate != DateTime.MinValue && flowMeterCfg.CalibValidDate.Date < DateTime.Now.Date) + for (int r = 0; r <= 5; r++) { - throw new Exception(string.Format("{0}: {1}", Name, Strings.Calibration_certificate_validity_expired)); + if (RangeEnabled(r) && flowMeterCfg.GetCalibValidDate(r) != DateTime.MinValue + && flowMeterCfg.GetCalibValidDate(r).Date < DateTime.Now.Date) + { + throw new Exception(string.Format("{0}/r{1}: {2}", Name, r, Strings.Calibration_certificate_validity_expired)); + } } log.FatalFormat("Successfully initialized device {0}", Name); diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 61d39a723..fe76ab415 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.26.1586.0")] -[assembly: AssemblyFileVersion("2.26.1586.0")] +[assembly: AssemblyVersion("2.26.1588.0")] +[assembly: AssemblyFileVersion("2.26.1588.0")] diff --git a/TBF/UI/Bench/Metrology/IMetrologyDlgTab.cs b/TBF/UI/Bench/Metrology/IMetrologyDlgTab.cs index 8bf65af15..c39d8ea69 100644 --- a/TBF/UI/Bench/Metrology/IMetrologyDlgTab.cs +++ b/TBF/UI/Bench/Metrology/IMetrologyDlgTab.cs @@ -2,6 +2,7 @@ /// Copyright (c) 2013-2015 Sensus Slovensko a.s. /// using System.Collections.Generic; +using NHibernate; using Config.Entities; namespace TBF.UI.Bench.Metrology @@ -14,6 +15,8 @@ namespace TBF.UI.Bench.Metrology /// Component MeterEntity { get; set; } + void SaveEntityToDB(ISession session); + /// /// A list of 'measurement-correction' pairs to be deleted from the database on OK. /// diff --git a/TBF/UI/Bench/Metrology/MetrologyDlg.cs b/TBF/UI/Bench/Metrology/MetrologyDlg.cs index 6c33eccb4..b45921aca 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlg.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlg.cs @@ -110,15 +110,26 @@ namespace TBF.UI.Bench.Metrology { BenchControl.Elde.FlowMeter.FlowMeterCfg flowMeterCfg = factory.CmpntCfgFromCmpntEntity(cmpnt) as BenchControl.Elde.FlowMeter.FlowMeterCfg; + for (int r = 0; r <= 5; r++) { if (flowMeterCfg.RangeEnabled(r)) { + bool isLastFlowMeterRange = true; + for (int nxt = r + 1; nxt <= 5; nxt++) + { + if (flowMeterCfg.RangeEnabled(nxt)) + { + isLastFlowMeterRange = false; + break; + } + } + flowMetersCount++; TabPage tabPage = new TabPage(string.Format(((r == 0) ? " {0} " : " {0} r{1} "), cmpnt.Name, r)); - MetrologyDlgFlowMeterTab uiControl = new MetrologyDlgFlowMeterTab(r); + MetrologyDlgFlowMeterTab uiControl = new MetrologyDlgFlowMeterTab(r, isLastFlowMeterRange); uiControl.MeterEntity = cmpnt; - uiControl.CalibInfoCfg = factory.CmpntCfgFromCmpntEntity(cmpnt) as BenchControl.GenericDevices.ICalibRangesCfg; + uiControl.CalibInfoCfg = flowMeterCfg; uiControl.Dock = DockStyle.Fill; tabPage.Tag = uiControl; tabPage.Controls.Add(uiControl); @@ -236,7 +247,7 @@ namespace TBF.UI.Bench.Metrology if (tab != null) { tab.OkBtnClicked(); - session.SaveOrUpdate(tab.MeterEntity); + tab.SaveEntityToDB(session); foreach (var entity in tab.ToBeRemoved) session.Delete(entity); } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgBalanceTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgBalanceTab.cs index e733369d7..b525d343a 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgBalanceTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgBalanceTab.cs @@ -395,5 +395,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgBuoyancyTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgBuoyancyTab.cs index 0e932cf73..841d57306 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgBuoyancyTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgBuoyancyTab.cs @@ -127,5 +127,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgDensityTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgDensityTab.cs index 1e50d839d..e5818faed 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgDensityTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgDensityTab.cs @@ -182,5 +182,10 @@ namespace TBF.UI.Bench.Metrology densityCorrTextBox.Text = Config.Formulas.DensityCorrection(density, temp).ToString(); } } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs index 0dc7ab4e3..1da8e564f 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgDiverterTab.cs @@ -345,5 +345,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs index b3b5025c1..4250b996b 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgEvaporationTab.cs @@ -345,5 +345,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs index e6eae57fb..44d4f22ea 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgFlowMeterTab.cs @@ -48,12 +48,13 @@ namespace TBF.UI.Bench.Metrology Control measurementTextBox; Control correctionTextBox; Control errorTextBox; - int rangeIx; /// 0 (no range) or 1..5 (range #) + readonly int rangeIx; /// 0 (no range) or 1..5 (range #) + readonly bool isLastFlowMeterRange; /// true when this is the last range of this flow meter. + /// This is to prevent double saving of the meter entity to a DB + public MetrologyDlgFlowMeterTab() : this(0, true) {} - public MetrologyDlgFlowMeterTab() : this(0) {} - - public MetrologyDlgFlowMeterTab(int rangeIx1) + public MetrologyDlgFlowMeterTab(int rangeIx1, bool isLastFlowMeterRange) { InitializeComponent(); calibDateTimePicker.CustomFormat = Constants.DateFormat; @@ -61,6 +62,7 @@ namespace TBF.UI.Bench.Metrology calibExpirationDateTimePicker.CustomFormat = Constants.DateFormat; calibExpirationDateTimePicker.MinDate = Constants.MinDate; this.rangeIx = rangeIx1; + this.isLastFlowMeterRange = isLastFlowMeterRange; toBeRemoved = new List(); unlocked = false; } @@ -279,9 +281,6 @@ namespace TBF.UI.Bench.Metrology CalibInfoCfg.SetCalibCertificate(rangeIx, calibCertificateNrTextBox.Text); CalibInfoCfg.SetCalibDate(rangeIx, calibDateTimePicker.Value.Date); CalibInfoCfg.SetCalibValidDate(rangeIx, calibExpirationDateTimePicker.Value.Date); - - Component modified = CalibInfoCfg.CreateDbEntity(); - MeterEntity.Parameters = modified.Parameters; } catch { @@ -393,5 +392,15 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + if (isLastFlowMeterRange) + { + Component modified = CalibInfoCfg.CreateDbEntity(); + MeterEntity.Parameters = modified.Parameters; + session.SaveOrUpdate(MeterEntity); + } + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs index 3eedec348..11d426038 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgLevelMeterTab.cs @@ -345,5 +345,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgPlatinumResistanceTMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgPlatinumResistanceTMeterTab.cs index 3d7e3d336..df9abdf06 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgPlatinumResistanceTMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgPlatinumResistanceTMeterTab.cs @@ -231,5 +231,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs index 0036a7fed..9547fd8d9 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgPressMeterTab.cs @@ -372,5 +372,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } } diff --git a/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs b/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs index bbb0dac36..7da79f027 100644 --- a/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs +++ b/TBF/UI/Bench/Metrology/MetrologyDlgTempMeterTab.cs @@ -372,5 +372,10 @@ namespace TBF.UI.Bench.Metrology public void UpdateRelatedItems(Dictionary renameInfo) { } + + public void SaveEntityToDB(NHibernate.ISession session) + { + session.SaveOrUpdate(MeterEntity); + } } }