From b53cf3ba09f3d5c737e598f534601d375ea68d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20=C3=96rtenberg?= Date: Wed, 12 Nov 2025 15:06:59 +0100 Subject: [PATCH] added new version of findUniques --- findUniques2.py | 69 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 findUniques2.py diff --git a/findUniques2.py b/findUniques2.py new file mode 100644 index 0000000..8c66f1c --- /dev/null +++ b/findUniques2.py @@ -0,0 +1,69 @@ +import csv +print("Detta program rapporterar skillnader mellan verifikat som refererar till varandra genom beskrivningen av verifikatet. Den utgår från krediter och hittar matchande debeter") + +lines = [] +result = [] +with open("konto.csv", "r") as file: + lines = file.readlines() + +startLine = 12 + +# READING + +for i, line in enumerate(lines): + if "Konto" in line and "Verifikation" in line: + startLine = i + break + +with open("konto.csv", "w") as file: + file.writelines(lines[startLine:-1]) + +with open("konto.csv", "r") as file: + csvreader = csv.DictReader(file, delimiter=";") + for row in csvreader: + result.append(row) +with open("konto.csv", "w") as file: + file.writelines(lines) + +# FILE RESTORED, PARSE DATA + +krediter = {} +debeter = {} +header = result.pop(0) +for line in result: + if not line['"Verifikation"']: + continue + if line['"Kredit"'] and float(line['"Kredit"'].replace(",",".").replace(" ","")) > 0: + krediter[line['"Verifikation"'].replace(" ","")] = line + elif line['"Debet"'] and float(line['"Debet"'].replace(",",".").replace(" ","")) > 0: + debeter[line['"Verifikation"'].replace(" ","")] = line + + +sums = {} + +for kVerf, kLine in krediter.items(): + sums[kVerf] = {"value": -float(kLine['"Kredit"'].replace(",",".").replace(" ","")), "debets": []} + toDel = [] + for dVerf, dLine in debeter.items(): + if kVerf + " " in dLine['"Beskrivning"'] or dLine['"Beskrivning"'].endswith(kVerf): + sums[kVerf]["value"] = sums[kVerf]["value"] + float(dLine['"Debet"'].replace(",",".").replace(" ","")) + sums[kVerf]["debets"] = sums[kVerf]["debets"] + [dVerf] + toDel.append(dVerf) + for dVerf in toDel: + del debeter[dVerf] + + +for verf, a in sums.items(): + if abs(a["value"]) > 0.0001: + print(verf, ": ", a) + +#seen = {} +# +#for verf in content: +# if verf[1] not in seen.keys(): +# seen[verf[1]] = verf[0] +# else: +# seen.pop(verf[1]) +# +#for kr, verf in seen.items(): +# print(verf, kr)