From 525c32c7f2f1a382dcf17e68391b0c5a78096d05 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sat, 29 Aug 2026 15:38:14 +0200 Subject: [PATCH] database: Organic update --- sql/sample/WLNS.sql | 2 +- sql/sample/WLWV.sql | 2 +- sql/sample/base.sql | 6 +++--- sql/v01/11.create.client.sql | 17 +++++++++++------ sql/v01/12.create.season.sql | 2 +- sql/v01/30.create.view.sql | 10 +++++----- sql/v01/31.create.bucket-view.sql | 8 ++++---- sql/v01/99.schema_version.sql | 2 +- 8 files changed, 27 insertions(+), 22 deletions(-) diff --git a/sql/sample/WLNS.sql b/sql/sample/WLNS.sql index cac4a30..42e92d9 100644 --- a/sql/sample/WLNS.sql +++ b/sql/sample/WLNS.sql @@ -11,7 +11,7 @@ WHERE hkid = 'WLNS' AND k.name NOT IN ('Nickelsdorf', 'Zurndorf', 'Parndorf', 'Bruckneudorf', 'Kaisersteinbruch', 'Gattendorf', 'Neudorf bei Parndorf', 'Potzneusiedl', 'Pama', 'Deutsch Jahrndorf', 'Kittsee', 'Edelstal'); -INSERT INTO member (mgnr, name, given_name, juridical_pers, zwstid, birthday, entry_date, shares, volllieferant, buchführend, country, postal_dest, address, default_kgnr, iban, lfbis_nr, ustid_nr) VALUES +INSERT INTO member (mgnr, name, given_name, juridical_pers, zwstid, birthday, entry_date, shares, full_delivery, accounting, country, postal_dest, address, default_kgnr, iban, lfbis_nr, ustid_nr) VALUES (101, 'Mustermann', 'Max', FALSE, 'X', '1991', '2012-06-04', 5, FALSE, FALSE, 40, 715200162, 'Winzerstraße 1', 32019, 'AT811234567890123457', '0123463', NULL ), (102, 'Weinbauer', 'Wernhardt', FALSE, 'X', '1975', '1994-05-20', 3, FALSE, FALSE, 40, 714300143, 'Winzerstraße 2', 32002, 'AT541234567890123458', '0123471', 'ATU12345684'), (103, 'Musterbauer', 'Matthäus', FALSE, 'X', '2000', '2021-07-03', 4, FALSE, FALSE, 40, 714200154, 'Ödenburger Straße 10', 32010, 'AT271234567890123459', '0123480', NULL ), diff --git a/sql/sample/WLWV.sql b/sql/sample/WLWV.sql index 35395cf..6f694de 100644 --- a/sql/sample/WLWV.sql +++ b/sql/sample/WLWV.sql @@ -31,7 +31,7 @@ FROM wb_gem wg WHERE hkid = 'WLWV' AND g.gkz / 100 IN (308, 316) AND k.name IN ('Erdpreß', 'Martinsdorf', 'Niedersulz', 'Obersulz', 'Großinzersdorf', 'Palterndorf', 'Gaweinstal', 'Zistersdorf'); -INSERT INTO member (mgnr, name, given_name, juridical_pers, zwstid, birthday, entry_date, shares, volllieferant, buchführend, country, postal_dest, address, default_kgnr, iban, lfbis_nr, ustid_nr) VALUES +INSERT INTO member (mgnr, name, given_name, juridical_pers, zwstid, birthday, entry_date, shares, full_delivery, accounting, country, postal_dest, address, default_kgnr, iban, lfbis_nr, ustid_nr) VALUES (101, 'Mustermann', 'Max', FALSE, 'X', '1991', '2012-06-04', 5, FALSE, FALSE, 40, 212005138, 'Winzerstraße 1', 15224, 'AT811234567890123457', '0123463', NULL ), (102, 'Weinbauer', 'Wernhardt', FALSE, 'X', '1975', '1994-05-20', 3, FALSE, FALSE, 40, 221105097, 'Winzerstraße 2', 15213, 'AT541234567890123458', '0123471', 'ATU12345684'), (103, 'Musterbauer', 'Matthäus', FALSE, 'X', '2000', '2021-07-03', 4, FALSE, FALSE, 40, 222303524, 'Brünner Straße 10', 06019, 'AT271234567890123459', '0123480', NULL ), diff --git a/sql/sample/base.sql b/sql/sample/base.sql index 799a3fc..94bb653 100644 --- a/sql/sample/base.sql +++ b/sql/sample/base.sql @@ -16,9 +16,9 @@ INSERT INTO client_parameter (param, value) VALUES INSERT INTO branch (zwstid, name, country, postal_dest, address) VALUES ('X', 'Test', 40, 111017233, 'Winzerstraße 1'); -INSERT INTO wine_cultivation (cultid, name, description) VALUES -('K', 'KIP', 'Kontrollierte Integrierte Produktion'), -('B', 'Bio', NULL); +INSERT INTO wine_cultivation (cultid, name, description, organic) VALUES +('K', 'KIP', 'Kontrollierte Integrierte Produktion', FALSE), +('B', 'Bio', 'Biologische Produktion', TRUE); INSERT INTO wine_attribute (attrid, name, active, max_kg_per_ha, strict, fill_lower) VALUES ('D', 'DAC', TRUE, 7500, FALSE, 0), diff --git a/sql/v01/11.create.client.sql b/sql/v01/11.create.client.sql index 1c25e15..9a1ad52 100644 --- a/sql/v01/11.create.client.sql +++ b/sql/v01/11.create.client.sql @@ -61,8 +61,10 @@ CREATE TABLE area_commitment_type ( ) STRICT; CREATE TABLE wine_cultivation ( - cultid TEXT NOT NULL CHECK (cultid REGEXP '^[A-Z][A-Z0-9]*$'), - name TEXT NOT NULL, + cultid TEXT NOT NULL CHECK (cultid REGEXP '^[A-Z][A-Z0-9]*$'), + name TEXT NOT NULL, + organic INTEGER NOT NULL CHECK (organic IN (TRUE, FALSE)) DEFAULT FALSE, + description TEXT DEFAULT NULL, CONSTRAINT pk_wine_cultivation PRIMARY KEY (cultid), @@ -93,11 +95,13 @@ CREATE TABLE member ( lfbis_nr TEXT CHECK (lfbis_nr REGEXP '^[0-9]{7}$') DEFAULT NULL, ustid_nr TEXT CHECK (ustid_nr REGEXP '^[A-Z]{2}[A-Z0-9]{2,12}$') DEFAULT NULL, + ooc_id TEXT CHECK (ooc_id REGEXP '^[0-9]{3}-[0-9]{7}$') DEFAULT NULL, + org_auth_code TEXT CHECK (org_auth_code REGEXP '^[A-Z]{2}-[A-ZÖØ]{3}-[0-9]{2,3}(-[A-Z]{2})?$') DEFAULT NULL, juridical_pers INTEGER NOT NULL CHECK (juridical_pers IN (TRUE, FALSE)) DEFAULT FALSE, - volllieferant INTEGER NOT NULL CHECK (volllieferant IN (TRUE, FALSE)) DEFAULT FALSE, - buchführend INTEGER NOT NULL CHECK (buchführend IN (TRUE, FALSE)) DEFAULT FALSE, + full_delivery INTEGER NOT NULL CHECK (full_delivery IN (TRUE, FALSE)) DEFAULT FALSE, + accounting INTEGER NOT NULL CHECK (accounting IN (TRUE, FALSE)) DEFAULT FALSE, organic INTEGER NOT NULL CHECK (organic IN (TRUE, FALSE)) DEFAULT FALSE, - funktionär INTEGER NOT NULL CHECK (funktionär IN (TRUE, FALSE)) DEFAULT FALSE, + officer INTEGER NOT NULL CHECK (officer IN (TRUE, FALSE)) DEFAULT FALSE, active INTEGER NOT NULL CHECK (active IN (TRUE, FALSE)) DEFAULT TRUE, deceased INTEGER NOT NULL CHECK (deceased IN (TRUE, FALSE)) DEFAULT FALSE, @@ -243,7 +247,8 @@ CREATE TABLE member_history ( source TEXT NOT NULL CHECK (source REGEXP '^[a-z_]+$'), shares INTEGER NOT NULL CHECK (shares > 0), - signed INTEGER NOT NULL CHECK (signed IN (TRUE, FALSE)) DEFAULT FALSE, + signed_company INTEGER NOT NULL CHECK (signed_company IN (TRUE, FALSE)) DEFAULT FALSE, + signed_member INTEGER NOT NULL CHECK (signed_member IN (TRUE, FALSE)) DEFAULT FALSE, value_per_share INTEGER DEFAULT NULL, currency TEXT DEFAULT NULL, deduct_year INTEGER DEFAULT NULL, diff --git a/sql/v01/12.create.season.sql b/sql/v01/12.create.season.sql index 21dcef2..96d59df 100644 --- a/sql/v01/12.create.season.sql +++ b/sql/v01/12.create.season.sql @@ -183,7 +183,7 @@ CREATE TABLE delivery_part ( spl_check INTEGER NOT NULL CHECK (spl_check IN (TRUE, FALSE)) DEFAULT FALSE, hand_picked INTEGER CHECK (hand_picked IN (TRUE, FALSE)) DEFAULT NULL, - gebunden INTEGER CHECK (gebunden IN (TRUE, FALSE)) DEFAULT NULL, + contracted INTEGER CHECK (contracted IN (TRUE, FALSE)) DEFAULT NULL, unloading TEXT DEFAULT NULL, temperature REAL DEFAULT NULL, diff --git a/sql/v01/30.create.view.sql b/sql/v01/30.create.view.sql index 2005e64..048993b 100644 --- a/sql/v01/30.create.view.sql +++ b/sql/v01/30.create.view.sql @@ -43,7 +43,7 @@ SELECT p.year, p.did, p.dpnr, v.sortid, v.type, a.attrid, p.cultid, p.weight, p.kmw, ROUND(p.kmw * (4.54 + 0.022 * p.kmw), 0) AS oe, p.qualid, p.hkid, p.kgnr, p.rdnr, - p.net_weight, p.gebunden, + p.net_weight, p.contracted, p.qualid IN (SELECT l.qualid FROM wine_quality_level l WHERE NOT l.predicate AND (p.kmw >= l.min_kmw OR l.min_kmw IS NULL) ORDER BY l.min_kmw DESC LIMIT 1,100) AS abgewertet, p.qualid NOT IN ('WEI', 'RSW', 'LDW') AS min_quw, IIF(a.strict, COALESCE(a.fill_lower, 0), 0) AS attribute_prio, @@ -127,7 +127,7 @@ SELECT s.year, m.mgnr, m.lfbis_nr, m.name, (COALESCE(m.prefix || ' ', '') || m.given_name || COALESCE(' ' || m.middle_names, '') || COALESCE(' ' || m.suffix, '')) AS other_names, a.name AS billing_name, COALESCE(a.address, m.address) AS address, COALESCE(a.country, m.country) AS country, COALESCE(a.postal_dest, m.postal_dest) AS postal_dest, - m.volllieferant AS vollablieferer, + m.full_delivery AS vollablieferer, SUM(COALESCE(IIF((c.year_from IS NULL OR c.year_from <= s.year) AND (c.year_to IS NULL OR c.year_to >= s.year), c.area, NULL), 0)) AS area FROM season s, member m LEFT JOIN member_billing_address a ON a.mgnr = m.mgnr @@ -198,7 +198,7 @@ CREATE VIEW v_stat_total AS SELECT d.year, d.zwstid, v.type, v.sortid, IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL) AS attrid, p.cultid, q.qualid, - IIF(b.discr = '_', 'ungeb', 'geb') AS geb, + IIF(b.discr = '_', 'ungeb', 'geb') AS contracted, SUM(value) AS weight FROM delivery_part p LEFT JOIN delivery d ON (d.year, d.did) = (p.year, p.did) @@ -206,9 +206,9 @@ FROM delivery_part p LEFT JOIN wine_quality_level q ON q.qualid = p.qualid LEFT JOIN delivery_part_bucket b ON (b.year, b.did, b.dpnr) = (p.year, p.did, p.dpnr) LEFT JOIN v_wine_attribute a ON a.attrid = p.attrid -GROUP BY d.year, d.zwstid, v.type, v.sortid, IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL), p.cultid, q.qualid, geb +GROUP BY d.year, d.zwstid, v.type, v.sortid, IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL), p.cultid, q.qualid, contracted HAVING SUM(value) > 0 -ORDER BY d.year, d.zwstid, v.type DESC, v.sortid, IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL), p.cultid, q.min_kmw, geb; +ORDER BY d.year, d.zwstid, v.type DESC, v.sortid, IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL), p.cultid, q.min_kmw, contracted; CREATE VIEW v_stat_modifier AS SELECT v.year, v.avnr, m.modid, m.name, m.abs, m.rel, diff --git a/sql/v01/31.create.bucket-view.sql b/sql/v01/31.create.bucket-view.sql index 5864ca3..fed7980 100644 --- a/sql/v01/31.create.bucket-view.sql +++ b/sql/v01/31.create.bucket-view.sql @@ -61,7 +61,7 @@ SELECT d.year, d.mgnr, d.sortid || b.discr AS bucket, d.sortid, IIF(b.discr IN ('', '_'), NULL, b.discr) AS attrid, SUM(b.value) AS weight, - b.discr != '_' AS gebunden + b.discr != '_' AS contracted FROM v_delivery d LEFT JOIN delivery_part_bucket b ON (b.year, b.did, b.dpnr) = (d.year, d.did, d.dpnr) GROUP BY d.year, d.mgnr, bucket @@ -71,13 +71,13 @@ ORDER BY d.year, d.mgnr, bucket; CREATE VIEW v_payment_bucket AS SELECT year, mgnr, bucket, weight FROM v_payment_bucket_strict -WHERE attrid IS NOT NULL OR NOT gebunden +WHERE attrid IS NOT NULL OR NOT contracted UNION ALL SELECT b.year, b.mgnr, b.sortid, SUM(b.weight) AS weight FROM v_payment_bucket_strict b LEFT JOIN wine_attribute a ON a.attrid = b.attrid -WHERE gebunden AND (a.strict IS NULL OR a.strict = FALSE) +WHERE contracted AND (a.strict IS NULL OR a.strict = FALSE) GROUP BY b.year, b.mgnr, b.sortid ORDER BY year, mgnr, bucket; @@ -96,7 +96,7 @@ FROM v_under_delivery_bucket_strict u LEFT JOIN v_payment_bucket_strict p ON (p.year, p.mgnr, p.sortid) = (u.year, u.mgnr, u.bucket) AND p.attrid IS NOT NULL LEFT JOIN wine_attribute a ON a.attrid = p.attrid LEFT JOIN v_area_commitment_bucket_strict s ON (s.year, s.mgnr, s.bucket) = (p.year, p.mgnr, p.bucket) -WHERE (p.gebunden IS NULL OR p.gebunden) AND (a.strict IS NULL OR a.strict = FALSE) +WHERE (p.contracted IS NULL OR p.contracted) AND (a.strict IS NULL OR a.strict = FALSE) GROUP BY u.year, u.mgnr, u.bucket ORDER BY u.year, u.mgnr, u.bucket; diff --git a/sql/v01/99.schema_version.sql b/sql/v01/99.schema_version.sql index 1df38e6..bece5ae 100644 --- a/sql/v01/99.schema_version.sql +++ b/sql/v01/99.schema_version.sql @@ -1,3 +1,3 @@ -- This value MUST NOT be changed while other connections are open! -PRAGMA schema_version = 4100; +PRAGMA schema_version = 4200;