Files
BeWoPlaner/BeWo/View/Detail/Accounting/DigitalInvoiceOverview.xaml.cs
rene d65ac37cc0 Zwischenstand:
Schlüssel übersichtlich,
Segmente neu sortiert
PDFs eingeführt,
Beispiel Ansicht eingeführt,
2023-08-21 14:45:00 +02:00

138 lines
4.0 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Navigation;
using System.Windows.Threading;
using BeWo.Core;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BeWo.ViewModel.ListViewModel;
using BS.Shared;
using BS.Shared.Core;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using Microsoft.Win32;
using Shared.Extensions;
namespace BeWo.View.Detail.Accounting
{
public partial class DigitalInvoiceOverview : BeWoView
{
private readonly EquityInvoiceItemEditView _EquityInvoiceItemEditView;
private readonly GeneralInvoiceItemEditView _GeneralInvoiceItemEditView;
private readonly SettlementInvoiceItemEditView _SettlementInvoiceItemEditView;
private readonly SettlementInvoiceItemEditView2 _SettlementInvoiceItemEditView2;
private readonly ServiceInvoiceItemEditView _ServiceInvoiceItemEditView;
private InvoiceBaseListVM _Viewmodel;
public DigitalInvoiceOverview()
{
this.InitializeComponent();
this.ViewModel = new InvoiceBaseListVM(null);
RefreshInvoiceList();
}
private void RefreshInvoiceList()
{
DateTime? start = null;
DateTime? end = null;
if (ViewModel.DateTimeSpanFilter != null)
{
start = ViewModel.DateTimeSpanFilter.StartDate;
end = ViewModel.DateTimeSpanFilter.EndDate;
}
ServiceFacade.DoAccountingServiceAsync(s => s.GetInvoiceBases(start, end), UpdateInvoiceList);
}
private void UpdateInvoiceList(IList<InvoiceBaseDC> dcList)
{
this.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action)delegate
{
ViewModel.UpdateList(dcList.Where(DakotaExtensions.IsSozioTherapie).ToList());
this.gridView.BestFitColumns();
});
}
private InvoiceBaseListVM ViewModel
{
get
{
return this._Viewmodel;
}
set
{
this.DataContext = value;
this._Viewmodel = value;
}
}
private void RefreshItemInList(InvoiceBaseDC cb)
{
this.Dispatch(
delegate
{
var old = this.ViewModel.VMList.Single(i => i.DataContract.InvoiceBaseOid.Equals(cb.InvoiceBaseOid));
var lNew = new InvoiceBaseVM(cb);
this.ViewModel.VMList.Remove(old);
this.ViewModel.VMList.Add(lNew);
this.datagrid_invoices.RefreshData();
this.gridView.FocusedRow = lNew;
});
}
private void gridView_Loaded(object sender, RoutedEventArgs e)
{
this.gridView.BestFitColumns();
}
private void gridView_ShownEditor(object sender, EditorEventArgs e)
{
if (e.Editor is CheckEdit)
{
var ed = (CheckEdit)e.Editor;
ed.Tag = e.Row;
}
}
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
var uri = ((Hyperlink)sender).NavigateUri;
string dcid = HttpUtility.ParseQueryString(uri.Query).Get("ibid");
var schaarf = ServiceFacade.DoOperationsServiceSync(x => x.GetDakotaFileFormat(dcid));
Output.Text = schaarf;
}
private void ReloadButton_OnClick(object sender, RoutedEventArgs e)
{
RefreshInvoiceList();
}
private void YearMonthFilter_FilterSpanChanged(object sender, EventArgs<DateTimeSpan> e)
{
this.ViewModel.DateTimeSpanFilter = e.Data;
RefreshInvoiceList();
}
}
}