Migrate Liefermengen
This commit is contained in:
@ -608,6 +608,27 @@ def migrate_cultivations(in_dir: str, out_dir: str) -> None:
|
||||
f.row(cultid, name)
|
||||
|
||||
|
||||
def migrate_area_commitment_types(in_dir: str, out_dir: str) -> None:
|
||||
with utils.csv_open(f'{out_dir}/area_commitment_type.csv') as f:
|
||||
f.header('vtrgid', 'sortid', 'attrid_1', 'attrid_2', 'disc',
|
||||
'min_kg_per_ha', 'max_kg_per_ha', 'penalty_amount')
|
||||
for t in utils.csv_parse_dict(f'{in_dir}/TLiefermengen.csv'):
|
||||
sortid: str = t['SNR']
|
||||
if not sortid or sortid == 'SV':
|
||||
continue
|
||||
menge = int(t['ErwarteteLiefermengeProHa'])
|
||||
f.row(sortid + (t['SANR'] or ''), sortid[:2], t['SANR'] or sortid[2:] or None, None, None,
|
||||
menge, menge, None)
|
||||
bio = []
|
||||
if WG == 'MATZEN':
|
||||
bio = ['GV', 'ZW', 'MT']
|
||||
f.row('BM', 'BM', None, None, None, 5000, 5000, None)
|
||||
elif WG == 'GWK':
|
||||
bio = ['GV', 'ZW', 'WR', 'MT', 'RR', 'WB', 'CH', 'MU']
|
||||
for sortid in bio:
|
||||
f.row(f'{sortid}B', sortid, 'B', None, None, None, None, None)
|
||||
|
||||
|
||||
def normalize_name(family_name: str, given_name: str) -> Tuple[Optional[str], Optional[str], Optional[str], Optional[str], Optional[str], Optional[str]]:
|
||||
letters = string.ascii_letters + 'äöüßÄÖÜẞ-'
|
||||
double_names = ['eva maria', 'maria theresia']
|
||||
@ -1148,11 +1169,9 @@ def migrate_area_commitments(in_dir: str, out_dir: str) -> None:
|
||||
new_reeds: Dict[Tuple[int, int], int] = {}
|
||||
|
||||
with utils.csv_open(f'{out_dir}/area_commitment.csv') as f_fb, \
|
||||
utils.csv_open(f'{out_dir}/area_commitment_attribute.csv') as f_attr, \
|
||||
utils.csv_open(f'{out_dir}/wb_rd.csv', 'a+') as f_rd:
|
||||
f_fb.header('fbnr', 'mgnr', 'sortid', 'cultid', 'area', 'kgnr', 'gstnr', 'rdnr',
|
||||
f_fb.header('fbnr', 'mgnr', 'vtrgid', 'cultid', 'area', 'kgnr', 'gstnr', 'rdnr',
|
||||
'year_from', 'year_to', 'comment')
|
||||
f_attr.header('fbnr', 'attrid')
|
||||
|
||||
for fb in utils.csv_parse_dict(f'{in_dir}/TFlaechenbindungen.csv'):
|
||||
if (fb['Von'] is None and fb['Bis'] is None) or fb['GNR'] is None:
|
||||
@ -1201,7 +1220,6 @@ def migrate_area_commitments(in_dir: str, out_dir: str) -> None:
|
||||
if WG == 'MATZEN':
|
||||
gstnrs = parse_gstnrs(parz, kgnr, fb['MGNR'])
|
||||
else:
|
||||
# TODO GWK GstNrs
|
||||
gstnrs = []
|
||||
comment, gstnr = None, None
|
||||
if parz is None or parz == '0000':
|
||||
@ -1209,17 +1227,15 @@ def migrate_area_commitments(in_dir: str, out_dir: str) -> None:
|
||||
invalid(mgnr, 'GstNr.', f'{lookup_kg_name(kgnr)} {kgnr or 0:05}-{parz}')
|
||||
gstnrs = []
|
||||
gstnr = '-'
|
||||
if len(gstnrs) == 0:
|
||||
if WG == 'MATZEN' and len(gstnrs) == 0:
|
||||
comment = f'KG {kgnr or 0:05}: {parz}'
|
||||
gstnr = format_gstnr(gstnrs) or gstnr or parz
|
||||
if parz != gstnr.replace('+', '/'):
|
||||
convert(mgnr, f'GstNr. ({fbnr})', parz, gstnr)
|
||||
|
||||
to = fb['Bis'] if fb['Bis'] and fb['Bis'] < 3000 else None
|
||||
f_fb.row(fbnr, mgnr, fb['SNR'], CULTIVATION_MAP[fb['BANR'] or 1], area,
|
||||
f_fb.row(fbnr, mgnr, fb['SNR'] + (fb['SANR'] or ''), CULTIVATION_MAP[fb['BANR'] or 1], area,
|
||||
kgnr, gstnr, rdnr, fb['Von'], to, comment)
|
||||
if fb['SANR']:
|
||||
f_attr.row(fbnr, fb['SANR'])
|
||||
|
||||
|
||||
def fix_deliveries(deliveries: Iterable[Dict[str, Any]]) -> Iterable[Tuple[str, List[int], datetime.date]]:
|
||||
@ -1599,7 +1615,7 @@ def migrate_payments(in_dir: str, out_dir: str) -> None:
|
||||
prec = pow(10, WGMASTER_PRECISION)
|
||||
return round(p1 * prec), round(p2 * prec), round(p3 * prec)
|
||||
|
||||
with utils.csv_open(f'{out_dir}/payment_delivery.csv') as f_del_pay:
|
||||
with utils.csv_open(f'{out_dir}/payment_delivery_part.csv') as f_del_pay:
|
||||
f_del_pay.header('year', 'did', 'dpnr', 'avnr', 'bucket_1', 'bucket_2', 'bucket_3', 'amount')
|
||||
deliveries = {d['LINR']: d for d in utils.csv_parse_dict(f'{in_dir}/TLieferungen.csv')}
|
||||
for linr, (y, did, dpnr) in DELIVERY_MAP.items():
|
||||
@ -1704,6 +1720,7 @@ def main() -> None:
|
||||
migrate_reeds(args.in_dir, args.out_dir)
|
||||
migrate_attributes(args.in_dir, args.out_dir)
|
||||
migrate_cultivations(args.in_dir, args.out_dir)
|
||||
migrate_area_commitment_types(args.in_dir, args.out_dir)
|
||||
migrate_members(args.in_dir, args.out_dir)
|
||||
migrate_area_commitments(args.in_dir, args.out_dir)
|
||||
migrate_deliveries(args.in_dir, args.out_dir)
|
||||
|
Reference in New Issue
Block a user