Migrate auszahlung kurven
This commit is contained in:
@ -24,7 +24,16 @@ def main() -> None:
|
|||||||
cur.execute("SELECT data FROM payment_variant WHERE (year, avnr) = (?, ?)", payment_vars[-1])
|
cur.execute("SELECT data FROM payment_variant WHERE (year, avnr) = (?, ?)", payment_vars[-1])
|
||||||
data = json.loads(cur.fetchall()[0][0])
|
data = json.loads(cur.fetchall()[0][0])
|
||||||
az_sort = data['AuszahlungSorten']
|
az_sort = data['AuszahlungSorten']
|
||||||
curves = [{n: d for n, d in enumerate(c)} for c in az_sort['Kurven']]
|
curves = [
|
||||||
|
{
|
||||||
|
int(n[:-2]): d
|
||||||
|
for n, d in
|
||||||
|
[('50oe', c[sorted(c.keys(), key=lambda v: int(v[:-2]))[0]])] +
|
||||||
|
list(c.items()) +
|
||||||
|
[('120oe', c[sorted(c.keys(), key=lambda v: -int(v[:-2]))[0]])]
|
||||||
|
} if len(c) > 0 else {50: 0, 120: 0}
|
||||||
|
for c in az_sort['Kurven']
|
||||||
|
]
|
||||||
c_sort_idx = [sum(c.values()) / len(c) for c in curves]
|
c_sort_idx = [sum(c.values()) / len(c) for c in curves]
|
||||||
c_sort = sorted([i for i in range(len(curves))], key=lambda a: c_sort_idx[a])[::-1]
|
c_sort = sorted([i for i in range(len(curves))], key=lambda a: c_sort_idx[a])[::-1]
|
||||||
c_sort_2 = {c: i for i, c in enumerate(c_sort)}
|
c_sort_2 = {c: i for i, c in enumerate(c_sort)}
|
||||||
|
@ -1550,6 +1550,28 @@ def migrate_payments(in_dir: str, out_dir: str) -> None:
|
|||||||
if oe not in curves:
|
if oe not in curves:
|
||||||
curves.append(oe)
|
curves.append(oe)
|
||||||
azs[sortid][attrid][geb] = curves.index(oe)
|
azs[sortid][attrid][geb] = curves.index(oe)
|
||||||
|
for i, c in enumerate(curves):
|
||||||
|
n = {}
|
||||||
|
d = 0
|
||||||
|
for oe, p0, p1, p2 in zip(range(0, len(c) + 1), [0] + c, c, c[1:] + [c[len(c) - 1]]):
|
||||||
|
d1, d2 = round(p1 - p0, 4), round(p2 - p1, 4)
|
||||||
|
if d1 == d:
|
||||||
|
continue
|
||||||
|
d = d2
|
||||||
|
if p0 > 0:
|
||||||
|
n[f'{oe - 1}oe'] = p0
|
||||||
|
n[f'{oe}oe'] = p1
|
||||||
|
if c[len(c) - 1] > 0:
|
||||||
|
n[f'{len(c) - 1}oe'] = c[len(c) - 1]
|
||||||
|
keys = list(n.keys())
|
||||||
|
vals = list(n.values())
|
||||||
|
if len(n) >= 2 and vals[0] == vals[1]:
|
||||||
|
del n[keys[0]]
|
||||||
|
del n[keys[1]]
|
||||||
|
n = {keys[1]: vals[1], **n}
|
||||||
|
if len(n) == 1:
|
||||||
|
n = {'73oe': list(n.values())[0]}
|
||||||
|
curves[i] = n
|
||||||
azs['Kurven'] = curves
|
azs['Kurven'] = curves
|
||||||
azq = data['AuszahlungSortenQualitätsstufe']
|
azq = data['AuszahlungSortenQualitätsstufe']
|
||||||
for q in qual_map.get(p['AZNR'], []):
|
for q in qual_map.get(p['AZNR'], []):
|
||||||
|
Reference in New Issue
Block a user