diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml
index ab9a0322..83a736d1 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml
@@ -5,9 +5,61 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ENI2.DetailViewControls"
+ xmlns:p="clr-namespace:ENI2.Properties"
+ xmlns:enictrl="clr-namespace:ENI2.Controls"
+ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
mc:Ignorable="d"
- d:DesignHeight="300" d:DesignWidth="300">
+ d:DesignHeight="800" d:DesignWidth="1024">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
index 92e24827..d6f2dc90 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/TowageDetailControl.xaml.cs
@@ -2,20 +2,10 @@
// Description:
//
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
+
+using bsmd.database;
+using ENI2.EditControls;
namespace ENI2.DetailViewControls
{
@@ -24,9 +14,207 @@ namespace ENI2.DetailViewControls
///
public partial class TowageDetailControl : DetailBaseControl
{
+
+ private Message _towaMessage;
+ private Message _towdMessage;
+
public TowageDetailControl()
{
InitializeComponent();
+ this.Loaded += TowageDetailControl_Loaded;
+ }
+
+ private void TowageDetailControl_Loaded(object sender, RoutedEventArgs e)
+ {
+
+ }
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ foreach (Message aMessage in this.Messages)
+ {
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.TOWA) { this._towaMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.TOWD) { this._towdMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ }
+
+ #region TOWA
+
+ if (this._towaMessage == null)
+ {
+ this._towaMessage = this.Core.CreateMessage(Message.NotificationClass.TOWA);
+ this.Messages.Add(this._towaMessage);
+ }
+
+ this.dataGridTowageOnArrival.Initialize();
+ this.dataGridTowageOnArrival.ItemsSource = this._towaMessage.Elements;
+ this.dataGridTowageOnArrival.AddingNewItem += DataGridTowageOnArrival_AddingNewItem;
+ this.dataGridTowageOnArrival.EditRequested += DataGridTowageOnArrival_EditRequested;
+ this.dataGridTowageOnArrival.DeleteRequested += DataGridTowageOnArrival_DeleteRequested;
+ this.dataGridTowageOnArrival.CreateRequested += DataGridTowageOnArrival_CreateRequested;
+
+ #endregion
+
+ #region TOWD
+
+ if (this._towdMessage == null)
+ {
+ this._towdMessage = this.Core.CreateMessage(Message.NotificationClass.TOWD);
+ this.Messages.Add(this._towdMessage);
+ }
+
+ this.dataGridTowageOnDeparture.Initialize();
+ this.dataGridTowageOnDeparture.ItemsSource = this._towdMessage.Elements;
+ this.dataGridTowageOnDeparture.AddingNewItem += DataGridTowageOnDeparture_AddingNewItem;
+ this.dataGridTowageOnDeparture.EditRequested += DataGridTowageOnDeparture_EditRequested;
+ this.dataGridTowageOnDeparture.DeleteRequested += DataGridTowageOnDeparture_DeleteRequested;
+ this.dataGridTowageOnDeparture.CreateRequested += DataGridTowageOnDeparture_CreateRequested;
+
+ #endregion
+
+ }
+
+ private void DataGridTowageOnDeparture_CreateRequested()
+ {
+ TOWD towd = new TOWD();
+ EditTOWDialog ebd = new EditTOWDialog();
+ ebd.TOWD = towd;
+ ebd.IsDeparture = true;
+
+ ebd.AddClicked += () =>
+ {
+ ebd.CopyValuesToEntity();
+ this._towdMessage.Elements.Add(ebd.TOWD);
+ ebd.TOWD.MessageHeader = _towdMessage;
+ this.dataGridTowageOnDeparture.Items.Refresh();
+ ebd.TOWD = new TOWD();
+ this.SublistElementChanged(Message.NotificationClass.TOWD);
+ };
+
+ if (ebd.ShowDialog() ?? false)
+ {
+ towd.MessageHeader = _towdMessage;
+ _towdMessage.Elements.Add(towd);
+ this.dataGridTowageOnDeparture.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.TOWD);
+ }
+ }
+
+ private void DataGridTowageOnDeparture_DeleteRequested(DatabaseEntity obj)
+ {
+ TOWD towd = obj as TOWD;
+ if (towd != null)
+ {
+ // are you sure dialog is in base class
+ this._towdMessage.Elements.Remove(towd);
+ DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(towd);
+ this.dataGridTowageOnDeparture.Items.Refresh();
+ }
+ }
+
+ private void DataGridTowageOnDeparture_EditRequested(DatabaseEntity obj)
+ {
+ TOWD towd = obj as TOWD;
+ if (towd != null)
+ {
+ EditTOWDialog eld = new EditTOWDialog();
+ eld.IsDeparture = true;
+ eld.TOWD = towd;
+
+ eld.AddClicked += () =>
+ {
+ eld.CopyValuesToEntity();
+ _towdMessage.Elements.Add(eld.TOWD);
+ this.dataGridTowageOnDeparture.Items.Refresh();
+ eld.TOWD = new TOWD();
+ eld.TOWD.MessageHeader = _towdMessage;
+ this.SublistElementChanged(Message.NotificationClass.TOWD);
+ };
+
+ if (eld.ShowDialog() ?? false)
+ {
+ this.dataGridTowageOnDeparture.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.TOWD);
+ }
+ }
+ }
+
+ private void DataGridTowageOnDeparture_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
+ {
+ this.DataGridTowageOnDeparture_CreateRequested();
+ }
+
+
+
+ private void DataGridTowageOnArrival_CreateRequested()
+ {
+ TOWA towa = new TOWA();
+ EditTOWDialog ebd = new EditTOWDialog();
+ ebd.TOWA = towa;
+ ebd.IsDeparture = false;
+
+ ebd.AddClicked += () =>
+ {
+ ebd.CopyValuesToEntity();
+ this._towaMessage.Elements.Add(ebd.TOWA);
+ ebd.TOWA.MessageHeader = _towaMessage;
+ this.dataGridTowageOnArrival.Items.Refresh();
+ ebd.TOWA = new TOWA();
+ this.SublistElementChanged(Message.NotificationClass.TOWA);
+ };
+
+ if (ebd.ShowDialog() ?? false)
+ {
+ towa.MessageHeader = _towaMessage;
+ _towaMessage.Elements.Add(towa);
+ this.dataGridTowageOnArrival.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.TOWA);
+ }
+ }
+
+ private void DataGridTowageOnArrival_DeleteRequested(DatabaseEntity obj)
+ {
+ TOWA towa = obj as TOWA;
+ if (towa != null)
+ {
+ // are you sure dialog is in base class
+ this._towaMessage.Elements.Remove(towa);
+ DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(towa);
+ this.dataGridTowageOnArrival.Items.Refresh();
+ }
+ }
+
+ private void DataGridTowageOnArrival_EditRequested(DatabaseEntity obj)
+ {
+ TOWA towa = obj as TOWA;
+ if (towa != null)
+ {
+ EditTOWDialog eld = new EditTOWDialog();
+ eld.IsDeparture = false;
+ eld.TOWA = towa;
+
+ eld.AddClicked += () =>
+ {
+ eld.CopyValuesToEntity();
+ _towaMessage.Elements.Add(eld.TOWA);
+ this.dataGridTowageOnArrival.Items.Refresh();
+ eld.TOWA = new TOWA();
+ eld.TOWA.MessageHeader = _towaMessage;
+ this.SublistElementChanged(Message.NotificationClass.TOWA);
+ };
+
+ if (eld.ShowDialog() ?? false)
+ {
+ this.dataGridTowageOnArrival.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.TOWA);
+ }
+ }
+ }
+
+ private void DataGridTowageOnArrival_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
+ {
+ this.DataGridTowageOnArrival_CreateRequested();
}
}
}
diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj
index 982ea1e7..8928b6d7 100644
--- a/ENI-2/ENI2/ENI2/ENI2.csproj
+++ b/ENI-2/ENI2/ENI2/ENI2.csproj
@@ -35,7 +35,7 @@
3.5.1.0
true
publish.html
- 3
+ 5
3.6.7.%2a
false
true
@@ -248,6 +248,9 @@
EditShip2ShipActivitiesDialog.xaml
+
+ EditTOWDialog.xaml
+
EditWasteDialog.xaml
@@ -388,6 +391,10 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
Designer
MSBuild:Compile
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditTOWDialog.xaml b/ENI-2/ENI2/ENI2/EditControls/EditTOWDialog.xaml
new file mode 100644
index 00000000..ecfe1542
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditTOWDialog.xaml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditTOWDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditTOWDialog.xaml.cs
new file mode 100644
index 00000000..86e386de
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditTOWDialog.xaml.cs
@@ -0,0 +1,118 @@
+// Copyright (c) 2017 schick Informatik
+// Description: Dialog zum Bearbeiten von Towage-Informationen
+//
+
+using System.Windows;
+
+using bsmd.database;
+using ENI2.Controls;
+
+namespace ENI2.EditControls
+{
+ ///
+ /// Interaction logic for EditTOWDialog.xaml
+ ///
+ public partial class EditTOWDialog : EditWindowBase
+ {
+ public EditTOWDialog()
+ {
+ InitializeComponent();
+ Loaded += EditTOWDialog_Loaded;
+ AddClicked += () => { this.textBoxName.Focus(); };
+ }
+
+ public bool IsDeparture { get; set; }
+
+ public TOWA TOWA { get; set; }
+
+ public TOWD TOWD { get; set; }
+
+
+ private void EditTOWDialog_Loaded(object sender, RoutedEventArgs e)
+ {
+ this.Title = this.IsDeparture ? Properties.Resources.textTowageOnDeparture : Properties.Resources.textTowageOnArrival;
+
+ this.textBoxName.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureName : this.TOWA.TowageOnArrivalName;
+ if (this.IsDeparture)
+ {
+ this.labelPurposeOfCall.Visibility = Visibility.Hidden;
+ this.textBoxPurposeOfCall.Visibility = Visibility.Hidden;
+ this.labelGrossTonnage.Visibility = Visibility.Hidden;
+ this.integerUpDownGrossTonnage.Visibility = Visibility.Hidden;
+ }
+ else
+ {
+ this.textBoxPurposeOfCall.Text = this.TOWA.TowageOnArrivalPurposeOfCall;
+ this.integerUpDownGrossTonnage.Value = this.TOWA.TowageOnArrivalGrossTonnage;
+ }
+ this.doubleUpDownDraught.Value = this.IsDeparture ? this.TOWD.TowageOnDepartureDraught_DMT : this.TOWA.TowageOnArrivalDraught_DMT;
+ this.doubleUpDownLength.Value = this.IsDeparture ? this.TOWD.TowageOnDepartureLengthOverall_MTR : this.TOWA.TowageOnArrivalLengthOverall_MTR;
+ this.textBoxRemarks.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureRemarks : this.TOWA.TowageOnArrivalRemarks;
+ this.comboBoxFlag.ItemsSource = bsmd.database.CREW.NationalityDict;
+ this.comboBoxFlag.SelectedValue = this.IsDeparture ? this.TOWD.TowageOnDepartureFlag : this.TOWA.TowageOnArrivalFlag;
+ this.doubleUpDownBeam.Value = this.IsDeparture ? this.TOWD.TowageOnDepartureBeam_MTR : this.TOWA.TowageOnArrivalBeam_MTR;
+
+ this.textBoxOperatorName.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorCompanyName : this.TOWA.TowageOnArrivalOperatorCompanyName;
+ this.textBoxStreetNumber.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorStreetNameAndNumber : this.TOWA.TowageOnArrivalOperatorStreetNameAndNumber;
+ this.textBoxPostalCode.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorPostalCode : this.TOWA.TowageOnArrivalOperatorPostalCode;
+ this.textBoxCountry.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorCountry : this.TOWA.TowageOnArrivalOperatorCountry;
+ this.textBoxPhone.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorPhone : this.TOWA.TowageOnArrivalOperatorPhone;
+ this.textBoxEMail.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorEmail : this.TOWA.TowageOnArrivalOperatorEmail;
+ this.textBoxCity.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorCity : this.TOWA.TowageOnArrivalOperatorCity;
+ this.textBoxFax.Text = this.IsDeparture ? this.TOWD.TowageOnDepartureOperatorFax : this.TOWA.TowageOnArrivalOperatorFax;
+
+ this.OKClicked += EditTOWDialog_OKClicked;
+ this.AddVisible = true;
+ }
+
+ public void CopyValuesToEntity()
+ {
+ if(this.IsDeparture)
+ {
+ this.TOWD.TowageOnDepartureName = this.textBoxName.Text.Trim();
+ this.TOWD.TowageOnDepartureDraught_DMT = this.doubleUpDownDraught.Value;
+ this.TOWD.TowageOnDepartureLengthOverall_MTR = this.doubleUpDownLength.Value;
+ this.TOWD.TowageOnDepartureRemarks = this.textBoxRemarks.Text.Trim();
+ this.TOWD.TowageOnDepartureFlag = (string) this.comboBoxFlag.SelectedValue;
+ this.TOWD.TowageOnDepartureBeam_MTR = this.doubleUpDownBeam.Value;
+
+ this.TOWD.TowageOnDepartureOperatorCompanyName = this.textBoxOperatorName.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorStreetNameAndNumber = this.textBoxStreetNumber.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorPostalCode = this.textBoxPostalCode.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorCountry = this.textBoxCountry.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorPhone = this.textBoxPhone.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorEmail = this.textBoxEMail.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorCity = this.textBoxCity.Text.Trim();
+ this.TOWD.TowageOnDepartureOperatorFax = this.textBoxFax.Text.Trim();
+ }
+ else
+ {
+ this.TOWA.TowageOnArrivalName = this.textBoxName.Text.Trim();
+ this.TOWA.TowageOnArrivalPurposeOfCall = this.textBoxPurposeOfCall.Text.Trim();
+ this.TOWA.TowageOnArrivalDraught_DMT = this.doubleUpDownDraught.Value;
+ this.TOWA.TowageOnArrivalLengthOverall_MTR = this.doubleUpDownLength.Value;
+ this.TOWA.TowageOnArrivalRemarks = this.textBoxRemarks.Text.Trim();
+ this.TOWA.TowageOnArrivalFlag = (string) this.comboBoxFlag.SelectedValue;
+ this.TOWA.TowageOnArrivalGrossTonnage = this.integerUpDownGrossTonnage.Value;
+ this.TOWA.TowageOnArrivalBeam_MTR = this.doubleUpDownBeam.Value;
+
+ this.TOWA.TowageOnArrivalOperatorCompanyName = this.textBoxOperatorName.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorStreetNameAndNumber = this.textBoxStreetNumber.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorPostalCode = this.textBoxPurposeOfCall.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorCountry = this.textBoxCountry.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorPhone = this.textBoxPhone.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorEmail = this.textBoxEMail.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorCity = this.textBoxCity.Text.Trim();
+ this.TOWA.TowageOnArrivalOperatorFax = this.textBoxFax.Text.Trim();
+ }
+ }
+
+ private void EditTOWDialog_OKClicked()
+ {
+ this.CopyValuesToEntity();
+ }
+
+
+
+ }
+}
diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
index 92455f93..e4192837 100644
--- a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
+++ b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
@@ -2012,6 +2012,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Operator.
+ ///
+ public static string textOperator {
+ get {
+ return ResourceManager.GetString("textOperator", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Other.
///
@@ -2948,6 +2957,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Towage on departure.
+ ///
+ public static string textTowageOnDeparture {
+ get {
+ return ResourceManager.GetString("textTowageOnDeparture", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Transit.
///
diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.resx b/ENI-2/ENI2/ENI2/Properties/Resources.resx
index c51df2b7..487c37d2 100644
--- a/ENI-2/ENI2/ENI2/Properties/Resources.resx
+++ b/ENI-2/ENI2/ENI2/Properties/Resources.resx
@@ -1159,4 +1159,10 @@
Details of sanitary measure
+
+ Operator
+
+
+ Towage on departure
+
\ No newline at end of file
diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx
index 5b12652f..1845ae11 100644
Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ
diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs
index 80883f75..04cfeb8e 100644
--- a/nsw/Source/bsmd.ExcelReadService/Util.cs
+++ b/nsw/Source/bsmd.ExcelReadService/Util.cs
@@ -2210,7 +2210,7 @@ namespace bsmd.ExcelReadService
crew.CrewMemberNationality = reader.ReadNationality(crewNationality);
crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth);
- reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, crew.CrewMemberPlaceOfBirth.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth);
@@ -2262,7 +2262,7 @@ namespace bsmd.ExcelReadService
crew.CrewMemberNationality = reader.ReadNationality(crewNationality);
crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth);
- reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, crew.CrewMemberPlaceOfBirth.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth);