Files
2026-10-14 13:34:37 +02:00

52 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CIP_uitdelen.py – toestel uitdelen aan een leerling
from database import execute_query
from datetime import date
from services import toestellen as tst
foutmelding = ""
def uitdelen(internnummer, toestelnummer):
"""`toestelnummer` = eigen toestelnummer van de school (Schooleigen_ID) of serienummer."""
global foutmelding
# 1. Validatie van input
if not internnummer or not toestelnummer:
foutmelding = "Error: Vul zowel het Internnummer als het toestelnummer in."
return False
# 2. Check of leerling bestaat
leerling = tst.zoek_leerling(internnummer)
if not leerling:
foutmelding = "Error: Internnummer niet gevonden in de leerlingenlijst."
return False
# 3. Check of toestel bestaat
toestel = tst.zoek_toestel(toestelnummer)
if not toestel:
foutmelding = "Error: Toestelnummer niet gevonden in de toestellenlijst."
return False
# 4. Check of toestel al is uitgegeven
huidig = tst.actieve_eigendom(toestel['Toestel_ID'])
if huidig:
foutmelding = f"Error: Toestel is al toegekend aan {huidig['Internnummer']}"
return False
# 5. Alles OK -> Uitvoeren
try:
_verwerk_uitdeling(leerling['Internnummer'], toestel['Toestel_ID'])
foutmelding = "Toestel succesvol uitgedeeld!"
return True
except Exception as e:
foutmelding = f"Systeemfout: {str(e)}"
return False
def _verwerk_uitdeling(internnummer, toestel_id):
"""Nieuwe rij in Eigendom (zonder Datum_inlevering) en toestel op 'Uitgeleend'."""
execute_query(
"INSERT INTO Eigendom (Internnummer, Toestel_ID, Status, Datum_toekenning) VALUES (%s, %s, %s, %s)",
(internnummer, toestel_id, 1 if tst.is_geblokkeerd(toestel_id) else 0, date.today()), commit=True)
execute_query("UPDATE Toestellen SET Status = 'Uitgeleend' WHERE Toestel_ID = %s", (toestel_id,), commit=True)