[#
sjabloon berekent de huwelijksduur van de persoon in het hoofdvenster
en houdt rekening met scheiding en overlijden, eventueel van de partner
mocht die eerder overleden zijn.
Han Kortekaas
22 mei 2025
versie 1
#]
[?
_SETDEF(partner)
_SETDEF(persoon)
_SETDEF(tmp_1)
_SETDEF(tmp_2)
_SETDEF(event_date)
_USES(DutchDateFormat,";;;;")
?]
_METAPATH([:_FILEPATH[&relatieduur\&]:],"g")
_FILENAME( "relatieduur.html" )
_FILEMODE( "html", "ifNewer" )
_WRITBEGI
[:_s_style_standaard:]
relatieduur
Relatieduur
| [?_RELA?]?_BEGI[:_s_persoon:] heeft [&[?_RELAAMOU==1?]een relatie&]|[&relaties&] met |
[:_s_bepaal_voor_de_persoon_de_laatste_relatieduur:]
| | gebeurtenisdatum | relatieduur |
_RELABEGI
| [&[?_SWAPBEGI _RELAAMOU _SWAPEND==1?]&]|[:_NUMB :][:_s_persoon:] | [:_s_relatieduur:] _SETEXP(event_date,1,_SETDATE) |
_SETEXP(tmp_1,0,_SETSTRI ) |
_RELAEND
_ELSE| [:_s_persoon:] heeft geen relatie. |
_END
_WRITEND
:.
_FUNCBEGI(_s_persoon)[:_NAMEPREF :]_SURN|[&NN&][:[?_NAMEFIRS _NAMENICK?], _NAMEFIRS[:[?_NAMENICK?]?_BEGI (_NAMENICK)_END:]:]_FUNCEND:.
:.
_FUNCBEGI(_s_bepaal_voor_de_persoon_de_laatste_relatieduur)
_SETCLR(persoon)
_SETCLR(tmp_2)
_RELABEGI
_LAST?
_BEGI
[:[?_RELASTAR([:_Y:])?][?_MARCDATE([:_Y:])?][?_REREDATE([:_Y:])?]:]?
_BEGI [:_s_bepaal_gebeurtenis_datum:]_END
_END
_RELAEND
_s_bepaal_voor_de_persoon_relatieduur
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_voor_de_persoon_relatieduur)
[:[?_DEATDATE([:_Y:])?][?_DEARDATE([:_Y:])?][?_BURIDATE([:_Y:])?]:]?
_BEGI[:_s_bepaal_zelf_persoon_overleden:]
_ELSE[:_s_bepaal_zelf_persoon_levend:]
_END
_FUNCEND
:.
_FUNCBEGI( _s_relatieduur)
:. denk er aan dat deze functie in de loop staat van _RELABEGI/END
_SETCLR(partner)
_SETCLR(tmp_1)
_SETCLR(event_date)
:. BEGIN tijdlijn is _RELASTAR _MARCDATE _REREDATE
[:[?_RELASTAR([:_Y:])?][?_MARCDATE([:_Y:])?][?_REREDATE([:_Y:])?]:]?
_BEGI [:_s_bepaal_gebeurtenis_datum:]
_END
:. EINDE tijdlijn is _DIVDATE _DEATDATE _BURIDATE _DEARDATE _CURRDATE
:. Is er sprake van een echtscheiding van deze relatie
[?_DIV?]?
_BEGI [:_s_bepaal_scheiding_relatie:]
_ELSE
[:[?_DEATDATE([:_Y:])?][?_DEARDATE([:_Y:])?][?_BURIDATE([:_Y:])?]:]?
_BEGI[:_s_bepaal_partner_overleden:]
_ELSE[:_s_bepaal_partner_levend:]
_END
_END
_LAST?
_BEGI
[?_SETEXP(event_date,1,_SETDATE)?]?
_BEGI
[?_SETEXP(persoon,0,_SETSTRI)>_SETEXP(partner,0,_SETSTRI)?]?
_BEGI [::]
_ELSE _SETADD(tmp_1,[:_SETEXP(tmp_2,0,_SETSTRI ) :] )
_END
_END
_END
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_gebeurtenis_datum)
[?_RELASTAR([:_Y:])?]?
_BEGI _SETADD(event_date, "TIJDLIJN", _RELASTAR)
_ELSE
[?_MARCDATE([:_Y:])?]?
_BEGI _SETADD(event_date, "TIJDLIJN", _MARCDATE)
_ELSE
[?_REREDATE([:_Y:])?]?
_BEGI _SETADD(event_date, "TIJDLIJN", _REREDATE)
_END[::]_END[::]_END
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_scheiding_relatie)
[?_DIVDATE([:_Y:])?]?
_BEGI _SETADD(tmp_1,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DIVDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]) :])
_SETADD(partner,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DIVDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
:._DIALINFO([:scheiding _s_persoon _SURN _DIVDATE _SETEXP(tmp_1,0,_SETSTRI) _SETEXP(partner,0,_SETSTRI):])
_END
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_partner_overleden)
[?_DEATDATE([:_Y:])?]?
_BEGI _SETADD(tmp_1, [:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEATDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(partner,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEATDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_ELSE
[?_DEARDATE([:_Y:])?]?
_BEGI _SETADD(tmp_1,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEARDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(partner,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEARDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_ELSE
[?_BURIDATE([:_Y:])?]?
_BEGI _SETADD(tmp_1,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_BURIDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(partner,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_BURIDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_END[::]_END[::]_END
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_partner_levend)
_SETADD(tmp_1,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_CURRDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(partner,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_CURRDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_zelf_persoon_overleden)
[:[?_DEATDATE([:_Y:])?][?_DEARDATE([:_Y:])?][?_BURIDATE([:_Y:])?]:]?
_BEGI
[?_DEATDATE([:_Y:])?]?
_BEGI _SETADD(tmp_2,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEATDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(persoon,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEATDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_ELSE
[?_DEARDATE([:_Y:])?]?
_BEGI _SETADD(tmp_2,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEARDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(persoon,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_DEARDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_ELSE
[?_BURIDATE([:_Y:])?]?
_BEGI _SETADD(tmp_2,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_BURIDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(persoon,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_BURIDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_END[::]_END[::]_END
_END
_FUNCEND
:.
_FUNCBEGI(_s_bepaal_zelf_persoon_levend)
_SETADD(tmp_2,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_CURRDATE)_Y|[&0&][&jr&] _M|[&0&][&mnd&] _D|[&0&][&dgn&] :]):])
_SETADD(persoon,[:_SETEXP(event_date,1,_SETDATE)([:_DIFFDATE(_CURRDATE)_Y._FILL("0",4)_M._FILL("0",2)_D._FILL("0",2):]):])
_FUNCEND
:.
_FUNCBEGI(_s_style_standaard)
_FUNCEND
:.
_FUNCBEGI(_s_style_font)
[&[?_PREFFONTSIZE>14?]14&]|[:_PREFFONTSIZE:]:.
_FUNCEND
:.
_FUNCBEGI(_s_table_size)
[&[?_PREFFONTSIZE>14?]850&]|[&700&]:.
_FUNCEND
:.