[#15] PaymentVariantsWindow: Use MailWindow
This commit is contained in:
@ -564,5 +564,15 @@ namespace Elwig.Windows {
|
|||||||
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, ((int)Year!, DocumentNonDeliverersInput.IsChecked == true)));
|
SelectedDocs.Add(new(DocType.DeliveryConfirmation, s, ((int)Year!, DocumentNonDeliverersInput.IsChecked == true)));
|
||||||
SelectedDocumentsList.SelectedIndex = SelectedDocs.Count - 1;
|
SelectedDocumentsList.SelectedIndex = SelectedDocs.Count - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddCreditNote(int index) {
|
||||||
|
AvaiableDocumentsList.SelectedIndex = 2 + index;
|
||||||
|
if (AvaiableDocumentsList.SelectedItem is not string s || SelectedDocs.Any(d => d.Type == DocType.CreditNote))
|
||||||
|
return;
|
||||||
|
var name = s.Split(" – ")[^1];
|
||||||
|
var pv = Context.PaymentVariants.Single(v => v.Year == Year && v.Name == name)!;
|
||||||
|
SelectedDocs.Add(new(DocType.CreditNote, s, (pv.Year, pv.AvNr)));
|
||||||
|
SelectedDocumentsList.SelectedIndex = SelectedDocs.Count - 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -166,15 +166,9 @@
|
|||||||
<Button x:Name="TransactionButton" Content="Buchungsliste" FontSize="14" Width="180" Margin="10,42,10,10" Height="27" IsEnabled="False"
|
<Button x:Name="TransactionButton" Content="Buchungsliste" FontSize="14" Width="180" Margin="10,42,10,10" Height="27" IsEnabled="False"
|
||||||
Click="TransactionButton_Click"
|
Click="TransactionButton_Click"
|
||||||
VerticalAlignment="Top" HorizontalAlignment="Left"/>
|
VerticalAlignment="Top" HorizontalAlignment="Left"/>
|
||||||
|
<Button x:Name="MailButton" Content="Traubengutschriften" FontSize="14" Width="180" Margin="10,74,10,10" Height="27" Tag="Print" IsEnabled="False"
|
||||||
<ProgressBar x:Name="ProgressBar" Margin="10,10,10,74" Height="27" Width="180"
|
Click="MailButton_Click"
|
||||||
VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
|
VerticalAlignment="Top" HorizontalAlignment="Left"/>
|
||||||
<Button x:Name="ShowButton" Content="Vorschau" FontSize="14" Width="180" Margin="10,10,10,42" Height="27" Tag="Print" IsEnabled="False"
|
|
||||||
Click="ShowButton_Click"
|
|
||||||
VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
|
|
||||||
<Button x:Name="PrintButton" Content="Drucken" FontSize="14" Width="180" Margin="10,10,10,10" Height="27" Tag="Print" IsEnabled="False"
|
|
||||||
Click="PrintButton_Click"
|
|
||||||
VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</GroupBox>
|
</GroupBox>
|
||||||
|
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
using Elwig.Documents;
|
using Elwig.Helpers;
|
||||||
using Elwig.Helpers;
|
|
||||||
using Elwig.Models.Dtos;
|
using Elwig.Models.Dtos;
|
||||||
using Elwig.Models.Entities;
|
using Elwig.Models.Entities;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -54,8 +52,7 @@ namespace Elwig.Windows {
|
|||||||
EditButton.Content = locked ? "Ansehen" : "Bearbeiten";
|
EditButton.Content = locked ? "Ansehen" : "Bearbeiten";
|
||||||
EditButton.IsEnabled = true;
|
EditButton.IsEnabled = true;
|
||||||
SaveButton.IsEnabled = !locked;
|
SaveButton.IsEnabled = !locked;
|
||||||
ShowButton.IsEnabled = true;
|
MailButton.IsEnabled = true;
|
||||||
PrintButton.IsEnabled = true;
|
|
||||||
ExportButton.IsEnabled = locked;
|
ExportButton.IsEnabled = locked;
|
||||||
TransactionButton.IsEnabled = locked;
|
TransactionButton.IsEnabled = locked;
|
||||||
|
|
||||||
@ -99,8 +96,7 @@ namespace Elwig.Windows {
|
|||||||
RevertButton.Visibility = Visibility.Hidden;
|
RevertButton.Visibility = Visibility.Hidden;
|
||||||
Arrow3.Content = "\xF0AF";
|
Arrow3.Content = "\xF0AF";
|
||||||
DeleteButton.IsEnabled = false;
|
DeleteButton.IsEnabled = false;
|
||||||
ShowButton.IsEnabled = false;
|
MailButton.IsEnabled = false;
|
||||||
PrintButton.IsEnabled = false;
|
|
||||||
ExportButton.IsEnabled = false;
|
ExportButton.IsEnabled = false;
|
||||||
TransactionButton.IsEnabled = false;
|
TransactionButton.IsEnabled = false;
|
||||||
|
|
||||||
@ -249,12 +245,16 @@ namespace Elwig.Windows {
|
|||||||
App.FocusChartWindow(v.Year, v.AvNr);
|
App.FocusChartWindow(v.Year, v.AvNr);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ShowButton_Click(object sender, RoutedEventArgs evt) {
|
private async void MailButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
await Generate(1);
|
if (PaymentVariantList.SelectedItem is not PaymentVar pv)
|
||||||
}
|
return;
|
||||||
|
var vars = await Context.PaymentVariants
|
||||||
private async void PrintButton_Click(object sender, RoutedEventArgs evt) {
|
.Where(v => pv.Year == v.Year && !v.TestVariant)
|
||||||
await Generate(2);
|
.OrderBy(v => v.AvNr)
|
||||||
|
.Select(v => v.AvNr)
|
||||||
|
.ToArrayAsync();
|
||||||
|
var w = App.FocusMailWindow(pv.Year);
|
||||||
|
w.AddCreditNote(Array.IndexOf(vars, pv.AvNr));
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void CommitButton_Click(object sender, RoutedEventArgs evt) {
|
private async void CommitButton_Click(object sender, RoutedEventArgs evt) {
|
||||||
@ -511,51 +511,5 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
UpdateSaveButton();
|
UpdateSaveButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task Generate(int mode) {
|
|
||||||
if (PaymentVariantList.SelectedItem is not PaymentVar v)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
|
||||||
|
|
||||||
var members = Context.Members.FromSqlRaw($"""
|
|
||||||
SELECT m.*
|
|
||||||
FROM member m
|
|
||||||
INNER JOIN delivery d ON d.mgnr = m.mgnr
|
|
||||||
WHERE d.year = {Year}
|
|
||||||
GROUP BY m.mgnr
|
|
||||||
""");
|
|
||||||
members = members.OrderBy(m => m.MgNr);
|
|
||||||
|
|
||||||
IEnumerable<Member> list = await members.ToListAsync();
|
|
||||||
var data = await CreditNoteDeliveryData.ForPaymentVariant(Context.CreditNoteDeliveryRows, Context.Seasons, v.Year, v.AvNr);
|
|
||||||
var payments = await Context.MemberPayments.Where(p => p.Year == v.Year && p.AvNr == v.AvNr).ToDictionaryAsync(c => c.MgNr);
|
|
||||||
await Context.GetMemberAreaCommitmentBuckets(Year, 0);
|
|
||||||
using var doc = Document.Merge(list.Select(m =>
|
|
||||||
new CreditNote(
|
|
||||||
Context,
|
|
||||||
payments[m.MgNr],
|
|
||||||
data[m.MgNr],
|
|
||||||
BillingData?.ConsiderContractPenalties ?? false,
|
|
||||||
BillingData?.ConsiderTotalPenalty ?? false,
|
|
||||||
BillingData?.ConsiderAutoBusinessShares ?? false,
|
|
||||||
Context.GetMemberUnderDelivery(Year, m.MgNr).GetAwaiter().GetResult()
|
|
||||||
)
|
|
||||||
));
|
|
||||||
await doc.Generate(new Progress<double>(v => {
|
|
||||||
ProgressBar.Value = v;
|
|
||||||
}));
|
|
||||||
Mouse.OverrideCursor = null;
|
|
||||||
|
|
||||||
if (mode < 2) {
|
|
||||||
doc.Show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (App.Config.Debug) {
|
|
||||||
doc.Show();
|
|
||||||
} else {
|
|
||||||
await doc.Print();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user