Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling

Over Uitwisselprofiel Zorgkantoren Inkoopondersteuning en beleidsontwikkeling


Publicatiedatum:
03-10-2025

Inwerkingtreding:
03-10-2025

19.8 Wat is de cashflow?

Concepten

Relaties

Eigenschappen

SPARQL query

Code gekopieerd

...

Kopieer naar klembord

1# SPARQL: 19.8 Zorgkantoren inkoopondersteuning
2# Parameters: ?startperiode, ?eindperiode, ?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  
10  ("Cashflow" AS ?Kental)
11  (
12    IF(
13      (?DebtService = 0),
14      "Ongedefinieerd"^^xsd:string,
15      (?S_na_belasting / ?DebtService)
16    )
17    AS ?Waarde
18  )
19WHERE {
20  # 1. S Resultaat na belastingen
21  {
22        SELECT (?p_totaal - ?q_totaal + COALESCE(?q_vi, 0) + COALESCE(?r_i, 0) + COALESCE(?r_ii, 0) - COALESCE(?r_iii, 0) - COALESCE(?r_iv, 0) + COALESCE(?s_ii, 0) AS ?S_na_belasting)
23    WHERE {
24      {
25        # DEEL 1: Eindtotalen berekenen
26        SELECT (SUM(?p_bedrag) AS ?p_totaal) (SUM(?q_bedrag) AS ?q_totaal)
27        WHERE {
28              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
29              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)         
30          {
31            SELECT DISTINCT ?rubriek WHERE {
32              ?rubriek a onz-fin:Grootboekrubriek .
33              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
34              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
35            }
36          }
37
38          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
39
40          ?grootboek_post a onz-fin:Grootboekpost ;
41                          onz-g:partOf ?rubriek ;
42                          onz-g:hasDate ?datum ;
43                          onz-fin:heeftGeldBedrag ?geld_bedrag .
44
45          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
46
47          # P-bedragen
48          BIND(
49            IF(
50              STRSTARTS(?rubriekCode, "81") ||
51              STRSTARTS(?rubriekCode, "82") ||
52              STRSTARTS(?rubriekCode, "83") ||
53              STRSTARTS(?rubriekCode, "89") ||
54              STRSTARTS(?rubriekCode, "919") ||
55              STRSTARTS(?rubriekCode, "920") ||
56              STRSTARTS(?rubriekCode, "930"),
57              ?geld_bedrag, 0) AS ?p_bedrag
58          )
59
60          # Q-bedragen
61          BIND(
62            IF(
63              STRSTARTS(?rubriekCode, "417") ||
64              STRSTARTS(?rubriekCode, "418") ||
65              STRSTARTS(?rubriekCode, "411") ||
66              STRSTARTS(?rubriekCode, "412") ||
67              STRSTARTS(?rubriekCode, "413") ||
68              STRSTARTS(?rubriekCode, "414") ||
69              STRSTARTS(?rubriekCode, "415") ||
70              STRSTARTS(?rubriekCode, "416") ||
71              STRSTARTS(?rubriekCode, "419") ||
72              STRSTARTS(?rubriekCode, "420") ||
73              STRSTARTS(?rubriekCode, "4221") ||
74              STRSTARTS(?rubriekCode, "4223") ||
75              STRSTARTS(?rubriekCode, "4224") ||
76              STRSTARTS(?rubriekCode, "4225") ||
77              STRSTARTS(?rubriekCode, "4229") ||
78              STRSTARTS(?rubriekCode, "4226") ||
79              STRSTARTS(?rubriekCode, "480") ||
80              STRSTARTS(?rubriekCode, "481") ||
81              STRSTARTS(?rubriekCode, "482") ||
82              STRSTARTS(?rubriekCode, "483") ||
83              STRSTARTS(?rubriekCode, "484") ||
84              STRSTARTS(?rubriekCode, "423") ||
85              STRSTARTS(?rubriekCode, "43") ||
86              STRSTARTS(?rubriekCode, "44") ||
87              STRSTARTS(?rubriekCode, "45") ||
88              STRSTARTS(?rubriekCode, "46") ||
89              STRSTARTS(?rubriekCode, "47") ||
90              STRSTARTS(?rubriekCode, "486") ||
91              STRSTARTS(?rubriekCode, "489") ||
92              STRSTARTS(?rubriekCode, "905") ||
93              STRSTARTS(?rubriekCode, "911") ||
94              STRSTARTS(?rubriekCode, "912") ||
95              STRSTARTS(?rubriekCode, "913") ||
96              STRSTARTS(?rubriekCode, "914") ||
97              STRSTARTS(?rubriekCode, "915") ||
98              STRSTARTS(?rubriekCode, "921") ||
99              STRSTARTS(?rubriekCode, "931"),
100              ?geld_bedrag, 0) AS ?q_bedrag
101          )
102        }
103      }
104
105      # Q.VI Afschrijvingen op immateriële vaste activa en materiële vaste activa 
106      {
107        SELECT (SUM(?geld_bedrag) AS ?q_vi)
108        WHERE {
109              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
110              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)          
111          {
112            SELECT DISTINCT ?rubriek WHERE {
113              ?rubriek a onz-fin:Grootboekrubriek .
114              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
115              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
116            }
117          }
118
119          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
120
121          BIND(
122            IF(
123              STRSTARTS(?rubriekCode, "480") ||
124              STRSTARTS(?rubriekCode, "481") ||
125              STRSTARTS(?rubriekCode, "482") ||
126              STRSTARTS(?rubriekCode, "483") ||
127              STRSTARTS(?rubriekCode, "484"),
128              "Q.VI", "other"
129            ) AS ?categorie
130          )
131
132          FILTER(?categorie = "Q.VI")
133
134          ?grootboek_post a onz-fin:Grootboekpost ;
135                          onz-g:partOf ?rubriek ;
136                          onz-g:hasDate ?datum ;
137                          onz-fin:heeftGeldBedrag ?geld_bedrag .
138
139          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
140        }
141      }
142      # R.I Opbrengst van vorderingen die tot de vaste activa behoren en van effecten
143      {
144        SELECT (SUM(?geld_bedrag) AS ?r_i)
145        WHERE {
146              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
147              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)          
148          {
149            SELECT DISTINCT ?rubriek WHERE {
150              ?rubriek a onz-fin:Grootboekrubriek .
151              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
152              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
153            }
154          }
155
156          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
157
158          BIND(
159            IF(
160              STRSTARTS(?rubriekCode, "904"),
161              "R.I", "other"
162            ) AS ?categorie
163          )
164
165          FILTER(?categorie = "R.I")
166
167          ?grootboek_post a onz-fin:Grootboekpost ;
168                          onz-g:partOf ?rubriek ;
169                          onz-g:hasDate ?datum ;
170                          onz-fin:heeftGeldBedrag ?geld_bedrag .
171
172          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
173        }
174      }
175      #R.II Andere rentebaten en soortgelijke opbrengsten
176      {
177        SELECT (SUM(?geld_bedrag) AS ?r_ii)
178        WHERE {
179              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
180              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)          
181          {
182            SELECT DISTINCT ?rubriek WHERE {
183              ?rubriek a onz-fin:Grootboekrubriek .
184              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
185              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
186            }
187          }
188
189          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
190
191          BIND(
192            IF(
193              STRSTARTS(?rubriekCode, "900"),
194              "R.II", "other"
195            ) AS ?categorie
196          )
197
198          FILTER(?categorie = "R.II")
199
200          ?grootboek_post a onz-fin:Grootboekpost ;
201                          onz-g:partOf ?rubriek ;
202                          onz-g:hasDate ?datum ;
203                          onz-fin:heeftGeldBedrag ?geld_bedrag .
204
205          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
206        }
207      }
208      # R.III Waardeverandering van vorderingen die tot de vaste activa behoren en van effecten
209      {
210        SELECT (SUM(?geld_bedrag) AS ?r_iii)
211        WHERE {
212              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
213              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)          
214          {
215            SELECT DISTINCT ?rubriek WHERE {
216              ?rubriek a onz-fin:Grootboekrubriek .
217              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
218              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
219            }
220          }
221
222          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
223
224          BIND(
225            IF(
226              STRSTARTS(?rubriekCode, "903"),
227              "R.III", "other"
228            ) AS ?categorie
229          )
230
231          FILTER(?categorie = "R.III")
232
233          ?grootboek_post a onz-fin:Grootboekpost ;
234                          onz-g:partOf ?rubriek ;
235                          onz-g:hasDate ?datum ;
236                          onz-fin:heeftGeldBedrag ?geld_bedrag .
237
238          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
239        }
240      }
241      {
242      SELECT (SUM(?geld_bedrag) AS ?r_iv)
243        WHERE {
244              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
245              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)          
246          {
247            SELECT DISTINCT ?rubriek WHERE {
248              ?rubriek a onz-fin:Grootboekrubriek .
249              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
250              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
251            }
252          }
253          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
254          ?grootboek_post a onz-fin:Grootboekpost ;
255                          onz-g:partOf ?rubriek ;
256                          onz-g:hasDate ?datum ;
257                          onz-fin:heeftGeldBedrag ?geld_bedrag .
258          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
259          FILTER(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901"))
260        }
261      }
262      #S.II Aandeel in winst/verlies van ondernemingen waarin wordt deelgenomen (S.I altijd 0)
263      {
264        SELECT (SUM(?geld_bedrag) AS ?s_ii)
265        WHERE {
266              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
267              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)          
268          {
269            SELECT DISTINCT ?rubriek WHERE {
270              ?rubriek a onz-fin:Grootboekrubriek .
271              FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
272              FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
273            }
274          }
275
276          BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
277
278          BIND(
279            IF(
280              STRSTARTS(?rubriekCode, "902"),
281              "S.II", "other"
282            ) AS ?categorie
283          )
284
285          FILTER(?categorie = "S.II")
286
287          ?grootboek_post a onz-fin:Grootboekpost ;
288                          onz-g:partOf ?rubriek ;
289                          onz-g:hasDate ?datum ;
290                          onz-fin:heeftGeldBedrag ?geld_bedrag .
291
292          FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
293        }
294      }
295    }
296  }
297
298  # 2. Rente en aflossingen
299{
300  SELECT (?r_iv_totaal + ?aflossing AS ?DebtService)
301  WHERE {
302    
303    # Rentelasten (R.IV)
304    {
305      SELECT (SUM(?geld_bedrag) AS ?r_iv_totaal)
306      WHERE {
307              # BIND("2024-01-01"^^xsd:date AS ?startperiode)
308              # BIND("2024-12-31"^^xsd:date AS ?eindperiode)        
309        {
310          SELECT DISTINCT ?rubriek WHERE {
311            ?rubriek a onz-fin:Grootboekrubriek .
312            FILTER(STRSTARTS(STR(?rubriek), STR(onz-fin:)))
313            FILTER(REGEX(STRAFTER(STR(?rubriek), STR(onz-fin:)), "^[0-9]{6}$"))
314          }
315        }
316        BIND(STRAFTER(STR(?rubriek), STR(onz-fin:)) AS ?rubriekCode)
317        ?grootboek_post a onz-fin:Grootboekpost ;
318                        onz-g:partOf ?rubriek ;
319                        onz-g:hasDate ?datum ;
320                        onz-fin:heeftGeldBedrag ?geld_bedrag .
321        FILTER (?datum >= ?startperiode && ?datum <= ?eindperiode)
322        FILTER(STRSTARTS(?rubriekCode, "485") || STRSTARTS(?rubriekCode, "901"))
323      }
324    }
325
326    # saldoVoor
327    {
328      SELECT (SUM(?bedrag_rubriek) AS ?saldoVoor)
329      WHERE {
330        {
331          SELECT ?rubriek ?saldo_datum ?saldo_bedrag
332          WHERE {
333              # BIND("2023-12-31"^^xsd:date AS ?peildatum)    
334              BIND(?peildatum AS ?peildatum_argument)        
335            ?rubriek a onz-fin:Grootboekrubriek ;
336                    onz-g:isAbout ?saldo .
337            ?saldo a onz-fin:EindSaldo ;
338                  onz-fin:heeftGeldBedrag ?saldo_bedrag ;
339                  onz-g:hasDate ?saldo_datum .
340            FILTER (STRSTARTS(STRAFTER(STR(?rubriek), STR(onz-fin:)), "07"))
341            FILTER (?saldo_datum <= ?peildatum_argument)
342            FILTER NOT EXISTS {
343              ?rubriek onz-g:isAbout ?otherSaldo .
344              ?otherSaldo a onz-fin:EindSaldo ;
345                          onz-g:hasDate ?otherDate .
346              FILTER(?otherDate <= ?peildatum_argument && ?otherDate > ?saldo_datum)
347            }
348          }
349        }
350        BIND(IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?bedrag_rubriek)
351      }
352    }
353
354    # saldoNa
355    {
356      SELECT (SUM(?bedrag_rubriek) AS ?saldoNa)
357      WHERE {        
358        {
359          SELECT ?rubriek ?saldo_datum ?saldo_bedrag
360          WHERE {
361            # BIND("2024-12-31"^^xsd:date AS ?eindperiode)
362            ?rubriek a onz-fin:Grootboekrubriek ;
363                    onz-g:isAbout ?saldo .
364            ?saldo a onz-fin:EindSaldo ;
365                  onz-fin:heeftGeldBedrag ?saldo_bedrag ;
366                  onz-g:hasDate ?saldo_datum .
367            FILTER (STRSTARTS(STRAFTER(STR(?rubriek), STR(onz-fin:)), "07"))
368            FILTER (?saldo_datum <= ?eindperiode)
369            FILTER NOT EXISTS {
370              ?rubriek onz-g:isAbout ?otherSaldo .
371              ?otherSaldo a onz-fin:EindSaldo ;
372                          onz-g:hasDate ?otherDate .
373              FILTER(?otherDate <= ?eindperiode && ?otherDate > ?saldo_datum)
374            }
375          }
376        }
377        BIND(IF(BOUND(?saldo_bedrag), ?saldo_bedrag, 0) AS ?bedrag_rubriek)
378      }
379    }
380
381    # aflossing berekenen
382    BIND(?saldoVoor - ?saldoNa AS ?aflossing)
383    }
384  }
385
386}
387ORDER BY ?Kental
388