diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj
index ed92aaf3..94a125b6 100644
--- a/ENI2/ENI2.csproj
+++ b/ENI2/ENI2.csproj
@@ -36,7 +36,7 @@
5.4.0.0
true
publish.html
- 2
+ 3
7.5.0.%2a
false
true
diff --git a/ENI2/EditControls/FixImportDialog.xaml.cs b/ENI2/EditControls/FixImportDialog.xaml.cs
index 132eadaf..e9912466 100644
--- a/ENI2/EditControls/FixImportDialog.xaml.cs
+++ b/ENI2/EditControls/FixImportDialog.xaml.cs
@@ -2,21 +2,9 @@
// Description: Dialog to confirm values during excel import (e.g. CREW/PAS)
//
-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 ENI2.Controls;
+using System.Collections.Generic;
+using System.Windows;
namespace ENI2.EditControls
{
@@ -55,6 +43,7 @@ namespace ENI2.EditControls
private void EditWindowBase_Loaded(object sender, RoutedEventArgs e)
{
this.comboBoxValues.ItemsSource = this.SelectionValues;
+ this.comboBoxValues.Focus();
}
}
}
diff --git a/ENI2/Excel/ExcelUtil.cs b/ENI2/Excel/ExcelUtil.cs
index 1ee4d0e9..c69618b2 100644
--- a/ENI2/Excel/ExcelUtil.cs
+++ b/ENI2/Excel/ExcelUtil.cs
@@ -22,9 +22,9 @@ namespace ENI2.Excel
{
private static readonly ILog _log = LogManager.GetLogger(typeof(ExcelUtil));
- private static Dictionary _countryImportDict = new Dictionary();
- private static Dictionary _genderImportDict = new Dictionary();
- private static Dictionary _documentTypeImportDict = new Dictionary();
+ private static readonly Dictionary _countryImportDict = new Dictionary();
+ private static readonly Dictionary _genderImportDict = new Dictionary();
+ private static readonly Dictionary _documentTypeImportDict = new Dictionary();
#region Process Sheet (normal BSMD sheet import)
@@ -2067,7 +2067,7 @@ namespace ENI2.Excel
bool? notificationSchengen = reader.ReadBoolean("CREW.NotificationSchengen");
bool? notificationPax = reader.ReadBoolean("CREW.NotificationPAX");
- for (int i = 0; i < 1000; i++)
+ for (int i = 0; i < 5000; i++)
{
string lastName = reader.ReadCellAsText(sheetTitle, string.Format("C{0}", i + 18));
@@ -2115,56 +2115,52 @@ namespace ENI2.Excel
private static bool ScanCREWD(Message crewdMessage, ExcelReader reader)
{
crewdMessage.DeleteElements();
+ string sheetTitle = "7. CREW - Departure";
// CREW DEPARTURE
bool? notificationSchengen = reader.ReadBoolean("CREWD.NotificationSchengen");
bool? notificationPax = reader.ReadBoolean("CREWD.NotificationPAX");
- for (int i = 0; i < crewdMessage.NumberOfExcelRows; i++)
+ for (int i = 0; i < 5000; i++)
{
- string crewLastName = string.Format("CREWD.CrewMemberLastName_{0}", i + 1);
- string crewFirstName = string.Format("CREWD.CrewMemberFirstName_{0}", i + 1);
- string crewGender = string.Format("CREWD.CrewMemberGender_{0}", i + 1);
- string crewNationality = string.Format("CREWD.CrewMemberNationality_{0}", i + 1);
- string crewDuty = string.Format("CREWD.CrewMemberDuty_{0}", i + 1);
- string crewPlaceOfBirth = string.Format("CREWD.CrewMemberPlaceOfBirth_{0}", i + 1);
- string crewDateOfBirth = string.Format("CREWD.CrewMemberDateOfBirth_{0}", i + 1);
- string crewIdentDocType = string.Format("CREWD.CrewMemberIdentityDocumentType_{0}", i + 1);
- string crewIdentDocId = string.Format("CREWD.CrewMemberIdentityDocumentId_{0}", i + 1);
- string crewVisaNo = string.Format("CREWD.CrewMemberVisaNumber_{0}", i + 1);
- string crewIssuing = string.Format("CREWD.CrewMemberIdentityDocumentIssuingState_{0}", i + 1);
- string crewIdentDocExpiry = string.Format("CREWD.CrewmemberIdentityDocumentExpiryDate_{0}", i + 1);
- string crewCountryOfBirth = string.Format("CREWD.CountryOfBirth_{0}", i + 1);
- string lastName = reader.ReadText(crewLastName);
- if (!lastName.IsNullOrEmpty())
+ string lastName = reader.ReadCellAsText(sheetTitle, string.Format("C{0}", i + 18));
+ if (lastName.IsNullOrEmpty()) break;
+
+ if (!(crewdMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is CREWD crewd))
{
- if (!(crewdMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is CREWD crew))
- {
- crew = new CREWD();
- crew.IsDeparture = true;
- crew.Identifier = (i + 1).ToString();
- crew.MessageHeader = crewdMessage;
- crewdMessage.Elements.Add(crew);
- }
-
- crew.IsDeparture = true;
- crew.NotificationSchengen = notificationSchengen;
- crew.NotificationPAX = notificationPax;
- crew.CrewMemberLastName = lastName;
- crew.CrewMemberFirstName = reader.ReadText(crewFirstName);
- crew.CrewMemberGender = reader.ReadGender(crewGender);
- crew.CrewMemberDuty = reader.ReadText(crewDuty);
- crew.CrewMemberNationality = reader.ReadNationality(crewNationality);
- crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth);
- crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth);
- crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType);
- crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId);
- crew.CrewMemberVisaNumber = reader.ReadText(crewVisaNo);
- crew.CrewMemberIdentityDocumentIssuingState = reader.ReadNationality(crewIssuing);
- crew.CrewMemberIdentityDocumentExpiryDate = reader.ReadDate(crewIdentDocExpiry);
- crew.CrewMemberCountryOfBirth = reader.ReadNationality(crewCountryOfBirth);
+ crewd = new CREWD();
+ crewd.Identifier = (i + 1).ToString();
+ crewd.MessageHeader = crewdMessage;
+ crewdMessage.Elements.Add(crewd);
}
+
+ crewd.NotificationSchengen = notificationSchengen;
+ crewd.NotificationPAX = notificationPax;
+ crewd.CrewMemberLastName = lastName;
+ crewd.CrewMemberFirstName = reader.ReadCellAsText(sheetTitle, string.Format("D{0}", i + 18));
+
+ crewd.CrewMemberGender = ReadGender(reader.ReadCellAsText(sheetTitle, string.Format("E{0}", i + 18)));
+
+ crewd.CrewMemberDuty = reader.ReadCellAsText(sheetTitle, string.Format("F{0}", i + 18));
+ crewd.CrewMemberNationality = ReadNationality(reader.ReadCellAsText(sheetTitle, string.Format("G{0}", i + 18)));
+ crewd.CrewMemberPlaceOfBirth = reader.ReadCellAsText(sheetTitle, string.Format("H{0}", i + 18));
+ crewd.CrewMemberCountryOfBirth = reader.ReadCellAsText(sheetTitle, string.Format("G{0}", i + 18));
+ crewd.CrewMemberDateOfBirth = reader.ReadCellAsDateTime(sheetTitle, string.Format("J{0}", i + 18));
+
+
+ crewd.CrewMemberIdentityDocumentType = ReadDocumentType(reader.ReadCellAsText(sheetTitle, string.Format("K{0}", i + 18)));
+
+ crewd.CrewMemberIdentityDocumentId = reader.ReadCellAsText(sheetTitle, string.Format("L{0}", i + 18));
+ crewd.CrewMemberVisaNumber = reader.ReadCellAsText(sheetTitle, string.Format("O{0}", i + 18));
+ crewd.CrewMemberIdentityDocumentIssuingState = ReadNationality(reader.ReadCellAsText(sheetTitle, string.Format("M{0}", i + 18)));
+ if (crewd.CrewMemberIdentityDocumentIssuingState.IsNullOrEmpty())
+ crewd.CrewMemberIdentityDocumentIssuingState = "XX";
+ crewd.CrewMemberIdentityDocumentExpiryDate = reader.ReadCellAsDateTime(sheetTitle, string.Format("N{0}", i + 18));
+ if (!crewd.CrewMemberIdentityDocumentExpiryDate.HasValue)
+ crewd.CrewMemberIdentityDocumentExpiryDate = new DateTime(2100, 12, 31);
+
+ crewd.Effects = reader.ReadCellAsText("2. PORT", string.Format("C{0}", i + 142));
}
return true;
}
@@ -2176,68 +2172,48 @@ namespace ENI2.Excel
private static bool ScanPAS(Message pasMessage, ExcelReader reader, bool isOldVersion)
{
pasMessage.DeleteElements();
+ string sheetTitle = "8. PAX - Arrival";
bool? notificationSchengen = reader.ReadBoolean("PAS.NotificationSchengen");
bool? notificationPax = reader.ReadBoolean("PAS.NotificationPAX");
- for (int i = 0; i < pasMessage.NumberOfExcelRows; i++)
+ for (int i = 0; i < 5000; i++)
{
- string pasLastName = string.Format("PAS.PassengerLastName_{0}", i + 1);
- string pasFirstName = string.Format("PAS.PassengerFirstName_{0}", i + 1);
- string pasGender = string.Format("PAS.PassengerGender_{0}", i + 1);
- string pasNationality = string.Format("PAS.PassengerNationality_{0}", i + 1);
- string pasEmbarkation = string.Format("PAS.PassengerPortOfEmbarkation_{0}", i + 1);
- string pasDebarkation = string.Format("PAS.PassengerPortOfDisembarkation_{0}", i + 1);
- string pasTransit = string.Format("PAS.PassengerInTransit_{0}", i + 1);
- string pasPlaceOfBirth = string.Format("PAS.PassengerPlaceOfBirth_{0}", i + 1);
- string pasDateOfBirth = string.Format("PAS.PassengerDateOfBirth_{0}", i + 1);
- string pasIdentDocType = string.Format("PAS.PassengerIdentityDocumentType_{0}", i + 1);
- string pasIdentDocId = string.Format("PAS.PassengerIdentityDocumentId_{0}", i + 1);
- string pasVisaNo = string.Format("PAS.PassengerVisaNumber_{0}", i + 1);
- string pasIssuing = string.Format("PAS.PassengerIdentityDocumentIssuingState_{0}", i + 1);
- string pasExpiryDate = string.Format("PAS.PassengerIdentityDocumentExpiryDate_{0}", i + 1);
- string pasCountryOfBirth = string.Format("PAS.CountryOfBirth_{0}", i + 1);
- string pasEmergencyCare = string.Format("PAS.EmergencyCare_{0}", i + 1);
- string pasEmergencyContact = string.Format("PAS.EmergencyContactNumber_{0}", i + 1);
- string lastName = reader.ReadText(pasLastName);
- string firstName = reader.ReadText(pasFirstName);
+ string lastName = reader.ReadCellAsText(sheetTitle, string.Format("C{0}", i + 17));
+ if (lastName.IsNullOrEmpty()) break;
- if (!lastName.IsNullOrEmpty() || !firstName.IsNullOrEmpty())
+ if (!(pasMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is PAS pas))
{
- if (!(pasMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is PAS pas))
- {
- pas = new PAS();
- pas.Identifier = (i + 1).ToString();
- pas.MessageHeader = pasMessage;
- pasMessage.Elements.Add(pas);
- }
-
- pas.NotificationSchengen = notificationSchengen;
- pas.NotificationPAX = notificationPax;
- pas.PassengerLastName = lastName;
- pas.PassengerFirstName = firstName;
- pas.PassengerGender = reader.ReadGender(pasGender);
- pas.PassengerNationality = reader.ReadNationality(pasNationality);
- // TODO: Nicht klar ob hier LOCODEs kommen oder nicht
- pas.PassengerPortOfEmbarkation = reader.ReadLoCode(pasEmbarkation);
- pas.PassengerPortOfDisembarkation = reader.ReadLoCode(pasDebarkation);
- pas.PassengerInTransit = reader.ReadBoolean(pasTransit);
- pas.PassengerPlaceOfBirth = reader.ReadText(pasPlaceOfBirth);
- pas.PassengerDateOfBirth = reader.ReadBirthDate(pasDateOfBirth);
- pas.PassengerIdentityDocumentType = reader.ReadIdentityDocumentType(pasIdentDocType);
- pas.PassengerIdentityDocumentId = reader.ReadText(pasIdentDocId);
- pas.PassengerVisaNumber = reader.ReadText(pasVisaNo);
- pas.PassengerIdentityDocumentIssuingState = reader.ReadNationality(pasIssuing);
- if (pas.PassengerIdentityDocumentIssuingState.IsNullOrEmpty() && isOldVersion)
- pas.PassengerIdentityDocumentIssuingState = "XX";
- pas.PassengerIdentityDocumentExpiryDate = reader.ReadDate(pasExpiryDate);
- if (!pas.PassengerIdentityDocumentExpiryDate.HasValue && isOldVersion)
- pas.PassengerIdentityDocumentExpiryDate = new DateTime(2100, 12, 31);
- pas.PassengerCountryOfBirth = reader.ReadNationality(pasCountryOfBirth);
- pas.EmergencyCare = reader.ReadText(pasEmergencyCare);
- pas.EmergencyContactNumber = reader.ReadText(pasEmergencyContact);
+ pas = new PAS();
+ pas.Identifier = (i + 1).ToString();
+ pas.MessageHeader = pasMessage;
+ pasMessage.Elements.Add(pas);
}
+
+ pas.NotificationSchengen = notificationSchengen;
+ pas.NotificationPAX = notificationPax;
+ pas.PassengerLastName = lastName;
+ pas.PassengerFirstName = reader.ReadCellAsText(sheetTitle, string.Format("D{0}", i + 17));
+
+ pas.PassengerGender = ReadGender(reader.ReadCellAsText(sheetTitle, string.Format("E{0}", i + 17)));
+ pas.PassengerPortOfEmbarkation = ReadLocode(reader.ReadCellAsText(sheetTitle, string.Format("F{0}", i + 17)));
+ pas.PassengerPortOfDisembarkation = ReadLocode(reader.ReadCellAsText(sheetTitle, string.Format("G{0}", i + 17)));
+
+ pas.PassengerInTransit = reader.ReadCellAsBool(sheetTitle, string.Format("H{0}", i + 17));
+ pas.PassengerNationality = ReadNationality(reader.ReadCellAsText(sheetTitle, string.Format("I{0}", i + 17)));
+ pas.PassengerPlaceOfBirth = reader.ReadCellAsText(sheetTitle, string.Format("J{0}", i + 17));
+ pas.PassengerCountryOfBirth = ReadNationality(reader.ReadCellAsText(sheetTitle, string.Format("K{0}", i + 17)));
+ pas.PassengerDateOfBirth = reader.ReadCellAsDateTime(sheetTitle, string.Format("L{0}", i + 17));
+
+ pas.PassengerIdentityDocumentType = ReadDocumentType(reader.ReadCellAsText(sheetTitle, string.Format("M{0}", i + 17)));
+ pas.PassengerIdentityDocumentId = reader.ReadCellAsText(sheetTitle, string.Format("N{0}", i + 17));
+ pas.PassengerIdentityDocumentIssuingState = ReadNationality(reader.ReadCellAsText(sheetTitle, string.Format("O{0}", i + 17)));
+ pas.PassengerIdentityDocumentExpiryDate = reader.ReadCellAsDateTime(sheetTitle, string.Format("P{0}", i + 17));
+
+ pas.PassengerVisaNumber = reader.ReadCellAsText(sheetTitle, string.Format("Q{0}", i + 17));
+ pas.EmergencyCare = reader.ReadCellAsText(sheetTitle, string.Format("R{0}", i + 17));
+ pas.EmergencyContactNumber = reader.ReadCellAsText(sheetTitle, string.Format("S{0}", i + 17));
}
return true;
@@ -2533,6 +2509,25 @@ namespace ENI2.Excel
return result;
}
+ public static string ReadLocode(string val)
+ {
+ string result = null;
+
+ val = val.ToUpper();
+ string portName = LocodeDB.PortNameFromLocode(val);
+ if (portName.IsNullOrEmpty())
+ {
+ _log.WarnFormat("unknown Locode {0}", val);
+ val = "";
+ }
+
+ // reverse search: if this is a name lookup port code
+
+ // LocodeDB.LocodeFromCity() ??
+
+ return result;
+ }
+
#endregion
}