[#3] Windows: Add option to export selected member or delivery only
All checks were successful
Test / Run tests (push) Successful in 2m23s
All checks were successful
Test / Run tests (push) Successful in 2m23s
This commit is contained in:
@ -23,6 +23,10 @@ using System.Net.Http;
|
|||||||
namespace Elwig.Services {
|
namespace Elwig.Services {
|
||||||
public static class DeliveryService {
|
public static class DeliveryService {
|
||||||
|
|
||||||
|
public enum ExportSubject {
|
||||||
|
FromFilters, FromToday, FromSeasonAndBranch, Selected,
|
||||||
|
};
|
||||||
|
|
||||||
public static async Task<Member?> GetMemberAsync(int mgnr) {
|
public static async Task<Member?> GetMemberAsync(int mgnr) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
return await ctx.Members
|
return await ctx.Members
|
||||||
@ -522,23 +526,31 @@ namespace Elwig.Services {
|
|||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateDeliveryJournal(this DeliveryAdminViewModel vm, int modeWho, ExportMode exportMode) {
|
public static async Task GenerateDeliveryJournal(this DeliveryAdminViewModel vm, ExportSubject subject, ExportMode mode) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
IQueryable<DeliveryPart> query;
|
IQueryable<DeliveryPart> query;
|
||||||
List<string> filterNames = [];
|
List<string> filterNames = [];
|
||||||
if (modeWho == 0) {
|
if (subject == ExportSubject.FromFilters) {
|
||||||
var (f, _, q, _, _) = await vm.GetFilters(ctx);
|
var (f, _, q, _, _) = await vm.GetFilters(ctx);
|
||||||
query = q;
|
query = q;
|
||||||
filterNames.AddRange(f);
|
filterNames.AddRange(f);
|
||||||
} else if (modeWho == 2) {
|
} else if (subject == ExportSubject.FromToday) {
|
||||||
query = ctx.DeliveryParts
|
|
||||||
.Where(p => p.Year == Utils.CurrentLastSeason && p.Delivery.ZwstId == App.ZwstId);
|
|
||||||
filterNames.AddRange([$"{Utils.CurrentLastSeason}", $"Zweigstelle {App.BranchName}"]);
|
|
||||||
} else {
|
|
||||||
var date = $"{Utils.Today:yyyy-MM-dd}";
|
var date = $"{Utils.Today:yyyy-MM-dd}";
|
||||||
query = ctx.DeliveryParts
|
query = ctx.DeliveryParts
|
||||||
.Where(p => p.Delivery.DateString == date);
|
.Where(p => p.Delivery.DateString == date);
|
||||||
filterNames.Add($"{Utils.Today:dd.MM.yyyy}");
|
filterNames.Add($"{Utils.Today:dd.MM.yyyy}");
|
||||||
|
} else if (subject == ExportSubject.FromSeasonAndBranch) {
|
||||||
|
query = ctx.DeliveryParts
|
||||||
|
.Where(p => p.Year == Utils.CurrentLastSeason && p.Delivery.ZwstId == App.ZwstId);
|
||||||
|
filterNames.AddRange([$"{Utils.CurrentLastSeason}", $"Zweigstelle {App.BranchName}"]);
|
||||||
|
} else if (subject == ExportSubject.Selected) {
|
||||||
|
var lsnr = vm.SelectedDelivery?.LsNr;
|
||||||
|
if (lsnr == null) return;
|
||||||
|
query = ctx.DeliveryParts
|
||||||
|
.Where(p => p.Delivery.LsNr == lsnr);
|
||||||
|
filterNames.Add(lsnr);
|
||||||
|
} else {
|
||||||
|
throw new ArgumentException("Invalid value for ExportSubject");
|
||||||
}
|
}
|
||||||
|
|
||||||
query = query
|
query = query
|
||||||
@ -547,7 +559,7 @@ namespace Elwig.Services {
|
|||||||
.ThenBy(p => p.Delivery.LsNr)
|
.ThenBy(p => p.Delivery.LsNr)
|
||||||
.ThenBy(p => p.DPNr);
|
.ThenBy(p => p.DPNr);
|
||||||
|
|
||||||
if (exportMode == ExportMode.SaveList) {
|
if (mode == ExportMode.SaveList) {
|
||||||
var d = new SaveFileDialog() {
|
var d = new SaveFileDialog() {
|
||||||
FileName = $"{DeliveryJournal.Name}.ods",
|
FileName = $"{DeliveryJournal.Name}.ods",
|
||||||
DefaultExt = "ods",
|
DefaultExt = "ods",
|
||||||
@ -565,9 +577,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (exportMode == ExportMode.Export) {
|
} else if (mode == ExportMode.Export) {
|
||||||
var d = new SaveFileDialog() {
|
var d = new SaveFileDialog() {
|
||||||
FileName = $"Lieferungen_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip",
|
FileName = subject == ExportSubject.Selected ? $"Lieferung_{vm.SelectedDelivery?.LsNr}.elwig.zip" : $"Lieferungen_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip",
|
||||||
DefaultExt = "elwig.zip",
|
DefaultExt = "elwig.zip",
|
||||||
Filter = "Elwig-Export-Datei (*.elwig.zip)|*.elwig.zip",
|
Filter = "Elwig-Export-Datei (*.elwig.zip)|*.elwig.zip",
|
||||||
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
Title = $"{DeliveryJournal.Name} speichern unter - Elwig"
|
||||||
@ -587,7 +599,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (exportMode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
||||||
@ -621,7 +633,7 @@ namespace Elwig.Services {
|
|||||||
try {
|
try {
|
||||||
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
var data = await DeliveryJournalData.FromQuery(query, filterNames);
|
||||||
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
using var doc = new DeliveryJournal(string.Join(" / ", filterNames), data);
|
||||||
await Utils.ExportDocument(doc, exportMode);
|
await Utils.ExportDocument(doc, mode);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
@ -629,26 +641,28 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateWineQualityStatistics(this DeliveryAdminViewModel vm, int modeWho, ExportMode exportMode) {
|
public static async Task GenerateWineQualityStatistics(this DeliveryAdminViewModel vm, ExportSubject subject, ExportMode mode) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
IQueryable<DeliveryPart> query;
|
IQueryable<DeliveryPart> query;
|
||||||
List<string> filterNames = [];
|
List<string> filterNames = [];
|
||||||
if (modeWho == 0) {
|
if (subject == ExportSubject.FromFilters) {
|
||||||
var (f, _, q, _, _) = await vm.GetFilters(ctx);
|
var (f, _, q, _, _) = await vm.GetFilters(ctx);
|
||||||
query = q;
|
query = q;
|
||||||
filterNames.AddRange(f);
|
filterNames.AddRange(f);
|
||||||
} else {
|
} else if (subject == ExportSubject.FromToday) {
|
||||||
var date = $"{Utils.Today:yyyy-MM-dd}";
|
var date = $"{Utils.Today:yyyy-MM-dd}";
|
||||||
query = ctx.DeliveryParts
|
query = ctx.DeliveryParts
|
||||||
.Where(p => p.Delivery.DateString == date);
|
.Where(p => p.Delivery.DateString == date);
|
||||||
filterNames.Add($"{Utils.Today:dd.MM.yyyy}");
|
filterNames.Add($"{Utils.Today:dd.MM.yyyy}");
|
||||||
|
} else {
|
||||||
|
throw new ArgumentException("Invalid value for ExportSubject");
|
||||||
}
|
}
|
||||||
|
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
var data = await WineQualityStatisticsData.FromQuery(query, App.Client.OrderingMemberList);
|
||||||
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
using var doc = new WineQualityStatistics(string.Join(" / ", filterNames), data);
|
||||||
await Utils.ExportDocument(doc, exportMode);
|
await Utils.ExportDocument(doc, mode);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,10 @@ using System.Net.Http;
|
|||||||
namespace Elwig.Services {
|
namespace Elwig.Services {
|
||||||
public static class MemberService {
|
public static class MemberService {
|
||||||
|
|
||||||
|
public enum ExportSubject {
|
||||||
|
All, AllActive, FromFilters, Selected,
|
||||||
|
};
|
||||||
|
|
||||||
public static async Task InitInputs(this MemberAdminViewModel vm) {
|
public static async Task InitInputs(this MemberAdminViewModel vm) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
vm.MgNrString = $"{await ctx.NextMgNr()}";
|
vm.MgNrString = $"{await ctx.NextMgNr()}";
|
||||||
@ -359,19 +363,26 @@ namespace Elwig.Services {
|
|||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task GenerateMemberList(this MemberAdminViewModel vm, int modeWho, ExportMode exportMode) {
|
public static async Task GenerateMemberList(this MemberAdminViewModel vm, ExportSubject subject, ExportMode mode) {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
IQueryable<Member> query;
|
IQueryable<Member> query;
|
||||||
List<string> filterNames = [];
|
List<string> filterNames = [];
|
||||||
if (modeWho == 0) {
|
if (subject == ExportSubject.All) {
|
||||||
|
query = ctx.Members;
|
||||||
|
} else if (subject == ExportSubject.AllActive) {
|
||||||
query = ctx.Members.Where(m => m.IsActive);
|
query = ctx.Members.Where(m => m.IsActive);
|
||||||
filterNames.Add("aktive Mitglieder");
|
filterNames.Add("aktive Mitglieder");
|
||||||
} else if (modeWho == 1) {
|
} else if (subject == ExportSubject.FromFilters) {
|
||||||
var (f, q, _) = await vm.GetFilters(ctx);
|
var (f, q, _) = await vm.GetFilters(ctx);
|
||||||
query = q;
|
query = q;
|
||||||
filterNames.AddRange(f);
|
filterNames.AddRange(f);
|
||||||
|
} else if (subject == ExportSubject.Selected) {
|
||||||
|
var mgnr = vm.SelectedMember?.MgNr;
|
||||||
|
if (mgnr == null) return;
|
||||||
|
query = ctx.Members.Where(m => m.MgNr == mgnr);
|
||||||
|
filterNames.Add($"{mgnr}");
|
||||||
} else {
|
} else {
|
||||||
query = ctx.Members;
|
throw new ArgumentException("Invalid value for ExportSubject");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vm.MemberListOrderByMgNr) {
|
if (vm.MemberListOrderByMgNr) {
|
||||||
@ -393,7 +404,7 @@ namespace Elwig.Services {
|
|||||||
.ThenBy(m => m.MgNr);
|
.ThenBy(m => m.MgNr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exportMode == ExportMode.SaveList) {
|
if (mode == ExportMode.SaveList) {
|
||||||
var d = new SaveFileDialog() {
|
var d = new SaveFileDialog() {
|
||||||
FileName = $"{MemberList.Name}.ods",
|
FileName = $"{MemberList.Name}.ods",
|
||||||
DefaultExt = "ods",
|
DefaultExt = "ods",
|
||||||
@ -411,9 +422,9 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (exportMode == ExportMode.Export) {
|
} else if (mode == ExportMode.Export) {
|
||||||
var d = new SaveFileDialog() {
|
var d = new SaveFileDialog() {
|
||||||
FileName = $"Mitglieder_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip",
|
FileName = subject == ExportSubject.Selected ? $"Mitglied_{vm.SelectedMember?.MgNr}.elwig.zip" : $"Mitglieder_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip",
|
||||||
DefaultExt = ".elwig.zip",
|
DefaultExt = ".elwig.zip",
|
||||||
Filter = "Elwig-Export-Datei (*.elwig.zip)|*.elwig.zip",
|
Filter = "Elwig-Export-Datei (*.elwig.zip)|*.elwig.zip",
|
||||||
Title = $"{MemberList.Name} speichern unter - Elwig"
|
Title = $"{MemberList.Name} speichern unter - Elwig"
|
||||||
@ -433,7 +444,7 @@ namespace Elwig.Services {
|
|||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
}
|
}
|
||||||
} else if (exportMode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
} else if (mode == ExportMode.Upload && App.Config.SyncUrl != null) {
|
||||||
Mouse.OverrideCursor = Cursors.AppStarting;
|
Mouse.OverrideCursor = Cursors.AppStarting;
|
||||||
try {
|
try {
|
||||||
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
var filename = $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}_{App.ZwstId}.elwig.zip";
|
||||||
@ -467,7 +478,7 @@ namespace Elwig.Services {
|
|||||||
try {
|
try {
|
||||||
var data = await MemberListData.FromQuery(query, filterNames);
|
var data = await MemberListData.FromQuery(query, filterNames);
|
||||||
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
using var doc = new MemberList(string.Join(" / ", filterNames), data);
|
||||||
await Utils.ExportDocument(doc, exportMode);
|
await Utils.ExportDocument(doc, mode);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
|
@ -124,6 +124,11 @@
|
|||||||
<MenuItem x:Name="Menu_Bki_SaveList" Header="Traubentransportscheinliste speichern..."/>
|
<MenuItem x:Name="Menu_Bki_SaveList" Header="Traubentransportscheinliste speichern..."/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Export">
|
<MenuItem Header="Export">
|
||||||
|
<MenuItem x:Name="Menu_Export_ExportSelected" Header="...von ausgewählter Lieferung speichern..." IsEnabled="False"
|
||||||
|
Click="Menu_Export_ExportSelected_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_Export_UploadSelected" Header="...von ausgewählter Lieferung hochladen" IsEnabled="False"
|
||||||
|
Click="Menu_Export_UploadSelected_Click"/>
|
||||||
|
<Separator/>
|
||||||
<MenuItem x:Name="Menu_Export_ExportFilters" Header="...aus Filtern speichern..."
|
<MenuItem x:Name="Menu_Export_ExportFilters" Header="...aus Filtern speichern..."
|
||||||
Click="Menu_Export_ExportFilters_Click"/>
|
Click="Menu_Export_ExportFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_Export_UploadFilters" Header="...aus Filtern hochladen"
|
<MenuItem x:Name="Menu_Export_UploadFilters" Header="...aus Filtern hochladen"
|
||||||
@ -192,6 +197,7 @@
|
|||||||
HorizontalAlignment="Right" Margin="0,24,10,0" VerticalAlignment="Top" Grid.Column="1" Grid.ColumnSpan="2"
|
HorizontalAlignment="Right" Margin="0,24,10,0" VerticalAlignment="Top" Grid.Column="1" Grid.ColumnSpan="2"
|
||||||
Checked="AllSeasonsInput_Changed" Unchecked="AllSeasonsInput_Changed"/>
|
Checked="AllSeasonsInput_Changed" Unchecked="AllSeasonsInput_Changed"/>
|
||||||
<DataGrid x:Name="DeliveryList" AutoGenerateColumns="False" HeadersVisibility="Column" IsReadOnly="True" GridLinesVisibility="None" SelectionMode="Single"
|
<DataGrid x:Name="DeliveryList" AutoGenerateColumns="False" HeadersVisibility="Column" IsReadOnly="True" GridLinesVisibility="None" SelectionMode="Single"
|
||||||
|
ItemsSource="{Binding Deliveries, Mode=TwoWay}" SelectedItem="{Binding SelectedDelivery, Mode=TwoWay}"
|
||||||
SelectionChanged="DeliveryList_SelectionChanged"
|
SelectionChanged="DeliveryList_SelectionChanged"
|
||||||
CanUserDeleteRows="False" CanUserResizeRows="False" CanUserAddRows="False"
|
CanUserDeleteRows="False" CanUserResizeRows="False" CanUserAddRows="False"
|
||||||
Margin="5,0,5,0" Grid.Row="1" FontSize="14" Grid.ColumnSpan="3">
|
Margin="5,0,5,0" Grid.Row="1" FontSize="14" Grid.ColumnSpan="3">
|
||||||
|
@ -175,33 +175,55 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_DeliveryJournal_SaveToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.SaveList); }
|
private async void Menu_DeliveryJournal_SaveToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_DeliveryJournal_SavePdfToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.SavePdf); }
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.SaveList);
|
||||||
private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.Show); }
|
private async void Menu_DeliveryJournal_SavePdfToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_Export_ExportSeason_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(2, ExportMode.Export); }
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.SavePdf);
|
||||||
private async void Menu_DeliveryJournal_PrintToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(1, ExportMode.Print); }
|
private async void Menu_DeliveryJournal_ShowToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_DeliveryJournal_SaveFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.SaveList); }
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.Show);
|
||||||
private async void Menu_DeliveryJournal_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.SavePdf); }
|
private async void Menu_DeliveryJournal_PrintToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.Show); }
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromToday, ExportMode.Print);
|
||||||
private async void Menu_DeliveryJournal_PrintFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.Print); }
|
private async void Menu_DeliveryJournal_SaveFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateDeliveryJournal(0, ExportMode.Export); }
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.SaveList);
|
||||||
|
private async void Menu_DeliveryJournal_SavePdfFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.SavePdf);
|
||||||
|
private async void Menu_DeliveryJournal_ShowFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Show);
|
||||||
|
private async void Menu_DeliveryJournal_PrintFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Print);
|
||||||
|
|
||||||
|
private async void Menu_Export_ExportSeason_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromSeasonAndBranch, ExportMode.Export);
|
||||||
|
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Export);
|
||||||
|
private async void Menu_Export_ExportSelected_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.Selected, ExportMode.Export);
|
||||||
|
|
||||||
private async void Menu_Export_UploadSeason_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Export_UploadSeason_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (App.Config.SyncUrl == null) return;
|
if (App.Config.SyncUrl == null) return;
|
||||||
await ViewModel.GenerateDeliveryJournal(2, ExportMode.Upload);
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromSeasonAndBranch, ExportMode.Upload);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_Export_UploadFilters_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Export_UploadFilters_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (App.Config.SyncUrl == null) return;
|
if (App.Config.SyncUrl == null) return;
|
||||||
await ViewModel.GenerateDeliveryJournal(0, ExportMode.Upload);
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromFilters, ExportMode.Upload);
|
||||||
|
}
|
||||||
|
private async void Menu_Export_UploadSelected_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
if (App.Config.SyncUrl == null) return;
|
||||||
|
await ViewModel.GenerateDeliveryJournal(DeliveryService.ExportSubject.FromSeasonAndBranch, ExportMode.Upload);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_WineQualityStatistics_ShowToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(1, ExportMode.Show); }
|
private async void Menu_WineQualityStatistics_ShowToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_WineQualityStatistics_SavePdfToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(1, ExportMode.SavePdf); }
|
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromToday, ExportMode.Show);
|
||||||
private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(1, ExportMode.Print); }
|
private async void Menu_WineQualityStatistics_SavePdfToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_WineQualityStatistics_ShowFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(0, ExportMode.Show); }
|
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromToday, ExportMode.SavePdf);
|
||||||
private async void Menu_WineQualityStatistics_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(0, ExportMode.SavePdf); }
|
private async void Menu_WineQualityStatistics_PrintToday_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateWineQualityStatistics(0, ExportMode.Print); }
|
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromToday, ExportMode.Print);
|
||||||
|
private async void Menu_WineQualityStatistics_ShowFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromFilters, ExportMode.Show);
|
||||||
|
private async void Menu_WineQualityStatistics_SavePdfFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromFilters, ExportMode.SavePdf);
|
||||||
|
private async void Menu_WineQualityStatistics_PrintFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateWineQualityStatistics(DeliveryService.ExportSubject.FromFilters, ExportMode.Print);
|
||||||
|
|
||||||
private async void Menu_WineQualityStatistics_Mode_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_WineQualityStatistics_Mode_Click(object sender, RoutedEventArgs evt) {
|
||||||
Menu_WineQualityStatistics.IsSubmenuOpen = true;
|
Menu_WineQualityStatistics.IsSubmenuOpen = true;
|
||||||
@ -598,12 +620,16 @@ namespace Elwig.Windows {
|
|||||||
Menu_DeliveryNote_SavePdf.IsEnabled = !IsEditing && !IsCreating;
|
Menu_DeliveryNote_SavePdf.IsEnabled = !IsEditing && !IsCreating;
|
||||||
Menu_DeliveryNote_Print.IsEnabled = !IsEditing && !IsCreating;
|
Menu_DeliveryNote_Print.IsEnabled = !IsEditing && !IsCreating;
|
||||||
Menu_DeliveryNote_Email.IsEnabled = !IsEditing && !IsCreating && App.Config.Smtp != null && d.Member.EmailAddresses.Count > 0;
|
Menu_DeliveryNote_Email.IsEnabled = !IsEditing && !IsCreating && App.Config.Smtp != null && d.Member.EmailAddresses.Count > 0;
|
||||||
|
Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||||
|
Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null;
|
||||||
} else {
|
} else {
|
||||||
DeleteDeliveryButton.IsEnabled = false;
|
DeleteDeliveryButton.IsEnabled = false;
|
||||||
Menu_DeliveryNote_Show.IsEnabled = false;
|
Menu_DeliveryNote_Show.IsEnabled = false;
|
||||||
Menu_DeliveryNote_SavePdf.IsEnabled = false;
|
Menu_DeliveryNote_SavePdf.IsEnabled = false;
|
||||||
Menu_DeliveryNote_Print.IsEnabled = false;
|
Menu_DeliveryNote_Print.IsEnabled = false;
|
||||||
Menu_DeliveryNote_Email.IsEnabled = false;
|
Menu_DeliveryNote_Email.IsEnabled = false;
|
||||||
|
Menu_Export_ExportSelected.IsEnabled = false;
|
||||||
|
Menu_Export_UploadSelected.IsEnabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,6 +125,11 @@
|
|||||||
Click="Menu_List_Order_Click"/>
|
Click="Menu_List_Order_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Export">
|
<MenuItem Header="Export">
|
||||||
|
<MenuItem x:Name="Menu_Export_ExportSelected" Header="...von ausgewähltem Mitglied speichern..." IsEnabled="False"
|
||||||
|
Click="Menu_Export_ExportSelected_Click"/>
|
||||||
|
<MenuItem x:Name="Menu_Export_UploadSelected" Header="...von ausgewähltem Mitglied hochladen" IsEnabled="False"
|
||||||
|
Click="Menu_Export_UploadSelected_Click"/>
|
||||||
|
<Separator/>
|
||||||
<MenuItem x:Name="Menu_Export_ExportFilters" Header="...aus Filtern speichern..."
|
<MenuItem x:Name="Menu_Export_ExportFilters" Header="...aus Filtern speichern..."
|
||||||
Click="Menu_Export_ExportFilters_Click"/>
|
Click="Menu_Export_ExportFilters_Click"/>
|
||||||
<MenuItem x:Name="Menu_Export_UploadFilters" Header="...aus Filtern hochladen"
|
<MenuItem x:Name="Menu_Export_UploadFilters" Header="...aus Filtern hochladen"
|
||||||
|
@ -282,6 +282,13 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
private async void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
private async void MemberList_SelectionChanged(object sender, RoutedEventArgs evt) {
|
||||||
await RefreshInputs();
|
await RefreshInputs();
|
||||||
|
if (MemberList.SelectedItem is Member m) {
|
||||||
|
Menu_Export_ExportSelected.IsEnabled = !IsEditing && !IsCreating;
|
||||||
|
Menu_Export_UploadSelected.IsEnabled = !IsEditing && !IsCreating && App.Config.SyncUrl != null;
|
||||||
|
} else {
|
||||||
|
Menu_Export_ExportSelected.IsEnabled = false;
|
||||||
|
Menu_Export_UploadSelected.IsEnabled = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) {
|
private async void ActiveMemberInput_Changed(object sender, RoutedEventArgs evt) {
|
||||||
@ -551,32 +558,52 @@ namespace Elwig.Windows {
|
|||||||
await MemberService.GenerateCreditNote(m, (int)year, (int)avnr, ExportMode.Email);
|
await MemberService.GenerateCreditNote(m, (int)year, (int)avnr, ExportMode.Email);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.SaveList); }
|
private async void Menu_List_SaveActive_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.Show); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.SaveList);
|
||||||
private async void Menu_List_SavePdfActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.SavePdf); }
|
private async void Menu_List_ShowActive_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(0, ExportMode.Print); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.Show);
|
||||||
private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.SaveList); }
|
private async void Menu_List_SavePdfActive_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.Show); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.SavePdf);
|
||||||
private async void Menu_List_SavePdfFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.SavePdf); }
|
private async void Menu_List_PrintActive_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.Print); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.AllActive, ExportMode.Print);
|
||||||
private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.SaveList); }
|
private async void Menu_List_SaveFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.Show); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.SaveList);
|
||||||
private async void Menu_List_SavePdfAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.SavePdf); }
|
private async void Menu_List_ShowFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.Print); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Show);
|
||||||
|
private async void Menu_List_SavePdfFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.SavePdf);
|
||||||
|
private async void Menu_List_PrintFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Print);
|
||||||
|
private async void Menu_List_SaveAll_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.SaveList);
|
||||||
|
private async void Menu_List_ShowAll_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Show);
|
||||||
|
private async void Menu_List_SavePdfAll_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.SavePdf);
|
||||||
|
private async void Menu_List_PrintAll_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Print);
|
||||||
|
|
||||||
private async void Menu_Export_ExportAll_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(2, ExportMode.Export); }
|
private async void Menu_Export_ExportAll_Click(object sender, RoutedEventArgs evt) =>
|
||||||
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) { await ViewModel.GenerateMemberList(1, ExportMode.Export); }
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Export);
|
||||||
|
private async void Menu_Export_ExportFilters_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Export);
|
||||||
|
private async void Menu_Export_ExportSelected_Click(object sender, RoutedEventArgs evt) =>
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.Selected, ExportMode.Export);
|
||||||
|
|
||||||
private async void Menu_Export_UploadAll_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Export_UploadAll_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (App.Config.SyncUrl == null) return;
|
if (App.Config.SyncUrl == null) return;
|
||||||
await ViewModel.GenerateMemberList(2, ExportMode.Upload);
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.All, ExportMode.Upload);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void Menu_Export_UploadFilters_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Export_UploadFilters_Click(object sender, RoutedEventArgs evt) {
|
||||||
if (App.Config.SyncUrl == null) return;
|
if (App.Config.SyncUrl == null) return;
|
||||||
await ViewModel.GenerateMemberList(1, ExportMode.Upload);
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.FromFilters, ExportMode.Upload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async void Menu_Export_UploadSelected_Click(object sender, RoutedEventArgs evt) {
|
||||||
|
if (App.Config.SyncUrl == null) return;
|
||||||
|
await ViewModel.GenerateMemberList(MemberService.ExportSubject.Selected, ExportMode.Upload);
|
||||||
|
}
|
||||||
|
|
||||||
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_List_Order_Click(object sender, RoutedEventArgs evt) {
|
||||||
Menu_List.IsSubmenuOpen = true;
|
Menu_List.IsSubmenuOpen = true;
|
||||||
|
Reference in New Issue
Block a user