IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Patrik

Upraveny Zdrojak

SQL

-- Function: public.fn_vrat_vypozicku(integer, date, boolean)

-- DROP FUNCTION public.fn_vrat_vypozicku(integer, date, boolean);

CREATE OR REPLACE FUNCTION public.fn_vrat_vypozicku(
    id_vypozicka integer,
    datum_vratenia date,
    vypozicka_vratena boolean DEFAULT true)
  RETURNS void AS
$BODY$
DECLARE

	jeVratena bool;
	
BEGIN
	select vyp.vypozicka_vratena
	into jeVratena
	from vypozicky vyp
	where vyp.vypozicka_id = fn_vrat_vypozicku.id_vypozicka;

	IF(jeVratena = false) THEN
	UPDATE
		public.vypozicky
	SET
		 datum_vratenia = fn_vrat_vypozicku.datum_vratenia		 
		, vypozicka_vratena = fn_vrat_vypozicku.vypozicka_vratena
	WHERE
		vypozicky.vypozicka_id = fn_vrat_vypozicku.id_vypozicka;
	UPDATE
		public.kniha
	SET	
		zapozicane_kusy = zapozicane_kusy - 1
	WHERE
		public.kniha.kniha_id = (
		select v.kniha_id 
		from vypozicky v
		where v.vypozicka_id = fn_vrat_vypozicku.id_vypozicka);
	UPDATE
		public.zakaznik
	SET	
		pocet_aktualne_pozicanych_knih = pocet_aktualne_pozicanych_knih - 1
	WHERE
		public.zakaznik.zakaznik_id = (
		select v.zakaznik_id
		from vypozicky v
		where v.vypozicka_id = fn_vrat_vypozicku.id_vypozicka);
	ELSE
		RAISE EXCEPTION 'Kniha je už vrátena. Prerušenie transakcie.';
	END IF;
	RETURN;
	EXCEPTION WHEN OTHERS THEN
	RAISE;
END
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.fn_vrat_vypozicku(integer, date, boolean)
  OWNER TO postgres;

Neformátovaný

Přidáno: 4.1.2019
Expirace: Neuvedeno

Aktivity