Add client_parameter table
This commit is contained in:
@ -3,7 +3,14 @@ PRAGMA foreign_keys = ON;
|
||||
|
||||
CREATE TABLE meta (
|
||||
version INTEGER NOT NULL DEFAULT 1
|
||||
);
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE client_parameter (
|
||||
param TEXT NOT NULL CHECK (param REGEXP '^[A-Z_]+$'),
|
||||
value TEXT,
|
||||
|
||||
CONSTRAINT pk_parameter PRIMARY KEY (param)
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE country (
|
||||
alpha2 TEXT NOT NULL CHECK (alpha2 REGEXP '^[A-Z]{2}$'),
|
||||
@ -103,7 +110,7 @@ CREATE TABLE AT_plz (
|
||||
CONSTRAINT fk_AT_plz_AT_bundesland FOREIGN KEY (blnr) REFERENCES AT_bundesland (blnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
);
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE AT_plz_dest (
|
||||
plz INTEGER NOT NULL CHECK (plz >= 1000 AND plz <= 9999),
|
||||
@ -245,7 +252,7 @@ CREATE TABLE branch (
|
||||
CONSTRAINT fk_branch_postal_dest FOREIGN KEY (country, postal_dest) REFERENCES postal_dest (country, id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
);
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE wine_attribute (
|
||||
attrid TEXT NOT NULL CHECK (attrid REGEXP '^[A-Z]+$'),
|
||||
@ -350,7 +357,7 @@ CREATE TABLE contract (
|
||||
CONSTRAINT fk_contract_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
);
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE area_commitment (
|
||||
vnr INTEGER NOT NULL,
|
||||
@ -420,7 +427,7 @@ CREATE TABLE season (
|
||||
CONSTRAINT fk_season_currency FOREIGN KEY (currency) REFERENCES currency (code)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT
|
||||
);
|
||||
) STRICT;
|
||||
|
||||
CREATE TABLE modifier (
|
||||
year INTEGER NOT NULL,
|
||||
|
@ -13,7 +13,7 @@ import csv
|
||||
|
||||
DIR: str
|
||||
|
||||
TABLES = ['branch', 'wb_gl', 'wb_kg', 'wb_rd', 'wine_attribute', 'wine_cultivation',
|
||||
TABLES = ['client_parameter', 'branch', 'wb_gl', 'wb_kg', 'wb_rd', 'wine_attribute', 'wine_cultivation',
|
||||
'member', 'member_billing_address', 'contract',
|
||||
'area_commitment', 'area_commitment_parcel', 'area_commitment_attribute',
|
||||
'season', 'modifier', 'delivery', 'delivery_part', 'delivery_part_attribute', 'delivery_part_modifier', ]
|
||||
|
@ -909,6 +909,41 @@ def migrate_payments(in_dir: str, out_dir: str) -> None:
|
||||
pass # TODO migrate payments
|
||||
|
||||
|
||||
def migrate_parameters(in_dir: str, out_dir: str) -> None:
|
||||
params: Dict[str, str] = {p['Bezeichnung']: p['Wert'] for p in csv.parse_dict(f'{in_dir}/TParameter.csv')}
|
||||
name = params['MANDANTENNAME1'].title().replace('F.', 'für').replace('U.', 'und')
|
||||
shortened = name.replace(' für ', ' f. ').replace(' und ', ' u. ')
|
||||
suffix = params['MANDANTENNAME2'].lower().replace(' ', '').replace('.', '')
|
||||
suffixes = {
|
||||
'reggenmbg': 'reg. Gen.m.b.H.'
|
||||
}
|
||||
|
||||
new_params: Dict[str, Optional[str]] = {
|
||||
'NAME_TOKEN': None,
|
||||
'NAME_SHORT': None,
|
||||
'NAME_SHORTENED': shortened,
|
||||
'NAME': name,
|
||||
'NAME_SUFFIX': suffixes[suffix],
|
||||
'PLZ': params['MANDANTENPLZ'],
|
||||
'ORT': params['MANDANTENORT'],
|
||||
'ADDRESS': params['MANDANTENSTRASSE'],
|
||||
'DOCUMENT_SENDER': params['ABSENDERTEXT2'],
|
||||
'IBAN': None,
|
||||
'BIC': None,
|
||||
'USTID': params['MANDANTENUID'].replace(' ', ''),
|
||||
'LFBISNR': params['MANDANTENBETRIEBSNUMMER'],
|
||||
'PHONE': params['MANDANTENTELEFON'],
|
||||
'FAX': params['MANDANTENTELEFAX'],
|
||||
'EMAIL': params['MANDANTENEMAIL'],
|
||||
'WEBSITE': params['MANDANTENHOMEPAGE'],
|
||||
}
|
||||
|
||||
with open(f'{out_dir}/client_parameter.csv') as f:
|
||||
f.write('param;value\n')
|
||||
for param, value in new_params.items():
|
||||
f.write(csv.format_row(param, value))
|
||||
|
||||
|
||||
def main() -> None:
|
||||
global DB_CNX, QUIET, HKID, WG
|
||||
|
||||
@ -947,6 +982,7 @@ def main() -> None:
|
||||
migrate_contracts(args.in_dir, args.out_dir)
|
||||
migrate_deliveries(args.in_dir, args.out_dir)
|
||||
migrate_payments(args.in_dir, args.out_dir)
|
||||
migrate_parameters((args.in_dir, args.out_dir))
|
||||
|
||||
DB_CNX.close()
|
||||
|
||||
|
Reference in New Issue
Block a user