added new version of findUniques
This commit is contained in:
parent
b1834fbfcb
commit
b53cf3ba09
69
findUniques2.py
Normal file
69
findUniques2.py
Normal file
@ -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)
|
||||
Loading…
x
Reference in New Issue
Block a user