Version 3.3.2: Korrektur Verarbeitung Felder (alles mit nur "ReadText(..)" muss manuell bestätigt und damit ins neue Sheet kopiert werden).

This commit is contained in:
Daniel Schick 2017-01-03 07:38:25 +00:00
parent 6525178314
commit 356270af43
10 changed files with 68 additions and 9 deletions

Binary file not shown.

View File

@ -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;

View File

@ -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

View File

@ -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);
}
}
}

View File

@ -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("")]

View File

@ -1,4 +1,4 @@
using System.Reflection;
[assembly: AssemblyVersion("3.3.1.*")]
[assembly: AssemblyVersion("3.3.2.*")]