Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

20.3 Wat is de debt ratio?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 20.3.0
2# Parameters: ?peildatum
3# Ontologie: versie 3.0.0 of nieuwer
4
5PREFIX onz-fin: <http://purl.org/ozo/onz-fin#>
6prefix onz-zorg:  <http://purl.org/ozo/onz-zorg#>
7PREFIX onz-g: <http://purl.org/ozo/onz-g#>
8PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
9
10SELECT ?Kental ?Waarde
11WHERE {
12    {
13        SELECT (IF(SUM(IF(?jaarrekeningpost = "H Totaal Passiva", ?bedrag, 0)) = 0,
14                "Ongedefinieerd"^^xsd:string,(SUM(IF(?jaarrekeningpost = "F Langlopende schulden", ?bedrag, 0)) + 
15                SUM(IF(?jaarrekeningpost = "G Kortlopende schulden", ?bedrag, 0)))/ SUM(IF(?jaarrekeningpost = "H Totaal Passiva", ?bedrag, 0))) AS ?debtratio)
16        WHERE {
17            {
18                SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
19                WHERE {
20                    # BIND("2024-12-31"^^xsd:date AS ?peildatum) 
21                    BIND(?peildatum AS ?peildatum_argument)
22                    {
23                        SELECT  # totaal per rubriek
24                            (SUM(?geld_bedrag) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek) ?rubriek ?categorie
25                        WHERE {
26                            {
27                                SELECT  # bereken het meest recente saldo per rubriek, 0 indien geen saldo
28                                    ?rubriek ?categorie
29                                    (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
30                                    ?peildatum_argument
31                                    (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
32                                    ?saldo_datum ?saldo
33                                WHERE {
34                                    # BIND("2024-12-31"^^xsd:date AS ?peildatum) 
35									BIND(?peildatum as ?peildatum_argument)
36                                    # Dynamically identify rubrieken and assign categories
37                                    {
38                                        SELECT DISTINCT ?rubriek WHERE {
39                                            ?rubriek a onz-fin:Grootboekrubriek .
40                                            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
41                                            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
42                                        }
43                                    }
44                                    BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
45
46                                    # Assign category based on the ?rubriekCode pattern
47                                    BIND(
48                                        COALESCE(
49                                                                                       
50                                            # Rubriek D    
51                                            IF(STRSTARTS(?rubriekCode, "0511"), "D.I", ?unbound),
52                                            IF(STRSTARTS(?rubriekCode, "05413"), "D.IV", ?unbound),
53                                            IF(STRSTARTS(?rubriekCode, "05311") || STRSTARTS(?rubriekCode, "05342") || STRSTARTS(?rubriekCode, "05423"), "D.V", ?unbound),
54                                            IF(STRSTARTS(?rubriekCode, "05323"), "D.VI", ?unbound),
55                                            IF(STRSTARTS(?rubriekCode, "0539") || STRSTARTS(?rubriekCode, "05493") || STRSTARTS(?rubriekCode, "05915"), "D.VII", ?unbound),
56                                            IF(STRSTARTS(?rubriekCode, "091"), "D.VIII", ?unbound),
57
58                                            # Rubriek E,
59                                            IF(STRSTARTS(?rubriekCode, "06"), "E", ?unbound),
60
61                                            # Rubriek F
62                                            IF(STRSTARTS(?rubriekCode, "07"), "F", ?unbound),
63
64                                            # Rubriek G
65                                            IF(STRSTARTS(?rubriekCode, "14") || STRSTARTS(?rubriekCode, "15"), "G", ?unbound),
66                                            "other"
67                                        ) AS ?categorie
68                                    )
69                                    FILTER(BOUND(?categorie))
70
71                                    OPTIONAL {
72                                        ?rubriek onz-g:isAbout ?saldo .
73                                        ?saldo
74                                            a onz-fin:EindSaldo ;
75                                            onz-fin:heeftGeldBedrag ?saldo_bedrag ;
76                                            onz-g:hasDate ?saldo_datum .
77                                        FILTER (?saldo_datum <= ?peildatum_argument)
78                                    }
79                                    FILTER NOT EXISTS {
80                                        ?rubriek onz-g:isAbout ?saldo2 .
81                                        ?saldo2
82                                            onz-g:hasDate ?saldo_datum2 ;
83                                            a onz-fin:EindSaldo ;.
84                                        FILTER(?saldo2 != ?saldo)
85                                        FILTER (?saldo_datum2 <= ?peildatum_argument && ?saldo_datum2 > ?saldo_datum)
86                                    }
87                                }
88                            }
89                            OPTIONAL {
90                                ?grootboek_post
91                                    a onz-fin:Grootboekpost ;
92                                    onz-g:partOf ?rubriek ;
93                                    onz-g:hasDate ?datum ;
94                                    onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
95                                FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum)))
96                            }
97                            BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
98
99                        } GROUP BY ?rubriek ?categorie
100                    }
101
102                    VALUES (?categorie ?jaarrekeningpost){
103                        ("D.I"    "H Totaal Passiva")
104                        ("D.IV"   "H Totaal Passiva")
105                        ("D.V"    "H Totaal Passiva")
106                        ("D.VI"   "H Totaal Passiva")
107                        ("D.VII"  "H Totaal Passiva")
108                        ("D.VIII" "H Totaal Passiva")
109                        ("E"      "H Totaal Passiva")
110                        ("F"      "H Totaal Passiva")
111                        ("G"      "H Totaal Passiva")
112                        ("F"      "F Langlopende schulden")
113                        ("G"      "G Kortlopende schulden")
114                    }
115                } GROUP BY ?jaarrekeningpost
116            }
117        }
118    }
119    
120    BIND("Debt ratio" AS ?Kental)
121    BIND(?debtratio AS ?Waarde)
122}
123ORDER BY ?Kental