Version 3.3.3 Korrekturen an der Sheet-Verarbeitung

This commit is contained in:
Daniel Schick 2017-01-04 07:37:23 +00:00
parent 356270af43
commit 91aa27f157
12 changed files with 162 additions and 38 deletions

Binary file not shown.

View File

@ -0,0 +1,10 @@
PRINT N'Altering [dbo].[LADG]...';
GO
ALTER TABLE [dbo].[LADG] ADD [PortOfLoading] NVARCHAR(64) NULL;
ALTER TABLE [dbo].[LADG] ADD [PortOfDischarge] NVARCHAR(64) NULL;
GO
PRINT N'Altering [dbo].[Waste]..';
GO
ALTER TABLE [dbo].[WASTE] ADD [WasteDisposedAtLastPort_MTQ] float NULL;
GO

View File

@ -130,7 +130,7 @@ namespace bsmd.ExcelReadService
}
else
{
this.Conf.ConfirmText(lookup, portName, ReadState.OK);
this.Conf.ConfirmText(lookup, val, ReadState.OK);
}
}
else
@ -315,7 +315,7 @@ namespace bsmd.ExcelReadService
var val = _nameDict[lookup].RefersToRange.Value;
if (val is DateTime)
{
this.Conf.ConfirmDate(lookup, date, ReadState.OK);
this.Conf.ConfirmDate(lookup, val, ReadState.OK);
return val;
}
if (val is double)
@ -387,9 +387,8 @@ namespace bsmd.ExcelReadService
}
if(result.HasValue)
{
// wir haben local time gelesen, wird jetzt in UTC konvertiert
result = result.Value.ToUniversalTime();
// wir haben local time gelesen, wird jetzt in UTC konvertiert
result = result.Value.ToUniversalTime();
}
return result;
}

View File

