Skip to content

Commit 82e5d6d

Browse files
Fixes / tests.
1 parent 7218a48 commit 82e5d6d

File tree

5 files changed

+38
-27
lines changed

5 files changed

+38
-27
lines changed

django/cohiva/settings_defaults.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -489,32 +489,32 @@
489489
"access_intern": {
490490
"level": "DEBUG",
491491
"handlers": ["access_intern"],
492-
"propagate": True,
492+
"propagate": False,
493493
},
494494
"access_portal": {
495495
"level": "DEBUG",
496496
"handlers": ["access_portal"],
497-
"propagate": True,
497+
"propagate": False,
498498
},
499499
"geno": {
500500
"level": "DEBUG",
501501
"handlers": ["geno"],
502-
"propagate": True,
502+
"propagate": False,
503503
},
504504
"reservation": {
505505
"level": "DEBUG",
506506
"handlers": ["reservation"],
507-
"propagate": True,
507+
"propagate": False,
508508
},
509509
"credit_accounting": {
510510
"level": "DEBUG",
511511
"handlers": ["credit_accounting", "mail_admins_debug"],
512-
"propagate": True,
512+
"propagate": False,
513513
},
514514
"finance_accounting": {
515515
"level": "DEBUG",
516516
"handlers": ["finance_accounting", "mail_admins_debug"],
517-
"propagate": True,
517+
"propagate": False,
518518
},
519519
},
520520
}

django/finance/accounting/book.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,20 @@ def build_transaction_id(self, backend_id):
6060
return f"{self.book_type_id}_{backend_id}"
6161

6262
def get_backend_id(self, transaction_id):
63-
book_type_id, backend_id = transaction_id.split("_", 1)
63+
book_type_id, backend_id = self.decode_transaction_id(transaction_id)
6464
if book_type_id != self.book_type_id:
6565
raise ValueError(
6666
"book_type_id '{book_type_id}' does not match backend type '{self.book_type_id}'"
6767
)
6868
return backend_id
6969

70+
@staticmethod
71+
def decode_transaction_id(transaction_id):
72+
parts = transaction_id.split("_", 1)
73+
if len(parts) != 2:
74+
raise ValueError("Invalid transaction_id: {transaction_id}")
75+
return parts
76+
7077
@staticmethod
7178
def get_date(date):
7279
if not date:

django/geno/api_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def __init__(self, **kwargs):
181181
# 6 - Leerstand -> NK Leerstand [4582]
182182
self.virtual_contract_accounts = {}
183183
for key, account in settings.FINANCIAL_ACCOUNTS.items():
184-
if account["role"] == AccountRole.NK_VIRTUAL:
184+
if account.get("role") == AccountRole.NK_VIRTUAL and "virtual_id" in account:
185185
self.virtual_contract_accounts[account["virtual_id"]] = Account.from_settings(key)
186186
self.invoice_id = None
187187
self.contract = None

django/geno/billing.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import geno.settings as geno_settings
2424
from cohiva.utils.pdf import PdfGenerator
25-
from finance.accounting import Account, AccountingManager, AccountKey
25+
from finance.accounting import Account, AccountingBook, AccountingManager, AccountKey
2626

