database: Add penalty_per_bs to season table
This commit is contained in:
@ -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])$'),
|
||||
|
@ -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,
|
||||
|
@ -1,3 +1,3 @@
|
||||
|
||||
-- This value MUST NOT be changed while other connections are open!
|
||||
PRAGMA schema_version = 1900;
|
||||
PRAGMA schema_version = 2000;
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user