@ -352,6 +352,8 @@ namespace bsmd.ExcelReadService
info.ShippingArea = reader.ReadShippingArea(@"INFO.ShippingArea"); // enum read func
bool? fumigatedBulkCargo = reader.ReadBoolean("INFO.FumigatedBulkCargo");
info.FumigatedBulkCargo = (byte) ((fumigatedBulkCargo ?? false) ? 1 : 0);
// wird nicht wieder entfernt
}
@ -371,13 +373,16 @@ namespace bsmd.ExcelReadService
STAT stat = statMessage.Elements[0] as STAT;
Util.ScanMessage(stat, reader);
stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber");
stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId");
reader.Conf.ConfirmText("STAT.MMSINumber", stat.MMSINumber, stat.MMSINumber.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId");
if(!stat.ISMCompanyId.IsNullOrEmpty() && stat.ISMCompanyId.Length < 7)
{
while (stat.ISMCompanyId.Length < 7)
stat.ISMCompanyId = "0" + stat.ISMCompanyId;
}
reader.Conf.ConfirmText("STAT.ISMCompanyId", stat.ISMCompanyId, stat.ISMCompanyId.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK);
if (!stat.Flag.IsNullOrEmpty() && stat.Flag.Length > 2)
stat.Flag = LocodeDB.CountryCodeFromName(stat.Flag);
@ -397,6 +402,7 @@ namespace bsmd.ExcelReadService
if (transportMode.Contains("maritime", StringComparison.OrdinalIgnoreCase)) stat.TransportMode = "1";
if (transportMode.Contains("inland", StringComparison.OrdinalIgnoreCase)) stat.TransportMode = "8";
}
reader.Conf.ConfirmText("STAT.TransportMode", transportMode, stat.TransportMode.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK);
// wird nicht wieder entfernt (core ist auch da!)
@ -442,7 +448,8 @@ namespace bsmd.ExcelReadService
}
callPurpose.CallPurposeCode = ((int?) reader.ReadNumber(callPurposeCodeKey)) ?? 0;
callPurpose.CallPurposeDescription = callPurposeDescription;
callPurpose.CallPurposeDescription = callPurposeDescription;
reader.Conf.ConfirmText(callPurposeDescriptionKey, callPurposeDescription, callPurposeDescription.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK);
}
}
}
@ -466,6 +473,8 @@ namespace bsmd.ExcelReadService
}
}
reader.Conf.ConfirmText("NOA_NOD.LastPort", lastPort, noa_nod.LastPort.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK);
string nextPort = reader.ReadText("NOA_NOD.NextPort");
if (!nextPort.IsNullOrEmpty()) nextPort = nextPort.Trim();
@ -490,6 +499,8 @@ namespace bsmd.ExcelReadService
}
}
reader.Conf.ConfirmText("NOA_NOD.NextPort", nextPort, noa_nod.NextPort.IsNullOrEmpty() ? ExcelReader.ReadState.WARN : ExcelReader.ReadState.OK);
noa_nod.ETDFromPortOfCall = reader.ReadDateTime("NOA_NOD.ETDDateFromPortOfCall", "NOA_NOD.ETDTimeFromPortOfCall");
noa_nod.ETDFromLastPort = reader.ReadDateTime("NOA_NOD.ETDDateFromLastPort", "NOA_NOD.ETDTimeFromLastPort");
noa_nod.ETAToNextPort = reader.ReadDateTime("NOA_NOD.ETADateToNextPort", "NOA_NOD.ETATimeToNextPort");
@ -557,7 +568,7 @@ namespace bsmd.ExcelReadService
was.WasteDisposalServiceProvider[0].WasteDisposalDelivery = was.WasteDisposalDelivery;
}
// Waste 1 - 9
// Waste 1 - 15
for (int i = 1; i <= was.NumberOfExcelRows; i++)
{
// string wastetype = string.Format("WAS.WasteType_{0}", i);
@ -567,6 +578,7 @@ namespace bsmd.ExcelReadService
string wasteRetained = string.Format("WAS.WasteAmountRetained_MTQ_{0}", i);
string wastePort = string.Format("WAS.WasteDisposalPort_{0}", i);
string amountGen = string.Format("WAS.WasteAmountGeneratedTillNextPort_MTQ_{0}", i);
string wasteDis = string.Format("WAS.WasteDisposedAtLastPort_MTQ_{0}", i);
Waste waste = was.GetSublistElementWithIdentifier(i.ToString()) as Waste;
if(waste == null)
@ -590,7 +602,7 @@ namespace bsmd.ExcelReadService
waste.WasteDisposalPort = reader.ReadText(wastePort); // TODO: check for LOCODE?
reader.Conf.ConfirmText(wastePort, waste.WasteDisposalPort, ExcelReader.ReadState.OK);
waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumber(amountGen);
waste.WasteDisposedAtLastPort_MTQ = reader.ReadNumber(wasteDis);
// empty wastes not removed, are required elements!
}
@ -669,6 +681,11 @@ namespace bsmd.ExcelReadService
mdh.PortOfCallLast30Days.Add(poc30d);
}
string pName = reader.ReadText(portName);
string pCountry = reader.ReadText(portCountry);
reader.Conf.ConfirmText(portName, pName, ExcelReader.ReadState.NONE);
reader.Conf.ConfirmText(portCountry, pCountry, ExcelReader.ReadState.NONE);
poc30d.PortOfCallLast30DaysDateOfDeparture = reader.ReadDate(depDate);
poc30d.PortOfCallLast30DaysLocode = reader.ReadLoCode(locode);
poc30d.PortOfCallLast30DaysCrewMembersJoined = reader.ReadBoolean(crewJoined);
@ -735,6 +752,8 @@ namespace bsmd.ExcelReadService
SEC sec = secMessage.Elements[0] as SEC;
Util.ScanMessage(sec, reader);
reader.ReadBoolean("SEC.AreMatterToReport"); // das berücksichtigen wir derzeit nicht in der DB (implizit)
string isscType = reader.ReadText("SEC.ISSCType");
if(isscType != null)
{
@ -744,6 +763,21 @@ namespace bsmd.ExcelReadService
sec.ISSCType = 1;
}
string shipsecLevel = reader.ReadText("SEC.CurrentShipSecurityLevel");
if (shipsecLevel.IsNullOrEmpty())
{
reader.Conf.ConfirmText("SEC.CurrentShipSecurityLevel", null, ExcelReader.ReadState.FAIL);
}
else
{
if (shipsecLevel.Contains('1')) sec.CurrentShipSecurityLevel = 1;
if (shipsecLevel.Contains('2')) sec.CurrentShipSecurityLevel = 2;
if (shipsecLevel.Contains('3')) sec.CurrentShipSecurityLevel = 3;
reader.Conf.ConfirmText("SEC.CurrentShipSecurityLevel", shipsecLevel, sec.CurrentShipSecurityLevel.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN);
}
reader.Conf.ConfirmText("SEC.ISSCType", isscType, sec.ISSCType.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL);
string isscIssuerType = reader.ReadText("SEC.ISSCIssuerType");
if(isscIssuerType != null)
{
@ -753,6 +787,8 @@ namespace bsmd.ExcelReadService
sec.ISSCIssuerType = 0;
}
reader.Conf.ConfirmText("SEC.ISSCIssuerType", isscIssuerType, sec.ISSCIssuerType.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL);
string genDescCargo = reader.ReadText("SEC.GeneralDescriptionOfCargo");
if(genDescCargo != null)
{
@ -764,6 +800,8 @@ namespace bsmd.ExcelReadService
if (genDescCargo.Contains("empty", StringComparison.OrdinalIgnoreCase)) sec.GeneralDescriptionOfCargo = 5;
}
reader.Conf.ConfirmText("SEC.GeneralDescriptionOfCargo", genDescCargo, sec.GeneralDescriptionOfCargo.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL);
// Last10PortFacilitesCalled
for (int i = 1; i <= 10; i++)
{
@ -792,17 +830,32 @@ namespace bsmd.ExcelReadService
l10fc.PortFacilityPortLoCode = reader.ReadLoCode(portLocode);
l10fc.PortFacilityDateOfArrival = reader.ReadDate(portDateOfArrival);
l10fc.PortFacilityDateOfDeparture = reader.ReadDate(portDateOfDeparture);
l10fc.PortFacilityShipSecurityLevel = (byte?) reader.ReadNumber(portShipSecLevel);
string sLevel = reader.ReadText(portShipSecLevel);
if(sLevel.IsNullOrEmpty())
{
reader.Conf.ConfirmText(portShipSecLevel, null, ExcelReader.ReadState.FAIL);
}
else
{
if (sLevel.Contains('1')) l10fc.PortFacilityShipSecurityLevel = 1;
if (sLevel.Contains('2')) l10fc.PortFacilityShipSecurityLevel = 2;
if (sLevel.Contains('3')) l10fc.PortFacilityShipSecurityLevel = 3;
reader.Conf.ConfirmText(portShipSecLevel, sLevel, l10fc.PortFacilityShipSecurityLevel.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN);
}
l10fc.PortFacilityGISISCode = reader.ReadTextNoWhitespace(portGISISCode);
if (l10fc.PortFacilityGISISCode.IsNullOrEmpty() || l10fc.PortFacilityGISISCode == "0")
l10fc.PortFacilityGISISCode = "0000";
if((l10fc.PortFacilityGISISCode != null) && (l10fc.PortFacilityGISISCode.Length < 4))
{
while (l10fc.PortFacilityGISISCode.Length < 4) l10fc.PortFacilityGISISCode = "0" + l10fc.PortFacilityGISISCode;
}
reader.Conf.ConfirmText(portGISISCode, l10fc.PortFacilityGISISCode, ExcelReader.ReadState.OK);
reader.Conf.ConfirmText(portGISISCode, l10fc.PortFacilityGISISCode, l10fc.PortFacilityGISISCode.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
l10fc.PortFacilitySecurityMattersToReport = reader.ReadText(portSecMatters);
reader.Conf.ConfirmText(portSecMatters, l10fc.PortFacilitySecurityMattersToReport, ExcelReader.ReadState.OK);
reader.Conf.ConfirmText(portSecMatters, l10fc.PortFacilitySecurityMattersToReport, l10fc.PortFacilitySecurityMattersToReport.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL :ExcelReader.ReadState.OK);
}
@ -874,6 +927,16 @@ namespace bsmd.ExcelReadService
bkra.BunkerFuelQuantity_TNE = reader.ReadNumber(lnQuantity);
bkra.BunkerFuelType = reader.ReadText(lnType);
reader.Conf.ConfirmText(lnType, bkra.BunkerFuelType, ExcelReader.ReadState.OK);
// "OK" Quantity falls Type nicht angegeben
if (bkra.BunkerFuelType.IsNullOrEmpty() && !bkra.BunkerFuelQuantity_TNE.HasValue)
reader.Conf.ConfirmNumber(lnQuantity, null, ExcelReader.ReadState.OK);
// "WARN" Quantity falls Menge aber kein Type
if(bkra.BunkerFuelQuantity_TNE.HasValue && !bkra.BunkerFuelType.IsNullOrEmpty())
{
reader.Conf.ConfirmText(lnType, null, ExcelReader.ReadState.FAIL);
reader.Conf.ConfirmNumber(lnQuantity, bkra.BunkerFuelQuantity_TNE, ExcelReader.ReadState.WARN);
}
// dont save empty element
if(bkra.IsNew && !bkra.BunkerFuelQuantity_TNE.HasValue && bkra.BunkerFuelType.IsNullOrEmpty())
@ -905,8 +968,18 @@ namespace bsmd.ExcelReadService
bkrd.BunkerFuelType = reader.ReadText(lnType);
reader.Conf.ConfirmText(lnType, bkrd.BunkerFuelType, ExcelReader.ReadState.OK);
// "OK" Quantity falls Type nicht angegeben
if (bkrd.BunkerFuelType.IsNullOrEmpty() && !bkrd.BunkerFuelQuantity_TNE.HasValue)
reader.Conf.ConfirmNumber(lnQuantity, null, ExcelReader.ReadState.OK);
// "WARN" Quantity falls Menge aber kein Type
if (bkrd.BunkerFuelQuantity_TNE.HasValue && !bkrd.BunkerFuelType.IsNullOrEmpty())
{
reader.Conf.ConfirmText(lnType, null, ExcelReader.ReadState.FAIL);
reader.Conf.ConfirmNumber(lnQuantity, bkrd.BunkerFuelQuantity_TNE, ExcelReader.ReadState.WARN);
}
// dont save empty element
if(bkrd.IsNew && !bkrd.BunkerFuelQuantity_TNE.HasValue && bkrd.BunkerFuelType.IsNullOrEmpty())
if (bkrd.IsNew && !bkrd.BunkerFuelQuantity_TNE.HasValue && bkrd.BunkerFuelType.IsNullOrEmpty())
bkrdMessage.Elements.Remove(bkrd);
}
}
@ -1009,10 +1082,10 @@ namespace bsmd.ExcelReadService
for(int i=0;i<stoMessage.NumberOfExcelRows;i++) // 10
{
string stoName = string.Format("STO.Name_{0}", i + 1);
string stoQuantity = string.Format("STO_Quantity_{0}", i + 1);
string stoQuantityUnit = string.Format("STO_QuantityUnit_{0}", i + 1);
string stoLocationOnBoard = string.Format("STO_LocationOnBoard_{0}", i + 1);
string stoOfficialUse = string.Format("STO_OfficialUse_{0}", i + 1);
string stoQuantity = string.Format("STO.Quantity_{0}", i + 1);
string stoQuantityUnit = string.Format("STO.QuantityUnit_{0}", i + 1);
string stoLocationOnBoard = string.Format("STO.LocationOnBoard_{0}", i + 1);
string stoOfficialUse = string.Format("STO.OfficialUse_{0}", i + 1);
STO sto = stoMessage.GetSublistElementWithIdentifier((i + 1).ToString()) as STO;
if(sto == null)
{
@ -1051,6 +1124,9 @@ namespace bsmd.ExcelReadService
string lnType = string.Format("LADG.CargoType_{0}", i + 1);
string lnCNOI = string.Format("LADG.CargoNumberOfItems_{0}", i + 1);
string lnCGQ = string.Format("LADG.CargoGrossQuantity_TNE_{0}", i + 1);
string lnLoad = string.Format("LADG.CargoPortOfLoading_{0}", i + 1);
string lnDis = string.Format("LADG.CargoPortOfDischarge_{0}", i + 1);
LADG ladg = ladgMessage.GetSublistElementWithIdentifier((i + 1).ToString()) as LADG;
if (ladg == null)
{
@ -1088,6 +1164,18 @@ namespace bsmd.ExcelReadService
ladg.CargoNumberOfItems = (int?) reader.ReadNumber(lnCNOI);
ladg.CargoGrossQuantity_TNE = reader.ReadNumber(lnCGQ);
ladg.PortOfLoading = reader.ReadText(lnLoad);
if (ladg.PortOfLoading.IsNullOrEmpty())
reader.Conf.ConfirmText(lnLoad, null, ExcelReader.ReadState.FAIL);
else
reader.Conf.ConfirmText(lnLoad, ladg.PortOfLoading, (ladg.PortOfLoading.Length == 5) ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN);
ladg.PortOfDischarge = reader.ReadText(lnDis);
if (ladg.PortOfDischarge.IsNullOrEmpty())
reader.Conf.ConfirmText(lnDis, null, ExcelReader.ReadState.FAIL);
else
reader.Conf.ConfirmText(lnDis, ladg.PortOfDischarge, (ladg.PortOfDischarge.Length == 5) ? ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN);
// dont save empty element
if (ladg.IsNew && !ladg.CargoHandlingType.HasValue)
ladgMessage.Elements.Remove(ladg);
@ -1362,6 +1450,8 @@ namespace bsmd.ExcelReadService
reader.SetConfirmation(Properties.Settings.Default.ConfirmationDK);
else
reader.SetConfirmation(Properties.Settings.Default.ConfirmationDE);
reader.Conf.ConfirmText("ID", visitTransitId, ExcelReader.ReadState.OK);
}
else
{
@ -1429,7 +1519,7 @@ namespace bsmd.ExcelReadService
}
imo = reader.ReadText("Visit.IMONumber");
reader.Conf.ConfirmText("Visit.IMONumber", imo, imo.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK);
// ETA
if(poc != null)
@ -1443,6 +1533,14 @@ namespace bsmd.ExcelReadService
_log.InfoFormat("Core [{3}] found for IMO {0}, ETA {1}, Poc {2}", imo, eta, poc, result.Id);
}
}
reader.Conf.ConfirmText("Visit.PortOfCall", poc, ExcelReader.ReadState.OK);
}
else
{
reader.Conf.ConfirmText("Visit.PortOfCall", poc, ExcelReader.ReadState.FAIL);
}
}

