new filter, fixed typos
This commit is contained in:
parent
e0d72db67d
commit
2d5395a260
@ -9,7 +9,8 @@ import logging
|
||||
import requests
|
||||
import hashlib
|
||||
import io
|
||||
import psycopg
|
||||
import psycopg as ps
|
||||
import psycopg_pool as ps_pool
|
||||
from rich import progress
|
||||
from rich.logging import RichHandler
|
||||
from rich.console import Console
|
||||
@ -18,45 +19,97 @@ install(show_locals=True, locals_max_length=150, locals_max_string=300)
|
||||
|
||||
class Company:
|
||||
def __init__(self, data, report):
|
||||
self.bvdid = data["BvD-ID"]
|
||||
self.data = data
|
||||
self.bvdid = data["BvD ID Nummer"]
|
||||
self.name = data["Unternehmensname"]
|
||||
try:
|
||||
self.gv2020 = int(data["Gewinn/Verlust vor Steuern EUR 2020"])
|
||||
if "Gewinn/(Verlust) vor Steuern EUR 2020" in data.keys() and data["Gewinn/(Verlust) vor Steuern EUR 2020"]:
|
||||
self.gv2020 = int(data["Gewinn/(Verlust) vor Steuern EUR 2020"])
|
||||
elif "Gewinn/Verlust vor Steuern EUR 2020" in data.keys() and data["Gewinn/Verlust vor Steuern EUR 2020"]:
|
||||
self.gv2020 = int(data["Gewinn/Verlust vor Steuern EUR 2020"])
|
||||
else:
|
||||
self.gv2020 = None
|
||||
except ValueError:
|
||||
self.gv2020 = None
|
||||
try:
|
||||
self.gv2021 = int(data["Gewinn/Verlust vor Steuern EUR 2021"])
|
||||
if "Gewinn/(Verlust) vor Steuern EUR 2021" in data.keys() and data["Gewinn/(Verlust) vor Steuern EUR 2021"]:
|
||||
self.gv2021 = int(data["Gewinn/(Verlust) vor Steuern EUR 2021"])
|
||||
elif "Gewinn/Verlust vor Steuern EUR 2021" in data.keys() and data["Gewinn/Verlust vor Steuern EUR 2021"]:
|
||||
self.gv2021 = int(data["Gewinn/Verlust vor Steuern EUR 2021"])
|
||||
else:
|
||||
self.gv2021 = None
|
||||
except ValueError:
|
||||
self.gv2021 = None
|
||||
try:
|
||||
self.gv2022 = int(data["Gewinn/Verlust vor Steuern EUR 2022"])
|
||||
if "Gewinn/(Verlust) vor Steuern EUR 2022" in data.keys() and data["Gewinn/(Verlust) vor Steuern EUR 2022"]:
|
||||
self.gv2022 = int(data["Gewinn/(Verlust) vor Steuern EUR 2022"])
|
||||
elif "Gewinn/Verlust vor Steuern EUR 2022" in data.keys() and data["Gewinn/Verlust vor Steuern EUR 2022"]:
|
||||
self.gv2022 = int(data["Gewinn/Verlust vor Steuern EUR 2022"])
|
||||
else:
|
||||
self.gv2022 = None
|
||||
except ValueError:
|
||||
self.gv2022 = None
|
||||
try:
|
||||
self.gv2023 = int(data["Gewinn/Verlust vor Steuern EUR 2023"])
|
||||
if "Gewinn/(Verlust) vor Steuern EUR 2023" in data.keys() and data["Gewinn/(Verlust) vor Steuern EUR 2023"]:
|
||||
self.gv2023 = int(data["Gewinn/(Verlust) vor Steuern EUR 2023"])
|
||||
elif "Gewinn/Verlust vor Steuern EUR 2023" in data.keys() and data["Gewinn/Verlust vor Steuern EUR 2023"]:
|
||||
self.gv2023 = int(data["Gewinn/Verlust vor Steuern EUR 2023"])
|
||||
else:
|
||||
self.gv2023 = None
|
||||
except ValueError:
|
||||
self.gv2023 = None
|
||||
try:
|
||||
self.gv2024 = int(data["Gewinn/Verlust vor Steuern EUR 2024"])
|
||||
if "Gewinn/(Verlust) vor Steuern EUR 2024" in data.keys() and data["Gewinn/(Verlust) vor Steuern EUR 2024"]:
|
||||
self.gv2024 = int(data["Gewinn/(Verlust) vor Steuern EUR 2024"])
|
||||
elif "Gewinn/Verlust vor Steuern EUR 2024" in data.keys() and data["Gewinn/Verlust vor Steuern EUR 2024"]:
|
||||
self.gv2024 = int(data["Gewinn/Verlust vor Steuern EUR 2024"])
|
||||
else:
|
||||
self.gv2024 = None
|
||||
except ValueError:
|
||||
self.gv2024 = None
|
||||
try:
|
||||
self.gn2020 = int(data["Gewinn/Verlust nach Steuern EUR 2020"])
|
||||
if "Gewinn/(Verlust) nach Steuern EUR 2020" in data.keys() and data["Gewinn/(Verlust) nach Steuern EUR 2020"]:
|
||||
self.gn2020 = int(data["Gewinn/(Verlust) nach Steuern EUR 2020"])
|
||||
elif "Gewinn/Verlust nach Steuern EUR 2020" in data.keys() and data["Gewinn/Verlust nach Steuern EUR 2020"]:
|
||||
self.gn2020 = int(data["Gewinn/Verlust nach Steuern EUR 2020"])
|
||||
else:
|
||||
self.gn2020 = None
|
||||
except ValueError:
|
||||
self.gn2020 = None
|
||||
try:
|
||||
self.gn2021 = int(data["Gewinn/Verlust nach Steuern EUR 2021"])
|
||||
if "Gewinn/(Verlust) nach Steuern EUR 2021" in data.keys() and data["Gewinn/(Verlust) nach Steuern EUR 2021"]:
|
||||
self.gn2021 = int(data["Gewinn/(Verlust) nach Steuern EUR 2021"])
|
||||
elif "Gewinn/Verlust nach Steuern EUR 2021" in data.keys() and data["Gewinn/Verlust nach Steuern EUR 2021"]:
|
||||
self.gn2021 = int(data["Gewinn/Verlust nach Steuern EUR 2021"])
|
||||
else:
|
||||
self.gn2021 = None
|
||||
except ValueError:
|
||||
self.gn2021 = None
|
||||
try:
|
||||
self.gn2022 = int(data["Gewinn/Verlust nach Steuern EUR 2022"])
|
||||
if "Gewinn/(Verlust) nach Steuern EUR 2022" in data.keys() and data["Gewinn/(Verlust) nach Steuern EUR 2022"]:
|
||||
self.gn2022 = int(data["Gewinn/(Verlust) nach Steuern EUR 2022"])
|
||||
elif "Gewinn/Verlust nach Steuern EUR 2022" in data.keys() and data["Gewinn/Verlust nach Steuern EUR 2022"]:
|
||||
self.gn2022 = int(data["Gewinn/Verlust nach Steuern EUR 2022"])
|
||||
else:
|
||||
self.gn2022 = None
|
||||
except ValueError:
|
||||
self.gn2022 = None
|
||||
try:
|
||||
self.gn2023 = int(data["Gewinn/Verlust nach Steuern EUR 2023"])
|
||||
if "Gewinn/(Verlust) nach Steuern EUR 2023" in data.keys() and data["Gewinn/(Verlust) nach Steuern EUR 2023"]:
|
||||
self.gn2023 = int(data["Gewinn/(Verlust) nach Steuern EUR 2023"])
|
||||
elif "Gewinn/Verlust nach Steuern EUR 2023" in data.keys() and data["Gewinn/Verlust nach Steuern EUR 2023"]:
|
||||
self.gn2023 = int(data["Gewinn/Verlust nach Steuern EUR 2023"])
|
||||
else:
|
||||
self.gn2023 = None
|
||||
except ValueError:
|
||||
self.gn2023 = None
|
||||
try:
|
||||
self.gn2024 = int(data["Gewinn/Verlust nach Steuern EUR 2024"])
|
||||
if "Gewinn/(Verlust) nach Steuern EUR 2024" in data.keys() and data["Gewinn/(Verlust) nach Steuern EUR 2024"]:
|
||||
self.gn2024 = int(data["Gewinn/(Verlust) nach Steuern EUR 2024"])
|
||||
elif "Gewinn/Verlust nach Steuern EUR 2024" in data.keys() and data["Gewinn/Verlust nach Steuern EUR 2024"]:
|
||||
self.gn2024 = int(data["Gewinn/Verlust nach Steuern EUR 2024"])
|
||||
else:
|
||||
self.gn2024 = None
|
||||
except ValueError:
|
||||
self.gn2024 = None
|
||||
try:
|
||||
@ -102,21 +155,32 @@ class Company:
|
||||
self.report = report
|
||||
|
||||
def calculate_tax(self):
|
||||
if not self.st2020:
|
||||
if not self.st2020 and self.gv2020 != None and self.gn2020 != None:
|
||||
self.st2020 = self.gv2020 - self.gn2020
|
||||
if not self.st2021:
|
||||
if not self.st2021 and self.gv2021 != None and self.gn2021 != None:
|
||||
self.st2021 = self.gv2021 - self.gn2021
|
||||
if not self.st2022:
|
||||
if not self.st2022 and self.gv2022 != None and self.gn2022 != None:
|
||||
self.st2022 = self.gv2022 - self.gn2022
|
||||
if not self.st2023:
|
||||
if not self.st2023 and self.gv2023 != None and self.gn2023 != None:
|
||||
self.st2023 = self.gv2023 - self.gn2023
|
||||
if not self.st2024:
|
||||
if not self.st2024 and self.gv2024 != None and self.gn2024 != None:
|
||||
self.st2024 = self.gv2024 - self.gn2024
|
||||
|
||||
def validate(self):
|
||||
#fallback, in case tax wasn't already calculated
|
||||
self.calculate_tax()
|
||||
if self.gv2020 and self.gv2021 and self.gv2022 and self.gv2023 and self.gv2024 and self.gn2020 and self.gn2021 and self.gn2022 and self.gn2023 and self.gn2024 and self.st2020 and self.st2021 and self.st2022 and self.st2023 and self.st2024 and self.ek2020 and self.ek2021 and self.ek2022 and self.ek2023 and self.ek2024:
|
||||
if self.gv2020 and self.gn2020 and self.st2020 and self.ek2020:
|
||||
self.report.valid_data += 1
|
||||
return True
|
||||
self.report.invalid_data +=1
|
||||
if self.gv2021 and self.gn2021 and self.st2021 and self.ek2021:
|
||||
self.report.valid_data += 1
|
||||
return True
|
||||
self.report.invalid_data +=1
|
||||
if self.gv2022 and self.gn2022 and self.st2022 and self.ek2022:
|
||||
self.report.valid_data += 1
|
||||
return True
|
||||
if self.gv2024 and self.gn2024 and self.st2024 and self.ek2024:
|
||||
self.report.valid_data += 1
|
||||
return True
|
||||
self.report.invalid_data +=1
|
||||
@ -161,11 +225,20 @@ class dataimport:
|
||||
AUTHTOKEN = None
|
||||
self.valid_data = 0
|
||||
self.invalid_data = 0
|
||||
self.importer()
|
||||
with ps_pool.ConnectionPool(conninfo="postgresql:///bachelorarbeit?sslmode=require&port=5432&host=denkena-consulting.com&passfile=/home/user/bachelorarbeit_importer/pgpass&user=bachelorarbeit_w&hostaddr=94.16.116.86", min_size=4, max_size=10, open=True, ) as pool:
|
||||
with pool.connection() as conn:
|
||||
self.db_setup(conn)
|
||||
self.importer(conn)
|
||||
#AUTHTOKEN = self.authtoken
|
||||
#self.log.info('AUTHTOKEN SET!')
|
||||
|
||||
def importer(self):
|
||||
def db_setup(self, conn):
|
||||
with conn.cursor() as cur:
|
||||
cur.execute("CREATE TABLE IF NOT EXISTS test( bvd_id serial PRIMARY KEY)")
|
||||
pass
|
||||
|
||||
|
||||
def importer(self, conn):
|
||||
with self.progress:
|
||||
if AUTHTOKEN is not None:
|
||||
self.authtoken = AUTHTOKEN
|
||||
@ -180,8 +253,7 @@ class dataimport:
|
||||
rownum += 1
|
||||
continue
|
||||
for key in csv_reader.fieldnames:
|
||||
if not row[key] == '':
|
||||
self.data[key] = row[key]
|
||||
self.data[key] = row[key]
|
||||
self.comp_import(self.data)
|
||||
#if self.check_duplicate(data):
|
||||
# self.patch_record(data)
|
||||
@ -209,7 +281,7 @@ class dataimport:
|
||||
|
||||
def comp_import(self, data):
|
||||
current = Company(data, report=self)
|
||||
current.all_valid()
|
||||
current.validate()
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user