DeliveryNote: Make stats changeable in BaseDataWindow

This commit is contained in:
2023-10-10 19:19:29 +02:00
parent 91a3786cd9
commit 7d8c670ed2
5 changed files with 65 additions and 5 deletions

View File

@ -10,10 +10,10 @@ namespace Elwig.Documents {
public IEnumerable<(string, string, int, int, int)> MemberBuckets; public IEnumerable<(string, string, int, int, int)> MemberBuckets;
// 0 - none // 0 - none
// 1 - only business shares // 1 - GA only
// 2 - only business shares and area commitments of varieties from delivery note // 2 - GA only and area commitments of varieties from delivery note
// 3 - full // 3 - full
public int DisplayStats = 2; public int DisplayStats = App.Client.ModeDeliveryNoteStats;
public DeliveryNote(Delivery d, AppDbContext ctx) : base($"Traubenübernahmeschein Nr. {d.LsNr}", d.Member) { public DeliveryNote(Delivery d, AppDbContext ctx) : base($"Traubenübernahmeschein Nr. {d.LsNr}", d.Member) {
UseBillingAddress = true; UseBillingAddress = true;

View File

@ -58,6 +58,11 @@ table.delivery-stats {
break-after: avoid; break-after: avoid;
} }
table.delivery-stats th,
table.delivery-stats td {
padding: 0.125mm 0;
}
table.delivery-stats:not(.expanded) tr.optional { table.delivery-stats:not(.expanded) tr.optional {
display: none; display: none;
} }
@ -66,8 +71,8 @@ table.delivery-stats tr.subheading th {
text-align: left; text-align: left;
} }
table.delivery.expanded tr.subheading:not(:has(~ tr)), table.delivery-stats.expanded tr.subheading:not(:has(~ tr)),
table.delivery tr.subheading:not(:has(~ tr:not(.optional))) { table.delivery-stats tr.subheading:not(:has(~ tr:not(.optional))) {
display: none; display: none;
} }

View File

@ -55,6 +55,8 @@ namespace Elwig.Helpers {
public decimal VatReduced; public decimal VatReduced;
public decimal VatFlatRate; public decimal VatFlatRate;
public int ModeDeliveryNoteStats;
public string? TextDeliveryNote; public string? TextDeliveryNote;
public ClientParameters(AppDbContext ctx) : this(ctx.ClientParameters.ToDictionary(e => e.Param, e => e.Value)) { } public ClientParameters(AppDbContext ctx) : this(ctx.ClientParameters.ToDictionary(e => e.Param, e => e.Value)) { }
@ -89,6 +91,13 @@ namespace Elwig.Helpers {
VatReduced = decimal.Parse((parameters["VAT_REDUCED"] ?? "").Replace(".", ",")); VatReduced = decimal.Parse((parameters["VAT_REDUCED"] ?? "").Replace(".", ","));
VatFlatRate = decimal.Parse((parameters["VAT_FLATRATE"] ?? "").Replace(".", ",")); VatFlatRate = decimal.Parse((parameters["VAT_FLATRATE"] ?? "").Replace(".", ","));
switch (parameters.GetValueOrDefault("MODE_DELIVERYNOTE_STATS", "SHORT")?.ToUpper()) {
case "NONE": ModeDeliveryNoteStats = 0; break;
case "GA_ONLY": ModeDeliveryNoteStats = 1; break;
case "SHORT": ModeDeliveryNoteStats = 2; break;
case "FULL": ModeDeliveryNoteStats = 3; break;
}
Sender2 = parameters.GetValueOrDefault("DOCUMENT_SENDER") ?? ""; Sender2 = parameters.GetValueOrDefault("DOCUMENT_SENDER") ?? "";
TextDeliveryNote = parameters.GetValueOrDefault("TEXT_DELIVERYNOTE"); TextDeliveryNote = parameters.GetValueOrDefault("TEXT_DELIVERYNOTE");
} catch { } catch {
@ -97,6 +106,13 @@ namespace Elwig.Helpers {
} }
private IEnumerable<(string, string?)> GetParamValues() { private IEnumerable<(string, string?)> GetParamValues() {
string deliveryNoteStats = "SHORT";
switch (ModeDeliveryNoteStats) {
case 0: deliveryNoteStats = "NONE"; break;
case 1: deliveryNoteStats = "GA_ONLY"; break;
case 2: deliveryNoteStats = "SHORT"; break;
case 3: deliveryNoteStats = "FULL"; break;
}
return new (string, string?)[] { return new (string, string?)[] {
("CLIENT_NAME_TOKEN", NameToken), ("CLIENT_NAME_TOKEN", NameToken),
("CLIENT_NAME_SHORT", NameShort), ("CLIENT_NAME_SHORT", NameShort),
@ -119,6 +135,7 @@ namespace Elwig.Helpers {
("VAT_NORMAL", VatNormal.ToString().Replace(",", ".")), ("VAT_NORMAL", VatNormal.ToString().Replace(",", ".")),
("VAT_REDUCED", VatReduced.ToString().Replace(",", ".")), ("VAT_REDUCED", VatReduced.ToString().Replace(",", ".")),
("VAT_FLATRATE", VatFlatRate.ToString().Replace(",", ".")), ("VAT_FLATRATE", VatFlatRate.ToString().Replace(",", ".")),
("MODE_DELIVERYNOTE_STATS", deliveryNoteStats),
("DOCUMENT_SENDER", Sender2), ("DOCUMENT_SENDER", Sender2),
("TEXT_DELIVERYNOTE", TextDeliveryNote), ("TEXT_DELIVERYNOTE", TextDeliveryNote),
}; };

View File

@ -215,7 +215,34 @@
</TabItem> </TabItem>
<TabItem Header="Textelemente"> <TabItem Header="Textelemente">
<ScrollViewer VerticalScrollBarVisibility="Visible">
<StackPanel>
<GroupBox Header="Lieferschein" Margin="10,10,10,10" Height="180">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="370"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="TextElementDeliveryNote" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="10,10,10,10" Height="Auto"
TextChanged="TextBox_TextChanged"/>
<GroupBox Grid.Column="1" Header="Tabelle zur Gesamtlieferung" Margin="10,10,10,10" VerticalAlignment="Center">
<StackPanel Margin="5,5,0,5">
<RadioButton GroupName="ModeDeliveryNote" x:Name="ModeDeliveryNoteNone" Content="Verbergen"
Checked="RadioButton_Changed" Unchecked="RadioButton_Changed"/>
<RadioButton GroupName="ModeDeliveryNote" x:Name="ModeDeliveryNoteGaOnly" Content="Nur Gesamtlieferung lt. Geschäftsanteilen anzeigen"
Checked="RadioButton_Changed" Unchecked="RadioButton_Changed"/>
<RadioButton GroupName="ModeDeliveryNote" x:Name="ModeDeliveryNoteShort" Content="Nur Gesamtlieferung und Flächenbindungen von auf dem&#xA;Lieferschein angeführten Sorten anzeigen"
Checked="RadioButton_Changed" Unchecked="RadioButton_Changed"/>
<RadioButton GroupName="ModeDeliveryNote" x:Name="ModeDeliveryNoteFull" Content="Vollständig anzeigen"
Checked="RadioButton_Changed" Unchecked="RadioButton_Changed"/>
</StackPanel>
</GroupBox>
</Grid>
</GroupBox>
</StackPanel>
</ScrollViewer>
</TabItem> </TabItem>
</TabControl> </TabControl>

View File

@ -201,6 +201,14 @@ namespace Elwig.Windows {
ClientEmailAddressInput.Text = p.EmailAddress; ClientEmailAddressInput.Text = p.EmailAddress;
ClientWebsiteInput.Text = p.Website; ClientWebsiteInput.Text = p.Website;
TextElementDeliveryNote.Text = p.TextDeliveryNote;
switch (p.ModeDeliveryNoteStats) {
case 0: ModeDeliveryNoteNone.IsChecked = true; break;
case 1: ModeDeliveryNoteGaOnly.IsChecked = true; break;
case 2: ModeDeliveryNoteShort.IsChecked = true; break;
case 3: ModeDeliveryNoteFull.IsChecked = true; break;
}
FinishInputFilling(); FinishInputFilling();
} }
@ -222,6 +230,9 @@ namespace Elwig.Windows {
p.EmailAddress = ClientEmailAddressInput.Text.Length > 0 ? ClientEmailAddressInput.Text : null; p.EmailAddress = ClientEmailAddressInput.Text.Length > 0 ? ClientEmailAddressInput.Text : null;
p.Website = ClientWebsiteInput.Text.Length > 0 ? ClientWebsiteInput.Text : null; p.Website = ClientWebsiteInput.Text.Length > 0 ? ClientWebsiteInput.Text : null;
p.TextDeliveryNote = TextElementDeliveryNote.Text.Length > 0 ? TextElementDeliveryNote.Text : null;
p.ModeDeliveryNoteStats = (ModeDeliveryNoteNone.IsChecked == true) ? 0 : (ModeDeliveryNoteGaOnly.IsChecked == true) ? 1 : (ModeDeliveryNoteShort.IsChecked == true) ? 2 : (ModeDeliveryNoteFull.IsChecked == true) ? 3 : 2;
await p.UpdateValues(); await p.UpdateValues();
} }