From fccc75450419bd7df05573cfabd3cdb0eb20ba75 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Mon, 20 Apr 2026 15:02:23 +0200 Subject: [PATCH] database: Add samples for WLNS --- sql/sample/WLNS.sql | 64 +++++++++++++++++++++++++++++ sql/{sample.sql => sample/WLWV.sql} | 15 ------- sql/sample/base.sql | 33 +++++++++++++++ sql/v01/11.create.client.sql | 2 +- sql/v01/92.insert.wb_gem.sql | 6 ++- sql/v01/99.schema_version.sql | 2 +- sqlite.bat | 5 ++- sqlite.sh | 5 ++- 8 files changed, 109 insertions(+), 23 deletions(-) create mode 100644 sql/sample/WLNS.sql rename sql/{sample.sql => sample/WLWV.sql} (74%) create mode 100644 sql/sample/base.sql diff --git a/sql/sample/WLNS.sql b/sql/sample/WLNS.sql new file mode 100644 index 0000000..05a053d --- /dev/null +++ b/sql/sample/WLNS.sql @@ -0,0 +1,64 @@ + +INSERT INTO wb_gl VALUES +(1, 'Heideboden'); + +INSERT INTO wb_kg +SELECT k.kgnr, 1 +FROM wb_gem wg + LEFT JOIN AT_gem g ON g.gkz = wg.gkz + LEFT JOIN AT_kg k ON k.gkz = g.gkz +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, business_shares, volllieferant, buchführend, 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 ), +(104, 'Winzer', 'Waltraud', FALSE, 'X', '1970', '1992-04-23', 2, FALSE, TRUE , 40, 715200162, 'Wiener Straße 15', 32019, 'AT971234567890123460', '0123498', 'ATU12345693'), +(105, 'Weinland Weine AG', NULL, TRUE , 'X', '2008', '2008-11-13', 6, FALSE, TRUE , 40, 714200154, 'Hauptstraße 7', 32010, 'AT701234567890123461', '0123501', 'ATU12345700'); + +INSERT INTO member_billing_address (mgnr, name, country, postal_dest, address) VALUES +(102, 'W&B Weinbauer GesbR', 40, 714300143, 'Winzerstraße 2'), +(104, 'Weinbau Waltraud Winzer GmbH', 40, 715200162, 'Hauptstraße 1'); + +INSERT INTO member_telephone_number (mgnr, nr, type, number, comment) VALUES +(101, 1, 'mobile', '+43 664 123456789', NULL), +(102, 1, 'landline', '+43 2175 01234', NULL), +(102, 2, 'mobile', '+43 664 123456790', NULL), +(103, 1, 'mobile', '+43 664 123456791', 'Matthäus'), +(103, 2, 'mobile', '+43 664 123456792', 'Mathilde'), +(104, 1, 'landline', '+43 2174 01235', NULL), +(104, 2, 'mobile', '+43 664 123456793', NULL), +(105, 1, 'landline', '+43 2175 01236', NULL); + +INSERT INTO member_email_address (mgnr, nr, address) VALUES +(101, 1, 'max@mustermann.com'), +(103, 1, 'mustermat@example.com'), +(104, 1, 'waltraud@weinbau-winzer.at'), +(105, 1, 'office@weinland-weine.at'), +(105, 2, 'herbert.huber@test.at'); + + +UPDATE client_parameter SET value = '0' WHERE param = 'ENABLE_TIME_TRIGGERS'; + +INSERT INTO delivery (year, did, date, time, zwstid, lnr, lsnr, mgnr, ctime, mtime) VALUES +(2025, 1, '2025-09-30', '09:04:38', 'X', 1, '20250930X001', 101, 1759215878, 1759215878), +(2025, 2, '2025-09-30', '10:47:13', 'X', 2, '20250930X002', 102, 1759222033, 1759222033); + +INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, net_weight, manual_weighing, scale_id, weighing_data, ctime, mtime) VALUES +(2025, 1, 1, 'GV', NULL, 'B', 2876, 16.8, 'QUW', 'WLBL', 32019, TRUE, FALSE, '1', '{"id":"2025-09-30/1","nr":1,"date":"2025-09-30","time":"08:52:00","gross_weight":2876,"tare_weight":0,"net_weight":2876}', 1759215878, 1759215878), +(2025, 1, 2, 'SB', NULL, 'B', 1342, 15.2, 'QUW', 'WLBL', 32019, TRUE, FALSE, '1', '{"id":"2025-09-30/2","nr":2,"date":"2025-09-30","time":"08:56:00","gross_weight":1342,"tare_weight":0,"net_weight":1342}', 1759215878, 1759215878), +(2025, 1, 3, 'WR', 'S', NULL, 3128, 14.5, 'LDW', 'WLXX', 32019, TRUE, FALSE, '1', '{"id":"2025-09-30/4","nr":4,"date":"2025-09-30","time":"09:01:00","gross_weight":3128,"tare_weight":0,"net_weight":3128}', 1759215878, 1759215878), +(2025, 2, 1, 'CH', NULL, NULL, 3482, 15.0, 'QUW', 'WLBL', 32002, FALSE, FALSE, '1', '{"id":"2025-09-30/5","nr":5,"date":"2025-09-30","time":"10:35:00","gross_weight":3482,"tare_weight":0,"net_weight":3482}', 1759222033, 1759222033), +(2025, 2, 2, 'WR', NULL, NULL, 1800, 15.2, 'QUW', 'WLBL', 32002, FALSE, TRUE, NULL, NULL, 1759222033, 1759222033); + +INSERT INTO delivery_part_modifier (year, did, dpnr, modid) VALUES +(2025, 2, 1, 'L'), +(2025, 2, 2, 'S'); + +UPDATE client_parameter SET value = '1' WHERE param = 'ENABLE_TIME_TRIGGERS'; + +INSERT INTO payment_variant (year, avnr, name, date, transfer_date, test_variant, data) VALUES +(2025, 1, '1. Teilzahlung', '2026-04-20', NULL, 1, '{"mode":"elwig","version":1,"payment":0.2,"curves":[]}'), +(2025, 2, 'Endauszahlung', '2026-04-21', NULL, 1, '{"mode":"elwig","version":1,"consider_delivery_modifiers":true,"payment":{"WR/S":0.22,"CH":0.3,"WR":0.3,"-B":"curve:1"},"curves":[{"id":1,"mode":"oe","data":{"72oe":0.15,"73oe":0.45}}],"gross_weight_modifier": -0.05}'); diff --git a/sql/sample.sql b/sql/sample/WLWV.sql similarity index 74% rename from sql/sample.sql rename to sql/sample/WLWV.sql index f291e3a..ca47ff5 100644 --- a/sql/sample.sql +++ b/sql/sample/WLWV.sql @@ -4,21 +4,6 @@ INSERT INTO wb_gl VALUES (2, 'Wolkersdorfer Hochleiten'), (3, 'Falkensteiner Hügelland'); -INSERT INTO branch VALUES -('M', 'Matzen', 40, 224303541, 'Winzerstraße 1', '+43 2289 12345', '+43 2289 12345', NULL); - -INSERT INTO wine_attribute VALUES -('B', 'BIO AT-BIO-302', 10000, TRUE), -('HK', 'HK>17,5', 10000, TRUE), -('K', 'Kabinett', 10000, TRUE), -('S', 'Saft', 10000, TRUE), -('Z', 'Sekt', 10000, TRUE); - -INSERT INTO wine_cultivation VALUES -('N', 'Normal'), -('KIP', 'Kontrollierte Integrierte Produktion'), -('BIO', 'Organisch Biologisch'); - INSERT INTO wb_kg SELECT k.kgnr, 1 FROM wb_gem wg diff --git a/sql/sample/base.sql b/sql/sample/base.sql new file mode 100644 index 0000000..c557a07 --- /dev/null +++ b/sql/sample/base.sql @@ -0,0 +1,33 @@ + +INSERT INTO client_parameter (param, value) VALUES +('CLIENT_NAME_TOKEN', 'WGX'), +('CLIENT_NAME_SHORT', 'WG Test'), +('CLIENT_NAME', 'Winzergenossenschaft Test'), +('CLIENT_NAME_SUFFIX', NULL), +('CLIENT_NAME_TYPE', 'reg.Gen.m.b.H.'), +('CLIENT_PLZ', '1110'), +('CLIENT_ORT', 'Wien'), +('CLIENT_ADDRESS', 'Winzerstraße 1'), +('CLIENT_IBAN', 'AT11 1234 5678 9012 3456'), +('CLIENT_LFBISNR', '0123455'), +('CLIENT_USTIDNR', 'ATU12345675'), +('TEXT_DELIVERYNOTE', 'Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht und insbesondere die Bestimmungen über die Mengenbeschränkung sowie für die Erzeugung von Wein besonderer Leseart eingehalten wird. Alle maßgeblichen Veränderungen obiger Angaben sind der Winzergenossenschaft unverzüglich zu melden. Das Mitglied bestätigt weiters mit seiner Unterschrift, dass die gelieferten Trauben entsprechend der guten Herstellungspraxis erzeugt wurden, insbesondere die Einhaltung der vom Hersteller vorgegebenen Wartefristen für Pflanzenschutzmittel.'); + +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_attribute (attrid, name, active, max_kg_per_ha, strict, fill_lower) VALUES +('D', 'DAC', TRUE, 7500, FALSE, 0), +('S', 'Saft', TRUE, NULL, FALSE, 0), +('Z', 'Sekt', TRUE, NULL, FALSE, 0); + +INSERT INTO season (year, currency, min_kg_per_bs, max_kg_per_bs, penalty_per_kg, penalty_amount, penalty_none, penalty_per_bs_amount, penalty_per_bs_none, bs_value, start_date, end_date) VALUES +(2025, 'EUR', 1000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, '2025-09-15', '2025-10-31'); + +INSERT INTO modifier (year, modid, ordering, name, abs, rel) VALUES +(2025, 'L', 1, 'Leicht geschädigtes Traubenmaterial', NULL, -0.05), +(2025, 'S', 2, 'Stark geschädigtes Traubenmaterial', -1000, NULL); diff --git a/sql/v01/11.create.client.sql b/sql/v01/11.create.client.sql index 39a0758..6da6e6e 100644 --- a/sql/v01/11.create.client.sql +++ b/sql/v01/11.create.client.sql @@ -165,7 +165,7 @@ CREATE TABLE member_email_address ( mgnr INTEGER NOT NULL, nr INTEGER NOT NULL, - address TEXT NOT NULL CHECK (address REGEXP '^[^@ ]+@([a-z0-9_\x2Däöüß]+\.)+[a-z]{2,}$'), + address TEXT NOT NULL CHECK (address REGEXP '^[^@ ]+@([a-z0-9_\x2Däöüß]+\.)+[a-z]{2,64}$'), comment TEXT DEFAULT NULL, CONSTRAINT pk_member_email_address PRIMARY KEY (mgnr, nr), diff --git a/sql/v01/92.insert.wb_gem.sql b/sql/v01/92.insert.wb_gem.sql index 854deff..45102b7 100644 --- a/sql/v01/92.insert.wb_gem.sql +++ b/sql/v01/92.insert.wb_gem.sql @@ -70,17 +70,19 @@ WHERE gkz IN (31327, 31303, 31304, 31338, 31301, 31344, 31330, 31351); -- Neusiedlersee -- Bezirk Neusiedl am See (107) +-- ohne Gemeinden Jois (10710), Winden am See (10723) INSERT INTO wb_gem SELECT gkz, 'WLNS' FROM AT_gem -WHERE gkz / 100 IN (107); +WHERE gkz / 100 IN (107) AND gkz NOT IN (10710, 10723); -- Leithaberg -- Bezirke Eisenstadt Umgebung (103), Eisenstadt (101), Rust (102) +-- Gemeinden Jois (10710), Winden am See (10723) INSERT INTO wb_gem SELECT gkz, 'WLLB' FROM AT_gem -WHERE gkz / 100 IN (101, 102, 103); +WHERE gkz / 100 IN (101, 102, 103) OR gkz IN (10710, 10723); -- Rosalia -- Bezirk Mattersburg (106) diff --git a/sql/v01/99.schema_version.sql b/sql/v01/99.schema_version.sql index 444196e..7e206d2 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 = 3800; +PRAGMA schema_version = 3900; diff --git a/sqlite.bat b/sqlite.bat index a8e1e15..d5a5630 100644 --- a/sqlite.bat +++ b/sqlite.bat @@ -1,6 +1,6 @@ @echo off SET dir=. -sqlite3 -box^ +sqlite3 -box -unsafe-testing^ -cmd ".read %dir%/sql/v01/00.setup.sql"^ -cmd ".read %dir%/sql/v01/10.create.base.sql"^ -cmd ".read %dir%/sql/v01/11.create.client.sql"^ @@ -9,10 +9,11 @@ sqlite3 -box^ -cmd ".read %dir%/sql/v01/20.create.timestamp-trigger.sql"^ -cmd ".read %dir%/sql/v01/30.create.view.sql"^ -cmd ".read %dir%/sql/v01/31.create.bucket-view.sql"^ + -cmd ".read %dir%/sql/v01/32.create.penalty-view.sql"^ -cmd ".read %dir%/sql/v01/50.insert.base.sql"^ -cmd ".read %dir%/data/90.plz.sql"^ -cmd ".read %dir%/sql/91.plz-fix.sql"^ -cmd ".read %dir%/sql/v01/92.insert.wb_gem.sql"^ -cmd ".read %dir%/sql/v01/99.schema_version.sql"^ - -cmd ".read %dir%/sql/sample.sql"^ + -cmd ".read %dir%/sql/sample/base.sql"^ %@% diff --git a/sqlite.sh b/sqlite.sh index d154e04..47c9e03 100755 --- a/sqlite.sh +++ b/sqlite.sh @@ -1,6 +1,6 @@ #!/bin/bash dir="." -sqlite3 -box \ +sqlite3 -box -unsafe-testing \ -cmd ".read $dir/sql/v01/00.setup.sql" \ -cmd ".read $dir/sql/v01/10.create.base.sql" \ -cmd ".read $dir/sql/v01/11.create.client.sql" \ @@ -9,10 +9,11 @@ sqlite3 -box \ -cmd ".read $dir/sql/v01/20.create.timestamp-trigger.sql" \ -cmd ".read $dir/sql/v01/30.create.view.sql" \ -cmd ".read $dir/sql/v01/31.create.bucket-view.sql" \ + -cmd ".read $dir/sql/v01/32.create.penalty-view.sql" \ -cmd ".read $dir/sql/v01/50.insert.base.sql" \ -cmd ".read $dir/data/90.plz.sql" \ -cmd ".read $dir/sql/91.plz-fix.sql" \ -cmd ".read $dir/sql/v01/92.insert.wb_gem.sql" \ -cmd ".read $dir/sql/v01/99.schema_version.sql" \ - -cmd ".read $dir/sql/sample.sql" \ + -cmd ".read $dir/sql/sample/base.sql" \ $@