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);
+ }
}
}