Add area_commitment_parcel table
This commit is contained in:
@ -652,10 +652,12 @@ def migrate_contracts(in_dir: str, out_dir: str) -> None:
|
||||
|
||||
with open(f'{out_dir}/contract.csv', 'w+') as f_c, \
|
||||
open(f'{out_dir}/area_commitment.csv', 'w+') as f_fb, \
|
||||
open(f'{out_dir}/area_commitment_parcel.csv', 'w+') as f_parc, \
|
||||
open(f'{out_dir}/area_commitment_attribute.csv', 'w+') as f_attr:
|
||||
f_c.write('vnr;mgnr;year_from;year_to\n')
|
||||
f_fb.write('vnr;kgnr;gstnr;rdnr;area;sortid;cultid\n')
|
||||
f_attr.write('vnr;kgnr;gstnr;attrid\n')
|
||||
f_c.write('vnr;mgnr;year_from;year_to;comment\n')
|
||||
f_fb.write('vnr;sortid;cultid;area\n')
|
||||
f_parc.write('vnr;kgnr;gstnr;rdnr;area\n')
|
||||
f_attr.write('vnr;attrid\n')
|
||||
|
||||
for fb in csv.parse_dict(f'{in_dir}/TFlaechenbindungen.csv'):
|
||||
if fb['Von'] is None and fb['Bis'] is None:
|
||||
@ -668,28 +670,26 @@ def migrate_contracts(in_dir: str, out_dir: str) -> None:
|
||||
if mgnr not in MEMBER_MAP:
|
||||
continue
|
||||
|
||||
f_c.write(csv.format_row(
|
||||
vnr, mgnr, fb['Von'], fb['Bis'] if fb['Bis'] and fb['Bis'] < 3000 else None
|
||||
))
|
||||
gstnrs = parse_gstnrs(parz, kgnr, fb['MGNR'])
|
||||
|
||||
area = int(fb['Flaeche'])
|
||||
gst_area = int(area / (len(gstnrs) or 1))
|
||||
|
||||
gstnrs = parse_gstnrs(parz, kgnr, fb['MGNR'])
|
||||
comment = None
|
||||
if parz is None or parz == '0000':
|
||||
invalid(mgnr, 'GstNr.', f'{kgnr or 0:05}-{parz}')
|
||||
gstnrs = ['99999']
|
||||
gstnrs = []
|
||||
elif len(gstnrs) > 1 or (len(gstnrs) == 1 and gstnrs[0] != parz):
|
||||
convert(mgnr, 'GstNr.', f'{kgnr or 0:05}-{parz or ""}', ', '.join(gstnrs))
|
||||
if len(gstnrs) == 0:
|
||||
comment = f'KG {kgnr}: {parz}'
|
||||
|
||||
to = fb['Bis'] if fb['Bis'] and fb['Bis'] < 3000 else None
|
||||
f_c.write(csv.format_row(vnr, mgnr, fb['Von'], to, comment))
|
||||
|
||||
f_fb.write(csv.format_row(vnr, fb['SNR'], CULTIVATION_MAP[fb['BANR']], area))
|
||||
if fb['SANR']:
|
||||
f_attr.write(csv.format_row(vnr, fb['SANR']))
|
||||
for i, gstnr in enumerate(gstnrs):
|
||||
a = area - gst_area * (len(gstnrs) - 1) if i == 0 else gst_area
|
||||
rdnr = REED_MAP[fb['RNR']][1] if fb['RNR'] else None
|
||||
f_fb.write(csv.format_row(
|
||||
vnr, kgnr, gstnr, rdnr, a, fb['SNR'], CULTIVATION_MAP[fb['BANR']]
|
||||
))
|
||||
if fb['SANR']:
|
||||
f_attr.write(csv.format_row(vnr, kgnr, gstnr, fb['SANR']))
|
||||
f_parc.write(csv.format_row(vnr, kgnr, gstnr, rdnr, area if len(gstnrs) == 1 else None))
|
||||
|
||||
|
||||
def fix_deliveries(deliveries: Iterable[Dict[str, Any]]) -> Iterable[Tuple[str, List[int], datetime.date]]:
|
||||
|
Reference in New Issue
Block a user