From cb1ff8a533b526ed2c01bb8ef4c11efe81a2c9f6 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Thu, 21 Mar 2024 08:19:41 +0100 Subject: [PATCH] added special Excel import case for BRV/BRE, NSW by BSMD in INFO class --- ENI2/ENI2.csproj | 4 ++-- ENI2/Excel/DakosyUtil.cs | 25 ++++++++++++++++++++++--- ENI2/Excel/ExcelUtil.cs | 23 +++++++++++++++++++++-- 3 files changed, 45 insertions(+), 7 deletions(-) diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj index 538536fe..297743b8 100644 --- a/ENI2/ENI2.csproj +++ b/ENI2/ENI2.csproj @@ -36,8 +36,8 @@ 5.4.0.0 true publish.html - 7 - 7.2.2.7 + 8 + 7.2.2.8 false true true diff --git a/ENI2/Excel/DakosyUtil.cs b/ENI2/Excel/DakosyUtil.cs index 181a7968..d447836c 100644 --- a/ENI2/Excel/DakosyUtil.cs +++ b/ENI2/Excel/DakosyUtil.cs @@ -83,7 +83,7 @@ namespace ENI2.Excel if ((message.MessageNotificationClass == Message.NotificationClass.HAZD) && notificationClasses.Contains(Message.NotificationClass.HAZD)) { if (ScanHAZD(message, reader)) ExcelReader.SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.INFO) && notificationClasses.Contains(Message.NotificationClass.INFO)) - { if (ScanINFO(message, reader)) ExcelReader.SaveMessage(message); continue; } + { if (ScanINFO(message, messageCore, reader)) ExcelReader.SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.LADG) && notificationClasses.Contains(Message.NotificationClass.LADG)) { if (ScanLADG(message, reader)) ExcelReader.SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.MDH) && notificationClasses.Contains(Message.NotificationClass.MDH)) @@ -1117,7 +1117,7 @@ namespace ENI2.Excel #region INFO - private static bool ScanINFO(Message infoMessage, ExcelReader reader) + private static bool ScanINFO(Message infoMessage, MessageCore core, ExcelReader reader) { if (infoMessage.Elements.Count == 0) { @@ -1142,7 +1142,26 @@ namespace ENI2.Excel if (!portArea.IsNullOrEmpty() && DBManager.Instance.GetPortAreaDict().ContainsKey(portArea)) info.PortArea = portArea; else - info.PortArea = ""; + info.PortArea = ""; + + // März 2024: Spezialfall für Abrechnungsabteilung Bremenports: Feld wird markiert (falls genügend Platz) + // falls das Schiff nach DEBRE oder DEBHV geht: + + if (core.PoC.Equals("DEBRE") || core.PoC.Equals("DEBRV")) + { + if (info.SpecialRequirementsOfShipAtBerth == null) + { + info.SpecialRequirementsOfShipAtBerth = "NSW by BSMD"; + } + else if (info.SpecialRequirementsOfShipAtBerth.Length <= 241) // we have enough space + { + if (info.SpecialRequirementsOfShipAtBerth.Length > 0) // if there is text already add a separator + { + info.SpecialRequirementsOfShipAtBerth += " | "; + } + info.SpecialRequirementsOfShipAtBerth += "NSW by BSMD"; + } + } return true; } diff --git a/ENI2/Excel/ExcelUtil.cs b/ENI2/Excel/ExcelUtil.cs index 05c2e022..6c962c0f 100644 --- a/ENI2/Excel/ExcelUtil.cs +++ b/ENI2/Excel/ExcelUtil.cs @@ -93,7 +93,7 @@ namespace ENI2.Excel if ((message.MessageNotificationClass == Message.NotificationClass.HAZD) && notificationClasses.Contains(Message.NotificationClass.HAZD)) { if (ScanHAZD(message, reader)) ExcelReader.SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.INFO) && notificationClasses.Contains(Message.NotificationClass.INFO)) - { if (ScanINFO(message, reader)) ExcelReader.SaveMessage(message); continue; } + { if (ScanINFO(message, messageCore, reader)) ExcelReader.SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.LADG) && notificationClasses.Contains(Message.NotificationClass.LADG)) { if (ScanLADG(message, reader)) ExcelReader.SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.MDH) && notificationClasses.Contains(Message.NotificationClass.MDH)) @@ -943,7 +943,7 @@ namespace ENI2.Excel #region INFO - private static bool ScanINFO(Message infoMessage, ExcelReader reader) + private static bool ScanINFO(Message infoMessage, MessageCore core, ExcelReader reader) { if (infoMessage.Elements.Count == 0) { @@ -970,6 +970,25 @@ namespace ENI2.Excel bool? fumigatedBulkCargo = reader.ReadBoolean("INFO.FumigatedBulkCargo"); info.FumigatedBulkCargo = (byte)((fumigatedBulkCargo ?? false) ? 1 : 0); + // März 2024: Spezialfall für Abrechnungsabteilung Bremenports: Feld wird markiert (falls genügend Platz) + // falls das Schiff nach DEBRE oder DEBHV geht: + + if(core.PoC.Equals("DEBRE") || core.PoC.Equals("DEBRV")) + { + if(info.SpecialRequirementsOfShipAtBerth == null) + { + info.SpecialRequirementsOfShipAtBerth = "NSW by BSMD"; + } + else if(info.SpecialRequirementsOfShipAtBerth.Length <= 241) // we have enough space + { + if(info.SpecialRequirementsOfShipAtBerth.Length > 0) // if there is text already add a separator + { + info.SpecialRequirementsOfShipAtBerth += " | "; + } + info.SpecialRequirementsOfShipAtBerth += "NSW by BSMD"; + } + } + return true; }