View File

@ -44,8 +44,7 @@ namespace bsmd.database
public string ConstructionCharacteristicsOfShip { get; set; }
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("INFO.FumigatedBulkCargo")]
[Validation(ValidationCode.NOT_NULL)]
public byte? FumigatedBulkCargo { get; set; }
[ShowReport]

View File

@ -40,6 +40,14 @@ namespace bsmd.database
[Validation(ValidationCode.DOUBLE_GT_ZERO)]
public double? CargoGrossQuantity_TNE { get; set; }
[MaxLength(5)]
[Validation(ValidationCode.LOCODE)]
public string PortOfLoading { get; set; }
[MaxLength(5)]
[Validation(ValidationCode.LOCODE)]
public string PortOfDischarge { get; set; }
public string Identifier { get; set; }
#endregion
@ -64,24 +72,28 @@ namespace bsmd.database
scmd.Parameters.AddWithNullableValue("@P3", this.CargoCodeNST);
scmd.Parameters.AddWithNullableValue("@P4", this.CargoNumberOfItems);
scmd.Parameters.AddWithNullableValue("@P5", this.CargoGrossQuantity_TNE);
scmd.Parameters.AddWithNullableValue("@P6", this.Identifier);
scmd.Parameters.AddWithNullableValue("@P6", this.PortOfLoading);
scmd.Parameters.AddWithNullableValue("@P7", this.PortOfDischarge);
scmd.Parameters.AddWithNullableValue("@P8", this.Identifier);
if (this.IsNew)
{
scmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, CargoHandlingType, CargoCodeNST, " +
"CargoNumberOfItems, CargoGrossQuantity_TNE, Identifier) VALUES ( @P1, @P2, @P3, @P4, @P5, @P6 )", this.Tablename);
"CargoNumberOfItems, CargoGrossQuantity_TNE, PortOfLoading, PortOfDischarge, Identifier) VALUES " +
"( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8 )", this.Tablename);
}
else
{
scmd.Parameters.AddWithValue(@"ID", this.Id);
scmd.CommandText = string.Format("UPDATE {0} SET CargoHandlingType = @P2, CargoCodeNST = @P3, CargoNumberOfItems = @P4, " +
"CargoGrossQuantity_TNE = @P5 WHERE Id = @ID", this.Tablename);
"CargoGrossQuantity_TNE = @P5, PortOfLoading = @P6, PortOfDischarge = @P7 WHERE Id = @ID", this.Tablename);
}
}
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, CargoHandlingType, CargoCodeNST, CargoNumberOfItems, CargoGrossQuantity_TNE, Identifier FROM {0}",
string query = string.Format("SELECT Id, CargoHandlingType, CargoCodeNST, CargoNumberOfItems, CargoGrossQuantity_TNE, " +
"PortOfLoading, PortOfDischarge, Identifier FROM {0}",
this.Tablename);
switch (filter)
@ -112,7 +124,9 @@ namespace bsmd.database
if (!reader.IsDBNull(2)) ladg.CargoCodeNST = reader.GetString(2);
if (!reader.IsDBNull(3)) ladg.CargoNumberOfItems = reader.GetInt32(3);
if (!reader.IsDBNull(4)) ladg.CargoGrossQuantity_TNE = (float) reader.GetDouble(4);
if (!reader.IsDBNull(5)) ladg.Identifier = reader.GetString(5);
if (!reader.IsDBNull(5)) ladg.PortOfLoading = reader.GetString(5);
if (!reader.IsDBNull(6)) ladg.PortOfDischarge = reader.GetString(6);
if (!reader.IsDBNull(7)) ladg.Identifier = reader.GetString(7);
result.Add(ladg);
}
reader.Close();

