diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index e9fb3843..6276c01e 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 8ac3e0f2..4287b04e 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 fdbe2f6c..2413bc72 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/Dänemark/NSW-DK-Excel-Departure.xlsx b/nsw/Dänemark/NSW-DK-Excel-Departure.xlsx index 6a0dcfe6..c2a5a50d 100644 Binary files a/nsw/Dänemark/NSW-DK-Excel-Departure.xlsx and b/nsw/Dänemark/NSW-DK-Excel-Departure.xlsx differ diff --git a/nsw/Dänemark/NSW-DK-Excel-Departure.xltx b/nsw/Dänemark/NSW-DK-Excel-Departure.xltx index e6abfa3a..51c5b1fd 100644 Binary files a/nsw/Dänemark/NSW-DK-Excel-Departure.xltx and b/nsw/Dänemark/NSW-DK-Excel-Departure.xltx differ diff --git a/nsw/Source/bsmd.ExcelReadService/Confirmation.cs b/nsw/Source/bsmd.ExcelReadService/Confirmation.cs index 233071ce..d5cee001 100644 --- a/nsw/Source/bsmd.ExcelReadService/Confirmation.cs +++ b/nsw/Source/bsmd.ExcelReadService/Confirmation.cs @@ -60,7 +60,7 @@ namespace bsmd.ExcelReadService foreach(Name workbookName in aWorkbook.Names) { - _log.Info(workbookName.Name); + // _log.Info(workbookName.Name); if (workbookName.Name.Contains("!")) { continue; diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs index 1a5dfa9a..e9a4b836 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs @@ -313,7 +313,11 @@ namespace bsmd.ExcelReadService if (_nameDict.ContainsKey(lookup)) { var val = _nameDict[lookup].RefersToRange.Value; - if (val is DateTime) return val; + if (val is DateTime) + { + this.Conf.ConfirmDate(lookup, date, ReadState.OK); + return val; + } if (val is double) { try diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs index dbfdbc91..7a9bc4bd 100644 --- a/nsw/Source/bsmd.ExcelReadService/Util.cs +++ b/nsw/Source/bsmd.ExcelReadService/Util.cs @@ -282,6 +282,7 @@ namespace bsmd.ExcelReadService bpol.PortOfItineraries.Add(poi); } poi.PortOfItineraryName = bpolNameValue; + reader.Conf.ConfirmText(bpolName, bpolNameValue, ExcelReader.ReadState.OK); poi.PortOfItineraryLocode = reader.ReadLoCode(bpolLocode); if (!poi.PortOfItineraryLocode.IsNullOrEmpty() && (poi.PortOfItineraryLocode.Length > 5)) { @@ -582,10 +583,12 @@ namespace bsmd.ExcelReadService { if ((i == 3) || (i == 8) || (i == 9)) waste.WasteDescription = "-"; } + reader.Conf.ConfirmText(wasteDescription, waste.WasteDescription, ExcelReader.ReadState.OK); waste.WasteDisposalAmount_MTQ = reader.ReadNumber(wasteAmount); waste.WasteCapacity_MTQ = reader.ReadNumber(wasteCapacity); waste.WasteAmountRetained_MTQ = reader.ReadNumber(wasteRetained); waste.WasteDisposalPort = reader.ReadText(wastePort); // TODO: check for LOCODE? + reader.Conf.ConfirmText(wastePort, waste.WasteDisposalPort, ExcelReader.ReadState.OK); waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumber(amountGen); // empty wastes not removed, are required elements! @@ -693,7 +696,12 @@ namespace bsmd.ExcelReadService poc30dCrew.PortOfCallLast30DaysCrewJoinedShipName = crew[j]; } + reader.Conf.ConfirmText(crewName, crewNameString, ExcelReader.ReadState.OK); + } else + { + reader.Conf.ConfirmText(crewName, null, ExcelReader.ReadState.WARN); } + } // Leer/def. Zeilen entfernen @@ -778,7 +786,9 @@ namespace bsmd.ExcelReadService } l10fc.PortFacilityPortName = reader.ReadText(portName); + reader.Conf.ConfirmText(portName, l10fc.PortFacilityPortName, ExcelReader.ReadState.OK); l10fc.PortFacilityPortCountry = reader.ReadText(portCountry); + reader.Conf.ConfirmText(portCountry, l10fc.PortFacilityPortCountry, ExcelReader.ReadState.OK); l10fc.PortFacilityPortLoCode = reader.ReadLoCode(portLocode); l10fc.PortFacilityDateOfArrival = reader.ReadDate(portDateOfArrival); l10fc.PortFacilityDateOfDeparture = reader.ReadDate(portDateOfDeparture); @@ -790,8 +800,9 @@ namespace bsmd.ExcelReadService { while (l10fc.PortFacilityGISISCode.Length < 4) l10fc.PortFacilityGISISCode = "0" + l10fc.PortFacilityGISISCode; } - + reader.Conf.ConfirmText(portGISISCode, l10fc.PortFacilityGISISCode, ExcelReader.ReadState.OK); l10fc.PortFacilitySecurityMattersToReport = reader.ReadText(portSecMatters); + reader.Conf.ConfirmText(portSecMatters, l10fc.PortFacilitySecurityMattersToReport, ExcelReader.ReadState.OK); } @@ -822,6 +833,7 @@ namespace bsmd.ExcelReadService sec.ShipToShipActivitiesDuringLastTenPortFacilitiesCalled.Remove(s2sActivity); continue; } + reader.Conf.ConfirmText(s2sName, s2sActivity.ShipToShipActivityLocationName, ExcelReader.ReadState.OK); s2sActivity.ShipToShipActivityLocationLoCode = reader.ReadLoCode(s2sLocode); s2sActivity.ShipToShipActivityLocationCoordinatesLatitude = (int?)reader.ReadNumber(s2sLatitude); @@ -833,7 +845,8 @@ namespace bsmd.ExcelReadService s2sActivity.ShipToShipActivityLocationCoordinatesLongitude = null; s2sActivity.ShipToShipActivityDateFrom = reader.ReadDate(s2sFromDate); s2sActivity.ShipToShipActivityDateTo = reader.ReadDate(s2sToDate); - s2sActivity.ShipToShipActivityType = reader.ReadText(s2sActivityString); + s2sActivity.ShipToShipActivityType = reader.ReadText(s2sActivityString); + reader.Conf.ConfirmText(s2sActivityString, s2sActivity.ShipToShipActivityType, ExcelReader.ReadState.OK); } } @@ -860,6 +873,7 @@ namespace bsmd.ExcelReadService bkra.BunkerFuelQuantity_TNE = reader.ReadNumber(lnQuantity); bkra.BunkerFuelType = reader.ReadText(lnType); + reader.Conf.ConfirmText(lnType, bkra.BunkerFuelType, ExcelReader.ReadState.OK); // dont save empty element if(bkra.IsNew && !bkra.BunkerFuelQuantity_TNE.HasValue && bkra.BunkerFuelType.IsNullOrEmpty()) @@ -889,6 +903,7 @@ namespace bsmd.ExcelReadService bkrd.BunkerFuelQuantity_TNE = reader.ReadNumber(lnQuantity); bkrd.BunkerFuelType = reader.ReadText(lnType); + reader.Conf.ConfirmText(lnType, bkrd.BunkerFuelType, ExcelReader.ReadState.OK); // dont save empty element if(bkrd.IsNew && !bkrd.BunkerFuelQuantity_TNE.HasValue && bkrd.BunkerFuelType.IsNullOrEmpty()) @@ -908,6 +923,7 @@ namespace bsmd.ExcelReadService string towageName = reader.ReadText("TOWA.TowageOnArrivalName_1"); if (!towageName.IsNullOrEmpty()) { + reader.Conf.ConfirmText("TOWA.TowageOnArrivalName_1", towageName, ExcelReader.ReadState.OK); if (towaMessage.Elements.Count == 0) { TOWA newTOWA = new TOWA(); @@ -931,6 +947,7 @@ namespace bsmd.ExcelReadService string towageName = reader.ReadText("TOWD.TowageOnDepartureName_1"); if(!towageName.IsNullOrEmpty()) { + reader.Conf.ConfirmText("TOWD.TowageOnDepartureName_1", towageName, ExcelReader.ReadState.OK); if(towdMessage.Elements.Count == 0) { TOWD newTOWD = new TOWD(); @@ -1006,10 +1023,14 @@ namespace bsmd.ExcelReadService } sto.Name = reader.ReadTextNoWhitespace(stoName); + reader.Conf.ConfirmText(stoName, sto.Name, ExcelReader.ReadState.OK); sto.Quantity = (int?)reader.ReadNumber(stoQuantity); sto.QuantityUnit = reader.ReadTextNoWhitespace(stoQuantityUnit); + reader.Conf.ConfirmText(stoQuantityUnit, sto.QuantityUnit, ExcelReader.ReadState.OK); sto.LocationOnBoard = reader.ReadTextNoWhitespace(stoLocationOnBoard); + reader.Conf.ConfirmText(stoLocationOnBoard, sto.LocationOnBoard, ExcelReader.ReadState.OK); sto.OfficialUse = reader.ReadTextNoWhitespace(stoOfficialUse); + reader.Conf.ConfirmText(stoOfficialUse, sto.OfficialUse, ExcelReader.ReadState.OK); // dont save empty element if (sto.IsNew && sto.Name.IsNullOrEmpty()) @@ -1044,12 +1065,25 @@ namespace bsmd.ExcelReadService { // irgendwas mit "*load*" drin wird load, alles andere discharge ladg.CargoHandlingType = handlingTypeString.Contains("load", StringComparison.InvariantCultureIgnoreCase) ? (byte) 0 : (byte) 1; + reader.Conf.ConfirmText(lnCHT, handlingTypeString, ExcelReader.ReadState.OK); + } else + { + reader.Conf.ConfirmText(lnCHT, handlingTypeString, ExcelReader.ReadState.WARN); } ladg.CargoCodeNST = reader.ReadText(lnType); if ((ladg.CargoCodeNST != null) && (ladg.CargoCodeNST.Length == 1)) ladg.CargoCodeNST = "0" + ladg.CargoCodeNST; - if ((ladg.CargoCodeNST != null) && (ladg.CargoCodeNST.Length != 2)) ladg.CargoCodeNST = null; // stupid validation + + if ((ladg.CargoCodeNST != null) && (ladg.CargoCodeNST.Length != 2)) + { + ladg.CargoCodeNST = null; // stupid validation + reader.Conf.ConfirmText(lnType, null, ExcelReader.ReadState.WARN); + } else + { + reader.Conf.ConfirmText(lnType, ladg.CargoCodeNST, ExcelReader.ReadState.OK); + } + ladg.CargoNumberOfItems = (int?) reader.ReadNumber(lnCNOI); ladg.CargoGrossQuantity_TNE = reader.ReadNumber(lnCGQ); @@ -1093,17 +1127,30 @@ 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); crew.CrewMemberGender = reader.ReadGender(crewGender); crew.CrewMemberDuty = reader.ReadText(crewDuty); + reader.Conf.ConfirmText(crewDuty, crew.CrewMemberDuty, ExcelReader.ReadState.OK); + crew.CrewMemberNationality = reader.ReadText(crewNationality); if (!crew.CrewMemberNationality.IsNullOrEmpty() && (crew.CrewMemberNationality.Length > 2)) reader.Conf.ConfirmText(crewNationality, crew.CrewMemberNationality, ExcelReader.ReadState.FAIL); + else + reader.Conf.ConfirmText(crewNationality, crew.CrewMemberNationality, ExcelReader.ReadState.OK); + crew.CrewMemberPlaceOfBirth = reader.ReadText(crewPlaceOfBirth); - crew.CrewMemberDateOfBirth = reader.ReadDate(crewDateOfBirth); + reader.Conf.ConfirmText(crewPlaceOfBirth, crew.CrewMemberPlaceOfBirth, ExcelReader.ReadState.OK); + + crew.CrewMemberDateOfBirth = reader.ReadDate(crewDateOfBirth); + crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType); crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId); + reader.Conf.ConfirmText(crewIdentDocId, crew.CrewMemberIdentityDocumentId, ExcelReader.ReadState.OK); + crew.CrewMemberVisaNumber = reader.ReadText(crewVisaNo); + reader.Conf.ConfirmText(crewVisaNo, crew.CrewMemberVisaNumber, ExcelReader.ReadState.OK); } } @@ -1144,21 +1191,29 @@ 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); pas.PassengerGender = reader.ReadGender(pasGender); pas.PassengerNationality = reader.ReadText(pasNationality); if (!pas.PassengerNationality.IsNullOrEmpty() && pas.PassengerNationality.Length > 2) reader.Conf.ConfirmText(pasNationality, pas.PassengerNationality, ExcelReader.ReadState.FAIL); + else + reader.Conf.ConfirmText(pasNationality, pas.PassengerNationality, ExcelReader.ReadState.OK); // TODO: Nicht klar ob hier LOCODEs kommen oder nicht pas.PassengerPortOfEmbarkation = reader.ReadTextNoWhitespace(pasEmbarkation); + reader.Conf.ConfirmText(pasEmbarkation, pas.PassengerPortOfEmbarkation, ExcelReader.ReadState.OK); pas.PassengerPortOfDisembarkation = reader.ReadTextNoWhitespace(pasDebarkation); + reader.Conf.ConfirmText(pasDebarkation, pas.PassengerPortOfDisembarkation, ExcelReader.ReadState.OK); 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.PassengerIdentityDocumentType = reader.ReadIdentityDocumentType(pasIdentDocType); pas.PassengerIdentityDocumentId = reader.ReadText(pasIdentDocId); + reader.Conf.ConfirmText(pasIdentDocId, pas.PassengerIdentityDocumentId, ExcelReader.ReadState.OK); pas.PassengerVisaNumber = reader.ReadText(pasVisaNo); - + reader.Conf.ConfirmText(pasVisaNo, pas.PassengerVisaNumber, ExcelReader.ReadState.OK); } } } diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index a6c6dca6..32504f0b 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.1")] +[assembly: AssemblyInformationalVersion("3.3.2")] [assembly: AssemblyCopyright("Copyright © 2014-2016 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 cb5009fe..ef830da3 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.1.*")] +[assembly: AssemblyVersion("3.3.2.*")]