Compare commits

...

3 Commits

+26 -7
View File
@@ -8620,17 +8620,36 @@ def admin_create_invoice(borrow_id):
flash('Für diese Ausleihe existiert bereits eine Rechnung. Bitte Korrekturbuchung verwenden.', 'warning')
return redirect(url_for('admin_borrowings'))
client = MongoClient(cfg.MONGODB_HOST, cfg.MONGODB_PORT)
db = client[cfg.MONGODB_DB]
student_cards = db['student_cards']
card = student_cards.find_one({'_id': ObjectId(borrow_id)})
card = _decrypt_student_card_doc(card)
client.close()
borrower = card['SchülerName']
student_id = borrow_doc.get('AusweisId')
borrower = "Unbekannt"
# 1. Prüfen: Gibt es eine AusweisId?
if student_id:
try:
card = student_cards.find_one({'_id': ObjectId(student_id)})
except Exception:
card = student_cards.find_one({'_id': student_id})
if not card:
flash('Der zugehörige Schülerausweis wurde in der Datenbank nicht gefunden.', 'error')
return redirect(url_for('admin_borrowings'))
card = _decrypt_student_card_doc(card)
borrower = card.get('SchülerName', 'Unbekannt')
# 2. Fallback: Wenn keine AusweisId da ist, schauen wir, ob ein Name unter 'User' gespeichert wurde
else:
fallback_user = borrow_doc.get('User')
if fallback_user:
borrower = str(fallback_user)
else:
flash('Dieser Ausleihe ist weder eine AusweisId noch ein Benutzername zugeordnet.', 'error')
return redirect(url_for('admin_borrowings'))
invoice_number = existing_invoice.get('invoice_number') or _build_invoice_number(borrow_doc['_id'], now)
item_name = item_doc.get('Name', '')
item_code = item_doc.get('Code_4', '')
item_code = item_doc.get('Code_4', '')
invoice_data = {
'invoice_number': invoice_number,