INTERLIS 2.3; /** Datenvalidierung - Pflegeplanung Fliessgewaesser des Kantons Schaffhausen. Datenvalidierung - Pflegeplanung der Flora und Fauna sowie Bauwerke und Moebilierung entlang der Fliessgewaesser. */ CONTRACTED MODEL SH_Pflegeplanung_Fliessgewaesser_V1_0_AddChecks (de) AT "http://geo.sh.ch" VERSION "2024-01-18" = IMPORTS SH_Pflegeplanung_Fliessgewaesser_V1_0; VIEW TOPIC SH_Pflegeplanung_Fliessgewaesser_SH_Validierung = DEPENDS ON SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung; VIEW v_Gewaesserpflege PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Gewaesserpflege; = ALL OF Gewaesserpflege; !!@ name = checkGewaesserpflegeAusfuehrung !!@ ilivalid.msg_de = "Leerwert bei 'Ausgefuehrt am' oder bei 'Ausgefuehrt durch' unzulässig" MANDATORY CONSTRAINT ( DEFINED (AusgefuehrtAm) AND DEFINED (AusgefuehrtDurch) ) OR ( NOT ( DEFINED (AusgefuehrtAm) ) AND NOT (DEFINED (AusgefuehrtDurch) ) ); !!@ name = checkGewaesserpflegeCount !!@ ilivalid.msg = "Gewaesserpflege muss mit einem Gewaesserereignis assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(Gewaesserereignis)==1; END v_Gewaesserpflege; VIEW v_BauwerkMoebilierung PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.BauwerkMoebilierung; = ALL OF BauwerkMoebilierung; !!@ name = checkBauwerkMoebilierungObjektUnterhaltsintervall !!@ ilivalid.msg_de = "Kombination 'Objekt' mit 'Unterhaltsintervall' bei BauwerkMoebilierung unzulässig" MANDATORY CONSTRAINT ( (Objekt->Reference->Gruppe == "Bauwerk" AND Unterhaltsintervall->Reference->Bauwerk == #true) OR (Objekt->Reference->Gruppe == "Moebilierung" AND Unterhaltsintervall->Reference->Moebilierung == #true) ); !!@ name = checkBauwerkMoebilierungCount !!@ ilivalid.msg = "BauwerkMoebilierung muss mit einer Gewässerabschnittspflege assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(Gewaesserabschnittspflege)==1; !!@ name = checkBauwerkMoebilierungBaumaterial !!@ ilivalid.msg = "BauwerkMoebilierung benötigt mindestens eine Auswahl bei Baumaterial (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.elementCount(Baumaterial)>=1; END v_BauwerkMoebilierung; VIEW v_BauwerkMoebilierungPunkt PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.BauwerkMoebilierungPunkt; = ALL OF BauwerkMoebilierungPunkt; !!@ name = checkBauwerkMoebilierungPunkt !!@ ilivalid.msg_de = "Kombination {Objekt} mit Geometrietyp unzulässig" MANDATORY CONSTRAINT ( DEFINED (Punkt) AND Objekt->Reference->Punkt == #true ); END v_BauwerkMoebilierungPunkt; VIEW v_BauwerkMoebilierungLinie PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.BauwerkMoebilierungLinie; = ALL OF BauwerkMoebilierungLinie; !!@ name = checkBauwerkMoebilierungLinie !!@ ilivalid.msg_de = "Kombination {Objekt} mit Geometrietyp unzulässig" MANDATORY CONSTRAINT ( DEFINED (Linie) AND Objekt->Reference->Linie == #true ); END v_BauwerkMoebilierungLinie; VIEW v_Instandsetzung PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Instandsetzung; = ALL OF Instandsetzung; !!@ name = checkInstandsetzungMassnahmenfristInstandsetzung !!@ ilivalid.msg_de = "Kombination 'Beobachten', 'Massnahmenfrist' mit 'InstantsetzungDurch' bei Instandsetzung unzulässig" MANDATORY CONSTRAINT ( DEFINED (Massnahmenfrist) AND DEFINED (InstandsetzungDurch) AND Beobachten != #true ) OR ( NOT (DEFINED (Massnahmenfrist) ) AND NOT (DEFINED (InstandsetzungDurch) ) AND Beobachten == #true ); !!@ name = checkInstandsetzungAusfuehrung !!@ ilivalid.msg_de = "Leerwert bei 'Ausgefuehrt am' oder bei 'Ausgefuehrt durch' bei Instandsetzung unzulässig" MANDATORY CONSTRAINT ( DEFINED (AusgefuehrtAm) AND DEFINED (AusgefuehrtDurch) ) OR ( NOT (DEFINED (AusgefuehrtAm) ) AND NOT (DEFINED (AusgefuehrtDurch) ) ); !!@ name = checkInstandsetzungCount !!@ ilivalid.msg = "Instandsetzung muss mit einer BauwerkMoebilierung assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(BauwerkMoebilierung)==1; END v_Instandsetzung; VIEW v_Flora PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Flora; = ALL OF Flora; !!@ name = checkFlora !!@ ilivalid.msg_de = "'Pflegeintervall' der Flora unzulässig" MANDATORY CONSTRAINT ( Pflegeintervall->Reference->Flora == #true); !!@ name = checkFloraIntervallZeitpunkt !!@ ilivalid.msg_de = "Kombination 'Pflegeintevall' und 'Zeitpunkt' bei Flora unzulässig" MANDATORY CONSTRAINT ( Pflegeintervall->Reference->Florakalender == #false AND DEFINED (Zeitpunkt)==#false ) OR ( Pflegeintervall->Reference->Florakalender == #true AND DEFINED (Zeitpunkt)==#true ); !!@ name = checkFloraObjektBestockung !!@ ilivalid.msg_de = "Kombination 'Bestockung' und 'Objekt' bei Flora unzulässig" MANDATORY CONSTRAINT ( DEFINED (Bestockung) AND Objekt->Reference->Bezeichnung == "Heckenelement" ) OR ( NOT (DEFINED (Bestockung)) AND Objekt->Reference->Bezeichnung != "Heckenelement" ); !!@ name = checkFloraObjektBiberfrass !!@ ilivalid.msg_de = "Kombination 'Biberfrass' und 'Objekt bei Flora unzulässig'" MANDATORY CONSTRAINT ( Biberfrass == #true AND Objekt->Reference->Biberfrass == #true ) OR NOT ( Biberfrass == #true AND Objekt->Reference->Biberfrass != #true ); !!@ name = checkFloraObjektBiberschutz !!@ ilivalid.msg_de = "Kombination 'Biberschutz' und 'Objekt' bei Flora unzulässig" MANDATORY CONSTRAINT ( Biberschutz == #true AND Objekt->Reference->Biberschutz == #true ) OR NOT ( Biberschutz == #true AND Objekt->Reference->Biberschutz != #true ); !!@ name = checkFloraObjektPilzbefall !!@ ilivalid.msg_de = "Kombination 'Pilzbefall' und 'Objekt' bei Flora unzulässig" MANDATORY CONSTRAINT ( Pilzbefall == #true AND Objekt->Reference->Pilzbefall == #true ) OR NOT ( Pilzbefall == #true AND Objekt->Reference->Pilzbefall != #true ); !!@ name = checkFloraObjektSchaedlingsbefall !!@ ilivalid.msg_de = "Kombination 'Schädlingsbefall' und 'Objekt' bei Flora unzulässig" MANDATORY CONSTRAINT ( Schaedlingsbefall == #true AND Objekt->Reference->Schaedlingsbefall == #true ) OR NOT ( Schaedlingsbefall == #true AND Objekt->Reference->Schaedlingsbefall != #true ); !!@ name = checkFloraObjektPflegeziel !!@ ilivalid.msg_de = "Kombination 'Objekt' und 'Pflegeziel' bei Flora unzulässig" MANDATORY CONSTRAINT ( Objekt->Reference->Erstellung == #true AND Pflegeziel->Reference->Pflegeziel == "Erstellung" ) OR ( Objekt->Reference->Erhaltung == #true AND Pflegeziel->Reference->Pflegeziel == "Erhaltung" ) OR ( Objekt->Reference->Neophytenbekaempfung == #true AND Pflegeziel->Reference->Pflegeziel == "Neophytenbekämpfung" ); !!@ name = checkFloraObjektPflegemassnahme !!@ ilivalid.msg_de = "Kombination 'Objekt' und 'Pflegemassnahme' bei Flora unzulässig" EXISTENCE CONSTRAINT Objekt->Reference->Pflegegruppe REQUIRED IN SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Flora:Massnahme->Reference->Pflegegruppe; !!@ name = checkFloraKontrolle !!@ ilivalid.msg_de = "Kombination 'KontrolliertAm' und 'KontrolliertDurch' bei Flora unzulässig" MANDATORY CONSTRAINT ( DEFINED (KontrolliertAm) AND DEFINED (KontrolliertDurch) ) OR ( NOT (DEFINED (KontrolliertAm)) AND NOT (DEFINED (KontrolliertDurch) ) ); !!@ name = checkFloraObjektAusfuehrung !!@ ilivalid.msg_de = "Kombination 'AusgefuehrtAm' und 'AusgefuehrtDurch' bei Flora unzulässig" MANDATORY CONSTRAINT ( DEFINED (AusgefuehrtAm) AND DEFINED (AusgefuehrtDurch) ) OR ( NOT (DEFINED (AusgefuehrtAm)) AND NOT (DEFINED (AusgefuehrtDurch) ) ); !!@ name = checkFloraCount !!@ ilivalid.msg = "Flora muss mit einer Gewässerabschnittspflege assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(Gewaesserabschnittspflege)==1; !!@ name = checkFloraArbeitsart !!@ ilivalid.msg = "Flora benötigt mindestens eine Auswahl bei Arbeitsart (anstatt 0)" MANDATORY CONSTRAINT DEFINED (Arbeitsart); !!@ name = checkFloraMassnahme !!@ ilivalid.msg = "Flora benötigt mindestens eine Auswahl bei Massnahme (anstatt 0)" MANDATORY CONSTRAINT DEFINED (Massnahme); END v_Flora; VIEW v_FloraPunkt PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.FloraPunkt; = ALL OF FloraPunkt; !!@ name = checkFloraPunkt !!@ ilivalid.msg_de = "Kombination 'Objekt' mit Geometrietyp Punkt unzulässig" MANDATORY CONSTRAINT ( DEFINED (Punkt) AND Objekt->Reference->Punkt == #true ); END v_FloraPunkt; VIEW v_FloraFlaeche PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.FloraFlaeche; = ALL OF FloraFlaeche; !!@ name = checkFloraFlaeche !!@ ilivalid.msg_de = "Kombination 'Objekt' und Geometrietyp Polygon bei FloraPolygon unzulässig" MANDATORY CONSTRAINT ( DEFINED (Flaeche) AND Objekt->Reference->Flaeche == #true ); END v_FloraFlaeche; VIEW v_Fauna PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Fauna; = ALL OF Fauna; !!@ name = checkFaunaKontrollIntervall !!@ ilivalid.msg_de = "Kombination 'Kontrollintervall' und Geometrietyp Punkt bei Fauna unzulässig" MANDATORY CONSTRAINT ( Kontrollintervall->Reference->Fauna == #true ); !!@ name = checkFaunaCount !!@ ilivalid.msg = "Fauna muss mit einer Gewässerabschnittspflege assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(Gewaesserabschnittspflege)==1; END v_Fauna; VIEW v_Gewaesserereignis PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Gewaesserereignis; = ALL OF Gewaesserereignis; !!@ name = checkGewaesserereignisCount !!@ ilivalid.msg = "Gewaesserereignis muss mit einer Gewässerabschnittspflege assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(Gewaesserabschnittspflege)==1; !!@ name = checkGewaesserereignisCount !!@ ilivalid.msg = "Gewässerereignis muss mindestens mit einer Gewässerpflege assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(Gewaesserpflege)>=1; END v_Gewaesserereignis; VIEW v_Bauwerkgsmoeblierungskontrolle PROJECTION OF SH_Pflegeplanung_Fliessgewaesser_V1_0.Pflegeplanung.Bauwerkgsmoeblierungskontrolle; = ALL OF Bauwerkgsmoeblierungskontrolle; !!@ name = checkBauwerkgsmoeblierungskontrolleCount !!@ ilivalid.msg = "Bauwerkgsmoeblierungskontrolle muss mit einer BauwerkMoebilierung assoziieren (anstatt 0)" MANDATORY CONSTRAINT INTERLIS.objectCount(BauwerkMoebilierung)==1; END v_Bauwerkgsmoeblierungskontrolle; END SH_Pflegeplanung_Fliessgewaesser_SH_Validierung; END SH_Pflegeplanung_Fliessgewaesser_V1_0_AddChecks.