diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx
index d7a1427e..a26ad426 100644
Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ
diff --git a/nsw/Dänemark/NSW-DK-Excel-Arrival.xlsx b/nsw/Dänemark/NSW-DK-Excel-Arrival.xlsx
index 4287b04e..14ee5763 100644
Binary files a/nsw/Dänemark/NSW-DK-Excel-Arrival.xlsx and b/nsw/Dänemark/NSW-DK-Excel-Arrival.xlsx differ
diff --git a/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx b/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx
index dc69da7f..f06d79c8 100644
Binary files a/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx and b/nsw/Dänemark/NSW-DK-Excel-Arrival.xltx differ
diff --git a/nsw/NSW Schnittstelle Meldetypen und Attribute API 4.0.xlsx b/nsw/NSW Schnittstelle Meldetypen und Attribute API 4.0.xlsx
new file mode 100644
index 00000000..742c2402
Binary files /dev/null and b/nsw/NSW Schnittstelle Meldetypen und Attribute API 4.0.xlsx differ
diff --git a/nsw/NSW Schnittstelle Validierungsregeln API 4.0.xlsx b/nsw/NSW Schnittstelle Validierungsregeln API 4.0.xlsx
new file mode 100644
index 00000000..0ed06b0c
Binary files /dev/null and b/nsw/NSW Schnittstelle Validierungsregeln API 4.0.xlsx differ
diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs
index 5756c388..62839259 100644
--- a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs
+++ b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs
@@ -360,6 +360,17 @@ namespace bsmd.ExcelReadService
}
}
+ internal DateTime? ReadBirthDate(string lookup)
+ {
+ DateTime? result = this.ReadDate(lookup);
+ // mark fail if date is in the future
+ if(result.HasValue)
+ {
+ if (result.Value > DateTime.Now) this.Conf.ConfirmDate(lookup, result, ReadState.FAIL);
+ }
+ return result;
+ }
+
internal DateTime? ReadDate(string lookup)
{
try
diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs
index 4498d446..5eaf54e7 100644
--- a/nsw/Source/bsmd.ExcelReadService/Util.cs
+++ b/nsw/Source/bsmd.ExcelReadService/Util.cs
@@ -425,8 +425,10 @@ namespace bsmd.ExcelReadService
string imdg_stowagePosition = string.Format("HAZA.IMDG.StowagePosition_{0}", i);
string imdg_portOfLoading = string.Format("HAZA.IMDG.PortOfLoading_{0}", i);
string imdg_portOfDischarge = string.Format("HAZA.IMDG.PortOfDischarge_{0}", i);
+ string imdg_containerNumber = string.Format("HAZA.IMDG.ContainerNumber_{0}", i);
- string unNumber = reader.ReadText(imdg_unno);
+
+ string unNumber = reader.ReadText(imdg_unno);
if(unNumber.IsNullOrEmpty()) // if unnumber is not set ignore this row
{
reader.Conf.ConfirmText(imdg_unno, null, ExcelReader.ReadState.WARN);
@@ -466,8 +468,10 @@ namespace bsmd.ExcelReadService
imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading);
reader.Conf.ConfirmText(imdg_portOfLoading, imdgPosition.PortOfLoading, imdgPosition.PortOfLoading.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge);
- reader.Conf.ConfirmText(imdg_portOfDischarge, imdgPosition.PortOfDischarge, imdgPosition.PortOfDischarge.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
- }
+ reader.Conf.ConfirmText(imdg_portOfDischarge, imdgPosition.PortOfDischarge, imdgPosition.PortOfDischarge.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
+ imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber);
+ reader.Conf.ConfirmText(imdg_containerNumber, imdgPosition.ContainerNumber, imdgPosition.ContainerNumber.IsNullOrEmpty() ? ExcelReader.ReadState.NONE : ExcelReader.ReadState.OK);
+ }
#endregion
@@ -701,6 +705,7 @@ namespace bsmd.ExcelReadService
string imdg_stowagePosition = string.Format("HAZD.IMDG.StowagePosition_{0}", i);
string imdg_portOfLoading = string.Format("HAZD.IMDG.PortOfLoading_{0}", i);
string imdg_portOfDischarge = string.Format("HAZD.IMDG.PortOfDischarge_{0}", i);
+ string imdg_containerNumber = string.Format("HAZD.IMDG.ContainerNumber_{0}", i);
string unNumber = reader.ReadText(imdg_unno);
if (unNumber.IsNullOrEmpty()) // if unnumber is not set ignore this row
@@ -743,6 +748,8 @@ namespace bsmd.ExcelReadService
reader.Conf.ConfirmText(imdg_portOfLoading, imdgPosition.PortOfLoading, imdgPosition.PortOfLoading.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge);
reader.Conf.ConfirmText(imdg_portOfDischarge, imdgPosition.PortOfDischarge, imdgPosition.PortOfDischarge.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
+ imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber);
+ reader.Conf.ConfirmText(imdg_containerNumber, imdgPosition.ContainerNumber, imdgPosition.ContainerNumber.IsNullOrEmpty() ? ExcelReader.ReadState.NONE : ExcelReader.ReadState.OK);
}
#endregion
@@ -958,8 +965,8 @@ namespace bsmd.ExcelReadService
}
STAT stat = statMessage.Elements[0] as STAT;
Util.ScanMessage(stat, reader);
- stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
- reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, stat.MMSINumber.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
+ stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
+ reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, (stat.MMSINumber.IsNullOrEmpty() || (stat.MMSINumber.Length != 7)) ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId");
if(!stat.ISMCompanyId.IsNullOrEmpty() && stat.ISMCompanyId.Length < 7)
@@ -1206,23 +1213,44 @@ namespace bsmd.ExcelReadService
}
waste.WasteType = (int?) reader.ReadNumber(wasteCode);
- reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplayV4, ExcelReader.ReadState.OK);
- reader.Conf.ConfirmNumber(wasteCode, waste.WasteType, ExcelReader.ReadState.OK);
+ if (reader.Mode == ExcelReader.CountryMode.DE)
+ {
+ reader.Conf.ConfirmText(wastetype, waste.WasteTypeDisplayV4, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmNumber(wasteCode, waste.WasteType, ExcelReader.ReadState.OK);
+ }
+ else if (reader.Mode == ExcelReader.CountryMode.DK)
+ {
+ reader.Conf.ConfirmText(wastetype, WAS.DKWasteTypes[i - 1], ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmNumber(wasteCode, WAS.DKWasteCodes[i - 1], ExcelReader.ReadState.OK);
+ }
+
+ // Waste description Spezialfälle für DK
waste.WasteDescription = reader.ReadText(wasteDescription);
- if (waste.WasteDescription.IsNullOrEmpty())
- {
- if (reader.Mode == ExcelReader.CountryMode.DE)
- {
+ if (waste.WasteDescription.IsNullOrEmpty())
+ {
+ if (reader.Mode == ExcelReader.CountryMode.DE)
+ {
waste.WasteDescription = "-";
- }
- else if (reader.Mode == ExcelReader.CountryMode.DK)
- {
- waste.WasteDescription = "-";
- if (i == 6) waste.WasteDescription = "Domestic wastes";
+ }
+ else if (reader.Mode == ExcelReader.CountryMode.DK)
+ {
+ waste.WasteDescription = "-";
+ if (i == 6) waste.WasteDescription = "Domestic waste";
if (i == 9) waste.WasteDescription = "Operational waste";
- }
- }
+ }
+ }
+ else
+ {
+ if (reader.Mode == ExcelReader.CountryMode.DK)
+ {
+ if (i == 6)
+ waste.WasteDescription = string.Format("Domestic waste - {0}", waste.WasteDescription);
+ if (i == 9)
+ waste.WasteDescription = string.Format("Operational waste - {0}", waste.WasteDescription);
+ }
+ }
+
reader.Conf.ConfirmText(wasteDescription, waste.WasteDescription, waste.WasteDescription.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK);
waste.WasteDisposalAmount_MTQ = reader.ReadNumberDefaultZero(wasteAmount);
waste.WasteCapacity_MTQ = reader.ReadNumberDefaultZero(wasteCapacity);
@@ -1248,6 +1276,28 @@ namespace bsmd.ExcelReadService
}
+ try
+ {
+ // Übergangsphase: Für "DE" werden nur 9 Positionen verwendet
+ // EMail Christin mit angehängtem Excel Sheet vom 30.1.2017
+ if (reader.Mode == ExcelReader.CountryMode.DE)
+ {
+ Waste nrSeven = was.GetSublistElementWithIdentifier("7") as Waste;
+ Waste nrEleven = was.GetSublistElementWithIdentifier("11") as Waste;
+ nrSeven.WasteDescription = nrEleven.WasteDescription;
+ nrSeven.WasteDisposalAmount_MTQ = nrEleven.WasteDisposalAmount_MTQ;
+ nrSeven.WasteCapacity_MTQ = nrEleven.WasteCapacity_MTQ;
+ nrSeven.WasteAmountRetained_MTQ = nrEleven.WasteAmountRetained_MTQ;
+ nrSeven.WasteDisposalPort = nrEleven.WasteDisposalPort;
+ nrSeven.WasteAmountGeneratedTillNextPort_MTQ = nrEleven.WasteAmountGeneratedTillNextPort_MTQ;
+ was.Waste.RemoveRange(9, 6); // 9-15 entfernen
+ }
+ }
+ catch(Exception ex)
+ {
+ _log.ErrorFormat("Error Waste Workaround DE: {0}", ex.Message);
+ }
+
}
#endregion
@@ -1275,10 +1325,12 @@ namespace bsmd.ExcelReadService
try
{
- // lt. Mail von Christin am 11.10.2016
- // "SEC" Mode, die Werte aus last10PortFacilitesCalled (SEC) werden übernommen
- // das funktioniert, da SEC vor MDH gelesen wird
- if (!kuerzelErsteZelle.IsNullOrEmpty() && kuerzelErsteZelle.Equals("sec", StringComparison.OrdinalIgnoreCase))
+ #region PoC last 30 days
+
+ // lt. Mail von Christin am 11.10.2016
+ // "SEC" Mode, die Werte aus last10PortFacilitesCalled (SEC) werden übernommen
+ // das funktioniert, da SEC vor MDH gelesen wird
+ if (!kuerzelErsteZelle.IsNullOrEmpty() && kuerzelErsteZelle.Equals("sec", StringComparison.OrdinalIgnoreCase))
{
Message secMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.SEC);
if (secMessage.Elements.Count == 0) return;
@@ -1369,7 +1421,99 @@ namespace bsmd.ExcelReadService
}
}
- }
+ #endregion
+
+ #region SanitaryMeasures
+
+ if (mdh.SanitaryMeasuresApplied ?? false)
+ {
+ for (int i = 1; i <= 3; i++)
+ {
+ string smType = string.Format("MDH.SanitaryMeasuresType_{0}", i);
+ string smLocation = string.Format("MDH.SanitaryMeasuresLocation_{0}", i);
+ string smDate = string.Format("MDH.SanitaryMeasuresDate_{0}", i);
+
+ SanitaryMeasuresDetail smd = mdh.GetSanitaryMeasuresDetailWithIdentifier(i.ToString());
+ if(smd == null)
+ {
+ smd = new SanitaryMeasuresDetail();
+ smd.Identifier = i.ToString();
+ mdh.SanitaryMeasuresDetails.Add(smd);
+ smd.MDH = mdh;
+ }
+
+ smd.SanitaryMeasuresType = reader.ReadText(smType);
+ reader.Conf.ConfirmText(smType, smd.SanitaryMeasuresType, smd.SanitaryMeasuresType.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
+ smd.SanitaryMeasuresLocation = reader.ReadText(smLocation);
+ reader.Conf.ConfirmText(smLocation, smd.SanitaryMeasuresLocation, smd.SanitaryMeasuresLocation.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
+ smd.SanitaryMeasuresDate = reader.ReadDate(smDate);
+ // dont save completely empty structs
+ if (!smd.SanitaryMeasuresDate.HasValue && smd.SanitaryMeasuresLocation.IsNullOrEmpty() && smd.SanitaryMeasuresType.IsNullOrEmpty())
+ mdh.SanitaryMeasuresDetails.Remove(smd);
+ }
+ }
+
+ #endregion
+
+ #region InfectedArea
+
+ if (mdh.InfectedAreaVisited ?? false)
+ {
+ for (int i = 1; i <= 3; i++)
+ {
+ string iaPort = string.Format("MDH.InfectedAreaPort_{0}", i);
+ string iaDate = string.Format("MDH.InfectedAreaDate_{0}", i);
+ InfectedArea ia = mdh.GetInfectedAreaWithIdentifier(i.ToString());
+ if (ia == null)
+ {
+ ia = new InfectedArea();
+ ia.Identifier = i.ToString();
+ mdh.InfectedAreas.Add(ia);
+ ia.MDH = mdh;
+ }
+ ia.InfectedAreaPort = reader.ReadText(iaPort);
+ reader.Conf.ConfirmText(iaPort, ia.InfectedAreaPort, ia.InfectedAreaPort.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
+ ia.InfectedAreaDate = reader.ReadDate(iaDate);
+ // dont save completely empty structs
+ if (!ia.InfectedAreaDate.HasValue && ia.InfectedAreaPort.IsNullOrEmpty())
+ mdh.InfectedAreas.Remove(ia);
+ }
+ }
+
+ #endregion
+
+ #region StowawaysJoiningLocation
+
+ if(mdh.StowawaysDetected ?? false)
+ {
+ for (int i = 1; i <= 3; i++)
+ {
+ string sjlLookup = string.Format("MDH.StowawaysJoiningLocation_{0}", i);
+ StowawaysJoiningLocation sjl = mdh.GetStowawaysJoiningLocationWithIdentifier(i.ToString());
+ if (sjl == null)
+ {
+ sjl = new StowawaysJoiningLocation();
+ sjl.Identifier = i.ToString();
+ sjl.MDH = mdh;
+ mdh.StowawaysJoiningLocations.Add(sjl);
+ }
+
+ sjl.StowawayJoiningLocation = reader.ReadText(sjlLookup);
+ if (sjl.StowawayJoiningLocation.IsNullOrEmpty())
+ {
+ reader.Conf.ConfirmText(sjlLookup, null, ExcelReader.ReadState.WARN);
+ mdh.StowawaysJoiningLocations.Remove(sjl);
+ }
+ else
+ {
+ reader.Conf.ConfirmText(sjlLookup, sjl.StowawayJoiningLocation, ExcelReader.ReadState.OK);
+ }
+ }
+ }
+
+ #endregion
+
+ }
catch(Exception ex)
{
_log.ErrorFormat("Crash during reading of MDH message: {0}", ex);
@@ -1434,8 +1578,8 @@ namespace bsmd.ExcelReadService
string genDescCargo = reader.ReadText("SEC.GeneralDescriptionOfCargo");
if(genDescCargo != null)
{
- if (genDescCargo.Equals("container", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 0;
- if (genDescCargo.Equals("vehicles", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 1;
+ if (genDescCargo.Contains("container", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 0;
+ if (genDescCargo.Contains("vehicles", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 1;
if (genDescCargo.Contains("convent", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 2;
if (genDescCargo.Contains("dry", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 3;
if (genDescCargo.Contains("liquid", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 4;
@@ -1704,6 +1848,8 @@ namespace bsmd.ExcelReadService
// diese Nachricht bleibt auch wenn sie leer ist
pre72h.ConditionCargoBallastTanks = reader.ReadConditionTanks("PRE72H.ConditionCargoBallastTanks");
pre72h.TankerHullConfiguration = reader.ReadHullConfiguration("PRE72H.TankerHullConfiguration");
+ pre72h.PlannedWorks = reader.ReadText("PRE72H.PlannedWorks");
+ reader.Conf.ConfirmText("PRE72H.PlannedWorks", pre72h.PlannedWorks, pre72h.PlannedWorks.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
}
#endregion
@@ -1878,7 +2024,7 @@ namespace bsmd.ExcelReadService
crew.CrewMemberLastName = lastName;
reader.Conf.ConfirmText(crewLastName, lastName, ExcelReader.ReadState.OK);
crew.CrewMemberFirstName = reader.ReadText(crewFirstName);
- reader.Conf.ConfirmText(crewFirstName, crew.CrewMemberFirstName, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmText(crewFirstName, crew.CrewMemberFirstName, crew.CrewMemberFirstName.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
crew.CrewMemberGender = reader.ReadGender(crewGender);
crew.CrewMemberDuty = reader.ReadText(crewDuty);
reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, ExcelReader.ReadState.OK);
@@ -1887,7 +2033,7 @@ namespace bsmd.ExcelReadService
crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth);
reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK);
- crew.CrewMemberDateOfBirth = reader.ReadDate(crewDateOfBirth);
+ crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth);
crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType);
crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId);
@@ -1930,7 +2076,7 @@ namespace bsmd.ExcelReadService
crew.CrewMemberLastName = lastName;
reader.Conf.ConfirmText(crewLastName, lastName, ExcelReader.ReadState.OK);
crew.CrewMemberFirstName = reader.ReadText(crewFirstName);
- reader.Conf.ConfirmText(crewFirstName, crew.CrewMemberFirstName, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmText(crewFirstName, crew.CrewMemberFirstName, crew.CrewMemberFirstName.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
crew.CrewMemberGender = reader.ReadGender(crewGender);
crew.CrewMemberDuty = reader.ReadText(crewDuty);
reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, ExcelReader.ReadState.OK);
@@ -1939,7 +2085,7 @@ namespace bsmd.ExcelReadService
crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth);
reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK);
- crew.CrewMemberDateOfBirth = reader.ReadDate(crewDateOfBirth);
+ crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth);
crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType);
crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId);
@@ -1989,7 +2135,7 @@ namespace bsmd.ExcelReadService
pas.PassengerLastName = lastName;
reader.Conf.ConfirmText(pasLastName, lastName, ExcelReader.ReadState.OK);
pas.PassengerFirstName = reader.ReadText(pasFirstName);
- reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, pas.PassengerFirstName.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
pas.PassengerGender = reader.ReadGender(pasGender);
pas.PassengerNationality = reader.ReadNationality(pasNationality);
// TODO: Nicht klar ob hier LOCODEs kommen oder nicht
@@ -2000,7 +2146,7 @@ namespace bsmd.ExcelReadService
pas.PassengerInTransit = reader.ReadBoolean(pasTransit);
pas.PassengerPlaceOfBirth = reader.ReadText(pasPlaceOfBirth);
reader.Conf.ConfirmText(pasPlaceOfBirth, pas.PassengerPlaceOfBirth, ExcelReader.ReadState.OK);
- pas.PassengerDateOfBirth = reader.ReadDate(pasDateOfBirth);
+ pas.PassengerDateOfBirth = reader.ReadBirthDate(pasDateOfBirth);
pas.PassengerIdentityDocumentType = reader.ReadIdentityDocumentType(pasIdentDocType);
pas.PassengerIdentityDocumentId = reader.ReadText(pasIdentDocId);
reader.Conf.ConfirmText(pasIdentDocId, pas.PassengerIdentityDocumentId, ExcelReader.ReadState.OK);
@@ -2043,7 +2189,7 @@ namespace bsmd.ExcelReadService
pas.PassengerLastName = lastName;
reader.Conf.ConfirmText(pasLastName, lastName, ExcelReader.ReadState.OK);
pas.PassengerFirstName = reader.ReadText(pasFirstName);
- reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, ExcelReader.ReadState.OK);
+ reader.Conf.ConfirmText(pasFirstName, pas.PassengerFirstName, pas.PassengerFirstName.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
pas.PassengerGender = reader.ReadGender(pasGender);
pas.PassengerNationality = reader.ReadNationality(pasNationality);
// TODO: Nicht klar ob hier LOCODEs kommen oder nicht
@@ -2054,7 +2200,7 @@ namespace bsmd.ExcelReadService
pas.PassengerInTransit = reader.ReadBoolean(pasTransit);
pas.PassengerPlaceOfBirth = reader.ReadText(pasPlaceOfBirth);
reader.Conf.ConfirmText(pasPlaceOfBirth, pas.PassengerPlaceOfBirth, ExcelReader.ReadState.OK);
- pas.PassengerDateOfBirth = reader.ReadDate(pasDateOfBirth);
+ pas.PassengerDateOfBirth = reader.ReadBirthDate(pasDateOfBirth);
pas.PassengerIdentityDocumentType = reader.ReadIdentityDocumentType(pasIdentDocType);
pas.PassengerIdentityDocumentId = reader.ReadText(pasIdentDocId);
reader.Conf.ConfirmText(pasIdentDocId, pas.PassengerIdentityDocumentId, ExcelReader.ReadState.OK);
@@ -2172,13 +2318,14 @@ namespace bsmd.ExcelReadService
}
- #endregion
+ #endregion
+ #region LookupMessageCore
- ///
- /// Check with cell values if this message core is already in our DB
- ///
- private static MessageCore LookupMessageCore(ExcelReader reader, out string message)
+ ///
+ /// Check with cell values if this message core is already in our DB
+ ///
+ private static MessageCore LookupMessageCore(ExcelReader reader, out string message)
{
// lookup using field values
MessageCore result = null;
@@ -2377,9 +2524,12 @@ namespace bsmd.ExcelReadService
}
return result;
- }
+ }
- private static DateTime ConstructDate(string etaDateString, string etaTime)
+ #endregion
+
+ /*
+ private static DateTime ConstructDate(string etaDateString, string etaTime)
{
DateTime result = DateTime.Now;
if (DateTime.TryParse(etaDateString, out result))
@@ -2390,8 +2540,11 @@ namespace bsmd.ExcelReadService
}
return result;
}
+ */
- private static Message GetMessageWithType(List messages, MessageCore core, Message.NotificationClass type)
+ #region GetMessageWithType
+
+ private static Message GetMessageWithType(List messages, MessageCore core, Message.NotificationClass type)
{
foreach(Message message in messages)
if (message.MessageNotificationClass == type) return message;
@@ -2404,5 +2557,7 @@ namespace bsmd.ExcelReadService
return newMessage;
}
- }
+ #endregion
+
+ }
}
diff --git a/nsw/Source/bsmd.database/PRE72H.cs b/nsw/Source/bsmd.database/PRE72H.cs
index b99794d0..6ee863f3 100644
--- a/nsw/Source/bsmd.database/PRE72H.cs
+++ b/nsw/Source/bsmd.database/PRE72H.cs
@@ -52,7 +52,7 @@ namespace bsmd.database
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
- [LookupName("PRE72H.PlannedWorks")]
+ // nach Util verschoben
[MaxLength(255)]
public string PlannedWorks { get; set; }
diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs
index 4ed51628..1cd7e34f 100644
--- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs
+++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs
@@ -2,6 +2,6 @@
[assembly: AssemblyCompany("Informatikbüro Daniel Schick")]
[assembly: AssemblyProduct("BSMD NSW interface")]
-[assembly: AssemblyInformationalVersion("3.3.11")]
+[assembly: AssemblyInformationalVersion("3.3.12")]
[assembly: AssemblyCopyright("Copyright © 2014-2017 Informatikbüro Daniel Schick. All rights reserved.")]
[assembly: AssemblyTrademark("")]
\ No newline at end of file
diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs
index 637361d9..cc44f407 100644
--- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs
+++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("3.3.11.*")]
+[assembly: AssemblyVersion("3.3.12.*")]
diff --git a/nsw/Source/bsmd.database/WAS.cs b/nsw/Source/bsmd.database/WAS.cs
index 26955bdf..d1c91176 100644
--- a/nsw/Source/bsmd.database/WAS.cs
+++ b/nsw/Source/bsmd.database/WAS.cs
@@ -21,6 +21,9 @@ namespace bsmd.database
private List waste = new List();
+ private static readonly int[] dkWasteCodes = { 1100, 1200, 1300, 2100, 2200, 2300, 2311, 2308, 2300, 2309, 3000, 5100, 5200, 5300, 2300 };
+ private static readonly string[] dkWasteTypes = { "Waste oils - Sludge", "Waste oils - Bilge water", "Waste oils - Other", "Garbage - Food waste", "Garbage - Plastic", "Garbage - Other", "Garbage - Other - Cooking oil", "Garbage - Other - Incinerator ashes and clinkers", "Garbage - Other", "Garbage - Other - Animal carcasses", "Sewage", "Cargo residues - Marpol Annex I - Other", "Cargo residues - Marpol Annex II - Other", "Cargo residues - Marpol Annex V - Other", "Garbage - Other" };
+
public WAS()
{
this.tablename = "[dbo].[WAS]";
@@ -28,6 +31,10 @@ namespace bsmd.database
#region Properties
+ public static int[] DKWasteCodes { get { return dkWasteCodes; } }
+
+ public static string[] DKWasteTypes { get { return dkWasteTypes; } }
+
[ShowReport]
public bool? WasteDisposalValidExemption { get; set; }