Potwierdzone sprawdzone punkt po punkcie · 2026-11-04
Pomiń nawigację
Ćwiczenie · Informatyka Ćwiczenie: Zamknięcie przeterminowanych wypożyczeń

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)

  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.