From bb57c6fab56866ff6b6d747fb89e5fbbd36f050b Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Fri, 7 Jun 2024 12:21:13 +0200 Subject: [PATCH] database: Add penalty_per_bs to season table --- sql/v01/12.create.season.sql | 2 ++ sql/v01/32.create.penalty-view.sql | 11 ----------- sql/v01/99.schema_version.sql | 2 +- wgmaster/migrate.py | 4 ++-- 4 files changed, 5 insertions(+), 14 deletions(-) diff --git a/sql/v01/12.create.season.sql b/sql/v01/12.create.season.sql index b29844a..2611a3e 100644 --- a/sql/v01/12.create.season.sql +++ b/sql/v01/12.create.season.sql @@ -13,6 +13,8 @@ CREATE TABLE season ( penalty_per_kg INTEGER, penalty_amount INTEGER, penalty_none INTEGER, + penalty_per_bs_amount INTEGER, + penalty_per_bs_none INTEGER, bs_value INTEGER, start_date TEXT CHECK (start_date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$'), diff --git a/sql/v01/32.create.penalty-view.sql b/sql/v01/32.create.penalty-view.sql index 0246416..bf958e5 100644 --- a/sql/v01/32.create.penalty-view.sql +++ b/sql/v01/32.create.penalty-view.sql @@ -11,17 +11,6 @@ GROUP BY year, mgnr HAVING total_penalty < 0 ORDER BY year, mgnr; -CREATE VIEW v_penalty_business_shares AS -SELECT s.year, u.mgnr, - (COALESCE(IIF(u.weight = 0, -s.penalty_none, 0), 0) + - COALESCE(IIF(u.diff < 0, -s.penalty_amount, 0), 0) + - COALESCE(u.diff * s.penalty_per_kg, 0) - ) AS total_penalty -FROM v_total_under_delivery u - JOIN season s ON s.year = u.year -WHERE u.diff < 0 AND total_penalty < 0 -ORDER BY s.year, u.mgnr; - CREATE VIEW v_auto_business_shares AS SELECT s.year, h.mgnr, SUM(h.business_shares) AS business_shares, diff --git a/sql/v01/99.schema_version.sql b/sql/v01/99.schema_version.sql index e466d5b..83edc79 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 = 1900; +PRAGMA schema_version = 2000; diff --git a/wgmaster/migrate.py b/wgmaster/migrate.py index 70d47b3..3c15e0e 100755 --- a/wgmaster/migrate.py +++ b/wgmaster/migrate.py @@ -1742,12 +1742,12 @@ def migrate_deliveries(in_dir: str, out_dir: str) -> None: utils.csv_open(f'{out_dir}/modifier.csv') as f_mod: f_season.header('year', 'currency', 'precision', 'max_kg_per_ha', 'vat_normal', 'vat_flatrate', 'min_kg_per_bs', 'max_kg_per_bs', 'penalty_per_kg', 'penalty_amount', 'penalty_none', - 'start_date', 'end_date') + 'penalty_per_bs_amount', 'penalty_per_bs_none', 'start_date', 'end_date') f_mod.header('year', 'modid', 'ordering', 'name', 'abs', 'rel', 'standard', 'quick_select') for y, s in seasons.items(): f_season.row(y, s['currency'], s['precision'], 10_000, 0.10, 0.13, PARAMETERS['LIEFERPFLICHT/GA1'], PARAMETERS['LIEFERRECHT/GA1'], - None, None, None, s['start'], s['end']) + None, None, None, None, None, s['start'], s['end']) for m in modifiers.values(): abs_v = round(m['AZAS'] * pow(10, s['precision'])) if m['AZAS'] is not None else None rel_v = m['AZASProzent'] / 100.0 if m['AZASProzent'] is not None else None