using Elwig.Dialogs; using Elwig.Helpers; using Elwig.Helpers.Billing; 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 void DeliveryConfirmationButton_Click(object sender, RoutedEventArgs evt) { if (SeasonInput.Value is not int year) return; var d = new DeliveryConfirmationsDialog(year); d.Show(); } private void OverUnderDeliveryButton_Click(object sender, RoutedEventArgs evt) { } private void PaymentButton_Click(object sender, RoutedEventArgs evt) { var w = new ChartWindow(); w.Show(); } } }