first PAS/CREW entry sets Schengen flag, following entries copy first entries settings

This commit is contained in:
Daniel Schick 2023-11-09 09:01:56 +01:00
parent a292caa666
commit 7232a455a6
2 changed files with 144 additions and 13 deletions

View File

@ -313,6 +313,82 @@ namespace ENI2.DetailViewControls
#endregion
#region Check Schengen / PAX flags and sync
private void CheckCREWA()
{
if (this._crewMessage.Elements.Count == 0) return;
CREW firstCREW = this._crewMessage.Elements[0] as CREW;
if (this._crewMessage.Elements.Count == 1)
{
firstCREW.NotificationSchengen = true;
this.checkBoxCrewNotificationSchengen.IsChecked = true;
}
else
{
for (int i = 1; i < this._crewMessage.Elements.Count; i++)
{
((CREW)this._crewMessage.Elements[i]).NotificationSchengen = firstCREW.NotificationSchengen;
}
}
}
private void CheckCREWD()
{
if (this._crewdMessage.Elements.Count == 0) return;
CREWD firstCREW = this._crewdMessage.Elements[0] as CREWD;
if (this._crewdMessage.Elements.Count == 1)
{
firstCREW.NotificationSchengen = true;
this.checkBoxCrewNotificationSchengenDeparture.IsChecked = true;
}
else
{
for (int i = 1; i < this._crewdMessage.Elements.Count; i++)
{
((CREWD)this._crewdMessage.Elements[i]).NotificationSchengen = firstCREW.NotificationSchengen;
}
}
}
private void CheckPASA()
{
if(this._pasMessage.Elements.Count == 0) return;
PAS firstPAS = this._pasMessage.Elements[0] as PAS;
if(this._pasMessage.Elements.Count == 1)
{
firstPAS.NotificationSchengen = true;
this.checkBoxPasNotificationSchengen.IsChecked = true;
}
else
{
for (int i = 1; i < this._pasMessage.Elements.Count; i++)
{
((PAS)this._pasMessage.Elements[i]).NotificationSchengen = firstPAS.NotificationSchengen;
}
}
}
private void CheckPASD()
{
if(this._pasdMessage.Elements.Count == 0) return;
PASD firstPAS = this._pasdMessage.Elements[0] as PASD;
if (this._pasdMessage.Elements.Count == 1)
{
firstPAS.NotificationSchengen = true;
this.checkBoxPasNotificationSchengenDeparture.IsChecked = true;
}
else
{
for (int i = 1; i < this._pasdMessage.Elements.Count; i++)
{
((PASD)this._pasdMessage.Elements[i]).NotificationSchengen = firstPAS.NotificationSchengen;
}
}
}
#endregion
#region SetEnabled
public override void SetEnabled(bool enabled)
@ -464,8 +540,11 @@ namespace ENI2.DetailViewControls
epd.AddClicked += () =>
{
epd.CopyValuesToEntity();
if(!this._pasMessage.Elements.Contains(epd.PAS))
if (!this._pasMessage.Elements.Contains(epd.PAS))
{
this._pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PAS
{
@ -477,8 +556,11 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false)
{
if(!this._pasMessage.Elements.Contains(epd.PAS))
if (!this._pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
this.dataGridPassengerList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASA);
}
@ -511,8 +593,11 @@ namespace ENI2.DetailViewControls
epd.AddClicked += () =>
{
epd.CopyValuesToEntity();
if(!_pasMessage.Elements.Contains(epd.PAS))
if (!_pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PAS
{
@ -525,7 +610,10 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false)
{
if (!_pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
epd.PAS.IsDirty = true;
this.dataGridPassengerList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASA);
@ -555,7 +643,10 @@ namespace ENI2.DetailViewControls
{
epd.CopyValuesToEntity();
if (!this._pasdMessage.Elements.Contains(epd.PAS))
{
this._pasdMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PASD
{
@ -569,7 +660,10 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false)
{
if (!this._pasdMessage.Elements.Contains(epd.PAS))
{
_pasdMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
this.dataGridPassengerListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASD);
}
@ -603,7 +697,10 @@ namespace ENI2.DetailViewControls
{
epd.CopyValuesToEntity();
if (!_pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PASD
{
@ -617,7 +714,10 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false)
{
if (!_pasdMessage.Elements.Contains(epd.PAS))
{
_pasdMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
epd.PAS.IsDirty = true;
this.dataGridPassengerListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASD);
@ -645,8 +745,11 @@ namespace ENI2.DetailViewControls
ecd.AddClicked += () =>
{
ecd.CopyValuesToEntity();
if(!this._crewMessage.Elements.Contains(ecd.CREW))
if (!this._crewMessage.Elements.Contains(ecd.CREW))
{
this._crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
this.dataGridCrewList.Items.Refresh();
ecd.CREW = new CREW
{
@ -658,8 +761,11 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false)
{
if(!this._crewMessage.Elements.Contains(ecd.CREW))
if (!this._crewMessage.Elements.Contains(ecd.CREW))
{
_crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
this.dataGridCrewList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWA);
}
@ -692,8 +798,11 @@ namespace ENI2.DetailViewControls
ecd.AddClicked += () =>
{
ecd.CopyValuesToEntity();
if(!_crewMessage.Elements.Contains(ecd.CREW))
if (!_crewMessage.Elements.Contains(ecd.CREW))
{
_crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
this.dataGridCrewList.Items.Refresh();
ecd.CREW = new CREW
{
@ -706,7 +815,10 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false)
{
if (!_crewMessage.Elements.Contains(ecd.CREW))
{
_crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
ecd.CREW.IsDirty = true;
this.dataGridCrewList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWA);
@ -736,7 +848,10 @@ namespace ENI2.DetailViewControls
{
ecd.CopyValuesToEntity();
if (!this._crewdMessage.Elements.Contains(ecd.CREW))
{
this._crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
this.dataGridCrewListDeparture.Items.Refresh();
ecd.CREW = new CREWD
{
@ -750,7 +865,10 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false)
{
if (!this._crewdMessage.Elements.Contains(ecd.CREW))
{
_crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
this.dataGridCrewListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWD);
}
@ -784,7 +902,10 @@ namespace ENI2.DetailViewControls
{
ecd.CopyValuesToEntity();
if (!_crewdMessage.Elements.Contains(ecd.CREW))
{
_crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
this.dataGridCrewListDeparture.Items.Refresh();
ecd.CREW = new CREWD
{
@ -798,7 +919,10 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false)
{
if (!_crewdMessage.Elements.Contains(ecd.CREW))
{
_crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
ecd.CREW.IsDirty = true;
this.dataGridCrewListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWD);

View File

@ -2332,6 +2332,7 @@ namespace bsmd.ExcelReadService
crew.Identifier = (i + 1).ToString();
crew.MessageHeader = crewMessage;
crewMessage.Elements.Add(crew);
crew.NotificationSchengen = true;
}
crew.CrewMemberLastName = lastName;
@ -2359,8 +2360,10 @@ namespace bsmd.ExcelReadService
}
// CREW DEPARTURE
crewMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.CREWD);
for (int i = 0; i < crewMessage.NumberOfExcelRows; i++)
crewdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.CREWD);
crewdMessage.DeleteElements();
for (int i = 0; i < crewdMessage.NumberOfExcelRows; i++)
{
string crewLastName = string.Format("CREWD.CrewMemberLastName_{0}", i + 1);
string crewFirstName = string.Format("CREWD.CrewMemberFirstName_{0}", i + 1);
@ -2376,12 +2379,13 @@ namespace bsmd.ExcelReadService
string lastName = reader.ReadText(crewLastName);
if (!lastName.IsNullOrEmpty())
{
if (!(crewMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is CREWD crew))
if (!(crewdMessage.GetSublistElementWithIdentifier((i + 1).ToString()) is CREWD crew))
{
crew = new CREWD();
crew.Identifier = (i + 1).ToString();
crew.MessageHeader = crewMessage;
crewMessage.Elements.Add(crew);
crew.MessageHeader = crewdMessage;
crewdMessage.Elements.Add(crew);
crew.NotificationSchengen = true;
}
crew.IsDeparture = true;
@ -2472,6 +2476,8 @@ namespace bsmd.ExcelReadService
// PASSENGER DEPARTURE
pasMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.PASD);
pasMessage.DeleteElements();
for (int i = 0; i < pasMessage.NumberOfExcelRows; i++)
{
string pasLastName = string.Format("PASD.PassengerLastName_{0}", i + 1);
@ -2496,6 +2502,7 @@ namespace bsmd.ExcelReadService
pas.Identifier = (i + 1).ToString();
pas.MessageHeader = pasMessage;
pasMessage.Elements.Add(pas);
pas.NotificationSchengen = true;
}
pas.IsDeparture = true;