Im folgenden wird beschrieben nach welchen Regeln die Pläne und darin enthaltenden Dokument im Dienst des Servers für Bauleitpläne und im Bau- und Planungsportal veröffentlicht werden.
Folgende Pläne (mit oder ohne anhängenden Dokumenten) werden veröffentlicht:
In SQL lautet die Regel:
CASE WHEN veroeffentlichungsdatum IS NULL THEN false ELSE veroeffentlichungsdatum <= (now() at time zone 'Europe/Berlin')::date END AS veroeffentlicht
Die in den veröffentlichten Plänen enthaltenden Dokumente werden nach folgenden Regeln veröffentlicht:
In Postgres wird diese Regel mit folgender Funktion umgesetzt:
CREATE OR REPLACE FUNCTION xplankonverter.filter_nurzurauslegung( auslegungsstartdatum date[], auslegungsenddatum date[], externereferenzen_mit_nurzurauslegung xplankonverter.xp_spezexternereferenzauslegung[]) RETURNS xplan_gml.xp_spezexternereferenz[] LANGUAGE 'plpgsql' COST 100 STABLE PARALLEL UNSAFE AS $BODY$ DECLARE _sql text; _result xplan_gml.xp_spezexternereferenz[]; i integer = 0; n integer = array_length(externereferenzen_mit_nurzurauslegung, 1); today date = (now() at time zone 'Europe/Berlin')::date; is_in_date_range boolean = false; BEGIN IF(externereferenzen_mit_nurzurauslegung IS NULL) THEN RETURN NULL; END IF; FOR i IN 1..n LOOP is_in_date_range = (today BETWEEN auslegungsstartdatum[i] AND auslegungsenddatum[i]); EXIT WHEN is_in_date_range; END LOOP; SELECT ARRAY_AGG(xplankonverter.to_spezexternereferenz(e)) FROM ( SELECT unnest(externereferenzen_mit_nurzurauslegung) AS e ) foo WHERE (e).nurzurauslegung IS NULL OR NOT (e).nurzurauslegung OR ( (e).nurzurauslegung AND is_in_date_range ) INTO _result; RETURN _result; END; $BODY$;