Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
15-07-2026

Inwerkingtreding:
16-07-2026

24.1 Overig - wat is de dekking van vaste activia door lang vermogen?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 24.1.0
2# Parameters: ?peildatum
3# Ontologie: versie 3.0.0 of nieuwer
4#
5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
6PREFIX onz-g: <http://purl.org/ozo/onz-g#>
7PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
8
9SELECT ?Kental ?Waarde
10WHERE {
11    {
12        SELECT (IF(SUM(IF(?jaarrekeningpost = "F Langlopende schulden", ?bedrag, 0)) = 0,
13                "Ongedefinieerd"^^xsd:string,
14                ROUND(SUM(IF(?jaarrekeningpost = "A Vaste activa", ?bedrag, 0)) / 
15                SUM(IF(?jaarrekeningpost = "F Langlopende schulden", ?bedrag, 0)) * 100) / 100) AS ?dvamlv)
16        WHERE {
17            {
18                SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
19                WHERE {
20                    {
21                        SELECT ?rubriek ?categorie ((SUM(?geld_bedrag) + SUM(?saldo_waarde) / COUNT(?saldo_waarde)) AS ?bedrag_rubriek)
22                        WHERE {
23                            # BIND("2024-12-31"^^xsd:date AS ?peildatum)
24                            BIND(?peildatum AS ?peildatum_argument)
25
26                            # Selecteer rubrieken: zowel Prismant (Grootboekrubriek) als RGS (Grootboekrekening)
27                            {
28                                { ?rubriek a onz-fin:Grootboekrubriek }
29                                UNION
30                                { ?rubriek a onz-fin:Grootboekrekening }
31                            }
32                            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
33                            BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
34
35                            # Categorie-toewijzing op basis van rubriekcode
36                            # Prismant: 00 → A.I, 01 → A.II, 03 → A.III, 07 → F
37                            # RGS: BIva → A.I, BMva → A.II, BFva/BVas → A.III, BLas → F
38                            BIND(
39                                COALESCE(
40                                    IF(STRSTARTS(?rubriekCode, "00"), "A.I", ?unbound),
41                                    IF(STRSTARTS(?rubriekCode, "01"), "A.II", ?unbound),
42                                    IF(STRSTARTS(?rubriekCode, "03"), "A.III", ?unbound),
43                                    IF(STRSTARTS(?rubriekCode, "07"), "F", ?unbound),
44                                    IF(?rubriekCode = "BIva", "A.I", ?unbound),
45                                    IF(?rubriekCode = "BMva", "A.II", ?unbound),
46                                    IF(?rubriekCode = "BFva", "A.III", ?unbound),
47                                    IF(?rubriekCode = "BVas", "A.III", ?unbound),
48                                    IF(?rubriekCode = "BLas", "F", ?unbound),
49                                    "other"
50                                ) AS ?categorie
51                            )
52                            FILTER(?categorie IN ("A.I", "A.II", "A.III", "F"))
53
54                            # Meest recente eindsaldo per rubriek
55                            OPTIONAL {
56                                ?rubriek onz-g:isAbout ?saldo .
57                                ?saldo a onz-fin:EindSaldo ;
58                                       onz-fin:heeftGeldBedrag ?saldo_bedrag ;
59                                       onz-g:hasDate ?saldo_datum .
60                                FILTER(?saldo_datum <= ?peildatum_argument)
61                            }
62                            FILTER NOT EXISTS {
63                                ?rubriek onz-g:isAbout ?otherSaldo .
64                                ?otherSaldo a onz-fin:EindSaldo ;
65                                            onz-g:hasDate ?otherDatum .
66                                FILTER(?otherSaldo != ?saldo)
67                                FILTER(?otherDatum <= ?peildatum_argument)
68                                FILTER(
69                                    ?otherDatum > ?saldo_datum
70                                    || (
71                                        ?otherDatum = ?saldo_datum
72                                        && STR(?otherSaldo) > STR(?saldo)
73                                    )
74                                )
75                            }
76                            BIND(IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
77
78                            # Grootboekposten na saldo
79                            OPTIONAL {
80                                ?grootboek_post a onz-fin:Grootboekpost ;
81                                      onz-g:partOf ?rubriek ;
82                                      onz-g:hasDate ?datum ;
83                                      onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
84                                # Anti-dubbeltelling: houd alleen het bladniveau (geen transitive ancestors)
85                                FILTER NOT EXISTS {
86                                    ?grootboek_post onz-g:partOf ?child .
87                                    ?child onz-g:partOf ?rubriek .
88                                    FILTER(?child != ?rubriek)
89                                    { { ?child a onz-fin:Grootboekrekening } UNION { ?child a onz-fin:Grootboekrubriek } }
90                                }
91                                FILTER(
92                                    ?datum <= ?peildatum_argument
93                                    && (!BOUND(?saldo_datum) || ?datum > ?saldo_datum)
94                                )
95                            }
96                            BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
97                        }
98                        GROUP BY ?rubriek ?categorie
99                    }
100
101                    VALUES (?categorie ?jaarrekeningpost) {
102                        ("A.I"   "A Vaste activa")
103                        ("A.II"  "A Vaste activa")
104                        ("A.III" "A Vaste activa")
105                        ("F"     "F Langlopende schulden")
106                    }
107                } GROUP BY ?jaarrekeningpost
108            }
109        }
110    }
111    
112    BIND("Dekking vaste activa met lang vermogen" AS ?Kental)
113    BIND(?dvamlv AS ?Waarde)
114}
115ORDER BY ?Kental