137 lines
4.6 KiB
C#
137 lines
4.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Translation;
|
|
using DevExpress.Xpf.Grid;
|
|
|
|
namespace BeWo.View.Detail.Accounting
|
|
{
|
|
public partial class ServiceInvoiceCreatePopUpView : BeWoView
|
|
{
|
|
private BindingList<ServiceInvoiceDC> _Dcs;
|
|
|
|
private List<string> _InvoiceNumbers;
|
|
|
|
public ServiceInvoiceCreatePopUpView()
|
|
{
|
|
this.InitializeComponent();
|
|
|
|
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close,
|
|
(s, e) =>
|
|
{
|
|
this._Dcs.Clear();
|
|
this.Fire();
|
|
}));
|
|
|
|
this.grid_newInvoices.View.Loaded += (s, e) => ((TableView)this.grid_newInvoices.View).BestFitColumns();
|
|
}
|
|
|
|
public event EventHandler<EventArgs<List<ServiceInvoiceDC>>> Closed;
|
|
|
|
public List<ServiceInvoiceDC> ServiceInvoiceDcs
|
|
{
|
|
set
|
|
{
|
|
this._InvoiceNumbers = value.Select(i => i.InvoiceBase.InvoiceNumber).ToList();
|
|
this._Dcs = new BindingList<ServiceInvoiceDC>(value);
|
|
this.grid_newInvoices.ItemsSource = this._Dcs;
|
|
|
|
SetzeWarnhinweis();
|
|
}
|
|
}
|
|
|
|
private void SetzeWarnhinweis()
|
|
{
|
|
if (_Dcs.Any(s => s.InvoiceBase.DiffErstellen))
|
|
{
|
|
txtWarnhinweis.Text = Translator.Translate("Es wurden bereits Rechnungen im gewählten Zeitraum erstellt.\nWenn Sie keine Differenzrechnungen erstellen möchten,\nentfernen Sie bitte die entsprechenden Häkchen.");
|
|
}
|
|
}
|
|
|
|
private void btn_SelectAllNeu(object sender, RoutedEventArgs e)
|
|
{
|
|
SetAllRowsSelection(true, false);
|
|
}
|
|
|
|
private void btn_SelectAllDiff(object sender, RoutedEventArgs e)
|
|
{
|
|
SetAllRowsSelection(false, true);
|
|
}
|
|
|
|
private void btn_DeselectAll(object sender, RoutedEventArgs e)
|
|
{
|
|
SetAllRowsSelection(false, false);
|
|
}
|
|
|
|
private void SetAllRowsSelection(bool selectNew, bool selectDiff)
|
|
{
|
|
var list = this.grid_newInvoices.ItemsSource as BindingList<ServiceInvoiceDC>;
|
|
if (list != null)
|
|
{
|
|
foreach (var item in list)
|
|
{
|
|
item.InvoiceBase.NeuErstellen = selectNew;
|
|
item.InvoiceBase.DiffErstellen = selectDiff;
|
|
}
|
|
grid_newInvoices.RefreshData();
|
|
}
|
|
}
|
|
|
|
private void Fire()
|
|
{
|
|
if (this.Closed != null)
|
|
{
|
|
for (int i = 0; i < this._Dcs.Count; i++)
|
|
{
|
|
this._Dcs[i].InvoiceBase.InvoiceNumber = this._InvoiceNumbers[i];
|
|
}
|
|
|
|
this.Closed(this, new EventArgs<List<ServiceInvoiceDC>>(new List<ServiceInvoiceDC>(this._Dcs)));
|
|
}
|
|
}
|
|
|
|
private void btn_cancel_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
this._Dcs.Clear();
|
|
this.Fire();
|
|
}
|
|
|
|
private void btn_create_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
this.Fire();
|
|
}
|
|
|
|
private void btn_delete_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
this._Dcs.Remove(this.grid_newInvoices.GetCurrentValue<ServiceInvoiceDC>());
|
|
}
|
|
|
|
private void TableView_CellValueChanging(object sender, CellValueChangedEventArgs e)
|
|
{
|
|
var si = e.Row as ServiceInvoiceDC;
|
|
if (e.Column.FieldName.Contains("NeuErstellen") && ((bool)e.Value))
|
|
{
|
|
if (si.InvoiceBase.DiffErstellen)
|
|
{
|
|
si.InvoiceBase.DiffErstellen = false;
|
|
grid_newInvoices.RefreshData();
|
|
}
|
|
}
|
|
else if (e.Column.FieldName.Contains("DiffErstellen") && ((bool)e.Value))
|
|
{
|
|
if (si.InvoiceBase.NeuErstellen)
|
|
{
|
|
si.InvoiceBase.NeuErstellen = false;
|
|
grid_newInvoices.RefreshData();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |