diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index cd26ef0c..4aebca82 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Source/SQL/Update_3.5.3_To_3.5.4.sql b/nsw/Source/SQL/Update_3.5.3_To_3.5.4.sql new file mode 100644 index 00000000..a5047332 --- /dev/null +++ b/nsw/Source/SQL/Update_3.5.3_To_3.5.4.sql @@ -0,0 +1,8 @@ +PRINT N'Altering [dbo].[SEC]...'; +GO +ALTER TABLE [dbo].[SEC] ADD [KielCanalPassagePlanned] BIT NULL; +ALTER TABLE [dbo].[SEC] ADD [KielCanalPassagePlannedIncomming] [datetime] NULL; +ALTER TABLE [dbo].[SEC] ADD [KielCanalPassagePlannedOutgoing] [datetime] NULL; +GO + + diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs index 3a9cb896..19509894 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReader.cs @@ -475,7 +475,7 @@ namespace bsmd.ExcelReadService { DateTime date; if (DateTime.TryParseExact(val, "HH:mm", CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out date)) - return date; + result = date; } if ((result == null) && (val != null)) diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs index 778ad684..0cd49a5e 100644 --- a/nsw/Source/bsmd.ExcelReadService/Util.cs +++ b/nsw/Source/bsmd.ExcelReadService/Util.cs @@ -157,6 +157,12 @@ namespace bsmd.ExcelReadService } ATA ata = ataMessage.Elements[0] as ATA; Util.ScanMessage(ata, reader); + + if(!ata.ATAPortOfCall.HasValue) + { + reader.ReadDateTime("ATA.ATADatePortOfCall", "ATA.ATATimePortOfCall"); + } + if (!ata.ATAPortOfCall.HasValue && ataMessage.IsNew) messages.Remove(ataMessage); } @@ -176,7 +182,13 @@ namespace bsmd.ExcelReadService } ATD atd = atdMessage.Elements[0] as ATD; Util.ScanMessage(atd, reader); - if (!atd.ATDPortOfCall.HasValue && atdMessage.IsNew) + + if (!atd.ATDPortOfCall.HasValue) + { + reader.ReadDateTime("ATD.ATDDatePortOfCall", "ATD.ATDTimePortOfCall"); + } + + if (!atd.ATDPortOfCall.HasValue && atdMessage.IsNew) messages.Remove(atdMessage); } @@ -318,6 +330,13 @@ namespace bsmd.ExcelReadService Util.ScanMessage(poba, reader); if (((poba.TotalPersonsOnBoardUponArrival ?? 0) == 0) && poba.IsNew) messages.Remove(pobaMessage); + + reader.Conf.ConfirmNumber("POBA.TotalCrewMembersOnBoardUponArrival_DK", poba.TotalCrewMembersOnBoardUponArrival, + (poba.TotalCrewMembersOnBoardUponArrival.HasValue && poba.TotalCrewMembersOnBoardUponArrival > 0) ? + ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); + + reader.Conf.ConfirmNumber("POBA.TotalPassengersOnBoardUponArrival_DK", poba.TotalPassengersOnBoardUponArrival, + ExcelReader.ReadState.OK); } #endregion @@ -338,7 +357,15 @@ namespace bsmd.ExcelReadService Util.ScanMessage(pobd, reader); if (((pobd.TotalPersonsOnBoardUponDeparture ?? 0) == 0) && pobd.IsNew) messages.Remove(pobdMessage); - } + + reader.Conf.ConfirmNumber("POBD.TotalCrewMembersOnBoardUponDeparture_DK", pobd.TotalCrewMembersOnBoardUponDeparture, + (pobd.TotalCrewMembersOnBoardUponDeparture.HasValue && pobd.TotalCrewMembersOnBoardUponDeparture > 0) ? + ExcelReader.ReadState.OK : ExcelReader.ReadState.WARN); + + reader.Conf.ConfirmNumber("POBD.TotalPassengersOnBoardUponDeparture_DK", pobd.TotalPassengersOnBoardUponDeparture, + ExcelReader.ReadState.OK); + + } #endregion @@ -1403,6 +1430,14 @@ namespace bsmd.ExcelReadService reader.Conf.ConfirmText("SEC.GeneralDescriptionOfCargo", genDescCargo, sec.GeneralDescriptionOfCargo.HasValue ? ExcelReader.ReadState.OK : ExcelReader.ReadState.FAIL); + bool? secKielArrival = reader.ReadBoolean("SEC.KielCanalPassagePlanned_Arrival"); + bool? secKielDeparture = reader.ReadBoolean("SEC.KielCanalPassagePlanned_Departure"); + + sec.KielCanalPassagePlanned = (secKielArrival ?? false) || (secKielDeparture ?? false); + sec.KielCanalPassagePlannedIncomming = reader.ReadDateTime("SEC.ETADateKielCanalPassagePlannedIncomming", "SEC.ETATimeKielCanalPassagePlannedIncomming"); + sec.KielCanalPassagePlannedOutgoing = reader.ReadDateTime("SEC.ETADateKielCanalPassagePlannedOutgoing", "SEC.ETATimeKielCanalPassagePlannedOutgoing"); + + // Last10PortFacilitesCalled for (int i = 1; i <= 10; i++) { @@ -2294,6 +2329,8 @@ namespace bsmd.ExcelReadService result.Portname = LocodeDB.PortNameFromLocode(poc); result.HerbergEmailContactReportingVessel = reader.ReadText("ShipMail"); + result.HerbergReportType = reader.ReadText("ReferenceNumber"); + reader.Conf.ConfirmText("ReferenceNumber", result.HerbergReportType, result.HerbergReportType.IsNullOrEmpty() ? ExcelReader.ReadState.FAIL : ExcelReader.ReadState.OK); if (result.IsTransit) result.ETAKielCanal = eta; diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index f8c8cd52..778754f4 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.9")] +[assembly: AssemblyInformationalVersion("3.3.10")] [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 5a999ae8..d3eb6a97 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.9.*")] +[assembly: AssemblyVersion("3.3.10.*")] diff --git a/nsw/Source/bsmd.database/SEC.cs b/nsw/Source/bsmd.database/SEC.cs index 139a6a53..b5903042 100644 --- a/nsw/Source/bsmd.database/SEC.cs +++ b/nsw/Source/bsmd.database/SEC.cs @@ -120,6 +120,12 @@ namespace bsmd.database [LookupName("SEC.MatterToReport")] [MaxLength(1024)] public string MatterToReport { get; set; } + + public bool? KielCanalPassagePlanned { get; set; } + + public DateTime? KielCanalPassagePlannedIncomming { get; set; } + + public DateTime? KielCanalPassagePlannedOutgoing { get; set; } public List LastTenPortFacilitesCalled { get { return this.ltpfc; } } @@ -153,6 +159,9 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P17", this.GeneralDescriptionOfCargo); scmd.Parameters.AddWithNullableValue("@P18", this.CSOFax); scmd.Parameters.AddWithNullableValue("@P19", this.MatterToReport); + scmd.Parameters.AddWithNullableValue("@P20", this.KielCanalPassagePlanned); + scmd.Parameters.AddWithNullableValue("@P21", this.KielCanalPassagePlannedIncomming); + scmd.Parameters.AddWithNullableValue("@P22", this.KielCanalPassagePlannedOutgoing); if (this.IsNew) { @@ -161,7 +170,8 @@ 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, MatterToReport) " + + "CurrentShipSecurityLevel, PortFacilityOfArrival, GeneralDescriptionOfCargo, CSOFax, MatterToReport, " + + "KielCanalPassagePlanned, KielCanalPassagePlannedIncomming, KielCanalPassagePlannedOutgoing) " + "VALUES ( @ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, " + "@P17, @P18, @P19 )", this.Tablename); } @@ -173,7 +183,8 @@ 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, MatterToReport = @P19 WHERE Id = @ID", this.Tablename); + "GeneralDescriptionOfCargo = @P17, CSOFax = @P18, MatterToReport = @P19, KielCanalPassagePlanned = @P20, " + + "KielCanalPassagePlannedIncomming = @P21, KielCanalPassagePlannedOutgoing = @P22 WHERE Id = @ID", this.Tablename); } } @@ -182,7 +193,8 @@ 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, MatterToReport FROM {0}", this.Tablename); + "CurrentShipSecurityLevel, PortFacilityOfArrival, GeneralDescriptionOfCargo, CSOFax, MatterToReport, " + + "KielCanalPassagePlanned, KielCanalPassagePlannedIncomming, KielCanalPassagePlannedOutgoing FROM {0}", this.Tablename); switch (filter) { @@ -226,6 +238,9 @@ namespace bsmd.database 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); + if (!reader.IsDBNull(19)) sec.KielCanalPassagePlanned = reader.GetBoolean(19); + if (!reader.IsDBNull(20)) sec.KielCanalPassagePlannedIncomming = reader.GetDateTime(20); + if (!reader.IsDBNull(21)) sec.KielCanalPassagePlannedOutgoing = reader.GetDateTime(21); result.Add(sec); } diff --git a/nsw/Source/bsmd.database/bsmd.database.csproj b/nsw/Source/bsmd.database/bsmd.database.csproj index 2a546aca..2cc17e46 100644 --- a/nsw/Source/bsmd.database/bsmd.database.csproj +++ b/nsw/Source/bsmd.database/bsmd.database.csproj @@ -125,7 +125,9 @@ - + + Designer + diff --git a/nsw/Source/bsmd.database/packages.config b/nsw/Source/bsmd.database/packages.config new file mode 100644 index 00000000..31743570 --- /dev/null +++ b/nsw/Source/bsmd.database/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file