HIS-Nord file creation for PASA and CREWA added / changed from PAS and CREW

This commit is contained in:
Daniel Schick 2023-10-27 13:10:21 +02:00
parent 805ef43551
commit a6831bc816

View File

@ -1373,56 +1373,69 @@ namespace bsmd.hisnord
#endregion
#region PAS
#region PASA
// TODO: Da bei mir PAS = PASA (keine eigene Meldeklasse) kann das hier erst direkt zum Stichtag umgesetzt werden
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;
}
items1ChoiceType.Add(Items1ChoiceType.PAS);
items1.Add(hn_pas);
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.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);
}
}
}