PIVOT 1.1.0

This commit is contained in:
marijn committed 2026-10-14 13:34:37 +02:00
commit 8a53234eb6
161 files changed
+31109

No files matched your search

+66
View File
@@ -0,0 +1,66 @@
# CIP_inleveren.py – toestel terug inleveren (en eventueel herstelling registreren)
from database import execute_query
from datetime import date
from services import toestellen as tst
foutmelding = ""
def Inleveren(internnummer, toestelnummer, action_type, tab2_schade_text):
global foutmelding
# 1. Zoek leerling op (zet om naar officieel Internnummer)
leerling = tst.zoek_leerling(internnummer)
if not leerling:
foutmelding = "Error: Internnummer niet gevonden."
return
# 2. Zoek het toestel en de huidige toekenning aan deze leerling
toestel = tst.zoek_toestel(toestelnummer)
if not toestel:
foutmelding = "Error: Toestelnummer niet gevonden in de toestellenlijst."
return
eigendom = execute_query(
"SELECT Eigendom_ID FROM Eigendom WHERE Toestel_ID = %s AND Internnummer = %s AND Datum_inlevering IS NULL",
(toestel['Toestel_ID'], leerling['Internnummer']))
if not eigendom:
foutmelding = "Error: Dit toestel staat niet als 'uitgeleend' aan deze leerling in de database."
return
# 3. Verwerk de inlevering
try:
_verwerk_inlevering(eigendom[0]['Eigendom_ID'], leerling, toestel['Toestel_ID'], action_type, tab2_schade_text)
foutmelding = "Toestel succesvol ingeleverd."
except Exception as e:
foutmelding = f"Systeemfout: {str(e)}"
def _verwerk_inlevering(eigendom_id, leerling, toestel_id, action_type, schade_text):
vandaag = date.today()
# A. Toekenning afsluiten (blijft bewaard als geschiedenis)
execute_query("UPDATE Eigendom SET Datum_inlevering = %s WHERE Eigendom_ID = %s", (vandaag, eigendom_id), commit=True)
# B. Status en eventueel herstelling
if action_type == "Schade":
execute_query(
"INSERT INTO Signpost_herstellingen_DB (Toestel_ID, Omschrijving, Status_herstelling, Datum, Leerling_ID) "
"VALUES (%s, %s, 'geregistreerd', %s, %s)",
(toestel_id, schade_text, vandaag, leerling['Leerling_ID']), commit=True)
execute_query("UPDATE Toestellen SET Status = 'Defect' WHERE Toestel_ID = %s", (toestel_id,), commit=True)
else:
execute_query("UPDATE Toestellen SET Status = 'Beschikbaar' WHERE Toestel_ID = %s", (toestel_id,), commit=True)
def Ingeven_herstelling(toestelnummer, soort_herstelling):
"""Herstelling registreren zonder inlevering door een leerling."""
global foutmelding
toestel = tst.zoek_toestel(toestelnummer)
if not toestel:
foutmelding = f"Toestel {toestelnummer} niet gevonden."
return
execute_query(
"INSERT INTO Signpost_herstellingen_DB (Toestel_ID, Omschrijving, Status_herstelling, Datum) "
"VALUES (%s, %s, 'In afwachting', %s)",
(toestel['Toestel_ID'], soort_herstelling, date.today()), commit=True)
foutmelding = "Herstelling ingegeven"