Compare commits

..

2 Commits

+20 -3
View File
@@ -7327,7 +7327,7 @@ def zurueckgeben(id):
current_permissions = us.get_effective_permissions(session['username'])
if not item.get('Verfuegbar', True) and (current_permissions['actions'].get('can_manage_users', False)) or item.get('User') == username):
if not item.get('Verfuegbar', True) and (current_permissions['actions'].get('can_manage_users', False)) or item.get('User') == username:
try:
# Get ALL active borrowing records for this item and complete them
client = MongoClient(MONGODB_HOST, MONGODB_PORT)
@@ -8623,10 +8623,27 @@ def admin_create_invoice(borrow_id):
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)})
student_id = borrow_doc.get('AusweisId')
if not student_id:
client.close()
flash('Dieser Ausleihe ist kein Schülerausweis zugeordnet.', 'error')
return redirect(url_for('admin_borrowings'))
# 2. Mit der korrekten ID in student_cards suchen
card = student_cards.find_one({'_id': ObjectId(student_id)})
if not card:
client.close()
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)
client.close()
borrower = card['SchülerName']
# 3. Sicherer Zugriff mit .get() als zusätzliche Schutzmaßnahme
borrower = card.get('SchülerName', 'Unbekannt')
invoice_number = existing_invoice.get('invoice_number') or _build_invoice_number(borrow_doc['_id'], now)
item_name = item_doc.get('Name', '')