diff --git a/ENI-2/ENI2/ENI2/App.config b/ENI-2/ENI2/ENI2/App.config
index 77790c5b..b657c69b 100644
--- a/ENI-2/ENI2/ENI2/App.config
+++ b/ENI-2/ENI2/ENI2/App.config
@@ -26,12 +26,12 @@
1000
-
- http://heupferd/bsmd.LockingService/LockingService.svc
+ http://192.168.2.4/LockingService/LockingService.svc
+
-
- Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False
+ Data Source=192.168.2.12;Initial Catalog=nsw;Uid=dfuser;Pwd=dfpasswd;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False
+
diff --git a/ENI-2/ENI2/ENI2/App.xaml.cs b/ENI-2/ENI2/ENI2/App.xaml.cs
index 63f11d5e..8df0fa91 100644
--- a/ENI-2/ENI2/ENI2/App.xaml.cs
+++ b/ENI-2/ENI2/ENI2/App.xaml.cs
@@ -41,7 +41,7 @@ namespace ENI2
public static SplashScreenWindow SplashScreen { get { return _splashScreenWindow; } }
- public static Guid? UserId { get { return _userId; } }
+ public static Guid? UserId { get { return _userId; } set { _userId = value; } }
protected override void OnStartup(StartupEventArgs e)
{
@@ -65,11 +65,8 @@ namespace ENI2
LADG.CargoHandlingDict.Add(key, cargoHandlingDict[key]);
EventManager.RegisterClassHandler(typeof(DatePicker), DatePicker.PreviewKeyDownEvent, new KeyEventHandler(this.DatePicker_PreviewKeyDown));
-
- // perform logon
- // TODO: Benutzerverwaltung
-
-
+ CREW.NationalityDict = LocalizedLookup.getNationalities();
+
// Connect to locking service (if enabled)
try
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs
index f1b84bf2..29f1fb80 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs
@@ -149,9 +149,11 @@ namespace ENI2.DetailViewControls
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
- this._bkraMessage.Elements.Add(ebd.BRKA);
+ this._bkraMessage.Elements.Add(ebd.BRKA);
+ ebd.BRKA.MessageHeader = _bkraMessage;
this.dataGridBKRA.Items.Refresh();
ebd.BRKA = new BRKA();
+ this.SublistElementChanged(Message.NotificationClass.BKRA);
};
if (ebd.ShowDialog() ?? false)
@@ -185,15 +187,19 @@ namespace ENI2.DetailViewControls
eld.AddClicked += () =>
{
- eld.CopyValuesToEntity();
+ eld.CopyValuesToEntity();
_bkraMessage.Elements.Add(eld.BRKA);
this.dataGridBKRA.Items.Refresh();
eld.BRKA = new BRKA();
+ eld.BRKA.MessageHeader = _bkraMessage;
+ this.SublistElementChanged(Message.NotificationClass.BKRA);
};
if (eld.ShowDialog() ?? false)
+ {
this.dataGridBKRA.Items.Refresh();
- this.SublistElementChanged(Message.NotificationClass.BKRA);
+ this.SublistElementChanged(Message.NotificationClass.BKRA);
+ }
}
}
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml
index 8ff93a87..82cd3b72 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml
@@ -3,11 +3,91 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:p="clr-namespace:ENI2.Properties"
+ xmlns:enictrl="clr-namespace:ENI2.Controls"
+ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:local="clr-namespace:ENI2.DetailViewControls"
mc:Ignorable="d"
- d:DesignHeight="300" d:DesignWidth="300">
-
-
-
+ d:DesignHeight="800" d:DesignWidth="1024">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
index 5167bcb0..9629503c 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
@@ -1,21 +1,13 @@
// Copyright (c) 2017 schick Informatik
-// Description:
+// Description: Detailansicht für BPOL, CREW(D), PAS(D)
//
-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 ENI2.EditControls;
+
+using bsmd.database;
namespace ENI2.DetailViewControls
{
@@ -24,9 +16,319 @@ namespace ENI2.DetailViewControls
///
public partial class BorderPoliceDetailControl : DetailBaseControl
{
+ private Message _bpolMessage;
+ private Message _crewMessage;
+ private Message _crewdMessage;
+ private Message _pasMessage;
+ private Message _pasdMessage;
+ private BPOL _bpol;
+
public BorderPoliceDetailControl()
{
InitializeComponent();
+ this.Loaded += BorderPoliceDetailControl_Loaded;
}
+
+ private void BorderPoliceDetailControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ this.RegisterCheckboxChange(this.checkBoxCruiseShip, Message.NotificationClass.BPOL);
+ this.RegisterCheckboxChange(this.checkBoxStowaways, Message.NotificationClass.BPOL);
+ }
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ foreach (Message aMessage in this.Messages)
+ {
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.BPOL) { this._bpolMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.CREW) { this._crewMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.PAS) { this._pasMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.CREWD) { this._crewdMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ if (aMessage.MessageNotificationClass == Message.NotificationClass.PASD) { this._pasdMessage = aMessage; this.ControlMessages.Add(aMessage); }
+ }
+
+ #region init BPOL
+
+ if (this._bpolMessage == null)
+ {
+ this._bpolMessage = this.Core.CreateMessage(Message.NotificationClass.BPOL);
+ this.Messages.Add(this._bpolMessage);
+ }
+
+ BPOL bpol = null;
+ if (this._bpolMessage.Elements.Count > 0)
+ bpol = this._bpolMessage.Elements[0] as BPOL;
+ if (bpol == null)
+ {
+ bpol = new BPOL();
+ bpol.MessageCore = this.Core;
+ bpol.MessageHeader = this._bpolMessage;
+ _bpolMessage.Elements.Add(bpol);
+ }
+
+ this.groupBoxBorderPolice.DataContext = bpol;
+ this._bpol = bpol;
+ this.dataGridPortOfItinerary.Initialize();
+ this.dataGridPortOfItinerary.ItemsSource = bpol.PortOfItineraries;
+ this.dataGridPortOfItinerary.AddingNewItem += DataGridPortOfItinerary_AddingNewItem;
+ this.dataGridPortOfItinerary.EditRequested += DataGridPortOfItinerary_EditRequested;
+ this.dataGridPortOfItinerary.DeleteRequested += DataGridPortOfItinerary_DeleteRequested;
+ this.dataGridPortOfItinerary.CreateRequested += DataGridPortOfItinerary_CreateRequested;
+
+ #endregion
+
+ #region init CREW
+
+ if (this._crewMessage == null)
+ {
+ this._crewMessage = this.Core.CreateMessage(Message.NotificationClass.CREW);
+ this.Messages.Add(this._crewMessage);
+ }
+
+ this.dataGridCrewList.Initialize();
+ this.dataGridCrewList.ItemsSource = this._crewMessage.Elements;
+ this.dataGridCrewList.AddingNewItem += DataGridCrewList_AddingNewItem;
+ this.dataGridCrewList.EditRequested += DataGridCrewList_EditRequested;
+ this.dataGridCrewList.DeleteRequested += DataGridCrewList_DeleteRequested;
+ this.dataGridCrewList.CreateRequested += DataGridCrewList_CreateRequested;
+
+ #endregion
+
+ #region init PAS
+
+ if (this._pasMessage == null)
+ {
+ this._pasMessage = this.Core.CreateMessage(Message.NotificationClass.PAS);
+ this.Messages.Add(this._pasMessage);
+ }
+
+ this.dataGridPassengerList.Initialize();
+ this.dataGridPassengerList.ItemsSource = this._pasMessage.Elements;
+ this.dataGridPassengerList.AddingNewItem += DataGridPassengerList_AddingNewItem;
+ this.dataGridPassengerList.EditRequested += DataGridPassengerList_EditRequested;
+ this.dataGridPassengerList.DeleteRequested += DataGridPassengerList_DeleteRequested;
+ this.dataGridPassengerList.CreateRequested += DataGridPassengerList_CreateRequested;
+
+ #endregion
+
+ }
+
+ #region port of itinerary grid
+
+ private void DataGridPortOfItinerary_CreateRequested()
+ {
+ PortOfItinerary poi = new PortOfItinerary();
+ EditPortOfItineraryDialog epid = new EditPortOfItineraryDialog();
+ epid.PortOfItinerary = poi;
+
+ epid.AddClicked += () =>
+ {
+ epid.CopyValuesToEntity();
+ epid.PortOfItinerary.BPOL = _bpol;
+ this._bpol.PortOfItineraries.Add(epid.PortOfItinerary);
+ this.dataGridPortOfItinerary.Items.Refresh();
+ epid.PortOfItinerary = new PortOfItinerary();
+ this.SublistElementChanged(Message.NotificationClass.BPOL);
+ };
+
+ if (epid.ShowDialog() ?? false)
+ {
+ _bpol.PortOfItineraries.Add(epid.PortOfItinerary);
+ epid.PortOfItinerary.BPOL = _bpol;
+ this.dataGridPortOfItinerary.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.BPOL);
+ }
+ }
+
+ private void DataGridPortOfItinerary_DeleteRequested(DatabaseEntity obj)
+ {
+ PortOfItinerary poi = obj as PortOfItinerary;
+ if (poi != null)
+ {
+ // are you sure dialog is in base class
+ _bpol.PortOfItineraries.Remove(poi);
+ // DBManager.Instance.Delete(serv); // not yet
+ this.dataGridPortOfItinerary.Items.Refresh();
+ }
+ }
+
+ private void DataGridPortOfItinerary_EditRequested(DatabaseEntity obj)
+ {
+ PortOfItinerary poi = obj as PortOfItinerary;
+ if (poi != null)
+ {
+ EditPortOfItineraryDialog epid = new EditPortOfItineraryDialog();
+ epid.PortOfItinerary = poi;
+
+ epid.AddClicked += () =>
+ {
+ epid.CopyValuesToEntity();
+ _bpol.PortOfItineraries.Add(epid.PortOfItinerary);
+ this.dataGridPortOfItinerary.Items.Refresh();
+ epid.PortOfItinerary = new PortOfItinerary();
+ epid.PortOfItinerary.BPOL = this._bpol;
+ this.SublistElementChanged(Message.NotificationClass.BPOL);
+ };
+
+ if (epid.ShowDialog() ?? false)
+ {
+ this.dataGridPortOfItinerary.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.BPOL);
+ }
+ }
+ }
+
+ private void DataGridPortOfItinerary_AddingNewItem(object sender, AddingNewItemEventArgs e)
+ {
+ this.DataGridPortOfItinerary_CreateRequested();
+ }
+
+ #endregion
+
+ #region passenger grid
+
+ private void DataGridPassengerList_CreateRequested()
+ {
+ PAS pas = new PAS();
+ EditPASDialog epd = new EditPASDialog();
+ epd.PAS = pas;
+
+ epd.AddClicked += () =>
+ {
+ epd.CopyValuesToEntity();
+ epd.PAS.MessageHeader = this._pasMessage;
+ this._pasMessage.Elements.Add(epd.PAS);
+ this.dataGridPassengerList.Items.Refresh();
+ epd.PAS = new PAS();
+ this.SublistElementChanged(Message.NotificationClass.PAS);
+ };
+
+ if (epd.ShowDialog() ?? false)
+ {
+ _pasMessage.Elements.Add(epd.PAS);
+ epd.PAS.MessageHeader = this._pasMessage;
+ this.dataGridPassengerList.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.PAS);
+ }
+ }
+
+ private void DataGridPassengerList_DeleteRequested(DatabaseEntity obj)
+ {
+ PAS pas = obj as PAS;
+ if (pas != null)
+ {
+ // are you sure dialog is in base class
+ _pasMessage.Elements.Remove(pas);
+ // DBManager.Instance.Delete(serv); // not yet
+ this.dataGridPassengerList.Items.Refresh();
+ }
+ }
+
+ private void DataGridPassengerList_EditRequested(DatabaseEntity obj)
+ {
+ PAS pas = obj as PAS;
+ if (pas != null)
+ {
+ EditPASDialog epd = new EditPASDialog();
+ epd.PAS = pas;
+
+ epd.AddClicked += () =>
+ {
+ epd.CopyValuesToEntity();
+ _pasMessage.Elements.Add(epd.PAS);
+ this.dataGridPassengerList.Items.Refresh();
+ epd.PAS = new PAS();
+ epd.PAS.MessageHeader = _pasMessage;
+ this.SublistElementChanged(Message.NotificationClass.PAS);
+ };
+
+ if (epd.ShowDialog() ?? false)
+ {
+ this.dataGridPassengerList.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.PAS);
+ }
+ }
+ }
+
+ private void DataGridPassengerList_AddingNewItem(object sender, AddingNewItemEventArgs e)
+ {
+ this.DataGridPassengerList_CreateRequested();
+ }
+
+ #endregion
+
+ #region crew grid
+
+ private void DataGridCrewList_CreateRequested()
+ {
+ CREW crew = new CREW();
+ EditCREWDialog ecd = new EditCREWDialog();
+ ecd.CREW = crew;
+
+ ecd.AddClicked += () =>
+ {
+ ecd.CopyValuesToEntity();
+ ecd.CREW.MessageHeader = this._crewMessage;
+ this._crewMessage.Elements.Add(ecd.CREW);
+ this.dataGridCrewList.Items.Refresh();
+ ecd.CREW = new CREW();
+ this.SublistElementChanged(Message.NotificationClass.CREW);
+ };
+
+ if (ecd.ShowDialog() ?? false)
+ {
+ _crewMessage.Elements.Add(ecd.CREW);
+ ecd.CREW.MessageHeader = this._crewMessage;
+ this.dataGridCrewList.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.CREW);
+ }
+ }
+
+ private void DataGridCrewList_DeleteRequested(DatabaseEntity obj)
+ {
+ CREW crew = obj as CREW;
+ if (crew != null)
+ {
+ // are you sure dialog is in base class
+ _crewMessage.Elements.Remove(crew);
+ // DBManager.Instance.Delete(serv); // not yet
+ this.dataGridCrewList.Items.Refresh();
+ }
+ }
+
+ private void DataGridCrewList_EditRequested(DatabaseEntity obj)
+ {
+ CREW crew = obj as CREW;
+ if (crew != null)
+ {
+ EditCREWDialog ecd = new EditCREWDialog();
+ ecd.CREW = crew;
+
+ ecd.AddClicked += () =>
+ {
+ ecd.CopyValuesToEntity();
+ _crewMessage.Elements.Add(ecd.CREW);
+ this.dataGridCrewList.Items.Refresh();
+ ecd.CREW = new CREW();
+ ecd.CREW.MessageHeader = _crewMessage;
+ this.SublistElementChanged(Message.NotificationClass.CREW);
+ };
+
+ if (ecd.ShowDialog() ?? false)
+ {
+ this.dataGridCrewList.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.CREW);
+ }
+ }
+ }
+
+ private void DataGridCrewList_AddingNewItem(object sender, AddingNewItemEventArgs e)
+ {
+ this.DataGridCrewList_CreateRequested();
+ }
+
+ #endregion
+
}
}
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml
index c41a4380..782f9c66 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml
@@ -32,13 +32,13 @@
-
+
-
+
-
+
-
+
diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj
index df1b8b7c..44aadcf9 100644
--- a/ENI-2/ENI2/ENI2/ENI2.csproj
+++ b/ENI-2/ENI2/ENI2/ENI2.csproj
@@ -218,9 +218,18 @@
EditCallPurposeDialog.xaml
+
+ EditCREWDialog.xaml
+
EditLADGDialog.xaml
+
+ EditPASDialog.xaml
+
+
+ EditPortOfItineraryDialog.xaml
+
EditSERVDialog.xaml
@@ -244,6 +253,7 @@
+
VorgaengeControl.xaml
@@ -320,10 +330,22 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
MSBuild:Compile
Designer
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
MSBuild:Compile
Designer
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs
index 4836fc67..5d8d336f 100644
--- a/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs
+++ b/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs
@@ -34,9 +34,7 @@ namespace ENI2.EditControls
#region event handler
private void EditBKRDialog_Loaded(object sender, RoutedEventArgs e)
- {
- this.OKClicked += EditBKRDialog_OKClicked; ;
-
+ {
this.Title = this.IsDeparture ? Properties.Resources.textBunkerOnDeparture : Properties.Resources.textBunkerOnArrival;
// copy into fields
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditCREWDialog.xaml b/ENI-2/ENI2/ENI2/EditControls/EditCREWDialog.xaml
new file mode 100644
index 00000000..a2f2e86d
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditCREWDialog.xaml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditCREWDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditCREWDialog.xaml.cs
new file mode 100644
index 00000000..e355937c
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditCREWDialog.xaml.cs
@@ -0,0 +1,68 @@
+// Copyright (c) 2017 schick Informatik
+// Description: CREW Bearbeitungsdialog
+//
+
+using System.Windows;
+
+using bsmd.database;
+using ENI2.Controls;
+using ENI2.Util;
+
+namespace ENI2.EditControls
+{
+ ///
+ /// Interaction logic for EditCREWDialog.xaml
+ ///
+ public partial class EditCREWDialog : EditWindowBase
+ {
+ public EditCREWDialog()
+ {
+ InitializeComponent();
+ Loaded += EditCREWDialog_Loaded;
+ AddClicked += () => { this.textBoxDuty.Focus(); };
+ }
+
+ public CREW CREW { get; set; }
+
+ private void EditCREWDialog_Loaded(object sender, RoutedEventArgs e)
+ {
+ // copy into fields
+ this.textBoxDuty.Text = this.CREW.CrewMemberDuty;
+ this.textBoxLastName.Text = this.CREW.CrewMemberLastName;
+ this.textBoxFirstName.Text = this.CREW.CrewMemberFirstName;
+ this.comboBoxGender.ItemsSource = GlobalStructures.GenderList;
+ this.comboBoxGender.SelectedIndex = this.CREW.CrewMemberGender.HasValue ? this.CREW.CrewMemberGender.Value : -1;
+ this.textBoxPlaceOfBirth.Text = this.CREW.CrewMemberPlaceOfBirth;
+ this.comboBoxNationality.ItemsSource = bsmd.database.CREW.NationalityDict;
+ this.comboBoxNationality.SelectedValue = this.CREW.CrewMemberNationality;
+ this.datePickerDateOfBirth.SelectedDate = this.CREW.CrewMemberDateOfBirth;
+ this.comboBoxIdDocType.ItemsSource = GlobalStructures.IDDocTypeList;
+ this.comboBoxIdDocType.SelectedIndex = this.CREW.CrewMemberIdentityDocumentType.HasValue ? this.CREW.CrewMemberIdentityDocumentType.Value : -1;
+ this.textBoxIdDocNumber.Text = this.CREW.CrewMemberIdentityDocumentId;
+ this.textBoxVisaNumber.Text = this.CREW.CrewMemberVisaNumber;
+ this.OKClicked += EditCREWDialog_OKClicked;
+ this.AddVisible = true;
+ }
+
+ public void CopyValuesToEntity()
+ {
+ // copy back
+ this.CREW.CrewMemberDuty = this.textBoxDuty.Text.Trim();
+ this.CREW.CrewMemberLastName = this.textBoxLastName.Text.Trim();
+ this.CREW.CrewMemberFirstName = this.textBoxFirstName.Text.Trim();
+ this.CREW.CrewMemberGender = (this.comboBoxGender.SelectedIndex == -1) ? null : (byte?) this.comboBoxGender.SelectedIndex;
+ this.CREW.CrewMemberPlaceOfBirth = this.textBoxPlaceOfBirth.Text.Trim();
+ this.CREW.CrewMemberNationality = (this.comboBoxNationality.SelectedValue == null) ? "" : (string)this.comboBoxNationality.SelectedValue;
+ this.CREW.CrewMemberDateOfBirth = this.datePickerDateOfBirth.SelectedDate;
+ this.CREW.CrewMemberIdentityDocumentType = (this.comboBoxIdDocType.SelectedIndex == -1) ? null : (byte?)this.comboBoxIdDocType.SelectedIndex;
+ this.CREW.CrewMemberIdentityDocumentId = this.textBoxIdDocNumber.Text.Trim();
+ this.CREW.CrewMemberVisaNumber = this.textBoxVisaNumber.Text.Trim();
+ }
+
+ private void EditCREWDialog_OKClicked()
+ {
+ this.CopyValuesToEntity();
+ }
+
+ }
+}
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditLADGDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditLADGDialog.xaml.cs
index 18855347..a97be92f 100644
--- a/ENI-2/ENI2/ENI2/EditControls/EditLADGDialog.xaml.cs
+++ b/ENI-2/ENI2/ENI2/EditControls/EditLADGDialog.xaml.cs
@@ -1,20 +1,8 @@
// Copyright (c) 2017 schick Informatik
-// Description:
+// Description: LADG Bearbeitungsdialog
//
-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.Shapes;
using bsmd.database;
using ENI2.Controls;
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditPasDialog.xaml b/ENI-2/ENI2/ENI2/EditControls/EditPasDialog.xaml
new file mode 100644
index 00000000..dba8d3c6
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditPasDialog.xaml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditPasDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditPasDialog.xaml.cs
new file mode 100644
index 00000000..69b3e275
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditPasDialog.xaml.cs
@@ -0,0 +1,71 @@
+// Copyright (c) 2017 schick Informatik
+// Description: PAS Bearbeitungsdialog
+//
+
+using System.Windows;
+
+using bsmd.database;
+using ENI2.Controls;
+using ENI2.Util;
+
+namespace ENI2.EditControls
+{
+ ///
+ /// Interaction logic for EditPasDialog.xaml
+ ///
+ public partial class EditPASDialog : EditWindowBase
+ {
+ public EditPASDialog()
+ {
+ InitializeComponent();
+ Loaded += EditPasDialog_Loaded;
+ AddClicked += () => { this.textBoxLastName.Focus(); };
+ }
+
+ public PAS PAS { get; set; }
+
+ private void EditPasDialog_Loaded(object sender, RoutedEventArgs e)
+ {
+ // copy into fields
+ this.textBoxLastName.Text = this.PAS.PassengerLastName;
+ this.textBoxFirstName.Text = this.PAS.PassengerFirstName;
+ this.comboBoxGender.ItemsSource = GlobalStructures.GenderList;
+ this.comboBoxGender.SelectedIndex = this.PAS.PassengerGender.HasValue ? this.PAS.PassengerGender.Value : -1;
+ this.textBoxPlaceOfBirth.Text = this.PAS.PassengerPlaceOfBirth;
+ this.comboBoxNationality.ItemsSource = bsmd.database.CREW.NationalityDict;
+ this.comboBoxNationality.SelectedValue = this.PAS.PassengerNationality;
+ this.datePickerDateOfBirth.SelectedDate = this.PAS.PassengerDateOfBirth;
+ this.comboBoxIdDocType.ItemsSource = GlobalStructures.IDDocTypeList;
+ this.comboBoxIdDocType.SelectedIndex = this.PAS.PassengerIdentityDocumentType.HasValue ? this.PAS.PassengerIdentityDocumentType.Value : -1;
+ this.textBoxIdDocNumber.Text = this.PAS.PassengerIdentityDocumentId;
+ this.textBoxVisaNumber.Text = this.PAS.PassengerVisaNumber;
+ this.textBoxPortOfEmbarkation.Text = this.PAS.PassengerPortOfEmbarkation;
+ this.textBoxPortOfDisEmbarkation.Text = this.PAS.PassengerPortOfDisembarkation;
+ this.checkBoxTransitPassenger.IsChecked = this.PAS.PassengerInTransit;
+ this.OKClicked += EditPasDialog_OKClicked;
+ this.AddVisible = true;
+ }
+
+ public void CopyValuesToEntity()
+ {
+ // copy back
+ this.PAS.PassengerLastName = this.textBoxLastName.Text.Trim();
+ this.PAS.PassengerFirstName = this.textBoxFirstName.Text.Trim();
+ this.PAS.PassengerGender = (this.comboBoxGender.SelectedIndex == -1) ? null : (byte?)this.comboBoxGender.SelectedIndex;
+ this.PAS.PassengerPlaceOfBirth = this.textBoxPlaceOfBirth.Text.Trim();
+ this.PAS.PassengerNationality = (this.comboBoxNationality.SelectedValue == null) ? "" : (string)this.comboBoxNationality.SelectedValue;
+ this.PAS.PassengerDateOfBirth = this.datePickerDateOfBirth.SelectedDate;
+ this.PAS.PassengerIdentityDocumentType = (this.comboBoxIdDocType.SelectedIndex == -1) ? null : (byte?)this.comboBoxIdDocType.SelectedIndex;
+ this.PAS.PassengerIdentityDocumentId = this.textBoxIdDocNumber.Text.Trim();
+ this.PAS.PassengerVisaNumber = this.textBoxVisaNumber.Text.Trim();
+ this.PAS.PassengerPortOfEmbarkation = this.textBoxPortOfEmbarkation.Text.Trim();
+ this.PAS.PassengerPortOfDisembarkation = this.textBoxPortOfDisEmbarkation.Text.Trim();
+ this.PAS.PassengerInTransit = this.checkBoxTransitPassenger.IsChecked;
+ }
+
+ private void EditPasDialog_OKClicked()
+ {
+ this.CopyValuesToEntity();
+ }
+ }
+}
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditPortOfItineraryDialog.xaml b/ENI-2/ENI2/ENI2/EditControls/EditPortOfItineraryDialog.xaml
new file mode 100644
index 00000000..bb62844c
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditPortOfItineraryDialog.xaml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/EditControls/EditPortOfItineraryDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditPortOfItineraryDialog.xaml.cs
new file mode 100644
index 00000000..2580b52e
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/EditControls/EditPortOfItineraryDialog.xaml.cs
@@ -0,0 +1,52 @@
+// Copyright (c) 2017 schick Informatik
+// Description: Bearbeitungsdialog für Call of itinerary
+//
+
+using System.Windows;
+using ENI2.Controls;
+
+using bsmd.database;
+using bsmd.ExcelReadService;
+
+namespace ENI2.EditControls
+{
+ ///
+ /// Interaction logic for EditPortOfItineraryDialog.xaml
+ ///
+ public partial class EditPortOfItineraryDialog : EditWindowBase
+ {
+ public EditPortOfItineraryDialog()
+ {
+ InitializeComponent();
+
+ Loaded += EditPortOfItineraryDialog_Loaded; ;
+ AddClicked += () => { this.locodeControlPortName.Focus(); };
+
+ }
+
+ public PortOfItinerary PortOfItinerary { get; set; }
+
+ private void EditPortOfItineraryDialog_Loaded(object sender, RoutedEventArgs e)
+ {
+ this.OKClicked += EditPortOfItineraryDialog_OKClicked;
+
+ // copy into fields
+ this.locodeControlPortName.LocodeValue = this.PortOfItinerary.PortOfItineraryLocode;
+ this.dateTimePickerETA.Value = this.PortOfItinerary.PortOfItineraryETA;
+ this.AddVisible = true;
+ }
+
+ public void CopyValuesToEntity()
+ {
+ // copy back
+ this.PortOfItinerary.PortOfItineraryLocode = this.locodeControlPortName.LocodeValue;
+ this.PortOfItinerary.PortOfItineraryName = this.PortOfItinerary.PortOfItineraryLocode.IsNullOrEmpty() ? "" : LocodeDB.PortNameFromLocode(this.PortOfItinerary.PortOfItineraryLocode);
+ this.PortOfItinerary.PortOfItineraryETA = this.dateTimePickerETA.Value;
+ }
+
+ private void EditPortOfItineraryDialog_OKClicked()
+ {
+ this.CopyValuesToEntity();
+ }
+ }
+}
diff --git a/ENI-2/ENI2/ENI2/LocalizedLookup.cs b/ENI-2/ENI2/ENI2/LocalizedLookup.cs
index a69c58db..1e934eb4 100644
--- a/ENI-2/ENI2/ENI2/LocalizedLookup.cs
+++ b/ENI-2/ENI2/ENI2/LocalizedLookup.cs
@@ -59,6 +59,24 @@ namespace ENI2
return result;
}
+ public static Dictionary getNationalities()
+ {
+ Dictionary result = new Dictionary();
+ string query = string.Format("SELECT Code, Name FROM Nationality");
+ SQLiteCommand cmd = new SQLiteCommand(query, _con);
+ IDataReader reader = cmd.ExecuteReader();
+ while(reader.Read())
+ {
+ string code = null;
+ string name = null;
+ if (!reader.IsDBNull(0)) code = reader.GetString(0);
+ if (!reader.IsDBNull(1)) name = reader.GetString(1);
+ if((code != null) && (name != null))
+ result[code] = name;
+ }
+ reader.Close();
+ return result;
+ }
}
diff --git a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs
index 2366c649..e102867a 100644
--- a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs
+++ b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs
@@ -18,6 +18,7 @@ using ENI2.EditControls;
using ENI2.Util;
using log4net;
+using System.ComponentModel;
namespace ENI2
{
@@ -221,6 +222,27 @@ namespace ENI2
dtPicker.Value = null;
}
+ // das funktioniert auch für Comboboxen :P
+ ComboBox cb = e.OriginalSource as ComboBox;
+ if(cb == null)
+ {
+ cb = CustomCommands.FindParent(e.OriginalSource as DependencyObject);
+ }
+ if(cb != null)
+ {
+
+ cb.SelectedIndex = -1;
+
+ LocalValueEnumerator localSetProperties = cb.GetLocalValueEnumerator();
+ while(localSetProperties.MoveNext())
+ {
+ if(localSetProperties.Current.Property.Name == "SelectedIndex")
+ {
+ cb.ClearValue(localSetProperties.Current.Property);
+ }
+ }
+ }
+
}
private void CanExecuteClearCommand(object sender, CanExecuteRoutedEventArgs e)
@@ -333,6 +355,7 @@ namespace ENI2
this.busyIndicator.IsBusy = false;
this.labelStatusBar.Text = string.Format("Rep.Party: {0} {1} [{2}]", this.userEntity.FirstName, this.userEntity.LastName, this.userEntity.Logon);
+ App.UserId = this.userEntity.Id;
break;
case ReportingParty.LogonResult.FAILED:
this.labelLoginResult.Content = Properties.Resources.textWrongPassword;
diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
index 8f2936fe..1d357e4f 100644
--- a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
+++ b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs
@@ -860,6 +860,24 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Function on board.
+ ///
+ public static string textCrewFunctionOnBoard {
+ get {
+ return ResourceManager.GetString("textCrewFunctionOnBoard", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Crew member.
+ ///
+ public static string textCrewMember {
+ get {
+ return ResourceManager.GetString("textCrewMember", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Number of crew members on board.
///
@@ -869,6 +887,24 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Cruise ship.
+ ///
+ public static string textCruiseShip {
+ get {
+ return ResourceManager.GetString("textCruiseShip", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Date of birth.
+ ///
+ public static string textDateOfBirth {
+ get {
+ return ResourceManager.GetString("textDateOfBirth", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Declarations.
///
@@ -1022,6 +1058,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to ETA.
+ ///
+ public static string textETA {
+ get {
+ return ResourceManager.GetString("textETA", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to ETA Kiel Canal.
///
@@ -1103,6 +1148,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Female.
+ ///
+ public static string textFemale {
+ get {
+ return ResourceManager.GetString("textFemale", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to First name.
///
@@ -1139,6 +1193,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Gender.
+ ///
+ public static string textGender {
+ get {
+ return ResourceManager.GetString("textGender", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Gross tonnage.
///
@@ -1148,6 +1211,42 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Border police notification.
+ ///
+ public static string textGroupBoxBorderPolice {
+ get {
+ return ResourceManager.GetString("textGroupBoxBorderPolice", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to ID doc. number.
+ ///
+ public static string textIdDocNumber {
+ get {
+ return ResourceManager.GetString("textIdDocNumber", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to ID doc. type.
+ ///
+ public static string textIdDocType {
+ get {
+ return ResourceManager.GetString("textIdDocType", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Identity card.
+ ///
+ public static string textIdentityCard {
+ get {
+ return ResourceManager.GetString("textIdentityCard", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to IMO number.
///
@@ -1175,6 +1274,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Itinerary port.
+ ///
+ public static string textItineraryPort {
+ get {
+ return ResourceManager.GetString("textItineraryPort", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to LA Code.
///
@@ -1274,6 +1382,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Male.
+ ///
+ public static string textMale {
+ get {
+ return ResourceManager.GetString("textMale", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Master.
///
@@ -1292,6 +1409,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Muster book.
+ ///
+ public static string textMusterBook {
+ get {
+ return ResourceManager.GetString("textMusterBook", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Name.
///
@@ -1310,6 +1436,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Nationality.
+ ///
+ public static string textNationality {
+ get {
+ return ResourceManager.GetString("textNationality", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Create new id.
///
@@ -1355,6 +1490,24 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Other.
+ ///
+ public static string textOther {
+ get {
+ return ResourceManager.GetString("textOther", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Other legal identity document.
+ ///
+ public static string textOtherLegalIdentityDocument {
+ get {
+ return ResourceManager.GetString("textOtherLegalIdentityDocument", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Overview.
///
@@ -1364,6 +1517,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Passenger.
+ ///
+ public static string textPassenger {
+ get {
+ return ResourceManager.GetString("textPassenger", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Number of passengers on board.
///
@@ -1373,6 +1535,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Passport.
+ ///
+ public static string textPassport {
+ get {
+ return ResourceManager.GetString("textPassport", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Password.
///
@@ -1409,6 +1580,24 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Photo Id.
+ ///
+ public static string textPhotoId {
+ get {
+ return ResourceManager.GetString("textPhotoId", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Place of birth.
+ ///
+ public static string textPlaceOfBirth {
+ get {
+ return ResourceManager.GetString("textPlaceOfBirth", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Planned inspection / works.
///
@@ -1463,6 +1652,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Port name.
+ ///
+ public static string textPortname {
+ get {
+ return ResourceManager.GetString("textPortname", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Port notification.
///
@@ -1472,6 +1670,33 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Port of disembarkation.
+ ///
+ public static string textPortOfDisembarkation {
+ get {
+ return ResourceManager.GetString("textPortOfDisembarkation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Port of embarkation.
+ ///
+ public static string textPortOfEmbarkation {
+ get {
+ return ResourceManager.GetString("textPortOfEmbarkation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Port of itinerary.
+ ///
+ public static string textPortOfItinerary {
+ get {
+ return ResourceManager.GetString("textPortOfItinerary", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Postalcode.
///
@@ -1580,6 +1805,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to ResidencePermit.
+ ///
+ public static string textResidencePermit {
+ get {
+ return ResourceManager.GetString("textResidencePermit", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Save.
///
@@ -1787,6 +2021,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Stowaways on board.
+ ///
+ public static string textStowaways {
+ get {
+ return ResourceManager.GetString("textStowaways", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Number of stowaways on board.
///
@@ -1805,6 +2048,33 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Border police.
+ ///
+ public static string textTabBorderPolice {
+ get {
+ return ResourceManager.GetString("textTabBorderPolice", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Crew list.
+ ///
+ public static string textTabCrewList {
+ get {
+ return ResourceManager.GetString("textTabCrewList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Passenger list.
+ ///
+ public static string textTabPassengerList {
+ get {
+ return ResourceManager.GetString("textTabPassengerList", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Tanker.
///
@@ -1886,6 +2156,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Transit passenger.
+ ///
+ public static string textTransitPassenger {
+ get {
+ return ResourceManager.GetString("textTransitPassenger", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Type for Locode....
///
@@ -1931,6 +2210,15 @@ namespace ENI2.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Visa number.
+ ///
+ public static string textVisaNumber {
+ get {
+ return ResourceManager.GetString("textVisaNumber", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Visit / transit.
///
diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.resx b/ENI-2/ENI2/ENI2/Properties/Resources.resx
index 1f7867c0..791120bc 100644
--- a/ENI-2/ENI2/ENI2/Properties/Resources.resx
+++ b/ENI-2/ENI2/ENI2/Properties/Resources.resx
@@ -754,4 +754,100 @@
Inert
+
+ Border police notification
+
+
+ Itinerary port
+
+
+ Port of itinerary
+
+
+ Stowaways on board
+
+
+ ETA
+
+
+ Port name
+
+
+ Border police
+
+
+ Crew list
+
+
+ Passenger list
+
+
+ Function on board
+
+
+ Cruise ship
+
+
+ Date of birth
+
+
+ Gender
+
+
+ ID doc. number
+
+
+ ID doc. type
+
+
+ Nationality
+
+
+ Place of birth
+
+
+ Port of disembarkation
+
+
+ Port of embarkation
+
+
+ Transit passenger
+
+
+ Visa number
+
+
+ Crew member
+
+
+ Female
+
+
+ Identity card
+
+
+ Male
+
+
+ Muster book
+
+
+ Other
+
+
+ Other legal identity document
+
+
+ Passport
+
+
+ Photo Id
+
+
+ ResidencePermit
+
+
+ Passenger
+
\ No newline at end of file
diff --git a/ENI-2/ENI2/ENI2/Util/GlobalStructures.cs b/ENI-2/ENI2/ENI2/Util/GlobalStructures.cs
new file mode 100644
index 00000000..ce724bd7
--- /dev/null
+++ b/ENI-2/ENI2/ENI2/Util/GlobalStructures.cs
@@ -0,0 +1,34 @@
+// Copyright (c) 2017 schick Informatik
+// Description: hier sind mehrfach verwendete Strukturen abgelegt
+//
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ENI2.Util
+{
+ class GlobalStructures
+ {
+
+ public static string[] GenderList =
+ {
+ Properties.Resources.textMale,
+ Properties.Resources.textFemale,
+ Properties.Resources.textOther
+ };
+
+ public static string[] IDDocTypeList =
+ {
+ Properties.Resources.textIdentityCard,
+ Properties.Resources.textPassport,
+ Properties.Resources.textMusterBook,
+ Properties.Resources.textPhotoId,
+ Properties.Resources.textResidencePermit,
+ Properties.Resources.textOtherLegalIdentityDocument
+ };
+
+ }
+}
diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx
index b073358e..133da522 100644
Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ
diff --git a/nsw/Source/bsmd.database/CREW.cs b/nsw/Source/bsmd.database/CREW.cs
index fb195ea8..2694ea99 100644
--- a/nsw/Source/bsmd.database/CREW.cs
+++ b/nsw/Source/bsmd.database/CREW.cs
@@ -98,6 +98,8 @@ namespace bsmd.database
public string Identifier { get; set; }
+ public static Dictionary NationalityDict { get; set; }
+
#endregion
#region DatabaseEntity implementation
diff --git a/nsw/Source/misc/db.sqlite b/nsw/Source/misc/db.sqlite
index 60772f1f..adb5f436 100644
Binary files a/nsw/Source/misc/db.sqlite and b/nsw/Source/misc/db.sqlite differ