From f68f4e56d922c38eed312c2ce44bfc5afb7ae057 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Mon, 21 Feb 2022 09:43:44 +0100 Subject: [PATCH] Excel sheet import --- ENI2/App.config | 6 +- ENI2/ENI2.csproj | 8 +- ENI2/Excel/ExcelReader.cs | 26 ++++ ENI2/Excel/ExcelUtil.cs | 258 +++++++++++++++++++++++++++++++----- ENI2/Resources/EUREPORT.png | Bin 39708 -> 42234 bytes SQL/Update_6.x_To_7.0.sql | 13 ++ bsmd.database/CREW.cs | 27 +++- bsmd.database/Message.cs | 5 +- bsmd.database/NOA_NOD.cs | 2 +- bsmd.database/PAS.cs | 18 ++- bsmd.database/STAT.cs | 12 ++ bsmd.database/WAS.cs | 2 +- bsmd.database/WAS_RCPT.cs | 2 +- 13 files changed, 325 insertions(+), 54 deletions(-) diff --git a/ENI2/App.config b/ENI2/App.config index 234c2e31..6105b6f2 100644 --- a/ENI2/App.config +++ b/ENI2/App.config @@ -26,11 +26,11 @@ 1000 - http://heupferd/bsmd.LockingService/LockingService.svc + http://192.168.2.24/LockingService/LockingService.svc - Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=E:\DATA\DB\NSW.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False - + Initial Catalog=nswtest;Data Source=192.168.2.24\SQLEXPRESS;Uid=dfuser;pwd=dfpasswd;Persist Security Info=False;Connection Reset=false + diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj index a9588845..b4a81828 100644 --- a/ENI2/ENI2.csproj +++ b/ENI2/ENI2.csproj @@ -18,7 +18,7 @@ - eni2.publish\ + eni_test\ true Web true @@ -28,9 +28,9 @@ false false true - http://192.168.2.24/eni2.publish/ + http://192.168.2.24/eni_test/ http://www.textbausteine.net/ - ENI + ENI Testversion Informatikbüro Daniel Schick NSW 5.4.0.0 @@ -86,7 +86,7 @@ Properties\app.manifest - 9B5725EAD90F2E06094631407417EB2554E88941 + 94D98790E3B6C4CC9F4B57C8FD305E3225894DF8 true diff --git a/ENI2/Excel/ExcelReader.cs b/ENI2/Excel/ExcelReader.cs index 58220717..0b4f47c2 100644 --- a/ENI2/Excel/ExcelReader.cs +++ b/ENI2/Excel/ExcelReader.cs @@ -316,6 +316,32 @@ namespace ENI2.Excel return result; } + internal byte? ReadHazards(string lookup) + { + string val = this.ReadText(lookup); + byte? result = null; + if(val != null) + { + if (val.Equals("p", StringComparison.OrdinalIgnoreCase)) return 0; + if (val.Equals("s", StringComparison.OrdinalIgnoreCase)) return 1; + if (val.Equals("s/p", StringComparison.OrdinalIgnoreCase)) return 2; + } + return result; + } + + internal byte? ReadHazardClass(string lookup) + { + string val = this.ReadText(lookup); + byte? result = null; + if(val != null) + { + if (val.Equals("a", StringComparison.OrdinalIgnoreCase)) return 0; + if (val.Equals("b", StringComparison.OrdinalIgnoreCase)) return 1; + if (val.Equals("a and b", StringComparison.OrdinalIgnoreCase)) return 2; // TODO make this more flexible + } + return result; + } + internal DateTime? ReadBirthDate(string lookup) { DateTime? result = this.ReadDate(lookup); diff --git a/ENI2/Excel/ExcelUtil.cs b/ENI2/Excel/ExcelUtil.cs index e1ae2ebb..0978c85f 100644 --- a/ENI2/Excel/ExcelUtil.cs +++ b/ENI2/Excel/ExcelUtil.cs @@ -87,7 +87,7 @@ namespace ENI2.Excel if ((message.MessageNotificationClass == Message.NotificationClass.SERV) && notificationClasses.Contains(Message.NotificationClass.SERV)) { if (ScanSERV(message, reader)) SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.STAT) && notificationClasses.Contains(Message.NotificationClass.STAT)) - { if (ScanSTAT(message, messageCore, reader)) SaveMessage(message); continue; } + { if (ScanSTAT(message, messageCore, messages, reader)) SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.STO) && notificationClasses.Contains(Message.NotificationClass.STO)) { if (ScanSTO(message, reader)) SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.TIEFA) && notificationClasses.Contains(Message.NotificationClass.TIEFA)) @@ -100,6 +100,8 @@ namespace ENI2.Excel { if (ScanTOWD(message, reader)) SaveMessage(message); continue; } if ((message.MessageNotificationClass == Message.NotificationClass.WAS) && notificationClasses.Contains(Message.NotificationClass.WAS)) { if (ScanWAS(message, reader)) SaveMessage(message); continue; } + if((message.MessageNotificationClass == Message.NotificationClass.WAS_RCPT) && notificationClasses.Contains(Message.NotificationClass.WAS_RCPT)) + { if (ScanWAS_RCPT(message, reader)) SaveMessage(message); continue; } } @@ -187,6 +189,8 @@ namespace ENI2.Excel ScanMessage(tiefa, reader); if (!tiefa.DraughtUponArrival_DMT.HasValue && tiefaMessage.IsNew) return false; + if (tiefa.DraughtUponArrival_DMT.HasValue) + tiefa.DraughtUponArrival_DMT = tiefa.DraughtUponArrival_DMT.Value * 10; // m to dm return true; } @@ -206,6 +210,8 @@ namespace ENI2.Excel ScanMessage(tiefd, reader); if (!tiefd.DraughtUponDeparture_DMT.HasValue && tiefdMessage.IsNew) return false; + if (tiefd.DraughtUponDeparture_DMT.HasValue) + tiefd.DraughtUponDeparture_DMT = tiefd.DraughtUponDeparture_DMT.Value * 10; // m to dm return true; } @@ -382,7 +388,7 @@ namespace ENI2.Excel string imdg_portOfLoading = string.Format("HAZA.IMDG.PortOfLoading_{0}", i); string imdg_portOfDischarge = string.Format("HAZA.IMDG.PortOfDischarge_{0}", i); string imdg_containerNumber = string.Format("HAZA.IMDG.ContainerNumber_{0}", i); - + string imdg_remarks = string.Format("HAZA.IMDG.Remarks_{0}", i); string unNumber = reader.ReadText(imdg_unno); if(unNumber.IsNullOrEmpty()) // if unnumber is not set ignore this row @@ -416,7 +422,8 @@ namespace ENI2.Excel imdgPosition.StowagePosition = reader.ReadText(imdg_stowagePosition); imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading); imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge); - imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber); + imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber); + imdgPosition.Remarks = reader.ReadText(imdg_remarks); } #endregion @@ -432,6 +439,9 @@ namespace ENI2.Excel string ibc_stowagePosition = string.Format("HAZA.IBC.StowagePosition_{0}", i); string ibc_portOfLoading = string.Format("HAZA.IBC.PortOfLoading_{0}", i); string ibc_portOfDischarge = string.Format("HAZA.IBC.PortOfDischarge_{0}", i); + string ibc_hazards = string.Format("HAZA.IBC.Hazards_{0}", i); + string ibc_specrefs = string.Format("HAZA.IBC.SpecRef15_19_{0}", i); + string ibc_remarks = string.Format("HAZA.IBC.Remarks_{0}", i); string productName = reader.ReadText(ibc_productName); if (productName.IsNullOrEmpty()) continue; @@ -473,7 +483,10 @@ namespace ENI2.Excel ibcPosition.Quantity_KGM = (int ?) reader.ReadNumber(ibc_quantity); ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition); ibcPosition.PortOfLoading = reader.ReadText(ibc_portOfLoading); - ibcPosition.PortOfDischarge = reader.ReadText(ibc_portOfDischarge); + ibcPosition.PortOfDischarge = reader.ReadText(ibc_portOfDischarge); + ibcPosition.Hazards = reader.ReadHazards(ibc_hazards); + ibcPosition.SpecRef15_19 = reader.ReadBoolean(ibc_specrefs); + ibcPosition.Remarks = reader.ReadText(ibc_remarks); } #endregion @@ -487,6 +500,9 @@ namespace ENI2.Excel string igc_stowagePosition = string.Format("HAZA.IGC.StowagePosition_{0}", i); string igc_portOfLoading = string.Format("HAZA.IGC.PortOfLoading_{0}", i); string igc_portOfDischarge = string.Format("HAZA.IGC.PortOfDischarge_{0}", i); + string igc_unnumber = string.Format("HAZA.IGC.UNNumber_{0}", i); + string igc_imoclass = string.Format("HAZA.IGC.IMOClass_{0}", i); + string igc_remarks = string.Format("HAZA.IGC.Remarks_{0}", i); string productName = reader.ReadText(igc_productName); if (productName.IsNullOrEmpty()) continue; @@ -505,7 +521,10 @@ namespace ENI2.Excel igcPosition.Quantity_KGM = reader.ReadNumber(igc_quantity); igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition); igcPosition.PortOfLoading = reader.ReadText(igc_portOfLoading); - igcPosition.PortOfDischarge = reader.ReadText(igc_portOfDischarge); + igcPosition.PortOfDischarge = reader.ReadText(igc_portOfDischarge); + igcPosition.UNNumber = reader.ReadText(igc_unnumber); + igcPosition.IMOClass = reader.ReadText(igc_imoclass); + igcPosition.Remarks = reader.ReadText(igc_remarks); } #endregion @@ -520,6 +539,10 @@ namespace ENI2.Excel string imsbc_stowagePosition = string.Format("HAZA.IMSBC.StowagePosition_{0}", i); string imsbc_portOfLoading = string.Format("HAZA.IMSBC.PortOfLoading_{0}", i); string imsbc_portOfDischarge = string.Format("HAZA.IMSBC.PortOfDischarge_{0}", i); + string imsbc_hazardclass = string.Format("HAZA.IMSBC.IMOHazardClass_{0}", i); + string imsbc_unnumber = string.Format("HAZA.IMSBC.UNNumber_{0}", i); + string imsbc_imoclass = string.Format("HAZA.IMSBC.IMOClass_{0}", i); + string imsbc_remarks = string.Format("HAZA.IMSBC.Remarks_{0}", i); string bcsn = reader.ReadText(imsbc_bcsn); if (bcsn.IsNullOrEmpty()) continue; @@ -539,7 +562,11 @@ namespace ENI2.Excel imsbcPosition.Quantity_KGM = reader.ReadNumber(imsbc_quantity); imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition); imsbcPosition.PortOfLoading = reader.ReadText(imsbc_portOfLoading); - imsbcPosition.PortOfDischarge = reader.ReadText(imsbc_portOfDischarge); + imsbcPosition.PortOfDischarge = reader.ReadText(imsbc_portOfDischarge); + imsbcPosition.IMOHazardClass = reader.ReadHazardClass(imsbc_hazardclass); + imsbcPosition.UNNumber = reader.ReadText(imsbc_unnumber); + imsbcPosition.IMOClass = reader.ReadText(imsbc_imoclass); + imsbcPosition.Remarks = reader.ReadText(imsbc_remarks); } #endregion @@ -554,6 +581,7 @@ namespace ENI2.Excel string marpol_stowagePosition = string.Format("HAZA.MARPOL.StowagePosition_{0}", i); string marpol_portOfLoading = string.Format("HAZA.MARPOL.PortOfLoading_{0}", i); string marpol_portOfDischarge = string.Format("HAZA.MARPOL.PortOfDischarge_{0}", i); + string marpol_remarks = string.Format("HAZA.MARPOL.Remarks_{0}", i); string name = reader.ReadText(marpol_name); if (name.IsNullOrEmpty()) continue; @@ -585,8 +613,9 @@ namespace ENI2.Excel marpolPosition.Quantity_KGM = reader.ReadNumber(marpol_quantity); marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition); - marpolPosition.PortOfLoading = reader.ReadText(marpol_portOfLoading); - marpolPosition.PortOfDischarge = reader.ReadText(marpol_portOfDischarge); + marpolPosition.PortOfLoading = reader.ReadText(marpol_portOfLoading); + marpolPosition.PortOfDischarge = reader.ReadText(marpol_portOfDischarge); + marpolPosition.Remarks = reader.ReadText(marpol_remarks); } #endregion @@ -648,6 +677,7 @@ namespace ENI2.Excel string imdg_portOfLoading = string.Format("HAZD.IMDG.PortOfLoading_{0}", i); string imdg_portOfDischarge = string.Format("HAZD.IMDG.PortOfDischarge_{0}", i); string imdg_containerNumber = string.Format("HAZD.IMDG.ContainerNumber_{0}", i); + string imdg_remarks = string.Format("HAZD.IMDG.Remarks_{0}", i); string unNumber = reader.ReadText(imdg_unno); if (unNumber.IsNullOrEmpty()) continue; // if unnumber is not set ignore this row @@ -678,7 +708,8 @@ namespace ENI2.Excel imdgPosition.StowagePosition = reader.ReadText(imdg_stowagePosition); imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading); imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge); - imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber); + imdgPosition.ContainerNumber = reader.ReadText(imdg_containerNumber); + imdgPosition.Remarks = reader.ReadText(imdg_remarks); } #endregion @@ -694,6 +725,9 @@ namespace ENI2.Excel string ibc_stowagePosition = string.Format("HAZD.IBC.StowagePosition_{0}", i); string ibc_portOfLoading = string.Format("HAZD.IBC.PortOfLoading_{0}", i); string ibc_portOfDischarge = string.Format("HAZD.IBC.PortOfDischarge_{0}", i); + string ibc_hazards = string.Format("HAZD.IBC.Hazards_{0}", i); + string ibc_specref = string.Format("HAZD.IBC.SpecRef15_19_{0}", i); + string ibc_remarks = string.Format("HAZD.IBC.Remarks_{0}", i); string productName = reader.ReadText(ibc_productName); if (productName.IsNullOrEmpty()) continue; @@ -735,7 +769,10 @@ namespace ENI2.Excel ibcPosition.Quantity_KGM = (int?)reader.ReadNumber(ibc_quantity); ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition); ibcPosition.PortOfLoading = reader.ReadText(ibc_portOfLoading); - ibcPosition.PortOfDischarge = reader.ReadText(ibc_portOfDischarge); + ibcPosition.PortOfDischarge = reader.ReadText(ibc_portOfDischarge); + ibcPosition.Hazards = reader.ReadHazards(ibc_hazards); + ibcPosition.SpecRef15_19 = reader.ReadBoolean(ibc_specref); + ibcPosition.Remarks = reader.ReadText(ibc_remarks); } #endregion @@ -749,6 +786,9 @@ namespace ENI2.Excel string igc_stowagePosition = string.Format("HAZD.IGC.StowagePosition_{0}", i); string igc_portOfLoading = string.Format("HAZD.IGC.PortOfLoading_{0}", i); string igc_portOfDischarge = string.Format("HAZD.IGC.PortOfDischarge_{0}", i); + string igc_unnumber = string.Format("HAZD.IGC.UNNumber_{0}", i); + string igc_imoclass = string.Format("HAZD.IGC.IMOClass_{0}", i); + string igc_remarks = string.Format("HAZD.IGC.Remarks_{0}", i); string productName = reader.ReadText(igc_productName); if (productName.IsNullOrEmpty()) continue; @@ -767,7 +807,10 @@ namespace ENI2.Excel igcPosition.Quantity_KGM = reader.ReadNumber(igc_quantity); igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition); igcPosition.PortOfLoading = reader.ReadText(igc_portOfLoading); - igcPosition.PortOfDischarge = reader.ReadText(igc_portOfDischarge); + igcPosition.PortOfDischarge = reader.ReadText(igc_portOfDischarge); + igcPosition.UNNumber = reader.ReadText(igc_unnumber); + igcPosition.IMOClass = reader.ReadText(igc_imoclass); + igcPosition.Remarks = reader.ReadText(igc_remarks); } #endregion @@ -782,6 +825,10 @@ namespace ENI2.Excel string imsbc_stowagePosition = string.Format("HAZD.IMSBC.StowagePosition_{0}", i); string imsbc_portOfLoading = string.Format("HAZD.IMSBC.PortOfLoading_{0}", i); string imsbc_portOfDischarge = string.Format("HAZD.IMSBC.PortOfDischarge_{0}", i); + string imsbc_hazardclass = string.Format("HAZD.IMSBC.IMOHazardClass_{0}", i); + string imsbc_unnumber = string.Format("HAZD.IMSBC.UNNumber_{0}", i); + string imsbc_imoclass = string.Format("HAZD.IMSBC.IMOClass_{0}", i); + string imsbc_remarks = string.Format("HAZD.IMSBC.Remarks_{0}", i); string bcsn = reader.ReadText(imsbc_bcsn); if (bcsn.IsNullOrEmpty()) continue; @@ -801,7 +848,11 @@ namespace ENI2.Excel imsbcPosition.Quantity_KGM = reader.ReadNumber(imsbc_quantity); imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition); imsbcPosition.PortOfLoading = reader.ReadText(imsbc_portOfLoading); - imsbcPosition.PortOfDischarge = reader.ReadText(imsbc_portOfDischarge); + imsbcPosition.PortOfDischarge = reader.ReadText(imsbc_portOfDischarge); + imsbcPosition.IMOHazardClass = reader.ReadHazardClass(imsbc_hazardclass); + imsbcPosition.UNNumber = reader.ReadText(imsbc_unnumber); + imsbcPosition.IMOClass = reader.ReadText(imsbc_imoclass); + imsbcPosition.Remarks = reader.ReadText(imsbc_remarks); } #endregion @@ -816,6 +867,7 @@ namespace ENI2.Excel string marpol_stowagePosition = string.Format("HAZD.MARPOL.StowagePosition_{0}", i); string marpol_portOfLoading = string.Format("HAZD.MARPOL.PortOfLoading_{0}", i); string marpol_portOfDischarge = string.Format("HAZD.MARPOL.PortOfDischarge_{0}", i); + string marpol_remarks = string.Format("HAZD.MARPOL.Remarks_{0}", i); string name = reader.ReadText(marpol_name); if (name.IsNullOrEmpty()) continue; @@ -845,9 +897,10 @@ namespace ENI2.Excel } marpolPosition.Quantity_KGM = reader.ReadNumber(marpol_quantity); - marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition); - marpolPosition.PortOfLoading = reader.ReadText(marpol_portOfLoading); - marpolPosition.PortOfDischarge = reader.ReadText(marpol_portOfDischarge); + marpolPosition.StowagePosition = reader.ReadText(marpol_stowagePosition); + marpolPosition.PortOfLoading = reader.ReadText(marpol_portOfLoading); + marpolPosition.PortOfDischarge = reader.ReadText(marpol_portOfDischarge); + marpolPosition.Remarks = reader.ReadText(marpol_remarks); } #endregion @@ -886,7 +939,7 @@ namespace ENI2.Excel #region STAT - private static bool ScanSTAT(Message statMessage, MessageCore messageCore, ExcelReader reader) + private static bool ScanSTAT(Message statMessage, MessageCore messageCore, List messages, ExcelReader reader) { if(statMessage.Elements.Count == 0) { @@ -897,8 +950,22 @@ namespace ENI2.Excel STAT stat = statMessage.Elements[0] as STAT; ScanMessage(stat, reader); + foreach(Message preMessage in messages) + { + if(preMessage.MessageNotificationClass == Message.NotificationClass.PRE72H) + { + if(preMessage.Elements.Count > 0) + { + PRE72H pre72h = preMessage.Elements[0] as PRE72H; + pre72h.Tanker = stat.IsTanker; + SaveMessage(preMessage); + } + } + } + stat.PortOfRegistry = reader.ReadLoCode("STAT.PortOfRegistry"); - stat.Flag = reader.ReadNationality("STAT.Flag"); + if (stat.PortOfRegistry.Length == 5) + stat.Flag = stat.PortOfRegistry.Substring(0, 2); stat.MMSINumber = reader.ReadTextNoWhitespace("STAT.MMSINumber"); stat.CallSign = reader.ReadTextNoWhitespace("STAT.CallSign"); stat.ISMCompanyId = reader.ReadTextNoWhitespace("STAT.ISMCompanyId"); @@ -1061,7 +1128,10 @@ namespace ENI2.Excel ScanMessage(was, reader); was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery"); - was.LastWasteDisposalPort = reader.ReadLoCode("WAS.LastWasteDisposalPort"); + was.LastWasteDisposalPort = reader.ReadLoCode("WAS.LastWasteDisposalPort"); + was.NextWasteDisposalPort = reader.ReadLoCode("WAS.NextWasteDisposalPort"); + was.ConfirmationOfCorrectness = true; // wir haben immer Recht (NSW7.0) + was.ConfirmationOfSufficiency = true; string wastedispServProvName = reader.ReadText("WAS.WasteDisposalServiceProviderName"); if (wastedispServProvName != null) @@ -1077,7 +1147,7 @@ namespace ENI2.Excel was.WasteDisposalServiceProvider[0].WasteDisposalDelivery = was.WasteDisposalDelivery; } - // Waste 1 - 15 + // Waste 1 - 25 for (int i = 1; i <= was.NumberOfExcelRows; i++) { //string wastetype = string.Format("WAS.WasteType_{0}", i); @@ -1087,8 +1157,7 @@ namespace ENI2.Excel string wasteCapacity = string.Format("WAS.WasteCapacity_MTQ_{0}", i); 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); + string amountGen = string.Format("WAS.WasteAmountGeneratedTillNextPort_MTQ_{0}", i); if (!(was.GetSublistElementWithIdentifier(i.ToString()) is Waste waste)) { @@ -1140,15 +1209,14 @@ namespace ENI2.Excel waste.WasteCapacity_MTQ = reader.ReadNumberDefaultZero(wasteCapacity); waste.WasteAmountRetained_MTQ = reader.ReadNumberDefaultZero(wasteRetained); - waste.WasteDisposalPort = reader.ReadLoCode(wastePort); + waste.WasteDisposalPort = reader.ReadLoCode(wastePort); // aka RemainingWasteDisposalPort if (waste.WasteDisposalPort.IsNullOrEmpty()) { waste.WasteDisposalPort = "ZZUKN"; } - waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumberDefaultZero(amountGen); - waste.WasteDisposedAtLastPort_MTQ = reader.ReadNumberDefaultZero(wasteDis); + waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumberDefaultZero(amountGen); if(i==15) // falls letzte Zeile leer, entfernen: Christin 22.3.17 { @@ -1169,6 +1237,77 @@ namespace ENI2.Excel } #endregion + #region WAS_RCPT + + private static bool ScanWAS_RCPT(Message was_rcptMessage, ExcelReader reader) + { + was_rcptMessage.DeleteElements(); + + for (int i = 1; i <= was_rcptMessage.NumberOfExcelRows; i++) + { + string wasrcpt_identNumber = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.IdentificationNumber", i); + string wasrcpt_portreceptFacilityName = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.PortReceptionFacilityName", i); + string wasrcpt_portreceptFacilityProviderName = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.PortReceptionFacilityProviderName", i); + string wasrcpt_treatmentFacility = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.TreatmentFacilityProviderName", i); + string wasrcpt_delFromDate = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.WasteDeliveryDateFromDate", i); + string wasrcpt_delFromTime = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.WasteDeliveryDateFromTime", i); + string wasrcpt_delToDate = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.WasteDeliveryDateToDate", i); + string wasrcpt_delToTime = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.WasteDeliveryDateToTime", i); + + if (!(was_rcptMessage.GetSublistElementWithIdentifier((i).ToString()) is WAS_RCPT wasr)) + { + wasr = new WAS_RCPT(); + wasr.Identifier = (i).ToString(); + wasr.MessageHeader = was_rcptMessage; + was_rcptMessage.Elements.Add(wasr); + } + else + { + wasr.DeleteElements(); + } + + wasr.IdentificationNumber = reader.ReadText(wasrcpt_identNumber); + wasr.PortReceptionFacilityName = reader.ReadText(wasrcpt_portreceptFacilityName); + wasr.PortReceptionFacilityProviderName = reader.ReadText(wasrcpt_portreceptFacilityProviderName); + string treatmentFacility = reader.ReadText(wasrcpt_treatmentFacility); + if(!treatmentFacility.IsNullOrEmpty()) + { + TreatmentFacilityProvider tfp = new TreatmentFacilityProvider(); + tfp.WAS_RCPT = wasr; + tfp.Identifier = "1"; + wasr.TreatmentFacilityProvider.Add(tfp); + tfp.TreatmentFacilityProviderName = treatmentFacility; + } + wasr.WasteDeliveryDateFrom = reader.ReadDateTime(wasrcpt_delFromDate, wasrcpt_delFromTime); + wasr.WasteDeliveryDateTo = reader.ReadDateTime(wasrcpt_delToDate, wasrcpt_delToTime); + + // read waste deliveries + for (int j = 1; j <= wasr.NumberOfExcelRows; j++) + { + string wtype = string.Format("WAS_RCPT.WasteDeliveryReceipt.WasteCode_{0}", j); + string wDescr = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.WasteDescription_{1}", i, j); + string wAmount = string.Format("WAS_RCPT.WasteDeliveryReceipt_{0}.AmountWasteReceived_MTQ_{1}", i, j); + + WasteReceived wr = new WasteReceived(); + wr.WAS_RCPT = wasr; + wasr.WasteReceived.Add(wr); + wr.Identifier = j.ToString(); + + wr.WasteCode = reader.ReadText(wtype); + wr.WasteDescription = reader.ReadText(wDescr); + wr.AmountWasteReceived_MTQ = reader.ReadNumber(wAmount); + } + + // only add message when an identification number was given + if (wasr.IdentificationNumber.IsNullOrEmpty()) + was_rcptMessage.Elements.Remove(wasr); + } + + return true; + } + + #endregion + #region MDH private static bool ScanMDH(Message mdhMessage, List messages, MessageCore messageCore, ExcelReader reader) @@ -1685,6 +1824,8 @@ namespace ENI2.Excel string tLen = string.Format("TOWD.TowageOnDepartureLengthOverall_MTR_{0}", i); string tBeam = string.Format("TOWD.TowageOnDepartureBeam_MTR_{0}", i); string tOp = string.Format("TOWD.TowageOnDepartureOperatorCompanyName_{0}", i); + string tPoc = string.Format("TOWD.TowageOnArrivalPurposeOfCall_{0}", i); + string tgt = string.Format("TOWD.TowageOnArrivalGrossTonnage_{0}", i); string towageName = reader.ReadText(tName); if (towageName.IsNullOrEmpty()) continue; @@ -1702,7 +1843,8 @@ namespace ENI2.Excel towd.TowageOnDepartureDraught_DMT = reader.ReadNumber(tDraft); towd.TowageOnDepartureLengthOverall_MTR = reader.ReadNumber(tLen); towd.TowageOnDepartureBeam_MTR = reader.ReadNumber(tBeam); - towd.TowageOnDepartureOperatorCompanyName = reader.ReadText(tOp); + towd.TowageOnDepartureOperatorCompanyName = reader.ReadText(tOp); + //towd.TowageOnD } return true; } @@ -1882,6 +2024,9 @@ namespace ENI2.Excel { crewMessage.DeleteElements(); + bool? notificationSchengen = reader.ReadBoolean("CREW.NotificationSchengen"); + bool? notificationPax = reader.ReadBoolean("CREW.NotificationPAX"); + for (int i = 0; i < crewMessage.NumberOfExcelRows; i++) { string crewLastName = string.Format("CREW.CrewMemberLastName_{0}", i + 1); @@ -1894,6 +2039,10 @@ namespace ENI2.Excel string crewIdentDocType = string.Format("CREW.CrewMemberIdentityDocumentType_{0}", i + 1); string crewIdentDocId = string.Format("CREW.CrewMemberIdentityDocumentId_{0}", i + 1); string crewVisaNo = string.Format("CREW.CrewMemberVisaNumber_{0}", i + 1); + string crewIssuing = string.Format("CREW.CrewMemberIdentityDocumentIssuingState_{0}", i + 1); + string crewIdentDocExpiry = string.Format("CREW.CrewmemberIdentityDocumentExpiryDate_{0}", i + 1); + string crewCountryOfBirth = string.Format("CREW.CountryOfBirth_{0}", i + 1); + string crewEffects = string.Format("CREW.Effects_{0}", i + 1); string lastName = reader.ReadText(crewLastName); string firstName = reader.ReadText(crewFirstName); @@ -1908,6 +2057,8 @@ namespace ENI2.Excel crewMessage.Elements.Add(crew); } + crew.NotificationSchengen = notificationSchengen; + crew.NotificationPAX = notificationPax; crew.CrewMemberLastName = lastName; crew.CrewMemberFirstName = firstName; crew.CrewMemberGender = reader.ReadGender(crewGender); @@ -1917,7 +2068,11 @@ namespace ENI2.Excel crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth); crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType); crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId); - crew.CrewMemberVisaNumber = reader.ReadText(crewVisaNo); + crew.CrewMemberVisaNumber = reader.ReadText(crewVisaNo); + crew.CrewMemberIdentityDocumentIssuingState = reader.ReadNationality(crewIssuing); + crew.CrewMemberIdentityDocumentExpiryDate = reader.ReadDate(crewIdentDocExpiry); + crew.CrewMemberCountryOfBirth = reader.ReadNationality(crewCountryOfBirth); + crew.Effects = reader.ReadText(crewEffects); } } @@ -1928,7 +2083,10 @@ namespace ENI2.Excel { crewdMessage.DeleteElements(); // CREW DEPARTURE - + + bool? notificationSchengen = reader.ReadBoolean("CREWD.NotificationSchengen"); + bool? notificationPax = reader.ReadBoolean("CREWD.NotificationPAX"); + for (int i = 0; i < crewdMessage.NumberOfExcelRows; i++) { string crewLastName = string.Format("CREWD.CrewMemberLastName_{0}", i + 1); @@ -1941,6 +2099,9 @@ namespace ENI2.Excel string crewIdentDocType = string.Format("CREWD.CrewMemberIdentityDocumentType_{0}", i + 1); string crewIdentDocId = string.Format("CREWD.CrewMemberIdentityDocumentId_{0}", i + 1); string crewVisaNo = string.Format("CREWD.CrewMemberVisaNumber_{0}", i + 1); + string crewIssuing = string.Format("CREWD.CrewMemberIdentityDocumentIssuingState_{0}", i + 1); + string crewIdentDocExpiry = string.Format("CREWD.CrewmemberIdentityDocumentExpiryDate_{0}", i + 1); + string crewCountryOfBirth = string.Format("CREWD.CountryOfBirth_{0}", i + 1); string lastName = reader.ReadText(crewLastName); if (!lastName.IsNullOrEmpty()) @@ -1955,6 +2116,8 @@ namespace ENI2.Excel } crew.IsDeparture = true; + crew.NotificationSchengen = notificationSchengen; + crew.NotificationPAX = notificationPax; crew.CrewMemberLastName = lastName; crew.CrewMemberFirstName = reader.ReadText(crewFirstName); crew.CrewMemberGender = reader.ReadGender(crewGender); @@ -1964,8 +2127,10 @@ namespace ENI2.Excel crew.CrewMemberDateOfBirth = reader.ReadBirthDate(crewDateOfBirth); crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType); crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId); - crew.CrewMemberVisaNumber = reader.ReadText(crewVisaNo); - + crew.CrewMemberVisaNumber = reader.ReadText(crewVisaNo); + crew.CrewMemberIdentityDocumentIssuingState = reader.ReadNationality(crewIssuing); + crew.CrewMemberIdentityDocumentExpiryDate = reader.ReadDate(crewIdentDocExpiry); + crew.CrewMemberCountryOfBirth = reader.ReadNationality(crewCountryOfBirth); } } return true; @@ -1979,6 +2144,9 @@ namespace ENI2.Excel { pasMessage.DeleteElements(); + bool? notificationSchengen = reader.ReadBoolean("PAS.NotificationSchengen"); + bool? notificationPax = reader.ReadBoolean("PAS.NotificationPAX"); + for (int i = 0; i < pasMessage.NumberOfExcelRows; i++) { string pasLastName = string.Format("PAS.PassengerLastName_{0}", i + 1); @@ -1993,6 +2161,11 @@ namespace ENI2.Excel string pasIdentDocType = string.Format("PAS.PassengerIdentityDocumentType_{0}", i + 1); string pasIdentDocId = string.Format("PAS.PassengerIdentityDocumentId_{0}", i + 1); string pasVisaNo = string.Format("PAS.PassengerVisaNumber_{0}", i + 1); + string pasIssuing = string.Format("PAS.PassengerIdentityDocumentIssuingState_{0}", i + 1); + string pasExpiryDate = string.Format("PAS.PassengerIdentityDocumentExpiryDate_{0}", i + 1); + string pasCountryOfBirth = string.Format("PAS.CountryOfBirth_{0}", i + 1); + string pasEmergencyCare = string.Format("PAS.EmergencyCare_{0}", i + 1); + string pasEmergencyContact = string.Format("PAS.EmergencyContactNumber_{0}", i + 1); string lastName = reader.ReadText(pasLastName); string firstName = reader.ReadText(pasFirstName); @@ -2007,6 +2180,8 @@ namespace ENI2.Excel pasMessage.Elements.Add(pas); } + pas.NotificationSchengen = notificationSchengen; + pas.NotificationPAX = notificationPax; pas.PassengerLastName = lastName; pas.PassengerFirstName = firstName; pas.PassengerGender = reader.ReadGender(pasGender); @@ -2020,6 +2195,11 @@ namespace ENI2.Excel pas.PassengerIdentityDocumentType = reader.ReadIdentityDocumentType(pasIdentDocType); pas.PassengerIdentityDocumentId = reader.ReadText(pasIdentDocId); pas.PassengerVisaNumber = reader.ReadText(pasVisaNo); + pas.PassengerIdentityDocumentIssuingState = reader.ReadNationality(pasIssuing); + pas.PassengerIdentityDocumentExpiryDate = reader.ReadDate(pasExpiryDate); + pas.PassengerCountryOfBirth = reader.ReadNationality(pasCountryOfBirth); + pas.EmergencyCare = reader.ReadText(pasEmergencyCare); + pas.EmergencyContactNumber = reader.ReadText(pasEmergencyContact); } } @@ -2033,7 +2213,10 @@ namespace ENI2.Excel private static bool ScanPASD(Message pasMessage, ExcelReader reader) { pasMessage.DeleteElements(); - + + bool? notificationSchengen = reader.ReadBoolean("PASD.NotificationSchengen"); + bool? notificationPax = reader.ReadBoolean("PASD.NotificationPAX"); + for (int i = 0; i < pasMessage.NumberOfExcelRows; i++) { string pasLastName = string.Format("PASD.PassengerLastName_{0}", i + 1); @@ -2048,6 +2231,11 @@ namespace ENI2.Excel string pasIdentDocType = string.Format("PASD.PassengerIdentityDocumentType_{0}", i + 1); string pasIdentDocId = string.Format("PASD.PassengerIdentityDocumentId_{0}", i + 1); string pasVisaNo = string.Format("PASD.PassengerVisaNumber_{0}", i + 1); + string pasIssuing = string.Format("PASD.PassengerIdentityDocumentIssuingState_{0}", i + 1); + string pasExpiryDate = string.Format("PASD.PassengerIdentityDocumentExpiryDate_{0}", i + 1); + string pasCountryOfBirth = string.Format("PASD.CountryOfBirth_{0}", i + 1); + string pasEmergencyCare = string.Format("PASD.EmergencyCare_{0}", i + 1); + string pasEmergencyContact = string.Format("PASD.EmergencyContactNumber_{0}", i + 1); string lastName = reader.ReadText(pasLastName); if (!lastName.IsNullOrEmpty()) @@ -2062,7 +2250,8 @@ namespace ENI2.Excel } pas.IsDeparture = true; - + pas.NotificationSchengen = notificationSchengen; + pas.NotificationPAX = notificationPax; pas.PassengerLastName = lastName; pas.PassengerFirstName = reader.ReadText(pasFirstName); pas.PassengerGender = reader.ReadGender(pasGender); @@ -2075,7 +2264,12 @@ namespace ENI2.Excel pas.PassengerDateOfBirth = reader.ReadBirthDate(pasDateOfBirth); pas.PassengerIdentityDocumentType = reader.ReadIdentityDocumentType(pasIdentDocType); pas.PassengerIdentityDocumentId = reader.ReadText(pasIdentDocId); - pas.PassengerVisaNumber = reader.ReadText(pasVisaNo); + pas.PassengerVisaNumber = reader.ReadText(pasVisaNo); + pas.PassengerIdentityDocumentIssuingState = reader.ReadNationality(pasIssuing); + pas.PassengerIdentityDocumentExpiryDate = reader.ReadDate(pasExpiryDate); + pas.PassengerCountryOfBirth = reader.ReadNationality(pasCountryOfBirth); + pas.EmergencyCare = reader.ReadText(pasEmergencyCare); + pas.EmergencyContactNumber = reader.ReadText(pasEmergencyContact); } } return true; diff --git a/ENI2/Resources/EUREPORT.png b/ENI2/Resources/EUREPORT.png index a5a38e0c4e30f28c8b64275c1c314435775a38b2..375b2af774cc1ebfbcfab724756710c3314fda32 100644 GIT binary patch literal 42234 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 literal 39708 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 F{{y9*T1)@{ diff --git a/SQL/Update_6.x_To_7.0.sql b/SQL/Update_6.x_To_7.0.sql index 483e810a..bfeeb9a3 100644 --- a/SQL/Update_6.x_To_7.0.sql +++ b/SQL/Update_6.x_To_7.0.sql @@ -122,5 +122,18 @@ Insert into ViolationText(ViolationCode, ViolationText) values (202, 'If a passe Insert into ViolationText(ViolationCode, ViolationText) values (203, 'If a passenger notification is for PAX, then PAX Details have to be provided, if a passenger notification is not for PAX, PAX Details must not be provided.') Insert into ViolationText(ViolationCode, ViolationText) values (221, 'The identification number has to be unique per ship call.') Insert into ViolationText(ViolationCode, ViolationText) values (786, 'The provided LOCODE is not accepted by SafeSeaNet.') +GO +PRINT N'Altering Table [dbo].[CREW]...'; +GO + +ALTER TABLE [dbo].[CREW] ADD [CrewMemberCountryOfBirth] NCHAR (2) NULL; +ALTER TABLE [dbo].[CREW] ADD [Effects] NVARCHAR (256) NULL; +GO + +PRINT N'Altering Table [dbo].[PAS]...'; +GO + +ALTER TABLE [dbo].[PAS] + ADD [PassengerCountryOfBirth] NCHAR (2) NULL; GO \ No newline at end of file diff --git a/bsmd.database/CREW.cs b/bsmd.database/CREW.cs index cbff4638..1a5f3449 100644 --- a/bsmd.database/CREW.cs +++ b/bsmd.database/CREW.cs @@ -45,6 +45,11 @@ namespace bsmd.database [ENI2Validation] public string CrewMemberPlaceOfBirth { get; set; } + [Validation(ValidationCode.FLAG_CODE)] + [MaxLength(2)] + [ENI2Validation] + public string CrewMemberCountryOfBirth { get; set; } + [Validation(ValidationCode.NOT_NULL)] [ENI2Validation] public DateTime? CrewMemberDateOfBirth { get; set; } @@ -119,6 +124,10 @@ namespace bsmd.database [ENI2Validation] public DateTime? CrewMemberIdentityDocumentExpiryDate { get; set; } + [ENI2Validation] + [MaxLength(256)] + public string Effects { get; set; } + [ENI2Validation] public bool? NotificationSchengen { get; set; } @@ -176,6 +185,8 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P15", this.CrewMemberIdentityDocumentExpiryDate); scmd.Parameters.AddWithNullableValue("@P16", this.NotificationSchengen); scmd.Parameters.AddWithNullableValue("@P17", this.NotificationPAX); + scmd.Parameters.AddWithNullableValue("@P18", this.CrewMemberCountryOfBirth); + scmd.Parameters.AddWithNullableValue("@P19", this.Effects); if (this.IsNew) { @@ -184,8 +195,9 @@ namespace bsmd.database scmd.CommandText = string.Format("INSERT INTO {0} (Id, MessageHeaderId, CrewMemberLastName, CrewMemberFirstName, " + "CrewMemberPlaceOfBirth, CrewMemberDateOfBirth, CrewMemberGender, CrewMemberNationality,CrewMemberIdentityDocumentType, " + "CrewMemberIdentityDocumentId, CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture, " + - "CrewMemberIdentityDocumentIssuingState, CrewMemberIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX) " + - "VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17 )", this.Tablename); + "CrewMemberIdentityDocumentIssuingState, CrewMemberIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX, " + + "CrewMemberCountryOfBirth, Effects) " + + "VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17, @P18, @P19 )", this.Tablename); } else { @@ -194,7 +206,8 @@ namespace bsmd.database "CrewMemberPlaceOfBirth = @P4, CrewMemberDateOfBirth = @P5, CrewMemberGender = @P6, CrewMemberNationality = @P7, "+ "CrewMemberIdentityDocumentType = @P8, CrewMemberIdentityDocumentId = @P9, CrewMemberVisaNumber = @P10, " + "CrewMemberDuty = @P11, Identifier = @P12, IsDeparture = @P13, CrewMemberIdentityDocumentIssuingState = @P14, " + - "CrewMemberIdentityDocumentExpiryDate = @P15, NotificationSchengen = @P16, NotificationPAX = @P17 WHERE Id = @ID", this.Tablename); + "CrewMemberIdentityDocumentExpiryDate = @P15, NotificationSchengen = @P16, NotificationPAX = @P17, " + + "CrewMemberCountryOfBirth = @P18, Effects = @P19 WHERE Id = @ID", this.Tablename); } } @@ -203,7 +216,7 @@ namespace bsmd.database string query = string.Format("SELECT Id, CrewMemberLastName, CrewMemberFirstName, CrewMemberPlaceOfBirth, " + "CrewMemberDateOfBirth, CrewMemberGender, CrewMemberNationality, CrewMemberIdentityDocumentType, CrewMemberIdentityDocumentId, " + "CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture, CrewMemberIdentityDocumentIssuingState, " + - "CrewMemberIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX FROM {0}", this.Tablename); + "CrewMemberIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX, CrewMemberCountryOfBirth, Effects FROM {0}", this.Tablename); switch (filter) { @@ -247,6 +260,8 @@ namespace bsmd.database if (!reader.IsDBNull(14)) crew.CrewMemberIdentityDocumentExpiryDate = reader.GetDateTime(14); if (!reader.IsDBNull(15)) crew.NotificationSchengen = reader.GetBoolean(15); if (!reader.IsDBNull(16)) crew.NotificationPAX = reader.GetBoolean(16); + if (!reader.IsDBNull(17)) crew.CrewMemberCountryOfBirth = reader.GetString(17); + if (!reader.IsDBNull(18)) crew.Effects = reader.GetString(18); result.Add(crew); } @@ -270,7 +285,7 @@ namespace bsmd.database string query = string.Format("SELECT Id, CrewMemberLastName, CrewMemberFirstName, CrewMemberPlaceOfBirth, " + "CrewMemberDateOfBirth, CrewMemberGender, CrewMemberNationality, CrewMemberIdentityDocumentType, CrewMemberIdentityDocumentId, " + "CrewMemberVisaNumber, CrewMemberDuty, Identifier, IsDeparture, CrewMemberIdentityDocumentIssuingState, " + - "CrewMemberIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX FROM {0}", this.Tablename); + "CrewMemberIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX, CrewMemberCountryOfBirth, Effects FROM {0}", this.Tablename); switch (filter) { @@ -314,6 +329,8 @@ namespace bsmd.database if (!reader.IsDBNull(14)) crew.CrewMemberIdentityDocumentExpiryDate = reader.GetDateTime(14); if (!reader.IsDBNull(15)) crew.NotificationSchengen = reader.GetBoolean(15); if (!reader.IsDBNull(16)) crew.NotificationPAX = reader.GetBoolean(16); + if (!reader.IsDBNull(17)) crew.CrewMemberCountryOfBirth = reader.GetString(17); + if (!reader.IsDBNull(18)) crew.Effects = reader.GetString(18); result.Add(crew); } diff --git a/bsmd.database/Message.cs b/bsmd.database/Message.cs index a19405e3..90562f54 100644 --- a/bsmd.database/Message.cs +++ b/bsmd.database/Message.cs @@ -682,11 +682,12 @@ namespace bsmd.database case NotificationClass.LADG: return 36; case NotificationClass.CREW: return 40; case NotificationClass.CREWD: return 40; - case NotificationClass.PAS: return 30; - case NotificationClass.PASD: return 30; + case NotificationClass.PAS: return 40; + case NotificationClass.PASD: return 40; case NotificationClass.TOWA: return 5; case NotificationClass.TOWD: return 5; case NotificationClass.STO: return 10; + case NotificationClass.WAS_RCPT: return 5; default: return 0; diff --git a/bsmd.database/NOA_NOD.cs b/bsmd.database/NOA_NOD.cs index 63adcc6b..46292d32 100644 --- a/bsmd.database/NOA_NOD.cs +++ b/bsmd.database/NOA_NOD.cs @@ -203,7 +203,7 @@ namespace bsmd.database [JsonIgnore] public int NumberOfExcelRows { - get { return 3; } + get { return 5; } } public void SaveElements() diff --git a/bsmd.database/PAS.cs b/bsmd.database/PAS.cs index 88047a1d..e651f781 100644 --- a/bsmd.database/PAS.cs +++ b/bsmd.database/PAS.cs @@ -134,6 +134,11 @@ namespace bsmd.database [ENI2Validation] public bool? NotificationPAX { get; set; } + [Validation(ValidationCode.FLAG_CODE)] + [MaxLength(2)] + [ENI2Validation] + public string PassengerCountryOfBirth { get; set; } + [ENI2Validation] [ReportDisplayName("Emergency care")] [MaxLength(255)] @@ -213,6 +218,7 @@ namespace bsmd.database scmd.Parameters.AddWithNullableValue("@P19", this.NotificationPAX); scmd.Parameters.AddWithNullableValue("@P20", this.EmergencyCare); scmd.Parameters.AddWithNullableValue("@P21", this.EmergencyContactNumber); + scmd.Parameters.AddWithNullableValue("@P22", this.PassengerCountryOfBirth); if (this.IsNew) { @@ -222,8 +228,8 @@ namespace bsmd.database "PassengerPlaceOfBirth, PassengerDateOfBirth, PassengerGender, PassengerNationality, PassengerIdentityDocumentType, " + "PassengerIdentityDocumentId, PassengerVisaNumber, PassengerPortOfEmbarkation, PassengerPortOfDisembarkation," + "PassengerInTransit, Identifier, IsDeparture, PassengerIdentityDocumentIssuingState, PassengerIdentityDocumentExpiryDate, " + - "NotificationSchengen, NotificationPAX, EmergencyCare, EmergencyContactNumber) " + - "VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17, @P18, @P19, @P20, @P21 )", + "NotificationSchengen, NotificationPAX, EmergencyCare, EmergencyContactNumber, PassengerCountryOfBirth) " + + "VALUES (@ID, @P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, @P15, @P16, @P17, @P18, @P19, @P20, @P21, @P22 )", this.Tablename); } else @@ -235,7 +241,7 @@ namespace bsmd.database "PassengerVisaNumber = @P10, PassengerPortOfEmbarkation = @P11, PassengerPortOfDisembarkation = @P12, " + "PassengerInTransit = @P13, IsDeparture = @P15, Identifier = @P14, PassengerIdentityDocumentIssuingState = @P16, " + "PassengerIdentityDocumentExpiryDate = @P17, NotificationSchengen = @P18, NotificationPAX = @P19, " + - "EmergencyCare = @P20, EmergencyContactNumber = @P21 WHERE Id = @ID", this.Tablename); + "EmergencyCare = @P20, EmergencyContactNumber = @P21, PassengerCountryOfBirth = @P22 WHERE Id = @ID", this.Tablename); } } @@ -245,7 +251,7 @@ namespace bsmd.database "PassengerDateOfBirth, PassengerGender, PassengerNationality, PassengerIdentityDocumentType, PassengerIdentityDocumentId, " + "PassengerVisaNumber, PassengerPortOfEmbarkation, PassengerPortOfDisembarkation, PassengerInTransit, Identifier, " + "IsDeparture, PassengerIdentityDocumentIssuingState, PassengerIdentityDocumentExpiryDate, NotificationSchengen, " + - "NotificationPAX, EmergencyCare, EmergencyContactNumber FROM {0}", + "NotificationPAX, EmergencyCare, EmergencyContactNumber, PassengerCountryOfBirth FROM {0}", this.Tablename); switch (filter) @@ -294,6 +300,7 @@ namespace bsmd.database if (!reader.IsDBNull(18)) pas.NotificationPAX = reader.GetBoolean(18); if (!reader.IsDBNull(19)) pas.EmergencyCare = reader.GetString(19); if (!reader.IsDBNull(20)) pas.EmergencyContactNumber = reader.GetString(20); + if (!reader.IsDBNull(21)) pas.PassengerCountryOfBirth = reader.GetString(21); result.Add(pas); } reader.Close(); @@ -335,7 +342,7 @@ namespace bsmd.database "PassengerDateOfBirth, PassengerGender, PassengerNationality, PassengerIdentityDocumentType, PassengerIdentityDocumentId, " + "PassengerVisaNumber, PassengerPortOfEmbarkation, PassengerPortOfDisembarkation, PassengerInTransit, Identifier, IsDeparture, " + "PassengerIdentityDocumentIssuingState, PassengerIdentityDocumentExpiryDate, NotificationSchengen, NotificationPAX, " + - "EmergencyCare, EmergencyContactNumber FROM {0}", + "EmergencyCare, EmergencyContactNumber, PassengerCountryOfBirth FROM {0}", this.Tablename); switch (filter) @@ -384,6 +391,7 @@ namespace bsmd.database if (!reader.IsDBNull(18)) pas.NotificationPAX = reader.GetBoolean(18); if (!reader.IsDBNull(19)) pas.EmergencyCare = reader.GetString(19); if (!reader.IsDBNull(20)) pas.EmergencyContactNumber = reader.GetString(20); + if (!reader.IsDBNull(21)) pas.PassengerCountryOfBirth = reader.GetString(21); result.Add(pas); } reader.Close(); diff --git a/bsmd.database/STAT.cs b/bsmd.database/STAT.cs index eb1f935b..96bf84c5 100644 --- a/bsmd.database/STAT.cs +++ b/bsmd.database/STAT.cs @@ -198,6 +198,18 @@ namespace bsmd.database [DataMember] public string CertificateOfRegistryNumber { get; set; } + public bool? IsTanker + { + get + { + if (ShipType.IsNullOrEmpty()) return null; + if (ShipType.StartsWith("53")) return true; + if (ShipType.StartsWith("54")) return true; + if (ShipType.StartsWith("55")) return true; + return false; + } + } + [JsonIgnore] public static Dictionary VesselTypeDict { get; set; } diff --git a/bsmd.database/WAS.cs b/bsmd.database/WAS.cs index 794f7527..bcd88c6c 100644 --- a/bsmd.database/WAS.cs +++ b/bsmd.database/WAS.cs @@ -332,7 +332,7 @@ namespace bsmd.database [JsonIgnore] public int NumberOfExcelRows { - get { return 15; } + get { return 25; } } public void SaveElements() diff --git a/bsmd.database/WAS_RCPT.cs b/bsmd.database/WAS_RCPT.cs index eb8a75f0..881990eb 100644 --- a/bsmd.database/WAS_RCPT.cs +++ b/bsmd.database/WAS_RCPT.cs @@ -129,7 +129,7 @@ namespace bsmd.database [JsonIgnore] public int NumberOfExcelRows { - get { return 15; } + get { return 25; } } public void SaveElements()