Zamknięcie przeterminowanych wypożyczeń
Treść zadania
Biblioteka zamyka stare przeterminowane wypożyczenia. Dla wypożyczeń, które mają status przeterminowane i termin zwrotu wcześniejszy niż 18 września 2026, ustaw status zwrocone, datę zwrotu 2026-10-01 oraz karę równą liczbie dni spóźnienia pomnożonej przez 0,50 zł.
Liczbę dni spóźnienia oblicz funkcją DATEDIFF od daty zwrotu do terminu. Wykonaj aktualizację w transakcji, sprawdź wynik zapytaniem SELECT, a następnie zatwierdź zmiany. Nie zmieniaj wypożyczeń, które nie spełniają obu warunków.
Co będzie oceniane
- Zaktualizowano tylko wypożyczenia przeterminowane z terminem przed 18 września 2026.
- Status zmieniono na zwrocone, a data zwrotu to 2026-10-01.
- Kara jest obliczona jako liczba dni razy 0,50 zł, a nie wpisana jednakowo dla wszystkich.
- Operacja jest wykonana w transakcji i sprawdzona przed COMMIT.
- Kod uruchamia się bez błędu i przechodzi wszystkie testy automatyczne.
Testy automatyczne (1)
- Stare przeterminowane wypożyczenia zamknięte z karą
Zaliczenie: wszystkie testy muszą przejść. Testy uruchamia się przyciskiem „Sprawdź testy” pod kodem.
START TRANSACTION;
-- Zaktualizuj stare przeterminowane wypożyczenia
UPDATE wypozyczenia
SET status = 'zwrocone',
data_zwrotu = '2026-10-01',
kara = ...
WHERE ...;
-- Sprawdź wynik przed zatwierdzeniem
SELECT id, status, data_zwrotu, kara
FROM wypozyczenia
WHERE status = 'zwrocone';
COMMIT;
Wskazówki
Wskazówka 1
Warunek zapisz jako status = 'przeterminowane' AND termin_zwrotu < '2026-09-18'. Data w bazie ma format RRRR-MM-DD.
Wskazówka 2
Karę oblicz w SET: kara = DATEDIFF('2026-10-01', termin_zwrotu) * 0.50. Umieść UPDATE między START TRANSACTION a COMMIT.