diff --git a/ENI2/DetailBaseControl.cs b/ENI2/DetailBaseControl.cs
index 05f5c214..b1c00860 100644
--- a/ENI2/DetailBaseControl.cs
+++ b/ENI2/DetailBaseControl.cs
@@ -267,7 +267,7 @@ namespace ENI2
#region "BHV Spezial" Datetime Parsing..
protected void DateTimePicker_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
- {
+ {
if ((sender is DateTimePicker thePicker) && rdt.IsMatch(thePicker.Text))
{
try
@@ -280,7 +280,7 @@ namespace ENI2
int minute = Int32.Parse(timevalText.Substring(10, 2));
thePicker.Value = new DateTime(year, month, day, hour, minute, 0);
}
- catch (FormatException) { }
+ catch (Exception) { }
}
}
diff --git a/ENI2/DetailRootControl.xaml.cs b/ENI2/DetailRootControl.xaml.cs
index adee14f9..ef0d533e 100644
--- a/ENI2/DetailRootControl.xaml.cs
+++ b/ENI2/DetailRootControl.xaml.cs
@@ -690,7 +690,7 @@ namespace ENI2
vViolations.AddRange(violations);
}
- #region 12.11.18 / 6.3.21: globale Plausi-Prüfungen
+ #region 12.11.18 / 6.3.21 / 23.5.22: globale Plausi-Prüfungen
Message crewaMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.CREW);
Message crewdMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.CREWD);
Message pasaMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.PAS);
@@ -700,6 +700,7 @@ namespace ENI2
Message noanodMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.NOA_NOD);
Message mdhMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.MDH);
Message was_rcptMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.WAS_RCPT);
+ Message wasMessage = _messages.Find(message => message.MessageNotificationClass == Message.NotificationClass.WAS);
#region CREW / PAS Count Plausibility
@@ -1006,6 +1007,25 @@ namespace ENI2
#endregion
+ #region Waste disposal service provider for DEHAM
+
+ if ((!this.Core.DisplayId.IsNullOrEmpty() && this.Core.DisplayId.StartsWith("DEHAM")) ||
+ this.Core.PoC.Equals("DEHAM"))
+ {
+ if (wasMessage.Elements.Count > 0)
+ {
+ WAS was = wasMessage.Elements[0] as WAS;
+ if ((!was.WasteDisposalValidExemption ?? true) && (was.WasteDisposalServiceProvider.Count == 0))
+ {
+ MessageViolation mv = RuleEngine.CreateViolation(ValidationCode.NOT_NULL, "Check waste disposal service provider", null, "WAS service provider", null, "WAS");
+ mv.MessageGroupName = Properties.Resources.textOverview;
+ vViolations.Add(mv);
+ }
+ }
+ }
+
+ #endregion
+
#endregion
foreach (MessageError me in vErrors)
diff --git a/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs b/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs
index c2edf943..547076e3 100644
--- a/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs
@@ -165,18 +165,18 @@ namespace ENI2.DetailViewControls
private void copyBKR(object sender, RoutedEventArgs e)
{
- // aus dem aktuell selektierten IBC Element ein neues IBC Element machen und nach HAZD kopieren
-
- foreach (BRKA brka in this.dataGridBKRA.Items)
+ if (this.dataGridBKRA.SelectedItems != null)
{
- BRKD copyBRKD = new BRKD();
- copyBRKD.MessageHeader = this._brkdMessage;
- copyBRKD.CopyFromBKRA(brka);
- copyBRKD.Identifier = DatabaseEntity.GetNewIdentifier(this._brkdMessage.Elements);
- this._brkdMessage.Elements.Add(copyBRKD);
- this.SublistElementChanged(Message.NotificationClass.BKRD);
+ foreach (BRKA brka in this.dataGridBKRA.SelectedItems)
+ {
+ BRKD copyBRKD = new BRKD();
+ copyBRKD.MessageHeader = this._brkdMessage;
+ copyBRKD.CopyFromBKRA(brka);
+ copyBRKD.Identifier = DatabaseEntity.GetNewIdentifier(this._brkdMessage.Elements);
+ this._brkdMessage.Elements.Add(copyBRKD);
+ this.SublistElementChanged(Message.NotificationClass.BKRD);
+ }
}
-
}
#region BKRA grid events
diff --git a/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs b/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs
index a22d3a9d..06fb8685 100644
--- a/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs
@@ -22,9 +22,11 @@ namespace ENI2.DetailViewControls
public partial class DangerousGoodsDetailControl : DetailBaseControl
{
- private Message _hazMessage;
- private HAZ haz;
- private HAZ hazd; // referenz auf HAZD, falls das hier HAZA ist und wir Positionen kopieren wollen
+ private Message _hazaMessage;
+ private Message _hazdMessage;
+
+ private HAZ haza;
+ private HAZ hazd;
public DangerousGoodsDetailControl()
{
@@ -40,6 +42,9 @@ namespace ENI2.DetailViewControls
this.RegisterComboboxIndexChange(this.comboBoxVesselClass, this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
+ ///
+ /// Flag if this control is used for arrival or departure
+ ///
public bool IsDeparture { get; set; }
public override void Initialize()
@@ -48,76 +53,60 @@ namespace ENI2.DetailViewControls
foreach (Message aMessage in this.Messages)
{
- if (IsDeparture)
+
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD)
{
- if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD) { this._hazMessage = aMessage; this.ControlMessages.Add(aMessage); }
- }
- else
- {
- if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZA)
+ this._hazdMessage = aMessage;
+ this.ControlMessages.Add(aMessage);
+ if (aMessage.Elements.Count > 0)
+ this.hazd = aMessage.Elements[0] as HAZ;
+ if (this.hazd == null)
{
- this._hazMessage = aMessage;
- this.ControlMessages.Add(aMessage);
- }
- if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD)
- {
- if (aMessage != null)
- {
- if (aMessage.Elements.Count > 0)
- this.hazd = aMessage.Elements[0] as HAZ;
- if (this.hazd == null)
- {
- this.hazd = new HAZ();
- this.hazd.MessageCore = this.Core;
- this.hazd.MessageHeader = aMessage;
- this.hazd.IsDeparture = true;
- aMessage.Elements.Add(this.hazd);
- SublistElementChanged(Message.NotificationClass.HAZD);
- }
- this.ControlMessages.Add(aMessage);
- }
+ this.hazd = new HAZ();
+ this.hazd.MessageCore = this.Core;
+ this.hazd.MessageHeader = aMessage;
+ this.hazd.IsDeparture = true;
+ aMessage.Elements.Add(this.hazd);
+ SublistElementChanged(Message.NotificationClass.HAZD);
}
}
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZA)
+ {
+ this._hazaMessage = aMessage;
+ this.ControlMessages.Add(aMessage);
+ if (aMessage.Elements.Count > 0)
+ this.haza = aMessage.Elements[0] as HAZ;
+ if (this.haza == null)
+ {
+ this.haza = new HAZ();
+ this.haza.MessageCore = this.Core;
+ this.haza.MessageHeader = aMessage;
+ this.haza.IsDeparture = true;
+ aMessage.Elements.Add(this.haza);
+ SublistElementChanged(Message.NotificationClass.HAZA);
+ }
+ }
+
this.textBlockMessageClass.Text = IsDeparture ? "HAZD" : "HAZA";
}
- #region HAZ
-
- if (this._hazMessage == null)
- {
- this._hazMessage = this.Core.CreateMessage(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.Messages.Add(this._hazMessage);
- }
-
- HAZ haz = null;
- if (this._hazMessage.Elements.Count > 0)
- haz = this._hazMessage.Elements[0] as HAZ;
- if (haz == null)
- {
- haz = new HAZ();
- haz.MessageCore = this.Core;
- haz.MessageHeader = this._hazMessage;
- haz.IsDeparture = this.IsDeparture;
- _hazMessage.Elements.Add(haz);
- }
-
- this.haz = haz;
+ #region HAZ
this.comboBoxVesselClass.ItemsSource = GlobalStructures.vesselClasses;
- this.groupBoxHAZ.DataContext = haz;
+ this.groupBoxHAZ.DataContext = this.IsDeparture ? hazd : haza;
- this.dataGridIMDGItems.Initialize();
- this.dataGridIMDGItems.ItemsSource = this.haz.IMDGPositions;
+ this.dataGridIMDGItems.Initialize();
+ this.dataGridIMDGItems.ItemsSource = this.IsDeparture ? this.hazd.IMDGPositions : this.haza.IMDGPositions;
CollectionView myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIMDGItems.Items);
((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged;
this.dataGridIMDGItems.CreateRequested += DataGridIMDGItems_CreateRequested;
this.dataGridIMDGItems.AddingNewItem += DataGridIMDGItems_AddingNewItem;
this.dataGridIMDGItems.EditRequested += DataGridIMDGItems_EditRequested;
- this.dataGridIMDGItems.DeleteRequested += DataGridIMDGItems_DeleteRequested;
+ this.dataGridIMDGItems.DeleteRequested += DataGridIMDGItems_DeleteRequested;
this.dataGridIBCItems.Initialize();
- this.dataGridIBCItems.ItemsSource = this.haz.IBCPositions;
+ this.dataGridIBCItems.ItemsSource = this.IsDeparture ? this.hazd.IBCPositions : this.haza.IBCPositions;
myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIBCItems.Items);
((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged;
this.dataGridIBCItems.CreateRequested += DataGridIBCItems_CreateRequested;
@@ -126,7 +115,7 @@ namespace ENI2.DetailViewControls
this.dataGridIBCItems.DeleteRequested += DataGridIBCItems_DeleteRequested;
this.dataGridIGCItems.Initialize();
- this.dataGridIGCItems.ItemsSource = this.haz.IGCPositions;
+ this.dataGridIGCItems.ItemsSource = this.IsDeparture ? this.hazd.IGCPositions : this.haza.IGCPositions;
myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIGCItems.Items);
((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged;
this.dataGridIGCItems.CreateRequested += DataGridIGCItems_CreateRequested;
@@ -135,7 +124,7 @@ namespace ENI2.DetailViewControls
this.dataGridIGCItems.DeleteRequested += DataGridIGCItems_DeleteRequested;
this.dataGridIMSBCItems.Initialize();
- this.dataGridIMSBCItems.ItemsSource = this.haz.IMSBCPositions;
+ this.dataGridIMSBCItems.ItemsSource = this.IsDeparture ? this.hazd.IMSBCPositions : this.haza.IMSBCPositions;
myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIMSBCItems.Items);
((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged;
this.dataGridIMSBCItems.CreateRequested += DataGridIMSBCItems_CreateRequested;
@@ -144,7 +133,7 @@ namespace ENI2.DetailViewControls
this.dataGridIMSBCItems.DeleteRequested += DataGridIMSBCItems_DeleteRequested;
this.dataGridMARPOLItems.Initialize();
- this.dataGridMARPOLItems.ItemsSource = this.haz.MARPOLPositions;
+ this.dataGridMARPOLItems.ItemsSource = this.IsDeparture ? this.hazd.MARPOLPositions : this.haza.MARPOLPositions;
myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridMARPOLItems.Items);
((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged;
this.dataGridMARPOLItems.CreateRequested += DataGridMARPOLItems_CreateRequested;
@@ -156,51 +145,47 @@ namespace ENI2.DetailViewControls
#endregion
- if (!this.haz.IsDeparture)
- {
- #region Extra Menüpunkte um Positionen nach HAZD zu kopieren
+ #region Extra Menüpunkte um Positionen zwischen HAZA / HAZD zu kopieren
- this.dataGridIBCItems.ContextMenu.Items.Add(new Separator());
- MenuItem copyIBCItem = new MenuItem();
- copyIBCItem.Header = Properties.Resources.textCopyToHAZD;
- copyIBCItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
- copyIBCItem.Click += new RoutedEventHandler(this.copyIBC);
- this.dataGridIBCItems.ContextMenu.Items.Add(copyIBCItem);
+ this.dataGridIBCItems.ContextMenu.Items.Add(new Separator());
+ MenuItem copyIBCItem = new MenuItem();
+ copyIBCItem.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD");
+ copyIBCItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyIBCItem.Click += new RoutedEventHandler(this.copyIBC);
+ this.dataGridIBCItems.ContextMenu.Items.Add(copyIBCItem);
- this.dataGridIGCItems.ContextMenu.Items.Add(new Separator());
- MenuItem copyItemIGC = new MenuItem();
- copyItemIGC.Header = Properties.Resources.textCopyToHAZD;
- copyItemIGC.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
- copyItemIGC.Click += new RoutedEventHandler(this.copyIGC);
- this.dataGridIGCItems.ContextMenu.Items.Add(copyItemIGC);
+ this.dataGridIGCItems.ContextMenu.Items.Add(new Separator());
+ MenuItem copyItemIGC = new MenuItem();
+ copyItemIGC.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD");
+ copyItemIGC.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyItemIGC.Click += new RoutedEventHandler(this.copyIGC);
+ this.dataGridIGCItems.ContextMenu.Items.Add(copyItemIGC);
- this.dataGridIMDGItems.ContextMenu.Items.Add(new Separator());
- MenuItem copyItemIMDG = new MenuItem();
- copyItemIMDG.Header = Properties.Resources.textCopyToHAZD;
- copyItemIMDG.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
- copyItemIMDG.Click += new RoutedEventHandler(this.copyIMDG);
- this.dataGridIMDGItems.ContextMenu.Items.Add(copyItemIMDG);
+ this.dataGridIMDGItems.ContextMenu.Items.Add(new Separator());
+ MenuItem copyItemIMDG = new MenuItem();
+ copyItemIMDG.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD");
+ copyItemIMDG.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyItemIMDG.Click += new RoutedEventHandler(this.copyIMDG);
+ this.dataGridIMDGItems.ContextMenu.Items.Add(copyItemIMDG);
- this.dataGridIMSBCItems.ContextMenu.Items.Add(new Separator());
- MenuItem copyItemIMSBC = new MenuItem();
- copyItemIMSBC.Header = Properties.Resources.textCopyToHAZD;
- copyItemIMSBC.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
- copyItemIMSBC.Click += new RoutedEventHandler(this.copyIMSBC);
- this.dataGridIMSBCItems.ContextMenu.Items.Add(copyItemIMSBC);
+ this.dataGridIMSBCItems.ContextMenu.Items.Add(new Separator());
+ MenuItem copyItemIMSBC = new MenuItem();
+ copyItemIMSBC.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD");
+ copyItemIMSBC.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyItemIMSBC.Click += new RoutedEventHandler(this.copyIMSBC);
+ this.dataGridIMSBCItems.ContextMenu.Items.Add(copyItemIMSBC);
- this.dataGridMARPOLItems.ContextMenu.Items.Add(new Separator());
- MenuItem copyItemMARPOL = new MenuItem();
- copyItemMARPOL.Header = Properties.Resources.textCopyToHAZD;
- copyItemMARPOL.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
- copyItemMARPOL.Click += new RoutedEventHandler(this.copyMARPOL);
- this.dataGridMARPOLItems.ContextMenu.Items.Add(copyItemMARPOL);
+ this.dataGridMARPOLItems.ContextMenu.Items.Add(new Separator());
+ MenuItem copyItemMARPOL = new MenuItem();
+ copyItemMARPOL.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD");
+ copyItemMARPOL.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyItemMARPOL.Click += new RoutedEventHandler(this.copyMARPOL);
+ this.dataGridMARPOLItems.ContextMenu.Items.Add(copyItemMARPOL);
- #endregion
-
- }
+ #endregion
this._initialized = true;
- }
+ }
#region SetEnabled
@@ -226,17 +211,18 @@ namespace ENI2.DetailViewControls
// aus dem aktuell selektierten MARPOL Element ein neues MARPOL Element machen und nach HAZD kopieren
if (this.dataGridMARPOLItems.SelectedItems != null)
{
+ HAZ target_haz = this.IsDeparture ? this.haza : this.hazd;
foreach (MARPOL_Annex_I_Position selectedMARPOL in this.dataGridMARPOLItems.SelectedItems)
{
MARPOL_Annex_I_Position copyMARPOL = new MARPOL_Annex_I_Position();
- copyMARPOL.MessageHeader = this.hazd.MessageHeader;
- copyMARPOL.HAZ = this.hazd;
+ copyMARPOL.MessageHeader = target_haz.MessageHeader;
+ copyMARPOL.HAZ = target_haz;
copyMARPOL.CopyFromMARPOL(selectedMARPOL);
- copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.MARPOLPositions, "MARPOL-");
- this.hazd.MARPOLPositions.Add(copyMARPOL);
- this.SublistElementChanged(Message.NotificationClass.HAZD);
+ copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.MARPOLPositions, "MARPOL-");
+ target_haz.MARPOLPositions.Add(copyMARPOL);
+ this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
- this.SetHAZGlobalFlags(this.hazd);
+ this.SetHAZGlobalFlags();
}
}
}
@@ -246,17 +232,18 @@ namespace ENI2.DetailViewControls
// aus dem aktuell selektierten IMBSC Element ein neues IMBSC Element machen und nach HAZD kopieren
if (this.dataGridIMSBCItems.SelectedItems != null)
{
+ HAZ target_haz = this.IsDeparture ? this.haza : this.hazd;
foreach (IMSBCPosition selectedIMSBC in this.dataGridIMSBCItems.SelectedItems)
{
IMSBCPosition copyIMSBC = new IMSBCPosition();
- copyIMSBC.MessageHeader = this.hazd.MessageHeader;
- copyIMSBC.HAZ = this.hazd;
+ copyIMSBC.MessageHeader = target_haz.MessageHeader;
+ copyIMSBC.HAZ = target_haz;
copyIMSBC.CopyFromIMSBC(selectedIMSBC);
- copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IMSBCPositions, "IMSBC-");
- this.hazd.IMSBCPositions.Add(copyIMSBC);
- this.SublistElementChanged(Message.NotificationClass.HAZD);
+ copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMSBCPositions, "IMSBC-");
+ target_haz.IMSBCPositions.Add(copyIMSBC);
+ this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
- this.SetHAZGlobalFlags(this.hazd);
+ this.SetHAZGlobalFlags();
}
}
}
@@ -266,17 +253,18 @@ namespace ENI2.DetailViewControls
// aus dem aktuell selektierten IMDG Element ein neues IMDG Element machen und nach HAZD kopieren
if (this.dataGridIMDGItems.SelectedItems != null)
{
+ HAZ target_haz = this.IsDeparture ? this.haza : this.hazd;
foreach (IMDGPosition selectedIMDG in this.dataGridIMDGItems.SelectedItems)
{
IMDGPosition copyIMDG = new IMDGPosition();
- copyIMDG.MessageHeader = this.hazd.MessageHeader;
- copyIMDG.HAZ = this.hazd;
+ copyIMDG.MessageHeader = target_haz.MessageHeader;
+ copyIMDG.HAZ = target_haz;
copyIMDG.CopyFromIMDG(selectedIMDG);
- copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IMDGPositions, "IMDG-");
- this.hazd.IMDGPositions.Add(copyIMDG);
- this.SublistElementChanged(Message.NotificationClass.HAZD);
+ copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMDGPositions, "IMDG-");
+ target_haz.IMDGPositions.Add(copyIMDG);
+ this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
- this.SetHAZGlobalFlags(this.hazd);
+ this.SetHAZGlobalFlags();
}
}
}
@@ -286,17 +274,18 @@ namespace ENI2.DetailViewControls
// aus dem aktuell selektierten IGC Element ein neues IGC Element machen und nach HAZD kopieren
if (this.dataGridIGCItems.SelectedItems != null)
{
+ HAZ target_haz = this.IsDeparture ? this.haza : this.hazd;
foreach (IGCPosition selectedIGC in this.dataGridIGCItems.SelectedItems)
{
IGCPosition copyIGC = new IGCPosition();
- copyIGC.MessageHeader = this.hazd.MessageHeader;
- copyIGC.HAZ = this.hazd;
+ copyIGC.MessageHeader = target_haz.MessageHeader;
+ copyIGC.HAZ = target_haz;
copyIGC.CopyFromIGC(selectedIGC);
- copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IGCPositions, "IGC-");
- this.hazd.IGCPositions.Add(copyIGC);
- this.SublistElementChanged(Message.NotificationClass.HAZD);
+ copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IGCPositions, "IGC-");
+ target_haz.IGCPositions.Add(copyIGC);
+ this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
- this.SetHAZGlobalFlags(this.hazd);
+ this.SetHAZGlobalFlags();
}
}
}
@@ -306,19 +295,20 @@ namespace ENI2.DetailViewControls
// aus dem aktuell selektierten IBC Element ein neues IBC Element machen und nach HAZD kopieren
if (this.dataGridIBCItems.SelectedItems != null)
{
+ HAZ target_haz = this.IsDeparture ? this.haza : this.hazd;
foreach (IBCPosition selectedIBC in this.dataGridIBCItems.SelectedItems)
{
if (selectedIBC != null)
{
IBCPosition copyIBC = new IBCPosition();
- copyIBC.MessageHeader = this.hazd.MessageHeader;
- copyIBC.HAZ = this.hazd;
+ copyIBC.MessageHeader = target_haz.MessageHeader;
+ copyIBC.HAZ = target_haz;
copyIBC.CopyFromIBC(selectedIBC);
- copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IBCPositions, "IBC-");
- this.hazd.IBCPositions.Add(copyIBC);
- this.SublistElementChanged(Message.NotificationClass.HAZD);
+ copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IBCPositions, "IBC-");
+ target_haz.IBCPositions.Add(copyIBC);
+ this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
- this.SetHAZGlobalFlags(this.hazd);
+ this.SetHAZGlobalFlags();
}
}
}
@@ -329,22 +319,22 @@ namespace ENI2.DetailViewControls
///
/// Beim Hinzufügen der allerersten Gefahrgutposition sollen die Flags vorbelegt werden
///
- void SetHAZGlobalFlags(HAZ theHAZ)
+ void SetHAZGlobalFlags()
{
- int totalCount = theHAZ.MARPOLPositions.Count + theHAZ.IMDGPositions.Count + theHAZ.IGCPositions.Count + theHAZ.IBCPositions.Count + theHAZ.IMSBCPositions.Count;
+ HAZ haz = this.IsDeparture ? this.hazd : this.haza;
+ int totalCount = haz.MARPOLPositions.Count + haz.IMDGPositions.Count + haz.IGCPositions.Count + haz.IBCPositions.Count + haz.IMSBCPositions.Count;
if(totalCount == 1)
{
- if (theHAZ == this.haz)
+ if (!this.IsDeparture)
{
if (!(this.checkBoxDangerousGoodsOnBoard.IsChecked ?? false)) this.checkBoxDangerousGoodsOnBoard.IsChecked = true;
- // if (!(this.checkBoxDGManifestOnBoard.IsChecked ?? false)) this.checkBoxDGManifestOnBoard.IsChecked = true;
if (this.checkBoxMoUBaltic.IsChecked ?? true) this.checkBoxMoUBaltic.IsChecked = false;
}
else
{
- theHAZ.NoDPGOnBoardOnArrival = false;
+ haz.NoDPGOnBoardOnArrival = false;
// theHAZ.DPGManifestOnBoardOnArrival = true;
- theHAZ.MOUBaltic = false;
+ haz.MOUBaltic = false;
}
}
}
@@ -353,12 +343,12 @@ namespace ENI2.DetailViewControls
private void DataGridMARPOLItems_DeleteRequested(DatabaseEntity obj)
{
- MARPOL_Annex_I_Position marpol = obj as MARPOL_Annex_I_Position;
- if (marpol != null)
+ HAZ haz = this.IsDeparture ? hazd : haza;
+ if (obj is MARPOL_Annex_I_Position marpol)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(marpol);
- this.haz.MARPOLPositions.Remove(marpol);
+ haz.MARPOLPositions.Remove(marpol);
DatabaseEntity.ResetIdentifiers(new List(haz.MARPOLPositions));
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridMARPOLItems.Items.Refresh();
@@ -369,6 +359,7 @@ namespace ENI2.DetailViewControls
{
EditMarpolDialog eld = new EditMarpolDialog();
eld.MARPOL = obj as MARPOL_Annex_I_Position;
+ HAZ haz = this.IsDeparture ? hazd : haza;
eld.AddClicked += () =>
{
@@ -378,9 +369,9 @@ namespace ENI2.DetailViewControls
this.dataGridMARPOLItems.Items.Refresh();
eld.MARPOL = new MARPOL_Annex_I_Position();
eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions, "MARPOL-");
- eld.MARPOL.HAZ = this.haz;
+ eld.MARPOL.HAZ = haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
};
if (eld.ShowDialog() ?? false)
@@ -388,7 +379,7 @@ namespace ENI2.DetailViewControls
if (!haz.MARPOLPositions.Contains(eld.MARPOL))
haz.MARPOLPositions.Add(eld.MARPOL);
this.dataGridMARPOLItems.Items.Refresh();
- this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
+ this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
@@ -400,10 +391,11 @@ namespace ENI2.DetailViewControls
private void DataGridMARPOLItems_CreateRequested()
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditMarpolDialog ebd = new EditMarpolDialog();
ebd.MARPOL = new MARPOL_Annex_I_Position();
- ebd.MARPOL.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.MARPOLPositions, "MARPOL-");
- ebd.MARPOL.HAZ = this.haz;
+ ebd.MARPOL.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions, "MARPOL-");
+ ebd.MARPOL.HAZ = haz;
ebd.AddClicked += () =>
{
@@ -412,10 +404,10 @@ namespace ENI2.DetailViewControls
haz.MARPOLPositions.Add(ebd.MARPOL);
this.dataGridMARPOLItems.Items.Refresh();
ebd.MARPOL = new MARPOL_Annex_I_Position();
- ebd.MARPOL.HAZ = this.haz;
- ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.MARPOLPositions, "MARPOL-");
+ ebd.MARPOL.HAZ = haz;
+ ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions, "MARPOL-");
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
};
if (ebd.ShowDialog() ?? false)
@@ -424,7 +416,7 @@ namespace ENI2.DetailViewControls
haz.MARPOLPositions.Add(ebd.MARPOL);
this.dataGridMARPOLItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
}
}
@@ -434,12 +426,12 @@ namespace ENI2.DetailViewControls
private void DataGridIMSBCItems_DeleteRequested(DatabaseEntity obj)
{
- IMSBCPosition imsbc = obj as IMSBCPosition;
- if (imsbc != null)
+ HAZ haz = this.IsDeparture ? hazd : haza;
+ if (obj is IMSBCPosition imsbc)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imsbc);
- this.haz.IMSBCPositions.Remove(imsbc);
+ haz.IMSBCPositions.Remove(imsbc);
DatabaseEntity.ResetIdentifiers(new List(haz.IMSBCPositions));
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIMSBCItems.Items.Refresh();
@@ -448,6 +440,7 @@ namespace ENI2.DetailViewControls
private void DataGridIMSBCItems_EditRequested(DatabaseEntity obj)
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIMSBCDialog eld = new EditIMSBCDialog();
eld.IMSBC = obj as IMSBCPosition;
@@ -458,10 +451,10 @@ namespace ENI2.DetailViewControls
haz.IMSBCPositions.Add(eld.IMSBC);
this.dataGridIMSBCItems.Items.Refresh();
eld.IMSBC = new IMSBCPosition();
- eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions, "IMSBC-");
- eld.IMSBC.HAZ = this.haz;
+ eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMSBCPositions, "IMSBC-");
+ eld.IMSBC.HAZ = haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
};
if (eld.ShowDialog() ?? false)
@@ -480,22 +473,23 @@ namespace ENI2.DetailViewControls
private void DataGridIMSBCItems_CreateRequested()
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIMSBCDialog ebd = new EditIMSBCDialog();
ebd.IMSBC = new IMSBCPosition();
- ebd.IMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions, "IMSBC-");
- ebd.IMSBC.HAZ = this.haz;
+ ebd.IMSBC.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMSBCPositions, "IMSBC-");
+ ebd.IMSBC.HAZ = haz;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
if (!haz.IMSBCPositions.Contains(ebd.IMSBC))
- this.haz.IMSBCPositions.Add(ebd.IMSBC);
+ haz.IMSBCPositions.Add(ebd.IMSBC);
this.dataGridIMSBCItems.Items.Refresh();
ebd.IMSBC = new IMSBCPosition();
- ebd.IMSBC.HAZ = this.haz;
- ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions, "IMSBC-");
+ ebd.IMSBC.HAZ = haz;
+ ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMSBCPositions, "IMSBC-");
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
};
if (ebd.ShowDialog() ?? false)
@@ -504,7 +498,7 @@ namespace ENI2.DetailViewControls
haz.IMSBCPositions.Add(ebd.IMSBC);
this.dataGridIMSBCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
}
}
@@ -514,12 +508,12 @@ namespace ENI2.DetailViewControls
private void DataGridIGCItems_DeleteRequested(DatabaseEntity obj)
{
- IGCPosition igc = obj as IGCPosition;
- if (igc != null)
+ HAZ haz = this.IsDeparture ? hazd : haza;
+ if (obj is IGCPosition igc)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(igc);
- this.haz.IGCPositions.Remove(igc);
+ haz.IGCPositions.Remove(igc);
DatabaseEntity.ResetIdentifiers(new List(haz.IGCPositions));
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIGCItems.Items.Refresh();
@@ -528,6 +522,7 @@ namespace ENI2.DetailViewControls
private void DataGridIGCItems_EditRequested(DatabaseEntity obj)
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIGCDialog eld = new EditIGCDialog();
eld.IGC = obj as IGCPosition;
@@ -538,10 +533,10 @@ namespace ENI2.DetailViewControls
haz.IGCPositions.Add(eld.IGC);
this.dataGridIGCItems.Items.Refresh();
eld.IGC = new IGCPosition();
- eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions, "IGC-");
- eld.IGC.HAZ = this.haz;
+ eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IGCPositions, "IGC-");
+ eld.IGC.HAZ = haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
};
if (eld.ShowDialog() ?? false)
@@ -560,30 +555,31 @@ namespace ENI2.DetailViewControls
private void DataGridIGCItems_CreateRequested()
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIGCDialog ebd = new EditIGCDialog();
- ebd.IGC = new IGCPosition();
- ebd.IGC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions, "IGC-");
- ebd.IGC.HAZ = this.haz;
+ ebd.IGC = new IGCPosition();
+ ebd.IGC.Identifier = DatabaseEntity.GetNewIdentifier(haz.IGCPositions, "IGC-");
+ ebd.IGC.HAZ = haz;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
- if(!this.haz.IGCPositions.Contains(ebd.IGC))
- this.haz.IGCPositions.Add(ebd.IGC);
+ if(!haz.IGCPositions.Contains(ebd.IGC))
+ haz.IGCPositions.Add(ebd.IGC);
this.dataGridIGCItems.Items.Refresh();
ebd.IGC = new IGCPosition();
- ebd.IGC.HAZ = this.haz;
- ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions, "IGC-");
+ ebd.IGC.HAZ = haz;
+ ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IGCPositions, "IGC-");
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
- if(!this.haz.IGCPositions.Contains(ebd.IGC))
+ if(!haz.IGCPositions.Contains(ebd.IGC))
haz.IGCPositions.Add(ebd.IGC);
this.dataGridIGCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
}
}
@@ -593,12 +589,12 @@ namespace ENI2.DetailViewControls
private void DataGridIBCItems_DeleteRequested(DatabaseEntity obj)
{
- IBCPosition ibc = obj as IBCPosition;
- if (ibc != null)
+ HAZ haz = this.IsDeparture ? hazd : haza;
+ if (obj is IBCPosition ibc)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ibc);
- this.haz.IBCPositions.Remove(ibc);
+ haz.IBCPositions.Remove(ibc);
DatabaseEntity.ResetIdentifiers(new List(haz.IBCPositions));
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIBCItems.Items.Refresh();
@@ -607,6 +603,7 @@ namespace ENI2.DetailViewControls
private void DataGridIBCItems_EditRequested(DatabaseEntity obj)
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIBCDialog eld = new EditIBCDialog();
eld.IBC = obj as IBCPosition;
@@ -617,10 +614,10 @@ namespace ENI2.DetailViewControls
haz.IBCPositions.Add(eld.IBC);
this.dataGridIBCItems.Items.Refresh();
eld.IBC = new IBCPosition();
- eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions, "IBC-");
- eld.IBC.HAZ = this.haz;
+ eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IBCPositions, "IBC-");
+ eld.IBC.HAZ = haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
};
if (eld.ShowDialog() ?? false)
@@ -639,30 +636,31 @@ namespace ENI2.DetailViewControls
private void DataGridIBCItems_CreateRequested()
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIBCDialog ebd = new EditIBCDialog();
ebd.IBC = new IBCPosition();
- ebd.IBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions, "IBC-");
- ebd.IBC.HAZ = this.haz;
+ ebd.IBC.Identifier = DatabaseEntity.GetNewIdentifier(haz.IBCPositions, "IBC-");
+ ebd.IBC.HAZ = haz;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
- if(!this.haz.IBCPositions.Contains(ebd.IBC))
- this.haz.IBCPositions.Add(ebd.IBC);
+ if(!haz.IBCPositions.Contains(ebd.IBC))
+ haz.IBCPositions.Add(ebd.IBC);
this.dataGridIBCItems.Items.Refresh();
ebd.IBC = new IBCPosition();
- ebd.IBC.HAZ = this.haz;
- ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions, "IBC-");
+ ebd.IBC.HAZ = haz;
+ ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IBCPositions, "IBC-");
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
- if(!this.haz.IBCPositions.Contains(ebd.IBC))
+ if(!haz.IBCPositions.Contains(ebd.IBC))
haz.IBCPositions.Add(ebd.IBC);
this.dataGridIBCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
}
}
@@ -672,12 +670,12 @@ namespace ENI2.DetailViewControls
private void DataGridIMDGItems_DeleteRequested(DatabaseEntity obj)
{
- IMDGPosition imdg = obj as IMDGPosition;
- if (imdg != null)
+ HAZ haz = this.IsDeparture ? hazd : haza;
+ if (obj is IMDGPosition imdg)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imdg);
- this.haz.IMDGPositions.Remove(imdg);
+ haz.IMDGPositions.Remove(imdg);
DatabaseEntity.ResetIdentifiers(new List(haz.IMDGPositions));
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIMDGItems.Items.Refresh();
@@ -686,6 +684,7 @@ namespace ENI2.DetailViewControls
private void DataGridIMDGItems_EditRequested(DatabaseEntity obj)
{
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIMDGDialog eld = new EditIMDGDialog();
eld.IMDG = obj as IMDGPosition;
@@ -696,8 +695,8 @@ namespace ENI2.DetailViewControls
haz.IMDGPositions.Add(eld.IMDG);
this.dataGridIMDGItems.Items.Refresh();
eld.IMDG = new IMDGPosition();
- eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions, "IMDG-");
- eld.IMDG.HAZ = this.haz;
+ eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMDGPositions, "IMDG-");
+ eld.IMDG.HAZ = haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
@@ -707,7 +706,7 @@ namespace ENI2.DetailViewControls
haz.IMDGPositions.Add(eld.IMDG);
this.dataGridIMDGItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
}
}
@@ -717,21 +716,22 @@ namespace ENI2.DetailViewControls
}
private void DataGridIMDGItems_CreateRequested()
- {
+ {
+ HAZ haz = this.IsDeparture ? hazd : haza;
EditIMDGDialog ebd = new EditIMDGDialog();
ebd.IMDG = new IMDGPosition();
- ebd.IMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions, "IMDG-");
- ebd.IMDG.HAZ = this.haz;
+ ebd.IMDG.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMDGPositions, "IMDG-");
+ ebd.IMDG.HAZ = haz;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
- if(!this.haz.IMDGPositions.Contains(ebd.IMDG))
- this.haz.IMDGPositions.Add(ebd.IMDG);
+ if(!haz.IMDGPositions.Contains(ebd.IMDG))
+ haz.IMDGPositions.Add(ebd.IMDG);
this.dataGridIMDGItems.Items.Refresh();
ebd.IMDG = new IMDGPosition();
- ebd.IMDG.HAZ = this.haz;
- ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions, "IMDG-");
+ ebd.IMDG.HAZ = haz;
+ ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMDGPositions, "IMDG-");
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
@@ -741,7 +741,7 @@ namespace ENI2.DetailViewControls
haz.IMDGPositions.Add(ebd.IMDG);
this.dataGridIMDGItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
- this.SetHAZGlobalFlags(this.haz);
+ this.SetHAZGlobalFlags();
}
}
@@ -751,19 +751,23 @@ namespace ENI2.DetailViewControls
public override void HighlightErrorMessageContainer()
{
- if (this._hazMessage.HasErrors)
+ Message hazMessage = this.IsDeparture ? _hazdMessage : _hazaMessage;
+ if (hazMessage.HasErrors)
{
- HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.ERROR, this._hazMessage);
+ HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.ERROR, hazMessage);
}
}
public override void HighlightViolationMessageContainer()
{
- if (this._hazMessage.HasViolations)
- HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.VIOLATION, this._hazMessage);
+ Message hazMessage = this.IsDeparture ? _hazdMessage : _hazaMessage;
+ if (hazMessage.HasViolations)
+ HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.VIOLATION, hazMessage);
}
- #endregion
+ #endregion
+
+ #region handle tab header info
private void DangerousGoodsDetailControl_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
@@ -772,31 +776,34 @@ namespace ENI2.DetailViewControls
private void RefreshTabHeaders()
{
- if (this.haz.IMDGPositions.Count > 0)
- this.tabIMDGItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMDGItems, this.haz.IMDGPositions.Count);
+ HAZ haz = this.IsDeparture ? hazd : haza;
+ if (haz.IMDGPositions.Count > 0)
+ this.tabIMDGItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMDGItems, haz.IMDGPositions.Count);
else
this.tabIMDGItems.Header = Properties.Resources.textIMDGItems;
- if (this.haz.IBCPositions.Count > 0)
- this.tabIBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIBCItems, this.haz.IBCPositions.Count);
+ if (haz.IBCPositions.Count > 0)
+ this.tabIBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIBCItems, haz.IBCPositions.Count);
else
this.tabIBCItems.Header = Properties.Resources.textIBCItems;
- if (this.haz.IGCPositions.Count > 0)
- this.tabIGCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIGCItems, this.haz.IGCPositions.Count);
+ if (haz.IGCPositions.Count > 0)
+ this.tabIGCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIGCItems, haz.IGCPositions.Count);
else
this.tabIGCItems.Header = Properties.Resources.textIGCItems;
- if (this.haz.IMSBCPositions.Count > 0)
- this.tabIMSBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMSBCItems, this.haz.IMSBCPositions.Count);
+ if (haz.IMSBCPositions.Count > 0)
+ this.tabIMSBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMSBCItems, haz.IMSBCPositions.Count);
else
this.tabIMSBCItems.Header = Properties.Resources.textIMSBCItems;
- if (this.haz.MARPOLPositions.Count > 0)
- this.tabMarpolItems.Header = string.Format("{0} ({1})", Properties.Resources.textMARPOLItems, this.haz.MARPOLPositions.Count);
+ if (haz.MARPOLPositions.Count > 0)
+ this.tabMarpolItems.Header = string.Format("{0} ({1})", Properties.Resources.textMARPOLItems, haz.MARPOLPositions.Count);
else
this.tabMarpolItems.Header = Properties.Resources.textMARPOLItems;
}
+ #endregion
+
}
}
diff --git a/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs b/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs
index 31e81650..b639df90 100644
--- a/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/DepartureNotificationDetailControl.xaml.cs
@@ -9,6 +9,7 @@ using bsmd.database;
using ENI2.EditControls;
using ENI2.Util;
using System.Windows.Controls;
+using System.Windows.Media.Imaging;
namespace ENI2.DetailViewControls
{
@@ -22,6 +23,7 @@ namespace ENI2.DetailViewControls
private Message _tiefdMessage;
private Message _pobdMessage;
private Message _bkrdMessage;
+ private Message _brkaMessage;
bool startupComplete = false;
public DepartureNotificationDetailControl()
@@ -51,6 +53,7 @@ namespace ENI2.DetailViewControls
if (aMessage.MessageNotificationClass == Message.NotificationClass.TIEFD) { this._tiefdMessage = aMessage; this.ControlMessages.Add(aMessage); }
if (aMessage.MessageNotificationClass == Message.NotificationClass.POBD) { this._pobdMessage = aMessage; this.ControlMessages.Add(aMessage); }
if (aMessage.MessageNotificationClass == Message.NotificationClass.BKRD) { this._bkrdMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.BKRA) { this._brkaMessage = aMessage; this.ControlMessages.Add(aMessage); }
}
#region ATD
@@ -147,6 +150,15 @@ namespace ENI2.DetailViewControls
this.dataGridBKRD.DeleteRequested += DataGridBKRD_DeleteRequested;
this.dataGridBKRD.CreateRequested += DataGridBKRD_CreateRequested;
+ // Extra Menüpunkt um alle Bunker Positionen nach BKRA zu kopieren
+
+ this.dataGridBKRD.ContextMenu.Items.Add(new Separator());
+ MenuItem copyBKRItem = new MenuItem();
+ copyBKRItem.Header = string.Format(Properties.Resources.textCopyTo, "BKRA");
+ copyBKRItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyBKRItem.Click += this.copyBKR;
+ this.dataGridBKRD.ContextMenu.Items.Add(copyBKRItem);
+
#endregion
}
@@ -184,7 +196,7 @@ namespace ENI2.DetailViewControls
}
private void DataGridBKRD_DeleteRequested(DatabaseEntity obj)
- {
+ {
if (obj is BRKD brkd)
{
// are you sure dialog is in base class
@@ -228,6 +240,22 @@ namespace ENI2.DetailViewControls
this.DataGridBKRD_CreateRequested();
}
+ private void copyBKR(object sender, RoutedEventArgs e)
+ {
+ if (this.dataGridBKRD.SelectedItems != null)
+ {
+ foreach (BRKD brkd in this.dataGridBKRD.SelectedItems)
+ {
+ BRKA copyBRKA = new BRKA();
+ copyBRKA.MessageHeader = this._brkaMessage;
+ copyBRKA.CopyFromBKRD(brkd);
+ copyBRKA.Identifier = DatabaseEntity.GetNewIdentifier(this._brkaMessage.Elements);
+ this._brkaMessage.Elements.Add(copyBRKA);
+ this.SublistElementChanged(Message.NotificationClass.BKRA);
+ }
+ }
+ }
+
#endregion
#region Highlighting
diff --git a/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml b/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
index 4057015d..0aca1249 100644
--- a/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
+++ b/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
@@ -7,6 +7,7 @@
xmlns:local="clr-namespace:ENI2.DetailViewControls"
xmlns:enictrl="clr-namespace:ENI2.Controls"
xmlns:p="clr-namespace:ENI2.Properties"
+ xmlns:util="clr-namespace:ENI2.Util"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="1024">
@@ -14,80 +15,80 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -105,26 +106,26 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI2/DetailViewControls/OverViewDetailControl.xaml b/ENI2/DetailViewControls/OverViewDetailControl.xaml
index eb097996..bb384509 100644
--- a/ENI2/DetailViewControls/OverViewDetailControl.xaml
+++ b/ENI2/DetailViewControls/OverViewDetailControl.xaml
@@ -11,7 +11,7 @@
xmlns:local="clr-namespace:ENI2.DetailViewControls"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="800">
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI2/DetailViewControls/PSC72hDetailControl.xaml b/ENI2/DetailViewControls/PSC72hDetailControl.xaml
index 309cca1c..04a35a22 100644
--- a/ENI2/DetailViewControls/PSC72hDetailControl.xaml
+++ b/ENI2/DetailViewControls/PSC72hDetailControl.xaml
@@ -13,48 +13,48 @@
d:DesignHeight="800" d:DesignWidth="1024">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
diff --git a/ENI2/DetailViewControls/PortCallDetailControl.xaml b/ENI2/DetailViewControls/PortCallDetailControl.xaml
index cead6e4e..12abc521 100644
--- a/ENI2/DetailViewControls/PortCallDetailControl.xaml
+++ b/ENI2/DetailViewControls/PortCallDetailControl.xaml
@@ -98,16 +98,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI2/DetailViewControls/PortNotificationDetailControl.xaml b/ENI2/DetailViewControls/PortNotificationDetailControl.xaml
index bde35ae3..f0fbd580 100644
--- a/ENI2/DetailViewControls/PortNotificationDetailControl.xaml
+++ b/ENI2/DetailViewControls/PortNotificationDetailControl.xaml
@@ -23,92 +23,92 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/ENI2/DetailViewControls/SecurityDetailControl.xaml b/ENI2/DetailViewControls/SecurityDetailControl.xaml
index 77fb860b..8a339466 100644
--- a/ENI2/DetailViewControls/SecurityDetailControl.xaml
+++ b/ENI2/DetailViewControls/SecurityDetailControl.xaml
@@ -15,74 +15,74 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -90,12 +90,12 @@
-
-
-
-
+
+
+
+
-
+
@@ -112,25 +112,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -144,9 +144,9 @@
-
-
-
+
+
+
@@ -162,18 +162,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI2/DetailViewControls/ShipDataDetailControl.xaml b/ENI2/DetailViewControls/ShipDataDetailControl.xaml
index dc6db395..38af2e76 100644
--- a/ENI2/DetailViewControls/ShipDataDetailControl.xaml
+++ b/ENI2/DetailViewControls/ShipDataDetailControl.xaml
@@ -5,6 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:enictrl="clr-namespace:ENI2.Controls"
+ xmlns:util="clr-namespace:ENI2.Util"
xmlns:p="clr-namespace:ENI2.Properties"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:local="clr-namespace:ENI2.DetailViewControls"
@@ -12,63 +13,63 @@
d:DesignHeight="600" d:DesignWidth="800">
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
@@ -93,12 +94,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/ENI2/DetailViewControls/TowageDetailControl.xaml.cs b/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
index 5cb74cbd..6bfae9f9 100644
--- a/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
+++ b/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
@@ -35,10 +35,18 @@ namespace ENI2.DetailViewControls
{
this.dataGridTowageOnArrival.ContextMenu.Items.Add(new Separator());
MenuItem copyItem = new MenuItem();
- copyItem.Header = Properties.Resources.textCopyTOWATOWD;
+ copyItem.Header = string.Format(Properties.Resources.textCopyTo, "TOWD");
copyItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
copyItem.Click += new RoutedEventHandler(this.copyItem);
this.dataGridTowageOnArrival.ContextMenu.Items.Add(copyItem);
+
+ this.dataGridTowageOnDeparture.ContextMenu.Items.Add(new Separator());
+ copyItem = new MenuItem();
+ copyItem.Header = string.Format(Properties.Resources.textCopyTo, "TOWA");
+ copyItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
+ copyItem.Click += new RoutedEventHandler(this.copyItemToTOWA);
+ this.dataGridTowageOnDeparture.ContextMenu.Items.Add(copyItem);
+
_ctxInitialized = true;
}
}
@@ -61,6 +69,24 @@ namespace ENI2.DetailViewControls
}
}
+ private void copyItemToTOWA(object sender, RoutedEventArgs e)
+ {
+ // aus dem aktuell selektierten TOWA Element ein neues TOWD Element machen
+ if (this.dataGridTowageOnDeparture.SelectedItems != null)
+ {
+ foreach (TOWD selectedTOWD in this.dataGridTowageOnDeparture.SelectedItems)
+ {
+ TOWA copyTOWA = new TOWA();
+ copyTOWA.MessageHeader = _towdMessage;
+ copyTOWA.CopyFromTOWD(selectedTOWD);
+ copyTOWA.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
+ this._towaMessage.Elements.Add(copyTOWA);
+ this.dataGridTowageOnArrival.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.TOWA);
+ }
+ }
+ }
+
public override void Initialize()
{
base.Initialize();
diff --git a/ENI2/DetailViewControls/WasteDetailControl.xaml b/ENI2/DetailViewControls/WasteDetailControl.xaml
index bd8cbb7a..6e1b9950 100644
--- a/ENI2/DetailViewControls/WasteDetailControl.xaml
+++ b/ENI2/DetailViewControls/WasteDetailControl.xaml
@@ -53,7 +53,7 @@
-
+
diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj
index bd2694e5..7456d833 100644
--- a/ENI2/ENI2.csproj
+++ b/ENI2/ENI2.csproj
@@ -36,8 +36,8 @@
5.4.0.0
true
publish.html
- 3
- 7.1.0.3
+ 2
+ 7.2.0.2
false
true
true
@@ -428,6 +428,7 @@
+
@@ -948,7 +949,21 @@
- "C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool" sign /f $(ProjectDir)\..\misc\codesigning.pfx /p t5bj2dk9ifdIWBPhPra4U $(TargetPath)
+
+ $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot10', null, RegistryView.Registry32, RegistryView.Default))
+ $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot81', null, RegistryView.Registry32, RegistryView.Default))
+ $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots', 'KitsRoot', null, RegistryView.Registry32, RegistryView.Default))
+ $(WindowsKitsRoot)bin\x64\
+ $(WindowsKitsRoot)bin\$(Platform)\
+ $([System.IO.Directory]::GetDirectories('$(WindowsKitsRoot)bin',"10.0.*"))
+ $(SignToolPathBin.Split(';').Length)
+ $([MSBuild]::Add(-1, $(SignToolPathLen)))
+ $(SignToolPathBin.Split(';').GetValue($(SignToolPathIndex)))\
+ $(SignToolPathBase)x64\
+ $(SignToolPathBase)$(Platform)\
+
+
+ "$(SignToolPath)signtool.exe" sign /f $(ProjectDir)\..\misc\codesigning.pfx /p t5bj2dk9ifdIWBPhPra4U $(TargetPath)
diff --git a/ENI2/EditControls/SelectImportClassesDialog.xaml b/ENI2/EditControls/SelectImportClassesDialog.xaml
index e49a4a0a..19885b45 100644
--- a/ENI2/EditControls/SelectImportClassesDialog.xaml
+++ b/ENI2/EditControls/SelectImportClassesDialog.xaml
@@ -11,11 +11,11 @@
Title="{x:Static p:Resources.textSelectImportClasses}" Height="600" Width="250" Background="AliceBlue">
-
+
-
+
@@ -23,6 +23,6 @@
-
+
diff --git a/ENI2/Excel/DakosyUtil.cs b/ENI2/Excel/DakosyUtil.cs
index bb3c68cd..c4e84226 100644
--- a/ENI2/Excel/DakosyUtil.cs
+++ b/ENI2/Excel/DakosyUtil.cs
@@ -36,7 +36,21 @@ namespace ENI2.Excel
readMessage = "Id not matching in import sheet";
return false;
}
- }
+ }
+
+ string imo = reader.ReadCellAsText("ship", "C10");
+ if(!imo.IsNullOrEmpty() && !imo.Equals(messageCore.IMO))
+ {
+ readMessage = "IMO not matching in import sheet";
+ return false;
+ }
+
+ string eni = reader.ReadCellAsText("ship", "C11");
+ if (!eni.IsNullOrEmpty() && !eni.Equals(messageCore.IMO))
+ {
+ readMessage = "ENI not matching in import sheet";
+ return false;
+ }
// load messages if already present
List messages = DBManager.Instance.GetMessagesForCore(messageCore, DBManager.MessageLoad.ALL);
@@ -635,7 +649,8 @@ namespace ENI2.Excel
pre72h.PlannedOperations = reader.ReadTextFromDropdown("port state control", "C14");
pre72h.PlannedWorks = reader.ReadCellAsText("port state control", "C15");
pre72h.DateOfLastExpandedInspection = reader.ReadCellAsDateTime("port state control", "C16");
- pre72h.PlannedPeriodOfStay_HUR = reader.ReadCellAsDecimal("port state control", "C17");
+ pre72h.PlannedPeriodOfStay_HUR = reader.ReadCellAsDecimal("port state control", "C17");
+ if (pre72h.PlannedWorks.IsNullOrEmpty()) pre72h.PlannedWorks = "n";
return true;
}
@@ -1052,7 +1067,8 @@ namespace ENI2.Excel
}
ladg.CargoHandlingType = ladgOperation;
ladg.CargoLACode = (int?) reader.ReadCellAsDecimal("cargo", string.Format("C{0}", i + 9));
- ladg.CargoCodeNST = reader.ReadCellAsText("cargo", string.Format("D{0}", i + 9))?.Substring(0, 2);
+ ladg.CargoCodeNST = reader.ReadCellAsText("cargo", string.Format("D{0}", i + 9));
+ if(ladg.CargoCodeNST?.Length > 2) ladg.CargoCodeNST = ladg.CargoCodeNST.Substring(0, 2);
ladg.CargoCodeNST_3 = reader.ReadCellAsText("cargo", string.Format("E{0}", i + 9));
ladg.CargoNumberOfItems = (int?)reader.ReadCellAsDecimal("cargo", string.Format("F{0}", i + 9));
ladg.CargoGrossQuantity_TNE = reader.ReadCellAsDecimal("cargo", string.Format("G{0}", i + 9));
diff --git a/ENI2/Excel/ExcelReader.cs b/ENI2/Excel/ExcelReader.cs
index ef59ed1e..bd21b971 100644
--- a/ENI2/Excel/ExcelReader.cs
+++ b/ENI2/Excel/ExcelReader.cs
@@ -90,13 +90,14 @@ namespace ENI2.Excel
return new string(val.Where(c => !Char.IsWhiteSpace(c)).ToArray());
}
- internal string ReadLoCode(string lookup)
+ internal string ReadLoCode(string lookup, bool justPorts = true)
{
string val = this.ReadText(lookup);
if (!val.IsNullOrEmpty())
{
- val = val.ToUpper();
+ val = val.ToUpper();
string portName = LocodeDB.PortNameFromLocode(val);
+ if (!justPorts) portName = LocodeDB.NameFromLocode(val);
if (portName.IsNullOrEmpty())
{
_log.WarnFormat("unknown Locode {0}", val);
@@ -121,7 +122,7 @@ namespace ENI2.Excel
{
_log.ErrorFormat("Cargo LA code parse error for {0}", lookup);
return null;
- }
+ }
}
internal byte? ReadGender(string lookup)
diff --git a/ENI2/Excel/ExcelUtil.cs b/ENI2/Excel/ExcelUtil.cs
index b91baaeb..7c6be159 100644
--- a/ENI2/Excel/ExcelUtil.cs
+++ b/ENI2/Excel/ExcelUtil.cs
@@ -33,7 +33,21 @@ namespace ENI2.Excel
readMessage = "Id not matching in import sheet";
return false;
}
-
+
+ string imoeni = reader.ReadText("Visit.IMONumber")?.Trim();
+
+ if (!aMessageCore.IMO.IsNullOrEmpty() && !aMessageCore.IMO.Equals(imoeni))
+ {
+ readMessage = "IMO not matching in import sheet";
+ return false;
+ }
+
+ if (!aMessageCore.ENI.IsNullOrEmpty() && !aMessageCore.ENI.Equals(imoeni))
+ {
+ readMessage = "ENI not matching in import sheet";
+ return false;
+ }
+
// load messages if already present
List messages = DBManager.Instance.GetMessagesForCore(messageCore, DBManager.MessageLoad.ALL);
@@ -964,7 +978,7 @@ namespace ENI2.Excel
}
}
- stat.PortOfRegistry = reader.ReadLoCode("STAT.PortOfRegistry");
+ stat.PortOfRegistry = reader.ReadLoCode("STAT.PortOfRegistry", false);
if (stat.PortOfRegistry.Length == 5)
stat.Flag = stat.PortOfRegistry.Substring(0, 2);
stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
@@ -1794,6 +1808,8 @@ namespace ENI2.Excel
towa.TowageOnArrivalFlag = reader.ReadNationality(tFlag);
towa.TowageOnArrivalPurposeOfCall = reader.ReadText(tPoC);
towa.TowageOnArrivalDraught_DMT = reader.ReadNumber(tDraft);
+ if (towa.TowageOnArrivalDraught_DMT.HasValue)
+ towa.TowageOnArrivalDraught_DMT *= 10;
towa.TowageOnArrivalGrossTonnage = (int?) reader.ReadNumber(tGT);
towa.TowageOnArrivalLengthOverall_MTR = reader.ReadNumber(tLen);
towa.TowageOnArrivalBeam_MTR = reader.ReadNumber(tBeam);
@@ -1850,6 +1866,8 @@ namespace ENI2.Excel
towd.TowageOnDepartureName = towageName;
towd.TowageOnDepartureFlag = reader.ReadNationality(tFlag);
towd.TowageOnDepartureDraught_DMT = reader.ReadNumber(tDraft);
+ if (towd.TowageOnDepartureDraught_DMT.HasValue)
+ towd.TowageOnDepartureDraught_DMT *= 10;
towd.TowageOnDepartureLengthOverall_MTR = reader.ReadNumber(tLen);
towd.TowageOnDepartureBeam_MTR = reader.ReadNumber(tBeam);
towd.TowageOnDepartureOperatorCompanyName = reader.ReadText(tOp);
@@ -1863,7 +1881,7 @@ namespace ENI2.Excel
#region PRE72H
private static bool ScanPRE72H(Message pre72hMessage, ExcelReader reader)
- {
+ {
if (pre72hMessage.Elements.Count == 0)
{
PRE72H newPRE72H = new PRE72H();
@@ -1875,7 +1893,8 @@ namespace ENI2.Excel
// diese Nachricht bleibt auch wenn sie leer ist
pre72h.ConditionCargoBallastTanks = reader.ReadConditionTanks("PRE72H.ConditionCargoBallastTanks");
pre72h.TankerHullConfiguration = reader.ReadHullConfiguration("PRE72H.TankerHullConfiguration");
- pre72h.PlannedWorks = reader.ReadText("PRE72H.PlannedWorks");
+ pre72h.PlannedWorks = reader.ReadText("PRE72H.PlannedWorks");
+ if (pre72h.PlannedWorks.IsNullOrEmpty()) pre72h.PlannedWorks = "n";
return true;
}
diff --git a/ENI2/Properties/Resources.Designer.cs b/ENI2/Properties/Resources.Designer.cs
index 7ffff5ae..d7b6c951 100644
--- a/ENI2/Properties/Resources.Designer.cs
+++ b/ENI2/Properties/Resources.Designer.cs
@@ -1534,6 +1534,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Copy to {0}.
+ ///
+ public static string textCopyTo {
+ get {
+ return ResourceManager.GetString("textCopyTo", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Copy to BKRD.
///
diff --git a/ENI2/Properties/Resources.resx b/ENI2/Properties/Resources.resx
index 4e788777..214be32e 100644
--- a/ENI2/Properties/Resources.resx
+++ b/ENI2/Properties/Resources.resx
@@ -1837,4 +1837,7 @@
..\Resources\logo_eni.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ Copy to {0}
+
\ No newline at end of file
diff --git a/ENI2/Util/TrimStringConverter.cs b/ENI2/Util/TrimStringConverter.cs
new file mode 100644
index 00000000..dfca4cca
--- /dev/null
+++ b/ENI2/Util/TrimStringConverter.cs
@@ -0,0 +1,41 @@
+// Copyright (c) 2017-present schick Informatik
+// Description: Converter to create trimmed entries for plaintext input text fields
+//
+
+using System;
+using System.Globalization;
+using System.Windows.Data;
+using System.Windows.Markup;
+
+using bsmd.database;
+
+namespace ENI2.Util
+{
+ [ValueConversion(typeof(string), typeof(string))]
+ public class TrimStringConverter : MarkupExtension, IValueConverter
+ {
+ private TrimStringConverter _converter;
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (!((string)value).IsNullOrEmpty())
+ {
+ return ((string)value).Trim();
+ }
+ return string.Empty;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return value;
+ }
+
+ public override object ProvideValue(IServiceProvider serviceProvider)
+ {
+ if (_converter == null)
+ {
+ _converter = new TrimStringConverter();
+ }
+ return _converter;
+ }
+ }
+}
diff --git a/bsmd.ExcelReadService/LocodeDB.cs b/bsmd.ExcelReadService/LocodeDB.cs
index c8f40e7a..cf6ac2e6 100644
--- a/bsmd.ExcelReadService/LocodeDB.cs
+++ b/bsmd.ExcelReadService/LocodeDB.cs
@@ -146,6 +146,38 @@ namespace ENI2.Locode
return result;
}
+ ///
+ /// Get Name from LOCODE (any! type of locode, not just ports)
+ ///
+ public static string NameFromLocode(string locode)
+ {
+ if (locode.IsNullOrEmpty()) return null;
+ if (locode.Length != 5) return null;
+
+ string result = null;
+ try
+ {
+ string locodeUpper = locode.ToUpper();
+ string query = string.Format("SELECT locodes.name_wo_diacritics FROM locodes JOIN countries ON locodes.country_id = countries.ID WHERE locodes.city_code = '{0}' AND countries.code = '{1}'",
+ locodeUpper.Substring(2), locodeUpper.Substring(0, 2));
+ SQLiteCommand cmd = new SQLiteCommand(query, _con);
+ IDataReader reader = cmd.ExecuteReader();
+ while (reader.Read())
+ {
+ if (!reader.IsDBNull(0))
+ result = reader.GetString(0);
+ break;
+ }
+ reader.Close();
+ cmd.Dispose();
+ }
+ catch (Exception ex)
+ {
+ _log.WarnFormat("Error on locode lookup: {0}", ex.Message);
+ }
+ return result;
+ }
+
///
/// Get Portname from LOCODE
///
diff --git a/bsmd.database/BKRA.cs b/bsmd.database/BKRA.cs
index b638d07a..60a00365 100644
--- a/bsmd.database/BKRA.cs
+++ b/bsmd.database/BKRA.cs
@@ -130,5 +130,16 @@ namespace bsmd.database
#endregion
+ #region public funcs
+
+ public void CopyFromBKRD(BRKD brkd)
+ {
+ if (brkd == null) return;
+ this.BunkerFuelType = brkd.BunkerFuelType;
+ this.BunkerFuelQuantity_TNE = brkd.BunkerFuelQuantity_TNE;
+ }
+
+ #endregion
+
}
}
\ No newline at end of file
diff --git a/bsmd.database/BRKD.cs b/bsmd.database/BRKD.cs
index 4f62cc2a..a81d9941 100644
--- a/bsmd.database/BRKD.cs
+++ b/bsmd.database/BRKD.cs
@@ -126,6 +126,10 @@ namespace bsmd.database
}
}
+ #endregion
+
+ #region public funcs
+
public void CopyFromBKRA(BRKA brka)
{
if (brka == null) return;
diff --git a/bsmd.database/Properties/AssemblyProductInfo.cs b/bsmd.database/Properties/AssemblyProductInfo.cs
index 6960ac23..35318206 100644
--- a/bsmd.database/Properties/AssemblyProductInfo.cs
+++ b/bsmd.database/Properties/AssemblyProductInfo.cs
@@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")]
-[assembly: AssemblyInformationalVersion("7.1.0")]
+[assembly: AssemblyInformationalVersion("7.2.0")]
[assembly: AssemblyCopyright("Copyright © 2014-2022 schick Informatik")]
[assembly: AssemblyTrademark("")]
\ No newline at end of file
diff --git a/bsmd.database/Properties/AssemblyProjectInfo.cs b/bsmd.database/Properties/AssemblyProjectInfo.cs
index 24ff1bf8..8111450c 100644
--- a/bsmd.database/Properties/AssemblyProjectInfo.cs
+++ b/bsmd.database/Properties/AssemblyProjectInfo.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("7.1.0.*")]
+[assembly: AssemblyVersion("7.2.0.*")]
diff --git a/bsmd.database/SEC.cs b/bsmd.database/SEC.cs
index 8df48653..d4dc1641 100644
--- a/bsmd.database/SEC.cs
+++ b/bsmd.database/SEC.cs
@@ -409,6 +409,9 @@ namespace bsmd.database
if ((this.LastTenPortFacilitesCalled.Count == 0) || (this.LastTenPortFacilitesCalled.Count > 10))
errors.Add(RuleEngine.CreateError(ValidationCode.IMPLAUSIBLE, "LastTenPortFacilitiesCalled", null, this.Title, null, this.Tablename));
+ if (this.CurrentShipSecurityLevel > 1)
+ violations.Add(RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "Please check ship security level", null, this.Title, null, this.Tablename));
+
if (!(this.ApprovedSecurityPlanOnBoard ?? false))
violations.Add(RuleEngine.CreateViolation(ValidationCode.IMPLAUSIBLE, "No valid security plan on board?", null, this.Title, null, this.Tablename));
diff --git a/bsmd.database/TOWA.cs b/bsmd.database/TOWA.cs
index c8d52d79..d80ce5c7 100644
--- a/bsmd.database/TOWA.cs
+++ b/bsmd.database/TOWA.cs
@@ -233,6 +233,31 @@ namespace bsmd.database
#endregion
+ #region public methods
+
+ public void CopyFromTOWD(TOWD copyTOWD)
+ {
+ if (copyTOWD != null)
+ {
+ this.TowageOnArrivalBeam_MTR = copyTOWD.TowageOnDepartureBeam_MTR;
+ this.TowageOnArrivalDraught_DMT = copyTOWD.TowageOnDepartureDraught_DMT;
+ this.TowageOnArrivalFlag = copyTOWD.TowageOnDepartureFlag;
+ this.TowageOnArrivalLengthOverall_MTR = copyTOWD.TowageOnDepartureLengthOverall_MTR;
+ this.TowageOnArrivalName = copyTOWD.TowageOnDepartureName;
+ this.TowageOnArrivalOperatorCity = copyTOWD.TowageOnDepartureOperatorCity;
+ this.TowageOnArrivalOperatorCompanyName = copyTOWD.TowageOnDepartureOperatorCompanyName;
+ this.TowageOnArrivalOperatorCountry = copyTOWD.TowageOnDepartureOperatorCountry;
+ this.TowageOnArrivalOperatorEmail = copyTOWD.TowageOnDepartureOperatorEmail;
+ this.TowageOnArrivalOperatorFax = copyTOWD.TowageOnDepartureOperatorFax;
+ this.TowageOnArrivalOperatorPhone = copyTOWD.TowageOnDepartureOperatorPhone;
+ this.TowageOnArrivalOperatorPostalCode = copyTOWD.TowageOnDepartureOperatorPostalCode;
+ this.TowageOnArrivalOperatorStreetNameAndNumber = copyTOWD.TowageOnDepartureOperatorStreetNameAndNumber;
+ this.TowageOnArrivalRemarks = copyTOWD.TowageOnDepartureRemarks;
+ }
+ }
+
+ #endregion
+
}
}