diff --git a/ENI-2/ENI2/ENI2/App.config b/ENI-2/ENI2/ENI2/App.config
index 7daab5b1..757814ae 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.24/LockingService/LockingService.svc
+
-
- Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
+ Initial Catalog=nsw;Data Source=192.168.2.24\SQLEXPRESS;Uid=dfuser;pwd=dfpasswd;Persist Security Info=False;Connection Reset=false
+
diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj
index 16198b0f..ecadd669 100644
--- a/ENI-2/ENI2/ENI2/ENI2.csproj
+++ b/ENI-2/ENI2/ENI2/ENI2.csproj
@@ -35,7 +35,7 @@
true
publish.html
0
- 6.4.2.%2a
+ 6.4.3.%2a
false
true
true
diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx
index 51e1d583..295ea004 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 d91dcce5..d579d36a 100644
--- a/nsw/Source/bsmd.ExcelReadService/Util.cs
+++ b/nsw/Source/bsmd.ExcelReadService/Util.cs
@@ -1554,38 +1554,44 @@ namespace bsmd.ExcelReadService
poc30d.PortOfCallLast30DaysDateOfDeparture = reader.ReadDate(depDate);
poc30d.PortOfCallLast30DaysLocode = reader.ReadLoCode(locode);
- poc30d.PortOfCallLast30DaysCrewMembersJoined = reader.ReadBoolean(crewJoined);
+
+ // Verbesserungsvorschlag Jul/21: CrewMembersJoined Häkchen abhängig von den Namen in der Spalte
+ bool? PortOfCallLast30DaysCrewMembersJoinedFlag = reader.ReadBoolean(crewJoined);
+
+ string crewNameString = reader.ReadText(crewName);
+ if (!crewNameString.IsNullOrEmpty())
+ poc30d.PortOfCallLast30DaysCrewMembersJoined = true;
+ else
+ poc30d.PortOfCallLast30DaysCrewMembersJoined = false;
if (poc30d.PortOfCallLast30DaysCrewMembersJoined ?? false)
- {
- string crewNameString = reader.ReadText(crewName);
- if (!crewNameString.IsNullOrEmpty())
+ {
+ // try different separators
+ string[] crew = crewNameString.Split(';');
+ if (crew.Length == 1)
+ crew = crewNameString.Split(',');
+ ExcelReader.ReadState readState = ExcelReader.ReadState.OK;
+ for (int j = 0; j < crew.Length; j++)
{
- // try different separators
- string[] crew = crewNameString.Split(';');
- if (crew.Length == 1)
- crew = crewNameString.Split(',');
- ExcelReader.ReadState readState = ExcelReader.ReadState.OK;
- for (int j = 0; j < crew.Length; j++)
+ if (!(poc30d.GetSublistElementWithIdentifier((j + 1).ToString()) is PortOfCallLast30DaysCrewJoinedShip poc30dCrew))
{
- if (!(poc30d.GetSublistElementWithIdentifier((j + 1).ToString()) is PortOfCallLast30DaysCrewJoinedShip poc30dCrew))
- {
- poc30dCrew = new PortOfCallLast30DaysCrewJoinedShip();
- poc30dCrew.Identifier = (j + 1).ToString();
- poc30dCrew.PortOfCallLast30Days = poc30d;
- poc30d.CrewJoinedShip.Add(poc30dCrew);
- }
-
- poc30dCrew.PortOfCallLast30DaysCrewJoinedShipName = crew[j];
- if (crew[j].Length > 90)
- readState = ExcelReader.ReadState.FAIL;
+ poc30dCrew = new PortOfCallLast30DaysCrewJoinedShip();
+ poc30dCrew.Identifier = (j + 1).ToString();
+ poc30dCrew.PortOfCallLast30Days = poc30d;
+ poc30d.CrewJoinedShip.Add(poc30dCrew);
}
- reader.Conf.ConfirmText(crewName, crewNameString, readState);
- } else
- {
- reader.Conf.ConfirmText(crewName, null, ExcelReader.ReadState.FAIL);
+
+ poc30dCrew.PortOfCallLast30DaysCrewJoinedShipName = crew[j];
+ if (crew[j].Length > 90)
+ readState = ExcelReader.ReadState.FAIL;
}
-
+ reader.Conf.ConfirmText(crewName, crewNameString, readState);
+ }
+
+ // falls Häkchen gesetzt aber Namensfeld leer: Fehler markieren
+ if((PortOfCallLast30DaysCrewMembersJoinedFlag ?? false) && crewNameString.IsNullOrEmpty())
+ {
+ reader.Conf.ConfirmText(crewName, null, ExcelReader.ReadState.FAIL);
}
// Leer/def. Zeilen entfernen
@@ -1763,16 +1769,27 @@ namespace bsmd.ExcelReadService
reader.Conf.ConfirmText("SEC.ISSCIssuerType", isscIssuerType, sec.ISSCIssuerType.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL);
sec.GeneralDescriptionOfCargo = reader.ReadGeneralDescriptionOfCargo("SEC.GeneralDescriptionOfCargo");
-
+
bool? secKielArrival = reader.ReadBoolean("SEC.KielCanalPassagePlanned_Arrival");
bool? secKielDeparture = reader.ReadBoolean("SEC.KielCanalPassagePlanned_Departure");
+ // Leichter Umbau ("Verbesserung") der Logik Jul 21: Wenn ETA Werte drin stehen und das Flag nicht gesetzt ist
+ // wird es gesetzt sonst nicht gesetzt
sec.KielCanalPassagePlanned = (secKielArrival ?? false) || (secKielDeparture ?? false);
- if (sec.KielCanalPassagePlanned ?? false)
- {
- sec.KielCanalPassagePlannedIncomming = reader.ReadDateTime("SEC.ETADateKielCanalPassagePlannedIncomming", "SEC.ETATimeKielCanalPassagePlannedIncomming", !(secKielArrival ?? false));
- sec.KielCanalPassagePlannedOutgoing = reader.ReadDateTime("SEC.ETADateKielCanalPassagePlannedOutgoing", "SEC.ETATimeKielCanalPassagePlannedOutgoing", !(secKielDeparture ?? false));
- }
+ // if (sec.KielCanalPassagePlanned ?? false)
+ // {
+ sec.KielCanalPassagePlannedIncomming = reader.ReadDateTime("SEC.ETADateKielCanalPassagePlannedIncomming", "SEC.ETATimeKielCanalPassagePlannedIncomming", !(secKielArrival ?? false));
+ sec.KielCanalPassagePlannedOutgoing = reader.ReadDateTime("SEC.ETADateKielCanalPassagePlannedOutgoing", "SEC.ETATimeKielCanalPassagePlannedOutgoing", !(secKielDeparture ?? false));
+ // }
+
+ if ((!sec.KielCanalPassagePlanned ?? false) && sec.KielCanalPassagePlannedIncomming.HasValue) sec.KielCanalPassagePlanned = true;
+ if ((!sec.KielCanalPassagePlanned ?? false) && sec.KielCanalPassagePlannedOutgoing.HasValue) sec.KielCanalPassagePlanned = true;
+
+ if (!sec.KielCanalPassagePlannedIncomming.HasValue && !sec.KielCanalPassagePlannedOutgoing.HasValue)
+ sec.KielCanalPassagePlanned = false;
+
+
+
// Last10PortFacilitesCalled
for (int i = 1; i <= 10; i++)