DeliveryAdminWindow: Add export option for BKI
This commit is contained in:
@ -6,7 +6,7 @@ using System;
|
||||
|
||||
namespace Elwig.Helpers.Export {
|
||||
|
||||
using Row = Tuple<(string, string?, string?, string?, string, int, string, int), (string, int, string, string, string, int, string, double, double)>;
|
||||
using Row = Tuple<(string?, string?, string?, string?, string, int, string, int), (string, int, string, string, string, int, string, double, double)>;
|
||||
|
||||
public class Bki : Csv<Row> {
|
||||
|
||||
@ -38,7 +38,7 @@ namespace Elwig.Helpers.Export {
|
||||
List<Row> rows = new();
|
||||
while (await r.ReadAsync()) {
|
||||
rows.Add(new(
|
||||
(r.GetString(0), r.IsDBNull(1) ? null : r.GetString(1), r.IsDBNull(2) ? null : r.GetString(2), r.IsDBNull(3) ? null : r.GetString(3), r.GetString(4), r.GetInt32(5), r.GetString(6), r.GetInt32(7)),
|
||||
(r.IsDBNull(0) ? null : r.GetString(0), r.IsDBNull(1) ? null : r.GetString(1), r.IsDBNull(2) ? null : r.GetString(2), r.IsDBNull(3) ? null : r.GetString(3), r.GetString(4), r.GetInt32(5), r.GetString(6), r.GetInt32(7)),
|
||||
(r.GetString(8), r.GetInt32(9), r.GetString(10), r.GetString(11), r.GetString(12), r.GetInt32(13), r.GetString(14), r.GetDouble(15), r.GetDouble(16))
|
||||
));
|
||||
}
|
||||
|
@ -305,7 +305,7 @@ namespace Elwig.Helpers {
|
||||
}
|
||||
|
||||
public static (string, string?) SplitName(string fullName, string? familyName) {
|
||||
if (familyName == null) return (fullName, null);
|
||||
if (familyName == null || familyName == "") return (fullName, null);
|
||||
var p0 = fullName.ToLower().IndexOf(familyName.ToLower());
|
||||
if (p0 == -1) return (fullName, null);
|
||||
var p1 = fullName.IndexOf(" und ");
|
||||
|
@ -65,8 +65,7 @@
|
||||
Click="Menu_Print_PrintDeliveryNote_Click"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Exportieren">
|
||||
<MenuItem x:Name="Menu_Export_Bki" Header="Traubentransportscheinliste (BKI)"
|
||||
Click="Menu_Export_Bki_Click"/>
|
||||
<MenuItem x:Name="Menu_Export_Bki" Header="Traubentransportscheinliste (BKI)"/>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Werkzeuge">
|
||||
<MenuItem Header="Alle Lieferscheine überprüfen"/>
|
||||
|
@ -1,8 +1,10 @@
|
||||
using Elwig.Documents;
|
||||
using Elwig.Helpers;
|
||||
using Elwig.Helpers.Export;
|
||||
using Elwig.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -118,8 +120,20 @@ namespace Elwig.Windows {
|
||||
await doc.Print();
|
||||
}
|
||||
|
||||
private void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) {
|
||||
// TODO export Traubentransportscheinliste
|
||||
private async void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) {
|
||||
if (sender is not MenuItem m) return;
|
||||
var year = int.Parse(m.Header.ToString()?.Split(" ")[^1] ?? Utils.CurrentLastSeason.ToString());
|
||||
var d = new SaveFileDialog() {
|
||||
FileName = $"{App.Client.NameToken}-Traubentransportscheinliste-{year}",
|
||||
DefaultExt = Bki.FileExtension,
|
||||
Title = $"Traubentransportscheinliste (BKI) speichern unter - Elwig"
|
||||
};
|
||||
if (d.ShowDialog() == true) {
|
||||
Mouse.OverrideCursor = Cursors.Wait;
|
||||
using var file = new Bki(d.FileName);
|
||||
await file.ExportAsync(year);
|
||||
Mouse.OverrideCursor = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnSecondPassed(object? sender, EventArgs? evt) {
|
||||
@ -386,6 +400,15 @@ namespace Elwig.Windows {
|
||||
Title = $"Lieferungen - {Member.AdministrativeName} - Elwig";
|
||||
}
|
||||
|
||||
Menu_Export_Bki.Items.Clear();
|
||||
foreach (var s in await Context.Seasons.OrderByDescending(s => s.Year).ToListAsync()) {
|
||||
var i = new MenuItem {
|
||||
Header = $"Season {s.Year}",
|
||||
};
|
||||
i.Click += Menu_Export_Bki_Click;
|
||||
Menu_Export_Bki.Items.Add(i);
|
||||
}
|
||||
|
||||
await RefreshDeliveryList();
|
||||
var d = DeliveryList.SelectedItem as Delivery;
|
||||
var y = d?.Year ?? Utils.CurrentLastSeason;
|
||||
|
Reference in New Issue
Block a user