86 lines
3.2 KiB
C#
86 lines
3.2 KiB
C#
using Elwig.Documents;
|
|
using Elwig.Helpers;
|
|
using Elwig.Helpers.Billing;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
|
|
namespace Elwig.Windows {
|
|
public partial class SeasonFinishWindow : ContextWindow {
|
|
public SeasonFinishWindow() {
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void Window_Loaded(object sender, RoutedEventArgs evt) {
|
|
SeasonInput.Value = Utils.CurrentLastSeason;
|
|
}
|
|
|
|
protected override async Task OnRenewContext() {
|
|
SeasonInput_ValueChanged(null, null);
|
|
}
|
|
|
|
private async void SeasonInput_ValueChanged(object? sender, RoutedEventArgs? evt) {
|
|
var s0 = await Context.Seasons.FindAsync(SeasonInput.Value);
|
|
var s1 = await Context.Seasons.FindAsync(SeasonInput.Value + 1);
|
|
var valid = (s0 != null);
|
|
var last = (s1 == null);
|
|
CalculateBinsButton.IsEnabled = valid && last;
|
|
DeliveryConfirmationButton.IsEnabled = valid;
|
|
OverUnderDeliveryButton.IsEnabled = valid;
|
|
}
|
|
|
|
private async void CalculateBinsButton_Click(object sender, RoutedEventArgs evt) {
|
|
if (SeasonInput.Value is not int year)
|
|
return;
|
|
CalculateBinsButton.IsEnabled = false;
|
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
|
var b = new Billing(year);
|
|
await b.FinishSeason();
|
|
await b.CalculateBins(
|
|
AllowAttrIntoLowerBinsInput.IsChecked ?? false,
|
|
AvoidUnderDeliveriesInput.IsChecked ?? false,
|
|
HonorGebundenInput.IsChecked ?? false);
|
|
Mouse.OverrideCursor = null;
|
|
CalculateBinsButton.IsEnabled = true;
|
|
}
|
|
|
|
private async void DeliveryConfirmationButton_Click(object sender, RoutedEventArgs evt) {
|
|
if (SeasonInput.Value is not int year)
|
|
return;
|
|
var res = MessageBox.Show(
|
|
$"Sollen wirklich alle Bestätigungen gedruckt werden?", "Ausdruck Bestätigen",
|
|
MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
|
|
if (res != MessageBoxResult.Yes)
|
|
return;
|
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
|
using var doc = await Document.Merge(Context.Members.FromSqlRaw($"""
|
|
SELECT m.*
|
|
FROM member m
|
|
JOIN delivery d ON d.mgnr = m.mgnr
|
|
WHERE m.active AND d.year = {year}
|
|
GROUP BY m.mgnr
|
|
ORDER BY m.mgnr
|
|
""")
|
|
.ToList()
|
|
.Select(m => new DeliveryConfirmation(Context, year, m)));
|
|
await doc.Generate();
|
|
Mouse.OverrideCursor = null;
|
|
if (App.Config.Debug) {
|
|
doc.Show();
|
|
} else {
|
|
await doc.Print();
|
|
}
|
|
}
|
|
|
|
private void OverUnderDeliveryButton_Click(object sender, RoutedEventArgs evt) {
|
|
}
|
|
|
|
private void PaymentButton_Click(object sender, RoutedEventArgs evt) {
|
|
var w = new ChartWindow();
|
|
w.Show();
|
|
}
|
|
}
|
|
}
|