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++)