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 #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 #region SetEnabled
public override void SetEnabled(bool enabled) public override void SetEnabled(bool enabled)
@ -464,8 +540,11 @@ namespace ENI2.DetailViewControls
epd.AddClicked += () => epd.AddClicked += () =>
{ {
epd.CopyValuesToEntity(); epd.CopyValuesToEntity();
if(!this._pasMessage.Elements.Contains(epd.PAS)) if (!this._pasMessage.Elements.Contains(epd.PAS))
{
this._pasMessage.Elements.Add(epd.PAS); this._pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
this.dataGridPassengerList.Items.Refresh(); this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PAS epd.PAS = new PAS
{ {
@ -477,8 +556,11 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false) if (epd.ShowDialog() ?? false)
{ {
if(!this._pasMessage.Elements.Contains(epd.PAS)) if (!this._pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS); _pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
this.dataGridPassengerList.Items.Refresh(); this.dataGridPassengerList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASA); this.SublistElementChanged(Message.NotificationClass.PASA);
} }
@ -511,8 +593,11 @@ namespace ENI2.DetailViewControls
epd.AddClicked += () => epd.AddClicked += () =>
{ {
epd.CopyValuesToEntity(); epd.CopyValuesToEntity();
if(!_pasMessage.Elements.Contains(epd.PAS)) if (!_pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS); _pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
this.dataGridPassengerList.Items.Refresh(); this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PAS epd.PAS = new PAS
{ {
@ -525,7 +610,10 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false) if (epd.ShowDialog() ?? false)
{ {
if (!_pasMessage.Elements.Contains(epd.PAS)) if (!_pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS); _pasMessage.Elements.Add(epd.PAS);
this.CheckPASA();
}
epd.PAS.IsDirty = true; epd.PAS.IsDirty = true;
this.dataGridPassengerList.Items.Refresh(); this.dataGridPassengerList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASA); this.SublistElementChanged(Message.NotificationClass.PASA);
@ -555,7 +643,10 @@ namespace ENI2.DetailViewControls
{ {
epd.CopyValuesToEntity(); epd.CopyValuesToEntity();
if (!this._pasdMessage.Elements.Contains(epd.PAS)) if (!this._pasdMessage.Elements.Contains(epd.PAS))
{
this._pasdMessage.Elements.Add(epd.PAS); this._pasdMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
this.dataGridPassengerList.Items.Refresh(); this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PASD epd.PAS = new PASD
{ {
@ -569,7 +660,10 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false) if (epd.ShowDialog() ?? false)
{ {
if (!this._pasdMessage.Elements.Contains(epd.PAS)) if (!this._pasdMessage.Elements.Contains(epd.PAS))
{
_pasdMessage.Elements.Add(epd.PAS); _pasdMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
this.dataGridPassengerListDeparture.Items.Refresh(); this.dataGridPassengerListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASD); this.SublistElementChanged(Message.NotificationClass.PASD);
} }
@ -603,7 +697,10 @@ namespace ENI2.DetailViewControls
{ {
epd.CopyValuesToEntity(); epd.CopyValuesToEntity();
if (!_pasMessage.Elements.Contains(epd.PAS)) if (!_pasMessage.Elements.Contains(epd.PAS))
{
_pasMessage.Elements.Add(epd.PAS); _pasMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
this.dataGridPassengerList.Items.Refresh(); this.dataGridPassengerList.Items.Refresh();
epd.PAS = new PASD epd.PAS = new PASD
{ {
@ -617,7 +714,10 @@ namespace ENI2.DetailViewControls
if (epd.ShowDialog() ?? false) if (epd.ShowDialog() ?? false)
{ {
if (!_pasdMessage.Elements.Contains(epd.PAS)) if (!_pasdMessage.Elements.Contains(epd.PAS))
{
_pasdMessage.Elements.Add(epd.PAS); _pasdMessage.Elements.Add(epd.PAS);
this.CheckPASD();
}
epd.PAS.IsDirty = true; epd.PAS.IsDirty = true;
this.dataGridPassengerListDeparture.Items.Refresh(); this.dataGridPassengerListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.PASD); this.SublistElementChanged(Message.NotificationClass.PASD);
@ -645,8 +745,11 @@ namespace ENI2.DetailViewControls
ecd.AddClicked += () => ecd.AddClicked += () =>
{ {
ecd.CopyValuesToEntity(); ecd.CopyValuesToEntity();
if(!this._crewMessage.Elements.Contains(ecd.CREW)) if (!this._crewMessage.Elements.Contains(ecd.CREW))
{
this._crewMessage.Elements.Add(ecd.CREW); this._crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
this.dataGridCrewList.Items.Refresh(); this.dataGridCrewList.Items.Refresh();
ecd.CREW = new CREW ecd.CREW = new CREW
{ {
@ -658,8 +761,11 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false) if (ecd.ShowDialog() ?? false)
{ {
if(!this._crewMessage.Elements.Contains(ecd.CREW)) if (!this._crewMessage.Elements.Contains(ecd.CREW))
{
_crewMessage.Elements.Add(ecd.CREW); _crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
this.dataGridCrewList.Items.Refresh(); this.dataGridCrewList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWA); this.SublistElementChanged(Message.NotificationClass.CREWA);
} }
@ -692,8 +798,11 @@ namespace ENI2.DetailViewControls
ecd.AddClicked += () => ecd.AddClicked += () =>
{ {
ecd.CopyValuesToEntity(); ecd.CopyValuesToEntity();
if(!_crewMessage.Elements.Contains(ecd.CREW)) if (!_crewMessage.Elements.Contains(ecd.CREW))
{
_crewMessage.Elements.Add(ecd.CREW); _crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
this.dataGridCrewList.Items.Refresh(); this.dataGridCrewList.Items.Refresh();
ecd.CREW = new CREW ecd.CREW = new CREW
{ {
@ -706,7 +815,10 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false) if (ecd.ShowDialog() ?? false)
{ {
if (!_crewMessage.Elements.Contains(ecd.CREW)) if (!_crewMessage.Elements.Contains(ecd.CREW))
{
_crewMessage.Elements.Add(ecd.CREW); _crewMessage.Elements.Add(ecd.CREW);
this.CheckCREWA();
}
ecd.CREW.IsDirty = true; ecd.CREW.IsDirty = true;
this.dataGridCrewList.Items.Refresh(); this.dataGridCrewList.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWA); this.SublistElementChanged(Message.NotificationClass.CREWA);
@ -736,7 +848,10 @@ namespace ENI2.DetailViewControls
{ {
ecd.CopyValuesToEntity(); ecd.CopyValuesToEntity();
if (!this._crewdMessage.Elements.Contains(ecd.CREW)) if (!this._crewdMessage.Elements.Contains(ecd.CREW))
{
this._crewdMessage.Elements.Add(ecd.CREW); this._crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
this.dataGridCrewListDeparture.Items.Refresh(); this.dataGridCrewListDeparture.Items.Refresh();
ecd.CREW = new CREWD ecd.CREW = new CREWD
{ {
@ -750,7 +865,10 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false) if (ecd.ShowDialog() ?? false)
{ {
if (!this._crewdMessage.Elements.Contains(ecd.CREW)) if (!this._crewdMessage.Elements.Contains(ecd.CREW))
{
_crewdMessage.Elements.Add(ecd.CREW); _crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
this.dataGridCrewListDeparture.Items.Refresh(); this.dataGridCrewListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWD); this.SublistElementChanged(Message.NotificationClass.CREWD);
} }
@ -784,7 +902,10 @@ namespace ENI2.DetailViewControls
{ {
ecd.CopyValuesToEntity(); ecd.CopyValuesToEntity();
if (!_crewdMessage.Elements.Contains(ecd.CREW)) if (!_crewdMessage.Elements.Contains(ecd.CREW))
{
_crewdMessage.Elements.Add(ecd.CREW); _crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
this.dataGridCrewListDeparture.Items.Refresh(); this.dataGridCrewListDeparture.Items.Refresh();
ecd.CREW = new CREWD ecd.CREW = new CREWD
{ {
@ -798,7 +919,10 @@ namespace ENI2.DetailViewControls
if (ecd.ShowDialog() ?? false) if (ecd.ShowDialog() ?? false)
{ {
if (!_crewdMessage.Elements.Contains(ecd.CREW)) if (!_crewdMessage.Elements.Contains(ecd.CREW))
{
_crewdMessage.Elements.Add(ecd.CREW); _crewdMessage.Elements.Add(ecd.CREW);
this.CheckCREWD();
}
ecd.CREW.IsDirty = true; ecd.CREW.IsDirty = true;
this.dataGridCrewListDeparture.Items.Refresh(); this.dataGridCrewListDeparture.Items.Refresh();
this.SublistElementChanged(Message.NotificationClass.CREWD); this.SublistElementChanged(Message.NotificationClass.CREWD);

View File

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