[#80] Elwig: Add client parameter to switch between simple and red/white business share mode
Test / Run tests (push) Successful in 2m20s
Test / Run tests (push) Successful in 2m20s
This commit is contained in:
@@ -56,6 +56,10 @@ namespace Elwig.Helpers {
|
||||
public string? EmailAddress;
|
||||
public string? Website;
|
||||
|
||||
public bool EnableMemberHistory;
|
||||
public int ModeBusinessShares;
|
||||
public bool HasRedWhite => ModeBusinessShares == 1;
|
||||
|
||||
public int ModeDeliveryNoteStats;
|
||||
public int ModeWineQualityStatistics;
|
||||
public int OrderingMemberList;
|
||||
@@ -112,6 +116,15 @@ namespace Elwig.Helpers {
|
||||
Iban = parameters.GetValueOrDefault("CLIENT_IBAN");
|
||||
OrganicAuthority = parameters.GetValueOrDefault("CLIENT_ORGANIC_AUTHORITY");
|
||||
|
||||
EnableMemberHistory = (parameters.GetValueOrDefault("ENABLE_MEMBERHISTORY")?.ToUpper()) switch {
|
||||
"1" or "TRUE" or "YES" or "JA" => true,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
switch (parameters.GetValueOrDefault("MODE_BUSINESSSHARES", "SIMPLE")?.ToUpper()) {
|
||||
case "SIMPLE": ModeBusinessShares = 0; break;
|
||||
case "RED_WHITE": ModeBusinessShares = 1; break;
|
||||
}
|
||||
switch (parameters.GetValueOrDefault("MODE_DELIVERYNOTE_STATS", "SHORT")?.ToUpper()) {
|
||||
case "NONE": ModeDeliveryNoteStats = 0; break;
|
||||
case "GA_ONLY": ModeDeliveryNoteStats = 1; break;
|
||||
@@ -189,6 +202,11 @@ namespace Elwig.Helpers {
|
||||
}
|
||||
|
||||
private IEnumerable<(string, string?)> GetParamValues() {
|
||||
string businessShares = "SIMPLE";
|
||||
switch (ModeBusinessShares) {
|
||||
case 0: businessShares = "SIMPLE"; break;
|
||||
case 1: businessShares = "RED_WHITE"; break;
|
||||
}
|
||||
string deliveryNoteStats = "SHORT";
|
||||
switch (ModeDeliveryNoteStats) {
|
||||
case 0: deliveryNoteStats = "NONE"; break;
|
||||
@@ -256,6 +274,8 @@ namespace Elwig.Helpers {
|
||||
("CLIENT_BIC", Bic),
|
||||
("CLIENT_IBAN", Iban),
|
||||
("CLIENT_ORGANIC_AUTHORITY", OrganicAuthority),
|
||||
("ENABLE_MEMBERHISTORY", EnableMemberHistory ? "YES" : "NO"),
|
||||
("MODE_BUSINESSSHARES", businessShares),
|
||||
("MODE_DELIVERYNOTE_STATS", deliveryNoteStats),
|
||||
("MODE_WINEQUALITYSTATISTICS", modeWineQualityStatistics),
|
||||
("ORDERING_MEMBERLIST", orderingMemberList),
|
||||
|
||||
@@ -53,11 +53,11 @@ namespace Elwig.Models.Dtos {
|
||||
}
|
||||
|
||||
public OverUnderDeliveryData(IEnumerable<OverUnderDeliveryRow> rows, int year, string mode) :
|
||||
base($"Über-Unterlieferungen", $"Über- und Unterlieferungen laut gezeichneten Geschäftsanteilen {(mode == "R" ? "rot" : "weiß")} {year}", rows,
|
||||
base($"Über-Unterlieferungen-{(mode == "R" ? "rot" : "weiß")}", $"Über- und Unterlieferungen laut gezeichneten Geschäftsanteilen {(mode == "R" ? "rot" : "weiß")} {year}", rows,
|
||||
mode == "R" ? FieldNamesRed : FieldNamesWhite) {
|
||||
}
|
||||
|
||||
public static async Task<OverUnderDeliveryData> ForSeason(DbSet<OverUnderDeliveryRow> table, int year) {
|
||||
public static async Task<(OverUnderDeliveryData Total, OverUnderDeliveryData Red, OverUnderDeliveryData White)> ForSeason(DbSet<OverUnderDeliveryRow> table, int year) {
|
||||
var rows = await table.FromSql($"""
|
||||
SELECT m.mgnr, m.name AS name_1,
|
||||
COALESCE(m.prefix || ' ', '') || m.given_name ||
|
||||
@@ -80,7 +80,7 @@ namespace Elwig.Models.Dtos {
|
||||
WHERE s.year = {year} AND (m.active = TRUE OR d.weight_total > 0)
|
||||
ORDER BY 100.0 * weight_total / (max_kg + max_kg_red + max_kg_white), m.mgnr
|
||||
""").ToListAsync();
|
||||
return new OverUnderDeliveryData(rows, year);
|
||||
return (new OverUnderDeliveryData(rows, year), new OverUnderDeliveryData(rows, year, "R"), new OverUnderDeliveryData(rows, year, "W"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -126,7 +126,15 @@ namespace Elwig.Services {
|
||||
|
||||
vm.EntryDate = (m.EntryDateString != null) ? string.Join(".", m.EntryDateString.Split("-").Reverse()) : null;
|
||||
vm.ExitDate = (m.ExitDateString != null) ? string.Join(".", m.ExitDateString.Split("-").Reverse()) : null;
|
||||
vm.BusinessShares = m.Shares;
|
||||
if (App.Client.HasRedWhite) {
|
||||
vm.BusinessShares1 = m.SharesRed;
|
||||
vm.BusinessShares2 = m.SharesWhite;
|
||||
vm.BusinessShares3 = m.SharesDormant + m.Shares;
|
||||
} else {
|
||||
vm.BusinessShares1 = m.Shares;
|
||||
vm.BusinessShares2 = m.SharesDormant + m.SharesRed + m.SharesWhite;
|
||||
vm.BusinessShares3 = 0;
|
||||
}
|
||||
vm.AccountingNr = m.AccountingNr;
|
||||
vm.Branch = (Branch?)ControlUtils.GetItemFromSourceWithPk(vm.BranchSource, m.ZwstId);
|
||||
vm.DefaultKg = (AT_Kg?)ControlUtils.GetItemFromSourceWithPk(vm.DefaultKgSource, m.DefaultKgNr);
|
||||
@@ -549,7 +557,10 @@ namespace Elwig.Services {
|
||||
|
||||
EntryDateString = string.IsNullOrEmpty(vm.EntryDate) ? null : string.Join("-", vm.EntryDate.Split(".").Reverse()),
|
||||
ExitDateString = string.IsNullOrEmpty(vm.ExitDate) ? null : string.Join("-", vm.ExitDate.Split(".").Reverse()),
|
||||
Shares = (int)vm.BusinessShares!,
|
||||
Shares = App.Client.HasRedWhite ? 0 : vm.BusinessShares1 ?? 0,
|
||||
SharesRed = App.Client.HasRedWhite ? vm.BusinessShares1 ?? 0 : 0,
|
||||
SharesWhite = App.Client.HasRedWhite ? vm.BusinessShares2 ?? 0 : 0,
|
||||
SharesDormant = App.Client.HasRedWhite ? vm.BusinessShares3 ?? 0 : vm.BusinessShares2 ?? 0,
|
||||
AccountingNr = string.IsNullOrEmpty(vm.AccountingNr) ? null : vm.AccountingNr,
|
||||
IsActive = vm.IsActive,
|
||||
IsVollLieferant = vm.IsVollLieferant,
|
||||
|
||||
@@ -124,10 +124,22 @@ namespace Elwig.ViewModels {
|
||||
[ObservableProperty]
|
||||
private string? _exitDate;
|
||||
[ObservableProperty]
|
||||
private string? _businessSharesString;
|
||||
public int? BusinessShares {
|
||||
get => int.TryParse(BusinessSharesString, out var shares) ? shares : null;
|
||||
set => BusinessSharesString = $"{value}";
|
||||
private string? _businessShares1String;
|
||||
public int? BusinessShares1 {
|
||||
get => int.TryParse(BusinessShares1String, out var shares) ? shares : null;
|
||||
set => BusinessShares1String = $"{value}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private string? _businessShares2String;
|
||||
public int? BusinessShares2 {
|
||||
get => int.TryParse(BusinessShares2String, out var shares) ? shares : null;
|
||||
set => BusinessShares2String = $"{value}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private string? _businessShares3String;
|
||||
public int? BusinessShares3 {
|
||||
get => int.TryParse(BusinessShares3String, out var shares) ? shares : null;
|
||||
set => BusinessShares3String = $"{value}";
|
||||
}
|
||||
[ObservableProperty]
|
||||
private string? _accountingNr;
|
||||
|
||||
@@ -541,6 +541,20 @@
|
||||
</TabItem>
|
||||
<TabItem Header="Parameter">
|
||||
<StackPanel>
|
||||
<GroupBox x:Name="ParameterBusinessShare" Header="Geschäftsanteile" Margin="10,10,10,0" VerticalAlignment="Top">
|
||||
<Grid>
|
||||
<Label Content="Modus:" Margin="10,10,10,10"/>
|
||||
<ComboBox x:Name="ParameterBusinessShareModeInput" Margin="160,10,10,10" Width="100"
|
||||
HorizontalAlignment="Left">
|
||||
<ComboBoxItem IsSelected="True">Normal</ComboBoxItem>
|
||||
<ComboBoxItem>Rot/weiß</ComboBoxItem>
|
||||
</ComboBox>
|
||||
|
||||
<Label Content="Mitgliederbewegungen:" Margin="10,40,10,10"/>
|
||||
<CheckBox x:Name="ParameterBusinessShareHistoryInput" Content="Mit Elwig erfassen" Margin="160,45,10,15"
|
||||
HorizontalAlignment="Left"/>
|
||||
</Grid>
|
||||
</GroupBox>
|
||||
<GroupBox x:Name="ParameterAreaComGroup" Header="Berechnung Flächenbindungen (aktuelle Saison)" Margin="10,10,10,0" VerticalAlignment="Top">
|
||||
<Grid>
|
||||
<CheckBox x:Name="ParameterAllowAttrIntoLowerInput" Content="Erlauben Lieferungen auch auf (konfigurierte) "schlechtere" Flächenbindungen aufzuteilen"
|
||||
|
||||
@@ -47,8 +47,8 @@ namespace Elwig.Windows {
|
||||
SeasonVatFlatrateInput.Text = (s.VatFlatrate * 100).ToString();
|
||||
SeasonStartInput.Text = $"{s.StartDate:dd.MM.yyyy}";
|
||||
SeasonEndInput.Text = $"{s.EndDate:dd.MM.yyyy}";
|
||||
SeasonMinKgPerShareInput.Text = s.MinKgPerShare.ToString();
|
||||
SeasonMaxKgPerShareInput.Text = s.MaxKgPerShare.ToString();
|
||||
SeasonMinKgPerShareInput.Text = s.MinKgPerShare?.ToString() ?? s.MinKgPerShareRed?.ToString() ?? s.MinKgPerShareWhite?.ToString() ?? "0";
|
||||
SeasonMaxKgPerShareInput.Text = s.MaxKgPerShare?.ToString() ?? s.MaxKgPerShareRed?.ToString() ?? s.MaxKgPerShareWhite?.ToString() ?? "0";
|
||||
SeasonPenaltyPerKgInput.Text = s.PenaltyPerKg?.ToString() ?? "";
|
||||
SeasonPenaltyInput.Text = s.PenaltyAmount?.ToString() ?? "";
|
||||
SeasonPenaltyNoneInput.Text = s.PenaltyNone?.ToString() ?? "";
|
||||
@@ -96,10 +96,22 @@ namespace Elwig.Windows {
|
||||
s.VatNormal = double.Parse(SeasonVatNormalInput.Text) / 100;
|
||||
if (SeasonVatFlatrateInput.Text.Length > 0)
|
||||
s.VatFlatrate = double.Parse(SeasonVatFlatrateInput.Text) / 100;
|
||||
if (SeasonMinKgPerShareInput.Text.Length > 0)
|
||||
s.MinKgPerShare = int.Parse(SeasonMinKgPerShareInput.Text);
|
||||
if (SeasonMaxKgPerShareInput.Text.Length > 0)
|
||||
s.MaxKgPerShare = int.Parse(SeasonMaxKgPerShareInput.Text);
|
||||
if (ParameterBusinessShareModeInput.SelectedIndex == 0) {
|
||||
s.MinKgPerShare = (SeasonMinKgPerShareInput.Text.Length > 0) ? int.Parse(SeasonMinKgPerShareInput.Text) : null;
|
||||
s.MaxKgPerShare = (SeasonMaxKgPerShareInput.Text.Length > 0) ? int.Parse(SeasonMaxKgPerShareInput.Text) : null;
|
||||
s.MinKgPerShareRed = null;
|
||||
s.MaxKgPerShareRed = null;
|
||||
s.MinKgPerShareWhite = null;
|
||||
s.MaxKgPerShareWhite = null;
|
||||
} else {
|
||||
s.MinKgPerShare = null;
|
||||
s.MaxKgPerShare = null;
|
||||
s.MinKgPerShareRed = (SeasonMinKgPerShareInput.Text.Length > 0) ? int.Parse(SeasonMinKgPerShareInput.Text) : null;
|
||||
s.MaxKgPerShareRed = (SeasonMaxKgPerShareInput.Text.Length > 0) ? int.Parse(SeasonMaxKgPerShareInput.Text) : null;
|
||||
s.MinKgPerShareWhite = s.MinKgPerShareRed;
|
||||
s.MaxKgPerShareWhite = s.MaxKgPerShareRed;
|
||||
}
|
||||
|
||||
s.PenaltyPerKg = (SeasonPenaltyPerKgInput.Text.Length > 0) ? decimal.Parse(SeasonPenaltyPerKgInput.Text) : null;
|
||||
s.PenaltyAmount = (SeasonPenaltyInput.Text.Length > 0) ? decimal.Parse(SeasonPenaltyInput.Text) : null;
|
||||
s.PenaltyNone = (SeasonPenaltyNoneInput.Text.Length > 0) ? decimal.Parse(SeasonPenaltyNoneInput.Text) : null;
|
||||
@@ -160,8 +172,8 @@ namespace Elwig.Windows {
|
||||
MaxKgPerHa = s?.MaxKgPerHa ?? 10000,
|
||||
VatNormal = s?.VatNormal ?? 0.10,
|
||||
VatFlatrate = s?.VatFlatrate ?? 0.13,
|
||||
MinKgPerShare = s?.MinKgPerShare ?? 500,
|
||||
MaxKgPerShare = s?.MaxKgPerShare ?? 1000,
|
||||
MinKgPerShare = s?.MinKgPerShare,
|
||||
MaxKgPerShare = s?.MaxKgPerShare,
|
||||
PenaltyPerKgValue = s?.PenaltyPerKgValue,
|
||||
PenaltyAmoutValue = s?.PenaltyAmoutValue,
|
||||
PenaltyNoneValue = s?.PenaltyNoneValue,
|
||||
@@ -181,6 +193,7 @@ namespace Elwig.Windows {
|
||||
AbsValue = m.AbsValue * mult / div,
|
||||
RelValue = m.RelValue,
|
||||
IsActive = m.IsActive,
|
||||
IsRedacted = m.IsRedacted,
|
||||
}));
|
||||
}
|
||||
await ctx.SaveChangesAsync();
|
||||
|
||||
@@ -40,6 +40,7 @@ namespace Elwig.Windows {
|
||||
WineAttributeFillLowerInput.Visibility = Visibility.Hidden;
|
||||
WineAttributeFillLowerLabel.Visibility = Visibility.Hidden;
|
||||
ParameterAreaComGroup.Header = ParameterAreaComGroup.Header.ToString()!.Split('(')[0] + $"({Utils.CurrentLastSeason})";
|
||||
LockInputs();
|
||||
}
|
||||
|
||||
protected override void ShortcutNew() { }
|
||||
@@ -92,12 +93,6 @@ namespace Elwig.Windows {
|
||||
SeasonModifierNameInput.IsReadOnly = true;
|
||||
SeasonModifierRelInput.IsReadOnly = true;
|
||||
SeasonModifierAbsInput.IsReadOnly = true;
|
||||
|
||||
ParameterAllowAttrIntoLowerInput.IsEnabled = false;
|
||||
ParameterAvoidUnderDeliveriesInput.IsEnabled = false;
|
||||
ParameterHonorGebundenInput.IsEnabled = false;
|
||||
ParameterExportEbicsVersion.IsEnabled = false;
|
||||
ParameterExportEbicsAddress.IsEnabled = false;
|
||||
}
|
||||
|
||||
new protected void UnlockInputs() {
|
||||
@@ -146,12 +141,6 @@ namespace Elwig.Windows {
|
||||
SeasonModifierNameInput.IsReadOnly = false;
|
||||
SeasonModifierRelInput.IsReadOnly = false;
|
||||
SeasonModifierAbsInput.IsReadOnly = false;
|
||||
|
||||
ParameterAllowAttrIntoLowerInput.IsEnabled = true;
|
||||
ParameterAvoidUnderDeliveriesInput.IsEnabled = true;
|
||||
ParameterHonorGebundenInput.IsEnabled = true;
|
||||
ParameterExportEbicsVersion.IsEnabled = true;
|
||||
ParameterExportEbicsAddress.IsEnabled = true;
|
||||
}
|
||||
|
||||
protected override async Task OnRenewContext(AppDbContext ctx) {
|
||||
@@ -359,6 +348,8 @@ namespace Elwig.Windows {
|
||||
TextElementDeliveryConfirmation.Text = p.TextDeliveryConfirmation;
|
||||
TextElementCreditNote.Text = p.TextCreditNote;
|
||||
|
||||
ParameterBusinessShareModeInput.SelectedIndex = p.ModeBusinessShares;
|
||||
ParameterBusinessShareHistoryInput.IsChecked = p.EnableMemberHistory;
|
||||
ParameterAllowAttrIntoLowerInput.IsChecked = s?.Billing_AllowAttrsIntoLower ?? false;
|
||||
ParameterAvoidUnderDeliveriesInput.IsChecked = s?.Billing_AvoidUnderDeliveries ?? false;
|
||||
ParameterHonorGebundenInput.IsChecked = s?.Billing_HonorGebunden ?? false;
|
||||
@@ -387,6 +378,8 @@ namespace Elwig.Windows {
|
||||
p.EmailAddress = string.IsNullOrEmpty(ClientEmailAddressInput.Text) ? null : ClientEmailAddressInput.Text;
|
||||
p.Website = string.IsNullOrEmpty(ClientWebsiteInput.Text) ? null : ClientWebsiteInput.Text;
|
||||
|
||||
p.ModeBusinessShares = ParameterBusinessShareModeInput.SelectedIndex;
|
||||
p.EnableMemberHistory = ParameterBusinessShareHistoryInput.IsChecked ?? false;
|
||||
p.TextDeliveryNote = string.IsNullOrEmpty(TextElementDeliveryNote.Text) ? null : TextElementDeliveryNote.Text;
|
||||
p.ModeDeliveryNoteStats = (ModeDeliveryNoteNone.IsChecked == true) ? 0 : (ModeDeliveryNoteGaOnly.IsChecked == true) ? 1 : (ModeDeliveryNoteShort.IsChecked == true) ? 2 : (ModeDeliveryNoteFull.IsChecked == true) ? 3 : 2;
|
||||
p.TextDeliveryConfirmation = string.IsNullOrEmpty(TextElementDeliveryConfirmation.Text) ? null : TextElementDeliveryConfirmation.Text;
|
||||
|
||||
@@ -460,7 +460,12 @@ namespace Elwig.Windows {
|
||||
var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, year);
|
||||
var tbl2 = await AreaComUnderDeliveryData.ForSeason(ctx.AreaComUnderDeliveryRows, year);
|
||||
using var ods = new OdsFile(filename);
|
||||
await ods.AddTable(tbl1);
|
||||
if (App.Client.HasRedWhite) {
|
||||
await ods.AddTable(tbl1.Red);
|
||||
await ods.AddTable(tbl1.White);
|
||||
} else {
|
||||
await ods.AddTable(tbl1.Total);
|
||||
}
|
||||
await ods.AddTable(tbl2);
|
||||
} catch (Exception exc) {
|
||||
InteractionService.ShowException(exc);
|
||||
|
||||
@@ -619,9 +619,16 @@
|
||||
Margin="0,40,10,0" Width="78" Grid.Column="1" HorizontalAlignment="Left" TextAlignment="Right"
|
||||
TextChanged="DateInput_TextChanged" LostFocus="DateInput_LostFocus"/>
|
||||
|
||||
<Label Content="Geschäftsanteile:" Margin="10,70,0,0" Grid.Column="0"/>
|
||||
<TextBox x:Name="BusinessSharesInput" Text="{Binding BusinessSharesString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="0,70,10,0" Width="48" Grid.Column="1" HorizontalAlignment="Left" TextAlignment="Right"
|
||||
<Label Content="Geschäftsanteile:" Margin="10,65,0,0" Grid.Column="0"/>
|
||||
<Label x:Name="BusinessSharesLabel" Content="(rot/weiß/ruhend)" Margin="10,78,0,0" Grid.Column="0" FontSize="10"/>
|
||||
<TextBox x:Name="BusinessShares1Input" Text="{Binding BusinessShares1String, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="0,70,10,0" Width="32" Grid.Column="1" HorizontalAlignment="Left" TextAlignment="Right"
|
||||
TextChanged="IntegerInput_TextChanged"/>
|
||||
<TextBox x:Name="BusinessShares2Input" Text="{Binding BusinessShares2String, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="37,70,10,0" Width="32" Grid.Column="1" HorizontalAlignment="Left" TextAlignment="Right"
|
||||
TextChanged="IntegerInput_TextChanged"/>
|
||||
<TextBox x:Name="BusinessShares3Input" Text="{Binding BusinessShares3String, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
Margin="74,70,10,0" Width="32" Grid.Column="1" HorizontalAlignment="Left" TextAlignment="Right"
|
||||
TextChanged="IntegerInput_TextChanged"/>
|
||||
|
||||
<Label Content="BH-Konto:" Margin="10,100,0,0" Grid.Column="0"/>
|
||||
|
||||
@@ -13,6 +13,7 @@ using Elwig.Dialogs;
|
||||
using Elwig.Services;
|
||||
using Elwig.ViewModels;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace Elwig.Windows {
|
||||
public partial class MemberAdminWindow : AdministrationWindow {
|
||||
@@ -43,7 +44,7 @@ namespace Elwig.Windows {
|
||||
RequiredInputs = [
|
||||
MgNrInput, GivenNameInput, NameInput,
|
||||
AddressInput, PlzInput, OrtInput, BillingOrtInput,
|
||||
BusinessSharesInput, BranchInput, DefaultKgInput
|
||||
BusinessShares1Input, BusinessShares2Input, BusinessShares3Input, BranchInput, DefaultKgInput
|
||||
];
|
||||
EmailAddressInputs = [
|
||||
(EmailAddress1Label, EmailAddress1Input),
|
||||
@@ -84,6 +85,24 @@ namespace Elwig.Windows {
|
||||
Menu_Export_UploadAll.IsEnabled = App.Config.SyncUrl != null;
|
||||
ViewModel.ShowOnlyActiveMembers = true;
|
||||
|
||||
if (App.Client.HasRedWhite) {
|
||||
BusinessSharesLabel.Content = "(rot/weiß/ruhend)";
|
||||
//BusinessShares1Input.Background = Brushes.MistyRose;
|
||||
BusinessShares1Input.Foreground = Brushes.DarkRed;
|
||||
BusinessShares1Input.ToolTip = "Geschäftsanteile (rot)";
|
||||
//BusinessShares2Input.Background = Brushes.MintCream;
|
||||
BusinessShares2Input.Foreground = Brushes.DarkGreen;
|
||||
BusinessShares2Input.ToolTip = "Geschäftsanteile (weiß)";
|
||||
BusinessShares3Input.Background = Brushes.WhiteSmoke;
|
||||
BusinessShares3Input.ToolTip = "Geschäftsanteile (ruhend)";
|
||||
} else {
|
||||
BusinessSharesLabel.Content = "(normal/ruhend)";
|
||||
BusinessShares1Input.ToolTip = "Geschäftsanteile (normal)";
|
||||
BusinessShares2Input.Background = Brushes.WhiteSmoke;
|
||||
BusinessShares2Input.ToolTip = "Geschäftsanteile (ruhend)";
|
||||
BusinessShares3Input.Visibility = Visibility.Hidden;
|
||||
}
|
||||
|
||||
UpdateContactInfoVisibility();
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace Elwig.Windows {
|
||||
var season = await ctx.FetchSeasons(Year).SingleAsync();
|
||||
var contracts = await ctx.AreaCommitmentTypes.ToDictionaryAsync(t => t.VtrgId, t => t);
|
||||
|
||||
var tbl1 = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, Year);
|
||||
var (tbl1, _, _) = await OverUnderDeliveryData.ForSeason(ctx.OverUnderDeliveryRows, Year);
|
||||
var tbl2 = await AreaComUnderDeliveryData.ForSeason(ctx.AreaComUnderDeliveryRows, Year);
|
||||
var weight = tbl1.Rows.ToDictionary(r => r.MgNr, r => r.WeightTotal);
|
||||
var areaComs = tbl2.Rows.ToDictionary(r => r.MgNr, r => r.VtrgIds.Zip(r.UnderDeliveries).ToDictionary(r => r.First, r => r.Second));
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
vm.Address = "Neubaugasse 1";
|
||||
vm.Plz = 2120;
|
||||
vm.Ort = vm.OrtSource.First(d => d.Ort.Name == "Wolkersdorf im Weinviertel");
|
||||
vm.BusinessShares = 1;
|
||||
vm.BusinessShares1 = 1;
|
||||
vm.DefaultKg = vm.DefaultKgSource.First(k => k.Name == "Wolkersdorf");
|
||||
|
||||
Assert.That(vm.MgNr, Is.EqualTo(205));
|
||||
@@ -63,7 +63,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
Assert.That(vm.Address, Is.EqualTo("Neubaugasse 1"));
|
||||
Assert.That(vm.Plz, Is.EqualTo(2120));
|
||||
Assert.That(vm.Ort?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel"));
|
||||
Assert.That(vm.BusinessShares, Is.EqualTo(1));
|
||||
Assert.That(vm.BusinessShares1, Is.EqualTo(1));
|
||||
Assert.That(vm.DefaultKg?.Name, Is.EqualTo("Wolkersdorf"));
|
||||
}
|
||||
}
|
||||
@@ -101,7 +101,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
vm.BillingPlz = 2120;
|
||||
vm.BillingOrt = vm.BillingOrtSource.First(d => d.Ort.Name == "Wolkersdorf im Weinviertel");
|
||||
|
||||
vm.BusinessShares = 10;
|
||||
vm.BusinessShares1 = 10;
|
||||
vm.AccountingNr = "330999";
|
||||
vm.DefaultKg = vm.DefaultKgSource.First(k => k.Name == "Wolkersdorf");
|
||||
vm.Comment = "Ich bin eine Anmerkung";
|
||||
@@ -202,7 +202,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
Assert.That(vm.BillingPlz, Is.EqualTo(2120));
|
||||
Assert.That(vm.BillingOrt?.Ort.Name, Is.EqualTo("Wolkersdorf im Weinviertel"));
|
||||
|
||||
Assert.That(vm.BusinessShares, Is.EqualTo(10));
|
||||
Assert.That(vm.BusinessShares1, Is.EqualTo(10));
|
||||
Assert.That(vm.AccountingNr, Is.EqualTo("330999"));
|
||||
Assert.That(vm.DefaultKg?.Name, Is.EqualTo("Wolkersdorf"));
|
||||
Assert.That(vm.Comment, Is.EqualTo("Ich bin eine Anmerkung"));
|
||||
|
||||
Reference in New Issue
Block a user