scripts added
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
Berekent een nascholingstotaal voor een contact $contact_id en voor jaar $year.
|
||||
|
||||
Indien global\get('nascholingstotalen-niet-herberekenen') gezet is, zal een opgeslagen Nascholingstotaal niet tot herberekening leiden. NB. Dit gebeurt als formule bij 'Nascholingstotaal' (afterSave).
|
||||
|
||||
Indien $no_db_update == true, dan worden de resultaten niet opgeslagen bij het betreffende Nascholingstotaal en kunnen alleen de uitgangsvariabelen worden gebruikt. Het script dient dan gestart te worden met $na_totaal_dagen, $na_totaal_medisch, $na_vrijstelling en $na_handmatig.
|
||||
|
||||
Voor het gegeven Lid:
|
||||
|
||||
- $na_reg_jr - jaar van registratie van het gegven contact.
|
||||
- $na_dispensatie - of er dispensatie is in algemene zin voor het lid (niet jaar gebonden).
|
||||
|
||||
De totalen en saldi:
|
||||
|
||||
- $na_totaal_dagen - het totaal aantal overige dagen,
|
||||
- $na_totaal_medisch - het totaal aantal gevolgde medische dagen,
|
||||
- $na_totaal_homeopathie - het totaal aantal gevolgde dagen klassieke homeopathie,
|
||||
- $na_totaal_werkgroep - het totaal aantal dagen voor werkgroepverslagen (max 2),
|
||||
- $na_saldo - het saldo na aftrek van $na_dagen_norm,
|
||||
- $na_medisch_saldo - het saldo na aftrek van $na_medisch_norm,
|
||||
- $na_homeopathie_saldo - het saldo na aftrek van $na_homeopathie_norm,
|
||||
- $na_vrijstelling - het aantal geregistreerde vrijstellingsdagen voor de het gegeven jaar of, als dispensatie of als $year = jaar van registratie: = $na_dagen_norm_formeel.
|
||||
|
||||
De normen:
|
||||
|
||||
- $na_dagen_norm - $na_dagen_norm_formeel - $na_vrijstelling
|
||||
- $na_dagen_norm_formeel - het formele totaal aantal dagen te volgen nascholing voor het gegeven jaar $year
|
||||
- $na_medisch_norm - het formeel aantal te volgen medische dagen voor het gegeven jaar $year
|
||||
- $na_homeopathie_norm - het formeel aantal te volgen dagen klassieke homeopathie voor het gegeven jaar $year
|
||||
|
||||
zijn daarna beschikbaar.
|
||||
|
||||
Berekent het totaal aantal dagen homeopathie, dagen medisch, norm dagen, formele norm dagen en saldo dagen aan de hand van de geregistreerde nascholingen, tenzij het betrokken nascholingstotaal record op handmatig staat.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
5fca5189ec16d65c8
|
||||
@@ -0,0 +1,275 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialiseren
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_reg_dt = record\attribute('Contact', $contact_id, 'datumRegistratie');
|
||||
$na_dispensatie = record\attribute('Contact', $contact_id, 'dispensatie');
|
||||
$na_reg_jr = datetime\year($na_reg_dt);
|
||||
|
||||
ifThen(!global\isset('nascholingsnorm-hash'),
|
||||
$na_script = configGet('script-lees-nascholingsnorm-hash');
|
||||
Exec($na_script);
|
||||
);
|
||||
$na_norm = global\get('nascholingsnorm-hash');
|
||||
|
||||
$na_id = '<none>';
|
||||
|
||||
$na_methode_1_tot_en_met = configGet('berekening-methode-1-tot-en-met');
|
||||
$na_werkgroep_div = configGet('werkgroep-dagen-deel-factor');
|
||||
$na_werkgroep_max = configGet('werkgroep-dagen-max');
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken de totalen dagen en dagenMedisch.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ifThen(!$no_db_update,
|
||||
$na_recs = record\fetchManyHash('Nascholingstotaal',
|
||||
'id, dagen, dagenMedisch, dagenHomeopathie, handmatig, dagenVrijstelling, nascholingsnormId',
|
||||
'createdAt', 'asc',
|
||||
'contactId=', $contact_id,
|
||||
'jaar=', $year
|
||||
);
|
||||
$na_nrecs = array\length($na_recs);
|
||||
|
||||
ifThenElse($na_nrecs > 0,
|
||||
$na_rec = array\at($na_recs, 0);
|
||||
|
||||
$na_id = hash\get($na_rec, 'id');
|
||||
$na_handmatig = hash\get($na_rec, 'handmatig');
|
||||
$na_vrijstelling = hash\get($na_rec, 'dagenVrijstelling');
|
||||
|
||||
// Zolang de totalen handmatig zijn, wordt er niets berekend.
|
||||
ifThenElse($na_handmatig,
|
||||
$na_totaal_dagen = hash\get($na_rec, 'dagen');
|
||||
$na_totaal_medisch = hash\get($na_rec, 'dagenMedisch');
|
||||
$na_totaal_homeopathie = hash\get($na_rec, 'dagenHomeopathie');
|
||||
$na_totaal_werkgroep = hash\get($na_rec, 'dagenWerkgroep');
|
||||
log('warning', 'Handmatige nascholing, er wordt niets berekend');
|
||||
,
|
||||
// Totalen op 0
|
||||
$na_totaal_dagen = 0;
|
||||
$na_totaal_medisch = 0;
|
||||
$na_totaal_homeopathie = 0;
|
||||
$na_totaal_werkgroep = 0;
|
||||
|
||||
// Eerst de geaccrediteerde nascholingen voor zover van toepassing
|
||||
// kan nog steeds met methode 1.
|
||||
$na_rows = record\fetchRelatedMany(
|
||||
'Contact', $contact_id, 'nascholingen',
|
||||
'jaar, aantalDagen, aantalDagenMedisch, dagenHomeopathie',
|
||||
'jaar', 'asc',
|
||||
'jaar=', $year
|
||||
);
|
||||
|
||||
$na_i = 0;
|
||||
$na_n = array\length($na_rows);
|
||||
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$na_totaal_dagen = $na_totaal_dagen + array\at($na_row, 1);
|
||||
$na_totaal_medisch = $na_totaal_medisch + array\at($na_row, 2);
|
||||
$na_totaal_homeopathie = $na_totaal_homeopathie + array\at($na_row, 3);
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
// Dan de goedgekeurde handmatige nascholingen
|
||||
// kan nog steeds met methode 1.
|
||||
$na_rows = record\fetchRelatedMany(
|
||||
'Contact', $contact_id, 'handmatigeNascholingen',
|
||||
'jaar, dagen, dagenMedisch, dagenHomeopathie, status',
|
||||
'jaar', 'asc',
|
||||
'jaar=', $year
|
||||
);
|
||||
$na_i = 0;
|
||||
$na_n = array\length($na_rows);
|
||||
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$status = array\at($na_row, 4);
|
||||
log('warning', 'i = ', $na_i, ', status = ', $status);
|
||||
ifThen($status != '-' && $status != 'afgekeurd',
|
||||
$na_totaal_dagen = $na_totaal_dagen + array\at($na_row, 1);
|
||||
$na_totaal_medisch = $na_totaal_medisch + array\at($na_row, 2);
|
||||
$na_totaal_homeopathie = $na_totaal_homeopathie + array\at($na_row, 3);
|
||||
log('warning', 'dagen vermeerderd: ', $na_totaal_dagen, ', en ', $na_totaal_medisch);
|
||||
);
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
// Dan het aantal notulen voor de werkgroepen van dit contact voor het gegeven jaar
|
||||
// Eerst kijken we of we al groter dan het grensjaar zitten.
|
||||
// Dit is niet meer voor methode 1.
|
||||
ifThen($year > $na_methode_1_tot_en_met,
|
||||
// Nu kunnen we ons best doen.
|
||||
// Haal de werkgroep lidmaatschappen op die geldig zijn voor dit jaar.
|
||||
$na_today = datetime\now();
|
||||
$na_werkgroepen_ids_1 = record\fetchRelatedManyHash('Contact', $contact_id,
|
||||
'werkgroeplidmaatschappen',
|
||||
'werkgroepId, datumVanaf',
|
||||
'name', 'asc',
|
||||
'lidmaatschapBeeindigd=', 0,
|
||||
'jaarVanaf<=', $year,
|
||||
);
|
||||
$na_werkgroepen_ids_2 = record\fetchRelatedManyHash('Contact', $contact_id,
|
||||
'werkgroeplidmaatschappen',
|
||||
'werkgroepId, datumVanaf, datumTotEnMet',
|
||||
'name', 'asc',
|
||||
'lidmaatschapBeeindigd=', 1,
|
||||
'jaarVanaf<=', $year,
|
||||
'jaarTotEnMet>=', $year
|
||||
);
|
||||
// Oke, nu hebben we de werkgroep ids.
|
||||
// En dan kijken naar het aantal verslagen over dit jaar.
|
||||
// En afkappen op een maximaal aantal dagen.
|
||||
|
||||
$na_werkgroep_verlagen = 0;
|
||||
|
||||
$na_i = 0;
|
||||
$na_n = array\length($na_werkgroepen_ids_1);
|
||||
while($na_i < $na_n,
|
||||
// Verkrijg het aantal notulen >= max(datumVanaf,begin dit jaar) en kleiner einde dit jaar.
|
||||
$na_row = array\at($na_werkgroepen_ids_1, $na_i);
|
||||
|
||||
$na_werkgroep_id = hash\get($na_row, 'werkgroepId');
|
||||
|
||||
$na_datumVanaf = hash\get($na_row, 'datumVanaf');
|
||||
$na_year_begin = string\concatenate($year, '-01-01');
|
||||
$na_end = string\concatenate($year, '-12-31');
|
||||
ifThenElse($na_datumVanaf > $na_year_begin, $na_begin = $na_datumVanaf, $na_begin = $na_year_begin);
|
||||
|
||||
log('warning', 'werkgroepid = ', $na_werkgroep_id);
|
||||
log('warning', 'datum vanaf: ', $na_begin, ' datumVanaf:', $na_datumVanaf, ' year begin:', $na_year_begin);
|
||||
|
||||
$na_count = record\countRel('Werkgroep', $na_werkgroep_id,
|
||||
'werkgroepverslagen',
|
||||
'datum>=', $na_begin,
|
||||
'datum<=', $na_end
|
||||
);
|
||||
|
||||
$na_werkgroep_verslagen = $na_werkgroep_verslagen + $na_count;
|
||||
log('warning', 'count=', $na_count);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
// Oke en nu voor de jaren waarin er een einddatum is gezet.
|
||||
|
||||
$na_i = 0;
|
||||
$na_n = array\length($na_werkgroepen_ids_2);
|
||||
while($na_i < $na_n,
|
||||
// Verkrijg het aantal notulen >= max(datumVanaf,begin dit jaar) en kleiner MIN(datumTotEnMet, einde dit jaar).
|
||||
$na_row = array\at($na_werkgroepen_ids_2, $na_i);
|
||||
|
||||
$na_werkgroep_id = hash\get($na_row, 'werkgroepId');
|
||||
|
||||
$na_datumVanaf = hash\get($na_row, 'datumVanaf');
|
||||
$na_year_begin = string\concatenate($year, '-01-01');
|
||||
ifThenElse($na_datumVanaf > $na_year_begin, $na_begin = $na_datumVanaf, $na_begin = $na_year_begin);
|
||||
|
||||
$na_datumTotEnMet = hash\get($na_row, 'datumTotEnMet');
|
||||
$na_year_end = string\concatenate($year, '-12-31');
|
||||
ifThenElse($na_datumTotEnMet < $na_year_end, $na_end = $na_datumTotEnMet, $na_end = $na_year_end);
|
||||
|
||||
log('warning', 'werkgroepid = ', $na_werkgroep_id);
|
||||
log('warning', 'datum vanaf: ', $na_begin, ' datumVanaf:', $na_datumVanaf, ' year begin:', $na_year_begin);
|
||||
log('warning', 'datum t/m: ', $na_end, ' datumT/M:', $na_datumTotEnMet, ' year end:', $na_year_end);
|
||||
|
||||
$na_count = record\countRel('Werkgroep', $na_werkgroep_id,
|
||||
'werkgroepverslagen',
|
||||
'datum>=', $na_begin,
|
||||
'datum<=', $na_end
|
||||
);
|
||||
|
||||
$na_werkgroep_verslagen = $na_werkgroep_verslagen + $na_count;
|
||||
log('warning', 'count=', $na_count);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
log('warning', 'totaal aantal werkgroep verslagen voor ', $year, ' = ', $na_werkgroep_verslagen);
|
||||
|
||||
// Bereken de zooi.
|
||||
|
||||
$na_totaal_werkgroep = number\floor($na_werkgroep_verslagen / $na_werkgroep_div);
|
||||
ifThen($na_totaal_werkgroep > $na_werkgroep_max, $na_totaal_werkgroep = $na_totaal_max);
|
||||
);
|
||||
);
|
||||
,
|
||||
log('error', 'Geen nascholingstotaal voor contact_id ', $contact_id, ' en jaar ', $year);
|
||||
$na_totaal_dagen = 0;
|
||||
$na_totaal_medisch = 0;
|
||||
$na_vrijstelling = 0;
|
||||
$na_totaal_homeopathie = 0;
|
||||
$na_totaal_werkgroep = 0;
|
||||
);
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken de norm & vrijstelling
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_dagen_norm_formeel = hash\get(hash\get($na_norm, $year), 'dagen');
|
||||
$na_medisch_norm = hash\get(hash\get($na_norm, $year), 'dagenMedisch');
|
||||
$na_homeopathie_norm = hash\get(hash\get($na_norm, $year), 'dagenHomeopathie');
|
||||
|
||||
log('warning', 'nascholingsnorm: jaar: ', $year, ', dagen: ', $na_dagen_norm_formeel,
|
||||
', medisch: ', $na_medisch_norm,
|
||||
', homeopathie: ', $na_homeopathie_norm
|
||||
);
|
||||
|
||||
// $na_vrijstelling is op zich al bekend, maar misschien is er nog dispensatie of registratie jaar
|
||||
$na_registration = ($year <= $na_reg_jr);
|
||||
ifThenElse($na_dispensatie,
|
||||
$na_vrijstelling = $na_dagen_norm_formeel;
|
||||
,
|
||||
ifThen($na_registration,
|
||||
$na_vrijstelling = $na_dagen_norm_formeel;
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
$na_dagen_norm = $na_dagen_norm_formeel - $na_vrijstelling;
|
||||
|
||||
log('warning', 'dispensatie=', $na_dispensatie, ', regjr=', $na_registration, ', norm=', $na_dagen_norm);
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken het saldo aan dagen
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_totaal_alle_dagen = $na_totaal_dagen + $na_totaal_medisch + $na_totaal_homeopathie;
|
||||
$na_saldo = $na_totaal_alle_dagen - $na_dagen_norm;
|
||||
|
||||
$na_saldo_homeopathie = $na_totaal_homeopathie - $na_homeopathie_norm;
|
||||
$na_saldo_medisch = $na_totaal_medisch - $na_medisch_norm;
|
||||
|
||||
log('warning', 'totaal alle:', $na_totaal_alle_dagen,
|
||||
', saldo:', $na_saldo,
|
||||
', saldo hom:', $na_saldo_homeopathie,
|
||||
', saldo medisch:', $na_saldo_medisch);
|
||||
|
||||
log('warning', 'no db update = ', $no_db_update);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Nascholingstotaal updaten (alleen van belang als we niet al aan het updaten zijn!)
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ifThen(!$no_db_update && $na_id != '<none>',
|
||||
log('warning', 'Updaten nascholingstotaal: ', $na_id, ' jaar=', $year);
|
||||
$oke = record\update('Nascholingstotaal', $na_id,
|
||||
'dagen', $na_totaal_dagen,
|
||||
'dagenMedisch', $na_totaal_medisch,
|
||||
'dagenHomeopathie', $na_totaal_homeopathie,
|
||||
'dagenWerkgroep', $na_totaal_werkgroep,
|
||||
'dagenTotaal', $na_totaal_alle_dagen,
|
||||
'dagenSaldo', $na_saldo,
|
||||
'homeopathieSaldo', $na_saldo_homeopathie,
|
||||
'medischSaldo', $na_saldo_medisch,
|
||||
'dagenFormeleNorm', $na_dagen_norm_formeel,
|
||||
'medischFormeleNorm', $na_medisch_norm,
|
||||
'homeopathieFormeleNorm', $na_homeopathie_norm
|
||||
);
|
||||
|
||||
ifThen(!$oke, log('error', 'Update ging niet goed!'));
|
||||
);
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2020-12-04 - script-bereken-nascholingstotaal-voor-jaar
|
||||
@@ -0,0 +1,40 @@
|
||||
Berekent een nascholingstotaal voor een contact **$contact_id** en voor jaar **$year**.
|
||||
|
||||
Indien global\get('nascholingstotalen-niet-herberekenen') gezet is, zal een opgeslagen Nascholingstotaal niet tot herberekening leiden. NB. Dit gebeurt als formule bij 'Nascholingstotaal' (afterSave).
|
||||
|
||||
Indien $no_db_update == true, dan worden de resultaten niet opgeslagen bij het betreffende Nascholingstotaal en kunnen alleen de uitgangsvariabelen worden gebruikt. Het script dient dan gestart te worden met $na_totaal_dagen, $na_totaal_medisch, $na_vrijstelling, $na_start_surplus, $na_totaal_werkgroep en $na_handmatig.
|
||||
|
||||
Voor het gegeven Lid:
|
||||
|
||||
- $na_diploma_jr - jaar van diploma van het gegeven contact. In het jaar van afstuderen geldt geen normering.
|
||||
- $na_dispensatie - of er dispensatie is in algemene zin voor het lid (niet jaar gebonden).
|
||||
- $na_id - het id van het nascholingstotaal record (<none>, als die er niet is).
|
||||
|
||||
De totalen en saldi:
|
||||
|
||||
- $na_totaal_dagen - het totaal aantal overige dagen,
|
||||
- $na_totaal_medisch - het totaal aantal gevolgde medische dagen,
|
||||
- $na_totaal_homeopathie - het totaal aantal gevolgde dagen klassieke homeopathie,
|
||||
- $na_totaal_werkgroep - het totaal aantal dagen voor werkgroepverslagen (max 2),
|
||||
- $na_saldo - het saldo na aftrek van $na_dagen_norm,
|
||||
- $na_medisch_saldo - het saldo na aftrek van $na_medisch_norm,
|
||||
- $na_homeopathie_saldo - het saldo na aftrek van $na_homeopathie_norm,
|
||||
- $na_vrijstelling - het aantal geregistreerde vrijstellingsdagen voor de het gegeven jaar of, als dispensatie of als $year = jaar van afstuderen: = $na_dagen_norm_formeel.
|
||||
|
||||
Examenjaar
|
||||
- $na_examenjaar - true als het jaar voor het examenjaar ligt of gelijk is daaraan.
|
||||
|
||||
De normen:
|
||||
|
||||
- $na_dagen_norm - $na_dagen_norm_formeel - $na_vrijstelling
|
||||
- $na_dagen_norm_formeel - het formele totaal aantal dagen te volgen nascholing voor het gegeven jaar $year
|
||||
- $na_medisch_norm - het formeel aantal te volgen medische dagen voor het gegeven jaar $year
|
||||
- $na_homeopathie_norm - het formeel aantal te volgen dagen klassieke homeopathie voor het gegeven jaar $year
|
||||
- $na_meeneem_norm - het maximaal aantal mee te nemen dagen voor het gegeven jaar $year
|
||||
|
||||
zijn daarna beschikbaar.
|
||||
|
||||
Berekent het totaal aantal dagen homeopathie, dagen medisch, norm dagen, formele norm dagen en saldo dagen aan de hand van de geregistreerde nascholingen, tenzij het betrokken nascholingstotaal record op handmatig staat.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
5efb0f592364cb273
|
||||
@@ -0,0 +1,347 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialiseren
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_diploma_dt = record\attribute('Contact', $contact_id, 'vakopleidingDatumDiploma');
|
||||
$na_dispensatie = record\attribute('Contact', $contact_id, 'dispensatie');
|
||||
$na_regiocode = record\attribute('Contact', $contact_id, 'regiocode');
|
||||
$na_regiocode_str = $na_regiocode;
|
||||
$na_regiocode = toInt($na_regiocode); // regiocode numeriek maken
|
||||
$na_diploma_jr = datetime\year($na_diploma_dt);
|
||||
|
||||
ifThen(!global\isset('nascholingsnorm-hash'),
|
||||
$na_script = configGet('script-lees-nascholingsnorm-hash');
|
||||
Exec($na_script);
|
||||
);
|
||||
$na_norm = global\get('nascholingsnorm-hash');
|
||||
|
||||
$na_id = '<none>';
|
||||
|
||||
$na_methode_1_tot_en_met = configGet('berekening-methode-1-tot-en-met');
|
||||
$na_werkgroep_div = configGet('werkgroep-dagen-deel-factor');
|
||||
$na_werkgroep_max = configGet('werkgroep-dagen-max');
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken de totalen dagen en dagenMedisch.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ifThen(!$no_db_update,
|
||||
$na_recs = record\fetchManyHash('Nascholingstotaal',
|
||||
'id, dagen, dagenMedisch, dagenHomeopathie, dagenWerkgroep, handmatig, dagenVrijstelling, nascholingsnormId, startSurplus',
|
||||
'createdAt', 'asc',
|
||||
'contactId=', $contact_id,
|
||||
'jaar=', $year
|
||||
);
|
||||
$na_nrecs = array\length($na_recs);
|
||||
|
||||
ifThenElse($na_nrecs > 0,
|
||||
$na_rec = array\at($na_recs, 0);
|
||||
|
||||
$na_id = hash\get($na_rec, 'id');
|
||||
$na_handmatig = hash\get($na_rec, 'handmatig');
|
||||
$na_vrijstelling = hash\get($na_rec, 'dagenVrijstelling');
|
||||
$na_start_surplus = hash\get($na_rec, 'startSurplus');
|
||||
$na_current_norm_id = hash\get($na_rec, 'nascholingsnormId');
|
||||
|
||||
log('warning', 'Berekenen nascholingen voor jaar: ', $year, ', na_id = ', $na_id);
|
||||
|
||||
// Zolang de totalen handmatig zijn, wordt er niets berekend.
|
||||
ifThenElse($na_handmatig,
|
||||
$na_totaal_dagen = hash\get($na_rec, 'dagen');
|
||||
$na_totaal_medisch = hash\get($na_rec, 'dagenMedisch');
|
||||
$na_totaal_homeopathie = hash\get($na_rec, 'dagenHomeopathie');
|
||||
$na_totaal_werkgroep = hash\get($na_rec, 'dagenWerkgroep');
|
||||
log('warning', 'Handmatige nascholing, er wordt niets berekend');
|
||||
log('warning', 'medisch:', $na_totaal_medisch, ', hom:', $na_totaal_homeopathie,
|
||||
', werkgr:', $na_totaal_werkgroep, ', homoverig:', $na_totaal_dagen);
|
||||
,
|
||||
// Totalen op 0, dit is een te berekenen nascholing
|
||||
$na_totaal_dagen = 0;
|
||||
$na_totaal_medisch = 0;
|
||||
$na_totaal_homeopathie = 0;
|
||||
$na_totaal_werkgroep = 0;
|
||||
|
||||
// De goedgekeurde handmatige en geaccrediteerde nascholingen
|
||||
// kan nog steeds met methode 1.
|
||||
$na_rows = record\fetchRelatedMany(
|
||||
'Nascholingstotaal', $na_id, 'nascholingen1',
|
||||
'jaar, dagen, dagenMedisch, dagenHomeopathie, status, name',
|
||||
'jaar', 'asc',
|
||||
'jaar=', $year
|
||||
);
|
||||
$na_i = 0;
|
||||
$na_n = array\length($na_rows);
|
||||
log('warning', '#nascholingen gerelateerd aan nascholingstotaal:', $na_n);
|
||||
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$status = array\at($na_row, 4);
|
||||
$name = array\at($na_row, 5);
|
||||
log('warning', 'i = ', $na_i, ', status = ', $status);
|
||||
ifThen($status != '-' && $status != 'afgekeurd',
|
||||
$na_totaal_dagen = $na_totaal_dagen + array\at($na_row, 1);
|
||||
$na_totaal_medisch = $na_totaal_medisch + array\at($na_row, 2);
|
||||
$na_totaal_homeopathie = $na_totaal_homeopathie + array\at($na_row, 3);
|
||||
log('warning', 'Dagen: hom:', $na_totaal_homeopathie, ', dagen: ', $na_totaal_dagen, ', medisch:', $na_totaal_medisch);
|
||||
);
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
// Dan het aantal notulen voor de werkgroepen van dit contact voor het gegeven jaar
|
||||
// Eerst kijken we of we al groter dan het grensjaar zitten.
|
||||
// Dit is niet meer voor methode 1.
|
||||
ifThen($year > $na_methode_1_tot_en_met,
|
||||
// Nu kunnen we ons best doen.
|
||||
// Haal de werkgroep lidmaatschappen op die geldig zijn voor dit jaar.
|
||||
$na_today = datetime\now();
|
||||
$na_werkgroepen_ids_1 = record\fetchRelatedManyHash('Contact', $contact_id,
|
||||
'werkgroeplidmaatschappen',
|
||||
'werkgroepId, datumVanaf',
|
||||
'name', 'asc',
|
||||
'lidmaatschapBeeindigd=', 0,
|
||||
'jaarVanaf<=', $year,
|
||||
);
|
||||
$na_werkgroepen_ids_2 = record\fetchRelatedManyHash('Contact', $contact_id,
|
||||
'werkgroeplidmaatschappen',
|
||||
'werkgroepId, datumVanaf, datumTotEnMet',
|
||||
'name', 'asc',
|
||||
'lidmaatschapBeeindigd=', 1,
|
||||
'jaarVanaf<=', $year,
|
||||
'jaarTotEnMet>=', $year
|
||||
);
|
||||
// Oke, nu hebben we de werkgroep ids.
|
||||
// En dan kijken naar het aantal verslagen over dit jaar.
|
||||
// En afkappen op een maximaal aantal dagen.
|
||||
|
||||
$na_werkgroep_verslagen = 0;
|
||||
|
||||
$na_n = array\length($na_werkgroepen_ids_1);
|
||||
log('warning', 'Werkgroepen die niet beëindigd zijn :', $na_n);
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
// Verkrijg het aantal notulen >= max(datumVanaf,begin dit jaar) en kleiner einde dit jaar.
|
||||
$na_row = array\at($na_werkgroepen_ids_1, $na_i);
|
||||
|
||||
$na_werkgroep_id = hash\get($na_row, 'werkgroepId');
|
||||
|
||||
$na_datumVanaf = hash\get($na_row, 'datumVanaf');
|
||||
$na_year_begin = string\concatenate($year, '-01-01');
|
||||
$na_end = string\concatenate($year, '-12-31');
|
||||
ifThenElse($na_datumVanaf > $na_year_begin,
|
||||
$na_begin = $na_datumVanaf,
|
||||
$na_begin = $na_year_begin);
|
||||
|
||||
log('warning', 'werkgroepid = ', $na_werkgroep_id);
|
||||
log('warning', 'datum vanaf: ', $na_begin, ', datum eind:', $na_end);
|
||||
|
||||
$na_count = record\countRel('Werkgroep', $na_werkgroep_id,
|
||||
'werkgroepverslagen',
|
||||
'datum>=', $na_begin,
|
||||
'datum<=', $na_end
|
||||
);
|
||||
|
||||
$na_werkgroep_verslagen = $na_werkgroep_verslagen + $na_count;
|
||||
log('warning', 'notulen count=', $na_count, ', werkgroep verslagen=', $na_werkgroep_verslagen);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
// Oke en nu voor de jaren waarin er een einddatum is gezet.
|
||||
|
||||
$na_n = array\length($na_werkgroepen_ids_2);
|
||||
log('warning', 'Werkgroepen met een einddatum:', $na_n);
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
// Verkrijg het aantal notulen >= max(datumVanaf,begin dit jaar) en kleiner MIN(datumTotEnMet, einde dit jaar).
|
||||
$na_row = array\at($na_werkgroepen_ids_2, $na_i);
|
||||
|
||||
$na_werkgroep_id = hash\get($na_row, 'werkgroepId');
|
||||
|
||||
$na_datumVanaf = hash\get($na_row, 'datumVanaf');
|
||||
$na_year_begin = string\concatenate($year, '-01-01');
|
||||
ifThenElse($na_datumVanaf > $na_year_begin,
|
||||
$na_begin = $na_datumVanaf,
|
||||
$na_begin = $na_year_begin);
|
||||
|
||||
$na_datumTotEnMet = hash\get($na_row, 'datumTotEnMet');
|
||||
$na_year_end = string\concatenate($year, '-12-31');
|
||||
ifThenElse($na_datumTotEnMet < $na_year_end,
|
||||
$na_end = $na_datumTotEnMet,
|
||||
$na_end = $na_year_end);
|
||||
|
||||
log('warning', 'werkgroepid = ', $na_werkgroep_id);
|
||||
log('warning', 'datum vanaf: ', $na_begin, ', datum einde:', $na_end);
|
||||
|
||||
$na_count = record\countRel('Werkgroep', $na_werkgroep_id,
|
||||
'werkgroepverslagen',
|
||||
'datum>=', $na_begin,
|
||||
'datum<=', $na_end
|
||||
);
|
||||
|
||||
$na_werkgroep_verslagen = $na_werkgroep_verslagen + $na_count;
|
||||
log('warning', 'notulen count=', $na_count, ', werkgroep verslagen=', $na_werkgroep_verslagen);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
log('warning', 'totaal aantal werkgroep verslagen voor ', $year, ' = ', $na_werkgroep_verslagen);
|
||||
|
||||
// Bereken de zooi.
|
||||
|
||||
$na_totaal_werkgroep = number\floor($na_werkgroep_verslagen / $na_werkgroep_div);
|
||||
ifThen($na_totaal_werkgroep > $na_werkgroep_max, $na_totaal_werkgroep = $na_werkgroep_max);
|
||||
);
|
||||
);
|
||||
,
|
||||
log('error', 'Geen nascholingstotaal voor contact_id ', $contact_id, ' en jaar ', $year);
|
||||
$na_totaal_dagen = 0;
|
||||
$na_totaal_medisch = 0;
|
||||
$na_vrijstelling = 0;
|
||||
$na_totaal_homeopathie = 0;
|
||||
$na_totaal_werkgroep = 0;
|
||||
);
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken de norm & vrijstelling
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$norm_key = $year;
|
||||
ifThen($na_regiocode == 8,
|
||||
log('warning', 'Afwijkende norm key');
|
||||
$norm_key = string\concatenate($year, '-', $na_regiocode_str);
|
||||
);
|
||||
log('warning', 'Regiocode=', $na_regiocode, ', str=', $na_regiocode_str, ', Norm key = ', $norm_key);
|
||||
|
||||
$na_dagen_norm_formeel = hash\get(hash\get($na_norm, $norm_key), 'dagen');
|
||||
$na_medisch_norm = hash\get(hash\get($na_norm, $norm_key), 'dagenMedisch');
|
||||
$na_homeopathie_norm = hash\get(hash\get($na_norm, $norm_key), 'dagenHomeopathie');
|
||||
$na_max_meenemen = hash\get(hash\get($na_norm, $norm_key), 'meeneemNorm');
|
||||
$na_norm_id = hash\get(hash\get($na_norm, $norm_key), 'id');
|
||||
$na_norm_name = hash\get(hash\get($na_norm, $norm_key), 'name');
|
||||
|
||||
log('warning', 'nascholingsnorm: jaar: ', $year, ', dagen: ', $na_dagen_norm_formeel,
|
||||
', medisch: ', $na_medisch_norm,
|
||||
', homeopathie: ', $na_homeopathie_norm,
|
||||
', max meenemen: ', $na_max_meenemen,
|
||||
', start surplus: ', $na_start_surplus,
|
||||
', norm_id:', $na_norm_id,
|
||||
', norm_name:', $na_norm_name
|
||||
);
|
||||
|
||||
//
|
||||
// $na_vrijstelling is op zich al bekend, maar misschien is er nog dispensatie of registratie jaar
|
||||
// $na_vrijstelling = MIN($na_vrijstelling, $na_dagen_norm_formeel – $na_homeopahie_norm – $na_medisch_norm)
|
||||
//
|
||||
$na_registration = ($year <= $na_diploma_jr);
|
||||
$na_examenjaar = false;
|
||||
ifThenElse($year <= $na_methode_1_tot_en_met,
|
||||
$na_max_vrijstelling = $na_dagen_norm_formeel;
|
||||
,
|
||||
$na_max_vrijstelling = $na_dagen_norm_formeel - $na_homeopathie_norm - $na_medisch_norm;
|
||||
);
|
||||
|
||||
ifThen($na_vrijstelling > $na_max_vrijstelling, $na_vrijstelling = $na_max_vrijstelling);
|
||||
|
||||
ifThenElse($na_dispensatie,
|
||||
$na_vrijstelling = $na_max_vrijstelling;
|
||||
,
|
||||
ifThen($na_registration,
|
||||
$na_dagen_norm_formeel = 0;
|
||||
$na_medisch_norm = 0;
|
||||
$na_homeopathie_norm = 0;
|
||||
$na_examenjaar = true;
|
||||
);
|
||||
);
|
||||
|
||||
$na_dagen_norm = $na_dagen_norm_formeel;
|
||||
|
||||
// Het aantal start dagen surplus kan nooit de norm overschrijden.
|
||||
// startSurplus wordt alleen bij het 2013 record gebruikt, m.a.w. voor mensen die daarvoor
|
||||
// al lid waren. In alle andere gevallen is $na_start_surplus gelijk aan 0.
|
||||
ifThen($na_start_surplus > $na_dagen_norm_formeel, $na_start_surplus = $na_dagen_norm_formeel);
|
||||
|
||||
log('warning', 'dispensatie=', $na_dispensatie, ', regjr=', $na_registration,
|
||||
', norm=', $na_dagen_norm, ', start surplus=', $na_start_surplus, ', dagen vrijstelling=', $na_vrijstelling, ', max vrijstelling=', $na_max_vrijstelling);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken het saldo aan dagen
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
log('warning', 'medisch:', $na_totaal_medisch, ', hom:', $na_totaal_homeopathie,
|
||||
', werkgr:', $na_totaal_werkgroep, ', homoverig:', $na_totaal_dagen);
|
||||
|
||||
log('warning', 'year=', $year, ', na_methode_1_tot_en_met=', $na_methode_1_tot_en_met);
|
||||
|
||||
/*
|
||||
ifThenElse($year < $na_methode_1_tot_en_met,
|
||||
$na_totaal_homeopathie = $na_totaal_homeopathie + $na_start_surplus + $na_vrijstelling;
|
||||
$na_totaal_alle_dagen = $na_totaal_homeopathie;
|
||||
,
|
||||
ifThenElse($year == $na_methode_1_tot_en_met,
|
||||
$na_totaal_homeopathie = $na_totaal_homemopathie + $na_start_surplus + $na_vrijstelling;
|
||||
$na_totaal_alle_dagen = $na_totaal_dagen + $na_totaal_medisch + $na_totaal_homeopathie + $na_totaal_werkgroep;
|
||||
,
|
||||
$na_totaal_homeopathie = $na_totaal_homeopathie + $na_start_surplus;
|
||||
$na_totaal_alle_dagen = $na_totaal_dagen + $na_totaal_medisch + $na_totaal_homeopathie + $na_totaal_werkgroep + $na_vrijstelling;
|
||||
);
|
||||
);
|
||||
*/
|
||||
|
||||
ifThenElse($year < $na_methode_1_tot_en_met,
|
||||
$na_saldo_homeopathie = $na_totaal_homeopathie + $na_start_surplus + $na_vrijstelling;
|
||||
$na_saldo = $na_saldo_homeopathie;
|
||||
$na_totaal_alle_dagen = $na_saldo_homemopathie;
|
||||
,
|
||||
ifThenElse($year == $na_methode_1_tot_en_met,
|
||||
$na_saldo_homeopathie = $na_totaal_homeopathie + $na_start_surplus + $na_vrijstelling;
|
||||
$na_saldo = $na_saldo_homeopathie + $na_totaal_medisch;
|
||||
$na_totaal_alle_dagen = $na_saldo;
|
||||
,
|
||||
$na_saldo_homeopathie = $na_totaal_homeopathie + $na_start_surplus;
|
||||
$na_saldo = $na_saldo_homeopathie + $na_totaal_medisch + $na_totaal_dagen + $na_vrijstelling + $na_totaal_werkgroep;
|
||||
$na_totaal_alle_dagen = $na_saldo;
|
||||
);
|
||||
);
|
||||
|
||||
$na_saldo_homeopathie = $na_saldo_homeopathie - $na_homeopathie_norm;
|
||||
$na_saldo = $na_saldo - $na_dagen_norm;
|
||||
$na_saldo_medisch = $na_totaal_medisch - $na_medisch_norm;
|
||||
|
||||
log('warning', 'totaal alle:', $na_totaal_alle_dagen,
|
||||
', saldo:', $na_saldo,
|
||||
', saldo hom:', $na_saldo_homeopathie,
|
||||
', saldo medisch:', $na_saldo_medisch);
|
||||
|
||||
log('warning', 'no db update = ', $no_db_update, ', na_id = ', $na_id);
|
||||
log('warning', 'na_examenjaar = ', $na_examenjaar);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Nascholingstotaal updaten (alleen van belang als we niet al aan het updaten zijn!)
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ifThen(!$no_db_update && $na_id != '<none>',
|
||||
// Updaten van het record leidt tot herberekening
|
||||
// Het relateren van de nascholingsnorm gebeurt bij de record herberekening.
|
||||
// Dus dat moeten we hier niet willen doen...
|
||||
|
||||
// Updaten van het record leidt tot herberekening, dus we moeten even oppassen.
|
||||
log('warning', 'Updaten nascholingstotaal: ', $na_id, ' jaar=', $year);
|
||||
$oke = record\update('Nascholingstotaal', $na_id,
|
||||
'dagen', $na_totaal_dagen,
|
||||
'dagenMedisch', $na_totaal_medisch,
|
||||
'dagenHomeopathie', $na_totaal_homeopathie,
|
||||
'dagenWerkgroep', $na_totaal_werkgroep,
|
||||
'dagenTotaal', $na_totaal_alle_dagen,
|
||||
'dagenSaldo', $na_saldo,
|
||||
'homeopathieSaldo', $na_saldo_homeopathie,
|
||||
'medischSaldo', $na_saldo_medisch,
|
||||
'dagenFormeleNorm', $na_dagen_norm_formeel,
|
||||
'medischFormeleNorm', $na_medisch_norm,
|
||||
'homeopathieFormeleNorm', $na_homeopathie_norm,
|
||||
'maxMeenemen', $na_max_meenemen,
|
||||
'examenjaar', $na_examenjaar
|
||||
);
|
||||
ifThen(!$oke, log('error', 'Update ging niet goed!'));
|
||||
);
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
script-bereken-nascholingstotaal-voor-jaar
|
||||
@@ -0,0 +1,7 @@
|
||||
Verwachte parameters:
|
||||
|
||||
- $contact_id bevat het id van het contact
|
||||
|
||||
Herberekent de nascholingstotalen voor een gegeven contact en update de betrokken records, indien dat nodig is.
|
||||
|
||||
Preconditie is dat voor alle Nascholingstotaal records van het contact al de individuele berekening is gebeurd. Dus de saldi zijn al berekend.
|
||||
@@ -0,0 +1 @@
|
||||
5efa39d03a099006b
|
||||
@@ -0,0 +1,948 @@
|
||||
//exec last execution: Fri Jan 20 2023 15:56:21 GMT+0100 (Midden-Europese standaardtijd)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialisatie
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
log('warning', 'Doorrekenen voor contact ', $contact_id);
|
||||
|
||||
$na_reg_dt = record\attribute('Contact', $contact_id, 'datumRegistratie');
|
||||
$na_reg_jr = datetime\year($na_reg_dt);
|
||||
|
||||
$na_methode_1_max_jaar = configGet('berekening-methode-1-tot-en-met');
|
||||
$na_methode_1_max_surplus = configGet('berekening-methode-1-max-surplus');
|
||||
$na_style_rubric = configGet('nascholingstotaal-rapport-jaar-rubric-style');
|
||||
$na_style_dagen = configGet('nascholingstotaal-rapport-jaar-dagen-style');
|
||||
$na_style_dagen_inspr = configGet('nascholingstotaal-rapport-jaar-dagen-style-inspr');
|
||||
$na_style_dagen_inspr2 = configGet('nascholingstotaal-rapport-jaar-dagen-style-inspr2');
|
||||
$na_style_nstd_goed = configGet('nascholingstotaal-rapport-jaar-nstd-goed-style');
|
||||
$na_style_nstd_goed_report = configGet('nascholingstotaal-rapport-jaar-nstd-goed-report-style');
|
||||
$na_style_nstd_tekort = configGet('nascholingstotaal-rapport-jaar-nstd-tekort-style');
|
||||
$na_style_nstd_tekort_report = configGet('nascholingstotaal-rapport-jaar-nstd-tekort-report-style');
|
||||
$na_style_nstd_nvt = configGet('nascholingstotaal-rapport-jaar-nstd-nvt-style');
|
||||
$na_style_bepaald = configGet('nascholingstotaal-rapport-jaar-nstd-bepaald-style');
|
||||
$na_style_bepaald_report = configGet('nascholingstotaal-rapport-jaar-nstd-bepaald-report-style');
|
||||
$na_style_onbepaald = configGet('nascholingstotaal-rapport-jaar-nstd-onbepaald-style');
|
||||
$na_style_onbepaald_report = configGet('nascholingstotaal-rapport-jaar-nstd-onbepaald-report-style');
|
||||
$na_style_kop = configGet('nascholingstotaal-rapport-jaar-kop-style');
|
||||
$na_style_probleem = configGet('nascholingstotaal-rapport-probleem-style');
|
||||
$na_style_waarschuwing = configGet('nascholingstotaal-rapport-waarschuwing-style');
|
||||
$na_style_sub_rubric = configGet('nascholingstotaal-rapport-sub-rubriek-style');
|
||||
$na_style_sub2_rubric = configGet('nascholingstotaal-rapport-sub2-rubriek-style');
|
||||
|
||||
$na_nascholing_onvoldoende = false;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Haal eerst alle nascholingstotalen voor een contact op, in volgorde van jaar.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_geen_status_vanaf_jaar = datetime\year(datetime\now()) - 1;
|
||||
|
||||
$na_in_calc_key = string\concatenate('nascholingstotalen-in-berekening-voor', $contact_id);
|
||||
global\set($na_in_calc_key, true);
|
||||
|
||||
$na_rows = record\fetchManyHash('Nascholingstotaal',
|
||||
'id, jaar, dagen, dagenMedisch, dagenHomeopathie, dagenTotaal, medischSaldo, homeopathieSaldo, dagenSaldo, saldoNaCorrectie, dagenWerkgroep, dagenVrijstelling, status, berekeningsUitleg, startSurplus, dagenFormeleNorm, homeopathieFormeleNorm, medischFormeleNorm, maxMeenemen, examenjaar, handmatig, surplus, surplusHomeopathie, surplusMedisch',
|
||||
'jaar', 'asc',
|
||||
'contactId=', $contact_id,
|
||||
);
|
||||
|
||||
$na_n = array\length($na_rows);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialiseer om te beginnen alle surplussen op de saldo's van een jaar.
|
||||
// Daarna gaan we de zaak verdelen.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
|
||||
$na_calc_tot = hash\get($na_row, 'dagenSaldo');
|
||||
$na_calc_med = hash\get($na_row, 'medischSaldo');
|
||||
$na_calc_hom = hash\get($na_row, 'homeopathieSaldo');
|
||||
|
||||
$na_row = hash\set($na_row, 'surplus', $na_calc_tot);
|
||||
$na_row = hash\set($na_row, 'surplusMedisch', $na_calc_med);
|
||||
$na_row = hash\set($na_row, 'surplusHomeopathie', $na_calc_hom);
|
||||
$na_row = hash\set($na_row, 'meegenomen', 0);
|
||||
$na_row = hash\set($na_row, 'meegenomen_hom', 0);
|
||||
$na_row = hash\set($na_row, 'meegenomen_med', 0);
|
||||
|
||||
$na_row = hash\set($na_row, 'correctie_uit_opvolgend_jaar', 0);
|
||||
$na_row = hash\set($na_row, 'correctie_uit_opvolgend_jaar_hom', 0);
|
||||
$na_row = hash\set($na_row, 'correctie_uit_opvolgend_jaar_med', 0);
|
||||
|
||||
$na_row = hash\set($na_row, 'tekort', $na_calc_tot);
|
||||
$na_row = hash\set($na_row, 'tekort_hom', $na_calc_hom);
|
||||
$na_row = hash\set($na_row, 'tekort_med', $na_calc_med);
|
||||
|
||||
$na_row = hash\set($na_row, 'tekort_aangevuld_vanuit', '');
|
||||
$na_row = hash\set($na_row, 'tekort_aangevuld_naar', '');
|
||||
$na_row = hash\set($na_row, 'correctie_aangevuld_vanuit', 0);
|
||||
$na_row = hash\set($na_row, 'correctie_aangevuld_naar', 0);
|
||||
|
||||
$na_uitleg = '';
|
||||
$na_uitleg_hom = '';
|
||||
$na_uitleg_med = '';
|
||||
|
||||
$na_dagen_hom = hash\get($na_row, 'dagenHomeopathie');
|
||||
$na_dagen_med = hash\get($na_row, 'dagenMedisch');
|
||||
$na_dagen = hash\get($na_row, 'dagenTotaal');
|
||||
$na_vrijstelling = hash\get($na_row, 'dagenVrijstelling');
|
||||
$na_werkgroep = hash\get($na_row, 'dagenWerkgroep');
|
||||
$na_overig = hash\get($na_row, 'dagen');
|
||||
$na_start_surplus = hash\get($na_row, 'startSurplus');
|
||||
strAdd($na_uitleg_hom, '[IDagen gevolgd :I][NI', number\format($na_dagen_hom, 2), ']%%');
|
||||
|
||||
ifThen($na_jaar == $na_methode_1_max_jaar,
|
||||
strAdd($na_uitleg_med, '[IDagen gevolgd :I][NI', number\format($na_dagen_med, 2), ']%%');
|
||||
);
|
||||
|
||||
ifThenElse($na_jaar > $na_methode_1_max_jaar,
|
||||
strAdd($na_uitleg_med, '[IDagen gevolgd :I][NI', number\format($na_dagen_med, 2), ']%%');
|
||||
ifThen($na_start_surplus > 0,
|
||||
strAdd($na_uitleg, '[IDagen Start Surplus :I][NI', number\format($na_start_surplus, 2), ']%%');
|
||||
strAdd($na_uitleg_hom, '[IDagen Start Surplus :I][NI', number\format($na_start_surplus, 2), ']%%');
|
||||
);
|
||||
strAdd($na_uitleg, '[IDagen Klassieke Homeopathie gevolgd :I][NI', number\format($na_dagen_hom, 2), ']%%');
|
||||
strAdd($na_uitleg, '[IDagen Medisch gevolgd :I][NI', number\format($na_dagen_med, 2), ']%%');
|
||||
strAdd($na_uitleg, '[IDagen Overig gevolgd :I][NI', number\format($na_overig, 2), ']%%');
|
||||
strAdd($na_uitleg, '[IDagen Werkgroep :I][NI', number\format($na_werkgroep, 2), ']%%');
|
||||
ifThen($na_vrijstelling > 0,
|
||||
strAdd($na_uitleg, '[IDagen Vrijstelling :I][NI', number\format($na_vrijstelling, 2), ']%%');
|
||||
);
|
||||
strAdd($na_uitleg, '[TNascholingsdagen :I][N', number\format($na_dagen, 2), ']%%');
|
||||
,
|
||||
strAdd($na_uitleg, '[IDagen Klassieke Homeopathie gevolgd :I][NI', number\format($na_dagen_hom, 2), ']%%');
|
||||
ifThen($na_start_surplus > 0,
|
||||
strAdd($na_uitleg, '[IDagen Start Surplus :I][NI', number\format($na_start_surplus, 2), ']%%');
|
||||
strAdd($na_uitleg_hom, '[IDagen Start Surplus :I][NI', number\format($na_start_surplus, 2), ']%%');
|
||||
);
|
||||
ifThen($na_jaar == $na_methode_1_max_jaar,
|
||||
strAdd($na_uitleg, '[IDagen Medisch gevolgd :I][NI', number\format($na_dagen_med, 2), ']%%');
|
||||
);
|
||||
ifThen($na_vrijstelling > 0,
|
||||
strAdd($na_uitleg, '[IDagen Vrijstelling :I][NI', number\format($na_vrijstelling, 2), ']%%');
|
||||
strAdd($na_uitleg_hom, '[IDagen Vrijstelling :I][NI', number\format($na_vrijstelling, 2), ']%%');
|
||||
);
|
||||
);
|
||||
|
||||
$na_norm_hom = hash\get($na_row, 'homeopathieFormeleNorm');
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
$na_norm = hash\get($na_row, 'dagenFormeleNorm');
|
||||
strAdd($na_uitleg_hom, '[INorm Homeopathie :I][NI', number\format($na_norm_hom, 2), ']%%');
|
||||
ifThenElse($na_jaar > $na_methode_1_max_jaar,
|
||||
strAdd($na_uitleg_med, '[INorm Medisch :I][NI', number\format($na_norm_med, 2), ']%%');
|
||||
strAdd($na_uitleg, '[INorm Nascholingsdagen :I][NI', number\format($na_norm, 2), ']%%');
|
||||
,
|
||||
strAdd($na_uitleg, '[INorm Nascholingsdagen :I][NI', number\format($na_norm, 2), ']%%');
|
||||
);
|
||||
|
||||
strAdd($na_uitleg_hom, '[TSaldo :I][N', number\format($na_calc_hom, 2), ']%%');
|
||||
ifThenElse($na_jaar >= $na_methode_1_max_jaar,
|
||||
strAdd($na_uitleg_med, '[TSaldo :I][N', number\format($na_calc_med, 2), ']%%');
|
||||
strAdd($na_uitleg, '[TSaldo :I][N', number\format($na_calc_tot, 2), ']%%');
|
||||
,
|
||||
strAdd($na_uitleg, '[TSaldo :I][N', number\format($na_calc_tot, 2), ']%%');
|
||||
);
|
||||
|
||||
$na_row = hash\set($na_row, 'uitleg', $na_uitleg);
|
||||
$na_row = hash\set($na_row, 'uitleg_hom', $na_uitleg_hom);
|
||||
$na_row = hash\set($na_row, 'uitleg_med', $na_uitleg_med);
|
||||
$na_rows = array\set($na_rows, $na_i, $na_row);
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Pas de doorschuif berekening toe.
|
||||
// Behalve dan dat we maximaal de norm aan dagen meenemen naar het volgende jaar.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_j_first_hom = 0;
|
||||
$na_j_first_med = 0;
|
||||
$na_j_first_tot = 0;
|
||||
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
|
||||
$na_id = hash\get($na_row, 'id');
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
|
||||
log('warning', 'na_i=', $na_i, ', id=', $na_id, ', jaar=', $na_jaar);
|
||||
|
||||
$na_norm_hom = hash\get($na_row, 'homeopathieFormeleNorm');
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
$na_norm = hash\get($na_row, 'dagenFormeleNorm');
|
||||
|
||||
$na_calc_tot = hash\get($na_row, 'surplus');
|
||||
$na_calc_med = hash\get($na_row, 'surplusMedisch');
|
||||
$na_calc_hom = hash\get($na_row, 'surplusHomeopathie');
|
||||
|
||||
$na_uitleg = hash\get($na_row, 'uitleg');
|
||||
$na_uitleg_hom = hash\get($na_row, 'uitleg_hom');
|
||||
$na_uitleg_med = hash\get($na_row, 'uitleg_med');
|
||||
$na_tekort_aangevuld_naar = hash\get($na_row, 'tekort_aangevuld_naar');
|
||||
$na_correctie_aangevuld_naar = hash\get($na_row, 'correctie_aangevuld_naar');
|
||||
|
||||
$na_tekort = hash\get($na_row, 'tekort');
|
||||
$na_tekort_hom = hash\get($na_row, 'tekort_hom');
|
||||
$na_tekort_med = hash\get($na_row, 'tekort_med');
|
||||
|
||||
$na_correctie_uit_opvolgend_jaar = hash\get($na_row, 'correctie_uit_opvolgend_jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_hom = hash\get($na_row, 'correctie_uit_opvolgend_jaar_hom');
|
||||
$na_correctie_uit_opvolgend_jaar_med = hash\get($na_row, 'correctie_uit_opvolgend_jaar_med');
|
||||
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
|
||||
$na_max_meenemen = hash\get($na_row, 'maxMeenemen');
|
||||
log('warning', 'na_max_meenemen=', $na_max_meenemen);
|
||||
|
||||
$do_adding = true;
|
||||
|
||||
ifThenElse($na_i == 0,
|
||||
log('warning', '1e jaar');
|
||||
log('warning', 'jaar=', $na_jaar, ', calc_hom=', $na_calc_hom, ', calc_med=', $na_calc_med, ', calc_tot=', $na_calc_tot);
|
||||
$na_j_first_hom = 0;
|
||||
$na_j_first_med = 0;
|
||||
$na_j_first_tot = 0;
|
||||
,
|
||||
// Check of het saldo van dagen > 0 voor homeopathie, medisch en totaal.
|
||||
// Zorg dat dat eerst verdeeld wordt naar de voorgaande saldi van jaren.
|
||||
|
||||
log('warning', 'jaar=', $na_jaar, ', calc_hom=', $na_calc_hom, ', calc_med=', $na_calc_med, ', calc_tot=', $na_calc_tot);
|
||||
|
||||
$na_lowest_j = $na_i;
|
||||
|
||||
log('warning', 'jaar=', $na_jaar, ', calc_hom=', $na_calc_hom, ', calc_med=', $na_calc_med, ', calc_tot=', $na_calc_tot);
|
||||
|
||||
// Medisch negatieve correcties
|
||||
// Alleen als er voldoende surplus is om te compenseren.
|
||||
// We kijken dan niet naar het totaal, want daar ontstaat dan
|
||||
// vanzelf een verder tekort als dat aan de orde is.
|
||||
ifThen(($na_calc_med + $na_norm_med) > 0,
|
||||
$na_j = $na_j_first_med;
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_calc_med_j = hash\get($na_row_j, 'surplusMedisch');
|
||||
$na_uitleg_med_j = hash\get($na_row_j, 'uitleg_med');
|
||||
$na_uitleg_j = hash\get($na_row_j, 'uitleg');
|
||||
$na_tekort_aangevuld_vanuit_j = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_vanuit_j = hash\get($na_row_j, 'correctie_aangevuld_vanuit');
|
||||
$na_jaar_j = hash\get($na_row_j, 'jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_med_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar_med');
|
||||
$na_correctie_uit_opvolgend_jaar_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar');
|
||||
while($na_j < $na_i && ($na_calc_med + $na_norm_med) > 0,
|
||||
while($na_j < $na_i && $na_calc_med_j >= 0,
|
||||
$na_j = $na_j + 1;
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_calc_med_j = hash\get($na_row_j, 'surplusMedisch');
|
||||
$na_uitleg_med_j = hash\get($na_row_j, 'uitleg_med');
|
||||
$na_uitleg_j = hash\get($na_row_j, 'uitleg');
|
||||
$na_tekort_aangevuld_vanuit_j = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_vanuit_j = hash\get($na_row_j, 'correctie_aangevuld_vanuit');
|
||||
$na_jaar_j = hash\get($na_row_j, 'jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_med_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar_med');
|
||||
$na_correctie_uit_opvolgend_jaar_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar');
|
||||
);
|
||||
|
||||
$na_j_first_med = $na_j;
|
||||
//logAdd(log, 'jaar:', $na_jaar_j, ', tekort_aangevuld_vanuit: ', $na_tekort_aangevuld_vanuit_j);
|
||||
|
||||
ifThen($na_j < $na_i,
|
||||
ifThen($na_lowest_j > $na_j, $na_lowest_j = $na_j);
|
||||
$na_correctie = -1 * $na_calc_med_j;
|
||||
// Zorg dat niet meer dan het saldo kan worden verrekend
|
||||
ifThen($na_correctie > ($na_calc_med + $na_norm_med), $na_correctie = ($na_calc_med + $na_norm_med));
|
||||
|
||||
strAdd($na_uitleg_med_j, "[IDagen tekort medisch aangevuld vanuit jaar ", $na_jaar, ":I][NI", number\format($na_correctie, 2), "]%%");
|
||||
strAdd($na_tekort_aangevuld_vanuit_j, "[IIWaarvan dagen medisch vanuit jaar ", $na_jaar, ":I][NII", number\format($na_correctie, 2), "]%%");
|
||||
strAdd($na_uitleg_med, "[IDagen tekort medisch aangevuld naar jaar ", $na_jaar_j, ":I][NI", number\format(-1 * $na_correctie, 2), "]%%");
|
||||
strAdd($na_tekort_aangevuld_naar, "[IIWaarvan dagen medisch naar jaar ", $na_jaar_j, ":I][NII", number\format($na_correctie, 2), "]%%");
|
||||
|
||||
$na_correctie_aangevuld_vanuit_j = $na_correctie_aangevuld_vanuit_j + $na_correctie;
|
||||
$na_correctie_aangevuld_naar = $na_correctie_aangevuld_naar + $na_correctie;
|
||||
|
||||
$na_correctie_uit_opvolgend_jaar_med_j = $na_correctie_uit_opvolgend_jaar_med_j + 1;
|
||||
$na_correctie_uit_opvolgend_jaar_j = $na_correctie_uit_opvolgend_jaar_j + 1;
|
||||
|
||||
$na_calc_med = $na_calc_med - $na_correctie;
|
||||
$na_tekort_med = $na_tekort_med - $na_correctie;
|
||||
$na_calc_tot = $na_calc_tot - $na_correctie;
|
||||
$na_tekort = $na_tekort - $na_correctie;
|
||||
|
||||
$na_calc_j = hash\get($na_row_j, 'surplus');
|
||||
$na_calc_j = $na_calc_j + $na_correctie;
|
||||
$na_calc_med_j = $na_calc_med_j + $na_correctie;
|
||||
|
||||
$na_row_j = hash\set($na_row_j, 'surplusMedisch', $na_calc_med_j);
|
||||
$na_row_j = hash\set($na_row_j, 'surplus', $na_calc_j);
|
||||
$na_row_j = hash\set($na_row_j, 'uitleg_med', $na_uitleg_med_j);
|
||||
$na_row_j = hash\set($na_row_j, 'uitleg', $na_uitleg_j);
|
||||
$na_row_j = hash\set($na_row_j, 'tekort_aangevuld_vanuit', $na_tekort_aangevuld_vanuit_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_aangevuld_vanuit', $na_correctie_aangevuld_vanuit_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_uit_opvolgend_jaar_med', $na_correctie_uit_opvolgend_jaar_med_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_uit_opvolgend_jaar', $na_correctie_uit_opvolgend_jaar_j);
|
||||
$na_rows = array\set($na_rows, $na_j, $na_row_j);
|
||||
|
||||
//logAdd(log, 'jaar:', $na_jaar_j, ', tekort_aangevuld_vanuit: ', $na_tekort_aangevuld_vanuit_j);
|
||||
);
|
||||
);
|
||||
);
|
||||
|
||||
// Klassieke Homeopathie negatieve correcties
|
||||
// Alleen als er voldoende surplus is om te compenseren.
|
||||
// We kijken dan niet naar het totaal, want daar ontstaat dan
|
||||
// vanzelf een verder tekort als dat aan de orde is.
|
||||
ifThen(($na_calc_hom + $na_norm_hom) > 0,
|
||||
$na_j = $na_j_first_hom;
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_calc_hom_j = hash\get($na_row_j, 'surplusHomeopathie');
|
||||
$na_uitleg_hom_j = hash\get($na_row_j, 'uitleg_hom');
|
||||
$na_uitleg_j = hash\get($na_row_j, 'uitleg');
|
||||
$na_tekort_aangevuld_vanuit_j = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_vanuit_j = hash\get($na_row_j, 'correctie_aangevuld_vanuit');
|
||||
$na_jaar_j = hash\get($na_row_j, 'jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_hom_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar_hom');
|
||||
$na_correctie_uit_opvolgend_jaar_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar');
|
||||
while($na_j < $na_i && ($na_calc_hom + $na_norm_hom) > 0,
|
||||
while($na_j < $na_i && $na_calc_hom_j >= 0,
|
||||
$na_j = $na_j + 1;
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_calc_hom_j = hash\get($na_row_j, 'surplusHomeopathie');
|
||||
$na_uitleg_hom_j = hash\get($na_row_j, 'uitleg_hom');
|
||||
$na_uitleg_j = hash\get($na_row_j, 'uitleg');
|
||||
$na_tekort_aangevuld_vanuit_j = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_vanuit_j = hash\get($na_row_j, 'correctie_aangevuld_vanuit');
|
||||
$na_jaar_j = hash\get($na_row_j, 'jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_hom_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar_hom');
|
||||
$na_correctie_uit_opvolgend_jaar_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar');
|
||||
);
|
||||
$na_j_first_hom = $na_j;
|
||||
|
||||
ifThen($na_j < $na_i,
|
||||
ifThen($na_lowest_j > $na_j, $na_lowest_j = $na_j);
|
||||
$na_correctie = -1 * $na_calc_hom_j;
|
||||
// Zorg dat niet meer dan het saldo kan worden verrekend
|
||||
ifThen($na_correctie > ($na_calc_hom + $na_norm_hom), $na_correctie = ($na_calc_hom + $na_norm_hom));
|
||||
|
||||
strAdd($na_uitleg_hom_j, "[IDagen tekort homeopathie aangevuld vanuit jaar ", $na_jaar, ":I][NI", number\format($na_correctie, 2), "]%%");
|
||||
strAdd($na_tekort_aangevuld_vanuit_j, "[IIWaarvan dagen homeopathie vanuit jaar ", $na_jaar, ":I][NII", number\format($na_correctie, 2), "]%%");
|
||||
strAdd($na_uitleg_hom, "[IDagen tekort homeopathie aangevuld naar jaar ", $na_jaar_j, ":I][NI", number\format(-1 * $na_correctie, 2), "]%%");
|
||||
strAdd($na_tekort_aangevuld_naar, "[IIWaarvan dagen homeopathie naar jaar ", $na_jaar_j, ":I][NII", number\format($na_correctie, 2), "]%%");
|
||||
|
||||
$na_correctie_aangevuld_vanuit_j = $na_correctie_aangevuld_vanuit_j + $na_correctie;
|
||||
$na_correctie_aangevuld_naar = $na_correctie_aangevuld_naar + $na_correctie;
|
||||
|
||||
$na_correctie_uit_opvolgend_jaar_hom_j = $na_correctie_uit_opvolgend_jaar_hom_j + 1;
|
||||
$na_correctie_uit_opvolgend_jaar_j = $na_correctie_uit_opvolgend_jaar_j + 1;
|
||||
|
||||
$na_calc_hom = $na_calc_hom - $na_correctie;
|
||||
$na_tekort_hom = $na_tekort_hom - $na_correctie;
|
||||
$na_calc_tot = $na_calc_tot - $na_correctie;
|
||||
$na_tekort = $na_tekort - $na_correctie;
|
||||
|
||||
$na_calc_j = hash\get($na_row_j, 'surplus');
|
||||
$na_calc_j = $na_calc_j + $na_correctie;
|
||||
$na_calc_hom_j = $na_calc_hom_j + $na_correctie;
|
||||
|
||||
$na_row_j = hash\set($na_row_j, 'surplusHomeopathie', $na_calc_hom_j);
|
||||
$na_row_j = hash\set($na_row_j, 'surplus', $na_calc_j);
|
||||
$na_row_j = hash\set($na_row_j, 'uitleg_hom', $na_uitleg_hom_j);
|
||||
$na_row_j = hash\set($na_row_j, 'uitleg', $na_uitleg_j);
|
||||
$na_row_j = hash\set($na_row_j, 'tekort_aangevuld_vanuit', $na_tekort_aangevuld_vanuit_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_aangevuld_vanuit', $na_correctie_aangevuld_vanuit_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_uit_opvolgend_jaar_hom', $na_correctie_uit_opvolgend_jaar_hom_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_uit_opvolgend_jaar', $na_correctie_uit_opvolgend_jaar_j);
|
||||
$na_rows = array\set($na_rows, $na_j, $na_row_j);
|
||||
|
||||
//$ff = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
//logAdd(log, 'jaar:', $na_jaar_j, ', tekort_aangevuld_vanuit: ', $na_tekort_aangevuld_vanuit_j, ', ff:', $ff);
|
||||
);
|
||||
);
|
||||
);
|
||||
|
||||
log('warning', 'jaar=', $na_jaar, ', calc_hom=', $na_calc_hom, ', calc_med=', $na_calc_med, ', calc_tot=', $na_calc_tot);
|
||||
|
||||
// Totaal negatieve correcties
|
||||
// Alleen als er voldoende surplus is om te compenseren.
|
||||
ifThen(($na_calc_tot + $na_norm) > 0,
|
||||
$na_j = $na_j_first_tot;
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_calc_j = hash\get($na_row_j, 'surplus');
|
||||
$na_uitleg_j = hash\get($na_row_j, 'uitleg');
|
||||
$na_tekort_aangevuld_vanuit_j = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_vanuit_j = hash\get($na_row_j, 'correctie_aangevuld_vanuit');
|
||||
$na_jaar_j = hash\get($na_row_j, 'jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar');
|
||||
while($na_j < $na_i && ($na_calc_tot + $na_norm) > 0,
|
||||
while($na_j < $na_i && $na_calc_j >= 0,
|
||||
$na_j = $na_j + 1;
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_calc_j = hash\get($na_row_j, 'surplus');
|
||||
$na_uitleg_j = hash\get($na_row_j, 'uitleg');
|
||||
$na_tekort_aangevuld_vanuit_j = hash\get($na_row_j, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_vanuit_j = hash\get($na_row_j, 'correctie_aangevuld_vanuit');
|
||||
$na_jaar_j = hash\get($na_row_j, 'jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_j = hash\get($na_row_j, 'correctie_uit_opvolgend_jaar');
|
||||
);
|
||||
|
||||
$na_j_first_tot = $na_j;
|
||||
|
||||
ifThen($na_j < $na_i,
|
||||
ifThen($na_lowest_j > $na_j, $na_lowest_j = $na_j);
|
||||
$na_correctie = -1 * $na_calc_j;
|
||||
ifThen($na_correctie > ($na_calc_tot + $na_norm), $na_correctie = ($na_calc_tot + $na_norm));
|
||||
|
||||
strAdd($na_tekort_aangevuld_vanuit_j, "[IIWaarvan nascholingsdagen vanuit jaar ", $na_jaar,":I][NII", number\format($na_correctie, 2), "]%%");
|
||||
strAdd($na_tekort_aangevuld_naar, "[IIWaarvan nascholingsdagen naar jaar ", $na_jaar_j, ":I][NII", number\format($na_correctie, 2), "]%%");
|
||||
|
||||
$na_correctie_aangevuld_vanuit_j = $na_correctie_aangevuld_vanuit_j + $na_correctie;
|
||||
$na_correctie_aangevuld_naar = $na_correctie_aangevuld_naar + $na_correctie;
|
||||
|
||||
$na_correctie_uit_opvolgend_jaar_j = $na_correctie_uit_opvolgend_jaar_j + 1;
|
||||
|
||||
$na_calc_tot = $na_calc_tot - $na_correctie;
|
||||
$na_tekort = $na_tekort - $na_correctie;
|
||||
$na_calc_j = $na_calc_j + $na_correctie;
|
||||
|
||||
$na_row_j = hash\set($na_row_j, 'surplus', $na_calc_j);
|
||||
$na_row_j = hash\set($na_row_j, 'uitleg', $na_uitleg_j);
|
||||
$na_row_j = hash\set($na_row_j, 'tekort_aangevuld_vanuit', $na_tekort_aangevuld_vanuit_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_aangevuld_vanuit', $na_correctie_aangevuld_vanuit_j);
|
||||
$na_row_j = hash\set($na_row_j, 'correctie_uit_opvolgend_jaar', $na_correctie_uit_opvolgend_jaar_j);
|
||||
$na_rows = array\set($na_rows, $na_j, $na_row_j);
|
||||
|
||||
//logAdd(log, 'jaar:', $na_jaar_j, ', tekort_aangevuld_vanuit: ', $na_tekort_aangevuld_vanuit_j);
|
||||
);
|
||||
);
|
||||
);
|
||||
|
||||
log('warning', 'jaar=', $na_jaar, ', calc_hom=', $na_calc_hom, ', calc_med=', $na_calc_med, ', calc_tot=', $na_calc_tot);
|
||||
|
||||
ifThen($na_lowest_j == $na_i,
|
||||
// Kijk nu of er nog dagen meegenomen kunnen worden naar het volgende jaar
|
||||
|
||||
$na_row_prev = array\at($na_rows, $na_i - 1);
|
||||
$na_calc_hom_prev = hash\get($na_row_prev, 'surplusHomeopathie');
|
||||
$na_calc_med_prev = hash\get($na_row_prev, 'surplusMedisch');
|
||||
$na_calc_tot_prev = hash\get($na_row_prev, 'surplus');
|
||||
|
||||
//logAdd(log, 'warning', 'jaar:', $na_jaar, ', MEENEMEN: prev: tot:', $na_calc_tot_prev, ', hom: ', $na_calc_hom_prev, ', med:', $na_calc_med_prev);
|
||||
|
||||
// Pak maximaal de maxMeenemen norm aan dagen over van het voorgaande jaar, als er voldoende dagen zijn.
|
||||
ifThen($na_calc_tot_prev > 0,
|
||||
// Oke, we kunnen überhaupt dagen meenemen.
|
||||
$na_max_mee = $na_max_meenemen;
|
||||
// Zorg dat we bij het teruggaan in de tijd niet meer meenemen dan in totaal max_meenemen.
|
||||
// Dus we moeten wat al een keer is meegenomen vasthouden en van het maximum aftrekken.
|
||||
$na_meegenomen = hash\get($na_row, 'meegenomen');
|
||||
$na_meegenomen_hom = hash\get($na_row, 'meegenomen_hom');
|
||||
$na_meegenomen_med = hash\get($na_row, 'meegenomen_med');
|
||||
$na_max_mee = $na_max_mee - $na_meegenomen;
|
||||
// Verdeel de dagen tussen medisch en homeopatisch, tenzij de
|
||||
// voorgaande surplussen niet voldoende zijn, vul dan verder aantal
|
||||
// met overig
|
||||
while($na_calc_tot_prev > 0 && $na_max_mee > 0,
|
||||
// Zo lang huidig medisch surplus < 0 en previous medisch surplus > 0, kies voor medisch
|
||||
// Anders, zo lang huidig homeopathie surplus < 0 en previous homeopathie surplus > 0, kies voor homeopathie
|
||||
// Anders, zo lang previous homeopathie surplus / medisch surplus > 0, kies voor med, hom alternerend.
|
||||
// Anders, zo lang previous homeopathie surplus > 0, kies voor homeopathie
|
||||
// Anders, zo lang previous medisch surplus > 0, kies voor medisch
|
||||
// Anders, kies voor overig
|
||||
ifThenElse($na_calc_med < 0 && $na_calc_med_prev > 0,
|
||||
$na_hom_med_overig = 'med';
|
||||
,
|
||||
ifThenElse($na_calc_hom < 0 && $na_calc_hom_prev > 0,
|
||||
$na_hom_med_overig = 'hom';
|
||||
,
|
||||
ifThenElse($na_calc_hom_prev > 0 && $na_calc_med_prev > 0,
|
||||
ifThenElse($na_hom_med_overig == 'med',
|
||||
$na_hom_med_overig = 'hom';
|
||||
,
|
||||
$na_hom_med_overig = 'med';
|
||||
);
|
||||
,
|
||||
ifThenElse($na_calc_hom_prev > 0,
|
||||
$na_hom_med_overig = 'hom';
|
||||
,
|
||||
ifThenElse($na_calc_med_prev > 0,
|
||||
$na_hom_med_overig = 'med';
|
||||
,
|
||||
$na_hom_med_overig = 'overig';
|
||||
);
|
||||
);
|
||||
);
|
||||
);
|
||||
);
|
||||
|
||||
log('warning', 'na_hom_med_overig=', $na_hom_med_overig, ', surplus_tot_prev=', $na_calc_tot_prev, ', na_max_mee=', $na_max_mee);
|
||||
|
||||
ifThen($na_hom_med_overig == 'med',
|
||||
ifThen($na_calc_med_prev > 0,
|
||||
$na_take = 1;
|
||||
ifThen($na_calc_med_prev < $na_take, $na_take = $na_calc_med_prev);
|
||||
ifThen($na_calc_tot_prev < $na_take, $na_take = $na_calc_tot_prev);
|
||||
ifThen($na_max_mee < $na_take, $na_take = $na_max_mee);
|
||||
$na_calc_med = $na_calc_med + $na_take;
|
||||
$na_calc_med_prev = $na_calc_med_prev - $na_take;
|
||||
$na_calc_tot = $na_calc_tot + $na_take;
|
||||
$na_calc_tot_prev = $na_calc_tot_prev - $na_take;
|
||||
$na_max_mee = $na_max_mee - $na_take;
|
||||
$na_meegenomen = $na_meegenomen + $na_take;
|
||||
$na_meegenomen_med = $na_meegenomen_med + $na_take;
|
||||
);
|
||||
);
|
||||
ifThen($na_hom_med_overig == 'hom',
|
||||
ifThen($na_calc_hom_prev > 0,
|
||||
$na_take = 1;
|
||||
ifThen($na_calc_hom_prev < $na_take, $na_take = $na_calc_hom_prev);
|
||||
ifThen($na_calc_tot_prev < $na_take, $na_take = $na_calc_tot_prev);
|
||||
ifThen($na_max_mee < $na_take, $na_take = $na_max_mee);
|
||||
$na_calc_hom = $na_calc_hom + $na_take;
|
||||
$na_calc_hom_prev = $na_calc_hom_prev - $na_take;
|
||||
$na_calc_tot = $na_calc_tot + $na_take;
|
||||
$na_calc_tot_prev = $na_calc_tot_prev - $na_take;
|
||||
$na_max_mee = $na_max_mee - $na_take;
|
||||
$na_meegenomen = $na_meegenomen + $na_take;
|
||||
$na_meegenomen_hom = $na_meegenomen_hom + $na_take;
|
||||
);
|
||||
);
|
||||
ifThen($na_hom_med_overig == 'overig',
|
||||
// We weten nu al dat na_calc_tot_prev > 0
|
||||
$na_take = 1;
|
||||
ifThen($na_calc_tot_prev < $na_take, $na_take = $na_calc_tot_prev);
|
||||
ifThen($na_max_mee < $na_take, $na_take = $na_max_mee);
|
||||
$na_calc_tot = $na_calc_tot + $na_take;
|
||||
$na_calc_tot_prev = $na_calc_tot_prev - $na_take;
|
||||
$na_max_mee = $na_max_mee - $na_take;
|
||||
$na_meegenomen = $na_meegenomen + $na_take;
|
||||
);
|
||||
);
|
||||
|
||||
//logAdd(log, 'warning', 'jaar:', $na_jaar, ', meegenomen: ', $na_meegenomen, ', hom:', $na_meegenomen_hom, ', med:', $na_meegenomen_med);
|
||||
|
||||
$na_row = hash\set($na_row, 'meegenomen', $na_meegenomen);
|
||||
$na_row = hash\set($na_row, 'meegenomen_hom', $na_meegenomen_hom);
|
||||
$na_row = hash\set($na_row, 'meegenomen_med', $na_meegenomen_med);
|
||||
);
|
||||
|
||||
$na_meegenomen = hash\get($na_row, 'meegenomen');
|
||||
$na_meegenomen_hom = hash\get($na_row, 'meegenomen_hom');
|
||||
$na_meegenomen_med = hash\get($na_row, 'meegenomen_med');
|
||||
//logAdd(log, 'jaar: ', $na_jaar, ', tekort:', $na_tekort, ', meegenomen uit vorig jaar:', $na_meegenomen);
|
||||
|
||||
$na_row_prev = hash\set($na_row_prev, 'surplusHomeopathie', $na_calc_hom_prev);
|
||||
$na_row_prev = hash\set($na_row_prev, 'surplusMedisch', $na_calc_med_prev);
|
||||
$na_row_prev = hash\set($na_row_prev, 'surplus', $na_calc_tot_prev);
|
||||
$na_rows = array\set($na_rows, $na_i - 1, $na_row_prev);
|
||||
);
|
||||
|
||||
$na_row = hash\set($na_row, 'surplusHomeopathie', $na_calc_hom);
|
||||
$na_row = hash\set($na_row, 'surplusMedisch', $na_calc_med);
|
||||
$na_row = hash\set($na_row, 'surplus', $na_calc_tot);
|
||||
$na_row = hash\set($na_row, 'uitleg', $na_uitleg);
|
||||
$na_row = hash\set($na_row, 'uitleg_hom', $na_uitleg_hom);
|
||||
$na_row = hash\set($na_row, 'uitleg_med', $na_uitleg_med);
|
||||
$na_row = hash\set($na_row, 'tekort_aangevuld_naar', $na_tekort_aangevuld_naar);
|
||||
$na_row = hash\set($na_row, 'correctie_aangevuld_naar', $na_correctie_aangevuld_naar);
|
||||
$na_row = hash\set($na_row, 'correctie_uit_opvolgend_jaar', $na_correctie_uit_opvolgend_jaar);
|
||||
$na_row = hash\set($na_row, 'correctie_uit_opvolgend_jaar_hom', $na_correctie_uit_opvolgend_jaar_hom);
|
||||
$na_row = hash\set($na_row, 'correctie_uit_opvolgend_jaar_med', $na_correctie_uit_opvolgend_jaar_med);
|
||||
$na_row = hash\set($na_row, 'tekort', $na_tekort);
|
||||
$na_row = hash\set($na_row, 'tekort_hom', $na_tekort_hom);
|
||||
$na_row = hash\set($na_row, 'tekort_med', $na_tekort_med);
|
||||
$na_rows = array\set($na_rows, $na_i, $na_row);
|
||||
|
||||
ifThen($na_lowest_j != $na_i, $na_i = $na_lowest_j - 1);
|
||||
);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bepaal de uitslag
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_i = 0;
|
||||
$na_jaar_end = 0;
|
||||
ifThenElse($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_n - 1);
|
||||
$na_calc_tot_end = hash\get($na_row, 'surplus');
|
||||
$na_calc_hom_end = hash\get($na_row, 'surplusHomeopathie');
|
||||
$na_calc_med_end = hash\get($na_row, 'surplusMedisch');
|
||||
$na_jaar_end = hash\get($na_row, 'jaar');
|
||||
,
|
||||
$na_calc_tot_end = 0;
|
||||
$na_calc_hom_end = 0;
|
||||
$na_calc_med_end = 0;
|
||||
$na_jaar_end = 0;
|
||||
);
|
||||
|
||||
log('warning', 'calc_tot_end = ', $na_calc_tot_end, ', calc_hom_end = ', $na_calc_hom_end, ', calc_med_end = ', $na_calc_med_end);
|
||||
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
|
||||
$na_uitleg_hom = hash\get($na_row, 'uitleg_hom');
|
||||
$na_uitleg_med = hash\get($na_row, 'uitleg_med');
|
||||
$na_uitleg_tot = hash\get($na_row, 'uitleg');
|
||||
|
||||
$na_tekort_aangevuld_naar = hash\get($na_row, 'tekort_aangevuld_naar');
|
||||
$na_tekort_aangevuld_vanuit = hash\get($na_row, 'tekort_aangevuld_vanuit');
|
||||
$na_correctie_aangevuld_naar = hash\get($na_row, 'correctie_aangevuld_naar');
|
||||
$na_correctie_aangevuld_vanuit = hash\get($na_row, 'correctie_aangevuld_vanuit');
|
||||
|
||||
$na_calc_tot = hash\get($na_row, 'surplus');
|
||||
$na_calc_hom = hash\get($na_row, 'surplusHomeopathie');
|
||||
$na_calc_med = hash\get($na_row, 'surplusMedisch');
|
||||
|
||||
$na_mee_tot = hash\get($na_row, 'meegenomen');
|
||||
$na_mee_hom = hash\get($na_row, 'meegenomen_hom');
|
||||
$na_mee_med = hash\get($na_row, 'meegenomen_med');
|
||||
|
||||
$na_tekort = -1 * hash\get($na_row, 'tekort');
|
||||
$na_tekort_hom = -1 * hash\get($na_row, 'tekort_hom');
|
||||
$na_tekort_med = -1 * hash\get($na_row, 'tekort_med');
|
||||
|
||||
//logAdd(log, 'info', 'jaar:', $na_jaar, ', tekort_hom: ', $na_tekort_hom, ' tekort_med: ', $na_tekort_med, ', tekort_tot: ', $na_tekort);
|
||||
|
||||
// Corrigeer voor het dashboard de tekorten nog met meegenomen uit voorgaande jaren
|
||||
$na_tekort = $na_tekort - $na_mee_tot;
|
||||
$na_tekort_hom = $na_tekort_hom - $na_mee_hom;
|
||||
$na_tekort_med = $na_tekort_med - $na_mee_med;
|
||||
|
||||
$na_dashboard = '';
|
||||
$na_dashb_entry_hom = '';
|
||||
$na_dashb_entry_med = '';
|
||||
$na_dashb_entry_tot = '';
|
||||
|
||||
ifThenElse($na_i == ($na_n - 1),
|
||||
$na_mee_tot_next = 0;
|
||||
$na_mee_hom_next = 0;
|
||||
$na_mee_med_next = 0;
|
||||
,
|
||||
$na_row_next = array\at($na_rows, $na_i + 1);
|
||||
$na_mee_tot_next = hash\get($na_row_next, 'meegenomen');
|
||||
$na_mee_hom_next = hash\get($na_row_next, 'meegenomen_hom');
|
||||
$na_mee_med_next = hash\get($na_row_next, 'meegenomen_med');
|
||||
);
|
||||
|
||||
$na_correctie_uit_opvolgend_jaar = hash\get($na_row, 'correctie_uit_opvolgend_jaar');
|
||||
$na_correctie_uit_opvolgend_jaar_hom = hash\get($na_row, 'correctie_uit_opvolgend_jaar_hom');
|
||||
$na_correctie_uit_opvolgend_jaar_med = hash\get($na_row, 'correctie_uit_opvolgend_jaar_med');
|
||||
|
||||
// Bepaal of er vóór het einde vanaf deze index nog ergens een surplus is, want
|
||||
// dan is een negatief eindtotaal niet van toepassing.
|
||||
//logAdd(log, 'warning', 'jaar = ', $na_jaar, ' - intermediate surplus?');
|
||||
$na_j = $na_i;
|
||||
$has_intermediate_hom_surplus = false;
|
||||
$has_intermediate_med_surplus = false;
|
||||
$has_intermediate_tot_surplus = false;
|
||||
while($na_j < $na_n && !($has_intermediate_hom_surplus && $has_intermediate_med_surplus && $has_intermediate_tot_surplus),
|
||||
$na_row_j = array\at($na_rows, $na_j);
|
||||
$na_j_jaar = hash\get($na_row_j, 'jaar');
|
||||
$na_j_calc_tot = hash\get($na_row_j, 'surplus');
|
||||
$na_j_calc_hom = hash\get($na_row_j, 'surplusHomeopathie');
|
||||
$na_j_calc_med = hash\get($na_row_j, 'surplusMedisch');
|
||||
$na_j_tekort = hash\get($na_row_j, 'tekort');
|
||||
$na_j_tekort_hom = hash\get($na_row_j, 'tekort_hom');
|
||||
$na_j_tekort_med = hash\get($na_row_j, 'tekort_med');
|
||||
|
||||
$has_intermediate_tot_surplus = ($na_j_calc_tot > 0.0 || ($na_j_calc_tot == 0.0 && $na_j_tekort >= 0.0));
|
||||
$has_intermediate_hom_surplus = ($na_j_calc_hom > 0.0 || ($na_j_calc_hom == 0.0 && $na_j_tekort_hom >= 0.0));
|
||||
$has_intermediate_med_surplus = ($na_j_calc_med > 0.0 || ($na_j_calc_med == 0.0 && $na_j_tekort_med >= 0.0));
|
||||
|
||||
//logAdd(log, 'info', 'jaar = ', $na_j_jaar, ', calc_tot = ', $na_j_calc_tot, ', tekort = ', $na_j_tekort, ' result = ', $has_intermediate_tot_surplus);
|
||||
$na_j = $na_j + 1;
|
||||
);
|
||||
//logAdd(log, 'info', 'intermediate surplus = ', $has_intermediate_tot_surplus);
|
||||
|
||||
// Begin met uitleggen
|
||||
|
||||
strAdd($na_uitleg_hom, "[IMeegenomen uit ", $na_jaar - 1, " :][NI", number\format($na_mee_hom, 2), "]%%");
|
||||
|
||||
ifThenElse($na_i == ($na_n - 1),
|
||||
strAdd($na_uitleg_hom, "[TGecumuleerde nascholingsuitkomst:][N", number\format($na_calc_hom, 2), "]%%");
|
||||
,
|
||||
strAdd($na_uitleg_hom, "[IDoorgegeven aan ", $na_jaar + 1, " :][NI", number\format(-1 * $na_mee_hom_next, 2), "]%%");
|
||||
ifThen($na_calc_hom > 0 && $na_calc_tot <= 0,
|
||||
strAdd($na_uitleg_hom, "[ESurplus van ", number\format($na_calc_hom, 2), " Homeopathie dagen kunnen niet worden doorgegeven, omdat het totaal ontoereikend isE]%%");
|
||||
);
|
||||
);
|
||||
|
||||
ifThenElse($na_tekort_hom <= 0,
|
||||
ifThenElse($na_calc_hom == 0.0,
|
||||
$na_dashb_entry_hom = string\concatenate("[VTotaal Klassieke Homeopathie voldoendeV]%%");
|
||||
$na_status_hom = 'voldoet';
|
||||
,
|
||||
$na_dashb_entry_hom = string\concatenate("[VTotaal Klassieke Homeopathie voldoende (surplus: ", number\format($na_calc_hom, 2), ")V]%%");
|
||||
$na_status_hom = 'voldoet';
|
||||
);
|
||||
,
|
||||
ifThenElse($na_calc_hom >= 0,
|
||||
$na_dashb_entry_hom = string\concatenate("[VTotaal Klassieke Homeopathie voldoende (gecompenseerd)V]%%");
|
||||
,
|
||||
$na_dashb_entry_hom = string\concatenate("[OTotaal Klassieke Homeopathie onvoldoende (tekort: ", number\format(-1 * $na_calc_hom, 2), ")O]%%");
|
||||
$na_status_hom = 'voldoet-niet';
|
||||
);
|
||||
);
|
||||
|
||||
$na_uitleg_hom = string\concatenate($na_dashb_entry_hom, $na_uitleg_hom);
|
||||
|
||||
ifThenElse($na_jaar >= $na_methode_1_max_jaar,
|
||||
|
||||
strAdd($na_uitleg_med, "[IMeegenomen ", $na_jaar - 1, " :][NI", number\format($na_mee_med, 2), "]%%");
|
||||
ifThenElse($na_i == ($na_n - 1),
|
||||
strAdd($na_uitleg_med, "[TGecumuleerde nascholingsuitkomst:][N", number\format($na_calc_med, 2), "]%%");
|
||||
,
|
||||
strAdd($na_uitleg_med, "[IDoorgegeven aan ", $na_jaar + 1, " :][NI", number\format(-1 * $na_mee_med_next, 2), "]%%");
|
||||
ifThen($na_calc_med > 0 && $na_calc_tot <= 0,
|
||||
strAdd($na_uitleg_med, "[ESurplus van ", number\format($na_calc_med, 2), " Medische dagen kunnen niet worden doorgegeven, omdat het totaal ontoereikend isE]%%");
|
||||
);
|
||||
);
|
||||
|
||||
ifThenElse($na_tekort_med <= 0,
|
||||
ifThenElse($na_calc_med == 0.0,
|
||||
$na_dashb_entry_med = string\concatenate("[VTotaal Medisch voldoendeV]%%");
|
||||
$na_status_med = 'voldoet';
|
||||
,
|
||||
$na_dashb_entry_med = string\concatenate("[VTotaal Medisch voldoende (surplus: ", number\format($na_calc_med, 2), ")V]%%");
|
||||
$na_status_med = 'voldoet';
|
||||
);
|
||||
,
|
||||
ifThenElse($na_calc_med >= 0,
|
||||
$na_dashb_entry_med = string\concatenate("[VTotaal Medisch voldoende (gecompenseerd)V]%%");
|
||||
$na_status_med = 'voldoet';
|
||||
,
|
||||
$na_dashb_entry_med = string\concatenate("[OTotaal Medisch onvoldoende (tekort: ", number\format(-1 * $na_calc_med, 2), ")O]%%");
|
||||
$na_status_hom = 'voldoet-niet';
|
||||
);
|
||||
);
|
||||
|
||||
$na_uitleg_med = string\concatenate($na_dashb_entry_med, $na_uitleg_med);
|
||||
,
|
||||
$na_dashb_entry_med = '[V - V]%%';
|
||||
);
|
||||
|
||||
log('warning', 'jaar:', $na_jaar, ', tot:', $na_calc_tot, ', correctie:', $na_correctie_uit_opvolgend_jaar, ', na_mee_tot:', $na_mee_tot_next);
|
||||
|
||||
ifThen($na_correctie_aangevuld_naar > 0,
|
||||
//strAdd($na_uitleg_tot, '[IDagen aangevuld naar jaar ', $na_jaar - 1, ":][NI", number\format(-1 * $na_correctie_aangevuld_naar, 2), ']%%');
|
||||
strAdd($na_uitleg_tot, '[IDagen aangevuld naar:][NI', number\format(-1 * $na_correctie_aangevuld_naar, 2), ']%%');
|
||||
strAdd($na_uitleg_tot, $na_tekort_aangevuld_naar);
|
||||
);
|
||||
|
||||
ifThen($na_correctie_aangevuld_vanuit > 0,
|
||||
//strAdd($na_uitleg_tot, '[IDagen aangevuld vanuit jaar ', $na_jaar + 1, ":][NI", number\format($na_correctie_aangevuld_vanuit, 2), ']%%');
|
||||
strAdd($na_uitleg_tot, '[IDagen aangevuld vanuit:][NI', number\format($na_correctie_aangevuld_vanuit, 2), ']%%');
|
||||
strAdd($na_uitleg_tot, $na_tekort_aangevuld_vanuit);
|
||||
);
|
||||
|
||||
strAdd($na_uitleg_tot, "[IMeegenomen uit jaar ", $na_jaar - 1, " :][NI", number\format($na_mee_tot, 2), "]%%");
|
||||
ifThen($na_mee_hom > 0,
|
||||
strAdd($na_uitleg_tot, "[IIWaarvan dagen homeopathie:][NII", number\format($na_mee_hom, 2), "]%%");
|
||||
);
|
||||
ifThen($na_mee_med > 0,
|
||||
strAdd($na_uitleg_tot, "[IIWaarvan dagen medisch:][NII", number\format($na_mee_med, 2), "]%%");
|
||||
);
|
||||
|
||||
// Dit blijkt nodig te zijn (bug in ESPOCRM?), anders wordt na_mee_tot_hm gewoon niet berekend.
|
||||
$na_mee_tot_hm = $na_mee_tot;
|
||||
$na_mee_tot_hm = $na_mee_tot_hm - $na_mee_hom;
|
||||
$na_mee_tot_hm = $na_mee_tot_hm - $na_mee_med;
|
||||
|
||||
ifThen($na_mee_tot_hm > 0,
|
||||
strAdd($na_uitleg_tot, "[IIWaarvan dagen nascholing:][NII", number\format($na_mee_tot_hm, 2), "]%%");
|
||||
);
|
||||
|
||||
ifThenElse($na_i == ($na_n - 1),
|
||||
strAdd($na_uitleg_tot, "[TGecumuleerde nascholingsuitkomst:][N", number\format($na_calc_tot, 2), "]%%");
|
||||
,
|
||||
strAdd($na_uitleg_tot, "[IDoorgegeven aan ", $na_jaar + 1, " :][NI", number\format(-1 * $na_mee_tot_next, 2), "]%%");
|
||||
ifThen($na_mee_hom_next > 0,
|
||||
strAdd($na_uitleg_tot, "[IIWaarvan dagen homeopathie:][NII", number\format($na_mee_hom_next, 2), "]%%");
|
||||
);
|
||||
ifThen($na_mee_med_next > 0,
|
||||
strAdd($na_uitleg_tot, "[IIWaarvan dagen medisch:][NII", number\format($na_mee_med_next, 2), "]%%");
|
||||
);
|
||||
|
||||
// Dit blijkt nodig te zijn (bug in ESPOCRM?), anders wordt na_mee_tot_hm_next gewoon niet berekend.
|
||||
$na_mee_tot_hm_next = $na_mee_tot_next;
|
||||
$na_mee_tot_hm_next = $na_mee_tot_hm_next - $na_mee_hom_next;
|
||||
$na_mee_tot_hm_next = $na_mee_tot_hm_next - $na_mee_med_next;
|
||||
ifThen($na_mee_tot_hm_next > 0,
|
||||
strAdd($na_uitleg_tot, "[IIWaarvan dagen nascholing:][NII", number\format($na_mee_tot_hm_next, 2), "]%%");
|
||||
);
|
||||
);
|
||||
|
||||
ifThenElse($na_tekort <= 0,
|
||||
ifThenElse($na_calc_tot == 0.0,
|
||||
$na_dashb_entry_tot = string\concatenate("[VNascholingsdagen voldoendeV]%%");
|
||||
$na_status = 'voldoet';
|
||||
,
|
||||
$na_dashb_entry_tot = string\concatenate("[VNascholingsdagen voldoende (surplus: ", number\format($na_calc_tot, 2), ")V]%%");
|
||||
$na_status = 'voldoet';
|
||||
);
|
||||
,
|
||||
ifThenElse($na_calc_tot >= 0,
|
||||
$na_dashb_entry_tot = string\concatenate("[VNascholingsdagen voldoende (gecompenseerd)V]%%");
|
||||
$na_status = 'voldoet';
|
||||
,
|
||||
$na_dashb_entry_tot = string\concatenate("[ONascholingsdagen onvoldoende (tekort: ", number\format(-1 * $na_calc_tot, 2), ")O]%%");
|
||||
$na_status = 'voldoet-niet';
|
||||
);
|
||||
);
|
||||
|
||||
$na_uitleg_tot = string\concatenate($na_dashb_entry_tot, $na_uitleg_tot);
|
||||
|
||||
|
||||
ifThenElse($na_jaar < $na_methode_1_max_jaar,
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '[V', string\concatenate('<span ', $na_style_nstd_nvt, '>'));
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '[O', string\concatenate('<span ', $na_style_nstd_nvt, '>'));
|
||||
,
|
||||
ifThenElse($na_jaar == $na_methode_1_max_jaar,
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '[V', string\concatenate('<span ', $na_style_nstd_goed, '>'));
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '[O', string\concatenate('<span ', $na_style_nstd_goed, '>'));
|
||||
,
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '[V', string\concatenate('<span ', $na_style_nstd_goed, '>'));
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '[O', string\concatenate('<span ', $na_style_nstd_tekort, '>'));
|
||||
)
|
||||
);
|
||||
$na_dashb_entry_hom = string\replace($na_dashb_entry_hom, '[V', string\concatenate('<span ', $na_style_nstd_goed, '>'));
|
||||
$na_dashb_entry_hom = string\replace($na_dashb_entry_hom, '[O', string\concatenate('<span ', $na_style_nstd_tekort, '>'));
|
||||
$na_dashb_entry_tot = string\replace($na_dashb_entry_tot, '[V', string\concatenate('<span ', $na_style_nstd_goed, '>'));
|
||||
$na_dashb_entry_tot = string\replace($na_dashb_entry_tot, '[O', string\concatenate('<span ', $na_style_nstd_tekort, '>'));
|
||||
|
||||
$na_dashb_entry_tot = string\replace($na_dashb_entry_tot, 'V]%%', '</span>');
|
||||
$na_dashb_entry_tot = string\replace($na_dashb_entry_tot, 'O]%%', '</span>');
|
||||
$na_dashb_entry_hom = string\replace($na_dashb_entry_hom, 'V]%%', '</span>');
|
||||
$na_dashb_entry_hom = string\replace($na_dashb_entry_hom, 'O]%%', '</span>');
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, 'V]%%', '</span>');
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, 'O]%%', '</span>');
|
||||
|
||||
$na_dashb_entry_hom = string\replace($na_dashb_entry_hom, "Totaal Klassieke Homeopathie", "Kl. Hom.");
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, "Totaal Medisch", "Medisch");
|
||||
$na_dashb_entry_hom = string\replace($na_dashb_entry_hom, '(surplus: 0,0)', '');
|
||||
$na_dashb_entry_med = string\replace($na_dashb_entry_med, '(surplus: 0,0)', '');
|
||||
$na_dashb_entry_tot = string\replace($na_dashb_entry_tot, '(surplus: 0,0)', '');
|
||||
|
||||
$na_dashboard = string\concatenate($na_dashb_entry_hom, $na_dashb_entry_med, $na_dashb_entry_tot);
|
||||
|
||||
$na_row = hash\set($na_row, 'uitleg', $na_uitleg_tot);
|
||||
$na_row = hash\set($na_row, 'uitleg_hom', $na_uitleg_hom);
|
||||
$na_row = hash\set($na_row, 'uitleg_med', $na_uitleg_med);
|
||||
$na_row = hash\set($na_row, 'dashboard', $na_dashboard);
|
||||
$na_row = hash\set($na_row, 'status', $na_status);
|
||||
$na_row = hash\set($na_row, 'status_hom', $na_status_hom);
|
||||
$na_row = hash\set($na_row, 'status_med', $na_status_med);
|
||||
$na_rows = array\set($na_rows, $na_i, $na_row);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bewerk alle uitleggen
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
|
||||
log('warning', 'na_i=', $na_i, ', got row');
|
||||
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
$na_bep_rep = 'bepaald';
|
||||
|
||||
log('warning', 'na_i=', $na_i, ', got jaar=', $na_jaar);
|
||||
|
||||
$na_report = configGet('nascholingstotaal-rapport-jaar');
|
||||
$na_report = string\replace($na_report, '%jaar%', toString($na_jaar));
|
||||
|
||||
$na_report = string\replace($na_report, '%bepaald%', $na_bep_rep);
|
||||
|
||||
$na_uitleg_hom = hash\get($na_row, 'uitleg_hom');
|
||||
$na_uitleg_med = hash\get($na_row, 'uitleg_med');
|
||||
$na_uitleg_tot = hash\get($na_row, 'uitleg');
|
||||
|
||||
$na_report = string\replace($na_report, '%tot%', $na_uitleg_tot);
|
||||
$na_report = string\replace($na_report, '%hom%', $na_uitleg_hom);
|
||||
ifThenElse($na_jaar >= $na_methode_1_max_jaar,
|
||||
$na_report = string\replace($na_report, '%med%', $na_uitleg_med);
|
||||
,
|
||||
$na_report = string\replace($na_report, '%med%', '');
|
||||
);
|
||||
|
||||
$na_report = string\replace($na_report, '[T', string\concatenate('<td ', $na_style_rubric, '>'));
|
||||
$na_report = string\replace($na_report, '[S', '<td colspan="2">');
|
||||
$na_report = string\replace($na_report, '[NII', string\concatenate('<td ', $na_style_dagen_inspr2, '>'));
|
||||
$na_report = string\replace($na_report, '[NI', string\concatenate('<td ', $na_style_dagen_inspr, '>'));
|
||||
$na_report = string\replace($na_report, '[N', string\concatenate('<td ', $na_style_dagen, '>'));
|
||||
$na_report = string\replace($na_report, '[V', string\concatenate('<td colspan="2" ', $na_style_kop, '><span ', $na_style_nstd_goed_report, '>'));
|
||||
$na_report = string\replace($na_report, '[O', string\concatenate('<td colspan="2" ', $na_style_kop, '><span ', $na_style_nstd_tekort_report, '>'));
|
||||
$na_report = string\replace($na_report, '[E', string\concatenate('<td colspan="2" ', $na_style_rubric, '><span ', $na_style_probleem, '>'));
|
||||
$na_report = string\replace($na_report, '[W', string\concatenate('<td ', $na_style_rubric, '><span ', $na_style_waarschuwing, '>'));
|
||||
$na_report = string\replace($na_report, '[II', string\concatenate('<td ', $na_style_rubric, '><span ', $na_style_sub2_rubric, '>'));
|
||||
$na_report = string\replace($na_report, '[I', string\concatenate('<td ', $na_style_rubric, '><span ', $na_style_sub_rubric, '>'));
|
||||
$na_report = string\replace($na_report, '[R', string\concatenate('<td colspan="2" ', $na_style_rubric, '><span ', $na_style_sub_rubric, '>'));
|
||||
$na_report = string\replace($na_report, "O]", "</span></td>");
|
||||
$na_report = string\replace($na_report, "V]", "</span></td>");
|
||||
$na_report = string\replace($na_report, "E]", "</span></td>");
|
||||
$na_report = string\replace($na_report, "W]", "</span></td>");
|
||||
$na_report = string\replace($na_report, "I]", "</span></td>");
|
||||
$na_report = string\replace($na_report, "R]", "</span></td>");
|
||||
$na_report = string\replace($na_report, "]", "</td>");
|
||||
$na_report = string\replace($na_report, '%%', '</tr><tr>\n');
|
||||
|
||||
$na_row = hash\set($na_row, 'na_report', $na_report);
|
||||
$na_rows = array\set($na_rows, $na_i, $na_row);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Zet al die totalen weer in de database
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$na_id = hash\get($na_row, 'id');
|
||||
$na_calc_tot = hash\get($na_row, 'surplus');
|
||||
$na_calc_hom = hash\get($na_row, 'surplusHomeopathie');
|
||||
$na_calc_med = hash\get($na_row, 'surplusMedisch');
|
||||
$na_dashboard = hash\get($na_row, 'dashboard');
|
||||
$na_report = hash\get($na_row, 'na_report');
|
||||
|
||||
$na_status = hash\get($na_row, 'status');
|
||||
$na_status_hom = hash\get($na_row, 'status_hom');
|
||||
$na_status_med = hash\get($na_row, 'status_med');
|
||||
$na_status_all = $na_status;
|
||||
|
||||
ifThen($na_status_all == 'voldoet-niet-na-saldering', $na_status_all = 'voldoet-niet');
|
||||
ifThen($na_status_hom == 'voldoet-niet' || $na_status_hom == 'voldoet-niet-na-saldering', $na_status_all = 'voldoet-niet');
|
||||
ifThen($na_status_med == 'voldoet-niet' || $na_status_med == 'voldoet-niet-na-saldering', $na_status_all = 'voldoet-niet');
|
||||
ifThen($na_status_all == 'voldoet-na-saldering', $na_status_all = 'voldoet');
|
||||
|
||||
record\update('Nascholingstotaal', $na_id,
|
||||
'surplus', $na_calc_tot,
|
||||
'surplusMedisch', $na_calc_med,
|
||||
'surplusHomeopathie', $na_calc_hom,
|
||||
'dashboard', $na_dashboard,
|
||||
'berekeningsuitleg', $na_report,
|
||||
'status', $na_status_all
|
||||
);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Klaar.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
global\unset($na_in_calc_key, true);
|
||||
@@ -0,0 +1 @@
|
||||
script-bereken-nascholingstotalen
|
||||
@@ -0,0 +1,7 @@
|
||||
Leest alle nascholingsnormen in een hash en zet ze in de globale variable 'nascholingsnorm-hash', waarbij ze kunnen worden gelezen als hash\get($hash, "$year") of hash\get($hash, "$year-$regiocode"). De key "$year-$regiocode" gaat boven die van de algemene "$year".
|
||||
|
||||
De velden die hierbij te lezen zijn zijn:
|
||||
|
||||
- dagen (het totaal aantal te volgen dagen per jaar, inclusief dagenMedisch en dagenHomeopathie)
|
||||
- dagenMedisch (aantal te volgen medische dagen per jaar)
|
||||
- dagenHomeopathie (aantal te volgen klassieke homeopathie dagen per jaar)
|
||||
@@ -0,0 +1 @@
|
||||
5f0c79b5aae44ef72
|
||||
@@ -0,0 +1,32 @@
|
||||
//exec last execution: Mon Jul 13 2020 17:57:38 GMT+0200 (Midden-Europese zomertijd)
|
||||
|
||||
$sln_rows = record\fetchManyHash('Nascholingsnorm', 'name, id, jaar, dagen, dagenMedisch, dagenHomeopathie, meeneemNorm, regiocode', 'createdAt', 'asc');
|
||||
|
||||
$sln_i = 0;
|
||||
$sln_n = array\length($sln_rows);
|
||||
$sln_hash = hash\new();
|
||||
$sln_hash_id = hash\new();
|
||||
|
||||
while($sln_i < $sln_n,
|
||||
$sln_row = array\at($sln_rows, $sln_i);
|
||||
|
||||
$jaar = hash\get($sln_row, 'jaar');
|
||||
$id = hash\get($sln_row, 'id');
|
||||
$regiocode = hash\get($sln_row, 'regiocode');
|
||||
$jaar = $jaar + 0;
|
||||
|
||||
$key = $jaar;
|
||||
ifThen($regiocode != '-',
|
||||
$key = string\concatenate($jaar, '-', $regiocode);
|
||||
);
|
||||
|
||||
$sln_hash = hash\set($sln_hash, $key, $sln_row);
|
||||
$sln_hash_id = hash\set($sln_hash_id, $id, $sln_row);
|
||||
|
||||
$sln_i = $sln_i + 1;
|
||||
);
|
||||
|
||||
global\set('nascholingsnorm-hash', $sln_hash);
|
||||
global\set('nascholingsnorm-hash-by-id', $sln_hash_id);
|
||||
|
||||
logAdd(log, '#nascholingsnormen gelezen: ', $sln_n);
|
||||
@@ -0,0 +1 @@
|
||||
script-lees-nascholingsnorm-hash
|
||||
@@ -0,0 +1 @@
|
||||
Triggert een hercalculatie van de nascholingstotalen voor een Lid ($contact_id).
|
||||
@@ -0,0 +1 @@
|
||||
5efae9e4a72b632bb
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
|
||||
$na_recalc_e = entity\get('Contact', $contact_id);
|
||||
setAttr($na_recalc_e, 'nascholingstotalenHerberekenen', true);
|
||||
entity\save($na_recalc_e);
|
||||
@@ -0,0 +1 @@
|
||||
script-nascholing-recalc-for-contact
|
||||
@@ -0,0 +1 @@
|
||||
Voor een gegeven $contact_id en $year maakt dit script indien nodig nieuwe nascholingstotalen jaren aan.
|
||||
@@ -0,0 +1 @@
|
||||
5ef66f724567d9188
|
||||
@@ -0,0 +1,44 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialiseren
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_reg_dt = record\attribute('Contact', $contact_id, 'datumRegistratie');
|
||||
$na_reg_jr = datetime\year($na_reg_dt);
|
||||
|
||||
ifThen(!global\isset('nascholingsnorm-hash'),
|
||||
$na_script = configGet('script-lees-nascholingsnorm-hash');
|
||||
Exec($na_script);
|
||||
);
|
||||
$na_norm = global\get('nascholingsnorm-hash');
|
||||
|
||||
$na_adm_my_user_id = env\userAttribute('id');
|
||||
Log('error', 'contact: ', $contact_id, ', jaar: ', $year);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Maak indien nodig een nascholingsjaar aan
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_adm_c = entity\Get('Contact', $contact_id);
|
||||
$na_adm_reg_dt = attr($na_adm_c, 'datumRegistratie');
|
||||
$na_adm_reg_dt_year = datetime\year($na_adm_reg_dt);
|
||||
|
||||
ifThen($year >= $na_adm_reg_dt_year,
|
||||
$na_adm_e = record\exists('Nascholingstotaal', 'jaar=', $year, 'contactId=', $contact_id);
|
||||
ifThen(!$na_adm_e,
|
||||
ifThenElse(hash\isSet($na_norm, $year),
|
||||
$na_norm_id = hash\get(hash\get($na_norm, $year), 'id');
|
||||
,
|
||||
log('error', 'Geen Norm getal voor jaar ', $year);
|
||||
);
|
||||
|
||||
ifThen($na_norm_id,
|
||||
Log('error', 'creëren nascholingstotaal record...');
|
||||
record\create('Nascholingstotaal', 'jaar',
|
||||
$year, 'contactId', $contact_id,
|
||||
'assignedUserId', $na_adm_my_user_id,
|
||||
'handmatig', false,
|
||||
'nascholingsnormId', $na_norm_id
|
||||
);
|
||||
);
|
||||
);
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
script-nascholings-totaal-jaar-admin
|
||||
@@ -0,0 +1,10 @@
|
||||
Koppelt de praktijken van het contact behorende bij een user id aan de portal user.
|
||||
|
||||
Input:
|
||||
|
||||
$user_id - het id van de portal gebruiker
|
||||
$contact_id - het id van het bijbehorende contact
|
||||
|
||||
postconditie:
|
||||
|
||||
relaties met de accounts gelegd.
|
||||
@@ -0,0 +1 @@
|
||||
6036231fbdadf8ff6
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
$pk_related_accounts = Hash\New();
|
||||
|
||||
$pk_related_to_portal_user = record\fetchRelatedManyHash('User', $user_id, 'accounts', 'id', 'id', 'asc');
|
||||
$pk_m = array\length($pk_related_to_portal_user);
|
||||
$pk_j = 0;
|
||||
while($pk_j < $pk_m,
|
||||
$pk_row = array\at($pk_related_to_portal_user, $pk_j);
|
||||
$pk_account_id = hash\get($pk_row, 'id');
|
||||
$pk_related_accounts = Hash\Set($pk_related_accounts, $pk_account_id, 'del');
|
||||
$pk_j = $pk_j + 1;
|
||||
);
|
||||
|
||||
$pk_related_to_contact = record\fetchRelatedManyHash('Contact', $contact_id, 'accounts', 'id', 'id', 'asc');
|
||||
$pk_m = array\length($pk_related_to_contact);
|
||||
$pk_j = 0;
|
||||
while($pk_j < $pk_m,
|
||||
$pk_row = array\at($pk_related_to_contact, $pk_j);
|
||||
$pk_account_id = hash\get($pk_row, 'id');
|
||||
ifThenElse(Hash\IsSet($pk_related_accounts, $pk_account_id),
|
||||
$pk_related_accounts = Hash\Set($pk_related_accounts, $pk_account_id, 'exist');
|
||||
,
|
||||
$pk_related_accounts = Hash\Set($pk_related_accounts, $pk_account_id, 'new');
|
||||
);
|
||||
$pk_j = $pk_j + 1;
|
||||
);
|
||||
|
||||
$pk_keys = Hash\Keys($pk_related_accounts);
|
||||
$pk_m = array\length($pk_keys);
|
||||
$pk_j = 0;
|
||||
while($pk_j < $pk_m,
|
||||
$pk_key = array\at($pk_keys, $pk_j);
|
||||
$pk_val = Hash\Get($pk_related_accounts, $pk_key);
|
||||
logAdd(log, 'info', $i, ': ', $pk_key, '=', Hash\Get($pk_related_accounts, $pk_key));
|
||||
ifThenElse($pk_val == 'del',
|
||||
record\unrelate('User', $user_id, 'accounts', $pk_key);
|
||||
logAdd(log, 'info', 'Unrelated ', $pk_key, ' from ', $username);
|
||||
,
|
||||
ifThen($pk_val == 'new',
|
||||
record\relate('User', $user_id, 'accounts', $pk_key);
|
||||
logAdd(log, 'info', 'related ', $pk_key, ' to ', $username);
|
||||
);
|
||||
);
|
||||
$pk_j = $pk_j + 1;
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
script-praktijken-koppelen-aan-portal-user
|
||||
@@ -0,0 +1,2 @@
|
||||
in: $param_name ==> Initials (firstName) lastName or Initials () lastName or Initials lastName
|
||||
out: $val_fn_ln ==> firstName lastName
|
||||
@@ -0,0 +1 @@
|
||||
61c22448a0d48492c
|
||||
@@ -0,0 +1,13 @@
|
||||
$sfnln_fn = string\match($param_name, '/[(][^)]*[)]/');
|
||||
ifThenElse($fn == '()',
|
||||
$val_fn_ln = string\replace($param_name, ' ()', '');
|
||||
,
|
||||
$sfnln_ln = string\match($param_name, '/[^)]*[)][ ]*/');
|
||||
ifThenElse($sfnln_ln != '',
|
||||
$sfnln_ln = string\substring($param_name, string\length($sfnln_ln));
|
||||
$sfnln_fn = string\substring($sfnln_fn, 1, string\length($sfnln_fn) - 2);
|
||||
$val_fn_ln = string\concatenate($sfnln_fn, ' ', $sfnln_ln);
|
||||
,
|
||||
$val_fn_ln = $param_name;
|
||||
)
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
script-to-firstname-lastname
|
||||
@@ -0,0 +1,5 @@
|
||||
Stuurt als de juiste parameters zijn gegeven het visitatie formulier naar het gegeven lid.
|
||||
|
||||
* $date_par_visitatie_datum='2021-12-02';
|
||||
* $par_praktijk_type='P1';
|
||||
* $par_lid_id='';
|
||||
@@ -0,0 +1 @@
|
||||
61b677bf9657457f9
|
||||
@@ -0,0 +1,167 @@
|
||||
// last execution: Mon Jun 07 2021 11:33:11 GMT+0200 (Midden-Europese zomertijd)
|
||||
|
||||
$par_uitvoeren=true;
|
||||
$par_test_run_geen_mail_versturen=false;
|
||||
|
||||
//$date_par_visitatie_datum='2021-12-02';
|
||||
//$par_visitatienummer='';
|
||||
//$par_praktijk_type=list('P1', 'P2', 'P3');
|
||||
//$par_lid_id='';
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// init
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$visitatie_datum = $par_visitatie_datum;
|
||||
$nvkh_afzender = configGet('nvkh-afzender');
|
||||
|
||||
$visitatie_certificaat_id = configGet('visitatie-certificaat');
|
||||
|
||||
$lid_id=$par_lid_id;
|
||||
$lid = entity\get('Contact', $lid_id);
|
||||
$emailadres = attr($lid, 'emailAddress');
|
||||
|
||||
$secretariaat_email = configGet('secretariaat-email-address');
|
||||
|
||||
$geldig_jaren = configGet('visitatie-geldigheid-in-jaren');
|
||||
|
||||
$praktijk_type = $par_praktijk_type;
|
||||
$testrun = $par_test_run_geen_mail_versturen;
|
||||
|
||||
html = '';
|
||||
|
||||
log('warning', 'visitatie datum:', $visitatie_datum);
|
||||
log('warning', 'emailadres:', $emailadres);
|
||||
log('warning', 'nvkh afzender:', $nvkh_afzender);
|
||||
log('warning', 'visitatie-certificaat-id:', $visitatie_certificaat_id);
|
||||
log('warning', 'praktijk soort:', $praktijk_type);
|
||||
|
||||
html = '';
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Visitatie formulier invullen en opsturen
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ifThenElse($par_uitvoeren,
|
||||
|
||||
$dt = datetime\now();
|
||||
$dt = datetime\format($dt, 'Europe/Amsterdam', 'YYYY-MM-DD');
|
||||
|
||||
$formulier = 'visitatie-certificaat';
|
||||
$formulier_id = $visitatie_certificaat_id;
|
||||
|
||||
log('warning', 'visitatie certificaat input document : ', $formulier, ' - id : ', $formulier_id);
|
||||
|
||||
$leden = list($lid);
|
||||
|
||||
$i = 0;
|
||||
$n = array\length($leden);
|
||||
log('warning', 'gerelateerde leden: ', $n);
|
||||
|
||||
while($i < $n,
|
||||
$lid = array\at($leden, $i);
|
||||
$lid_nr = attr($lid, 'lidnummer');
|
||||
$lid_id = attr($lid, 'id');
|
||||
$achternaam = attr($lid, 'lastName');
|
||||
$voorzetsel = string\trim(attr($lid, 'middleName'));
|
||||
ifThen($voorzetsel != "",
|
||||
$achternaam = string\concatenate($voorzetsel, '-', $achternaam);
|
||||
);
|
||||
|
||||
$achternaam = string\trim($achternaam);
|
||||
$achternaam = string\replace($achternaam, ' ', '-');
|
||||
|
||||
$form_out = string\concatenate('visitatie-certificaat-', $achternaam, '.pdf');
|
||||
log('warning', 'visitatie certificaat output: ', $form_out);
|
||||
|
||||
log('warning', 'lid id: ', $lid_id, ' naam: ', attr($lid, 'name'), ', lidnummer:', $lid_nr);
|
||||
|
||||
$scr_toFnLn = configGet('script-to-firstname-lastname');
|
||||
$param_name = attr($lid, 'name');
|
||||
exec($scr_toFnLn);
|
||||
$lid_naam = $val_fn_ln;
|
||||
|
||||
$lid_naam = string\concatenate('van ', $lid_naam, ' op');
|
||||
|
||||
$email = attr($lid, 'emailAddress');
|
||||
|
||||
$primary_account_id = record\findRelatedOne('Contact', $lid_id, 'accounts', 'name', 'asc', 'type=', $praktijk_type);
|
||||
log('warning', 'praktijk[', $praktijk_type, ']: ', $primary_account_id);
|
||||
|
||||
ifThenElse(!$primary_account_id,
|
||||
$msg = string\concatenate(attr($lid, 'name'), ' (', $lid_nr, ') voert geen praktijk van soort ', $praktijk_type);
|
||||
log('warning', $msg);
|
||||
strAdd(html, '<p style="color:red">', $msg, '</p>');
|
||||
,
|
||||
$pr = entity\get('Account', $primary_account_id);
|
||||
|
||||
log('warning', 'praktijk: ', attr($pr, 'naam'));
|
||||
$praktijknaam = attr($pr, 'naam');
|
||||
|
||||
$street = attr($pr, 'shippingAddressStreet');
|
||||
$city = attr($pr, 'shippingAddressCity');
|
||||
$praktijkadres = string\concatenate($street, ' te ', $city);
|
||||
|
||||
log('warning', 'lid_id:', $lid_id, ', praktijk:', $praktijknaam,
|
||||
', visitatiedatum:', $visitatiedatum, ', van:', $lid_naam,
|
||||
', adres:', $praktijkadres, ', geldig_tot:', $geldig_tot);
|
||||
|
||||
$visitatiedatum = '';
|
||||
ifThen($visitatie_datum,
|
||||
$visitatiedatum = datetime\format($visitatie_datum, 'Europe/Amsterdam', 'DD-MM-YYYY');
|
||||
);
|
||||
|
||||
$geldig_tot = datetime\addYears($visitatie_datum, $geldig_jaren);
|
||||
$gdt = datetime\format($geldig_tot, 'Europe/Amsterdam', 'D MMM YYYY');
|
||||
$geldig_tot = string\concatenate('Dit certificaat is geldig tot ', $gdt);
|
||||
|
||||
$attach_id = ext\pdf\fillin('Contact', $lid_id,
|
||||
$formulier_id, $form_out,
|
||||
'praktijk', $praktijknaam,
|
||||
'visitatiedatum', $visitatiedatum,
|
||||
'van', $lid_naam,
|
||||
'adres', $praktijkadres,
|
||||
'geldig_tot', $geldig_tot
|
||||
);
|
||||
log('warning', 'attachment id :', $attach_id);
|
||||
|
||||
$body = configGet('visitatie-certificaat-email');;
|
||||
|
||||
$visitatie_dt = datetime\format($visitatie_datum, 'Europe/Amsterdam', 'DD/MM/YYYY');
|
||||
$body = string\replace($body, '{{visitatie-datum}}', $visitatie_dt);
|
||||
$body = string\replace($body, '{{nvkh-afzender}}', $nvkh_afzender);
|
||||
$body = string\replace($body, '{{lid-naam}}', attr($lid, 'name'));
|
||||
$body = ext\htmlize($body, 'Contact', attr($lid, 'id'));
|
||||
|
||||
$subject = 'Visitatie Certificaat voor visitatie d.d. {{datum}}';
|
||||
$subject = string\replace($subject, '{{datum}}', $visitatie_dt);
|
||||
|
||||
$userId = env\userAttribute('id');
|
||||
|
||||
//$emailadres="sysadm@nvkh.nl";
|
||||
|
||||
ifThenElse($testrun,
|
||||
log('warning', 'Dit is een testrun, er wordt geen email verstuurd');
|
||||
,
|
||||
$emailId = record\create('Email',
|
||||
'subject', $subject,
|
||||
'body', $body,
|
||||
'to', $emailadres,
|
||||
'attachmentsIds', list($attach_id),
|
||||
'assignedUser', $userId,
|
||||
'isUser', true,
|
||||
'parentType', 'Contact',
|
||||
'parentId', $lid_id
|
||||
);
|
||||
ext\email\send($emailId);
|
||||
);
|
||||
|
||||
);
|
||||
|
||||
$i = $i + 1;
|
||||
);
|
||||
|
||||
,
|
||||
log('warning', 'Vink uitvoeren aan om dit script uit te voeren');
|
||||
);
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
script-visitatie-stuur-certificaat
|
||||
@@ -0,0 +1,8 @@
|
||||
Stuurt als de juiste parameters zijn gegeven het visitatie formulier naar het gegeven lid.
|
||||
|
||||
* $date_par_visitatie_datum='2021-12-02 12:15:00';
|
||||
* $par_visitatie_nummer='';
|
||||
* $par_praktijk_type='P1';
|
||||
* $par_lid_id='';
|
||||
* $par_visiteur_id='';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
61ae898da96139566
|
||||
@@ -0,0 +1,220 @@
|
||||
// last execution: Mon Jun 07 2021 11:33:11 GMT+0200 (Midden-Europese zomertijd)
|
||||
|
||||
$par_uitvoeren=true;
|
||||
$par_test_run_geen_mail_versturen=false;
|
||||
|
||||
//$date_par_visitatie_datum='2021-12-02';
|
||||
//$par_visitatienummer='';
|
||||
//$par_praktijk_type=list('P1', 'P2', 'P3');
|
||||
//$par_lid_id='';
|
||||
//$par_visiteur_id='';
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// init
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$visitatienummer = $par_visitatie_nummer;
|
||||
$visitatie_datum = $par_visitatie_datum;
|
||||
$visiteur_id = $par_visiteur_id;
|
||||
$nvkh_afzender = configGet('nvkh-afzender');
|
||||
|
||||
$visiteur = entity\get('Contact', $visiteur_id);
|
||||
|
||||
$visitatie_formulier_id = configGet('visitatie-formulier');
|
||||
|
||||
$lid_id=$par_lid_id;
|
||||
$lid = entity\get('Contact', $lid_id);
|
||||
$emailadres = attr($lid, 'emailAddress');
|
||||
|
||||
$secretariaat_email = configGet('secretariaat-email-address');
|
||||
$retouradres = $secretariaat_email;
|
||||
|
||||
$visitatie_wacht_dagen = configGet('visitatie-dagen-voor-invullen-formulier');
|
||||
$two_weeks_before_visitatiedatum = datetime\addDays($visitatie_datum, -1 * $visitatie_wacht_dagen);
|
||||
$two_weeks_before_visitatiedatum = datetime\format(
|
||||
$two_weeks_before_visitatiedatum,
|
||||
'Europe/Amsterdam', 'DD/MM/YYYY');
|
||||
|
||||
$praktijk_type = $par_praktijk_type;
|
||||
$testrun = $par_test_run_geen_mail_versturen;
|
||||
|
||||
html = '';
|
||||
|
||||
$visiteur = entity\get('Contact', $visiteur_id);
|
||||
$visiteur_name = attr($visiteur, 'name');
|
||||
|
||||
log('warning', 'visiteur:', $visiteur_name);
|
||||
log('warning', 'visitatie datum:', $visitatie_datum);
|
||||
log('warning', 'two weeks notice:', $two_weeks_before_visitatiedatum);
|
||||
log('warning', 'visitatienummer: ', $visitatienummer);
|
||||
log('warning', 'retouradres:', $retouradres);
|
||||
log('warning', 'emailadres:', $emailadres);
|
||||
log('warning', 'nvkh afzender:', $nvkh_afzender);
|
||||
log('warning', 'visitatie-formulier-id:', $visitatie_formulier_id);
|
||||
log('warning', 'praktijk soort:', $praktijk_type);
|
||||
|
||||
html = '';
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Visitatie formulier invullen en opsturen
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ifThenElse($par_uitvoeren,
|
||||
|
||||
$versie = $par_visitatie_formulier_versie;
|
||||
|
||||
$dt = datetime\now();
|
||||
$dt = datetime\format($dt, 'Europe/Amsterdam', 'YYYY-MM-DD');
|
||||
|
||||
$formulier = 'visitatie-formulier';
|
||||
$formulier_id = $visitatie_formulier_id;
|
||||
|
||||
log('warning', 'visitatie vragenformulier input document : ', $formulier, ' - id : ', $formulier_id);
|
||||
|
||||
$leden = list($lid);
|
||||
|
||||
$i = 0;
|
||||
$n = array\length($leden);
|
||||
log('warning', 'gerelateerde leden: ', $n);
|
||||
|
||||
while($i < $n,
|
||||
$lid = array\at($leden, $i);
|
||||
$lid_nr = attr($lid, 'lidnummer');
|
||||
$lid_id = attr($lid, 'id');
|
||||
$achternaam = attr($lid, 'lastName');
|
||||
$voorzetsel = string\trim(attr($lid, 'middleName'));
|
||||
ifThen($voorzetsel != "",
|
||||
$achternaam = string\concatenate($voorzetsel, '-', $achternaam);
|
||||
);
|
||||
|
||||
$achternaam = string\trim($achternaam);
|
||||
$achternaam = string\replace($achternaam, ' ', '-');
|
||||
|
||||
$form_out = string\concatenate('visitatie-vragenlijst-', $achternaam, '.pdf');
|
||||
log('warning', 'visitatie vragenformulier avar document : ', $form_out);
|
||||
|
||||
log('warning', 'lid id: ', $lid_id, ' naam: ', attr($lid, 'name'), ', lidnummer:', $lid_nr);
|
||||
|
||||
$email = attr($lid, 'emailAddress');
|
||||
|
||||
$primary_account_id = record\findRelatedOne('Contact', $lid_id, 'accounts', 'name', 'asc', 'type=', $praktijk_type);
|
||||
log('warning', 'praktijk[', $praktijk_type, ']: ', $primary_account_id);
|
||||
|
||||
ifThenElse(!$primary_account_id,
|
||||
$msg = string\concatenate(attr($lid, 'name'), ' (', $lid_nr, ') voert geen praktijk van soort ', $praktijk_type);
|
||||
log('warning', $msg);
|
||||
strAdd(html, '<p style="color:red">', $msg, '</p>');
|
||||
,
|
||||
$pr = entity\get('Account', $primary_account_id);
|
||||
|
||||
log('warning', 'praktijk: ', attr($pr, 'naam'));
|
||||
|
||||
$mbkdatum = attr($lid, 'mBKDatum');
|
||||
ifThen($mbkdatum,
|
||||
$mbkdatum = datetime\format($mbkdatum, 'Europe/Amsterdam', 'DD-MM-YYYY');
|
||||
);
|
||||
|
||||
$vogdatum = attr($lid, 'datumVOG');
|
||||
ifThen($vogdatum,
|
||||
$vogdatum = datetime\format($vogdatum, 'Europe/Amsterdam', 'DD-MM-YYYY');
|
||||
);
|
||||
|
||||
$diplomadatum = attr($lid, 'vakopleidingDatumDiploma');
|
||||
ifThen($diplomadatum,
|
||||
$diplomadatum = datetime\format($diplomadatum, 'Europe/Amsterdam', 'DD-MM-YYYY');
|
||||
);
|
||||
|
||||
$visitatiedatum = '';
|
||||
ifThen($visitatie_datum,
|
||||
$visitatiedatum = datetime\format($visitatie_datum, 'Europe/Amsterdam', 'DD-MM-YYYY');
|
||||
);
|
||||
|
||||
$visitatietijdstip = '';
|
||||
ifThen($visitatie_datum,
|
||||
$visitatietijdstip = datetime\format($visitatie_datum, 'Europe/Amsterdam', 'HH:mm');
|
||||
);
|
||||
|
||||
$attach_id = ext\pdf\fillin('Contact', $lid_id, $formulier_id, $form_out,
|
||||
'naam_homeopaat', attr($lid, 'name'),
|
||||
'naam_gevisiteerde', attr($lid, 'name'),
|
||||
'AVAR_Visitatienummer', $visitatie_nummer,
|
||||
'ondertekening_naam_gevisiteerde', attr($lid, 'name'),
|
||||
'email_homeopaat', $email,
|
||||
'naam_praktijk', attr($pr, 'naam'),
|
||||
'agb_praktijk', attr($pr, 'agbcode'),
|
||||
'rbcz_nummer', attr($lid, 'rbcznummer'),
|
||||
'nvkh_nummer', attr($lid, 'lidnummer'),
|
||||
'adres_praktijk_straat', attr($pr, 'shippingAddressStreet'),
|
||||
'adres_praktijk_postcode', attr($pr, 'shippingAddressPostalCode'),
|
||||
'adres_praktijk_plaats', attr($pr, 'shippingAddressCity'),
|
||||
'agb_persoonlijk', attr($lid, 'agbcode'),
|
||||
'datum_mbk_of_big', $mbkdatum,
|
||||
'datum_vog', $vogdatum,
|
||||
'email_retouradres', $retouradres,
|
||||
'tel_prive', attr($lid, 'phoneNumber'),
|
||||
'tel_praktijk', attr($pr, 'phoneNumber'),
|
||||
'websites', attr($pr, 'website'),
|
||||
'datum_diploma_vakopleiding', $diplomadatum,
|
||||
'bijscholingsdagen_laatste_jaren', $bijscholing,
|
||||
'datum_nascholing_big', 'Nvt',
|
||||
'datum_visitatie', $visitatiedatum,
|
||||
'tijdstip_visitatie', $visitatietijdstip,
|
||||
'AVAR_Visitatienummer', $visitatienummer
|
||||
);
|
||||
log('warning', 'attachment id :', $attach_id);
|
||||
|
||||
$body = configGet('visitatie-informatie-email');
|
||||
|
||||
$scr_fnln = configGet('script-to-firstname-lastname');
|
||||
|
||||
$param_name = attr($lid, 'name');
|
||||
exec($scr_fnln);
|
||||
$lid_name = $val_fn_ln;
|
||||
|
||||
$param_name = $visiteur_name;
|
||||
exec($scr_fnln);
|
||||
$visiteur_name = $val_fn_ln;
|
||||
|
||||
$visitatie_dt = datetime\format($visitatie_datum, 'Europe/Amsterdam', 'DD/MM/YYYY');
|
||||
$body = string\replace($body, '{{visitatie-datum}}', $visitatie_dt);
|
||||
$body = string\replace($body, '{{visitatie-tijdstip}}', $visitatietijdstip);
|
||||
$body = string\replace($body, '{{visitatie-nummer}}', $visitatienummer);
|
||||
$body = string\replace($body, '{{nvkh-afzender}}', $nvkh_afzender);
|
||||
$body = string\replace($body, '{{visiteur}}', $visiteur_name);
|
||||
$body = string\replace($body, '{{wacht-dagen}}', string\concatenate('', $visitatie_wacht_dagen));
|
||||
$body = string\replace($body, '{{retourdatum}}', $two_weeks_before_visitatiedatum);
|
||||
$body = string\replace($body, '{{secretariaat-adres}}', $secretariaat_email);
|
||||
$body = string\replace($body, '{{lid-naam}}', $lid_name);
|
||||
$body = ext\htmlize($body, 'Contact', attr($lid, 'id'));
|
||||
|
||||
$userId = env\userAttribute('id');
|
||||
|
||||
$subject = 'Visitatieformulier voor visitatie d.d. {{datum}}';
|
||||
$subject = string\replace($subject, '{{datum}}', $visitatie_dt);
|
||||
|
||||
|
||||
ifThenElse($testrun,
|
||||
log('warning', 'Dit is een testrun, er wordt geen email verstuurd');
|
||||
,
|
||||
$emailId = record\create('Email',
|
||||
'subject', $subject,
|
||||
'body', $body,
|
||||
'to', $emailadres,
|
||||
'attachmentsIds', list($attach_id),
|
||||
'assignedUser', $userId,
|
||||
'isUser', true,
|
||||
'parentType', 'Contact',
|
||||
'parentId', $lid_id
|
||||
);
|
||||
ext\email\send($emailId);
|
||||
);
|
||||
|
||||
);
|
||||
|
||||
$i = $i + 1;
|
||||
);
|
||||
|
||||
,
|
||||
log('warning', 'Vink uitvoeren aan om dit script uit te voeren');
|
||||
);
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
script-visitatie-stuur-formulier
|
||||
Reference in New Issue
Block a user