DeliveryNote: Rework according to Herbert
This commit is contained in:
		| @@ -5,9 +5,6 @@ | |||||||
| <link rel="stylesheet" href="file:///@Raw(Model.DataPath)\resources\style-deliverynote.css" /> | <link rel="stylesheet" href="file:///@Raw(Model.DataPath)\resources\style-deliverynote.css" /> | ||||||
| <main> | <main> | ||||||
| <h1>@Model.Title</h1> | <h1>@Model.Title</h1> | ||||||
| @{ |  | ||||||
|     bool displayStats = true;  // Model.Delivery.Year == Model.CurrentNextSeason |  | ||||||
| } |  | ||||||
| <script> | <script> | ||||||
|     document.addEventListener("DOMContentLoaded", () => { |     document.addEventListener("DOMContentLoaded", () => { | ||||||
|         const hidden = document.getElementsByClassName("hidden")[0]; |         const hidden = document.getElementsByClassName("hidden")[0]; | ||||||
| @@ -113,9 +110,9 @@ | |||||||
| @if (Model.Delivery.Comment != null) { | @if (Model.Delivery.Comment != null) { | ||||||
|     <p class="comment">Amerkung zur Lieferung: @Model.Delivery.Comment</p> |     <p class="comment">Amerkung zur Lieferung: @Model.Delivery.Comment</p> | ||||||
| } | } | ||||||
| @if (displayStats) { | @if (Model.DisplayStats > 0) { | ||||||
|     <div id="delivery-stats"> |     <div id="delivery-stats"> | ||||||
|         <table class="delivery-stats"> |         <table class="delivery-stats @(Model.DisplayStats > 2 ? "expanded" : "")"> | ||||||
|             <colgroup> |             <colgroup> | ||||||
|                 <col style="width: 45mm;"/> |                 <col style="width: 45mm;"/> | ||||||
|                 <col style="width: 20mm;"/> |                 <col style="width: 20mm;"/> | ||||||
| @@ -150,9 +147,13 @@ | |||||||
|                     var buckets = Model.MemberBuckets.GroupBy(b => b.Item1[..2]).ToDictionary(g => g.Key, g => g.Count()); |                     var buckets = Model.MemberBuckets.GroupBy(b => b.Item1[..2]).ToDictionary(g => g.Key, g => g.Count()); | ||||||
|                 } |                 } | ||||||
|                 <tr> |                 <tr> | ||||||
|                     <th>Gesamtlieferung</th> |                     <th>Gesamtlieferung lt. gez. GA</th> | ||||||
|                     @Raw(FormatRow(Model.Member.DeliveryObligation, Model.Member.DeliveryRight, Model.Member.Deliveries.Where(d => d.Year == Model.Delivery.Year).Sum(d => d.Weight))) |                     @Raw(FormatRow(Model.Member.DeliveryObligation, Model.Member.DeliveryRight, Model.Member.Deliveries.Where(d => d.Year == Model.Delivery.Year).Sum(d => d.Weight))) | ||||||
|                 </tr> |                 </tr> | ||||||
|  |                 @if (Model.DisplayStats > 1) { | ||||||
|  |                     <tr class="subheading"> | ||||||
|  |                         <th>Flächenbindungen:</th> | ||||||
|  |                     </tr> | ||||||
|                     @foreach (var (id, name, right, obligation, sum) in Model.MemberBuckets.OrderBy(b => b.Item1)) { |                     @foreach (var (id, name, right, obligation, sum) in Model.MemberBuckets.OrderBy(b => b.Item1)) { | ||||||
|                         if (right > 0 || obligation > 0 || (sum > 0 && buckets[id[..2]] > 1 && !id.EndsWith('_'))) { |                         if (right > 0 || obligation > 0 || (sum > 0 && buckets[id[..2]] > 1 && !id.EndsWith('_'))) { | ||||||
|                             <tr class="@(sortids.Contains(id[..2]) ? "" : "optional")"> |                             <tr class="@(sortids.Contains(id[..2]) ? "" : "optional")"> | ||||||
| @@ -161,6 +162,7 @@ | |||||||
|                             </tr> |                             </tr> | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  |                 } | ||||||
|             </tbody> |             </tbody> | ||||||
|         </table> |         </table> | ||||||
|     </div> |     </div> | ||||||
|   | |||||||
| @@ -9,6 +9,12 @@ namespace Elwig.Documents { | |||||||
|         public string? Text; |         public string? Text; | ||||||
|         public IEnumerable<(string, string, int, int, int)> MemberBuckets; |         public IEnumerable<(string, string, int, int, int)> MemberBuckets; | ||||||
|  |  | ||||||
|  |         // 0 - none | ||||||
|  |         // 1 - only business shares | ||||||
|  |         // 2 - only business shares and area commitments of varieties from delivery note | ||||||
|  |         // 3 - full | ||||||
|  |         public int DisplayStats = 2; | ||||||
|  |  | ||||||
|         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; | ||||||
|             ShowDateAndLocation = true; |             ShowDateAndLocation = true; | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ namespace Elwig.Documents { | |||||||
|             CurrentNextSeason = Utils.CurrentNextSeason; |             CurrentNextSeason = Utils.CurrentNextSeason; | ||||||
|             Title = title; |             Title = title; | ||||||
|             Author = c.NameFull; |             Author = c.NameFull; | ||||||
|             Header = $"<div class='name'>{c.Name}</div><div class='suffix'>{c.NameSuffix}</div>"; |             Header = $"<div class='name'>{c.Name}</div><div class='suffix'>{c.NameSuffix}</div><div class='type'>{c.NameTypeFull}</div>"; | ||||||
|             Footer = Utils.GenerateFooter("<br/>", " \u00b7 ") |             Footer = Utils.GenerateFooter("<br/>", " \u00b7 ") | ||||||
|                 .Item(c.NameFull).NextLine() |                 .Item(c.NameFull).NextLine() | ||||||
|                 .Item(c.Address).Item($"{c.Plz} {c.Ort}").Item("Österreich").Item("Tel.", c.PhoneNr).Item("Fax", c.FaxNr).NextLine() |                 .Item(c.Address).Item($"{c.Plz} {c.Ort}").Item("Österreich").Item("Tel.", c.PhoneNr).Item("Fax", c.FaxNr).NextLine() | ||||||
|   | |||||||
| @@ -74,6 +74,15 @@ table.delivery-stats:not(.expanded) tr.optional { | |||||||
|     display: none; |     display: none; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | table.delivery-stats tr.subheading th { | ||||||
|  |     text-align: left; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | table.delivery.expanded tr.subheading:not(:has(~ tr)), | ||||||
|  | table.delivery tr.subheading:not(:has(~ tr:not(.optional))) { | ||||||
|  |     display: none; | ||||||
|  | } | ||||||
|  |  | ||||||
| table.delivery-stats thead th { | table.delivery-stats thead th { | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|     font-style: italic; |     font-style: italic; | ||||||
|   | |||||||
| @@ -40,15 +40,20 @@ header { | |||||||
|  |  | ||||||
| header .name { | header .name { | ||||||
|     font-size: 18pt; |     font-size: 18pt; | ||||||
|     margin-top: 10mm; |     margin-top: 8mm; | ||||||
|     font-weight: bold; |     font-weight: bold; | ||||||
| } | } | ||||||
|  |  | ||||||
| header .suffix { | header .suffix { | ||||||
|     font-size: 12pt; |     font-size: 14pt; | ||||||
|     font-weight: bold; |     font-weight: bold; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | header .type { | ||||||
|  |     font-size: 12pt; | ||||||
|  |     font-weight: normal; | ||||||
|  | } | ||||||
|  |  | ||||||
| .footer-wrapper { | .footer-wrapper { | ||||||
|     position: running(page-footer); |     position: running(page-footer); | ||||||
|     width: 165mm; |     width: 165mm; | ||||||
|   | |||||||
| @@ -20,6 +20,10 @@ namespace Elwig.Helpers { | |||||||
|         public string Name; |         public string Name; | ||||||
|         public string? NameSuffix; |         public string? NameSuffix; | ||||||
|         public string NameType; |         public string NameType; | ||||||
|  |         public string NameTypeFull => NameType.Replace(".", "").Replace(" ", "").ToLower() switch { | ||||||
|  |             "reggenmbh" => "registrierte Genossenschaft mit beschränkter Haftung", | ||||||
|  |             _ => NameType, | ||||||
|  |         }; | ||||||
|         public string NameFull => NameSuffix == null ? $"{Name} {NameType}" : $"{Name}, {NameSuffix}, {NameType}"; |         public string NameFull => NameSuffix == null ? $"{Name} {NameType}" : $"{Name}, {NameSuffix}, {NameType}"; | ||||||
|         public Type? Client; |         public Type? Client; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user