Files
Pivot/services/CIP_inleveren.py
T
2026-10-14 13:34:37 +02:00

67 lines
2.8 KiB
Python
Raw 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_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"