pr_addsemester mach folgendes... Wir haben anscheinend das Problem, dass wir bis vor Semesterwechsel auf den Karten stehen hatten +V, also plus vorsemester...das fällt jetzt als Kriterium für die Gültigkeit weg. Wird aber wie es scheint als Validierung noch mit abgefragt. Finde es nur nicht!
-- FUNCTION: public.pr_addsemester(character varying, integer)
-- DROP FUNCTION public.pr_addsemester(character varying, integer);
CREATE OR REPLACE FUNCTION public.pr_addsemester(
asem character varying,
aanz integer)
RETURNS character varying
LANGUAGE 'plpgsql'
COST 100
IMMUTABLE PARALLEL UNSAFE
AS $BODY$
DECLARE
sResult character varying;
iSem integer;
iJahr integer;
BEGIN
if (length(aSem)<3) then
RETURN null;
end if;
iSem = to_number(substr(aSem,1,1),'9');
iJahr = to_number(substr(aSem,2,2),'99');
iJahr = pr_ExpandJahr(iJahr);
iSem = iSem + aAnz;
while (iSem>2) loop
iJahr = iJahr + 1;
iSem = iSem - 2;
end loop;
while (iSem<1) loop
iJahr = iJahr - 1;
iSem = iSem + 2;
end loop;
-- return to_char(iJahr,'FM0000');
RETURN to_char(iSem,'FM9') || pr_Right(to_char(iJahr,'FM0000'),2);
END;
$BODY$;
ALTER FUNCTION public.pr_addsemester(character varying, integer)
OWNER TO postgres;
GRANT EXECUTE ON FUNCTION public.pr_addsemester(character varying, integer) TO PUBLIC;
GRANT EXECUTE ON FUNCTION public.pr_addsemester(character varying, integer) TO postgres;