Skip to content

Commit

Permalink
gebruik koppeltabellen voor relaties isbeperkttot, isbelastmet en aan…
Browse files Browse the repository at this point in the history
…tekeningrecht
  • Loading branch information
mprins committed Dec 27, 2022
1 parent f807051 commit 846bf33
Show file tree
Hide file tree
Showing 8 changed files with 896 additions and 82 deletions.
108 changes: 81 additions & 27 deletions brmo-loader/src/main/resources/xsl/brk2-snapshot-to-rsgb-xml.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
version="1.0">

<xsl:strip-space elements="*"/>
<!--<xsl:output encoding="UTF-8" version="1.0" indent="yes"/>-->
<xsl:output encoding="UTF-8" version="1.0" indent="yes"/>

<!-- parameters van het bericht -->
<xsl:param name="objectRef" select="'NL.KAD.OnroerendeZaak:onbekend'"/>
Expand Down Expand Up @@ -756,33 +756,53 @@
<xsl:template name="recht">
<xsl:param name="recht"/>

<xsl:variable name="rechtId">
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:identificatie"/>
</xsl:call-template>
</xsl:variable>

<recht column-dat-beg-geldh="begingeldigheid" column-datum-einde-geldh="einddatumrecht">
<identificatie>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:identificatie"/>
</xsl:call-template>
<xsl:value-of select="$rechtId"/>
</identificatie>
<aard>
<xsl:value-of select="$recht/Recht:aard/Typen:waarde"/>
</aard>
<toelichtingbewaarder>
<xsl:value-of select="$recht/Recht:toelichtingBewaarder"/>
</toelichtingbewaarder>
<isbelastmet>
<!-- TODO (recht): (bron Zakelijkrecht) dit kunnen er meer dan 1 (0..∞) zijn -->
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:isBelastMet/Recht-ref:ZakelijkRechtRef"/>
</xsl:call-template>
</isbelastmet>
<!-- isbelastmet via koppeltabel -->
<isgebaseerdop>
<xsl:call-template name="domein_identificatie">
<!-- TODO (recht): (bron oa. ZakelijkRecht/Mandeligheid/Aantekening)
<!-- (bron oa. ZakelijkRecht/Mandeligheid/Aantekening)
Er kunnen meer dan 1 stukdelen zijn (xsd zegt max 2)
bijv. NL.IMKAD.KadastraalObject.53730012470000 heeft meerdere stukdeel referenties
bijv. NL.IMKAD.KadastraalObject:53730012470000 / /brk2/stand-perceel-8.anon.xml uit stand
nov.2022 heeft meerdere stukdeel referenties;
dit betreft een datafout want er is een tenaamstelling met 4 stukdelen (xsd stelt max 2.
We nemen alleen de eerste 2 stukdelen mee.
-->
<xsl:with-param name="id" select="$recht/Recht:isGebaseerdOp/Stuk-ref:StukdeelRef"/>
<xsl:with-param name="id" select="$recht/Recht:isGebaseerdOp/Stuk-ref:StukdeelRef[1]"/>
</xsl:call-template>
</isgebaseerdop>
<isgebaseerdop2>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:isGebaseerdOp/Stuk-ref:StukdeelRef[2]"/>
</xsl:call-template>
</isgebaseerdop2>
<xsl:if test="$recht/Recht:isGebaseerdOp/Stuk-ref:StukdeelRef[3]">
<xsl:comment>
<xsl:text>LET OP (DATAFOUT): er zijn meer dan 2 stukdeel referenties voor relatie 'isGebaseerdOp' van: </xsl:text>
<xsl:value-of select="$rechtId"/>
</xsl:comment>
<xsl:for-each select="$recht/Recht:isGebaseerdOp/Stuk-ref:StukdeelRef">
<xsl:comment>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="."/>
</xsl:call-template>
</xsl:comment>
</xsl:for-each>
</xsl:if>
<betreft>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:betreft/Recht-ref:ZakelijkRechtRef"/>
Expand Down Expand Up @@ -815,14 +835,7 @@
<xsl:with-param name="id" select="$recht/Recht:isBestemdTot/Recht-ref:MandeligheidRef"/>
</xsl:call-template>
</isbestemdtot>
<isbeperkttot>
<!-- TODO (recht): (bron Zakelijkrecht) dit kunnen er meer dan 1 (0..∞) zijn;
bijv. test bestand "/brk2/stand-appre-2.anon.xml" / NL.IMKAD.KadastraalObject:53850184110001
-->
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:isBeperktTot/Recht-ref:TenaamstellingRef"/>
</xsl:call-template>
</isbeperkttot>
<!-- isbeperkttot via koppeltabel -->
<soort>
<xsl:value-of select="$recht/Recht:soort/Typen:waarde"/>
</soort>
Expand Down Expand Up @@ -910,12 +923,7 @@
<betreftgedeeltevanperceel>
<xsl:value-of select="$recht/Recht:betreftGedeelteVanPerceel"/>
</betreftgedeeltevanperceel>
<aantekeningrecht>
<!-- TODO (recht): (bron Aantekening) dit kunnen er meer dan 1 (0..∞) referenties naar tenaamstellingen zijn -->
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="$recht/Recht:aantekeningRecht/Recht-ref:TenaamstellingRef"/>
</xsl:call-template>
</aantekeningrecht>
<!-- aantekeningrecht via koppeltabel -->
<aantekeningkadastraalobject>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id"
Expand All @@ -934,6 +942,52 @@
<xsl:value-of select="$toestandsdatum"/>
</begingeldigheid>
</recht>


<!-- 1:n relaties van rechten -->
<xsl:for-each select="$recht/Recht:isBeperktTot/Recht-ref:TenaamstellingRef">
<!-- (bron Zakelijkrecht) dit kunnen er meer dan 1 (0..∞) zijn;
bijv. test bestand "/brk2/stand-appre-2.anon.xml" / NL.IMKAD.KadastraalObject:53850184110001
-->
<isbeperkttot>
<zakelijkrecht>
<xsl:value-of select="$rechtId"/>
</zakelijkrecht>
<tenaamstelling>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="."/>
</xsl:call-template>
</tenaamstelling>
</isbeperkttot>
</xsl:for-each>

<xsl:for-each select="$recht/Recht:isBelastMet/Recht-ref:ZakelijkRechtRef">
<!-- (bron Zakelijkrecht) dit kunnen er meer dan 1 (0..∞) zijn -->
<isbelastmet>
<zakelijkrecht>
<xsl:value-of select="$rechtId"/>
</zakelijkrecht>
<isbelastmet>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="."/>
</xsl:call-template>
</isbelastmet>
</isbelastmet>
</xsl:for-each>

<xsl:for-each select="$recht/Recht:aantekeningRecht/Recht-ref:TenaamstellingRef">
<!-- (bron Aantekening) er kunnen er meer dan 1 (0..∞) referenties naar tenaamstellingen zijn -->
<aantekeningrecht>
<aantekening>
<xsl:value-of select="$rechtId"/>
</aantekening>
<tenaamstelling>
<xsl:call-template name="domein_identificatie">
<xsl:with-param name="id" select="."/>
</xsl:call-template>
</tenaamstelling>
</aantekeningrecht>
</xsl:for-each>
</xsl:template>


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,26 +66,28 @@ class Brk2ToStagingToRsgbBrkIntegrationTest extends AbstractDatabaseIntegrationT

static Stream<Arguments> argumentsProvider() {
return Stream.of(
// { "filename", objectRef, aantalRecht, aantalStuk, aantalStukdeel, aantalNP, aantalNNP, aantalAdres (Adres:*), aantalKadObjLocatie, aantalPubliekRBeperking, aantalOnrndZkBeperking, aantalFiliatie},
arguments("/brk2/stand-appre-1.anon.xml", "NL.IMKAD.KadastraalObject:53761288010001", 3, 2, 2, 1, 1, (3), 1, 0, 0, 0),
arguments("/brk2/stand-perceel-1.anon.xml", "NL.IMKAD.KadastraalObject:50247970000", 2, 1, 1, 0, 1, (2), 0, 0, 0, 0),
arguments("/brk2/stand-perceel-2.anon.xml", "NL.IMKAD.KadastraalObject:53730000170000", 2, 1, 1, 0, 1, (2), 0, 0, 0, 0),
arguments("/brk2/stand-perceel-3.anon.xml", "NL.IMKAD.KadastraalObject:89760037170000", 2, 2, 2, 1, 1, (4), 1, 1, 1, 1, 0),
arguments("/brk2/MUTKX02-ABG00F1856-20211012-1.anon.xml", "NL.IMKAD.KadastraalObject:5260185670000", 3, 2, 2, 2, 0, (2), 0, 0, 0, 0),
arguments("/brk2/MUTKX02-ABG00F1856-20211102-1.anon.xml", "NL.IMKAD.KadastraalObject:5260185670000", 3, 2, 2, 1, 1, (2), 0, 0, 0, 0),
// { "filename", objectRef, aantalRecht, aantalStuk, aantalStukdeel, aantalNP, aantalNNP, aantalAdres (Adres:*), aantalKadObjLocatie, aantalPubliekRBeperking, aantalOnrndZkBeperking, aantalFiliatie, aantalAantekeningRecht, aantalIsbelastmetRecht, aantalIsbeperkttotRecht},
arguments("/brk2/stand-appre-1.anon.xml", "NL.IMKAD.KadastraalObject:53761288010001", 3, 2, 2, 1, 1, (3), 1, 0, 0, 0, 0, 0, 0),
arguments("/brk2/stand-perceel-1.anon.xml", "NL.IMKAD.KadastraalObject:50247970000", 2, 1, 1, 0, 1, (2), 0, 0, 0, 0, 0, 0, 0),
arguments("/brk2/stand-perceel-2.anon.xml", "NL.IMKAD.KadastraalObject:53730000170000", 2, 1, 1, 0, 1, (2), 0, 0, 0, 0, 0, 0, 0),
arguments("/brk2/stand-perceel-3.anon.xml", "NL.IMKAD.KadastraalObject:89760037170000", 2, 2, 2, 1, 1, (4), 1, 1, 1, 1, 0, 0, 0, 0),
arguments("/brk2/MUTKX02-ABG00F1856-20211012-1.anon.xml", "NL.IMKAD.KadastraalObject:5260185670000", 3, 2, 2, 2, 0, (2), 0, 0, 0, 0, 1, 0, 0),
arguments("/brk2/MUTKX02-ABG00F1856-20211102-1.anon.xml", "NL.IMKAD.KadastraalObject:5260185670000", 3, 2, 2, 1, 1, (2), 0, 0, 0, 0, 1, 0, 0),
// buitenlands adres
arguments("/brk2/stand-appre-2.anon.xml", "NL.IMKAD.KadastraalObject:53850184110001", 18, 4, 7, 6, 2, (19), 11, 0, 0, 0),
arguments("/brk2/stand-appre-2.anon.xml", "NL.IMKAD.KadastraalObject:53850184110001", 18, 4, 7, 6, 2, (19), 11, 0, 0, 0, 4 + 3, 1, 6),
// met ligplaatsen
arguments("/brk2/stand-perceel-4.anon.xml", "NL.IMKAD.KadastraalObject:53830384970000", 3, 2, 2, 0, 2, (14), 11, 0, 0, 1),
arguments("/brk2/stand-perceel-4.anon.xml", "NL.IMKAD.KadastraalObject:53830384970000", 3, 2, 2, 0, 2, (14), 11, 0, 0, 1, 0, 0, 0),
// samenvoeging van 3 percelen
arguments("/brk2/stand-perceel-5.anon.xml", "NL.IMKAD.KadastraalObject:53750049870000", 2, 1, 1, 2, 0, (1), 0, 0, 0, 3),
arguments("/brk2/stand-perceel-5.anon.xml", "NL.IMKAD.KadastraalObject:53750049870000", 2, 1, 1, 2, 0, (1), 0, 0, 0, 3, 0, 0, 0),
// app.re met ondersplitsing en ontbrekende hoofdsplitsing referentie
arguments("/brk2/stand-appre-3.anon.xml", "NL.IMKAD.KadastraalObject:53830693710057", 4, 3, 3, 1, 1, (1), 0, 0, 0, 0),
arguments("/brk2/stand-appre-3.anon.xml", "NL.IMKAD.KadastraalObject:53830693710057", 4, 3, 3, 1, 1, (1), 0, 0, 0, 0, 0, 0, 0),
// erfpacht
arguments("/brk2/stand-perceel-6.anon.xml", "NL.IMKAD.KadastraalObject:53810161070000", 7, 3, 4, 0, 2, (3), 0, 0, 0, 1),
arguments("/brk2/stand-perceel-6.anon.xml", "NL.IMKAD.KadastraalObject:53810161070000", 7, 3, 4, 0, 2, (3), 0, 0, 0, 1, 1, 1, 0),
// nevenadres
arguments("/brk2/stand-perceel-7.anon.xml", "NL.IMKAD.KadastraalObject:53850231870000", 2, 4, 4, 0, 1, (6), 4, 0, 0, 1)
// { "filename", objectRef, aantalRecht, aantalStuk, aantalStukdeel, aantalNP, aantalNNP, aantalAdres (Adres:*), aantalKadObjLocatie, aantalPubliekRBeperking, aantalOnrndZkBeperking, aantalFiliatie}
arguments("/brk2/stand-perceel-7.anon.xml", "NL.IMKAD.KadastraalObject:53850231870000", 2, 4, 4, 0, 1, (6), 4, 0, 0, 1, 0, 0, 0),
// meerdere stukdelen onder tenaamstelling
arguments("/brk2/stand-perceel-8.anon.xml", "NL.IMKAD.KadastraalObject:53730012470000", 8, 7, 8, 2, 3, (3), 0, 0, 0, 0, 0, 2, 0)
// { "filename", objectRef, aantalRecht, aantalStuk, aantalStukdeel, aantalNP, aantalNNP, aantalAdres (Adres:*), aantalKadObjLocatie, aantalPubliekRBeperking, aantalOnrndZkBeperking, aantalFiliatie, aantalAantekeningRecht, aantalIsbelastmetRecht, aantalIsbeperkttotRecht}
);
}

Expand Down Expand Up @@ -154,7 +156,8 @@ void cleanup() throws Exception {
@MethodSource("argumentsProvider")
void testBericht(String bestandNaam, String objectRef,
int aantalRecht, int aantalStuk, int aantalStukdeel, int aantalNP, int aantalNNP, int aantalAdres,
int aantalKadObjLocatie, int aantalPubliekRBeperking, int aantalOnrndZkBeperking, int aantalFiliatie)
int aantalKadObjLocatie, int aantalPubliekRBeperking, int aantalOnrndZkBeperking, int aantalFiliatie,
int aantalAantekeningRecht, int aantalIsbelastmetRecht, int aantalIsbeperkttotRecht)
throws Exception {

final boolean isPerceel = objectRef.endsWith("0000");
Expand Down Expand Up @@ -226,7 +229,16 @@ void testBericht(String bestandNaam, String objectRef,
}

ITable recht = rsgbBrk.createDataSet().getTable("recht");
assertEquals(aantalRecht, recht.getRowCount(), "Er is geen/teveel/te weinig recht");
ITable aantekeningrecht = rsgbBrk.createDataSet().getTable("aantekeningrecht");
ITable isbelastmet = rsgbBrk.createDataSet().getTable("isbelastmet");
ITable isbeperkttot = rsgbBrk.createDataSet().getTable("isbeperkttot");
assertAll("rechten", () -> {
assertEquals(aantalRecht, recht.getRowCount(), "Er is geen/teveel/te weinig recht");
assertEquals(aantalAantekeningRecht, aantekeningrecht.getRowCount(), "Er zijn geen/teveel/te weinig aantekeningrecht relaties");
assertEquals(aantalIsbelastmetRecht, isbelastmet.getRowCount(), "Er zijn geen/teveel/te weinig isbelastmet relaties");
assertEquals(aantalIsbeperkttotRecht, isbeperkttot.getRowCount(), "Er zijn geen/teveel/te weinig isbeperkttot relaties");
});


ITable stuk = rsgbBrk.createDataSet().getTable("stuk");
assertEquals(aantalStuk, stuk.getRowCount(), "Er is geen/teveel/te weinig stuk");
Expand Down
Loading

0 comments on commit 846bf33

Please sign in to comment.