70 lines
2.0 KiB
Python
70 lines
2.0 KiB
Python
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)
|