diff --git a/web_app/src/Librarian/LibrarianReturns.tsx b/web_app/src/Librarian/LibrarianReturns.tsx index 559ce893..ed1887b6 100644 --- a/web_app/src/Librarian/LibrarianReturns.tsx +++ b/web_app/src/Librarian/LibrarianReturns.tsx @@ -90,7 +90,7 @@ const LibrarianReturns: React.FC = () => { if (!token) return; try { - const response = await fetch(`${API_BASE_URL}/api/rental-returns/${rentalReturnId}/handover?driverId=${encodeURIComponent(driverId)}`, { + const response = await fetch(`${API_BASE_URL}/api/rental-returns/${rentalReturnId}/complete-delivery`, { method: 'PATCH', headers: { 'Authorization': `Bearer ${token}`, @@ -121,30 +121,63 @@ const LibrarianReturns: React.FC = () => { const handleFetchReturnDetails = async () => { const token = localStorage.getItem('access_token'); - if (!rentalReturnId || isNaN(rentalReturnId)) { - setMessage("Nieprawidłowe ID zwrotu"); + if (returnType === 'inPerson') { + if (!rentalReturnId || isNaN(rentalReturnId)) { + setMessage("Nieprawidłowe ID zwrotu"); + setMessageType("error"); + return; + } + } else if (returnType === 'driver') { + if (!driverId || driverId.trim() === "") { + setMessage("Nieprawidłowe ID kierowcy"); + setMessageType("error"); + return; + } + } else { + setMessage("Wybierz rodzaj zwrotu"); setMessageType("error"); return; } - try { - const response = await fetch(`${API_BASE_URL}/api/rental-returns/${rentalReturnId}`, { - method: 'GET', - headers: { - Authorization: `Bearer ${token}`, - }, - }); - if (response.ok) { - const data = await response.json(); - setRentalReturnDetails(data); - setMessage(""); - } else { - throw new Error("Nie udało się pobrać danych zwrotu"); + try { + let url = ""; + if (returnType === 'inPerson') { + url = `${API_BASE_URL}/api/rental-returns/${rentalReturnId}`; + } else { + url = `${API_BASE_URL}/api/rental-returns/latest-by-driver/${driverId}`; + } + + const response = await fetch(url, { + method: 'GET', + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + if (response.ok) { + const data = await response.json(); + + if (returnType === 'driver') { + if (data && data.id) { + setRentalReturnId(data.id); + } else { + setMessage("Nie znaleziono zwrotu dla tego kierowcy"); + setMessageType("error"); + setRentalReturnDetails(null); + return; + } } + + setRentalReturnDetails(data); + setMessage(""); + } else { + throw new Error("Nie udało się pobrać danych zwrotu"); + } } catch (error) { console.error("Błąd podczas pobierania szczegółów zwrotu:", error); setMessage("Wystąpił błąd podczas pobierania danych."); setMessageType("error"); + setRentalReturnDetails(null); } }; @@ -239,21 +272,23 @@ const LibrarianReturns: React.FC = () => {

Wprowadź wymagane dane:

-
- - setRentalReturnId(Number(e.target.value))} - className="w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-[#3B576C]" - /> -
+ + {returnType === 'inPerson' && ( +
+ + setRentalReturnId(Number(e.target.value))} + className="w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-[#3B576C]" + /> +
+ )} {returnType === 'driver' && (