scripts added

This commit is contained in:
2026-08-28 12:28:39 +02:00
parent 45e62fda5f
commit c30efbc8d9
237 changed files with 7310 additions and 1 deletions
@@ -0,0 +1 @@
Testscript voor EspoCRM Upgrades (voor systeembeheer)
+1
View File
@@ -0,0 +1 @@
66ed76ba5e58baf04
+464
View File
@@ -0,0 +1,464 @@
// last execution: Tue Oct 01 2024 15:18:51 GMT+0200 (Midden-Europese zomertijd)
$par_hooked_formula_test=true;
$par_test_pdf_and_mail=true;
$par_espocrm_version=list('8', '-', '6', '7');
$par_tabel_rijen_per_pagina=20;
$espocrm_ver = array\at($par_espocrm_version, 0);
$aantal_rijen_op_een_pagina = $par_tabel_rijen_per_pagina;
// Constanten
$h_col = "#b3ccff";
$hh_col = "#b3ffb3";
$t_col = "#ffff99";
$test_email = 'hans@dijkewijk.nl';
// Test script
log('warning', '00 Testscript Upgrade');
logAdd(log);
logAdd(log, $hh_col, '00 Testscript Upgrade');
ifThenElse($espocrm_ver == '-',
logAdd(log, 'info', 'Log cleared, run script with other version than "-"');
html = '';
logAdd(log, 'info', 'HTML Report cleared');
,
// Hooked formula tests
ifThen($par_hooked_formula_test,
logAdd(log, $hh_col, 'Testing Hooked Formulas');
// Record\FetchManyHash
logAdd(log, $h_col, 'Record\FetchManyHash');
$rows = record\FetchManyHash('Contact', 'id, lidnummer, name, regiocode, datumRegistratie', 'name', 'asc');
$n = array\length($rows);
logAdd(log, 'info', 'FetchManyHash: ', $n);
$rows = record\FetchManyHash('Contact', 'id, lidnummer, name', 'name', 'asc', 'lidnummer=', 1935);
$n = array\length($rows);
logAdd(log, 'info', 'FetchManyHash: ', $n);
$contact = array\at($rows, 0);
$contact_id = hash\get($contact, 'id');
logAdd(log, 'info', 'id = ', hash\get($contact, 'id'));
logAdd(log, 'info', 'contact name: ', hash\get($contact, 'name'), ' nummer: ', hash\get($contact, 'lidnummer'), ', id = ', $contact_id);
// Record\FindMany
logAdd(log, 'warning', 'Record\FindMany, While, Entity\Get, Attr');
$rows = record\FindMany('Contact', 'name', 'asc', 'lidnummer>=', 1930, 'lidnummer<=', 1940);
$n = array\length($rows);
logAdd(log, 'info', 'FetchManyHash: ', $n);
$i = 0;
while($i < $n,
$c = Entity\Get('Contact', array\at($rows, $i));
logAdd(log, 'info', '--contact: ', attr($c, 'name'), ', nummer: ', attr($c, 'lidnummer'));
$i = $i + 1;
);
// EntityGroup
logAdd(log, $h_col, 'EntityGroup');
// Entity Functions
logAdd(log, $t_col, 'Entity\GetMany, SetAttr');
$entities = Entity\GetMany('Contact', 10, 'lidnummer', 'asc', 'lidnummer=', 1935);
$c = array\at($entities, 0);
$id = attr($c, 'id');
logAdd(log, 'info', 'contact c: id = ', $id);
logAdd(log, $t_col, 'Entity\Get');
$c_orig = Entity\Get('Contact', $id);
logAdd(log, 'info', '$c_orig: ', attr($c_orig, 'lidnummer'));
logAdd(log, 'info', '--fetched entity:', attr($c, 'lidnummer'), ' opmerking: ', attr($c, 'description'));
$s = string\concatenate('opmerking nieuw: ', datetime\now());
setAttr($c, 'description', $s);
logAdd(log, $t_col, 'Entity\Save');
logAdd(log, 'info', '--updated entity:', attr($c, 'lidnummer'), ' opmerking: ', attr($c, 'description'));
entity\save($c);
logAdd(log, 'info', 'entity saved');
logAdd(log, $t_col, 'Entity\GetRelated');
$rel = Entity\GetRelated($c, 'dossierdocumenten', 1000, 'name', 'asc');
$i = 0;
while($i < array\length($rel),
$account = array\at($rel, $i);
logAdd(log, 'info', $i, ': ', attr($account, 'name'));
$i = $i + 1;
);
logAdd(log, $t_col, 'Entity\This');
$e = entity\this();
logAdd(log, 'info', '--Entity\This->name = ', attr($e, 'name'));
// Config
logAdd(log, $h_col, 'Config');
logAdd(log, 'Config functions - clearing cache');
ConfigClearCache();
logAdd(log, 'config_exists hoi: ', ConfigExists('hoi'));
logAdd(log, 'config_exists visitatie-geldigheid-in-jaren: ', ConfigExists('visitatie-geldigheid-in-jaren'));
ConfigInc('visitatie-geldigheid-in-jaren');
logAdd(log, 'config_get visitatie-geldigheid-in-jaren: ', ConfigGet('visitatie-geldigheid-in-jaren'));
ConfigSet('visitatie-geldigheid-in-jaren', 5);
logAdd(log, 'config_get visitatie-geldigheid-in-jaren: ', ConfigGet('visitatie-geldigheid-in-jaren'));
// StrAdd
logAdd(log, $h_col, 'StrAdd functions');
$str = "Hoi";
logAdd(log, $str);
strAdd($str, ' Hans');
logAdd(log, 'warning', $str);
// exec
logAdd(log, $h_col, 'Exec functions');
$script = '$i = $i +1;logAdd(log, "increasing value to ", $i)';
$i = 0;
Exec($script);
Exec($script);
// Conversion
logAdd(log, $h_col, 'Conversion');
$a = '20';
logAdd(log, '(int) $a = ', toInt($a));
logAdd(log, '(double) $a = ', toDouble($a));
$b = toDouble($a);
$b = $b + 0.1;
logAdd(log, '(string) $b = ', toString($b));
// To Json file
logAdd(log, $h_col, 'ToJsonFile');
logAdd(log, 'toJsonFile: ', toJsonFile('000_upgrade_test.json', $c));
// Diff
logAdd(log, 'warning', 'Diff');
logAdd(log, 'diff: ', Diff($c_orig, $c));
// ArrayGroup
logAdd(log, $h_col, 'ArrayGroup');
logAdd(log, $t_col, 'Array\Set');
$a = list(10, 20, 30);
logAdd(log, 'info', '$a[1] = ', array\at($a, 1));
$a1 = array\at($a, 1) * 2.3;
logAdd(log, 'info', '$a1 = ', $a1);
$a = array\set($a, 1, $a1);
logAdd(log, 'info', '$a[1] = ', array\at($a, 1));
// ExtGroup
logAdd(log, $h_col, 'ExtGroup');
logAdd(log, $t_col, 'Ext\Htmlize');
$body = '<html><head></head><body>Beste {{name}},<br><br>Dit is een test voor {{today}}.</body></html>';
logAdd(log, 'info', $body);
$body = ext\htmlize($body, 'Contact', attr($c, 'id'));
logAdd(log, 'info', $body);
logAdd(log, $t_col, 'Ext\Begin, Ext\Commit');
Ext\Begin();
Entity\Save($c);
Entity\Save($c);
Ext\Commit();
logAdd(log, $t_col, 'Ext\CopyFile');
$icons = Entity\GetMany('StandaardIcon', 1, 'name', 'asc');
$icon_doc = array\at($icons, 0);
$file_id = attr($icon_doc, 'iconId');
logAdd(log, 'info', 'Standaard Icon = ', attr($icon_doc, 'name '), ', File Id = ', $file_id);
$file_id_copy = Ext\CopyFile($file_id, Entity\This());
logAdd(log, 'info', 'Copied Attachement = ', $file_id_copy);
logAdd(log, 'info', 'Deleting created attachement');
//Record\Delete('Attachment', $file_id_copy); // Vanaf EspoCRM 7.4
ifThen($par_test_pdf_and_mail,
// ExtGroup\PdfGroup
logAdd(log, $h_col, 'Ext\PdfGroup');
logAdd(log, $t_col, 'Ext\Pdf\PdfFillIn');
log('warning', 'Ext\Pdf\PdfFillIn');
$visitatie_formulier_id = configGet('visitatie-formulier');
$formulier_id = $visitatie_formulier_id;
$lid = $c;
log('warning', 'Lid: ', attr($lid, 'lidnummer'));
$praktijken = Entity\GetRelated($c, 'accounts', 1, 'name', 'asc');
log('warning', 'praktijken: ', array\length($praktijken));
$pr = array\at($praktijken, 0);
$lid_id = attr($c, 'contact_id');
$lid_nr = attr($c, 'lidnummer');
$lid_name = attr($c, 'name');
logAdd(log, 'warning', '$lid_name = ', $lid_name);
log('warning', '$lid_name = ', $lid_name);
$form_out = string\concatenate('visitatie-vragenlijst-', $lid_nr, '.pdf');
$visitatiedatum = '27-08-2024';
$two_weeks_before_visitatiedatum = '01-08-2024';
$visitatietijdstip = '12:03';
$visitatienummer = '12345';
$visiteurname = 'Liesbeth Kruyswijk';
$nvkh_afzender = 'sysadm@nvkh.nl';
$visitatie_wacht_dagen = 10;
logAdd(log, 'info', 'visitatie vragenformulier avar document : ', $form_out);
$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
);
logAdd(log, 'info', 'attachment id :', $attach_id);
$body = configGet('visitatie-informatie-email');
$scr_fnln = configGet('script-to-firstname-lastname');
$param_name = $lid_name;
logAdd(log, 'info', 'lid: ', $param_name);
exec($scr_fnln);
$lid_name = $val_fn_ln;
logAdd(log, 'info', 'lid_name: ', $lid_name);
$param_name = $visiteur_name;
exec($scr_fnln);
$visiteur_name = $val_fn_ln;
$emailadres = $test_email;
$secretariaat_email = 'secretariaat@nvkh.nl';
$visitatie_dt = datetime\format(datetime\now(), 'Europe/Amsterdam', 'DD/MM/YYYY');
logAdd(log, 'repl1');log('warning', 'repl1');
$body = string\replace($body, '{{visitatie-datum}}', $visitatie_dt);
logAdd(log, 'repl2');log('warning', 'repl2');
$body = string\replace($body, '{{visitatie-tijdstip}}', $visitatietijdstip);
logAdd(log, 'repl3');log('warning', 'repl3');
$body = string\replace($body, '{{visitatie-nummer}}', $visitatienummer);
logAdd(log, 'repl4');log('warning', 'repl4');
$body = string\replace($body, '{{nvkh-afzender}}', $nvkh_afzender);
logAdd(log, 'repl5');log('warning', 'repl5');
$body = string\replace($body, '{{visiteur}}', $visiteur_name);
logAdd(log, 'repl6');log('warning', 'repl6');
$body = string\replace($body, '{{wacht-dagen}}', string\concatenate('', $visitatie_wacht_dagen));
logAdd(log, 'repl7');log('warning', 'repl7');
$body = string\replace($body, '{{retourdatum}}', $two_weeks_before_visitatiedatum);
logAdd(log, 'repl8');log('warning', 'repl8');
$body = string\replace($body, '{{secretariaat-adres}}', $secretariaat_email);
logAdd(log, 'repl9');log('warning', 'repl9');
$body = string\replace($body, '{{lid-naam}}', $lid_name);
logAdd(log, 'replA');log('warning', 'replA');
$body = ext\htmlize($body, 'Contact', attr($lid, 'id'));
$userId = env\userAttribute('id');
$subject = 'Upgrade Test PdfFillIn {{datum}}';
$subject = string\replace($subject, '{{datum}}', $visitatiedatum);
$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);
);
// GlobalGroup
$key = 'upgrade-test-script-global-key';
logAdd(log, 'info', 'ConfigGet for key "', $key, '"');
$cg = ConfigGet($key);
ifThenElse($cg != 0,
Global\Set($key, $cg),
Global\UnSet($key)
);
logAdd(log, $h_col, 'GlobalGroup');
logAdd(log, $t_col, 'Global\IsSet');
$is = Global\IsSet($key);
ifThenElse($is, $is = 'yes', $is = 'no');
logAdd(log, 'info', $key, ' iset = ', $is);
ifThenElse($is == 'yes',
logAdd(log, $t_col, 'Global\Get');
$v = Global\Get($key);
$v = $v + 1;
logAdd(log, $t_col, 'Global\Set');
Global\Set($key, $v);
,
logAdd(log, 'info', 'initializing ', $key, ' to 1');
$v = 1;
logAdd(log, $t_col, 'Global\Set');
Global\Set($key, $v);
);
logAdd(log, 'info', 'Key value: ', $key, ' = ', Global\Get($key));
ifThen($v > 3,
logAdd(log, 'info', 'clearing ', $key);
logAdd(log, $t_col, 'Global\UnSet');
Global\UnSet($key);
);
ifThenElse(Global\IsSet($key),
logAdd(log, 'info', $key, ' is still set');
ConfigSet($key, $v);
logAdd(log, 'warning', 'Run this test another time!');
,
logAdd(log, 'info', $key, ' is not set anymore');
ConfigSet($key, 0);
logAdd(log, 'info', 'This test is now completed.');
);
// HashGroup
logAdd(log, $h_col, 'HashGroup');
logAdd(log, $t_col, 'Hash\New');
$hash_1 = Hash\New();
logAdd(log, $t_col, 'Hash\Set');
$hash_1 = Hash\Set($hash_1, 'key', 122213);
logAdd(log, $t_col, 'Hash\Get');
$v = Hash\Get($hash_1, 'key');
logAdd(log, 'info', 'Value for "key" = ', $v);
$hash_1 = Hash\Set($hash_1, 'key2', 'HIHI');
log('warning', 'getting keys');
$keys = Hash\Keys($hash_1);
logAdd(log, $t_col, 'Hash\Keys');
$i = 0;
$n = array\length($keys);
logAdd(log, 'info', 'Number of keys: ', $n);
log('warning', 'Number of Keys: ', $n);
while($i < array\length($keys),
$key_i = array\at($keys, $i);
logAdd(log, 'info', 'key ', $i, ' = \"', $key_i, '\", value = ', hash\get($hash_1, $key_i));
$i = $i + 1;
);
logAdd(log, $t_col, 'Hash\IsSet');
logAdd(log, 'info', 'hash\isset key2: ', Hash\IsSet($hash_1, 'key2'));
ifThen($espocrm_ver != '6',
logAdd(log, $t_col, 'Hash\Copy');
$hash_2 = Hash\Copy($hash_1);
);
logAdd(log, $t_col, 'Hash\UnSet');
$hash_1 = Hash\UnSet($hash_1, 'key2');
logAdd(log, 'info', 'hash\isset($hash_1, "key2"): ', Hash\IsSet($hash_1, 'key2'));
ifThen($espocrm_ver != '6',
logAdd(log, 'info', 'hash\isset($hash_2, "key2"): ', Hash\IsSet($hash_2, 'key2'));
);
// RecordGroup
logAdd(log, $h_col, 'RecordGroup');
logAdd(log, 'info', 'Using Contact Id ', $contact_id);
logAdd(log, $t_col, 'Record\CountRel');
$count = Record\CountRel('Contact', $contact_id, 'accounts');
logAdd(log, 'info', 'Record\CountRel = ', $count);
logAdd(log, $t_col, 'Record\FetchManyHash - ALREADY TESTED');
logAdd(log, $t_col, 'Record\FindMany - ALREADY TESTED');
logAdd(log, $t_col, 'Record\Create - ALREADY TESTED');
logAdd(log, $t_col, 'Record\FetchMany');
$rows = Record\FetchMany('Contact', 'id, lidnummer', 'lidnummer', 'desc', 'lidnummer>', 1934, 'lidnummer<', 1939);
logAdd(log, 'info', 'Fetched ', array\length($rows), ' rows');
$i = 0;
while($i < array\length($rows),
$row = array\at($rows, $i);
logAdd(log, 'info', $i, ' - id = ', array\at($row, 0), ', lidnummer = ', array\at($row, 1));
$i = $i + 1;
);
logAdd(log, $t_col, 'Record\FetchRelatedMany');
$rows = Record\FetchRelatedMany('Contact', $contact_id, 'nascholingstotalen', 'id, jaar', 'jaar', 'desc', 'jaar>=', 2022);
logAdd(log, 'info', 'Fetched ', array\length($rows), ' rows');
$i = 0;
while($i < array\length($rows),
$row = array\at($rows, $i);
logAdd(log, 'info', $i, ' - id = ', array\at($row, 0), ', jaar = ', array\at($row, 1));
$i = $i + 1;
);
logAdd(log, $t_col, 'Record\FetchRelatedManyHash');
$rows = Record\FetchRelatedManyHash('Contact', $contact_id, 'nascholingstotalen', 'id, jaar', 'jaar', 'desc', 'jaar>=', 2022);
logAdd(log, 'info', 'Fetched ', array\length($rows), ' rows');
$i = 0;
while($i < array\length($rows),
$row = array\at($rows, $i);
logAdd(log, 'info', $i, ' - id = ', hash\get($row, 'id'), ', jaar = ', hash\get($row, 'jaar'));
$i = $i + 1;
);
logAdd(log, $t_col, 'Record\Recalculate');
Record\Recalculate('Contact', 'id=', $contact_id);
logAdd(log, 'warning', 'Check the EspoCRM Logs for this one');
logAdd(log, $h_col, 'StringGroup');
logAdd(log, $t_col, 'String\Tobase64');
$b64 = String\Tobase64($contact_id);
logAdd(log, 'info', 'id = ', $contact_id, ', - b64: ', $b64);
logAdd(log, $h_col, 'TableGroup');
html = '';
$p_page_len = $aantal_rijen_op_een_pagina;
$h = '';
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Naam', 75,
'Lidnummer', 5, 'right',
'registratiejaar', 20, 'center'
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, 'upgrade_test_tabel');
$rows = record\FetchManyHash('Contact', 'id, lidnummer, name, datumRegistratie, lastName', 'lastName', 'desc', 'lidnummer>', 1934, 'lidnummer<', 1980);
$n = array\length($rows);
$i = 0;
while($i < $n,
$row = array\at($rows, $i);
$contact_id = hash\get($row, 'id');
$name = hash\get($row, 'name');
$reg_dat = hash\get($row, 'datumRegistratie');
$reg_jaar = datetime\year($reg_dat);
$lidnummer = hash\get($row, 'lidnummer');
logAdd(log, 'info', $i, ' - id = ', $contact_id, ', name = ', $name, ', reg_jaar = ', $reg_jaar, ', lidnummer = ', $lidnummer);
table\add($table,
table\link(string\concatenate('/#Contact/view/', $contact_id), $name),
string\concatenate(' ', $lidnummer),
toString($reg_jaar)
);
$i = $i + 1;
);
$table_html = table\toHtml($table);
strAdd($h, $table_html);
strAdd($h, '</div>');
html = string\concatenate('<h1>Upgrade Testscript Report</h1>', $h);
logAdd(log, $t_col, 'Table\New, Table\Add, Table\RowsPerPage, Table\Filename, Table\toHtml, Table\Link');
logAdd(log, 'info', 'Testresult: see Report');
logAdd(log, 'warning', 'Table\Style is not tested');
);
);
@@ -0,0 +1 @@
000 Upgrade Test
+1
View File
@@ -0,0 +1 @@
#<sql-null>
+1
View File
@@ -0,0 +1 @@
66ed7ad21b4740be1
+5
View File
@@ -0,0 +1,5 @@
// last execution: 2026-08-28 10:28:02
$cfg = ConfigGet('job-test');
log('warning', 'JobTest: Current value for config job-test:', $cfg);
$cfg = datetime\now();
ConfigSet('job-test', $cfg);
+1
View File
@@ -0,0 +1 @@
000 job test
@@ -0,0 +1 @@
Berekent alle nascholingstotalen opnieuw, voor alle jaren. Dat zijn er dan erg veel.
@@ -0,0 +1 @@
5fa55e9426ec82119
@@ -0,0 +1,76 @@
// last execution: 2026-08-28 03:30:01
$script_alle_totalen = configGet('script-bereken-nascholingstotalen');
$script_calc_totaal_voor_jaar = configGet('script-bereken-nascholingstotaal-voor-jaar');
log('warning', 'Fetching Maximum nascholingstotaal');
$rows= Record\FetchManyHash('Nascholingstotaal', 'jaar', 'jaar', 'desc', 'limit by', 1);
$n_rows = array\length($rows);
log('warning', 'n_rows=', $n_rows);
logAdd(log);
logAdd(log, 'info', 'n_rows = ', $n_rows);
ifThenElse($n_rows == 0,
logAdd(log, 'info', '0 nascholingstotalen');
,
logAdd(log, 'info', $n_rows, ' nascholingstotalen');
$row = array\at($rows, 0);
$max_jaar = hash\get($row, 'jaar');
logAdd(log, 'info', 'Maximum jaar met nascholingstotalen = ', $max_jaar);
logAdd(log, 'info', 'Herberekenen van alle nascholingstotalen.');
//global\set('nascholingstotalen-niet-herberekenen', true);
//record\recalculate('Nascholingstotaal');
//global\unset('nascholingstotalen-niet-herberekenen');
logAdd(log, 'info', 'Voor alle contacten met regiocode < 30, nascholingstotaal herberekenen en dan ook totaliseren');
$rows = Record\FetchManyHash('Contact', 'id, lidnummer, lastName, regiocode',
'lastName', 'asc');
$n_rows = array\length($rows);
$i = 0;
log('warning', 'i=', $i, ', n_rows=', $n_rows);
while($i < $n_rows,
$row = array\at($rows, $i);
$contact_id = hash\get($row, 'id');
$regiocode = 0 + hash\get($row, 'regiocode');
ifThen($regiocode < 30,
$lidnummer = hash\get($row, 'lidnummer');
$lastname = hash\get($row, 'lastName');
logAdd(log, 'info', 'regiocode: ', $regiocode, ', lid: ', $lidnummer, ' - ', $lastname, ' - herberekenen...');
log('warning', 'Herberekenen alle totalen voor lid ', $lidnummer, ', id = ', $contact_id);
$tot_rows = Record\FetchManyHash('Nascholingstotaal', 'id, jaar',
'jaar', 'asc', 'contactId=', $contact_id);
$n_tot_rows = array\length($tot_rows);
ifThenElse($n_tot_rows == 0,
logAdd(log, 'info', 'Geen nascholingstotalen voor dit lid');
,
$t_row = 0;
while($t_row < $n_tot_rows,
$tot_row = array\at($tot_rows, $t_row);
$jaar = hash\get($tot_row, 'jaar');
$t_id = hash\get($tot_row, 'id');
logAdd(log, 'info', 'Berekenen jaar voor lid ', $lidnummer, ', jaar:', $jaar);
$no_db_update == false;
$year = $jaar;
Exec($script_calc_totaal_voor_jaar);
$t_row = $t_row + 1;
);
// bereken de hele zaak
$year = $jaar;
Exec($script_alle_totalen);
);
);
$i = $i + 1;
);
);
@@ -0,0 +1 @@
Alle nascholingstotalen herberekenen
@@ -0,0 +1 @@
Berekent de nascholingstotalen voor één lid
@@ -0,0 +1 @@
620ae9091bdb2322c
@@ -0,0 +1,44 @@
// last execution: Fri Aug 28 2026 11:05:10 GMT+0200 (Midden-Europese zomertijd)
$me = Entity\This();
logAdd(log);
logAdd(log, 'info', 'Ophalen naberekeningsscript voor één jaar');
$jaar_calc_script = configGet('script-bereken-nascholingstotaal-voor-jaar');
logAdd(log, 'info', 'Ophalen naberekeningsscript voor de jaren');
$jaren_calc_script = configGet('script-bereken-nascholingstotalen');
logAdd(log, 'info', 'Leden ophalen bij dit script');
$contacts = Entity\GetRelated($me, 'contacts', 1000, 'lidnummer', 'asc');
$n = Array\Length($contacts);
logAdd(log, 'info', $n, ' Leden');
$i = 0;
while($i < $n,
$contact = array\at($contacts, $i);
$contact_id = Attr($contact, 'id');
logAdd(log, 'warning', 'Lid: ', Attr($contact, 'lidnummer'), ' - ', Attr($contact, 'name'));
logAdd(log, 'Ophalen nascholingstotalen');
$nascholingstotalen = Entity\GetRelated($contact, 'nascholingstotalen', 1000, 'jaar', 'asc');
logAdd(log, 'opgehaald');
$m = array\length($nascholingstotalen);
logAdd(log, 'info', ' #nascholingstotalen: ', $m);
$j = 0;
while($j < $m,
$nascholingstotaal = array\at($nascholingstotalen, $j);
$year = Attr($nascholingstotaal, 'jaar');
logAdd(log, 'info', ' Herberekenen jaar: ', $year);
Exec($jaar_calc_script);
$j = $j + 1;
);
logAdd(log, 'info', 'Totalen herberekenen');
Exec($jaren_calc_script);
$i = $i + 1;
);
@@ -0,0 +1 @@
Bereken totaal voor één lid
@@ -0,0 +1,3 @@
Voert de laatste stand van de gegevens uit voor CZ.
Alle leden met regiocode < 30 worden uitgevoerd.
+1
View File
@@ -0,0 +1 @@
5ed765f5bd8a8b9bc
+88
View File
@@ -0,0 +1,88 @@
// last execution: Fri Apr 25 2025 10:06:42 GMT+0200 (Midden-Europese zomertijd)
$par_Regels_per_pagina=18;
$par_Alleen_buitenlandse=false;
$par_Excel_Bestandsnaam_voorzien_van_datum=true;
$par_Excel_Bestandsnaam='CZ Kwartaallijst';
$p_filename = $par_Excel_Bestandsnaam;
ifThen($par_Excel_Bestandsnaam_voorzien_van_datum,
$now = datetime\today();
$fmt = datetime\format($now, 'Europe/Amsterdam', 'DD-MM-YYYY');
$p_filename = string\concatenate($p_filename, ' ', $fmt);
);
$p_page_len = $par_Regels_per_pagina;
ifThen($p_page_len < 1, $p_page_len = 10;);
$p_no_nl = $par_Alleen_buitenlandse;
html = '';
logAdd(log);
$rows = record\fetchManyHash('Contact',
'id, agbcode, initialsName, middleName, lastName, addressStreet, addressPostalCode, addressCity, addressCountry, regiocode',
'lastName', 'asc');
$n = array\length($rows);
logAdd(log, 'Contacts read: ', $n);
$h = '';
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Persoonlijk AGB',
'VolledigeNaam',
'Adres',
'Postcode',
'Woonplaats', 'asc',
'Land'
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, $p_filename);
logAdd(log, 'Rows Per Page: ', $p_page_len);
logAdd(log, 'Filename: ', $p_filename);
$i = 0;
while($i < $n,
$e = array\at($rows, $i);
$regiocode = hash\get($e, 'regiocode');
$agbcode = hash\get($e, 'agbcode');
ifThenElse($agbcode == null, $agbcode = '';, $agbcode = string\trim($agbcode););
$regiocode = $regiocode + 0;
$meenemen = $regiocode < 30 && $agbcode != '';
ifThen($meenemen,
$initials = hash\get($e, 'initialsName');
$voorvoegsel = hash\get($e, 'middleName');
$naam = hash\get($e, 'lastName');
$adres = hash\get($e, 'addressStreet');
$postcode = hash\get($e, 'addressPostalCode');
$plaats = hash\get($e, 'addressCity');
$country = hash\get($e, 'addressCountry');
ifThen($country == null || $country == '', $country = 'Nederland');
$report = true;
ifThen($country == 'Nederland' && $p_no_nl, $report = false;);
ifThen($voorvoegsel, $voorvoegsel = string\concatenate($voorvoegsel, ' '););
$fullname = string\concatenate($initials, ' ', $voorvoegsel, $naam);
$agbcode = string\replace($agbcode, '/', '');
ifThen($report,
table\add($table,
$agbcode, $fullname, $adres, $postcode, $plaats, $country
);
);
);
$i = $i + 1;
);
strAdd($h, table\toHtml($table));
strAdd($h, '</div>');
html=$h;
@@ -0,0 +1 @@
CZ Export Lijst
@@ -0,0 +1,3 @@
Checkt of leden met een regiocode < 30 een AGB voor hun praktijk hebben.
Checkt daarnaast of er een lege persoonlijke AGB code voor die leden.
En checkt of de AGB code aan het format voldoet: nn/nnnnnn.
@@ -0,0 +1 @@
5ed794a47a7f6b2b3
@@ -0,0 +1,123 @@
// last execution: Fri Dec 04 2020 19:25:55 GMT+0100 (Midden-Europese standaardtijd)
$par_Rapporteer_alleen_de_lege_Praktijk_AGBs=true;
$par_Maximum_aantal_rijen_per_pagina=12;
$par_Valide_AGB_Prefixen='84,90';
html = '';
logAdd(log);
$p_agb_report = $par_Rapporteer_alleen_de_lege_Praktijk_AGBs;
$p_page_len = $par_Maximum_aantal_rijen_per_pagina;
ifThen($p_page_len < 1,
$p_page_len = 10;
);
$agb_prefixes=string\replace($par_Valide_AGB_Prefixen, ',', '|');
$re_agb = string\concatenate('/^(', $agb_prefixes, ')[\/][0-9]{6,6}$/');
$rows = record\fetchManyHash('Contact',
'id, agbcode, firstName, middleName, lastName, emailAddress, regiocode',
'lastName', 'asc');
$n = array\length($rows);
logAdd(log, 'Contacts read: ', $n);
$h = '';
$table = table\new('AGB Persoonlijk', 10,
'AGB Praktijk', 10,
'Voornaam', 10, 'ellipsis',
'Achternaam', 20, 'asc', 'ellipsis',
'Praktijknaam', 25, 'ellipsis',
'Regiocode', 5, 'center',
'eMail', 20, 'ellipsis'
);
table\rowsPerPage($table, $p_page_len);
$i = 0;
while($i < $n,
$e = array\at($rows, $i);
$regiocode = hash\get($e, 'regiocode');
$r_code = $regiocode + 0;
$meenemen = $r_code < 30;
$naam = hash\get($e, 'lastName');
ifThen($meenemen,
$id = hash\get($e, 'id');
$praktijk_id = record\findRelatedOne('Contact', $id, 'accounts', 'type');
ifThenElse($praktijk_id,
$praktijk_rows = record\fetchManyHash('Account', 'naam, agbcode, type', 'type', 'asc', 'id=', $praktijk_id);
$praktijk_row = array\at($praktijk_rows, 0);
$praktijk_naam = hash\get($praktijk_row, 'naam');
$praktijk_agbcode = hash\get($praktijk_row, 'agbcode');
,
$praktijk_naam = '';
$praktijk_agbcode = '';
);
$style = '';
$report = true;
$problem = false;
ifThenElse($praktijk_agbcode != '' && $praktijk_agbcode != null,
$report = !$p_agb_report;
,
$problem = true;
ifThen(!$p_agb_report,
$style = 'background:#f78c81;';
);
);
$agbcode = hash\get($e, 'agbcode');
ifThen($agbcode == '' || $agbcode == null,
$problem = true;
$report = true;
ifThen(!$p_agb_report,
$style = 'background:#f78c81;';
);
);
ifThen(!$problem,
ifThen(string\match($agbcode, $re_agb) == null,
$style = 'background:#faa75f;';
$report = true;
);
ifThen(string\match($praktijk_agbcode, $re_agb) == null,
$style = 'background:#faa75f;';
$report = true;
);
);
ifThen($report,
$voornaam = hash\get($e, 'firstName');
$voorvoegsel = hash\get($e, 'middleName');
$email = hash\get($e, 'emailAddress');
ifThen($voorvoegsel,
$naam = string\concatenate($naam, ', ', $voorvoegsel);
);
table\add($table, $agbcode, $praktijk_agbcode,
$voornaam,
table\link(string\concatenate('/#Contact/view/', $id), $naam),
$praktijk_naam,
$regiocode, $email
);
table\style($table, $style);
);
);
$i = $i + 1;
);
strAdd($h, table\toHtml($table));
strAdd($h, '</div>');
html=$h;
@@ -0,0 +1 @@
Controle Praktijk-AGB
@@ -0,0 +1 @@
Updaten van alle nascholingstotaal records van <=2018, waarbij dagen medisch op 0 wordt gezet. Hierbij wordt niet per contact het totaal aan nascholingstotalen herberekend, maar worden alleen de individuele nascholingstotalen herberekend. Dit wordt gedaan door de globale variabele 'nascholingstotalen-niet-herberekenen' te zetten.
@@ -0,0 +1 @@
5f05d49d9948e27c7
@@ -0,0 +1,21 @@
// last execution: Tue Jul 14 2020 09:06:56 GMT+0200 (Midden-Europese zomertijd)
global\set('nascholingstotalen-niet-herberekenen', true);
logAdd(log);
$rows = record\fetchManyHash('Nascholingstotaal', 'id, jaar, dagenMedisch', 'name', 'asc', 'jaar<=', '2018');
logAdd(log, 'Aantal rijen:', array\length($rows));
$i = 0;
$n = array\length($rows);
while($i < $n,
$row = array\at($rows, $i);
$id = hash\get($row, 'id');
$jaar = hash\get($row, 'jaar');
record\update('Nascholingstotaal', $id, 'dagenMedisch', 0);
logAdd(log, 'Updating: ', $i, ' - ', $jaar);
$i = $i + 1;
);
global\unset('nascholingstotalen-niet-herberekenen');
@@ -0,0 +1 @@
Dagen Medisch <=2018 op 0
@@ -0,0 +1 @@
Triggert de herberekening van alle individuele nascholingsrecords.
@@ -0,0 +1 @@
5f0c8b06e797b2dc0
@@ -0,0 +1,5 @@
// last execution: Tue Jul 14 2020 08:58:56 GMT+0200 (Midden-Europese zomertijd)
global\set('nascholingstotalen-niet-herberekenen', true);
record\recalculate('Nascholingstotaal');
global\unset('nascholingstotalen-niet-herberekenen');
@@ -0,0 +1 @@
Herberekenen individuele nascholingstotaal-records
@@ -0,0 +1 @@
Triggert de contacten om de nascholingstotalen te herberekenen
@@ -0,0 +1 @@
5efa6f935ef17c59a
@@ -0,0 +1,32 @@
// last execution: Tue Jul 14 2020 13:08:34 GMT+0200 (Midden-Europese zomertijd)
logAdd(log);
$leden = Record\FetchManyHash('Contact', 'id, name, regiocode', 'name', 'asc');
$i = 0;
$n = array\length($leden);
logAdd(log, 'info', '#leden om te processen: ', $n);
while($i < $n,
$lid = array\at($leden, $i);
$regiocode = hash\get($lid, 'regiocode');
$r_code = string\substring($regiocode, 0, 2) + 0;
ifThenElse($r_code >= 30,
logAdd(log, 'info', $i, ': lid: ', hash\get($lid, 'name'), ' - regiocode >= 30');
,
logAdd(log, 'info', $i, ': lid: ', hash\get($lid, 'name'), ' - herberekenen nascholingstotalen');
$lid_id = hash\get($lid, 'id');
// Trigger recalculate van één van de nascholingen
$na_id = record\findRelatedOne('Contact', $lid_id, 'nascholingstotalen', 'createdAt', 'desc');
ifThen($na_id, record\recalculate('Nascholingstotaal', 'id=', $na_id); );
);
$i = $i + 1;
);
logAdd(log, 'info', 'Klaar.');
@@ -0,0 +1 @@
Herberekenen nascholingen
@@ -0,0 +1 @@
Maakt de doellijst met homeopaten resp. werkt deze bij
@@ -0,0 +1 @@
5f16fdf4c0b3bc6b8
@@ -0,0 +1,66 @@
// last execution: 2026-08-28 03:00:01
logAdd(log);
$entities = Entity\GetMany('TargetList', 1, 'name', 'asc', 'name=', 'Homeopaten');
$n = array\length($entities);
ifThenElse($n == 0,
logAdd(log, 'warning', 'Geen "Homeopaten" doellijst, maak deze eerst aan!');
,
logAdd(log, 'info', 'Homeopaten doellijst aanwezig, leden worden vervangen...');
$doellijst = array\at($entities, 0);
$id = attr($doellijst, 'id');
logAdd(log, 'info', 'Verwijderen leden met regiocode >=30');
$rows = record\fetchRelatedManyHash('TargetList', $id,
'contacts', 'id, lastName, regiocode',
'lastName', 'asc'
);
$n = array\length($rows);
logAdd(log, 'info', 'Aantal gerelateerde leden: ', $n);
$i = 0;
$rcnt = 0;
while($i < $n,
$row = array\at($rows, $i);
$code = hash\get($row, 'regiocode') + 0;
ifThen($code >= 30,
$lastname = hash\get($row, 'lastName');
$contact_id = hash\get($row, 'id');
logAdd(log, 'info', 'Verwijderen: ', $lastname, '; regiocode=', $code);
record\unrelate('TargetList', $id, 'contacts', $contact_id);
$rcnt = $rcnt + 1;
);
$i = $i + 1;
);
logAdd(log, 'info', 'Relateren leden met regiocode <30');
$rows = record\fetchManyHash('Contact', 'id, lastName, regiocode', 'lastName', 'asc');
$n = array\length($rows);
logAdd(log, 'info', 'Aantal leden om te beoordelen: ', $n);
$i = 0;
$cnt = 0;
$hom_cnt = 0;
while($i < $n,
$row = array\at($rows, $i);
$code = hash\get($row, 'regiocode') + 0;
ifThen($code < 30,
$hom_cnt = $hom_cnt + 1;
$contact_id = hash\get($row, 'id');
$r_id = record\findRelatedMany('TargetList', $id,
'contacts', 1, 'createdAt', 'desc',
'id=', $contact_id
);
ifThen(!$r_id,
$lastname = hash\get($row, 'lastName');
logAdd(log, 'info', 'Toevoegen lid: ', $lastname);
record\relate('TargetList', $id, 'contacts', $contact_id);
$cnt = $cnt + 1;
);
);
$i = $i + 1;
);
logAdd(log, 'info', $cnt, ' leden toegevoegd');
logAdd(log, 'info', $rcnt, ' leden verwijderd');
logAdd(log, 'info', $hom_cnt, ' leden in de lijst');
);
@@ -0,0 +1 @@
Homeopaten Doellijst Bijwerken
@@ -0,0 +1 @@
Koppelt de geïmporteerde nascholingstotalen aan de betreffende leden.
@@ -0,0 +1 @@
5ef9d2ba1e3e500f5
@@ -0,0 +1,44 @@
// last execution: Mon Jun 29 2020 15:53:33 GMT+0200 (Midden-Europese zomertijd)
$par_Nu_uitvoeren=1;
logAdd(log);
ifThenElse($par_Nu_uitvoeren == 0,
logAdd(log, 'info', "Zet 'Nu uitvoeren' op 1 om deze taak uit te voeren.");
,
$nascholingen = entity\getMany('Nascholingstotaal', 10000, 'jaar', '');
$i = 0;
$n = array\length($nascholingen);
logAdd(log, 'info', 'Aantal nascholingsrecords: ', $n);
while($i < $n,
$nascholing = array\at($nascholingen, $i);
$lidnr = attr($nascholing, 'lidnummer');
$jaar = attr($nascholing, 'jaar');
$contacts = entity\getMany('Contact', 1, 'name', '', 'lidnummer=', $lidnr);
log('error', $i, ': nascholingsjaar: ', $jaar, 'lidnummer: ', $lidnr);
ifThenElse(array\length($contacts) > 0,
$contact = array\at($contacts, 0);
$name = attr($contact, 'name');
setAttr($nascholing, 'contactId', attr($contact, 'id'));
entity\save($nascholing);
logAdd(log, 'info', $i, ': nascholingsjaar: ', $jaar, ', lidnummer: ', $lidnr, ' naam: ', $name);
,
logAdd(log, 'warning', $i, ': lidnummer: ', $lidnr, ' niet aanwezig in het systeem');
);
$i = $i + 1;
);
);
@@ -0,0 +1 @@
Import Nabewerking - Nascholingstotalen koppelen
@@ -0,0 +1 @@
Koppelt de geïmporteerde visitaties aan de betreffende leden
@@ -0,0 +1 @@
5ed18abfb4cefb71d
@@ -0,0 +1,36 @@
// last execution: Tue Jun 09 2020 13:51:55 GMT+0200 (Midden-Europese zomertijd)
$par_import=0;
logAdd(log);
ifThenElse($par_import == 1,
logAdd(log, 'Bezig de visitaties te koppelen aan de leden');
$records = record\fetchMany('Visitatie', 'id, lidnummer, name', 'lidnummer', 'asc');
$n = array\length($records);
logAdd(log, $n, ' visitaties ingelezen');
$i = 0;
while($i < $n,
$row = array\at($records, $i);
$lidnummer = array\at($row, 1);
$visitatie_id = array\at($row, 0);
$datum = array\at($row, 2);
$contact_id = record\findOne('Contact', 'createdAt', 'asc', 'lidnummer=', $lidnummer);
ifThenElse($contact_id,
$success = record\relate('Visitatie', $visitatie_id, 'lid', $contact_id);
ifThenElse($success,
logAdd(log, 'relateren contact_id = ', $contact_id, ' voor ', $lidnummer, ' gelukt, met datum ', $datum);
,
logAdd(log, 'error',
'relateren contact_id = ', $contact_id, ' voor ', $lidnummer, ' met datum ', $datum, 'niet gelukt'
);
);
,
logAdd(log, 'error', 'lidnummer "', $lidnummer, '" niet gevonden');
);
$i = $i + 1;
);
,
logAdd(log, 'Zet import op 1 om de visitatie nabewerking uit te voeren');
);
@@ -0,0 +1 @@
Import Nabewerking - Visitaties
@@ -0,0 +1 @@
Bewerkt de import na, als de parameter gelijk is aan 1
@@ -0,0 +1 @@
5ed0fa67cb3ab01e7
@@ -0,0 +1,72 @@
// last execution: Tue Jun 09 2020 13:51:49 GMT+0200 (Midden-Europese zomertijd)
$par_import=0;
logAdd(log);
IfThenElse($par_import,
$records = record\fetchMany('Account', 'id, name, lidnummers', 'name', 'asc', 'lidnummers!=', '');
$i = 0;
$n = array\length($records);
logAdd(log, 'Nabewerken: ', $n, ' praktijken');
while($i < $n,
$row = array\at($records, $i);
$account_id = array\at($row, 0);
$account_name = array\at($row, 1);
$lidnummers = array\at($row, 2);
logAdd(log, $account_id, ' - ', $lidnummers);
$i = $i + 1;
$lid_nummers = string\matchAll($lidnummers, '/[0-9]+/');
$j = 0;
$m = array\length($lid_nummers);
while($j < $m,
$lidnummer = array\at($lid_nummers, $j);
$contact_id = record\findOne('Contact', 'createdAt', 'asc', 'lidnummer=', $lidnummer);
ifThenElse($contact_id,
$success = record\relate('Account', $account_id, 'contacts', $contact_id);
ifThenElse($success,
logAdd(log, 'relateren contact_id = ', $contact_id, ' voor ', $lidnummer, ' gelukt');
,
logAdd(log, 'error', 'relateren contact_id = ', $contact_id, ' voor ', $lidnummer, ' niet gelukt');
);
,
logAdd(log, 'error', 'lidnummer "', $lidnummer, '" niet gevonden');
);
$j = $j + 1;
);
);
/*
$lid_nummers =
logAdd(log, 'lid_nummers = ', $lid_nummers);
logAdd(log, 'length = ', array\length($lid_nummers));
$i = 0;
$n = array\length($lid_nummers);
log('error', 'Praktijk:', 'n=', $n);
while(
$i < $n,
$lidnummer = array\at($lid_nummers, $i);
$lidnummer = $lidnummer + 0;
$contact_id = record\findOne('Contact', 'createdAt', 'asc', 'lidnummer=', $lidnummer);
ifThenElse($contact_id,
logAdd(log, 'Contact: linking contact_id = ', $contact_id);
record\relate('Account', $accountId, 'contacts', $contact_id),
logAdd(log, 'lidnummer ', $lidnummer, ' niet gevonden');
);
$i = $i + 1;
);
*/
,
logAdd(log, 'par_import = 0, de import nabewerking wordt niet uitgevoerd nu.');
);
@@ -0,0 +1 @@
Import Nabewerking - leden aan praktijken koppelen
@@ -0,0 +1 @@
Importeert CSV bestanden met lidnummer, #consulten (of leeg als er geen consulten waren; of niet ingevuld.)
@@ -0,0 +1 @@
60192aded6ee3632b
@@ -0,0 +1,116 @@
// last execution: Thu Feb 04 2021 11:28:51 GMT+0100 (Midden-Europese standaardtijd)
$csvfile_par_consultgegevens_als_csv='Lid Nummer,consulten 2019,\n1846,,\n1780,,\n1856,150,\n0045,,\n0878,200,\n1509,v,\n1697,,\n0325,,\n1316,v,\n1255,300,\n1871,,\n0600,362,\n1749,400,\n1938,,\n1055,,\n0949,,\n1885,v,\n1148,v,\n1258,65,\n1352,50,\n0982,100,\n1431,v,\n1924,v,\n0349,v,\n1849,,\n1761,155,\n1830,,\n1821,,\n0489,219,\n1940,,\n1682,v,\n1030,,\n1219,422,\n1675,93,\n1459,,\n0769,,\n0847,555,\n0871,v,\n0157,,\n1433,,\n1536,250,\n1158,,\n1621,,\n1820,112,\n1926,,\n0395,61,\n1436,,\n1880,,\n1896,18,\n1716,617,\n1799,,\n0220,584,\n1883,,\n1640,,\n1628,191,\n0723,,\n1242,,\n1914,168,\n0038,,\n1003,400,\n1762,,\n1256,,\n1718,304,\n1487,v,\n1259,,\n0049,212,\n1362,150,\n1706,352,\n1784,37,\n1274,v,\n1579,v,\n1547,,\n1565,,\n1001,200,\n1500,v, \n1790,33,\n1357,177,\n1727,,\n0751,520,\n1892,,\n0293,,\n1239,,\n0191,459,\n0257,v, \n1329,,\n1512,v,\n0853,,\n1842,62,\n1143,651,\n1935,40,\n1387,,\n1585,,\n0985,,\n1002,104,\n0265,760,\n0669,900,\n1872,24,\n1569,201,\n0743,,\n0577,185,\n1495,65,\n1643,90,\n1794,v,\n1750,208,\n1841,,\n1932,,\n0729,188,\n1658,,\n1571,,\n1796,,\n1713,252,\n1507,560,\n0205,900,\n0189,720,\n0956,90,\n0336,,\n1541,201,\n1933,,\n1278,262,\n0080,400,\n1690,,\n1824,25,\n1620,280,\n1584,815,\n0396,,\n0757,v,\n1736,178,\n0812,361,\n1533,,\n1063,71,\n1380,300,\n1358,380,\n1445,,\n1894,,\n1863,35,\n1681,194,\n1741,v,\n0963,,\n0778,1000,\n1205,350,\n1759,24,\n0726,,\n1293,250,\n1524,v,\n0421,,\n1203,3550,\n1878,,\n1865,,\n0111,550,\n1696,,\n1253,1000,\n1210,250,\n1288,,\n1666,v,\n1455,,\n1691,,\n0271,473,\n1787,,\n1859,728,\n0924,180,\n1811,,\n1079,90,\n1848,,\n1499,v,\n1260,445,\n0456,250,\n1826,18,\n1048,,\n1605,v,\n0961,1100,\n0451,,\n1457,,\n0685,500,\n0042,,\n1911,v,\n0957,180,\n1623,v,\n0084,,\n1828,50,\n1680,1000,\n1350,,\n1610,v,\n1684,,\n1720,190,\n0843,135,\n1869,v,\n1614,355,\n1418,190,\n1598,,\n1954,,\n1563,300,\n1919,77,\n0266,,\n1613,,\n1325,,\n1466,170,\n1747,4,\n0301,,\n0919,176,\n1729,,\n1589,v,\n1395,,\n1897,v,\n1669,,\n1171,v,\n1725,,\n1712,250,\n0286,557,\n0076,v,\n1920,,\n1693,v,\n0179,,\n1513,,\n0887,1100,\n1700,v,\n1622,v,\n0893,1219,\n0848,,\n0954,,\n1945,,\n1575,v,\n1936,,\n1917,200,\n1629,158,\n1321,310,\n0631,247,\n1895,,\n0180,,\n1860,,\n0230,,\n1853,,\n1532,253,\n1254,,\n0085,500,\n0606,500,\n1633,100,\n0398,300,\n1649,300,\n1709,160,\n1798,,\n1699,193,\n1816,35,\n1218,v,\n1868,27,\n1597,250,\n1804,,\n0799,84,\n1788,358,\n1934,40,\n0660,161,\n1810,,\n1854,,\n1428,173,\n1814,,\n1299,,\n0063,,\n0633,225,\n1939,,\n0807,450,\n0485,,\n1570,750,\n1634,280,\n1801,731,\n1889,,\n1578,,\n1554,v,\n1722,v,\n1627,230,\n1701,,\n1943,,\n0433,610,\n1652,,\n1730,285,\n1866,,\n1777,221,\n0190,496,\n1805,,\n0137,,\n1150,300,\n0525,107,\n1838,110,\n1803,96,\n1639,371,\n0140,227,\n1923,47,\n1827,,\n0866,213,\n1161,v,\n0355,39,\n1674,,\n0872,500,\n1737,180,\n1005,24,\n0155,220,\n0003,,\n1529,525,\n1040,,\n1359,250,\n0516,,\n0154,,\n1266,,\n0209,185,\n1858,,\n0185,v,\n1615,v,\n0004,125,\n1948,,\n1683,95,\n1086,v,\n0926,230,\n1899,,\n0756,60,\n1893,,\n1823,504,\n1141,,\n1808,,\n0287,,\n1464,150,\n1746,280,\n1916,,\n0967,340,\n0876,,\n1534,450,\n0861,1200,\n1949,,\n0363,204,\n0932,251,\n0953,500,\n1745,148,\n1929,,\n1653,v,\n1175,220,\n1740,54,\n1435,250,\n0226,124,\n0938,490,\n1432,400,\n1549,720,\n0047,299,\n1779,v,\n1035,431,\n1728,11,\n1797,,\n0788,v,\n1545,,\n0569,,\n0228,,\n0316,,\n1498,50,\n0461,,\n1711,108,\n0927,,\n0413,380,\n1600,,\n1887,,\n1733,v,\n1467,85,\n1641,,\n1813,,\n1425,,\n1724,900,\n1638,v,\n0869,,\n1096,710,\n0714,501,\n1781,v,\n0034,,\n1809,,\n0171,215,\n0935,360,\n0720,240,\n1510,222,\n1213,362,\n1648,833,\n1195,v,\n0203,143,\n1667,v,\n0533,v,\n1874,624,\n1556,206,\n1692,400,\n1857,,\n1465,400,\n1732,v,\n0721,,\n0899,,\n1873,,\n1891,,\n1942,15,\n1937,,\n0643,,\n0245,,\n0322,,\n1877,,\n1815,,\n0727,v,\n0292,,\n1062,,\n0112,,\n0113,502,\n0551,320,\n1562,670,\n1763,825,\n1383,,\n0984,,\n0114,,\n1468,,\n0648,1450,\n1179,,\n1703,v,\n0821,v,\n1785,,\n1886,,\n1791,290,\n0811,25,\n1572,,\n1698,108,\n1772,517,\n1471,203,\n1752,,\n0885,,\n1363,,\n1850,230,\n1178,325,\n1407,450,\n1812,,\n1773,738,\n1665,140,\n0388,217,\n1317,,\n0564,,\n0696,v,\n0875,v,\n0570,107,\n1625,,\n1941,,\n1283,,\n1084,173,\n1912,,\n1739,550,\n1612,61,\n1953,,\n1807,v,\n1422,540,\n1837,,\n0273,,\n1276,,\n1123,65,\n0580,,\n1778,110,\n1100,150,\n1843,,\n1267,,\n1930,,\n1867,,\n0022,,\n0664,,\n1659,,\n0628,,\n1663,436,\n1011,284,\n0820,482,\n0178,,\n0928,v,\n1888,,\n0342,,\n1156,,\n1308,270,\n0921,,\n';
$par_Testrun_geen_consultgegevens_maken=false;
$par_jaar=2019;
logAdd(log);
$csv = $csvfile_par_consultgegevens_als_csv;
$testrun = $par_Testrun_geen_consultgegevens_maken;
$jaar = $par_jaar;
ifThenElse($csv == '',
logAdd(log, 'error', 'Geen CSV bestand ingelezen, kies er één.');
,
logAdd(log, 'warning', 'CSV Bestand ingelezen, uitvoeren inlezen consultgegevens.');
$idx1 = string\pos($csv, ',');
$idx2 = string\pos($csv, ';');
$comma="@$@#@@";
ifThenElse($idx1,
ifThenElse($idx2,
ifThenElse($idx1 < $idx2, $comma=',', $comma=';');
,
$comma=',';
);
,
ifThen($idx2,
$comma=';';
);
);
$re_entries = string\concatenate('/["][^"]*["]|[^', $comma, ']+/');
$user_id = env\userAttribute('id');
logAdd(log, 'info', 'User id: ', $user_id);
logAdd(log, 'info', "Gevonden comma-separator: '", $comma, "' - positie ','=", $idx1, ", positie ';'=", $idx2 );
ifThenElse($testrun,
logAdd(log, 'warning', 'Testrun - er worden geen consultgegevens aangemaakt.');
,
logAdd(log, 'warning', 'Er worden consultgegevens aangemaakt');
);
// Split in lines
$rows=list();
$line='';
$csv = string\concatenate(string\trim($csv), '\n');
$idx = string\pos($csv, '\n');
$data = list();
$n_data = 2;
$heading = true;
while($idx,
$line = string\substring($csv, 0, $idx);
$csv = string\substring($csv, $idx + 1);
$entries = string\matchAll($line, $re_entries);
$k = array\length($entries);
ifThen($k < $n_data, $entries = array\push($entries, ''));
$k = array\length($entries);
ifThenElse($k < $n_data,
logAdd(log, 'error', 'Minder dan ', $n_data, ' cellen op deze rij, niet te herkennen');
logAdd(log, 'error', $line);
,
$row = list();
$j = 0;
while($j < $k,
$entry = array\at($entries, $j);
$row = array\push($row, $entry);
$j = $j + 1;
);
ifThenElse($heading,
$heading = false;
,
$rows = array\push($rows, $row);
);
);
$idx = string\pos($csv, '\n');
);
$n = array\length($rows);
logAdd(log, 'warning', $n, ' - rijen ingelezen');
$i = 0;
while($i < $n,
$row = array\at($rows, $i);
$lidnummer = toString(array\at($row, 0));
$consulten = string\trim(array\at($row, 1));
ifThen($consulten == 'v', $consulten = "");
ifThenElse($consulten != "",
$consulten_int = toInt($consulten);
$id = record\findOne('Contact', 'name', 'asc', 'lidnummer=', $lidnummer);
ifThenElse($id,
ifThenElse($testrun,
logAdd(log, 'info', 'Testrun, er worden geen consultgegevens opgevoerd');
,
$rec_id = record\create('ConsultGegevens', 'contactId', $id, 'jaar', $jaar, 'aantal', $consulten_int, 'assignedUserId', $used_id);
record\relate('Contact', $id, 'consultGegevens', $rec_id);
);
logAdd(log, 'info', 'lidnummer: ', $lidnummer, ' - ', $consulten_int, ' consulten opgegeven (', $consulten, '), voor id: ', $id);
,
logAdd(log, 'warning', 'lidnummer: ', $lidnummer, ' - geen id gevonden!');
);
,
logAdd(log, 'info', 'lidnummer: ', $lidnummer, ' - geen consulten opgegeven');
);
$i = $i + 1;
);
);
@@ -0,0 +1 @@
Inlezen consultgegevens
@@ -0,0 +1 @@
Rapporteer leden die in een bepaald nascholingsjaar nascholingen meer dan 1 keer geregistreerd hebben. Te checken voor leden die moeten nascholen, d.w.z. leden met regiocode < 30 en ongelijk 8 (verloskundige).
@@ -0,0 +1 @@
639e03f4e8f686f7a
@@ -0,0 +1,162 @@
// last execution: Sun Dec 18 2022 17:14:39 GMT+0100 (Midden-Europese standaardtijd)
$par_nascholingsjaar=2021;
$par_open_lid_in_nieuwe_tab=true;
$par_aantal_rijen_op_een_pagina=21;
$p_page_len = $par_aantal_rijen_op_een_pagina;
logAdd(log);
html = '';
$h = '';
logAdd(log, "Controle op dubbel geregistreerde nascholingsvereisten voor jaar ", $par_nascholingsjaar);
$leden = Record\FetchManyHash('Contact',
'id, firstName, middleName, lastName, name, regiocode, dispensatie, lidnummer, datumRegistratie',
'lastName', 'asc'
);
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Voornaam', 10,
'Achternaam', 20, 'asc',
'Lidnummer', 10, 'center',
'Regiocode', 10, 'center',
'Nascholingen van lid', 20, 'center',
'Dubbel geregistreerd', 30
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, string\concatenate($par_nascholingsjaar, ' - leden met te weinig nascholing'));
$i = 0;
$n = array\length($leden);
logAdd(log, 'leden:', $n);
$n_onvoldoende = 0;
$cnt_dubbelingen = 0;
while($i < $n,
$lid = array\at($leden, $i);
$r_code = string\substring(hash\get($lid, 'regiocode'), 0, 2) + 0;
ifThen($r_code < 30 && $r_code != 8,
$rapport = true;
$contact_id = hash\get($lid, 'id');
$dispensatie = hash\get($lid, 'dispensatie');
$lidnummer = hash\get($lid, 'lidnummer');
$naam = hash\get($lid, 'name');
$middlename = hash\get($lid, 'middleName');
$firstname = hash\get($lid, 'firstName');
$lastname = string\concatenate($middlename, ' ', hash\get($lid, 'lastName'));
$regdat = hash\get($lid, 'datumRegistratie');
$reg_jaar = datetime\year($regdat);
$contact = Entity\Get('Contact', $contact_id);
$nascholingstotalen = Entity\GetRelated($contact, 'nascholingstotalen', 10, 'jaar', 'asc', 'jaar=', $par_nascholingsjaar);
$m = array\length($nascholingstotalen);
ifThenElse($m == 0, $heeft_nt = 'nee', ifThenElse($m > 1, $heeft_nt = 'teveel', $heeft_nt = 'ja'));
ifThen($m > 0, $nascholingstotals = array\at($nascholingstotalen, 0);$nascholingstotalen_id = attr($nascholingstotals, 'id'));
ifThen($m == 0 && $par_nascholingsjaar < $reg_jaar, $rapport = false; $reden = 'gevraagde jaar ligt voor registratie jaar');
ifThen($m == 0, ifThen($rapport, $reden = 'voor het gevraagde jaar geen nascholingstotaal aanwezig!'));
ifThenElse($rapport, $opnemen = 'opnemen in rapport', $opnemen = 'niet opnemen');
// Nu checken of er überhaupt dubbele nascholingsrecords zijn.
ifThen($heeft_nt == 'ja',
$cnt_dubbel = 0;
$nascholingen = Entity\GetRelated($nascholingstotals, 'nascholingen1', 1000, 'name', 'asc');
$m = array\length($nascholingen);
//logAdd(log, 'info', $m, ' nascholingen gevonden');
$j = 0;
$ns_hash = Hash\New();
while($j < $m,
$ns = array\at($nascholingen, $j);
$j = $j + 1;
$ns_id = attr($ns, 'accNascholingId');
$ns_soort = attr($ns, 'soort');
$ns_name = attr($ns, 'name');
$ns_status = attr($ns, 'status');
//logAdd(log, 'info', 'ns_id = ', $ns_id, ' - name=', attr($ns, 'name'), ' - soort=', $ns_soort, ' - status=', $ns_status);
ifThenElse($ns_soort != 'Vooraf aangevraagd met formulier',
$check_dubbel = true;
ifThen($ns_status == 'afgekeurd', $check_dubbel = false)
,
$check_dubbel = false
);
ifThen($check_dubbel,
$dubbel = false;
//logAdd(log, 'info', 'isset ', $ns_id, ' = ', hash\isset($ns_hash, $ns_id));
ifThenElse(hash\isset($ns_hash, $ns_id),
$cnt = hash\get($ns_hash, $ns_id) + 1
,
$cnt = 1
);
//logAdd(log, 'info', 'cnt = ', $cnt);
$ns_hash = hash\set($ns_hash, $ns_id, $cnt);
ifThen($cnt == 2, $dubbel = true);
//logAdd(log, 'info', 'ns_id - cnt = ', $cnt);
ifThen($dubbel,
$ln_ns = table\link(string\concatenate('/#Nascholingstotaal/view/', $nascholingstotalen_id), 'Nascholingen');
table\add($table,
table\link(string\concatenate('/#Contact/view/', $contact_id), $firstname),
table\link(string\concatenate('/#Contact/view/', $contact_id), $lastname),
string\concatenate(' ', $lidnummer),
string\concatenate(' ', $regiocode),
$ln_ns,
table\link(string\concatenate('/#Nascholing/view/', $ns_id), $ns_name)
);
$cnt_dubbel = $cnt_dubbel + 1;
);
);
);
ifThenElse($cnt_dubbel > 0,
logAdd(log, 'warning', 'lid: ', $naam, ', lidnummer: ', $lidnummer, ', nascholingen: ', $m, ' - heeft dubbel opgevoerde nascholingsrecords');
$cnt_dubbelingen = $cnt_dubbelingen + 1;
,
logAdd(log, 'info', 'lid: ', $naam, ', lidnummer: ', $lidnummer, ', nascholingen: ', $m, ' - heeft geen dubbel opgevoerde nascholingsrecords');
);
);
ifThen($heeft_nt == 'nee',
logAdd(log, 'info', 'lid: ', $naam, ', lidnummer: ', $lidnummer, ' - heeft geen nascholingsjaar ', $par_nascholingsjaar);
);
ifThen($heeft_nt == 'teveel',
logAdd(log, 'warning', 'lid: ', $naam, ', lidnummer: ', $lidnummer, ' - heeft teveel nascholingsjaar ', $par_nascholingsjaar, ' records');
table\add($table,
table\link(string\concatenate('/#Contact/view/', $contact_id), $firstname),
table\link(string\concatenate('/#Contact/view/', $contact_id), $lastname),
string\concatenate(' ', $lidnummer),
string\concatenate(' ', $regiocode),
'meerdere nascholingstotalen voor zelfde jaar',
''
);
);
);
$i = $i + 1
);
$table_html = table\toHtml($table);
//$table_html = string\replace($table_html, 'title="%RED%', 'title="');
//$table_html = string\replace($table_html, '%END"', '"');
//$table_html = string\replace(string\replace($table_html, '%RED%', '<span style="color:red;">'), '%END%', '</span>');
strAdd($h, '<h1>', 'Leden met <b>dubbele</b> nascholingsboekingen voor jaar ', toString($par_nascholingsjaar), '</h1>');
$msg = string\concatenate('In totaal ', $cnt_dubbelingen, ' leden met dubbel opgevoerde nascholingen gevonden.');
strAdd($h, $msg);
ifThen($cnt_dubbelingen > 0, strAdd($h, $table_html));
strAdd($h, '</div>');
html=$h;
logAdd(log, 'warning', $msg);
@@ -0,0 +1 @@
Leden met dubbel geregistreerde nascholingen
@@ -0,0 +1 @@
Geeft een lijst met alle niet ex-leden met hun praktijken (p1, p2 en p3)
@@ -0,0 +1 @@
602e70cccdb6eccbb
@@ -0,0 +1,228 @@
//exec last execution: Fri Jun 12 2026 11:17:40 GMT+0200 (Midden-Europese zomertijd)
$par_Regels_per_pagina=18;
$par_Excel_Bestandsnaam_voorzien_van_datum=true;
$par_Excel_Bestandsnaam='ledenlijst';
$p_filename = $par_Excel_Bestandsnaam;
ifThen($par_Excel_Bestandsnaam_voorzien_van_datum,
$now = datetime\today();
$fmt = datetime\format($now, 'Europe/Amsterdam', 'DD-MM-YYYY');
$p_filename = string\concatenate($p_filename, ' ', $fmt);
);
$p_page_len = $par_Regels_per_pagina;
ifThen($p_page_len < 1, $p_page_len = 10;);
html = '';
logAdd(log);
$fields = string\concatenate(
'id, salutationName, initialsName, firstName, middleName, lastName, ',
'geboortedatum, geslacht, ',
'addressStreet, addressPostalCode, addressCity, addressCountry, ',
'emailAddress, phoneNumber, website, ',
'regiocode, lidnummer, ',
'balens, quasier, ',
'dispensatie, ',
'agbcode, rbcznummer, mCode, ',
'datumRegistratie, vakopleidingDatumDiploma, mBKDatum, datumVOG, ',
'geplandeAfstudeerdatum, einddatum ',
''
);
$rows = record\fetchManyHash('Contact', $fields, 'lastName', 'asc');
$n = array\length($rows);
logAdd(log, 'Contacts read: ', $n);
$h = '';
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Aanhef', 'Initialen', 'Voornaam', 'Voorzetsel', 'Achternaam',
'Geboortedatum',
'Straat', 'Postcode', 'Plaats', 'Land',
'eMail', 'Telefoon',
'Regiocode', 'Lidnummer',
'Agbcode',
'Registratie',
'Praktijken Agbcode',
'Praktijken tel.',
'P1 Naam', 'P1 Straat', 'P1 Postcode', 'P1 Plaats', 'P1 Website',
'P2 Naam', 'P2 Straat', 'P2 Postcode', 'P2 Plaats', 'P2 Website',
'P3 Naam', 'P3 Straat', 'P3 Postcode', 'P3 Plaats', 'P3 Website'
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, $p_filename);
$i = 0;
while($i < $n,
$e = array\at($rows, $i);
$regiocode = hash\get($e, 'regiocode');
$regiocode = $regiocode + 0;
$meenemen = $regiocode < 30;
$lastname = hash\get($e, 'lastName');
logAdd(log, 'info', 'regiocode=', $regiocode, ' lastName=', $lastname);
ifThen($meenemen,
$contact_id = hash\get($e, 'id');
$salutation = hash\get($e, 'salutationName');
$initials = hash\get($e, 'initialsName');
$firstname = hash\get($e, 'firstName');
$voorvoegsel = hash\get($e, 'middleName');
$street = hash\get($e, 'addressStreet');
$postalcode = hash\get($e, 'addressPostalCode');
$city = hash\get($e, 'addressCity');
$country = hash\get($e, 'addressCountry');
ifThen($country == null || $country == '', $country = 'Nederland');
$email = hash\get($e, 'emailAddress');
ifThen($email, $email = table\link(string\concatenate('mailto:', $email), $email));
$phone = hash\get($e, 'phoneNumber');
ifThen($website, $website = table\link(string\concatenate('http://', $website), $website, '_blank'));
$birth = hash\get($e, 'geboortedatum');
$gender = hash\get($e, 'geslacht');
$lidnr = hash\get($e, 'lidnummer');
$balens = hash\get($e, 'balens');
$quasir = hash\get($e, 'quasier');
$dispensatie = hash\get($e, 'dispensatie');
$agbcode = hash\get($e, 'agbcode');
$mcode = hash\get($e, 'mCode');
$rbcznr = hash\get($e, 'rbcznummer');
$registratie = hash\get($e, 'datumRegistratie');
$vakopleiding = hash\get($e, 'vakopleidingDatumDiploma');
$mbk = hash\get($e, 'mBKDatum');
$vog = hash\get($e, 'datumVOG');
$afstuderen = hash\get($e, 'geplandeAfstudeerdatum')
$einddatum = hash\get($e, 'einddatum');
$contact = entity\get('Contact', $contact_id);
$p1s = entity\getRelated($contact, 'accounts', 1, 'name', 'asc', 'type=', 'P1');
ifThenElse(array\length($p1s) == 1, $p1 = array\at($p1s, 0), $p1 = null);
$p2s = entity\getRelated($contact, 'accounts', 1, 'name', 'asc', 'type=', 'P2');
ifThenElse(array\length($p2s) == 1, $p2 = array\at($p2s, 0), $p2 = null);
$p3s = entity\getRelated($contact, 'accounts', 1, 'name', 'asc', 'type=', 'P3');
ifThenElse(array\length($p3s) == 1, $p3 = array\at($p3s, 0), $p3 = null);
$report = true;
ifThenElse($p1,
$p1_name = attr($p1, 'naam');
$p1_straat = attr($p1, 'shippingAddressStreet');
$p1_postcode = attr($p1, 'shippingAddressPostalCode');
$p1_plaats = attr($p1, 'shippingAddressCity');
$p1_land = attr($p1, 'shippngAddressCountry');
$p1_email = attr($p1, 'emailAddress');
$p1_phone = attr($p1, 'phoneNumber');
$p1_website = attr($p1, 'website');
$p1_op_internet = attr($p1, 'opInternet');
$p1_agbcode = attr($p1, 'agbcode');
,
$p1_name = '';
$p1_straat = '';
$p1_postcode = '';
$p1_plaats = '';
$p1_land = '';
$p1_email = '';
$p1_phone = '';
$p1_website = '';
$p1_op_internet = '';
$p1_agbcode = '';
);
ifThenElse($p2,
$p2_name = attr($p2, 'naam');
$p2_straat = attr($p2, 'shippingAddressStreet');
$p2_postcode = attr($p2, 'shippingAddressPostalCode');
$p2_plaats = attr($p2, 'shippingAddressCity');
$p2_land = attr($p2, 'shippngAddressCountry');
$p2_email = attr($p2, 'emailAddress');
$p2_phone = attr($p2, 'phoneNumber');
$p2_website = attr($p2, 'website');
$p2_op_internet = attr($p2, 'opInternet');
$p2_agbcode = attr($p2, 'agbcode');
,
$p2_name = '';
$p2_straat = '';
$p2_postcode = '';
$p2_plaats = '';
$p2_land = '';
$p2_email = '';
$p2_phone = '';
$p2_website = '';
$p2_op_internet = '';
$p2_agbcode = '';
);
ifThenElse($p3,
$p3_name = attr($p3, 'naam');
$p3_straat = attr($p3, 'shippingAddressStreet');
$p3_postcode = attr($p3, 'shippingAddressPostalCode');
$p3_plaats = attr($p3, 'shippingAddressCity');
$p3_land = attr($p3, 'shippngAddressCountry');
$p3_email = attr($p3, 'emailAddress');
$p3_phone = attr($p3, 'phoneNumber');
$p3_website = attr($p3, 'website');
$p3_op_internet = attr($p3, 'opInternet');
$p3_agbcode = attr($p3, 'agbcode');
,
$p3_name = '';
$p3_straat = '';
$p3_postcode = '';
$p3_plaats = '';
$p3_land = '';
$p3_email = '';
$p3_phone = '';
$p3_website = '';
$p3_op_internet = '';
$p3_agbcode = '';
);
$p_agbcode = '';
ifThenElse($p1_agbcode,
$p_agbcode = $p1_agbcode;
,
ifThenElse($p2_agbcode,
$p_agbcode = $p2_agbcode;
,
ifThen($p3_agbcode, $p_agbcode = $p3_agbcode;);
);
);
$p_phone = '';
ifThenElse($p1_phone,
$p_phone = $p1_phone;
,
ifThenElse($p2_phone,
$p_phone = $p2_phone;
,
ifThen($p3_phone, $p_phone = $p3_phone;);
);
);
ifThen($report,
table\add($table,
$salutation, $initials, $firstname, $voorvoegsel, $lastname,
$birth,
$street, $postalcode, $city, $country,
$email, $phone,
$regiocode, $lidnr,
$agbcode,
$registratie,
$p_agbcode,
$p_phone,
$p1_name, $p1_straat, $p1_postcode, $p1_plaats, $p1_website,
$p2_name, $p2_straat, $p2_postcode, $p2_plaats, $p2_website,
$p3_name, $p3_straat, $p3_postcode, $p3_plaats, $p3_website
);
);
);
$i = $i + 1;
);
strAdd($h, table\toHtml($table));
strAdd($h, '</div>');
html=$h;
@@ -0,0 +1 @@
Leden met hun praktijken - eenvoudige lijst
@@ -0,0 +1 @@
Geeft een lijst met alle niet ex-leden met hun praktijken (p1, p2 en p3)
@@ -0,0 +1 @@
5fca5c9b4b0997868
@@ -0,0 +1,220 @@
//exec last execution: Fri Jun 12 2026 11:18:17 GMT+0200 (Midden-Europese zomertijd)
$par_Regels_per_pagina=18;
$par_Excel_Bestandsnaam_voorzien_van_datum=true;
$par_Excel_Bestandsnaam='ledenlijst';
$p_filename = $par_Excel_Bestandsnaam;
ifThen($par_Excel_Bestandsnaam_voorzien_van_datum,
$now = datetime\today();
$fmt = datetime\format($now, 'Europe/Amsterdam', 'DD-MM-YYYY');
$p_filename = string\concatenate($p_filename, ' ', $fmt);
);
$p_page_len = $par_Regels_per_pagina;
ifThen($p_page_len < 1, $p_page_len = 10;);
html = '';
logAdd(log);
$fields = string\concatenate(
'id, salutationName, initialsName, firstName, middleName, lastName, ',
'geboortedatum, geslacht, ',
'addressStreet, addressPostalCode, addressCity, addressCountry, ',
'emailAddress, phoneNumber, website, ',
'regiocode, lidnummer, ',
'balens, quasier, ',
'dispensatie, ',
'agbcode, rbcznummer, mCode, ',
'datumRegistratie, vakopleidingDatumDiploma, mBKDatum, datumVOG, ',
'geplandeAfstudeerdatum, einddatum ',
''
);
$rows = record\fetchManyHash('Contact', $fields, 'lastName', 'asc');
$n = array\length($rows);
logAdd(log, 'Contacts read: ', $n);
$h = '';
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Aanhef', 'Initialen', 'Voornaam', 'Voorzetsel', 'Achternaam',
'Geboortedatum', 'Geslacht',
'Straat', 'Postcode', 'Plaats', 'Land',
'eMail', 'Telefoon', 'Website',
'Regiocode', 'Lidnummer',
'Balens', 'Quasier',
'Dispensatie',
'Agbcode', 'RBCZnr', 'MCode',
'Registratie', 'Vakopleiding', 'MBK', 'VOG', 'Afstuderen', 'Beeindiging',
'P1 Naam', 'P1 Straat', 'P1 Postcode', 'P1 Plaats', 'P1 Land',
'P1 eMail', 'P1 Telefoon', 'P1 Website', 'P1 Op Internet',
'P1 Agbcode',
'P2 Naam', 'P2 Straat', 'P2 Postcode', 'P2 Plaats', 'P2 Land',
'P2 eMail', 'P2 Telefoon', 'P2 Website', 'P2 Op Internet',
'P2 Agbcode',
'P3 Naam', 'P3 Straat', 'P3 Postcode', 'P3 Plaats', 'P3 Land',
'P3 eMail', 'P3 Telefoon', 'P3 Website', 'P3 Op Internet',
'P3 Agbcode'
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, $p_filename);
$i = 0;
while($i < $n,
$e = array\at($rows, $i);
$regiocode = hash\get($e, 'regiocode');
$regiocode = $regiocode + 0;
$meenemen = $regiocode < 30;
$lastname = hash\get($e, 'lastName');
logAdd(log, 'info', 'regiocode=', $regiocode, ' lastName=', $lastname);
ifThen($meenemen,
$contact_id = hash\get($e, 'id');
$salutation = hash\get($e, 'salutationName');
$initials = hash\get($e, 'initialsName');
$firstname = hash\get($e, 'firstName');
$voorvoegsel = hash\get($e, 'middleName');
$street = hash\get($e, 'addressStreet');
$postalcode = hash\get($e, 'addressPostalCode');
$city = hash\get($e, 'addressCity');
$country = hash\get($e, 'addressCountry');
ifThen($country == null || $country == '', $country = 'Nederland');
$email = hash\get($e, 'emailAddress');
ifThen($email, $email = table\link(string\concatenate('mailto:', $email), $email));
$phone = hash\get($e, 'phoneNumber');
$website = hash\get($e, 'website');
ifThen($website, $website = table\link(string\concatenate('http://', $website), $website, '_blank'));
$birth = hash\get($e, 'geboortedatum');
$gender = hash\get($e, 'geslacht');
$lidnr = hash\get($e, 'lidnummer');
$balens = hash\get($e, 'balens');
$quasir = hash\get($e, 'quasier');
$dispensatie = hash\get($e, 'dispensatie');
$agbcode = hash\get($e, 'agbcode');
$mcode = hash\get($e, 'mCode');
$rbcznr = hash\get($e, 'rbcznummer');
$registratie = hash\get($e, 'datumRegistratie');
$vakopleiding = hash\get($e, 'vakopleidingDatumDiploma');
$mbk = hash\get($e, 'mBKDatum');
$vog = hash\get($e, 'datumVOG');
$afstuderen = hash\get($e, 'geplandeAfstudeerdatum')
$einddatum = hash\get($e, 'einddatum');
$contact = entity\get('Contact', $contact_id);
$p1s = entity\getRelated($contact, 'accounts', 1, 'name', 'asc', 'type=', 'P1');
ifThenElse(array\length($p1s) == 1, $p1 = array\at($p1s, 0), $p1 = null);
$p2s = entity\getRelated($contact, 'accounts', 1, 'name', 'asc', 'type=', 'P2');
ifThenElse(array\length($p2s) == 1, $p2 = array\at($p2s, 0), $p2 = null);
$p3s = entity\getRelated($contact, 'accounts', 1, 'name', 'asc', 'type=', 'P3');
ifThenElse(array\length($p3s) == 1, $p3 = array\at($p3s, 0), $p3 = null);
$report = true;
ifThenElse($p1,
$p1_name = attr($p1, 'naam');
$p1_straat = attr($p1, 'shippingAddressStreet');
$p1_postcode = attr($p1, 'shippingAddressPostalCode');
$p1_plaats = attr($p1, 'shippingAddressCity');
$p1_land = attr($p1, 'shippngAddressCountry');
$p1_email = attr($p1, 'emailAddress');
$p1_phone = attr($p1, 'phoneNumber');
$p1_website = attr($p1, 'website');
$p1_op_internet = attr($p1, 'opInternet');
$p1_agbcode = attr($p1, 'agbcode');
,
$p1_name = '';
$p1_straat = '';
$p1_postcode = '';
$p1_plaats = '';
$p1_land = '';
$p1_email = '';
$p1_phone = '';
$p1_website = '';
$p1_op_internet = '';
$p1_agbcode = '';
);
ifThenElse($p2,
$p2_name = attr($p2, 'naam');
$p2_straat = attr($p2, 'shippingAddressStreet');
$p2_postcode = attr($p2, 'shippingAddressPostalCode');
$p2_plaats = attr($p2, 'shippingAddressCity');
$p2_land = attr($p2, 'shippngAddressCountry');
$p2_email = attr($p2, 'emailAddress');
$p2_phone = attr($p2, 'phoneNumber');
$p2_website = attr($p2, 'website');
$p2_op_internet = attr($p2, 'opInternet');
$p2_agbcode = attr($p2, 'agbcode');
,
$p2_name = '';
$p2_straat = '';
$p2_postcode = '';
$p2_plaats = '';
$p2_land = '';
$p2_email = '';
$p2_phone = '';
$p2_website = '';
$p2_op_internet = '';
$p2_agbcode = '';
);
ifThenElse($p3,
$p3_name = attr($p3, 'naam');
$p3_straat = attr($p3, 'shippingAddressStreet');
$p3_postcode = attr($p3, 'shippingAddressPostalCode');
$p3_plaats = attr($p3, 'shippingAddressCity');
$p3_land = attr($p3, 'shippngAddressCountry');
$p3_email = attr($p3, 'emailAddress');
$p3_phone = attr($p3, 'phoneNumber');
$p3_website = attr($p3, 'website');
$p3_op_internet = attr($p3, 'opInternet');
$p3_agbcode = attr($p3, 'agbcode');
,
$p3_name = '';
$p3_straat = '';
$p3_postcode = '';
$p3_plaats = '';
$p3_land = '';
$p3_email = '';
$p3_phone = '';
$p3_website = '';
$p3_op_internet = '';
$p3_agbcode = '';
);
ifThen($report,
table\add($table,
$salutation, $initials, $firstname, $voorvoegsel, $lastname,
$birth, $gender,
$street, $postalcode, $city, $country,
$email, $phone, $website,
$regiocode, $lidnr,
$balens, $quasir,
$dispensatie,
$agbcode, $rbcznr, $mcode,
$registratie, $vakopleiding, $mbk, $vog, $afstuderen, $einddatum,
$p1_name, $p1_straat, $p1_postcode, $p1_plaats, $p1_land,
$p1_email, $p1_phone, $p1_website, $p1_op_internet,
$p1_agbcode,
$p2_name, $p2_straat, $p2_postcode, $p2_plaats, $p2_land,
$p2_email, $p2_phone, $p2_website, $p2_op_internet,
$p2_agbcode,
$p3_name, $p3_straat, $p3_postcode, $p3_plaats, $p3_land,
$p3_email, $p3_phone, $p3_website, $p3_op_internet,
$p3_agbcode
);
);
);
$i = $i + 1;
);
strAdd($h, table\toHtml($table));
strAdd($h, '</div>');
html=$h;
@@ -0,0 +1 @@
Leden met hun praktijken
@@ -0,0 +1 @@
Leden met nascholingstotalen die liggen voor hun registratiejaar.
@@ -0,0 +1 @@
63caa2bdc445ed778
@@ -0,0 +1,70 @@
// last execution: Thu Mar 30 2023 12:27:14 GMT+0200 (Midden-Europese zomertijd)
$par_aantal_rijen_op_een_pagina=21;
$p_page_len = $par_aantal_rijen_op_een_pagina;
/////////////////////////////////////////////////////////////////////////////////////////////
// Script start
/////////////////////////////////////////////////////////////////////////////////////////////
log('warning', 'Executing ', name);
logAdd(log);
$h = '';
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Naam', 40,
'Lidnummer', 10, 'center',
'registratiejaar', 20, 'center',
'#nascholingstotalen < r-jaar', 20, 'center'
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, 'leden met nascholingstotalen voor het registratiejaar');
/////////////////////////////////////////////////////////////////////////////////////////////
// Kijk of er nascholingsjaren zijn die liggen voor de registratiedatum
/////////////////////////////////////////////////////////////////////////////////////////////
$rows = record\FetchManyHash('Contact', 'id, lidnummer, name, regiocode, datumRegistratie', 'name', 'asc');
$n = array\length($rows);
$i = 0;
$aantal = 0;
$aantal_met = 0;
while($i < $n,
$row = array\at($rows, $i);
$regiocode = hash\get($row, 'regiocode') + 0;
ifThen($regiocode < 30,
$aantal = $aantal + 1;
$contact_id = hash\get($row, 'id');
$name = hash\get($row, 'name');
$reg_dat = hash\get($row, 'datumRegistratie');
$reg_jaar = datetime\year($reg_dat);
$lidnummer = hash\get($row, 'lidnummer');
$cnt = record\count('Nascholingstotaal', 'jaar<', $reg_jaar, 'contactId=', $contact_id);
ifThen($cnt > 0,
logAdd(log, 'info', 'Contact: ', $name, ' lidnummer: ', $lidnummer, ', registratiejaar: ', $reg_jaar, ' #nascholingstotalen vóór registratiedatum: ', $cnt);
table\add($table,
table\link(string\concatenate('/#Contact/view/', $contact_id), $name),
string\concatenate(' ', $lidnummer),
toString($reg_jaar),
toString($cnt)
);
$aantal_met = $aantal_met + 1;
);
);
$i = $i + 1;
);
$table_html = table\toHtml($table);
strAdd($h, $table_html);
strAdd($h, '</div>');
html = $h;
logAdd(log, 'info', '#Aantal leden met regiocode < 30: ', $aantal);
logAdd(log, 'info', '#Aantal leden met regiocode < 30 met nascholingstotalen vóór het registratiejaar : ', $aantal_met);
@@ -0,0 +1 @@
Leden met nascholingstotalen voor hun registratiejaar
@@ -0,0 +1 @@
Kijkt welke leden niet aan de nascholingsvereisten voldoen, inclusief verloskundigen.
@@ -0,0 +1 @@
5efa765f5a951f599
@@ -0,0 +1,125 @@
// last execution: Tue Jul 14 2026 08:49:16 GMT+0200 (Midden-Europese zomertijd)
$par_nascholingsjaar=2025;
$par_open_lid_in_nieuwe_tab=true;
$par_aantal_rijen_op_een_pagina=21;
$p_page_len = $par_aantal_rijen_op_een_pagina;
logAdd(log);
html = '';
$h = '';
logAdd(log, "Controle nascholingsvereisten voor jaar ", $par_nascholingsjaar);
$leden = Record\FetchManyHash('Contact',
'id, firstName, middleName, lastName, name, emailAddress, regiocode, dispensatie, lidnummer, datumRegistratie',
'lastName', 'asc'
);
strAdd($h, '<div class="nvkhresult">');
$table = table\new('Voornaam', 26,
'Achternaam', 26, 'asc',
'email', 26,
'Lidnummer', 7, 'center',
'Dispensatie', 7, 'center',
'Regiocode', 8, 'center'
);
table\rowsPerPage($table, $p_page_len);
table\filename($table, string\concatenate($par_nascholingsjaar, ' - leden met te weinig nascholing'));
$i = 0;
$n = array\length($leden);
logAdd(log, 'leden en ex-leden: ', $n);
$n_onvoldoende = 0;
while($i < $n,
$lid = array\at($leden, $i);
$r_code = toInt(string\substring(hash\get($lid, 'regiocode'), 0, 2));
//ifThen($r_code < 30 && $r_code != 8,
ifThen($r_code < 30,
$rapport = true;
$contact_id = hash\get($lid, 'id');
$email = hash\get($lid, 'emailAddress');
$dispensatie = hash\get($lid, 'dispensatie');
$lidnummer = hash\get($lid, 'lidnummer');
$naam = hash\get($lid, 'name');
$regdat = hash\get($lid, 'datumRegistratie');
$reg_jaar = datetime\year($regdat);
$contact = Entity\Get('Contact', $contact_id);
$nascholingstotalen = Entity\GetRelated($contact, 'nascholingstotalen', 1, 'jaar', 'asc', 'jaar=', $par_nascholingsjaar);
$m = array\length($nascholingstotalen);
ifThenElse($m == 0, $heeft_nt = 'nee', ifThenElse($m > 1, $heeft_nt = 'teveel', $heeft_nt = 'ja'));
ifThen($m > 0, $nascholingstotalen = array\at($nascholingstotalen, 0));
ifThen($m == 0 && $par_nascholingsjaar < $reg_jaar, $rapport = false; $reden = 'gevraagde jaar ligt voor registratie jaar');
ifThenElse($m == 0,
$hom_surplus = 'nvt';
$med_surplus = 'nvt';
$surplus = 'nvt';
$hom_lt = false;
$med_lt = false;
$lt = false;
$onvoldoende = true;
ifThen($rapport, $reden = 'voor het gevraagde jaar geen nascholingstotaal aanwezig!');
,
$status = attr($nascholingstotalen, 'status');
ifThenElse($status == 'voldoet-niet' || $status == 'voldoet-niet-na-saldering', $onvoldoende = true, $onvoldoende = false);
ifThenElse($onvoldoende, $reden = 'onvoldoende nascholing', $reden = 'voldoende nascholing');
);
ifThenElse($rapport && $onvoldoende, $opnemen = 'opnemen in rapport', $opnemen = 'niet opnemen');
ifThenElse($rapport && $onvoldoende,
logAdd(log, 'warning', $opnemen, ' - lid: ', $naam, ' email: ', $email, ' registratiejaar: ', $reg_jaar, ' - ', $reden);
,
logAdd(log, 'info', $opnemen, ' - lid: ', $naam, ' email: ', $email, ' registratiejaar: ', $reg_jaar, ' - ', $reden);
);
ifThen($rapport,
ifThen($onvoldoende,
$n_onvoldoende = $n_onvoldoende + 1;
$naam = hash\get($lid, 'name');
$lastname = hash\get($lid, 'lastName');
$middlename = hash\get($lid, 'middleName');
$firstname = hash\get($lid, 'firstName');
$lastname = string\concatenate($lastname, ', ', $middlename);
$regiocode = hash\get($lid, 'regiocode');
ifThenElse($dispensatie, $dispensatie = 'Ja', $dispensatie = '-');
strAdd($h, '<tr>');
$td = '<td>';
ifThenElse($par_open_lid_in_nieuwe_tab, $target = 'target="_blank"', $target = "");
table\add($table,
table\link(string\concatenate('/#Contact/view/', $contact_id), $firstname),
table\link(string\concatenate('/#Contact/view/', $contact_id), $lastname),
table\link(string\concatenate('mailto:', $email), $email),
string\concatenate(' ', $lidnummer),
$dispensatie,
string\concatenate(' ', $regiocode)
);
); // $onvoldoende
); // $rapport
);
$i = $i + 1
);
$table_html = table\toHtml($table);
$table_html = string\replace($table_html, 'title="%RED%', 'title="');
$table_html = string\replace($table_html, '%END"', '"');
$table_html = string\replace(string\replace($table_html, '%RED%', '<span style="color:red;">'), '%END%', '</span>');
strAdd($h, '<h1>', 'Leden met <b>onvoldoende</b> nascholing voor jaar ', toString($par_nascholingsjaar), ': ', $n_onvoldoende, '</h1>');
strAdd($h, $table_html);
strAdd($h, '</div>');
logAdd(log, 'info', 'leden met onvoldoende nascholing voor jaar ', $par_nascholingsjaar, ': ', $n_onvoldoende);
html=$h;
@@ -0,0 +1 @@
Leden met onvoldoende nascholing
@@ -0,0 +1 @@
Publiceert iedere nacht automatisch de ledenmails die nog in concept staan en zet ze in de juiste categorie. Als er een nieuw jaar moet worden aangemaakt, dan gebeurt dat.
@@ -0,0 +1 @@
6002046fe26fbfbfd
@@ -0,0 +1,46 @@
// last execution: 2026-08-28 05:19:02
logAdd(log);
logAdd(log, 'info', 'Ophalen Ledeninformatie van type "ledenmail" en status <> "gepubliceerd"');
$rows = record\fetchManyHash('KnowledgeBaseArticle', 'id, publishDate,name', 'name', 'asc', 'status!=', 'Published', 'type=', 'ledenmail');
logAdd(log, 'info', array\length($rows));
$i = 0;
$n = array\length($rows);
//$ledenmails_cat_ids = record\fetchManyHash('KnowledgeBaseCategory', 'id', 'name', 'asc', 'id=', '5eb3e7d4bec32f0d7');
//$ledenmails_cat_id = hash\get(array\at($ledenmails_cat_ids, 0), 'id');
$ledenmails_cat_id = '5eb3e7d4bec32f0d7';
logAdd(log, 'info', 'ledenmails categorie id: ', $ledenmails_cat_id);
while($i < $n,
$row = array\at($rows, $i);
$name = hash\Get($row, 'name');
$datum = hash\Get($row, 'publishDate');
$id = hash\Get($row, 'id');
logAdd(log, 'info', 'publiceren: ', $name, ' - datum: ', $datum);
$year = datetime\year($datum);
logAdd(log, 'info', 'in categorie: ', $year);
// Vind de de id voor de gegeven categorie, of maak er één aan
$cat_ids = record\fetchManyHash('KnowledgeBaseCategory', 'id', 'name', 'asc', 'name=', $year, 'parentId=', $ledenmails_cat_id);
$cat_ids_n = array\length($cat_ids);
logAdd(log, 'info', 'categorie: ', $year, ' gevonden: ', $cat_ids_n);
ifThenElse($cat_ids_n == 0,
$cat_id = record\create('KnowledgeBaseCategory', 'name', $year, 'parentId', $ledenmails_cat_id,
'order', -$year);
,
$cat_id = hash\Get(array\at($cat_ids, 0), 'id');
);
// Zet het record in de juiste categorie
record\relate('KnowledgeBaseArticle', $id, 'categories', $cat_id);
record\relate('KnowledgeBaseArticle', $id, 'categories', $ledenmails_cat_id);
// Publiceer het.
record\update('KnowledgeBaseArticle', $id, 'status', 'Published', 'type');
$i = $i + 1;
);
@@ -0,0 +1 @@
Ledeninformatie publiceren
@@ -0,0 +1 @@
Mail de verslagen van de jobs.
@@ -0,0 +1 @@
5f17f1d332c9cb538
+45
View File
@@ -0,0 +1,45 @@
// last execution: 2026-08-28 08:00:01
$jobs = entity\getMany('Script', 100, 'name', 'asc', 'type=', 'job');
logAdd(log);
html = '';
logAdd(log, 'info', 'Mailen laatste taken logs');
$html = "";
$i = 0;
$n = array\length($jobs);
while($i < $n,
$job = array\at($jobs, $i);
$log = attr($job, 'log');
$name = attr($job, 'name');
$last_exec = datetime\format(attr($job, 'lastexec'), 'Europe/Amsterdam', 'DD/MM/YYYY HH:mm:ss');
strAdd($html, '<h3>', $name, '</h3>');
strAdd($html, '<p>', 'Laatste uitvoering: ', $last_exec, '</p>');
$html = string\concatenate($html, '<table><tbody>', $log, '</tbody></table>');
$i = $i + 1;
);
$body = emailTemplate;
$body = string\replace($body, '{{log}}', $html);
$dt = datetime\format(datetime\now(), 'Europe/Amsterdam', 'DD/MM/YYYY');
$subject = string\concatenate('NVKH Crm - Job Verslag - ', $dt);
$userId = env\userAttribute('id');
$mailadr = configGet('job-report-mail-address');
$emailId = record\create('Email', 'subject', $subject,
'body', $body,
'to', $mailadr,
'assignedUser', $userId,
'isUser', true,
'parentType', 'Script',
'parentId', id
);
ext\email\send($emailId);
logAdd(log, 'info', 'Mail gestuurd naar ', $mailadr);
@@ -0,0 +1 @@
Mail Laatste Jobs
@@ -0,0 +1,9 @@
Maakt een distributielijst voor degenen van de homeopaten die in een op te geven jaar nog geen nascholingen hebben opgegeven en ook niet in dat jaar zijn afgestudeerd. Op te nemen:
* aantal overige dagen = 0 &
* aantal dagen homeopathie = 0 &
* aantal dagen medisch = 0 &
* niet aangevinkt: geen nascholingen gevolgd &
* jaar van registratie >= opgegeven jaar &
* regiocode < 30 &
* geen verloskundige
@@ -0,0 +1 @@
5fa3deb12801abd47
@@ -0,0 +1,107 @@
// last execution: Fri Feb 06 2026 09:50:10 GMT+0100 (Midden-Europese standaardtijd)
$par_nascholings_jaar=2025;
logAdd(log);
$year = $par_nascholings_jaar;
$list_name = string\concatenate('Na te scholen - ', $year);
$entities = Entity\GetMany('TargetList', 1, 'name', 'asc', 'name=', $list_name);
$n = array\length($entities);
ifThenElse($n == 0,
logAdd(log, 'warning', 'Geen distributielijst met naam: "', $list_name, '", maak deze eerst aan!');
,
logAdd(log, 'info', 'Distributielijst 'Na te scholen' aanwezig, leden worden vervangen...');
$doellijst = array\at($entities, 0);
$id = attr($doellijst, 'id');
logAdd(log, 'info', 'Leegmaken distributielijst...');
$rows = record\fetchRelatedManyHash('TargetList', $id,
'contacts', 'id, lastName, regiocode',
'lastName', 'asc'
);
$n = array\length($rows);
logAdd(log, 'info', 'Aantal gerelateerde leden: ', $n);
$i = 0;
$rcnt = 0;
while($i < $n,
$row = array\at($rows, $i);
$contact_id = hash\get($row, 'id');
record\unrelate('TargetList', $id, 'contacts', $contact_id);
$rcnt = $rcnt + 1;
$i = $i + 1;
);
logAdd(log, 'info', 'Relateren leden met regiocode < 30 en nascholingen = 0 en niet dispensatie en niet geregistreerd in het opgegeven jaar');
$rows = record\fetchManyHash('Contact', 'id, lidnummer, lastName, regiocode, dispensatie, datumRegistratie', 'lastName', 'asc');
$n = array\length($rows);
logAdd(log, 'info', 'Aantal leden om te beoordelen: ', $n);
$i = 0;
$cnt = 0;
$hom_cnt = 0;
while($i < $n,
$row = array\at($rows, $i);
$code = hash\get($row, 'regiocode') + 0;
ifThen($code < 8 || $code == 10,
$datum_registratie = hash\get($row, 'datumRegistratie');
$jaar_reg = datetime\year($datum_registratie);
$dispensatie = hash\get($row, 'dispensatie');
$lastname = hash\get($row, 'lastName');
$lidnummer = hash\get($row, 'lidnummer');
$niet = ($jaar_reg >= $year) || $dispensatie;
logAdd(log, 'info', 'lid ', $lidnummer, ' (', $lastname, '): jaar_reg=', $datum_registratie, ', dispensatie = ', $dispensatie, ' registratiejaar = ', $jaar_reg);
ifThenElse($niet,
logAdd(log, 'info', 'lid ', $lastname, ': dispensatie = ', $dispensatie, ' registratiejaar = ', $jaar_reg);
,
$hom_cnt = $hom_cnt + 1;
$contact_id = hash\get($row, 'id');
// Opvoeren lid als deze voor de nascholingstotalen op 0 zit en
// niet is aangegeven dat hij/zij geen nascholingen heeft gevolgd
$t_rows = record\fetchManyHash('Nascholingstotaal',
'contactId, dagenHomeopathie, dagenMedisch, dagen, geenNascholingGevolgd',
'jaar', 'asc',
'jaar=', $year,
'contactId=', $contact_id
);
$t_rows_n = array\length($t_rows);
ifThenElse($t_rows_n == 0,
logAdd(log, 'error', 'Geen nascholingstotaal voor contact ', $lastname);
,
ifThenElse($t_rows_n > 1,
logAdd(log, 'error', 'Onverwacht! aantal records nascholingstotaal > 1 voor ', $lastname);
,
$t_row = array\at($t_rows, 0);
$dagenHomeopathie = hash\get($t_row, 'dagenHomeopathie');
$dagenMedisch = hash\get($t_row, 'dagenMedisch');
$dagenOverig = hash\get($t_row, 'dagen');
$geen = hash\get($t_row, 'geenNascholingGevolgd');
ifThenElse($geen, $geen=1;, $geen=0);
$tot = $dagenHomeopathie + $dagenMedisch + $dagenOverig + $geen;
ifThenElse($geen == 0, $nv = "niet aangevinkt", $nv = "wel aangevinkt");
logAdd(log, 'info', $lidnummer, ': homeopathie=', $dagenHomeopathie, ', medisch=', $dagenMedisch,
', overig=', $dagenOverig, ', niet gevolgd=', $nv, ', tot=', $tot);
ifThen($tot <= 0,
$cnt = $cnt + 1;
logAdd(log, 'warning', 'Toevoegen lid: ',$cnt, ' - lidnummer:', $lidnummer, ', naam:', $lastname);
record\relate('TargetList', $id, 'contacts', $contact_id);
);
)
);
)
);
$i = $i + 1;
);
logAdd(log, 'info', $cnt, ' leden op de lijst');
);
@@ -0,0 +1 @@
Nascholingen nog niet ingevuld distributielijst maken
@@ -0,0 +1 @@
Door de veranderde structuur. Geaccrediteerde nascholingen bij leden omzetten naar handmatige nascholingen gekoppeld aan het jaar van nascholing.
@@ -0,0 +1 @@
5fca2bdbde7c729ff
@@ -0,0 +1,47 @@
// last execution: Fri Dec 04 2020 14:28:53 GMT+0100 (Midden-Europese standaardtijd)
logAdd(log);
$contacts = Entity\GetRelated(Entity\This(), 'contacts', 1000);
$n = array\length($contacts);
$i = 0;
while($i < $n,
$contact = array\at($contacts, $i);
$contact_id = attr($contact, 'id');
logAdd(log, 'info', 'Contact: ', attr($contact, 'lastName'));
$nascholingen = Entity\GetRelated($contact, 'nascholingen', 1000);
$j = 0;
$m = array\length($nascholingen);
ifThen($m > 0,
$totaal_2020s = Entity\GetRelated($contact, 'nascholingstotalen', 1000, 'jaar', 'asc', 'jaar=', 2020);
$totaal_2020 = array\at($totaal_2020s, 0);
$totaal_2020_id = attr($totaal_2020, 'id');
while($j < $m,
$nascholing = array\at($nascholingen, $j);
$nasch_id = attr($nascholing, 'id');
logAdd(log, 'info', 'Nascholing: ', attr($nascholing, 'code'), ' - ', $nasch_id);
$rec_id = record\create('HandmatigeNascholing', 'accNascholingId', $nasch_id,
'contactId', $contact_id, 'status', 'presentielijst'
);
record\relate('Nascholingstotaal', $totaal_2020_id, 'nascholingen', $rec_id);
$j = $j + 1;
);
$j = 0;
while ($j < $m,
$nascholing = array\at($nascholingen, $j);
$nasch_id = attr($nascholing, 'id');
record\unrelate('Contact', $contact_id, 'nascholingen', $nasch_id);
$j = $j + 1;
);
);
$i = $i + 1;
);
@@ -0,0 +1 @@
Nascholingen verplaatsen naar handmatig
@@ -0,0 +1 @@
Maakt nascholingsdata aan bij een opgevoerde geaccrediteerde nascholing
@@ -0,0 +1 @@
60030cfe09affc218
@@ -0,0 +1,51 @@
// last execution: Sat Jan 16 2021 17:25:13 GMT+0100 (Midden-Europese standaardtijd)
logAdd(log);
$nascholingen = record\fetchManyHash('Nascholing', 'id, name, dateStart, dateEnd', 'name', 'asc');
$i = 0;
$n = array\length($nascholingen);
logAdd(log, 'info', '#Nasscholingen: ', $n);
//$n = 1;
$userid = env\userAttribute('id');
while($i < $n,
$row = array\at($nascholingen, $i);
$name = hash\Get($row, 'name');
$id = hash\Get($row, 'id');
$dateStart = hash\Get($row, 'dateStart');
$dateEnd = hash\Get($row, 'dateEnd');
$data = record\fetchRelatedManyHash('Nascholing', $id, 'nascholingsDatums', 'id', 'name', 'asc');
$ndata = array\length($data);
$info = 'info';
ifThen($ndata > 1, $info = 'warning');
logAdd(log, $info, 'Nascholing: ', $name, ' - ', $ndata, ' datums geregistreerd');
ifThen($ndata == 0,
$days = datetime\diff($dateEnd, $dateStart, 'days') + 1;
$info = 'info';
ifThen($days > 1, $info='warning');
logAdd(log, $info, 'Aantal dagen: ', $days);
$endtime = datetime\format($dateEnd, 'UTC', 'HH:mm:ss');
logAdd(log, $info, 'einde dag:', $endtime);
$dt = $dateStart;
$dte = string\concatenate(datetime\format($dt, 'europe/amsterdam', 'YYYY-MM-DD'), ' ', $endtime);
$id = record\create('NascholingsDatum',
'dagStart', $dt, 'dagEinde', $dte,
'nascholingId', $id,
'assignedUserId', $userid
);
);
$i = $i + 1;
);
@@ -0,0 +1 @@
Nascholingsdata aanmaken
@@ -0,0 +1 @@
Maakt nascholingsnormen aan van jaar tot jaar
@@ -0,0 +1 @@
6003147ebce563769
@@ -0,0 +1,22 @@
// last execution: Sat Jan 16 2021 17:33:26 GMT+0100 (Midden-Europese standaardtijd)
$userid = env\userAttribute('id');
$regiocode = '08';
$jaar_begin = 2025;
$jaar_einde = 2030;
$dagen = 2;
$hom = 2;
$med = 0;
$jaar = $jaar_begin;
while($jaar < $jaar_einde,
record\create(
'Nascholingsnorm',
'jaar', $jaar,
'dagen', $dagen, 'dagenHomeopathie', $hom, 'dagenMedisch', $med,
'regiocode', $regiocode,
'assignedUserId', $userid
);
$jaar = $jaar + 1;
);
@@ -0,0 +1 @@
Nascholingsnorm aanmaken

Some files were not shown because too many files have changed in this diff Show More