315 lines
13 KiB
C#
315 lines
13 KiB
C#
// Copyright (c) 2017 schick Informatik
|
|
// Description:
|
|
//
|
|
|
|
using System.Windows;
|
|
|
|
using bsmd.database;
|
|
using ENI2.EditControls;
|
|
using ENI2.Util;
|
|
using System.Windows.Controls;
|
|
using System;
|
|
using System.Windows.Media.Imaging;
|
|
|
|
namespace ENI2.DetailViewControls
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for TowageDetailControl.xaml
|
|
/// </summary>
|
|
public partial class TowageDetailControl : DetailBaseControl
|
|
{
|
|
|
|
private Message _towaMessage;
|
|
private Message _towdMessage;
|
|
private bool _ctxInitialized = false;
|
|
|
|
public TowageDetailControl()
|
|
{
|
|
InitializeComponent();
|
|
this.Loaded += TowageDetailControl_Loaded;
|
|
}
|
|
|
|
private void TowageDetailControl_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
if (!_ctxInitialized)
|
|
{
|
|
this.dataGridTowageOnArrival.ContextMenu.Items.Add(new Separator());
|
|
MenuItem copyItem = new MenuItem();
|
|
copyItem.Header = string.Format(Properties.Resources.textCopyTo, "TOWD");
|
|
copyItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
|
|
copyItem.Click += new RoutedEventHandler(this.copyItem);
|
|
this.dataGridTowageOnArrival.ContextMenu.Items.Add(copyItem);
|
|
|
|
this.dataGridTowageOnDeparture.ContextMenu.Items.Add(new Separator());
|
|
copyItem = new MenuItem();
|
|
copyItem.Header = string.Format(Properties.Resources.textCopyTo, "TOWA");
|
|
copyItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
|
|
copyItem.Click += new RoutedEventHandler(this.copyItemToTOWA);
|
|
this.dataGridTowageOnDeparture.ContextMenu.Items.Add(copyItem);
|
|
|
|
_ctxInitialized = true;
|
|
}
|
|
}
|
|
|
|
private void copyItem(object sender, RoutedEventArgs e)
|
|
{
|
|
// aus dem aktuell selektierten TOWA Element ein neues TOWD Element machen
|
|
if (this.dataGridTowageOnArrival.SelectedItems != null)
|
|
{
|
|
foreach(TOWA selectedTOWA in this.dataGridTowageOnArrival.SelectedItems)
|
|
{
|
|
TOWD copyTOWD = new TOWD();
|
|
copyTOWD.MessageHeader = _towdMessage;
|
|
copyTOWD.CopyFromTOWA(selectedTOWA);
|
|
copyTOWD.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
|
|
this._towdMessage.Elements.Add(copyTOWD);
|
|
this.dataGridTowageOnDeparture.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.TOWD);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void copyItemToTOWA(object sender, RoutedEventArgs e)
|
|
{
|
|
// aus dem aktuell selektierten TOWD Element ein neues TOWA Element machen
|
|
if (this.dataGridTowageOnDeparture.SelectedItems != null)
|
|
{
|
|
foreach (TOWD selectedTOWD in this.dataGridTowageOnDeparture.SelectedItems)
|
|
{
|
|
TOWA copyTOWA = new TOWA();
|
|
copyTOWA.MessageHeader = _towaMessage;
|
|
copyTOWA.CopyFromTOWD(selectedTOWD);
|
|
copyTOWA.Identifier = TOWA.GetNewIdentifier(this._towaMessage.Elements);
|
|
this._towaMessage.Elements.Add(copyTOWA);
|
|
this.dataGridTowageOnArrival.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
|
}
|
|
}
|
|
}
|
|
|
|
public override void Initialize()
|
|
{
|
|
base.Initialize();
|
|
|
|
foreach (Message aMessage in this.Messages)
|
|
{
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.TOWA) { this._towaMessage = aMessage; this.ControlMessages.Add(aMessage); }
|
|
if (aMessage.MessageNotificationClass == Message.NotificationClass.TOWD) { this._towdMessage = aMessage; this.ControlMessages.Add(aMessage); }
|
|
}
|
|
|
|
#region TOWA
|
|
|
|
if (this._towaMessage == null)
|
|
{
|
|
this._towaMessage = this.Core.CreateMessage(Message.NotificationClass.TOWA);
|
|
this.Messages.Add(this._towaMessage);
|
|
}
|
|
|
|
this.dataGridTowageOnArrival.Initialize();
|
|
this.dataGridTowageOnArrival.ItemsSource = this._towaMessage.Elements;
|
|
this.dataGridTowageOnArrival.AddingNewItem += DataGridTowageOnArrival_AddingNewItem;
|
|
this.dataGridTowageOnArrival.EditRequested += DataGridTowageOnArrival_EditRequested;
|
|
this.dataGridTowageOnArrival.DeleteRequested += DataGridTowageOnArrival_DeleteRequested;
|
|
this.dataGridTowageOnArrival.CreateRequested += DataGridTowageOnArrival_CreateRequested;
|
|
|
|
#endregion
|
|
|
|
#region TOWD
|
|
|
|
if (this._towdMessage == null)
|
|
{
|
|
this._towdMessage = this.Core.CreateMessage(Message.NotificationClass.TOWD);
|
|
this.Messages.Add(this._towdMessage);
|
|
}
|
|
|
|
this.dataGridTowageOnDeparture.Initialize();
|
|
this.dataGridTowageOnDeparture.ItemsSource = this._towdMessage.Elements;
|
|
this.dataGridTowageOnDeparture.AddingNewItem += DataGridTowageOnDeparture_AddingNewItem;
|
|
this.dataGridTowageOnDeparture.EditRequested += DataGridTowageOnDeparture_EditRequested;
|
|
this.dataGridTowageOnDeparture.DeleteRequested += DataGridTowageOnDeparture_DeleteRequested;
|
|
this.dataGridTowageOnDeparture.CreateRequested += DataGridTowageOnDeparture_CreateRequested;
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
#region TOWD grid
|
|
|
|
private void DataGridTowageOnDeparture_CreateRequested()
|
|
{
|
|
EditTOWDialog ebd = new EditTOWDialog();
|
|
ebd.IsDeparture = true;
|
|
ebd.TOWD = new TOWD();
|
|
ebd.TOWD.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
|
|
ebd.TOWD.MessageHeader = this._towdMessage;
|
|
|
|
ebd.AddClicked += () =>
|
|
{
|
|
ebd.CopyValuesToEntity();
|
|
if(!this._towdMessage.Elements.Contains(ebd.TOWD))
|
|
this._towdMessage.Elements.Add(ebd.TOWD);
|
|
this.dataGridTowageOnDeparture.Items.Refresh();
|
|
ebd.TOWD = new TOWD();
|
|
ebd.TOWD.MessageHeader = _towdMessage;
|
|
ebd.TOWD.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
|
|
this.SublistElementChanged(Message.NotificationClass.TOWD);
|
|
};
|
|
|
|
if (ebd.ShowDialog() ?? false)
|
|
{
|
|
if(!this._towdMessage.Elements.Contains(ebd.TOWD))
|
|
_towdMessage.Elements.Add(ebd.TOWD);
|
|
this.dataGridTowageOnDeparture.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.TOWD);
|
|
}
|
|
}
|
|
|
|
private void DataGridTowageOnDeparture_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is TOWD towd)
|
|
{
|
|
// are you sure dialog is in base class
|
|
this._towdMessage.Elements.Remove(towd);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(towd);
|
|
DatabaseEntity.ResetIdentifiers(this._towdMessage.Elements);
|
|
this.SublistElementChanged(Message.NotificationClass.TOWD);
|
|
this.dataGridTowageOnDeparture.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridTowageOnDeparture_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditTOWDialog eld = new EditTOWDialog();
|
|
eld.IsDeparture = true;
|
|
eld.TOWD = obj as TOWD;
|
|
|
|
eld.AddClicked += () =>
|
|
{
|
|
eld.CopyValuesToEntity();
|
|
if(!_towdMessage.Elements.Contains(eld.TOWD))
|
|
_towdMessage.Elements.Add(eld.TOWD);
|
|
this.dataGridTowageOnDeparture.Items.Refresh();
|
|
eld.TOWD = new TOWD();
|
|
eld.TOWD.Identifier = TOWD.GetNewIdentifier(this._towdMessage.Elements);
|
|
eld.TOWD.MessageHeader = _towdMessage;
|
|
this.SublistElementChanged(Message.NotificationClass.TOWD);
|
|
};
|
|
|
|
if (eld.ShowDialog() ?? false)
|
|
{
|
|
if (!this._towdMessage.Elements.Contains(eld.TOWD))
|
|
this._towdMessage.Elements.Add(eld.TOWD);
|
|
this.dataGridTowageOnDeparture.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.TOWD);
|
|
}
|
|
}
|
|
|
|
private void DataGridTowageOnDeparture_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridTowageOnDeparture_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region TOWA grid
|
|
|
|
private void DataGridTowageOnArrival_CreateRequested()
|
|
{
|
|
EditTOWDialog ebd = new EditTOWDialog();
|
|
ebd.IsDeparture = false;
|
|
ebd.TOWA = new TOWA();
|
|
ebd.TOWA.Identifier = TOWA.GetNewIdentifier(this._towaMessage.Elements);
|
|
ebd.TOWA.MessageHeader = this._towaMessage;
|
|
|
|
ebd.AddClicked += () =>
|
|
{
|
|
ebd.CopyValuesToEntity();
|
|
if(!this._towaMessage.Elements.Contains(ebd.TOWA))
|
|
this._towaMessage.Elements.Add(ebd.TOWA);
|
|
this.dataGridTowageOnArrival.Items.Refresh();
|
|
ebd.TOWA = new TOWA();
|
|
ebd.TOWA.MessageHeader = _towaMessage;
|
|
ebd.TOWA.Identifier = TOWA.GetNewIdentifier(this._towaMessage.Elements);
|
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
|
};
|
|
|
|
if (ebd.ShowDialog() ?? false)
|
|
{
|
|
if(!this._towaMessage.Elements.Contains(ebd.TOWA))
|
|
_towaMessage.Elements.Add(ebd.TOWA);
|
|
this.dataGridTowageOnArrival.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
|
}
|
|
}
|
|
|
|
private void DataGridTowageOnArrival_DeleteRequested(DatabaseEntity obj)
|
|
{
|
|
if (obj is TOWA towa)
|
|
{
|
|
// are you sure dialog is in base class
|
|
this._towaMessage.Elements.Remove(towa);
|
|
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(towa);
|
|
DatabaseEntity.ResetIdentifiers(this._towaMessage.Elements);
|
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
|
this.dataGridTowageOnArrival.Items.Refresh();
|
|
}
|
|
}
|
|
|
|
private void DataGridTowageOnArrival_EditRequested(DatabaseEntity obj)
|
|
{
|
|
EditTOWDialog eld = new EditTOWDialog();
|
|
eld.IsDeparture = false;
|
|
eld.TOWA = obj as TOWA;
|
|
|
|
eld.AddClicked += () =>
|
|
{
|
|
eld.CopyValuesToEntity();
|
|
if(!_towaMessage.Elements.Contains(eld.TOWA))
|
|
_towaMessage.Elements.Add(eld.TOWA);
|
|
this.dataGridTowageOnArrival.Items.Refresh();
|
|
|
|
eld.TOWA = new TOWA();
|
|
eld.TOWA.Identifier = TOWA.GetNewIdentifier(this._towaMessage.Elements);
|
|
eld.TOWA.MessageHeader = _towaMessage;
|
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
|
};
|
|
|
|
if (eld.ShowDialog() ?? false)
|
|
{
|
|
if (!this._towaMessage.Elements.Contains(eld.TOWA))
|
|
this._towaMessage.Elements.Add(eld.TOWA);
|
|
this.dataGridTowageOnArrival.Items.Refresh();
|
|
this.SublistElementChanged(Message.NotificationClass.TOWA);
|
|
}
|
|
}
|
|
|
|
private void DataGridTowageOnArrival_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
|
|
{
|
|
this.DataGridTowageOnArrival_CreateRequested();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Highlighting
|
|
|
|
public override void HighlightErrorMessageContainer()
|
|
{
|
|
if (this._towaMessage.HasErrors)
|
|
HighlightService.HighlightControl(this.groupBoxTowageOnArrival, HighlightService.HighlightStyle.ERROR, this._towaMessage);
|
|
if (this._towdMessage.HasErrors)
|
|
HighlightService.HighlightControl(this.groupBoxTowageOnDeparture, HighlightService.HighlightStyle.ERROR, this._towdMessage);
|
|
}
|
|
|
|
public override void HighlightViolationMessageContainer()
|
|
{
|
|
if (this._towaMessage.HasViolations)
|
|
HighlightService.HighlightControl(this.groupBoxTowageOnArrival, HighlightService.HighlightStyle.VIOLATION, this._towaMessage);
|
|
if (this._towdMessage.HasViolations)
|
|
HighlightService.HighlightControl(this.groupBoxTowageOnDeparture, HighlightService.HighlightStyle.VIOLATION, this._towdMessage);
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|