# 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)