View File

@ -51,7 +51,7 @@ namespace bsmd.database
[ShowReport]
[Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.DateOfIssue")]
[LookupName("MDH.NonAccidentialDeathsDuringVoyage")]
public bool? NonAccidentalDeathsDuringVoyage { get; set; }
[ShowReport]

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("Informatikbüro Daniel Schick")]
[assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("3.3.2")]
[assembly: AssemblyInformationalVersion("3.3.3")]
[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.2.*")]
[assembly: AssemblyVersion("3.3.3.*")]

View File

@ -106,8 +106,7 @@ namespace bsmd.database
public bool? ApprovedSecurityPlanOnBoard { get; set; }
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[LookupName("SEC.CurrentShipSecurityLevel")]
[Validation(ValidationCode.NOT_NULL)]
public byte? CurrentShipSecurityLevel { get; set; }
[ShowReport]

View File

@ -150,7 +150,7 @@ namespace bsmd.database
public int NumberOfExcelRows
{
get { return 9; }
get { return 15; }
}
public void SaveElements()

View File

@ -73,6 +73,9 @@ namespace bsmd.database
[ShowReport]
public double? WasteAmountGeneratedTillNextPort_MTQ { get; set; }
// "dänisches" Zusatzfeld
public double? WasteDisposedAtLastPort_MTQ { get; set; }
public string Identifier { get; set; }
#endregion
@ -92,21 +95,22 @@ namespace bsmd.database
scmd.Parameters.AddWithNullableValue("@P6", this.WasteAmountRetained_MTQ);
scmd.Parameters.AddWithNullableValue("@P7", this.WasteDisposalPort);
scmd.Parameters.AddWithNullableValue("@P8", this.WasteAmountGeneratedTillNextPort_MTQ);
scmd.Parameters.AddWithNullableValue("@P9", this.Identifier);
scmd.Parameters.AddWithNullableValue("@P9", this.WasteDisposedAtLastPort_MTQ);
scmd.Parameters.AddWithNullableValue("@P10", this.Identifier);
if (this.IsNew)
{
scmd.CommandText = string.Format("INSERT INTO {0} (WASId, WasteType, WasteDescription, " +
"WasteDisposalAmount_MTQ, WasteCapacity_MTQ, WasteAmountRetained_MTQ, WasteDisposalPort, " +
"WasteAmountGeneratedTillNextPort_MTQ, Identifier) " +
" VALUES ( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9 )", this.Tablename);
"WasteAmountGeneratedTillNextPort_MTQ, WasteDisposedAtLastPort_MTQ, Identifier) " +
" VALUES ( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10 )", this.Tablename);
}
else
{
scmd.Parameters.AddWithValue(@"ID", this.Id);
scmd.CommandText = string.Format("UPDATE {0} SET WasteType = @P2, WasteDescription = @P3, " +
"WasteDisposalAmount_MTQ = @P4, WasteCapacity_MTQ = @P5, WasteAmountRetained_MTQ = @P6," +
"WasteDisposalPort = @P7, WasteAmountGeneratedTillNextPort_MTQ = @P8 " +
"WasteDisposalPort = @P7, WasteAmountGeneratedTillNextPort_MTQ = @P8, WasteDisposedAtLastPort_MTQ = @P9 " +
"WHERE Id = @ID", this.Tablename);
}
}
@ -114,8 +118,8 @@ namespace bsmd.database
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, WasteType, WasteDescription, WasteDisposalAmount_MTQ, " +
"WasteCapacity_MTQ, WasteAmountRetained_MTQ, WasteDisposalPort, WasteAmountGeneratedTillNextPort_MTQ, Identifier " +
" FROM {0} ", this.Tablename);
"WasteCapacity_MTQ, WasteAmountRetained_MTQ, WasteDisposalPort, WasteAmountGeneratedTillNextPort_MTQ, " +
"WasteDisposedAtLastPort_MTQ, Identifier FROM {0} ", this.Tablename);
switch (filter)
{
@ -148,7 +152,8 @@ namespace bsmd.database
if (!reader.IsDBNull(5)) waste.WasteAmountRetained_MTQ = (float) reader.GetDouble(5);
if (!reader.IsDBNull(6)) waste.WasteDisposalPort = reader.GetString(6);
if (!reader.IsDBNull(7)) waste.WasteAmountGeneratedTillNextPort_MTQ = (float) reader.GetDouble(7);
if (!reader.IsDBNull(8)) waste.Identifier = reader.GetString(8);
if (!reader.IsDBNull(8)) waste.WasteDisposedAtLastPort_MTQ = (float)reader.GetDouble(8);
if (!reader.IsDBNull(9)) waste.Identifier = reader.GetString(9);
result.Add(waste);
}
reader.Close();