DeliveryAdminWindow: Fix creation of new deliveries
All checks were successful
Test / Run tests (push) Successful in 2m2s
All checks were successful
Test / Run tests (push) Successful in 2m2s
This commit is contained in:
@@ -218,7 +218,8 @@ namespace Elwig {
|
|||||||
MainDispatcher.Invoke(() => {
|
MainDispatcher.Invoke(() => {
|
||||||
foreach (Window w in CurrentApp.Windows) {
|
foreach (Window w in CurrentApp.Windows) {
|
||||||
if (w is not ContextWindow c) continue;
|
if (w is not ContextWindow c) continue;
|
||||||
MainDispatcher.BeginInvoke(c.HintContextChange);
|
MainDispatcher.Invoke(c.HintContextChange);
|
||||||
|
MainDispatcher.BeginInvoke(c.TryContextReload);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,11 +30,19 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async void ForceContextReload(object sender, EventArgs evt) {
|
public async void ForceContextReload(object sender, EventArgs evt) {
|
||||||
await HintContextChange();
|
await ForceContextReload();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task HintContextChange() {
|
public async Task ForceContextReload() {
|
||||||
|
HintContextChange();
|
||||||
|
await TryContextReload();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HintContextChange() {
|
||||||
_renewPending = true;
|
_renewPending = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task TryContextReload() {
|
||||||
if (LockContext) return;
|
if (LockContext) return;
|
||||||
await EnsureContextRenewed();
|
await EnsureContextRenewed();
|
||||||
}
|
}
|
||||||
@@ -49,9 +57,9 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
protected async Task EnsureContextRenewed() {
|
protected async Task EnsureContextRenewed() {
|
||||||
if (!_renewPending) return;
|
if (!_renewPending) return;
|
||||||
|
_renewPending = false;
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
await OnRenewContext(ctx);
|
await OnRenewContext(ctx);
|
||||||
_renewPending = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual protected async Task OnInit(AppDbContext ctx) { }
|
virtual protected async Task OnInit(AppDbContext ctx) { }
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ namespace Elwig.Windows {
|
|||||||
var cursor = Mouse.OverrideCursor != null;
|
var cursor = Mouse.OverrideCursor != null;
|
||||||
if (!cursor) Mouse.OverrideCursor = Cursors.Wait;
|
if (!cursor) Mouse.OverrideCursor = Cursors.Wait;
|
||||||
var query = (vm.SearchQuery, vm.FilterSeason, vm.FilterAllSeasons, vm.FilterTodayOnly);
|
var query = (vm.SearchQuery, vm.FilterSeason, vm.FilterAllSeasons, vm.FilterTodayOnly);
|
||||||
var (filter, deliveries, deliveryPartsNum, varieties, stat) = await Task.Run(async () => {
|
var (filter, deliveries, deliveryPartsNum, varieties, members, stat) = await Task.Run(async () => {
|
||||||
using var ctx = new AppDbContext();
|
using var ctx = new AppDbContext();
|
||||||
var (_, deliveryQuery, deliveryPartsQuery, predicate, filter) = await vm.GetFilters(ctx);
|
var (_, deliveryQuery, deliveryPartsQuery, predicate, filter) = await vm.GetFilters(ctx);
|
||||||
var deliveries = await deliveryQuery
|
var deliveries = await deliveryQuery
|
||||||
@@ -452,9 +452,10 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
var deliveryPartsNum = await deliveryPartsQuery.CountAsync();
|
var deliveryPartsNum = await deliveryPartsQuery.CountAsync();
|
||||||
var varieties = await deliveryPartsQuery.Select(d => d.SortId).Distinct().ToListAsync();
|
var varieties = await deliveryPartsQuery.Select(d => d.SortId).Distinct().ToListAsync();
|
||||||
|
var members = await deliveryQuery.Select(d => d.Member).Distinct().ToListAsync();
|
||||||
var stat = await DeliveryService.GenerateToolTipData(deliveryPartsQuery);
|
var stat = await DeliveryService.GenerateToolTipData(deliveryPartsQuery);
|
||||||
|
|
||||||
return (filter, deliveries, deliveryPartsNum, varieties, stat);
|
return (filter, deliveries, deliveryPartsNum, varieties, members, stat);
|
||||||
});
|
});
|
||||||
if (!cursor) Mouse.OverrideCursor = null;
|
if (!cursor) Mouse.OverrideCursor = null;
|
||||||
if (query != (ViewModel.SearchQuery, ViewModel.FilterSeason, ViewModel.FilterAllSeasons, ViewModel.FilterTodayOnly)) return;
|
if (query != (ViewModel.SearchQuery, ViewModel.FilterSeason, ViewModel.FilterAllSeasons, ViewModel.FilterTodayOnly)) return;
|
||||||
@@ -463,7 +464,6 @@ namespace Elwig.Windows {
|
|||||||
DeliveryList_SelectionChanged, ViewModel.TextFilter.Count > 0 ? ControlUtils.RenewSourceDefault.IfOnly : ControlUtils.RenewSourceDefault.None, !updateSort);
|
DeliveryList_SelectionChanged, ViewModel.TextFilter.Count > 0 ? ControlUtils.RenewSourceDefault.IfOnly : ControlUtils.RenewSourceDefault.None, !updateSort);
|
||||||
await RefreshDeliveryParts();
|
await RefreshDeliveryParts();
|
||||||
|
|
||||||
var members = deliveries.Select(d => d.Member).DistinctBy(m => m.MgNr).ToList();
|
|
||||||
ViewModel.StatusMembers = $"{members.Count:N0}" + (members.Count > 0 && members.Count <= 4 ? $" ({string.Join(", ", members.Select(m => m.AdministrativeName))})" : "");
|
ViewModel.StatusMembers = $"{members.Count:N0}" + (members.Count > 0 && members.Count <= 4 ? $" ({string.Join(", ", members.Select(m => m.AdministrativeName))})" : "");
|
||||||
ViewModel.StatusDeliveries = $"{deliveries.Count:N0}";
|
ViewModel.StatusDeliveries = $"{deliveries.Count:N0}";
|
||||||
|
|
||||||
@@ -576,7 +576,6 @@ namespace Elwig.Windows {
|
|||||||
UpdateRdInput();
|
UpdateRdInput();
|
||||||
if (IsCreating) await UpdateLsNr();
|
if (IsCreating) await UpdateLsNr();
|
||||||
|
|
||||||
await RefreshDeliveryParts();
|
|
||||||
RefreshInputs();
|
RefreshInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -824,11 +823,12 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EmptyScale();
|
EmptyScale();
|
||||||
|
|
||||||
await EnsureContextRenewed();
|
await EnsureContextRenewed();
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
ControlUtils.SelectItem(DeliveryList, p?.Delivery);
|
ControlUtils.SelectItemWithPk(DeliveryList, p?.Year, p?.DId);
|
||||||
DeliveryPartList.SelectedItem = null;
|
DeliveryPartList.SelectedItem = null;
|
||||||
DeliveryPartList.ScrollIntoView(DeliveryPartList.ItemsSource.Cast<object>().Last());
|
DeliveryPartList.ScrollIntoView(DeliveryPartList.ItemsSource.Cast<object>().LastOrDefault());
|
||||||
InitialInputs();
|
InitialInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -861,25 +861,21 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EmptyScale();
|
EmptyScale();
|
||||||
await EnsureContextRenewed();
|
|
||||||
if (p?.Delivery != null) {
|
|
||||||
try {
|
|
||||||
using var ctx = new AppDbContext();
|
|
||||||
using var doc = new DeliveryNote((await ctx.Deliveries.FindAsync(p.Year, p.DId))!, ctx);
|
|
||||||
await doc.Generate();
|
|
||||||
if (App.Config.Debug) {
|
|
||||||
doc.Show();
|
|
||||||
} else {
|
|
||||||
await doc.Print(2);
|
|
||||||
}
|
|
||||||
} catch (Exception exc) {
|
|
||||||
MessageBox.Show(exc.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Utils.RunBackground("Lieferschein drucken", async () => {
|
||||||
|
using var ctx = new AppDbContext();
|
||||||
|
using var doc = new DeliveryNote((await ctx.Deliveries.FindAsync(p.Year, p.DId))!, ctx);
|
||||||
|
await doc.Generate();
|
||||||
|
if (App.Config.Debug) {
|
||||||
|
doc.Show();
|
||||||
|
} else {
|
||||||
|
await doc.Print(2);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await EnsureContextRenewed();
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
DeliveryList.SelectedItem = null;
|
DeliveryList.SelectedItem = null;
|
||||||
await EnsureContextRenewed();
|
|
||||||
InitInputs();
|
InitInputs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -214,7 +214,7 @@ namespace Elwig.Windows {
|
|||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
ControlUtils.SelectItemWithPk(WbKgs, k.KgNr);
|
ControlUtils.SelectItemWithPk(WbKgs, k.KgNr);
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
await HintContextChange();
|
await ForceContextReload();
|
||||||
var str = "Der Eintrag konnte nicht aus der Datenbank gelöscht werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht aus der Datenbank gelöscht werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Katastralgemeinde deaktivieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Katastralgemeinde deaktivieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
|||||||
@@ -256,13 +256,13 @@ namespace Elwig.Windows {
|
|||||||
await ViewModel.UpdatePaymentVariant(v.Year, v.AvNr);
|
await ViewModel.UpdatePaymentVariant(v.Year, v.AvNr);
|
||||||
App.HintContextChange();
|
App.HintContextChange();
|
||||||
} catch (Exception exc) {
|
} catch (Exception exc) {
|
||||||
await HintContextChange();
|
await ForceContextReload();
|
||||||
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
var str = "Der Eintrag konnte nicht in der Datenbank aktualisiert werden!\n\n" + exc.Message;
|
||||||
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
if (exc.InnerException != null) str += "\n\n" + exc.InnerException.Message;
|
||||||
MessageBox.Show(str, "Auszahlungsvariante aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
MessageBox.Show(str, "Auszahlungsvariante aktualisieren", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
}
|
}
|
||||||
Mouse.OverrideCursor = null;
|
Mouse.OverrideCursor = null;
|
||||||
await HintContextChange();
|
await EnsureContextRenewed();
|
||||||
CommentInput_TextChanged(null, null);
|
CommentInput_TextChanged(null, null);
|
||||||
DateInput_TextChanged(null, null);
|
DateInput_TextChanged(null, null);
|
||||||
TransferDateInput_TextChanged(null, null);
|
TransferDateInput_TextChanged(null, null);
|
||||||
|
|||||||
Reference in New Issue
Block a user