Add client_parameter table
This commit is contained in:
@ -3,7 +3,14 @@ PRAGMA foreign_keys = ON;
|
|||||||
|
|
||||||
CREATE TABLE meta (
|
CREATE TABLE meta (
|
||||||
version INTEGER NOT NULL DEFAULT 1
|
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 (
|
CREATE TABLE country (
|
||||||
alpha2 TEXT NOT NULL CHECK (alpha2 REGEXP '^[A-Z]{2}$'),
|
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)
|
CONSTRAINT fk_AT_plz_AT_bundesland FOREIGN KEY (blnr) REFERENCES AT_bundesland (blnr)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
);
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE AT_plz_dest (
|
CREATE TABLE AT_plz_dest (
|
||||||
plz INTEGER NOT NULL CHECK (plz >= 1000 AND plz <= 9999),
|
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)
|
CONSTRAINT fk_branch_postal_dest FOREIGN KEY (country, postal_dest) REFERENCES postal_dest (country, id)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
);
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE wine_attribute (
|
CREATE TABLE wine_attribute (
|
||||||
attrid TEXT NOT NULL CHECK (attrid REGEXP '^[A-Z]+$'),
|
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)
|
CONSTRAINT fk_contract_member FOREIGN KEY (mgnr) REFERENCES member (mgnr)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
);
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE area_commitment (
|
CREATE TABLE area_commitment (
|
||||||
vnr INTEGER NOT NULL,
|
vnr INTEGER NOT NULL,
|
||||||
@ -420,7 +427,7 @@ CREATE TABLE season (
|
|||||||
CONSTRAINT fk_season_currency FOREIGN KEY (currency) REFERENCES currency (code)
|
CONSTRAINT fk_season_currency FOREIGN KEY (currency) REFERENCES currency (code)
|
||||||
ON UPDATE CASCADE
|
ON UPDATE CASCADE
|
||||||
ON DELETE RESTRICT
|
ON DELETE RESTRICT
|
||||||
);
|
) STRICT;
|
||||||
|
|
||||||
CREATE TABLE modifier (
|
CREATE TABLE modifier (
|
||||||
year INTEGER NOT NULL,
|
year INTEGER NOT NULL,
|
||||||
|
@ -13,7 +13,7 @@ import csv
|
|||||||
|
|
||||||
DIR: str
|
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',
|
'member', 'member_billing_address', 'contract',
|
||||||
'area_commitment', 'area_commitment_parcel', 'area_commitment_attribute',
|
'area_commitment', 'area_commitment_parcel', 'area_commitment_attribute',
|
||||||
'season', 'modifier', 'delivery', 'delivery_part', 'delivery_part_attribute', 'delivery_part_modifier', ]
|
'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
|
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:
|
def main() -> None:
|
||||||
global DB_CNX, QUIET, HKID, WG
|
global DB_CNX, QUIET, HKID, WG
|
||||||
|
|
||||||
@ -947,6 +982,7 @@ def main() -> None:
|
|||||||
migrate_contracts(args.in_dir, args.out_dir)
|
migrate_contracts(args.in_dir, args.out_dir)
|
||||||
migrate_deliveries(args.in_dir, args.out_dir)
|
migrate_deliveries(args.in_dir, args.out_dir)
|
||||||
migrate_payments(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()
|
DB_CNX.close()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user