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