END LOOP;
IF (txt=") THEN
RETURN 'Brak wolnych pokoi typu ' II rodź II'' II osob II '-osobowych w tym zakresie czasu!';
END IF;
RETURN txt;
END;
$$ LANGUAGE plpgsql';
DROP FUNCTION oblicz_naleznosc(TEXT);
CREATE OR REPLACE FUNCTION oblicz_naleznosc(rez TEXT) RETURNS NUMERIC(8,2) AS $$
DECLARE
zaplata NUMERIC(8,2); r RECORD;
BEGIN
zaplata:=0.00;
SELECT * INTO r FROM płatności WHERE nr_rezerwacji=rez;
IF (NOT FOUND) THEN
RAISE EXCEPTION 'Nie ma takiego numeru rezerwacji!';
END IF;
FOR r IN SELECT * FROM platnosc_pokoje WHERE nr_rezerwacji=rez LOOP zaplata=zaplata + (r.cena*(r.koniec-r.poczatek));
END LOOP;
FOR r IN SELECT * FROM przydzial_rabaty WHERE nr_rezerwacji=rez LOOP zaplata=zaplata*( 1 -r.wysokosc_rabatu);
END LOOP;
FOR r IN SELECT * FROM platnosc_uslugi WHERE nr_rezerwacji=rez LOOP zaplata=zaplata+r.cena;
END LOOP;
FOR r IN SELECT * FROM naleznosc_kary WHERE nr_rezerwacji=rez LOOP zaplata=zaplata+r.naleznosc;
END LOOP;
UPDATE płatności SET do_zaplaty=zaplata WHERE nr_rezerwacji=rez;
RETURN zaplata;
END;
$$ LANGUAGE 'plpgsąl';
DROP FUNCTION utworz_numer();
CREATE OR REPLACE FUNCTION utworz_numer() RETURNS TEXT AS $$
DECLARE
txt TEXT;