Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

19.5 Wat is de current ratio?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# Indicator: Zorgkantoren 19.5
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 = "G Kortlopende schulden", ?bedrag, 0)) = 0,
14                "Ongedefinieerd"^^xsd:string,
15                SUM(IF(?jaarrekeningpost = "B Vlottende activa", ?bedrag, 0)) / 
16                SUM(IF(?jaarrekeningpost = "G Kortlopende schulden", ?bedrag, 0))) AS ?werkkapitaal)
17        WHERE {
18            {
19                SELECT ?jaarrekeningpost (SUM(?bedrag_rubriek) AS ?bedrag)
20                WHERE {
21                    # BIND("2024-12-31"^^xsd:date AS ?peildatum)
22                    BIND(?peildatum AS ?peildatum_argument)
23                    {
24                        SELECT  # totaal per rubriek
25                            (SUM(?geld_bedrag) + SUM(?saldo_waarde)/count(?saldo_waarde) AS ?bedrag_rubriek) ?rubriek ?categorie
26                        WHERE {
27                            {
28                                SELECT  # bereken het meest recente saldo per rubriek, 0 indien geen saldo
29                                    ?rubriek ?categorie
30                                    (IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?saldo_waarde)
31                                    ?peildatum_argument
32                                    (IF(BOUND(?saldo_datum), ?saldo_datum, ?unbound) AS ?begin_datum)
33                                    ?saldo_datum ?saldo
34                                WHERE {
35                                    #BIND("2024-12-31"^^xsd:date AS ?peildatum)
36									BIND(?peildatum as ?peildatum_argument)
37                                    # Dynamically identify rubrieken and assign categories
38                                    {
39                                        SELECT DISTINCT ?rubriek WHERE {
40                                            ?rubriek a onz-fin:Grootboekrubriek .
41                                            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
42                                            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
43                                        }
44                                    }
45                                    BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
46
47                                    # Assign category based on the ?rubriekCode pattern
48                                    BIND(
49                                        COALESCE(
50                                            # Rubrieken B.I t/m B.IV
51                                            IF(STRSTARTS(?rubriekCode, "3"), "B.I", ?unbound),
52                                            IF(STRSTARTS(?rubriekCode, "12"), "B.II", ?unbound),
53                                            IF(STRSTARTS(?rubriekCode, "131"), "B.III", ?unbound),
54                                            IF(STRSTARTS(?rubriekCode, "132"), "B.IV", ?unbound),
55                                            
56                                            # Rubriek G
57                                            IF(STRSTARTS(?rubriekCode, "14") || STRSTARTS(?rubriekCode, "15"), "G", ?unbound),
58                                            "other"
59                                        ) AS ?categorie
60                                    )
61                                    FILTER(BOUND(?categorie))
62
63                                    OPTIONAL {
64                                        ?rubriek onz-g:isAbout ?saldo .
65                                        ?saldo
66                                            a onz-fin:EindSaldo ;
67                                            onz-fin:heeftGeldBedrag ?saldo_bedrag ;
68                                            onz-g:hasDate ?saldo_datum .
69                                        FILTER (?saldo_datum <= ?peildatum_argument)
70                                    }
71                                    FILTER NOT EXISTS {
72                                        ?rubriek onz-g:isAbout ?saldo2 .
73                                        ?saldo2
74                                            onz-g:hasDate ?saldo_datum2 ;
75                                            a onz-fin:EindSaldo ;.
76                                        FILTER(?saldo2 != ?saldo)
77                                        FILTER (?saldo_datum2 <= ?peildatum_argument && ?saldo_datum2 > ?saldo_datum)
78                                    }
79                                }
80                            }
81                            OPTIONAL {
82                                ?grootboek_post
83                                    a onz-fin:Grootboekpost ;
84                                    onz-g:partOf ?rubriek ;
85                                    onz-g:hasDate ?datum ;
86                                    onz-fin:heeftGeldBedrag ?geld_bedrag_temp .
87                                FILTER (?datum <= ?peildatum_argument && (?datum > ?begin_datum || !BOUND(?begin_datum)))
88                            }
89                            BIND(IF(BOUND(?geld_bedrag_temp), ?geld_bedrag_temp, 0) AS ?geld_bedrag)
90
91                        } GROUP BY ?rubriek ?categorie
92                    }
93
94                    VALUES (?categorie ?jaarrekeningpost){
95                        ("B.I"    "B Vlottende activa")
96                        ("B.II"   "B Vlottende activa")
97                        ("B.III"  "B Vlottende activa")
98                        ("B.IV"   "B Vlottende activa")
99                        ("G"      "G Kortlopende schulden")
100                    }
101                } GROUP BY ?jaarrekeningpost
102            }
103        }
104    }
105    
106    BIND("Current ratio" AS ?Kental)
107    BIND(?werkkapitaal AS ?Waarde)
108}
109ORDER BY ?Kental