DeliveryAdminWindow: Add export option for BKI
This commit is contained in:
@ -6,7 +6,7 @@ using System;
|
|||||||
|
|
||||||
namespace Elwig.Helpers.Export {
|
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> {
|
public class Bki : Csv<Row> {
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ namespace Elwig.Helpers.Export {
|
|||||||
List<Row> rows = new();
|
List<Row> rows = new();
|
||||||
while (await r.ReadAsync()) {
|
while (await r.ReadAsync()) {
|
||||||
rows.Add(new(
|
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))
|
(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) {
|
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());
|
var p0 = fullName.ToLower().IndexOf(familyName.ToLower());
|
||||||
if (p0 == -1) return (fullName, null);
|
if (p0 == -1) return (fullName, null);
|
||||||
var p1 = fullName.IndexOf(" und ");
|
var p1 = fullName.IndexOf(" und ");
|
||||||
|
@ -65,8 +65,7 @@
|
|||||||
Click="Menu_Print_PrintDeliveryNote_Click"/>
|
Click="Menu_Print_PrintDeliveryNote_Click"/>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Exportieren">
|
<MenuItem Header="Exportieren">
|
||||||
<MenuItem x:Name="Menu_Export_Bki" Header="Traubentransportscheinliste (BKI)"
|
<MenuItem x:Name="Menu_Export_Bki" Header="Traubentransportscheinliste (BKI)"/>
|
||||||
Click="Menu_Export_Bki_Click"/>
|
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem Header="Werkzeuge">
|
<MenuItem Header="Werkzeuge">
|
||||||
<MenuItem Header="Alle Lieferscheine überprüfen"/>
|
<MenuItem Header="Alle Lieferscheine überprüfen"/>
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
using Elwig.Documents;
|
using Elwig.Documents;
|
||||||
using Elwig.Helpers;
|
using Elwig.Helpers;
|
||||||
|
using Elwig.Helpers.Export;
|
||||||
using Elwig.Models;
|
using Elwig.Models;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||||||
|
using Microsoft.Win32;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -118,8 +120,20 @@ namespace Elwig.Windows {
|
|||||||
await doc.Print();
|
await doc.Print();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) {
|
private async void Menu_Export_Bki_Click(object sender, RoutedEventArgs evt) {
|
||||||
// TODO export Traubentransportscheinliste
|
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) {
|
private void OnSecondPassed(object? sender, EventArgs? evt) {
|
||||||
@ -386,6 +400,15 @@ namespace Elwig.Windows {
|
|||||||
Title = $"Lieferungen - {Member.AdministrativeName} - Elwig";
|
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();
|
await RefreshDeliveryList();
|
||||||
var d = DeliveryList.SelectedItem as Delivery;
|
var d = DeliveryList.SelectedItem as Delivery;
|
||||||
var y = d?.Year ?? Utils.CurrentLastSeason;
|
var y = d?.Year ?? Utils.CurrentLastSeason;
|
||||||
|
Reference in New Issue
Block a user