2727
from .models import (
2828
Address,
@@ -71,6 +71,7 @@ def create_invoices(
7171
) # name="Mietzins wiederkehrend")
7272

7373
messages = []
74+
count = {"invoices": 0, "contracts": 0}
7475
with AccountingManager(messages) as book:
7576
if not book:
7677
return messages
@@ -86,8 +87,10 @@ def create_invoices(
8687
)
8788
if isinstance(result, str):
8889
return result
89-
count = result
90-
messages.append("%s Rechnungen" % count)
90+
if result > 0:
91+
count["invoices"] += result
92+
count["contracts"] += 1
93+
messages.append(f"{count['invoices']} Rechnungen für {count['contracts']} Verträge")
9194
return messages
9295

9396

@@ -529,13 +532,13 @@ def setup_account(account, contract):
529532
account.set_code(building=ru.building)
530533
else:
531534
logger.error(
532-
"Could not find building for contract %s, using default account with no postfix %s."
533-
% (contract, account.prefix)
535+
f"Could not find building for contract id {contract.pk}, "
536+
f" using default account with no postfix {account.prefix}."
534537
)
535538
send_error_mail(
536539
"get_income_account_code()",
537-
"Could not find building for contract %s, using default account with no postfix %s."
538-
% (contract, account.prefix),
540+
f"Could not find building for contract id {contract.pk}, "
541+
f"using default account with no postfix {account.prefix}.",
539542
)
540543
return account
541544

@@ -685,24 +688,25 @@ def add_invoice_obj(
685688

686689
def delete_invoice_transaction(invoice):
687690
if not invoice.fin_transaction_ref:
688-
logger.warning("Trying to delete an invoice without a fin_transaction_ref: %s" % invoice)
691+
logger.warning(f"Trying to delete an invoice without a fin_transaction_ref: {invoice.pk}")
689692
return None
690693
try:
691-
with AccountingManager() as book:
694+
book_type_id, _ = AccountingBook.decode_transaction_id(invoice.fin_transaction_ref)
695+
with AccountingManager(book_type_id=book_type_id) as book:
692696
book.delete_transaction(invoice.fin_transaction_ref)
693697
except Exception:
694698
logger.error(
695-
"Could not delete transaction %s linked to invoice %s."
696-
% (invoice.fin_transaction_ref, invoice)
699+
f"Could not delete transaction {invoice.fin_transaction_ref} "
700+
f"linked to invoice {invoice.pk}."
697701
)
698702
send_error_mail(
699703
"delete_invoice_transaction()",
700-
"Could not delete transaction %s linked to invoice %s."
701-
% (invoice.fin_transaction_ref, invoice),
704+
f"Could not delete transaction {invoice.fin_transaction_ref} "
705+
f"linked to invoice {invoice.pk}.",
702706
)
703707
return None
704708
logger.info(
705-
"Deleted fin_transaction_ref %s for invoice %s." % (invoice.fin_transaction_ref, invoice)
709+
f"Deleted fin_transaction_ref {invoice.fin_transaction_ref} for invoice {invoice.pk}."
706710
)
707711
return None
708712

django/geno/tests/test_documents.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ def test_send_mail_singlefile(self):
652652
self.assertEmailSent(4)
653653
self.assertEqual(len(mail.outbox[0].attachments), 1)
654654
self.assertEqual(len(mail.outbox[1].attachments), 1)
655-
self.assertEqual(mail.outbox[0].attachments[0][0], "testpdf_b1.pdf") # Test_PDF1.pdf
655+
self.assertEqual(mail.outbox[0].attachments[0][0], "TestPDF1.pdf") # testpdf_b1.pdf
656656
self.assertEqual(mail.outbox[0].attachments[0][2], "application/pdf")
657657
self.assertInPDF(mail.outbox[0].attachments[0][1], "B1")
658658

@@ -663,9 +663,9 @@ def test_send_mail_twofiles(self):
663663
self.assertEmailSent(4)
664664
self.assertEqual(len(mail.outbox[0].attachments), 2)
665665
self.assertEqual(len(mail.outbox[1].attachments), 2)
666-
self.assertEqual(mail.outbox[0].attachments[0][0], "testpdf_b1.pdf") # Test_PDF1.pdf
666+
self.assertEqual(mail.outbox[0].attachments[0][0], "TestPDF1.pdf") # testpdf_b1.pdf
667667
self.assertEqual(mail.outbox[0].attachments[0][2], "application/pdf")
668-
self.assertEqual(mail.outbox[0].attachments[1][0], "testpdf_c1.pdf") # Test_PDF2.pdf
668+
self.assertEqual(mail.outbox[0].attachments[1][0], "TestPDF2.pdf") # testpdf_c1.pdf
669669
self.assertEqual(mail.outbox[0].attachments[1][2], "application/pdf")
670670
self.assertInPDF(mail.outbox[0].attachments[0][1], "B1")
671671
self.assertInPDF(mail.outbox[0].attachments[1][1], "C1")
@@ -971,7 +971,7 @@ def test_send_mail_multiple_documents_multiple_contexts(self):
971971
],
972972
)
973973

974-
self.assertEqual(mail.outbox[0].attachments[1][0], "testpdf_b1.pdf") # Test_PDF1.pdf
974+
self.assertEqual(mail.outbox[0].attachments[1][0], "TestPDF1.pdf") # testpdf_b1.pdf
975975

976976
self.assertEqual(mail.outbox[0].attachments[2][0], "Muster_Hans_QR-Bill.pdf")
977977
self.assertInPDF(
@@ -987,7 +987,7 @@ def test_send_mail_multiple_documents_multiple_contexts(self):
987987
],
988988
)
989989

990-
self.assertEqual(mail.outbox[0].attachments[3][0], "testpdf_c1.pdf") # Test_PDF2.pdf
990+
self.assertEqual(mail.outbox[0].attachments[3][0], "TestPDF2.pdf") # testpdf_c1.pdf
991991

992992
self.assertEqual(mail.outbox[0].attachments[4][0], "Muster_Hans_QR-BillRef.pdf")
993993
self.assertInPDF(

0 commit comments

Comments
 (0)