database: Organic update

This commit is contained in:
2026-09-30 00:31:48 +02:00
parent 6c10b95ef8
commit 525c32c7f2
8 changed files with 27 additions and 22 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ WHERE hkid = 'WLNS' AND k.name NOT IN
('Nickelsdorf', 'Zurndorf', 'Parndorf', 'Bruckneudorf', 'Kaisersteinbruch', 'Gattendorf', 'Neudorf bei Parndorf', ('Nickelsdorf', 'Zurndorf', 'Parndorf', 'Bruckneudorf', 'Kaisersteinbruch', 'Gattendorf', 'Neudorf bei Parndorf',
'Potzneusiedl', 'Pama', 'Deutsch Jahrndorf', 'Kittsee', 'Edelstal'); '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 ), (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'), (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 ), (103, 'Musterbauer', 'Matthäus', FALSE, 'X', '2000', '2021-07-03', 4, FALSE, FALSE, 40, 714200154, 'Ödenburger Straße 10', 32010, 'AT271234567890123459', '0123480', NULL ),
+1 -1
View File
@@ -31,7 +31,7 @@ FROM wb_gem wg
WHERE hkid = 'WLWV' AND g.gkz / 100 IN (308, 316) AND k.name IN WHERE hkid = 'WLWV' AND g.gkz / 100 IN (308, 316) AND k.name IN
('Erdpreß', 'Martinsdorf', 'Niedersulz', 'Obersulz', 'Großinzersdorf', 'Palterndorf', 'Gaweinstal', 'Zistersdorf'); ('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 ), (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'), (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 ), (103, 'Musterbauer', 'Matthäus', FALSE, 'X', '2000', '2021-07-03', 4, FALSE, FALSE, 40, 222303524, 'Brünner Straße 10', 06019, 'AT271234567890123459', '0123480', NULL ),
+3 -3
View File
@@ -16,9 +16,9 @@ INSERT INTO client_parameter (param, value) VALUES
INSERT INTO branch (zwstid, name, country, postal_dest, address) VALUES INSERT INTO branch (zwstid, name, country, postal_dest, address) VALUES
('X', 'Test', 40, 111017233, 'Winzerstraße 1'); ('X', 'Test', 40, 111017233, 'Winzerstraße 1');
INSERT INTO wine_cultivation (cultid, name, description) VALUES INSERT INTO wine_cultivation (cultid, name, description, organic) VALUES
('K', 'KIP', 'Kontrollierte Integrierte Produktion'), ('K', 'KIP', 'Kontrollierte Integrierte Produktion', FALSE),
('B', 'Bio', NULL); ('B', 'Bio', 'Biologische Produktion', TRUE);
INSERT INTO wine_attribute (attrid, name, active, max_kg_per_ha, strict, fill_lower) VALUES INSERT INTO wine_attribute (attrid, name, active, max_kg_per_ha, strict, fill_lower) VALUES
('D', 'DAC', TRUE, 7500, FALSE, 0), ('D', 'DAC', TRUE, 7500, FALSE, 0),
+11 -6
View File
@@ -61,8 +61,10 @@ CREATE TABLE area_commitment_type (
) STRICT; ) STRICT;
CREATE TABLE wine_cultivation ( CREATE TABLE wine_cultivation (
cultid TEXT NOT NULL CHECK (cultid REGEXP '^[A-Z][A-Z0-9]*$'), cultid TEXT NOT NULL CHECK (cultid REGEXP '^[A-Z][A-Z0-9]*$'),
name TEXT NOT NULL, name TEXT NOT NULL,
organic INTEGER NOT NULL CHECK (organic IN (TRUE, FALSE)) DEFAULT FALSE,
description TEXT DEFAULT NULL, description TEXT DEFAULT NULL,
CONSTRAINT pk_wine_cultivation PRIMARY KEY (cultid), 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, 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, 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, juridical_pers INTEGER NOT NULL CHECK (juridical_pers IN (TRUE, FALSE)) DEFAULT FALSE,
volllieferant INTEGER NOT NULL CHECK (volllieferant IN (TRUE, FALSE)) DEFAULT FALSE, full_delivery INTEGER NOT NULL CHECK (full_delivery IN (TRUE, FALSE)) DEFAULT FALSE,
buchführend INTEGER NOT NULL CHECK (buchführend 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, 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, active INTEGER NOT NULL CHECK (active IN (TRUE, FALSE)) DEFAULT TRUE,
deceased INTEGER NOT NULL CHECK (deceased IN (TRUE, FALSE)) DEFAULT FALSE, 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_]+$'), source TEXT NOT NULL CHECK (source REGEXP '^[a-z_]+$'),
shares INTEGER NOT NULL CHECK (shares > 0), 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, value_per_share INTEGER DEFAULT NULL,
currency TEXT DEFAULT NULL, currency TEXT DEFAULT NULL,
deduct_year INTEGER DEFAULT NULL, deduct_year INTEGER DEFAULT NULL,
+1 -1
View File
@@ -183,7 +183,7 @@ CREATE TABLE delivery_part (
spl_check INTEGER NOT NULL CHECK (spl_check IN (TRUE, FALSE)) DEFAULT FALSE, spl_check INTEGER NOT NULL CHECK (spl_check IN (TRUE, FALSE)) DEFAULT FALSE,
hand_picked INTEGER CHECK (hand_picked IN (TRUE, FALSE)) DEFAULT NULL, 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, unloading TEXT DEFAULT NULL,
temperature REAL DEFAULT NULL, temperature REAL DEFAULT NULL,
+5 -5
View File
@@ -43,7 +43,7 @@ SELECT p.year, p.did, p.dpnr,
v.sortid, v.type, a.attrid, p.cultid, 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.weight, p.kmw, ROUND(p.kmw * (4.54 + 0.022 * p.kmw), 0) AS oe, p.qualid,
p.hkid, p.kgnr, p.rdnr, 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 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, p.qualid NOT IN ('WEI', 'RSW', 'LDW') AS min_quw,
IIF(a.strict, COALESCE(a.fill_lower, 0), 0) AS attribute_prio, 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, (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, 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, 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 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 FROM season s, member m
LEFT JOIN member_billing_address a ON a.mgnr = m.mgnr 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, SELECT d.year, d.zwstid, v.type, v.sortid,
IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL) AS attrid, IIF(b.discr = a.attrid OR NOT a.area_com, a.attrid, NULL) AS attrid,
p.cultid, q.qualid, p.cultid, q.qualid,
IIF(b.discr = '_', 'ungeb', 'geb') AS geb, IIF(b.discr = '_', 'ungeb', 'geb') AS contracted,
SUM(value) AS weight SUM(value) AS weight
FROM delivery_part p FROM delivery_part p
LEFT JOIN delivery d ON (d.year, d.did) = (p.year, p.did) 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 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 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 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 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 CREATE VIEW v_stat_modifier AS
SELECT v.year, v.avnr, m.modid, m.name, m.abs, m.rel, SELECT v.year, v.avnr, m.modid, m.name, m.abs, m.rel,
+4 -4
View File
@@ -61,7 +61,7 @@ SELECT d.year, d.mgnr,
d.sortid || b.discr AS bucket, d.sortid || b.discr AS bucket,
d.sortid, IIF(b.discr IN ('', '_'), NULL, b.discr) AS attrid, d.sortid, IIF(b.discr IN ('', '_'), NULL, b.discr) AS attrid,
SUM(b.value) AS weight, SUM(b.value) AS weight,
b.discr != '_' AS gebunden b.discr != '_' AS contracted
FROM v_delivery d FROM v_delivery d
LEFT JOIN delivery_part_bucket b ON (b.year, b.did, b.dpnr) = (d.year, d.did, d.dpnr) 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 GROUP BY d.year, d.mgnr, bucket
@@ -71,13 +71,13 @@ ORDER BY d.year, d.mgnr, bucket;
CREATE VIEW v_payment_bucket AS CREATE VIEW v_payment_bucket AS
SELECT year, mgnr, bucket, weight SELECT year, mgnr, bucket, weight
FROM v_payment_bucket_strict FROM v_payment_bucket_strict
WHERE attrid IS NOT NULL OR NOT gebunden WHERE attrid IS NOT NULL OR NOT contracted
UNION ALL UNION ALL
SELECT b.year, b.mgnr, b.sortid, SELECT b.year, b.mgnr, b.sortid,
SUM(b.weight) AS weight SUM(b.weight) AS weight
FROM v_payment_bucket_strict b FROM v_payment_bucket_strict b
LEFT JOIN wine_attribute a ON a.attrid = b.attrid 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 GROUP BY b.year, b.mgnr, b.sortid
ORDER BY year, mgnr, bucket; 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 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 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) 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 GROUP BY u.year, u.mgnr, u.bucket
ORDER BY u.year, u.mgnr, u.bucket; ORDER BY u.year, u.mgnr, u.bucket;
+1 -1
View File
@@ -1,3 +1,3 @@
-- This value MUST NOT be changed while other connections are open! -- This value MUST NOT be changed while other connections are open!
PRAGMA schema_version = 4100; PRAGMA schema_version = 4200;