diff --git a/ENI-2/ENI2/ENI2/App.config b/ENI-2/ENI2/ENI2/App.config
index 2b0bf49c..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/DetailRootControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs
index cece9971..f90124e4 100644
--- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs
@@ -164,12 +164,7 @@ namespace ENI2
{
foreach (Message message in currentControl.ControlMessages)
{
- if (message.IsDirty)
- {
- DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(message);
- message.SaveElements();
- message.IsDirty = false;
- }
+ this.SaveMessage(message);
}
this.buttonSave.Visibility = Visibility.Hidden;
@@ -178,8 +173,19 @@ namespace ENI2
// ggf. hat sich die Ticketnr geändert..
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(currentControl.Core);
}
- }
-
+ }
+ }
+ }
+
+ private void SaveMessage(Message message)
+ {
+ if (message.IsDirty)
+ {
+ if ((message.Status == Message.MessageStatus.ACCEPTED) && (message.InternalStatus == Message.BSMDStatus.CONFIRMED))
+ message.InternalStatus = Message.BSMDStatus.UPDATED;
+ DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(message);
+ message.SaveElements();
+ message.IsDirty = false;
}
}
@@ -191,15 +197,10 @@ namespace ENI2
{
foreach(Message message in this._messages)
{
- if (message.IsDirty)
- {
- DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(message);
- message.SaveElements();
- message.IsDirty = false;
- this.buttonSaveAll.Visibility = Visibility.Hidden;
- this.buttonSave.Visibility = Visibility.Hidden;
- }
+ this.SaveMessage(message);
}
+ this.buttonSaveAll.Visibility = Visibility.Hidden;
+ this.buttonSave.Visibility = Visibility.Hidden;
}
}
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml
index a805d004..624b428e 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml
@@ -48,7 +48,12 @@
-
+
+
+
+
+
@@ -69,7 +74,12 @@
-
+
+
+
+
+
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
index c5fc14d3..684a4811 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs
@@ -2,10 +2,16 @@
// Description: Detailansicht für BPOL, CREW(D), PAS(D)
//
+using System;
using System.Collections.Generic;
+using Microsoft.Win32;
using System.Windows;
+using System.IO;
using System.Windows.Controls;
using ENI2.EditControls;
+using ENI2.Util;
+using bsmd.ExcelReadService;
+using ExcelDataReader;
using bsmd.database;
@@ -330,5 +336,138 @@ namespace ENI2.DetailViewControls
#endregion
+ #region Excel import
+
+ private string getValueAsString(IExcelDataReader reader, int index)
+ {
+ Type fieldType = reader.GetFieldType(index);
+ if (fieldType == null) return null;
+ if (fieldType == typeof(double))
+ return reader.GetDouble(index).ToString();
+ if (fieldType == typeof(int))
+ return reader.GetInt32(index).ToString();
+ return reader.GetString(index);
+ }
+
+ private void buttonImportExcelCrew_Click(object sender, RoutedEventArgs e)
+ {
+ OpenFileDialog ofd = new OpenFileDialog();
+ ofd.Filter = "Excel Files|*.xls;*.xlsx";
+ if(ofd.ShowDialog() ?? false)
+ {
+ using (var stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read))
+ {
+ using (var reader = ExcelReaderFactory.CreateReader(stream))
+ {
+ List importCrew = new List();
+
+ try
+ {
+
+ do
+ {
+ while (reader.Read())
+ {
+ CREW crew = new CREW();
+ if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
+ if (!reader.IsDBNull(0)) crew.CrewMemberLastName = reader.GetString(0);
+ if (!reader.IsDBNull(1)) crew.CrewMemberFirstName = reader.GetString(1);
+ if (!reader.IsDBNull(2)) crew.CrewMemberGender = GlobalStructures.ParseGender(reader.GetString(2));
+ if (!reader.IsDBNull(3)) crew.CrewMemberNationality = reader.GetString(3).Substring(0, 2);
+ if (!reader.IsDBNull(4)) crew.CrewMemberDuty = reader.GetString(4);
+ if (!reader.IsDBNull(5)) crew.CrewMemberPlaceOfBirth = reader.GetString(5);
+ if (!reader.IsDBNull(6))
+ {
+ crew.CrewMemberDateOfBirth = reader.GetDateTime(6);
+ }
+ if (!reader.IsDBNull(7)) crew.CrewMemberIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(7));
+ if (!reader.IsDBNull(8)) crew.CrewMemberIdentityDocumentId = this.getValueAsString(reader, 8);
+ if (!reader.IsDBNull(9)) crew.CrewMemberVisaNumber = this.getValueAsString(reader, 9);
+
+ crew.MessageHeader = this._crewMessage;
+ crew.Identifier = CREW.GetNewIdentifier(this._crewMessage.Elements);
+ importCrew.Add(crew);
+ }
+ } while (reader.NextResult());
+ }
+ catch(Exception ex)
+ {
+ MessageBox.Show("Error reading Excel: " + ex.Message, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Error);
+ }
+
+ if(importCrew.Count > 0)
+ {
+ this._crewMessage.Elements.AddRange(importCrew);
+ this.dataGridCrewList.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.CREW);
+ }
+ }
+ }
+ }
+ }
+
+ private void buttonImportExcelPassenger_Click(object sender, RoutedEventArgs e)
+ {
+ OpenFileDialog ofd = new OpenFileDialog();
+ ofd.Filter = "Excel Files|*.xls;*.xlsx";
+ if (ofd.ShowDialog() ?? false)
+ {
+ using (var stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read))
+ {
+ using (var reader = ExcelReaderFactory.CreateReader(stream))
+ {
+ List importPassenger = new List();
+
+ try
+ {
+ do
+ {
+ while (reader.Read())
+ {
+ PAS pas = new PAS();
+ if (reader.IsDBNull(0) && reader.IsDBNull(1)) continue;
+ if (!reader.IsDBNull(0)) pas.PassengerLastName = reader.GetString(0);
+ if (!reader.IsDBNull(1)) pas.PassengerFirstName = reader.GetString(1);
+ if (!reader.IsDBNull(2)) pas.PassengerGender = GlobalStructures.ParseGender(reader.GetString(2));
+ if (!reader.IsDBNull(3)) pas.PassengerNationality = reader.GetString(3).Substring(0, 2);
+ if (!reader.IsDBNull(4)) pas.PassengerPortOfEmbarkation = reader.GetString(4);
+ if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfEmbarkation) == null)
+ pas.PassengerPortOfEmbarkation = null;
+ if (!reader.IsDBNull(5)) pas.PassengerPortOfDisembarkation = reader.GetString(5);
+ if (LocodeDB.PortNameFromLocode(pas.PassengerPortOfDisembarkation) == null)
+ pas.PassengerPortOfDisembarkation = null;
+ if (!reader.IsDBNull(6)) pas.PassengerInTransit = GlobalStructures.ReadBoolean(reader.GetString(6));
+ if (!reader.IsDBNull(7)) pas.PassengerPlaceOfBirth = reader.GetString(7);
+ if (!reader.IsDBNull(8))
+ {
+ pas.PassengerDateOfBirth = reader.GetDateTime(8);
+ }
+ if (!reader.IsDBNull(9)) pas.PassengerIdentityDocumentType = GlobalStructures.ReadIdentityDocumentType(reader.GetString(9));
+ if (!reader.IsDBNull(10)) pas.PassengerIdentityDocumentId = this.getValueAsString(reader, 10);
+ if (!reader.IsDBNull(11)) pas.PassengerVisaNumber = this.getValueAsString(reader, 11);
+
+ pas.MessageHeader = this._pasMessage;
+ pas.Identifier = PAS.GetNewIdentifier(this._pasMessage.Elements);
+ importPassenger.Add(pas);
+ }
+ } while (reader.NextResult());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show("Error reading Excel: " + ex.Message, Properties.Resources.textCaptionError, MessageBoxButton.OK, MessageBoxImage.Error);
+ }
+
+ if (importPassenger.Count > 0)
+ {
+ this._pasMessage.Elements.AddRange(importPassenger);
+ this.dataGridPassengerList.Items.Refresh();
+ this.SublistElementChanged(Message.NotificationClass.PAS);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
}
}
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
index 655a27fe..dff95dcf 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml
@@ -65,29 +65,22 @@
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs
index 8e6cc7d4..710ab8ab 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs
@@ -53,6 +53,30 @@ namespace ENI2.DetailViewControls
_mdhMessage.Elements.Add(mdh);
}
+ #region Checkbox enable / disable controls
+
+ this.checkBoxHasShipVisited.Checked += CheckBoxHasShipVisited_Checked;
+ this.checkBoxHasShipVisited.Unchecked += CheckBoxHasShipVisited_Checked;
+ this.CheckBoxHasShipVisited_Checked(null, null);
+
+ this.checkBoxHavePersonsDied.Checked += CheckBoxHavePersonsDied_Checked;
+ this.checkBoxHavePersonsDied.Unchecked += CheckBoxHavePersonsDied_Checked;
+ this.CheckBoxHavePersonsDied_Checked(null, null);
+
+ this.checkBoxTotalNumberSickHigherThan.Checked += CheckBoxTotalNumberSickHigherThan_Checked;
+ this.checkBoxTotalNumberSickHigherThan.Unchecked += CheckBoxTotalNumberSickHigherThan_Checked;
+ this.CheckBoxTotalNumberSickHigherThan_Checked(null, null);
+
+ this.checkBoxStowawaysOnBoard.Checked += CheckBoxStowawaysOnBoard_Checked;
+ this.checkBoxStowawaysOnBoard.Unchecked += CheckBoxStowawaysOnBoard_Checked;
+ this.CheckBoxStowawaysOnBoard_Checked(null, null);
+
+ this.checkBoxSanitaryControlExemption.Checked += CheckBoxSanitaryControlExemption_Checked;
+ this.checkBoxSanitaryControlExemption.Unchecked += CheckBoxSanitaryControlExemption_Checked;
+ this.CheckBoxSanitaryControlExemption_Checked(null, null);
+
+ #endregion
+
this.portCallGroupBox.DataContext = mdh;
this._mdh = mdh;
@@ -64,9 +88,8 @@ namespace ENI2.DetailViewControls
this.dataGridPortOfCallLast30Days.CreateRequested += DataGridPortOfCallLast30Days_CreateRequested;
this.dataGridInfectedAreas.Initialize();
- this.dataGridInfectedAreas.IsReadOnly = !(mdh.InfectedAreaVisited ?? false);
- this.checkBoxHasShipVisited.Checked += CheckBoxHasShipVisited_Checked;
- this.checkBoxHasShipVisited.Unchecked += CheckBoxHasShipVisited_Checked;
+ this.dataGridInfectedAreas.IsReadOnly = !(mdh.InfectedAreaVisited ?? false);
+
this.dataGridInfectedAreas.ItemsSource = mdh.InfectedAreas;
this.dataGridInfectedAreas.AddingNewItem += DataGridInfectedAreas_AddingNewItem;
this.dataGridInfectedAreas.EditRequested += DataGridInfectedAreas_EditRequested;
@@ -83,10 +106,73 @@ namespace ENI2.DetailViewControls
this.dataGridSanitaryMeasures.DeleteRequested += DataGridSanitaryMeasures_DeleteRequested;
this.dataGridSanitaryMeasures.CreateRequested += DataGridSanitaryMeasures_CreateRequested;
+ this.checkSimplification.Checked += CheckSimplification_Checked;
+ this.checkSimplification.Unchecked += CheckSimplification_Checked;
+
#endregion
}
+ private void CheckBoxHasShipVisited_Checked1(object sender, RoutedEventArgs e)
+ {
+ throw new System.NotImplementedException();
+ }
+
+ private void CheckBoxSanitaryControlExemption_Checked(object sender, RoutedEventArgs e)
+ {
+ this.textBoxPlaceOfIssue.IsEnabled = this.checkBoxSanitaryControlExemption.IsChecked ?? false;
+ this.textBoxPlaceOfIssue.IsReadOnly = !(this.checkBoxSanitaryControlExemption.IsChecked ?? false);
+ this.datePickerDateOfIssue.IsEnabled = this.checkBoxSanitaryControlExemption.IsChecked ?? false;
+ this.checkBoxReinspectionSanitary.IsEnabled = this.checkBoxSanitaryControlExemption.IsChecked ?? false;
+ }
+
+ private void CheckBoxStowawaysOnBoard_Checked(object sender, RoutedEventArgs e)
+ {
+ this.textBoxStowawaysJoiningLocation.IsEnabled = this.checkBoxStowawaysOnBoard.IsChecked ?? false;
+ this.textBoxStowawaysJoiningLocation.IsReadOnly = !(this.checkBoxStowawaysOnBoard.IsChecked ?? false);
+ }
+
+ private void CheckBoxTotalNumberSickHigherThan_Checked(object sender, RoutedEventArgs e)
+ {
+ this.integerUpDownNumberOfIllPersons.IsEnabled = this.checkBoxTotalNumberSickHigherThan.IsChecked ?? false;
+ this.integerUpDownNumberOfDeaths.IsReadOnly = !(this.checkBoxTotalNumberSickHigherThan.IsChecked ?? false);
+ }
+
+ private void CheckBoxHavePersonsDied_Checked(object sender, RoutedEventArgs e)
+ {
+ this.integerUpDownNumberOfDeaths.IsEnabled = this.checkBoxHavePersonsDied.IsChecked ?? false;
+ this.integerUpDownNumberOfDeaths.IsReadOnly = !(this.checkBoxHavePersonsDied.IsChecked ?? false);
+ }
+
+ private void CheckSimplification_Checked(object sender, RoutedEventArgs e)
+ {
+ bool simplified = this.checkSimplification.IsChecked ?? false;
+
+ this.locodePortWhereHealthDeclarationWasGiven.IsEnabled = simplified;
+
+ this.checkBoxAwareOfConditions.IsEnabled = !simplified;
+ this.checkBoxHasShipVisited.IsEnabled = !simplified;
+ this.checkBoxHavePersonsDied.IsEnabled = !simplified;
+ this.checkBoxIsSuspectedInfectious.IsEnabled = !simplified;
+ this.checkBoxReinspectionSanitary.IsEnabled = !simplified;
+ this.checkBoxSanitaryControlExemption.IsEnabled = !simplified;
+ this.checkBoxSanitaryMeasuresApplied.IsEnabled = !simplified;
+ this.checkBoxSickAnimalsOrPets.IsEnabled = !simplified;
+ this.checkBoxSickPersonsOnBoard.IsEnabled = !simplified;
+ this.checkBoxStowawaysOnBoard.IsEnabled = !simplified;
+ this.checkBoxTotalNumberSickHigherThan.IsEnabled = !simplified;
+ this.checkBoxWasMedicalConsulted.IsEnabled = !simplified;
+ this.dataGridInfectedAreas.IsEnabled = !simplified;
+ this.dataGridPortOfCallLast30Days.IsEnabled = !simplified;
+ this.dataGridSanitaryMeasures.IsEnabled = !simplified;
+ this.datePickerDateOfIssue.IsEnabled = !simplified;
+ this.textBoxPlaceOfIssue.IsEnabled = !simplified;
+ this.textBoxStowawaysJoiningLocation.IsEnabled = !simplified;
+ this.integerUpDownNumberOfDeaths.IsEnabled = !simplified;
+ this.integerUpDownNumberOfIllPersons.IsEnabled = !simplified;
+
+ }
+
private void CheckBoxHasShipVisited_Checked(object sender, RoutedEventArgs e)
{
this.dataGridInfectedAreas.IsReadOnly = !(this.checkBoxHasShipVisited.IsChecked ?? false);
diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml
index cffde760..bcf5e7aa 100644
--- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml
+++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml
@@ -193,6 +193,13 @@
+
+
+
+
+