diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 85954c66..fcbf57f2 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Dänemark/SafeSeaNetTest/App.config b/nsw/Dänemark/SafeSeaNetTest/App.config index 45437954..877624ed 100644 --- a/nsw/Dänemark/SafeSeaNetTest/App.config +++ b/nsw/Dänemark/SafeSeaNetTest/App.config @@ -1,6 +1,6 @@ - + diff --git a/nsw/Dänemark/SafeSeaNetTest/SafeSeaNetTest.csproj b/nsw/Dänemark/SafeSeaNetTest/SafeSeaNetTest.csproj index dfd4a9d5..aa060fbb 100644 --- a/nsw/Dänemark/SafeSeaNetTest/SafeSeaNetTest.csproj +++ b/nsw/Dänemark/SafeSeaNetTest/SafeSeaNetTest.csproj @@ -9,7 +9,7 @@ Properties SafeSeaNetTest SafeSeaNetTest - v4.6.1 + v4.5 512 true diff --git a/nsw/Source/SQL/Update_3.1.3_To_3.5.sql b/nsw/Source/SQL/Update_3.1.3_To_3.5.sql new file mode 100644 index 00000000..abd510c6 --- /dev/null +++ b/nsw/Source/SQL/Update_3.1.3_To_3.5.sql @@ -0,0 +1,59 @@ +-- Dieses Update hebt die Datenbank auf DK Verarbeitung an ( Version 3.5) +-- Version 4.0 sind dann die Änderungen für NSW 2017 + +PRINT N'Altering [dbo].[NOA_NOD]...'; +GO +ALTER TABLE [dbo].[NOA_NOD] ADD [IsAnchored] BIT NULL; +GO + +PRINT N'Altering [dbo].[INFO]...'; +GO +ALTER TABLE [dbo].[INFO] ADD [PortFacility] NVARCHAR(10) NULL; +GO + +PRINT N'Altering [dbo].[PRE72H]...'; +GO +ALTER TABLE [dbo].[PRE72H] ADD [IsDueToInspection] BIT NULL; +ALTER TABLE [dbo].[PRE72H] ADD [PossibleAnchorage] BIT NULL; +GO + +PRINT N'Altering [dbo].[BPOL]...'; +GO +ALTER TABLE [dbo].[BPOL] ADD [CruiseShip] BIT NULL; +GO + +PRINT N'Altering [dbo].[PortOfItinerary]...'; +GO +ALTER TABLE [dbo].[PortOfItinerary] ADD [PortOfItineraryLocode] CHAR(5) NULL; +GO + +PRINT N'Altering [dbo].[WAS]...'; +GO +ALTER TABLE [dbo].[WAS] ADD [ConfirmationOfSufficiency] BIT NULL; +GO + +PRINT N'Altering [dbo].[SEC]...'; +GO +ALTER TABLE [dbo].[SEC] ADD [MatterToReport] NVARCHAR(1024) NULL; +GO + +PRINT N'Altering [dbo].[STAT]...'; +GO +ALTER TABLE [dbo].[STAT] ADD NetTonnage [FLOAT] NULL; +ALTER TABLE [dbo].[STAT] ADD RegistryDate [DATETIME] NULL; +ALTER TABLE [dbo].[STAT] ADD CertificateOfRegistryNumber NVARCHAR(64) NULL; +GO + +PRINT N'Creating [dbo].[STO]..'; +GO +CREATE TABLE [dbo].[STO] ( + [Id] UNIQUEIDENTIFIER CONSTRAINT [PK_PortArea_Id] DEFAULT (newid()) ROWGUIDCOL NOT NULL , + [MessageHeaderId] [uniqueidentifier] NULL, + [Name] [NVARCHAR] (255) NULL, + [Quantity] [INT] NULL, + [QuantityUnit] [NVARCHAR] (16) NULL, + [LocationOnBoard] [NVARCHAR] (64) NULL, + [OfficialUse] [NVARCHAR] (16) NULL +); +GO + diff --git a/nsw/Source/bsmd.database/BPOL.cs b/nsw/Source/bsmd.database/BPOL.cs index 40467e76..66559db7 100644 --- a/nsw/Source/bsmd.database/BPOL.cs +++ b/nsw/Source/bsmd.database/BPOL.cs @@ -30,6 +30,8 @@ namespace bsmd.database [Validation(ValidationCode.NOT_NULL)] public bool? StowawaysOnBoard { get; set; } + public bool? CruiseShip { get; set; } + public List PortOfItineraries { get { return this.poi; } } #endregion @@ -43,24 +45,25 @@ namespace bsmd.database scmd.Parameters.AddWithValue("@P1", this.MessageHeader.Id); scmd.Parameters.AddWithNullableValue("@P2", this.StowawaysOnBoard); + scmd.Parameters.AddWithNullableValue("@P3", this.CruiseShip); if (this.IsNew) { this.CreateId(); scmd.Parameters.AddWithValue("@ID", this.Id); - scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, StowawaysOnBoard) VALUES ( @ID, @P1, @P2 )", + scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, StowawaysOnBoard, CruiseShip) VALUES ( @ID, @P1, @P2, @P3 )", this.Tablename); } else { scmd.Parameters.AddWithValue(@"ID", this.Id); - scmd.CommandText = string.Format("UPDATE {0} SET StowawaysOnBoard = @P2 WHERE Id = @ID", this.Tablename); + scmd.CommandText = string.Format("UPDATE {0} SET StowawaysOnBoard = @P2, CruiseShip = @P3 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, StowawaysOnBoard FROM {0}", this.Tablename); + string query = string.Format("SELECT Id, StowawaysOnBoard, CruiseShip FROM {0}", this.Tablename); switch (filter) { diff --git a/nsw/Source/bsmd.database/INFO.cs b/nsw/Source/bsmd.database/INFO.cs index e48080f2..8bd0fd2f 100644 --- a/nsw/Source/bsmd.database/INFO.cs +++ b/nsw/Source/bsmd.database/INFO.cs @@ -64,6 +64,10 @@ namespace bsmd.database [MaxLength(50)] public string SternThrusterPower { get; set; } + [MaxLength(4)] + [LookupName("INFO.PortFacility")] + public string PortFacility { get; set; } + #endregion #region DatabaseEntity implementation @@ -91,26 +95,29 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P8", this.PortArea); scmd.Parameters.AddWithNullableValue("@P9", this.BowThrusterPower); scmd.Parameters.AddWithNullableValue("@P10", this.SternThrusterPower); + scmd.Parameters.AddWithNullableValue("@P11", this.PortFacility); if (this.IsNew) { scmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, ShippingArea, RequestedPositionInPortOfCall, " + "SpecialRequirementsOfShipAtBerth, ConstructionCharacteristicsOfShip, FumigatedBulkCargo, DeplacementSummerDraught_TNE, " + - "PortArea, BowThrusterPower, SternThrusterPower) VALUES ( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10 )", this.Tablename); + "PortArea, BowThrusterPower, SternThrusterPower, PortFacility) VALUES ( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11 )", this.Tablename); } else { scmd.Parameters.AddWithValue(@"ID", this.Id); scmd.CommandText = string.Format("UPDATE {0} SET ShippingArea = @P2, RequestedPositionInPortOfCall = @P3, " + "SpecialRequirementsOfShipAtBerth = @P4, ConstructionCharacteristicsOfShip = @P5, FumigatedBulkCargo = @P6," + - "DeplacementSummerDraught_TNE = @P7, PortArea = @P8, BowThrusterPower = @P9, SternThrusterPower = @P10 WHERE Id = @ID", this.Tablename); + "DeplacementSummerDraught_TNE = @P7, PortArea = @P8, BowThrusterPower = @P9, SternThrusterPower = @P10, " + + "PortFacility = @P11 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, ShippingArea, RequestedPositionInPortOfCall, SpecialRequirementsOfShipAtBerth, " + - "ConstructionCharacteristicsOfShip, FumigatedBulkCargo, DeplacementSummerDraught_TNE, PortArea, BowThrusterPower, SternThrusterPower FROM {0}", + "ConstructionCharacteristicsOfShip, FumigatedBulkCargo, DeplacementSummerDraught_TNE, PortArea, BowThrusterPower, " + + "SternThrusterPower, PortFacility FROM {0}", this.Tablename); switch (filter) @@ -146,6 +153,7 @@ namespace bsmd.database if (!reader.IsDBNull(7)) info.PortArea = reader.GetString(7); if (!reader.IsDBNull(8)) info.BowThrusterPower = reader.GetString(8); if (!reader.IsDBNull(9)) info.SternThrusterPower = reader.GetString(9); + if(!reader.IsDBNull(10)) info.PortFacility = reader.GetString(10); result.Add(info); } reader.Close(); diff --git a/nsw/Source/bsmd.database/NOA_NOD.cs b/nsw/Source/bsmd.database/NOA_NOD.cs index 1033abec..b04cdd07 100644 --- a/nsw/Source/bsmd.database/NOA_NOD.cs +++ b/nsw/Source/bsmd.database/NOA_NOD.cs @@ -61,6 +61,8 @@ namespace bsmd.database [ShowReport] public DateTime? ETAToNextPort { get; set; } + public bool? IsAnchored { get; set; } + #endregion #region abstract class implementation @@ -68,7 +70,7 @@ namespace bsmd.database public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) { string query = string.Format("SELECT Id, ETAToPortOfCall, ETDFromPortOfCall, " + - "ETAToKielCanal, ETDFromKielCanal, LastPort, ETDFromLastPort, NextPort, ETAToNextPort FROM {0}", this.Tablename); + "ETAToKielCanal, ETDFromKielCanal, LastPort, ETDFromLastPort, NextPort, ETAToNextPort, IsAnchored FROM {0}", this.Tablename); switch (filter) { @@ -100,6 +102,7 @@ namespace bsmd.database if (!reader.IsDBNull(6)) nn.ETDFromLastPort = DateTime.SpecifyKind(reader.GetDateTime(6), DateTimeKind.Utc); if (!reader.IsDBNull(7)) nn.NextPort = reader.GetString(7); if (!reader.IsDBNull(8)) nn.ETAToNextPort = DateTime.SpecifyKind(reader.GetDateTime(8), DateTimeKind.Utc); + if (!reader.IsDBNull(9)) nn.IsAnchored = reader.GetBoolean(9); result.Add(nn); } reader.Close(); @@ -119,6 +122,7 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P7", this.ETDFromLastPort); scmd.Parameters.AddWithNullableValue("@P8", this.NextPort); scmd.Parameters.AddWithNullableValue("@P9", this.ETAToNextPort); + scmd.Parameters.AddWithNullableValue("@P10", this.IsAnchored); if (this.IsNew) { @@ -126,7 +130,8 @@ namespace bsmd.database scmd.Parameters.AddWithValue("@ID", this.Id); scmd.CommandText = string.Format("INSERT INTO {0} ( Id, MessageHeaderId, ETAToPortOfCall, ETDFromPortOfCall, " + "ETAToKielCanal, ETDFromKielCanal, LastPort, ETDFromLastPort, " + - "NextPort, ETAToNextPort) VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9) ", this.Tablename); + "NextPort, ETAToNextPort, IsAnchored) VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10) ", + this.Tablename); } else { @@ -134,7 +139,7 @@ namespace bsmd.database scmd.CommandText = string.Format("UPDATE {0} SET ETAToPortOfCall = @P2, ETDFromPortOfCall = @P3, " + "ETAToKielCanal = @P4, ETDFromKielCanal = @P5, LastPort = @P6, ETDFromLastPort = @P7, " + - "NextPort = @P8, ETAToNextPort = @P9 WHERE Id = @ID", this.Tablename); + "NextPort = @P8, ETAToNextPort = @P9, IsAnchored = @P10 WHERE Id = @ID", this.Tablename); } } diff --git a/nsw/Source/bsmd.database/PRE72H.cs b/nsw/Source/bsmd.database/PRE72H.cs index 9ecd6d88..b99794d0 100644 --- a/nsw/Source/bsmd.database/PRE72H.cs +++ b/nsw/Source/bsmd.database/PRE72H.cs @@ -65,6 +65,12 @@ namespace bsmd.database [LookupName("PRE72H.PlannedPeriodOfStay_HUR")] public double? PlannedPeriodOfStay_HUR { get; set; } + [LookupName("PRE72H.IsDueToInspection")] + public bool? IsDueToInspection { get; set; } + + [LookupName("PRE72H.PossibleAnchorage")] + public bool? PossibleAnchorage { get; set; } + public override string Subtitle { get @@ -92,13 +98,15 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P8", this.PlannedWorks); scmd.Parameters.AddWithNullableValue("@P9", this.DateOfLastExpandedInspection); scmd.Parameters.AddWithNullableValue("@P10", this.PlannedPeriodOfStay_HUR); - + scmd.Parameters.AddWithNullableValue("@P11", this.IsDueToInspection); + scmd.Parameters.AddWithNullableValue("@P12", this.PossibleAnchorage); if (this.IsNew) { scmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, Tanker, TankerHullConfiguration, " + "ConditionCargoBallastTanks, NatureOfCargo, VolumeOfCargo, PlannedOperations, PlannedWorks, DateOfLastExpandedInspection, " + - "PlannedPeriodOfStay_HUR) VALUES ( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10 )", this.Tablename); + "PlannedPeriodOfStay_HUR, IsDueToInspection, PossibleAnchorage) VALUES ( @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12 )", + this.Tablename); } else { @@ -106,7 +114,7 @@ namespace bsmd.database scmd.CommandText = string.Format("UPDATE {0} SET Tanker = @P2, TankerHullConfiguration = @P3, " + "ConditionCargoBallastTanks = @P4, NatureOfCargo = @P5, VolumeOfCargo = @P6," + "PlannedOperations = @P7, PlannedWorks = @P8, DateOfLastExpandedInspection = @P9, " + - "PlannedPeriodOfStay_HUR = @P10 WHERE Id = @ID", this.Tablename); + "PlannedPeriodOfStay_HUR = @P10, IsDueToInspection = @P11, PossibleAnchorage = @P12 WHERE Id = @ID", this.Tablename); } } @@ -114,7 +122,7 @@ namespace bsmd.database { string query = string.Format("SELECT Id, Tanker, TankerHullConfiguration, ConditionCargoBallastTanks, " + "NatureOfCargo, VolumeOfCargo, PlannedOperations, PlannedWorks, DateOfLastExpandedInspection, " + - "PlannedPeriodOfStay_HUR FROM {0}", this.Tablename); + "PlannedPeriodOfStay_HUR, IsDueToInspection, PossibleAnchorage FROM {0}", this.Tablename); switch (filter) { @@ -149,6 +157,8 @@ namespace bsmd.database if (!reader.IsDBNull(7)) pre72h.PlannedWorks = reader.GetString(7); if (!reader.IsDBNull(8)) pre72h.DateOfLastExpandedInspection = reader.GetDateTime(8); if (!reader.IsDBNull(9)) pre72h.PlannedPeriodOfStay_HUR = (float) reader.GetDouble(9); + if (!reader.IsDBNull(10)) pre72h.IsDueToInspection = reader.GetBoolean(10); + if (!reader.IsDBNull(11)) pre72h.PossibleAnchorage = reader.GetBoolean(11); result.Add(pre72h); } reader.Close(); diff --git a/nsw/Source/bsmd.database/PortOfItinerary.cs b/nsw/Source/bsmd.database/PortOfItinerary.cs index 16060793..dcc1b202 100644 --- a/nsw/Source/bsmd.database/PortOfItinerary.cs +++ b/nsw/Source/bsmd.database/PortOfItinerary.cs @@ -35,6 +35,9 @@ namespace bsmd.database [Validation(ValidationCode.NOT_NULL)] public DateTime? PortOfItineraryETA { get; set; } + [Validation(ValidationCode.LOCODE)] + public string PortOfItineraryLocode { get; set; } + public string Identifier { get; set; } #endregion @@ -50,23 +53,25 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P2", this.PortOfItineraryName); scmd.Parameters.AddWithNullableValue("@P3", this.PortOfItineraryETA); scmd.Parameters.AddWithNullableValue("@P4", this.Identifier); + scmd.Parameters.AddWithNullableValue("@P5", this.PortOfItineraryLocode); if (this.IsNew) { - scmd.CommandText = string.Format("INSERT INTO {0} (BPOLId, PortOfItineraryName, PortOfItineraryETA, Identifier) " + - "VALUES ( @P1, @P2, @P3, @P4 )", this.Tablename); + scmd.CommandText = string.Format("INSERT INTO {0} (BPOLId, PortOfItineraryName, PortOfItineraryETA, Identifier, " + + "PortOfItineraryLocode) VALUES ( @P1, @P2, @P3, @P4, @P5 )", this.Tablename); } else { scmd.Parameters.AddWithValue(@"ID", this.Id); - scmd.CommandText = string.Format("UPDATE {0} SET PortOfItineraryName = @P2, PortOfItineraryETA = @P3 " + - "WHERE Id = @ID", this.Tablename); + scmd.CommandText = string.Format("UPDATE {0} SET PortOfItineraryName = @P2, PortOfItineraryETA = @P3, " + + "PortOfItineraryLocode = @P5 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, PortOfItineraryName, PortOfItineraryETA, Identifier FROM {0}", this.Tablename); + string query = string.Format("SELECT Id, PortOfItineraryName, PortOfItineraryETA, Identifier, PortOfItineraryLocode FROM {0}", + this.Tablename); switch (filter) { @@ -95,6 +100,7 @@ namespace bsmd.database if (!reader.IsDBNull(1)) poi.PortOfItineraryName = reader.GetString(1); if (!reader.IsDBNull(2)) poi.PortOfItineraryETA = reader.GetDateTime(2); if (!reader.IsDBNull(3)) poi.Identifier = reader.GetString(3); + if (!reader.IsDBNull(4)) poi.PortOfItineraryLocode = reader.GetString(4); result.Add(poi); } reader.Close(); diff --git a/nsw/Source/bsmd.database/SEC.cs b/nsw/Source/bsmd.database/SEC.cs index 9d0f9416..28bd73af 100644 --- a/nsw/Source/bsmd.database/SEC.cs +++ b/nsw/Source/bsmd.database/SEC.cs @@ -118,6 +118,10 @@ namespace bsmd.database [Validation2(ValidationCode.NOT_NULL)] public byte? GeneralDescriptionOfCargo { get; set; } + [LookupName("SEC.MatterToReport")] + [MaxLength(1024)] + public string MatterToReport { get; set; } + public List LastTenPortFacilitesCalled { get { return this.ltpfc; } } public List ShipToShipActivitiesDuringLastTenPortFacilitiesCalled { get { return this.lsts; } } @@ -149,6 +153,7 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P16", this.PortFacilityOfArrival); scmd.Parameters.AddWithNullableValue("@P17", this.GeneralDescriptionOfCargo); scmd.Parameters.AddWithNullableValue("@P18", this.CSOFax); + scmd.Parameters.AddWithNullableValue("@P19", this.MatterToReport); if (this.IsNew) { @@ -157,8 +162,9 @@ namespace bsmd.database scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, SECSimplification, PortOfCallWhereCompleteSECNotified, " + "CSOLastName, CSOFirstName, CSOPhone, CSOEMail, ValidISSCOnBoard, ReasonsForNoValidISSC, " + "ISSCType, ISSCIssuerType, ISSCIssuerName,ISSCDateOfExpiration, ApprovedSecurityPlanOnBoard, " + - "CurrentShipSecurityLevel, PortFacilityOfArrival, GeneralDescriptionOfCargo, CSOFax) " + - "VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17, @P18 )", this.Tablename); + "CurrentShipSecurityLevel, PortFacilityOfArrival, GeneralDescriptionOfCargo, CSOFax, MatterToReport) " + + "VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, " + + "@P17, @P18, @P19 )", this.Tablename); } else { @@ -168,7 +174,7 @@ namespace bsmd.database "CSOEMail = @P7, ValidISSCOnBoard = @P8, ReasonsForNoValidISSC = @P9, " + "ISSCType = @P10, ISSCIssuerType = @P11, ISSCIssuerName = @P12, ISSCDateOfExpiration = @P13, " + "ApprovedSecurityPlanOnBoard = @P14, CurrentShipSecurityLevel = @P15, PortFacilityOfArrival = @P16, " + - "GeneralDescriptionOfCargo = @P17, CSOFax = @P18 WHERE Id = @ID", this.Tablename); + "GeneralDescriptionOfCargo = @P17, CSOFax = @P18, MatterToReport = @P19 WHERE Id = @ID", this.Tablename); } } @@ -177,7 +183,7 @@ namespace bsmd.database string query = string.Format("SELECT Id, SECSimplification, PortOfCallWhereCompleteSECNotified, CSOLastName, " + "CSOFirstName, CSOPhone, CSOEMail, ValidISSCOnBoard, ReasonsForNoValidISSC, " + "ISSCType, ISSCIssuerType, ISSCIssuerName, ISSCDateOfExpiration, ApprovedSecurityPlanOnBoard, " + - "CurrentShipSecurityLevel, PortFacilityOfArrival, GeneralDescriptionOfCargo, CSOFax FROM {0}", this.Tablename); + "CurrentShipSecurityLevel, PortFacilityOfArrival, GeneralDescriptionOfCargo, CSOFax, MatterToReport FROM {0}", this.Tablename); switch (filter) { @@ -220,6 +226,8 @@ namespace bsmd.database if (!reader.IsDBNull(15)) sec.PortFacilityOfArrival = reader.GetString(15); if (!reader.IsDBNull(16)) sec.GeneralDescriptionOfCargo = reader.GetByte(16); if (!reader.IsDBNull(17)) sec.CSOFax = reader.GetString(17); + if (!reader.IsDBNull(18)) sec.MatterToReport = reader.GetString(18); + result.Add(sec); } reader.Close(); diff --git a/nsw/Source/bsmd.database/STAT.cs b/nsw/Source/bsmd.database/STAT.cs index 34a7db89..02c8c5dd 100644 --- a/nsw/Source/bsmd.database/STAT.cs +++ b/nsw/Source/bsmd.database/STAT.cs @@ -138,6 +138,16 @@ namespace bsmd.database } } + [LookupName("STAT.NetTonnage")] + public double? NetTonnage { get; set; } + + [LookupName("STAT.RegistryDate")] + public DateTime? RegistryDate { get; set; } + + [LookupName("STAT.CertificateOfRegistryNumber")] + [MaxLength(35)] + public string CertificateOfRegistryNumber { get; set; } + #endregion #region abstract class implementation @@ -146,7 +156,8 @@ namespace bsmd.database { string query = string.Format("SELECT Id, ShipName, Callsign, MMSINumber, Flag, LengthOverall_MTR, Beam_MTR, " + "GrossTonnage, PortOfRegistry, InmarsatCallNumber, ShipType, ISMCompanyName, ISMCompanyId, ISMCompanyStreetAndNumber, " + - "ISMCompanyPostalCode, ISMCompanyCity, ISMCompanyCountry, TransportMode FROM {0} ", this.Tablename); + "ISMCompanyPostalCode, ISMCompanyCity, ISMCompanyCountry, TransportMode, NetTonnage, RegistryDate, " + + "CertificateOfRegistryNumber FROM {0} ", this.Tablename); switch (filter) { @@ -189,6 +200,9 @@ namespace bsmd.database if (!reader.IsDBNull(15)) stat.ISMCompanyCity = reader.GetString(15); if (!reader.IsDBNull(16)) stat.ISMCompanyCountry = reader.GetString(16); if (!reader.IsDBNull(17)) stat.TransportMode = reader.GetString(17); + if (!reader.IsDBNull(18)) stat.NetTonnage = (float) reader.GetDouble(18); + if (!reader.IsDBNull(19)) stat.RegistryDate = reader.GetDateTime(19); + if (!reader.IsDBNull(20)) stat.CertificateOfRegistryNumber = reader.GetString(20); result.Add(stat); } @@ -235,22 +249,26 @@ namespace bsmd.database else scmd.Parameters.AddWithValue("@P17", DBNull.Value); if (this.TransportMode != null) scmd.Parameters.AddWithValue("@P18", this.TransportMode); else scmd.Parameters.AddWithValue("@P18", DBNull.Value); + scmd.Parameters.AddWithNullableValue("@P19", this.NetTonnage); + scmd.Parameters.AddWithNullableValue("@P20", this.RegistryDate); + scmd.Parameters.AddWithNullableValue("@P21", this.CertificateOfRegistryNumber); if (this.IsNew) { cmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, ShipName, CallSign, MMSINumber, " + "Flag, LengthOverall_MTR, Beam_MTR, GrossTonnage, PortOfRegistry, InmarsatCallNumber, ShipType, " + "ISMCompanyName, ISMCompanyId, ISMCompanyStreetAndNumber, ISMCompanyPostalCode, ISMCompanyCity, " + - "ISMCompanyCountry, TransportMode) VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, " + - " @P12, @P13, @P14, @P15, @P16, @P17, @P18)", this.Tablename); + "ISMCompanyCountry, TransportMode, NetTonnage, RegistryDate, CertificateOfRegistryNumber) " + + "VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, " + + " @P12, @P13, @P14, @P15, @P16, @P17, @P18, @P19, @P20, @P21)", this.Tablename); } else { cmd.CommandText = string.Format("UPDATE {0} SET ShipName = @P2, CallSign = @P3, MMSINumber = @P4, Flag = @P5, " + "LengthOverall_MTR = @P6, Beam_MTR = @P7, GrossTonnage = @P8, PortOfRegistry = @P9, InmarsatCallNumber = @P10, " + "ShipType = @P11, ISMCompanyName = @P12, ISMCompanyId = @P13, ISMCompanyStreetAndNumber = @P14, " + - "ISMCompanyPostalCode = @P15, ISMCompanyCity = @P16, ISMCompanyCountry = @P17, TransportMode = @P18 " + - "WHERE Id = @ID", this.Tablename); + "ISMCompanyPostalCode = @P15, ISMCompanyCity = @P16, ISMCompanyCountry = @P17, TransportMode = @P18, " + + "NetTonnage = @P19, RegistryDate = @P20, CertificateOfRegistryNumber = @P21 WHERE Id = @ID", this.Tablename); scmd.Parameters.AddWithValue("@ID", this.Id); } diff --git a/nsw/Source/bsmd.database/WAS.cs b/nsw/Source/bsmd.database/WAS.cs index 21e19e83..2864a41a 100644 --- a/nsw/Source/bsmd.database/WAS.cs +++ b/nsw/Source/bsmd.database/WAS.cs @@ -51,6 +51,9 @@ namespace bsmd.database [Validation2(ValidationCode.NOT_NULL)] public byte? WasteDisposalDelivery { get; set; } + [LookupName("WAS.ConfirmationOfSufficiency")] + public bool? ConfirmationOfSufficiency { get; set; } + public List Waste { get { return this.waste; } } public List WasteDisposalServiceProvider { get { return this.wdsp; } } @@ -70,27 +73,29 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P4", this.ConfirmationOfCorrectness); scmd.Parameters.AddWithNullableValue("@P5", this.LastWasteDisposalDate); scmd.Parameters.AddWithNullableValue("@P6", this.WasteDisposalDelivery); + scmd.Parameters.AddWithNullableValue("@P7", this.ConfirmationOfSufficiency); if (this.IsNew) { this.CreateId(); scmd.Parameters.AddWithValue("@ID", this.Id); scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, WasteDisposalValidExemption, " + - "LastWasteDisposalPort, ConfirmationOfCorrectness, LastWasteDisposalDate, WasteDisposalDelivery) " + - "VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P6 )", this.Tablename); + "LastWasteDisposalPort, ConfirmationOfCorrectness, LastWasteDisposalDate, WasteDisposalDelivery, " + + "ConfirmationOfSufficiency) VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7 )", this.Tablename); } else { scmd.Parameters.AddWithValue(@"ID", this.Id); scmd.CommandText = string.Format("UPDATE {0} SET WasteDisposalValidExemption = @P2, LastWasteDisposalPort = @P3, " + - "ConfirmationOfCorrectness = @P4, LastWasteDisposalDate = @P5, WasteDisposalDelivery = @P6 " + + "ConfirmationOfCorrectness = @P4, LastWasteDisposalDate = @P5, WasteDisposalDelivery = @P6, ConfirmationOfSufficiency = @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, WasteDisposalValidExemption, LastWasteDisposalPort, ConfirmationOfCorrectness, LastWasteDisposalDate, WasteDisposalDelivery " + + string query = string.Format("SELECT Id, WasteDisposalValidExemption, LastWasteDisposalPort, ConfirmationOfCorrectness, " + + "LastWasteDisposalDate, WasteDisposalDelivery, ConfirmationOfSufficiency " + "FROM {0} ", this.Tablename); switch (filter) @@ -122,6 +127,7 @@ namespace bsmd.database if (!reader.IsDBNull(3)) was.ConfirmationOfCorrectness = reader.GetBoolean(3); if (!reader.IsDBNull(4)) was.LastWasteDisposalDate = reader.GetDateTime(4); if (!reader.IsDBNull(5)) was.WasteDisposalDelivery = reader.GetByte(5); + if (!reader.IsDBNull(6)) was.ConfirmationOfSufficiency = reader.GetBoolean(6); result.Add(was); } reader.Close();