Files
CRM_Scripts_NVKH/code-current/scripts/Alle nascholingstotalen herberekenen.js
2026-08-28 12:28:39 +02:00

76 lines
3.0 KiB
JavaScript

// 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;
);
);