Excel sheet import

This commit is contained in:
Daniel Schick 2022-02-21 09:43:44 +01:00
parent dd2c8723b0
commit f68f4e56d9
13 changed files with 325 additions and 54 deletions

View File

@ -26,11 +26,11 @@
<value>1000</value>
</setting>
<setting name="LockingServerAddress" serializeAs="String">
<value>http://heupferd/bsmd.LockingService/LockingService.svc</value>
<value>http://192.168.2.24/LockingService/LockingService.svc</value>
</setting>
<setting name="ConnectionString" serializeAs="String">
<value>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</value>
</setting>
<value>Initial Catalog=nswtest;Data Source=192.168.2.24\SQLEXPRESS;Uid=dfuser;pwd=dfpasswd;Persist Security Info=False;Connection Reset=false</value>
</setting>
</ENI2.Properties.Settings>
</applicationSettings>
<userSettings>

View File

@ -18,7 +18,7 @@
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
<PublishUrl>eni2.publish\</PublishUrl>
<PublishUrl>eni_test\</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
@ -28,9 +28,9 @@
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<InstallUrl>http://192.168.2.24/eni2.publish/</InstallUrl>
<InstallUrl>http://192.168.2.24/eni_test/</InstallUrl>
<SupportUrl>http://www.textbausteine.net/</SupportUrl>
<ProductName>ENI</ProductName>
<ProductName>ENI Testversion</ProductName>
<PublisherName>Informatikbüro Daniel Schick</PublisherName>
<SuiteName>NSW</SuiteName>
<MinimumRequiredVersion>5.4.0.0</MinimumRequiredVersion>
@ -86,7 +86,7 @@
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>9B5725EAD90F2E06094631407417EB2554E88941</ManifestCertificateThumbprint>
<ManifestCertificateThumbprint>94D98790E3B6C4CC9F4B57C8FD305E3225894DF8</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>

View File

@ -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);

View File

@ -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
@ -417,6 +423,7 @@ namespace ENI2.Excel
imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading);
imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge);
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;
@ -474,6 +484,9 @@ namespace ENI2.Excel
ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition);
ibcPosition.PortOfLoading = reader.ReadText(ibc_portOfLoading);
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;
@ -506,6 +522,9 @@ namespace ENI2.Excel
igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition);
igcPosition.PortOfLoading = reader.ReadText(igc_portOfLoading);
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;
@ -540,6 +563,10 @@ namespace ENI2.Excel
imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition);
imsbcPosition.PortOfLoading = reader.ReadText(imsbc_portOfLoading);
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;
@ -587,6 +615,7 @@ namespace ENI2.Excel
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
@ -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
@ -679,6 +709,7 @@ namespace ENI2.Excel
imdgPosition.PortOfLoading = reader.ReadText(imdg_portOfLoading);
imdgPosition.PortOfDischarge = reader.ReadText(imdg_portOfDischarge);
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;
@ -736,6 +770,9 @@ namespace ENI2.Excel
ibcPosition.StowagePosition = reader.ReadText(ibc_stowagePosition);
ibcPosition.PortOfLoading = reader.ReadText(ibc_portOfLoading);
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;
@ -768,6 +808,9 @@ namespace ENI2.Excel
igcPosition.StowagePosition = reader.ReadText(igc_stowagePosition);
igcPosition.PortOfLoading = reader.ReadText(igc_portOfLoading);
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;
@ -802,6 +849,10 @@ namespace ENI2.Excel
imsbcPosition.StowagePosition = reader.ReadText(imsbc_stowagePosition);
imsbcPosition.PortOfLoading = reader.ReadText(imsbc_portOfLoading);
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;
@ -848,6 +900,7 @@ namespace ENI2.Excel
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<Message> 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");
@ -1062,6 +1129,9 @@ namespace ENI2.Excel
was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery");
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);
@ -1088,7 +1158,6 @@ namespace ENI2.Excel
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);
if (!(was.GetSublistElementWithIdentifier(i.ToString()) is Waste waste))
{
@ -1140,7 +1209,7 @@ 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())
{
@ -1148,7 +1217,6 @@ namespace ENI2.Excel
}
waste.WasteAmountGeneratedTillNextPort_MTQ = reader.ReadNumberDefaultZero(amountGen);
waste.WasteDisposedAtLastPort_MTQ = reader.ReadNumberDefaultZero(wasteDis);
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<Message> 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;
@ -1703,6 +1844,7 @@ namespace ENI2.Excel
towd.TowageOnDepartureLengthOverall_MTR = reader.ReadNumber(tLen);
towd.TowageOnDepartureBeam_MTR = reader.ReadNumber(tBeam);
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);
@ -1918,6 +2069,10 @@ namespace ENI2.Excel
crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType);
crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId);
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);
}
}
@ -1929,6 +2084,9 @@ 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);
@ -1965,7 +2128,9 @@ namespace ENI2.Excel
crew.CrewMemberIdentityDocumentType = reader.ReadIdentityDocumentType(crewIdentDocType);
crew.CrewMemberIdentityDocumentId = reader.ReadText(crewIdentDocId);
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);
}
}
@ -2034,6 +2214,9 @@ namespace ENI2.Excel
{
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);
@ -2076,6 +2265,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);
}
}
return true;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -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

View File

@ -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);
}

View File

@ -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;

View File

@ -203,7 +203,7 @@ namespace bsmd.database
[JsonIgnore]
public int NumberOfExcelRows
{
get { return 3; }
get { return 5; }
}
public void SaveElements()

View File

@ -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();

View File

@ -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<string, string> VesselTypeDict { get; set; }

View File

@ -332,7 +332,7 @@ namespace bsmd.database
[JsonIgnore]
public int NumberOfExcelRows
{
get { return 15; }
get { return 25; }
}
public void SaveElements()

View File

@ -129,7 +129,7 @@ namespace bsmd.database
[JsonIgnore]
public int NumberOfExcelRows
{
get { return 15; }
get { return 25; }
}
public void SaveElements()