From ef07fa5a2e0b9eaf4f484635f8e553cd72b7444b Mon Sep 17 00:00:00 2001 From: Mathias Schneider Date: Sun, 13 Sep 2026 12:11:41 +0200 Subject: [PATCH] comdirect complete dummy generation --- ...late.csv => comdirect_export_template.txt} | 0 scripts/dummy_data/generate_dummies_b4w.py | 4 +- .../dummy_data/generate_dummies_comdirect.py | 61 ++++++++++ src/models/comdirect.py | 18 +-- tests/factories.py | 26 ++-- tests/test_data/comdirect_export_dummy_01.txt | 115 ++++++++++++++++++ 6 files changed, 202 insertions(+), 22 deletions(-) rename scripts/dummy_data/{comdirect_export_template.csv => comdirect_export_template.txt} (100%) create mode 100644 scripts/dummy_data/generate_dummies_comdirect.py create mode 100644 tests/test_data/comdirect_export_dummy_01.txt diff --git a/scripts/dummy_data/comdirect_export_template.csv b/scripts/dummy_data/comdirect_export_template.txt similarity index 100% rename from scripts/dummy_data/comdirect_export_template.csv rename to scripts/dummy_data/comdirect_export_template.txt diff --git a/scripts/dummy_data/generate_dummies_b4w.py b/scripts/dummy_data/generate_dummies_b4w.py index 07cb275..fa9006b 100644 --- a/scripts/dummy_data/generate_dummies_b4w.py +++ b/scripts/dummy_data/generate_dummies_b4w.py @@ -4,10 +4,10 @@ from pathlib import Path from tests.factories import B4wExportFactory NUMBER_OF_ROWS = 50 -PATH_DEFAULT = Path("tests/test_data/b4w_export_dummy_01.csv") +DEFAULT_PATH = Path("tests/test_data/b4w_export_dummy_01.csv") -def save_csv(path: Path = PATH_DEFAULT): +def save_csv(path: Path = DEFAULT_PATH): data = B4wExportFactory.batch(NUMBER_OF_ROWS) row_fields = list(data[0].parameters_to_dict()) path.parent.mkdir(parents=True, exist_ok=True) diff --git a/scripts/dummy_data/generate_dummies_comdirect.py b/scripts/dummy_data/generate_dummies_comdirect.py new file mode 100644 index 0000000..ecba557 --- /dev/null +++ b/scripts/dummy_data/generate_dummies_comdirect.py @@ -0,0 +1,61 @@ +from pathlib import Path + +from tests.factories import ( + ComdirectCreditCardFactory, + ComdirectDepotFactory, + ComdirectGiroFactory, +) + +DEFAULT_PATH = Path("tests/test_data/comdirect_export_dummy_01.txt") +TEMPLATE_PATH = Path("scripts/dummy_data/comdirect_export_template.txt") + +NUMBER_OF_ROWS_GIRO = 50 +NUMBER_OF_ROWS_CREDIT = 20 +NUMBER_OF_ROWS_TAGESGELD = 10 +NUMBER_OF_ROWS_DEPOT = 10 + + +def save(path: Path = DEFAULT_PATH): + with TEMPLATE_PATH.open("r", encoding="latin-1") as fid: + txt_temp = fid.read() + assert isinstance(txt_temp, str) + + batches = { + "giro": { + "data": ComdirectGiroFactory.batch(NUMBER_OF_ROWS_GIRO), + "table_txt": "", + }, + "credit": { + "data": ComdirectCreditCardFactory.batch(NUMBER_OF_ROWS_CREDIT), + "table_txt": "", + }, + "tagesgled": { + "data": ComdirectGiroFactory.batch(NUMBER_OF_ROWS_TAGESGELD), + "table_txt": "", + }, + "depot": { + "data": ComdirectDepotFactory.batch(NUMBER_OF_ROWS_DEPOT), + "table_txt": "", + }, + } + + for batch in batches.values(): + data = batch.get("data") + assert isinstance(data, list) + lines = [data[0].get_orig_headers()] + lines = lines + [row.get_orig_row() for row in data] + batch["table_txt"] = "\n".join(lines) + + txt = txt_temp.format( + table_giro=batches["giro"]["table_txt"], + table_credit_card=batches["credit"]["table_txt"], + table_tagesgeld=batches["tagesgled"]["table_txt"], + table_depot=batches["depot"]["table_txt"], + ) + + with path.open("w", newline="") as fid: + fid.write(txt) + + +if __name__ == "__main__": + save() diff --git a/src/models/comdirect.py b/src/models/comdirect.py index 4b9f967..2578e71 100644 --- a/src/models/comdirect.py +++ b/src/models/comdirect.py @@ -78,7 +78,7 @@ class ComdirectGiro(ComdirectBase): def parse_date_book(cls, date_str: str) -> date | None: return _parse_date_german(date_str) - def parameters_to_dict(self, by_name=True) -> dict[str, str]: + def parameters_to_dict(self, by_name: bool = True) -> dict[str, str]: parameters = dict(**super().parameters_to_dict(by_name=by_name)) parameters.update( { @@ -94,11 +94,6 @@ class ComdirectGiro(ComdirectBase): class ComdirectCreditCard(ComdirectGiro): # # Fields from parents: - # date_val - # amount_eur - # date_book - # type - # text date_book: date | None = Field(alias="Buchungstag", examples=["07.09.2026"]) date_val: date | None = Field(alias="Umsatztag", default=None) type: str = Field( @@ -112,10 +107,8 @@ class ComdirectCreditCard(ComdirectGiro): alias="Umsatz in EUR", examples=["32,43"], default=None ) - def parameters_to_str(self, sep=", ", str_qualifier=False): ... - - def parameters_to_dict(self) -> dict[str, str]: - parameters = dict(**super().parameters_to_dict()) + def parameters_to_dict(self, by_name: bool = True) -> dict[str, str]: + parameters = dict(**super().parameters_to_dict(by_name=by_name)) parameters.update( { "Umsatztag": self._date2str(self.date_val), @@ -127,7 +120,6 @@ class ComdirectCreditCard(ComdirectGiro): class ComdirectDepot(ComdirectBase): # # Fields from parents: - # date_val # amount_eur date_val: date | None = Field(alias="Geschäftstag") num: Decimal = Field(alias="Stück / Nom.") @@ -141,8 +133,8 @@ class ComdirectDepot(ComdirectBase): def parse_decimals(cls, decimal_in: str) -> Decimal: return _parse_decimal_german(decimal_in) - def parameters_to_dict(self) -> dict[str, str]: - parameters = dict(**super().parameters_to_dict()) + def parameters_to_dict(self, by_name: bool = True) -> dict[str, str]: + parameters = dict(**super().parameters_to_dict(by_name=by_name)) parameters.update( { "Geschäftstag": self._date2str(self.date_val), diff --git a/tests/factories.py b/tests/factories.py index d2d9726..a96fbd4 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -28,16 +28,17 @@ def _amount() -> Decimal: def _amount_eur() -> str: """Generate German-formatted decimal string (e.g., '32,43').""" - val = B4wExportFactory.__faker__.pydecimal( - left_digits=6, - right_digits=2, - positive=True, - min_value=Decimal("0.01"), + val = Faker().pydecimal( + right_digits=2, min_value=Decimal("-4000.00"), max_value=Decimal("4000.00") ) # Format as German string with comma decimal separator return f"{val:.2f}".replace(".", ",").strip() +def _german_date() -> str: + return Faker().date("%d.%m.%Y") + + def _sentence() -> str: return B4wExportFactory.__faker__.sentence( nb_words=8, @@ -54,8 +55,7 @@ def _iban() -> str: def _iban_or_none() -> str: - faker = B4wExportFactory.__faker__ - return _faker_or_none(faker, faker.iban(), default="") + return _faker_or_none(Faker(), Faker().iban(), default="") class B4wExportFactory(ModelFactory[B4wExport]): @@ -76,13 +76,25 @@ class ComdirectGiroFactory(ModelFactory[ComdirectGiro]): text = Use(_sentence) amount_eur = Use(_amount_eur) + date_val = Use(_german_date) + date_book = Use(_german_date) class ComdirectCreditCardFactory(ModelFactory[ComdirectCreditCard]): __faker__ = Faker("de_DE") __use_examples__ = True + text = Use(_sentence) + amount_eur = Use(_amount_eur) + date_val = Use(_german_date) + date_book = Use(_german_date) + class ComdirectDepotFactory(ModelFactory[ComdirectDepot]): __faker__ = Faker("de_DE") __use_examples__ = True + + amount_eur = Use(_amount_eur) + date_val = Use(_german_date) + num = Use(_amount_eur) + spot_price = Use(_amount_eur) diff --git a/tests/test_data/comdirect_export_dummy_01.txt b/tests/test_data/comdirect_export_dummy_01.txt new file mode 100644 index 0000000..6c35df9 --- /dev/null +++ b/tests/test_data/comdirect_export_dummy_01.txt @@ -0,0 +1,115 @@ +; +"Umsätze Girokonto";"Zeitraum: 180 Tage"; +"Neuer Kontostand";"2.363,30 EUR"; + +"Wertstellung (Valuta)";"Umsatz in EUR";"Buchungstag";"Vorgang";"Buchungstext" +"12.01.2023";"-2.494,62";"28.09.2013";"Kartenumsatz";"Jeder Feuer fünf Hand Kind Jahr plötzlich leben." +"03.11.2014";"3.840,37";"12.02.2023";"Kartenumsatz";"Nehmen Name schnell Tier schreien gefährlich Arzt Monate." +"07.09.2008";"-1.895,07";"05.07.1999";"Kartenumsatz";"Frau stehen bleiben Minute Hund ein Fisch gern." +"23.06.1971";"1.996,11";"27.05.2015";"Kartenumsatz";"Glück wie doch tief gefährlich rennen schlafen Milch." +"28.05.1998";"3.183,63";"23.08.1993";"Lastschrift / Belastung";"Vom braun Seite fiel arbeiten bin kommen wichtig." +"20.08.1972";"707,94";"22.10.2001";"Kartenumsatz";"Auch letzte böse geben kurz nämlich es nass." +"21.09.2024";"-3.019,63";"25.12.1989";"Lastschrift / Belastung";"Boden böse denken oder sie denken später Kind." +"09.06.2016";"-2.908,98";"30.01.1978";"Kartenumsatz";"Stadt sofort nein Lehrerin fünf reiten gehen Haare." +"09.03.1994";"-2.972,60";"21.11.2009";"Lastschrift / Belastung";"Laut Weihnachten wenig dauern Schuh schwer alle nächste." +"30.11.2017";"1.994,76";"29.09.2011";"Lastschrift / Belastung";"Früher ob darauf krank wo Leute nach für." +"18.08.2013";"2.925,64";"16.02.2011";"Lastschrift / Belastung";"Weg wirklich Freude reich da erst man sind." +"19.10.1973";"-.837,10";"04.09.1987";"Lastschrift / Belastung";"Los mögen Stunde Weihnachten nass wo drei ohne." +"15.09.1975";"3.691,37";"19.01.2010";"Kartenumsatz";"Treffen glauben Spiel gab will vom waschen antworten." +"10.07.2011";"3.650,99";"16.02.2012";"Lastschrift / Belastung";"Katze seit freuen freuen den Eis die traurig." +"07.05.2022";"722,12";"12.01.1989";"Lastschrift / Belastung";"Tun an als finden wie klein aber nun." +"06.02.2004";"1.499,05";"20.09.1986";"Lastschrift / Belastung";"Oder natürlich Essen zur rennen Platz spielen Monat." +"26.10.2009";"-3.454,94";"21.06.2024";"Kartenumsatz";"Es Erde Hand bauen Winter gerade böse vom." +"03.07.2013";"2.746,42";"23.01.1988";"Kartenumsatz";"Natürlich schon Tier Opa Fußball Stadt brauchen kochen." +"25.06.2014";"1.487,38";"26.11.1979";"Lastschrift / Belastung";"Dunkel her möglich essen Pferd Stadt ziehen seit." +"16.05.2009";"1.866,68";"21.12.1994";"Lastschrift / Belastung";"Genau wer glauben erklären nennen schicken Hilfe stellen." +"26.12.1998";"-1.925,12";"06.02.1992";"Lastschrift / Belastung";"Katze gegen wo stellen uns sprechen fertig nah." +"24.01.1996";"-1.089,91";"30.03.1992";"Lastschrift / Belastung";"Mich los Essen Lehrerin hinter heißen danach weit." +"21.07.1973";"-3.206,61";"27.08.1984";"Kartenumsatz";"Dein Schuh Garten glauben Vater Opa die Gott." +"22.11.1981";"1.112,51";"25.06.1974";"Lastschrift / Belastung";"Krank fast Papa verlieren Kopf Monate endlich ruhig." +"01.11.1973";"-2.077,99";"05.08.2017";"Lastschrift / Belastung";"Ein liegen See jung wie Name Sonntag ihm." +"26.08.1972";"-4.000,00";"25.01.2025";"Lastschrift / Belastung";"Darauf in dauern schön las jeder Freude Auto." +"21.06.1989";"-3.639,78";"04.08.1982";"Kartenumsatz";"Wissen merken nie Essen Rad sitzen wo letzte." +"02.12.1982";"-3.371,26";"19.07.2005";"Lastschrift / Belastung";"Setzen so dabei wenn es Hunger Meer Hase." +"16.05.1987";"-1.715,06";"15.10.1984";"Lastschrift / Belastung";"Feuer Wald vor wo auf wohl fressen Haare." +"05.04.2024";"322,78";"11.07.1988";"Lastschrift / Belastung";"Her Pferd zusammen arbeiten schenken gar Lehrer hinter." +"25.12.1984";"397,36";"15.03.1978";"Kartenumsatz";"Essen blau deshalb laufen für am sieht weinen." +"19.07.1970";"-2.245,70";"22.05.1991";"Kartenumsatz";"Vorbei wird braun bis Tier als erschrecken Ende." +"21.11.2019";"732,25";"19.06.1993";"Lastschrift / Belastung";"Acht Minutenmir man böse natürlich rund immer heißen." +"28.10.2003";"2.397,64";"21.07.2026";"Kartenumsatz";"Arzt kommen haben lassen fünf wer gar kochen." +"16.10.1973";"2.271,59";"27.02.1987";"Lastschrift / Belastung";"Blume Auge weiter böse fallen Essen Erde kam." +"12.01.2005";"1.472,05";"02.12.2006";"Kartenumsatz";"Lehrerin verkaufen Wald ziehen hin lesen Hilfe klettern." +"02.05.2015";"2.284,43";"08.08.1991";"Lastschrift / Belastung";"Zu Freude Geld will Glück die seit vielleicht." +"18.09.2012";"-1.940,73";"16.04.2016";"Lastschrift / Belastung";"So ein Mensch schenken am wir wollen merken." +"13.03.2010";"1.899,59";"10.02.1997";"Kartenumsatz";"Das auch glauben Tür gewinnen schreien fangen Flasche." +"01.03.1983";"3.566,27";"27.03.2015";"Kartenumsatz";"Bekommen warum ja wohnen gefährlich fährt langsam Monat." +"14.01.2011";"-2.962,06";"07.03.2010";"Lastschrift / Belastung";"Gesund Minutenmir etwas fallen Nacht schaffen nach ihr." +"30.05.2000";"-1.915,23";"29.08.1979";"Kartenumsatz";"Nennen leicht Name Schuh Bild reiten laut letzte." +"11.10.1970";"-3.359,95";"31.05.2025";"Lastschrift / Belastung";"Den singen Wald Geschenk Wald durch Stück Oma." +"10.09.2012";"3.953,53";"15.03.1993";"Kartenumsatz";"Um Opa fragen müssen endlich Bein leben zum." +"21.11.2012";"-1.197,06";"17.04.1999";"Kartenumsatz";"Ist also wo Eis zum Stück kommen Hunger." +"12.07.1996";"2.381,22";"23.04.2010";"Lastschrift / Belastung";"Dich Auge können Stück seit fliegen trinken können." +"13.03.1988";"1.748,03";"01.06.1996";"Lastschrift / Belastung";"Berg Leben steigen Licht nehmen vom Hilfe Kind." +"29.12.1979";"1.727,59";"26.07.1998";"Lastschrift / Belastung";"Nämlich laufen Stelle nächste noch schwimmen Wagen grün." +"09.02.1973";"-.393,09";"28.12.1979";"Lastschrift / Belastung";"Reich Onkel schön danach Flasche klein am wahr." +"12.11.1982";"727,08";"26.04.2001";"Kartenumsatz";"Lustig dem zehn mich fressen Straße Auto langsam." + +"Alter Kontostand";"1.632,48 EUR"; + +"Umsätze Visa-Karte (Kreditkarte)";"Zeitraum: 180 Tage"; +"Neuer Kontostand";"0,00 EUR"; + +"Wertstellung (Valuta)";"Umsatz in EUR";"Buchungstag";"Vorgang";"Buchungstext";"Umsatztag";"Referenz" +"10.08.2009";"846,45";"19.02.1980";"Kartenumsatz";"Zehn stehen zusammen liegen weil neu sollen Monat.";"10.08.2009";"awdexfhWsPiVoDLETNyk" +"16.07.2025";"-3.343,34";"19.07.2000";"Kartenumsatz";"Ihm Wagen Apfel Sommer sechs Rad Finger Wetter.";"16.07.2025";"KDPhAroRFDegPTQBwXZF" +"21.09.2011";"-3.094,59";"24.02.1998";"Kartenumsatz";"Bauen dick Opa wollen gegen See Tür erklären.";"21.09.2011";"TYCRvkfvRnKAZZHyjMJf" +"22.11.2019";"2.501,72";"18.09.2023";"Kartenumsatz";"Wiese Tür Beispiel als richtig oft hören Glück.";"22.11.2019";"MRXprlArMtGEOYyrivvb" +"25.06.1972";"-.797,60";"20.12.2000";"Kartenumsatz";"Minute alt sollen arbeiten Wissen ihn viel hören.";"25.06.1972";"WLNlXtEPMVPWNQinqVoX" +"23.06.1997";"3.688,65";"24.07.1983";"Kartenumsatz";"Glas sieben Freund bleiben Geld als laufen gelb.";"23.06.1997";"kMtKBlMZfVzaQpFJVrdf" +"07.08.1970";"236,47";"26.10.2025";"Lastschrift / Belastung";"Können sehr los Klasse gern Glas dabei baden.";"07.08.1970";"XcTWEhERXSrKhTpwxKwq" +"05.03.1995";"-3.699,34";"28.04.2022";"Lastschrift / Belastung";"Neu traurig damit gar plötzlich Küche kam erzählen.";"05.03.1995";"DCSPqPoExMJVIXDJEmba" +"13.05.2014";"-2.301,46";"02.02.1993";"Kartenumsatz";"Wiese Blume von verlieren trinken Lehrerin reiten dick.";"13.05.2014";"FyjQDvaDRthPmTPacdcN" +"12.07.2006";"-1.002,95";"16.06.1990";"Kartenumsatz";"Kam bin frei setzen Lehrer er Schnee ziehen.";"12.07.2006";"CxGyzurWIlEVpidlaHgz" +"03.01.1989";"-1.538,17";"17.11.2025";"Kartenumsatz";"Merken Geschichte nein sprechen holen kein Stein müde.";"03.01.1989";"LUBzVEGaOaXicGKGRXLK" +"27.10.1995";"-1.588,75";"09.08.1998";"Kartenumsatz";"Überall genau spielen es dort sechs ich es.";"27.10.1995";"IlEguSkSvqMwjWjgrPJJ" +"21.05.1976";"771,43";"05.02.2023";"Kartenumsatz";"Schüler früh Tür Dorf traurig er Ende der.";"21.05.1976";"OkireOnJlianvjBgiKLP" +"10.11.1991";"-3.682,38";"11.12.1976";"Kartenumsatz";"Mädchen der Tag lachen Spaß singen nehmen fangen.";"10.11.1991";"EtrQVskkdZQgaxCnaNuX" +"27.05.2005";"-2.049,77";"18.05.1992";"Lastschrift / Belastung";"Stehen Stadt kein Stein einige wir dürfen Monate.";"27.05.2005";"yayAivkfmnKnKjaEeqHx" +"28.09.2009";"2.950,65";"07.10.2017";"Kartenumsatz";"Einfach warm Spaß er wird sonst Seite jung.";"28.09.2009";"xTmXkYMLxHlUWVgzDurB" +"26.09.1978";"691,87";"09.04.2015";"Kartenumsatz";"Böse zusammen an jung Land spät Brot so.";"26.09.1978";"OZCVRrNQxLzDaTJaYgir" +"07.01.1986";"1.899,21";"16.06.1975";"Kartenumsatz";"Wird offen ruhig Teller Arbeit sofort bleiben Weihnachten.";"07.01.1986";"YexccmpQrHfXPEaNqjYN" +"22.11.1970";"-1.088,74";"22.06.1979";"Lastschrift / Belastung";"Kopf Arzt bei jeder krank Haus Haare laut.";"22.11.1970";"uiRZmISGnUnmICslCQKR" +"06.10.2011";"2.627,51";"06.09.2018";"Lastschrift / Belastung";"Berg Auge auch die Milch packen Junge Bett.";"06.10.2011";"HjQTAhQreZPzYhSlyoDp" + +"Alter Kontostand";"0,00 EUR"; + +"Umsätze Tagesgeld PLUS-Konto";"Zeitraum: 180 Tage"; +"Neuer Kontostand";"1.673,90 EUR"; + +"Wertstellung (Valuta)";"Umsatz in EUR";"Buchungstag";"Vorgang";"Buchungstext" +"02.09.2000";"-2.652,98";"13.12.1985";"Lastschrift / Belastung";"Uhr wohl führen See setzen mal krank hoch." +"27.02.1976";"-2.302,68";"11.05.1997";"Kartenumsatz";"Ohne gut Stein wirklich gar Winter Welt nämlich." +"28.05.1986";"-3.343,51";"24.04.2026";"Kartenumsatz";"Dich wenig Oma oft denn Ferien hinter halten." +"18.08.1980";"3.519,25";"08.06.1985";"Lastschrift / Belastung";"Erklären tragen See ging versuchen gern heiß vielleicht." +"04.10.1981";"3.268,02";"25.07.2014";"Kartenumsatz";"Nein Junge Tier beide noch Wasser hinein gefährlich." +"09.01.1991";"-3.052,80";"13.06.2023";"Kartenumsatz";"Fisch Schwester viel sicher bis dürfen es Opa." +"05.07.2011";"-.633,49";"27.04.1994";"Kartenumsatz";"Frei fährt hat mich gleich gibt er Mutter." +"22.02.2015";"-1.146,44";"16.04.2010";"Lastschrift / Belastung";"Tag stellen in nichts Winter unser Eltern traurig." +"17.03.1989";"350,28";"24.03.2000";"Kartenumsatz";"Ding fröhlich fangen Herz allein tief weiter ihn." +"26.10.1994";"3.490,67";"10.05.1988";"Kartenumsatz";"Gibt Zeit Zug doch hören Frau Zimmer Onkel." + +"Alter Kontostand";"6.686,20 EUR"; + +"Umsätze Depot";"Zeitraum: 180 Tage"; + +"Wertstellung (Valuta)";"Umsatz in EUR";"Geschäftstag";"Stück / Nom.";"Bezeichnung";"WKN";"Währung";"Ausführungskurs" +"28.10.1974";"1.685,37";"28.10.1974";"3.782,02";"zVQTjfeGndFUgHRYoOJV";"UIKWcmkLpKvlEaxsJNAY";"IVIQpMQspcGkoCQUMKKQ";"-1.169,05" +"23.03.1994";"1.559,84";"23.03.1994";"-.507,97";"rWidmLRRjtCtJbGCxxiJ";"clkDytzVOZfNqNqNqwpq";"vinALLmPCGosxxYbxQOT";"-.170,74" +"21.07.1997";"1.885,70";"21.07.1997";"3.199,90";"zbFJlhZJhFyVckyTkbWF";"NCLFEpfFrQAsoRLpEdNB";"BdqBcCsARBsTONKUEMUG";"2.167,34" +"04.11.2007";"-2.336,08";"04.11.2007";"3.374,10";"UmhrGDbbJhTbtBVnMEWU";"kfrvJSzEonSnYSvSwhzR";"WsyqHHvMGewNQWnQVOab";"-44,87" +"10.05.1995";"2.777,21";"10.05.1995";"-.466,66";"QBcTBCTJDuIWJKthZKKN";"DOBQNhJNlHjRdTYQfihc";"tTdPJSTffQjGknRiARpp";"1.108,37" +"02.08.2021";"95,64";"02.08.2021";"-2.473,15";"sURiquSzaJuCrwWdnuBf";"VltMSrMBshpZqfZltkJz";"mDBoFnnxoaMnkJcJwXtE";"1.989,84" +"08.01.2006";"723,60";"08.01.2006";"-3.788,97";"lENmCDzBnAoOlUWoIEOh";"vsTfHGBstXTwHpVQQIMN";"woeYzPNzwxhbsVuBQSzW";"723,80" +"24.08.1972";"-2.752,39";"24.08.1972";"121,81";"QmboZenDJYKYJZHrwBzg";"TOOOVZqQAxZLvZBqhttK";"iCRZdDaRZbJzKjDwweZz";"1.508,94" +"17.10.2004";"-3.983,82";"17.10.2004";"-2.862,12";"tBoMSqznKQiDGPEaZgtK";"KCxxVLPJcUdCHWRHiLuG";"MuwYMYDVjiZdGPPchFan";"2.170,06" +"13.01.2003";"1.172,75";"13.01.2003";"3.559,62";"DZUeNsJNwFiobKvjqbFE";"lKBJTcOkTowTcbtEDnHC";"DDMOrfHrxGjnjDQplaXe";"515,78"