Add Deliveries

This commit is contained in:
2023-04-27 23:34:58 +02:00
parent 15f999869a
commit 77781d227c
14 changed files with 278 additions and 12 deletions

View File

@ -3,16 +3,21 @@ using Elwig.Models;
namespace Elwig.Documents {
public abstract class BusinessDocument : Document {
public Member Member;
public BusinessDocument(string title, Member m) : base(title) {
Member = m;
}
public Member Member { get; set; }
public string Address {
get {
// TODO Name/Rechnungsadresse
return $"{Member.GivenName} {Member.FamilyName}\n{Member.Address}";
var b = Member.BillingAddress;
var plz = (b == null) ? Member.PostalDest.AtPlz : b.PostalDest.AtPlz;
if (b != null) {
return $"{b.Name}\n{b.Address}\n{plz.Plz} {plz.Dest}";
} else {
return $"{Member.Name}\n{Member.Address}\n{plz.Plz} {plz.Dest}";
}
}
}
}

View File

@ -0,0 +1,32 @@
@using RazorLight
@inherits TemplatePage<Elwig.Documents.DeliveryNote>
@model Elwig.Documents.DeliveryNote
@{ Layout = "BusinessDocument"; }
<h1>Traubenübernahmeschein Nr. @Model.Delivery.LsNr</h1>
<table>
<thead>
<tr>
<td rowspan="2">Sorte</td>
<td rowspan="2">Qualitätsstufe</td>
<td colspan="2">Gradation</td>
<td>Gewicht</td>
</tr>
<tr>
<td>°KMW</td>
<td>°Oe</td>
<td>kg</td>
</tr>
</thead>
<tbody>
@foreach (var part in Model.Delivery.Parts.OrderBy(p => p.DPNr)) {
<tr>
<td>@part.Variant.Name</td>
<td>@part.Quality.Name</td>
<td>@part.Kmw</td>
<td>@part.Oe</td>
<td>@part.Weight</td>
</tr>
}
</tbody>
</table>

View File

@ -0,0 +1,12 @@
using Elwig.Models;
namespace Elwig.Documents {
public class DeliveryNote : BusinessDocument {
public Delivery Delivery;
public DeliveryNote(Delivery d) : base($"Lieferschein {d.LsNr}", d.Member) {
Delivery = d;
}
}
}

View File

@ -5,8 +5,8 @@
<!DOCTYPE html>
<html lang="de-AT">
<head>
<title>@Model.Title</title>
<meta charset="UTF-8"/>
<title>@Model.Title</title>
<meta charset="UTF-8"/>
<script>
window.PagedConfig = { auto: false };
if (!navigator.webdriver) {

View File

@ -43,8 +43,10 @@ namespace Elwig.Documents {
string name;
if (this is BusinessLetter) {
name = "BusinessLetter";
} else if (this is DeliveryNote) {
name = "DeliveryNote";
} else {
throw new InvalidOperationException();
throw new InvalidOperationException("Invalid document object");
}
return await Html.CompileRenderAsync(name, this);
}

View File

@ -17,6 +17,7 @@ namespace Elwig.Documents {
await e.CompileTemplateAsync("Document");
await e.CompileTemplateAsync("BusinessDocument");
await e.CompileTemplateAsync("BusinessLetter");
await e.CompileTemplateAsync("DeliveryNote");
Engine = e;
evtHandler();

View File

@ -136,6 +136,11 @@ footer {
text-align: center;
}
table {
width: 100%;
border-collapse: collapse;
}
@page {
size: A4;
margin: 25mm 0 35mm 0;