diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs
index 8cf2dbe7..44ae9619 100644
--- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs
@@ -404,6 +404,13 @@ namespace ENI2
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(currentControl.Core);
}
+ if(message.MessageNotificationClass == Message.NotificationClass.STAT)
+ {
+ DetailBaseControl currentControl = this.detailView.Children[0] as DetailBaseControl;
+ currentControl.Core.IsSmallShip = ((STAT)message.Elements[0]).GrossTonnage < 500;
+ DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(currentControl.Core);
+ }
+
}
}
@@ -614,7 +621,11 @@ namespace ENI2
Message crewMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.CREW);
Message pasMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.PAS);
Message pobaMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.POBA);
-
+ Message secMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.SEC);
+ Message noanodMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.NOA_NOD);
+
+ #region CREW / PAS Count Plausibility
+
if (pobaMessage.Elements.Count == 1)
{
POBA poba = pobaMessage.Elements[0] as POBA;
@@ -632,11 +643,49 @@ namespace ENI2
mv.MessageGroupName = Properties.Resources.textOverview;
vViolations.Add(mv);
}
-
}
#endregion
+ #region Kiel Canal Timing Plausibility
+
+ if(!this.Core.IsTransit && (secMessage?.Elements.Count > 0) && (noanodMessage?.Elements.Count > 0))
+ {
+ SEC sec = secMessage.Elements[0] as SEC;
+ NOA_NOD noa_nod = noanodMessage.Elements[0] as NOA_NOD;
+
+ if (sec.KielCanalPassagePlanned ?? false)
+ {
+ // Überprüfung, ob die eingehende NOK-Durchfahrt auch wirklich innerhalb der eingehenden Reise liegt (bei VISIT)
+ bool isValidIncoming = (noa_nod.ETDFromLastPort < sec.KielCanalPassagePlannedIncomming) &&
+ (sec.KielCanalPassagePlannedIncomming < noa_nod.ETAToPortOfCall);
+ if (!sec.KielCanalPassagePlannedIncomming.HasValue) isValidIncoming = true;
+
+ if(!isValidIncoming)
+ {
+ MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "Kiel Canal incoming implausible (ETD / ETA ports)!", null, "Kiel Canal timing", null, "SEC");
+ mv.MessageGroupName = Properties.Resources.textOverview;
+ vViolations.Add(mv);
+ }
+
+
+ bool isValidOutgoing = (noa_nod.ETDFromPortOfCall < sec.KielCanalPassagePlannedOutgoing) &&
+ ((noa_nod.NextPort == "ZZUKN") || (sec.KielCanalPassagePlannedOutgoing < noa_nod.ETAToNextPort));
+ if (!sec.KielCanalPassagePlannedOutgoing.HasValue) isValidOutgoing = true;
+
+ if(!isValidOutgoing)
+ {
+ MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "Kiel Canal outgoing implausible (ETD / ETA ports)!", null, "Kiel Canal timing", null, "SEC");
+ mv.MessageGroupName = Properties.Resources.textOverview;
+ vViolations.Add(mv);
+ }
+ }
+ }
+
+ #endregion
+
+ #endregion
+
foreach (MessageError me in vErrors)
{
this.highlightService.HighlightError(me, this.GetContainerForMessageGroupName(me.MessageGroupName));
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
index 5ab50c05..b2a4e573 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
@@ -99,6 +99,8 @@
+
+
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs
index 5200fcb1..1f351473 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs
@@ -85,7 +85,7 @@ namespace ENI2.DetailViewControls
#endregion
- this.mdhGroupBox.DataContext = mdh;
+ this.mainFrame.DataContext = mdh;
this._mdh = mdh;
this.dataGridPortOfCallLast30Days.Initialize();
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml
index 2c30a5eb..24f82267 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml
@@ -105,7 +105,11 @@
-
+
+
+
+
+
@@ -153,6 +157,8 @@
+
+
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml.cs
index 97fb0678..f518efcf 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/SecurityDetailControl.xaml.cs
@@ -73,8 +73,8 @@ namespace ENI2.DetailViewControls
};
_secMessage.Elements.Add(sec);
}
-
- this.secGroupBox.DataContext = sec;
+
+ this.mainFrame.DataContext = sec;
this._sec = sec;
this.comboBoxCurrentShipSecurityLevel.ItemsSource = Util.GlobalStructures.ShipSecurityLevels;
diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj
index eb876703..e138a564 100644
--- a/ENI-2/ENI2/ENI2/ENI2.csproj
+++ b/ENI-2/ENI2/ENI2/ENI2.csproj
@@ -35,8 +35,8 @@
3.5.1.0
true
publish.html
- 0
- 5.1.0.%2a
+ 1
+ 5.1.1.%2a
false
true
true
diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx
index 47e2e7a6..07ed28ad 100644
Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ
diff --git a/nsw/Source/bsmd.database/POBA.cs b/nsw/Source/bsmd.database/POBA.cs
index b9821ed9..4ac9c95d 100644
--- a/nsw/Source/bsmd.database/POBA.cs
+++ b/nsw/Source/bsmd.database/POBA.cs
@@ -28,16 +28,19 @@ namespace bsmd.database
[LookupName("POBA.TotalPersonsOnBoardUponArrival")]
[ENI2Validation]
public int? TotalPersonsOnBoardUponArrival { get; set; }
+
[ShowReport]
[Validation(ValidationCode.INT_GT_ZERO)]
[LookupName("POBA.TotalCrewMembersOnBoardUponArrival")]
[ENI2Validation]
public int? TotalCrewMembersOnBoardUponArrival { get; set; }
+
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("POBA.TotalPassengersOnBoardUponArrival")]
[ENI2Validation]
public int? TotalPassengersOnBoardUponArrival { get; set; }
+
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("POBA.TotalStowawaysOnBoardUponArrival")]
@@ -77,7 +80,7 @@ namespace bsmd.database
}
else
{
- scmd.Parameters.AddWithValue(@"ID", this.Id);
+ scmd.Parameters.AddWithValue("@ID", this.Id);
scmd.CommandText = string.Format("UPDATE {0} SET TotalPersonsOnBoardUponArrival = @P2, " +
"TotalCrewMembersOnBoardUponArrival = @P3, TotalPassengersOnBoardUponArrival = @P4, " +
"TotalStowawaysOnBoardUponArrival = @P5 WHERE Id = @ID", this.Tablename);
@@ -133,7 +136,7 @@ namespace bsmd.database
public override void Validate(List errors, List violations)
{
if (((TotalCrewMembersOnBoardUponArrival ?? 0) + (TotalPassengersOnBoardUponArrival ?? 0) + (TotalStowawaysOnBoardUponArrival ?? 0)) != (TotalPersonsOnBoardUponArrival ?? 0))
- errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "TotalPersonsOnBoardUponArrival", null, this.Title, null));
+ violations.Add(RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "TotalPersonsOnBoardUponArrival", null, this.Title, null, this.Tablename));
}
#endregion
diff --git a/nsw/Source/bsmd.database/POBD.cs b/nsw/Source/bsmd.database/POBD.cs
index 4cb81c38..f485886f 100644
--- a/nsw/Source/bsmd.database/POBD.cs
+++ b/nsw/Source/bsmd.database/POBD.cs
@@ -28,16 +28,19 @@ namespace bsmd.database
[LookupName("POBD.TotalPersonsOnBoardUponDeparture")]
[ENI2Validation]
public int? TotalPersonsOnBoardUponDeparture { get; set; }
+
[ShowReport]
[Validation(ValidationCode.INT_GT_ZERO)]
[LookupName("POBD.TotalCrewMembersOnBoardUponDeparture")]
[ENI2Validation]
public int? TotalCrewMembersOnBoardUponDeparture { get; set; }
+
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("POBD.TotalPassengersOnBoardUponDeparture")]
[ENI2Validation]
public int? TotalPassengersOnBoardUponDeparture { get; set; }
+
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("POBD.TotalStowawaysOnBoardUponDeparture")]
@@ -77,7 +80,7 @@ namespace bsmd.database
}
else
{
- scmd.Parameters.AddWithValue(@"ID", this.Id);
+ scmd.Parameters.AddWithValue("@ID", this.Id);
scmd.CommandText = string.Format("UPDATE {0} SET TotalPersonsOnBoardUponDeparture = @P2, " +
"TotalCrewMembersOnBoardUponDeparture = @P3, TotalPassengersOnBoardUponDeparture = @P4, " +
"TotalStowawaysOnBoardUponDeparture = @P5 WHERE Id = @ID", this.Tablename);
@@ -131,7 +134,7 @@ namespace bsmd.database
public override void Validate(List errors, List violations)
{
if (((TotalCrewMembersOnBoardUponDeparture ?? 0) + (TotalPassengersOnBoardUponDeparture ?? 0) + (TotalStowawaysOnBoardUponDeparture ?? 0)) != (TotalPersonsOnBoardUponDeparture ?? 0))
- errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "TotalPersonsOnBoardUponDeparture", null, this.Title, null));
+ violations.Add(RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "TotalPersonsOnBoardUponDeparture", null, this.Title, null, this.Tablename));
}
#endregion
diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs
index 59d1dfc4..f4455e15 100644
--- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs
+++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs
@@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")]
-[assembly: AssemblyInformationalVersion("5.1.0")]
+[assembly: AssemblyInformationalVersion("5.1.2")]
[assembly: AssemblyCopyright("Copyright © 2014-2018 schick Informatik")]
[assembly: AssemblyTrademark("")]
\ No newline at end of file
diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs
index c53cc7c0..f7afc150 100644
--- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs
+++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("5.1.0.*")]
+[assembly: AssemblyVersion("5.1.2.*")]