From a6831bc81684db54183fa9cebf1216639dbe55d3 Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Fri, 27 Oct 2023 13:10:21 +0200 Subject: [PATCH] HIS-Nord file creation for PASA and CREWA added / changed from PAS and CREW --- bsmd.hisnord/Request.cs | 145 +++++++++++++++++++++++----------------- 1 file changed, 82 insertions(+), 63 deletions(-) diff --git a/bsmd.hisnord/Request.cs b/bsmd.hisnord/Request.cs index f33f215c..2030fdcd 100644 --- a/bsmd.hisnord/Request.cs +++ b/bsmd.hisnord/Request.cs @@ -1373,56 +1373,69 @@ namespace bsmd.hisnord #endregion - #region PAS - - // TODO: Da bei mir PAS = PASA (keine eigene Meldeklasse) kann das hier erst direkt zum Stichtag umgesetzt werden + #region PASA + if (message.MessageNotificationClass == Message.NotificationClass.PAS) - { + { if (message.Reset) { - items1ChoiceType.Add(Items1ChoiceType.RESET_PAS); + items1ChoiceType.Add(Items1ChoiceType.RESET_PASA); items1.Add(ytype.Y); } else { if (message.Elements.Count > 0) { + global::pastype hn_pastype = new pastype(); + PAS apasa = message.Elements[0] as PAS; - global::pas hn_pas = new pas(); - hn_pas.Passenger = new passenger[message.Elements.Count]; + hn_pastype.NotificationPAX = (apasa.NotificationPAX ?? false) ? yorntype.Y : yorntype.N; + hn_pastype.NotificationSchengen = (apasa.NotificationSchengen ?? false) ? yorntype.Y : yorntype.N; + hn_pastype.Passenger = new pastypePassenger[message.Elements.Count]; for (int i = 0; i < message.Elements.Count; i++) { - PAS pas = message.Elements[i] as PAS; + pastypePassenger hn_pas = new pastypePassenger(); + PAS pasa = message.Elements[i] as PAS; - hn_pas.Passenger[i] = new passenger(); - if (pas.PassengerDateOfBirth.HasValue) - hn_pas.Passenger[i].PassengerDateOfBirth = pas.PassengerDateOfBirth.Value; - hn_pas.Passenger[i].PassengerFirstName = pas.PassengerFirstName; - if (pas.PassengerGender.HasValue) - hn_pas.Passenger[i].PassengerGender = GenderTypeFromEnumByte(pas.PassengerGender); - hn_pas.Passenger[i].PassengerGenderSpecified = pas.PassengerGender.HasValue; - hn_pas.Passenger[i].PassengerIdentityDocumentId = pas.PassengerIdentityDocumentId; - if (pas.PassengerIdentityDocumentType.HasValue) - hn_pas.Passenger[i].PassengerIdentityDocumentType = (documenttype)pas.PassengerIdentityDocumentType.Value; - if (pas.PassengerInTransit.HasValue) - hn_pas.Passenger[i].PassengerInTransit = pas.PassengerInTransit.Value ? yorntype.Y : yorntype.N; - hn_pas.Passenger[i].PassengerLastName = pas.PassengerLastName; - hn_pas.Passenger[i].PassengerNationality = pas.PassengerNationality; - hn_pas.Passenger[i].PassengerPlaceOfBirth = pas.PassengerPlaceOfBirth; - hn_pas.Passenger[i].PassengerPortOfDisembarkation = pas.PassengerPortOfDisembarkation; - hn_pas.Passenger[i].PassengerPortOfEmbarkation = pas.PassengerPortOfEmbarkation; - if(!pas.PassengerVisaNumber.IsNullOrEmpty()) - hn_pas.Passenger[i].PassengerVisaNumber = pas.PassengerVisaNumber; - hn_pas.Passenger[i].PassengerIdentityDocumentExpiryDateSpecified = pas.PassengerIdentityDocumentExpiryDate.HasValue; - if (pas.PassengerIdentityDocumentExpiryDate.HasValue) - hn_pas.Passenger[i].PassengerIdentityDocumentExpiryDate = pas.PassengerIdentityDocumentExpiryDate.Value; - if(pas.PassengerIdentityDocumentIssuingState?.Trim().Length == 2) - hn_pas.Passenger[i].PassengerIdentityDocumentIssuingState = pas.PassengerIdentityDocumentIssuingState; + hn_pas.CountryOfBirth = pasa.PassengerCountryOfBirth; + if (pasa.PassengerDateOfBirth.HasValue) + hn_pas.DateOfBirth = pasa.PassengerDateOfBirth.Value; + + if (pasa.NotificationPAX ?? false) + { + hn_pas.DetailsPAX = new pastypePassengerDetailsPAX(); + hn_pas.DetailsPAX.EmergencyCare = pasa.EmergencyCare; + hn_pas.DetailsPAX.EmergencyContactNumber = pasa.EmergencyContactNumber; + } + + if (pasa.NotificationSchengen ?? false) + { + hn_pas.DetailsSchengen = new pastypePassengerDetailsSchengen(); + if (pasa.PassengerIdentityDocumentExpiryDate.HasValue) + hn_pas.DetailsSchengen.IdentityDocumentExpiryDate = pasa.PassengerIdentityDocumentExpiryDate.Value; + hn_pas.DetailsSchengen.IdentityDocumentId = pasa.PassengerIdentityDocumentId; + hn_pas.DetailsSchengen.IdentityDocumentIssuingState = pasa.PassengerIdentityDocumentIssuingState; + if (pasa.PassengerIdentityDocumentType.HasValue) + hn_pas.DetailsSchengen.IdentityDocumentType = (documenttype)pasa.PassengerIdentityDocumentType.Value; + hn_pas.DetailsSchengen.InTransit = (pasa.PassengerInTransit ?? false) ? yorntype.Y : yorntype.N; + hn_pas.DetailsSchengen.PortOfDisembarkation = pasa.PassengerPortOfDisembarkation; + hn_pas.DetailsSchengen.PortOfEmbarkation = pasa.PassengerPortOfEmbarkation; + hn_pas.DetailsSchengen.VisaNumber = pasa.PassengerVisaNumber; + } + + hn_pas.FirstName = pasa.PassengerFirstName; + if (pasa.PassengerGender.HasValue) + hn_pas.Gender = GenderTypeFromEnumByte(pasa.PassengerGender); + hn_pas.LastName = pasa.PassengerLastName; + hn_pas.Nationality = pasa.PassengerNationality; + hn_pas.PlaceOfBirth = pasa.PassengerPlaceOfBirth; + + hn_pastype.Passenger[i] = hn_pas; } - items1ChoiceType.Add(Items1ChoiceType.PAS); - items1.Add(hn_pas); + items1ChoiceType.Add(Items1ChoiceType.PASA); + items1.Add(hn_pastype); } } } @@ -1498,50 +1511,56 @@ namespace bsmd.hisnord #endregion - #region CREW - - // das ist bei mir dasselbe wie CREWA und muss daher zum Zeitpunkt X geƤndert werden - // ACHTUNG! CREWA ist bei HIS Nord anders aufgebaut als das CREW hier + #region CREWA if (message.MessageNotificationClass == Message.NotificationClass.CREW) { if (message.Reset) { - items1ChoiceType.Add(Items1ChoiceType.RESET_CREW); + items1ChoiceType.Add(Items1ChoiceType.RESET_CREWA); items1.Add(ytype.Y); } else { if (message.Elements.Count > 0) { - global::crew hn_crew = new crew(); - hn_crew.CrewMember = new crewmember[message.Elements.Count]; + global::crewtype hn_crewtype = new crewtype(); + CREW acrewa = message.Elements[0] as CREW; + hn_crewtype.NotificationPAX = (acrewa.NotificationPAX ?? false) ? yorntype.Y : yorntype.N; + hn_crewtype.NotificationSchengen = (acrewa.NotificationSchengen ?? false) ? yorntype.Y : yorntype.N; + + hn_crewtype.CrewMember = new crewtypeCrewMember[message.Elements.Count]; for (int i = 0; i < message.Elements.Count; i++) { - CREW crew = message.Elements[i] as CREW; - hn_crew.CrewMember[i] = new crewmember(); - if (crew.CrewMemberDateOfBirth.HasValue) - hn_crew.CrewMember[i].CrewMemberDateOfBirth = crew.CrewMemberDateOfBirth.Value; - hn_crew.CrewMember[i].CrewMemberDuty = crew.CrewMemberDuty; - hn_crew.CrewMember[i].CrewMemberFirstName = crew.CrewMemberFirstName; - if (crew.CrewMemberGender.HasValue) - hn_crew.CrewMember[i].CrewMemberGender = GenderTypeFromEnumByte(crew.CrewMemberGender); - hn_crew.CrewMember[i].CrewMemberGenderSpecified = crew.CrewMemberGender.HasValue; - hn_crew.CrewMember[i].CrewMemberIdentityDocumentId = crew.CrewMemberIdentityDocumentId; - if (crew.CrewMemberIdentityDocumentType.HasValue) - hn_crew.CrewMember[i].CrewMemberIdentityDocumentType = (documenttype)crew.CrewMemberIdentityDocumentType.Value; - hn_crew.CrewMember[i].CrewMemberLastName = crew.CrewMemberLastName; - hn_crew.CrewMember[i].CrewMemberNationality = crew.CrewMemberNationality; - hn_crew.CrewMember[i].CrewMemberPlaceOfBirth = crew.CrewMemberPlaceOfBirth; - hn_crew.CrewMember[i].CrewMemberVisaNumber = crew.CrewMemberVisaNumber.IsNullOrEmpty() ? "-" : crew.CrewMemberVisaNumber; - if (crew.CrewMemberIdentityDocumentExpiryDate.HasValue) - hn_crew.CrewMember[i].CrewmemberIdentityDocumentExpiryDate = crew.CrewMemberIdentityDocumentExpiryDate.Value; - if(crew.CrewMemberIdentityDocumentIssuingState?.Trim().Length == 2) - hn_crew.CrewMember[i].CrewMemberIdentityDocumentIssuingState = crew.CrewMemberIdentityDocumentIssuingState; + crewtypeCrewMember hn_crew = new crewtypeCrewMember(); + CREW crewd = message.Elements[i] as CREW; + hn_crew.CountryOfBirth = crewd.CrewMemberCountryOfBirth; + if (crewd.CrewMemberDateOfBirth.HasValue) + hn_crew.DateOfBirth = crewd.CrewMemberDateOfBirth.Value; + if (acrewa.NotificationSchengen ?? false) + { + hn_crew.DetailsSchengen = new crewtypeCrewMemberDetailsSchengen(); + if (crewd.CrewMemberIdentityDocumentExpiryDate.HasValue) + hn_crew.DetailsSchengen.IdentityDocumentExpiryDate = crewd.CrewMemberIdentityDocumentExpiryDate.Value; + hn_crew.DetailsSchengen.IdentityDocumentId = crewd.CrewMemberIdentityDocumentId; + hn_crew.DetailsSchengen.IdentityDocumentIssuingState = crewd.CrewMemberIdentityDocumentIssuingState; + if (crewd.CrewMemberIdentityDocumentType.HasValue) + hn_crew.DetailsSchengen.IdentityDocumentType = (documenttype)crewd.CrewMemberIdentityDocumentType.Value; + hn_crew.DetailsSchengen.VisaNumber = crewd.CrewMemberVisaNumber; + } + hn_crew.DutyOnBoard = crewd.CrewMemberDuty; + hn_crew.FirstName = crewd.CrewMemberFirstName; + if (crewd.CrewMemberGender.HasValue) + hn_crew.Gender = GenderTypeFromEnumByte(crewd.CrewMemberGender); + hn_crew.LastName = crewd.CrewMemberLastName; + hn_crew.Nationality = crewd.CrewMemberNationality; + hn_crew.PlaceOfBirth = crewd.CrewMemberPlaceOfBirth; + + hn_crewtype.CrewMember[i] = hn_crew; } - items1ChoiceType.Add(Items1ChoiceType.CREW); - items1.Add(hn_crew); + items1ChoiceType.Add(Items1ChoiceType.CREWA); + items1.Add(hn_crewtype); } } }