From f8cce56ecbb905560b71a4d52ebdf23d297677f7 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 22 Sep 2026 15:00:51 +0200 Subject: [PATCH] Entities/WineCult: Add IsOrganic --- Elwig/Documents/DeliveryNote.cs | 3 +++ Elwig/Models/Entities/WineCult.cs | 3 +++ Elwig/Resources/Sql/41-42.sql | 6 ++++++ Elwig/Windows/BaseDataWindow.xaml | 4 ++++ Elwig/Windows/BaseDataWindow.xaml.WineCult.cs | 8 ++++++-- Elwig/Windows/BaseDataWindow.xaml.cs | 4 +++- Tests/E2ETests/MemberAdminWindowTest.cs | 8 ++++---- Tests/Resources/Sql/BillingInsert.sql | 6 +++--- Tests/Resources/Sql/DocumentInsert.sql | 4 ++-- Tests/Resources/Sql/E2EInsert.sql | 6 +++--- Tests/Resources/Sql/Insert.sql | 10 +++++----- Tests/Resources/Sql/ServiceInsert.sql | 5 ++--- .../DocumentTests/DeliveryNoteTest.cs | 20 +++++++++---------- 13 files changed, 54 insertions(+), 33 deletions(-) diff --git a/Elwig/Documents/DeliveryNote.cs b/Elwig/Documents/DeliveryNote.cs index d6157c8..34644a7 100644 --- a/Elwig/Documents/DeliveryNote.cs +++ b/Elwig/Documents/DeliveryNote.cs @@ -153,6 +153,9 @@ namespace Elwig.Documents { if (part.Cultivation != null) { var cult = new KernedParagraph(8); cult.Add(Italic("Bewirtschaftung:")).Add(Normal(" " + part.Cultivation.Name + (part.Cultivation.Description != null ? $" ({part.Cultivation.Description})" : ""))); + if (part.Cultivation.IsOrganic) { + cult.Add(" \u2013 ").Add(Italic("Kontrollstelle:")).Add(Normal($" {Member.OrganicAuthorityCode ?? "?"}")); + } sub.AddCell(NewTd()) .AddCell(NewTd(cult, colspan: 5)) .AddCell(NewTd(colspan: 3)); diff --git a/Elwig/Models/Entities/WineCult.cs b/Elwig/Models/Entities/WineCult.cs index 62f5f4e..3feb5b1 100644 --- a/Elwig/Models/Entities/WineCult.cs +++ b/Elwig/Models/Entities/WineCult.cs @@ -11,6 +11,9 @@ namespace Elwig.Models.Entities { [Column("name")] public required string Name { get; set; } + [Column("organic")] + public bool IsOrganic { get; set; } + [Column("description")] public string? Description { get; set; } diff --git a/Elwig/Resources/Sql/41-42.sql b/Elwig/Resources/Sql/41-42.sql index 710e01e..9575535 100644 --- a/Elwig/Resources/Sql/41-42.sql +++ b/Elwig/Resources/Sql/41-42.sql @@ -3,6 +3,12 @@ ALTER TABLE member ADD COLUMN ooc_id TEXT CHECK (ooc_id REGEXP '^[0-9]{3}-[0-9]{7}$') DEFAULT NULL; ALTER TABLE member ADD COLUMN org_auth_code TEXT CHECK (org_auth_code REGEXP '^[A-Z]{2}-[A-ZÖØ]{3}-[0-9]{2,3}(-[A-Z]{2})?$') DEFAULT NULL; +ALTER TABLE wine_cultivation ADD COLUMN organic INTEGER NOT NULL CHECK (organic IN (TRUE, FALSE)) DEFAULT FALSE; + UPDATE member SET org_auth_code = UPPER(SUBSTR(a.name, -11, 10)) FROM member m JOIN member_billing_address a ON a.mgnr = m.mgnr WHERE a.name LIKE '%AT-BIO-___)'; UPDATE member SET org_auth_code = UPPER(SUBSTR(a.name, -10, 10)) FROM member m JOIN member_billing_address a ON a.mgnr = m.mgnr WHERE a.name LIKE '%AT-BIO-___'; UPDATE member SET org_auth_code = UPPER(suffix) WHERE suffix LIKE 'AT-BIO-___'; + +UPDATE wine_cultivation SET organic = TRUE WHERE name LIKE '%bio%' OR name LIKE '%org%' OR description LIKE '%AT-BIO-%'; +UPDATE wine_cultivation SET description = NULL WHERE description LIKE '%AT-BIO-%'; +UPDATE wine_cultivation SET description = 'Biologische Produktion' WHERE organic; diff --git a/Elwig/Windows/BaseDataWindow.xaml b/Elwig/Windows/BaseDataWindow.xaml index 8c6d87d..921a85d 100644 --- a/Elwig/Windows/BaseDataWindow.xaml +++ b/Elwig/Windows/BaseDataWindow.xaml @@ -320,6 +320,10 @@