Documentatie bijgwerkt. En structuur aangepast.
This commit is contained in:
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,13 @@
|
||||
240914 14:20:09 5270 Connect nvkhcrm@localhost on nvkhcrm using Socket
|
||||
5270 Query SELECT authToken.id AS `id`, authToken.is_active AS `isActive`, authToken.token AS `token`, authToken.secret AS `secret`, authToken.user_id AS `userId`, authToken.portal_id AS `portalId`, authToken.hash AS `hash`, authToken.created_at AS `createdAt`, authToken.last_access AS `lastAccess`, authToken.modified_at AS `modifiedAt` FROM `auth_token` AS `authToken` WHERE authToken.token = '9f82b356063f608eff8a22b411d654ab' AND authToken.deleted = 0 LIMIT 0, 1
|
||||
5270 Query SELECT user.id AS `id`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(user.first_name, ''), ' ', IFNULL(user.middle_name, ''), ' ', IFNULL(user.last_name, ''))), ''), ' ', ' ') AS `name`, user.deleted AS `deleted`, user.user_name AS `userName`, user.type AS `type`, user.password AS `password`, user.auth_method AS `authMethod`, user.api_key AS `apiKey`, user.salutation_name AS `salutationName`, user.first_name AS `firstName`, user.last_name AS `lastName`, user.is_active AS `isActive`, user.title AS `title`, emailAddresses.name AS `emailAddress`, phoneNumbers.name AS `phoneNumber`, user.avatar_color AS `avatarColor`, user.gender AS `gender`, user.created_at AS `createdAt`, user.modified_at AS `modifiedAt`, userData.auth2_f_a AS `auth2FA`, user.middle_name AS `middleName`, emailAddresses.opt_out AS `emailAddressIsOptedOut`, emailAddresses.invalid AS `emailAddressIsInvalid`, phoneNumbers.opt_out AS `phoneNumberIsOptedOut`, phoneNumbers.invalid AS `phoneNumberIsInvalid`, user.delete_id AS `deleteId`, user.default_team_id AS `defaultTeamId`, defaultTeam.name AS `defaultTeamName`, user.contact_id AS `contactId`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(contact.first_name, ''), ' ', IFNULL(contact.middle_name, ''), ' ', IFNULL(contact.last_name, ''))), ''), ' ', ' ') AS `contactName`, user.avatar_id AS `avatarId`, avatar.name AS `avatarName`, user.created_by_id AS `createdById`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(createdBy.first_name, ''), ' ', IFNULL(createdBy.middle_name, ''), ' ', IFNULL(createdBy.last_name, ''))), ''), ' ', ' ') AS `createdByName`, user.dashboard_template_id AS `dashboardTemplateId`, dashboardTemplate.name AS `dashboardTemplateName`, user.working_time_calendar_id AS `workingTimeCalendarId`, user.layout_set_id AS `layoutSetId`, userData.id AS `userDataId`, userData.id AS `userDataName` FROM `user` AS `user` LEFT JOIN `attachment` AS `avatar` ON user.avatar_id = avatar.id LEFT JOIN `contact` AS `contact` ON user.contact_id = contact.id LEFT JOIN `user_data` AS `userData` ON user.id = userData.user_id AND userData.deleted = 0 LEFT JOIN `dashboard_template` AS `dashboardTemplate` ON user.dashboard_template_id = dashboardTemplate.id LEFT JOIN `user` AS `createdBy` ON user.created_by_id = createdBy.id LEFT JOIN `team` AS `defaultTeam` ON user.default_team_id = defaultTeam.id LEFT JOIN `entity_email_address` AS `emailAddressesMiddle` ON user.id = emailAddressesMiddle.entity_id AND emailAddressesMiddle.deleted = 0 AND emailAddressesMiddle.primary = 1 AND emailAddressesMiddle.entity_type = 'User' LEFT JOIN `email_address` AS `emailAddresses` ON emailAddresses.id = emailAddressesMiddle.email_address_id AND emailAddresses.deleted = 0 LEFT JOIN `entity_phone_number` AS `phoneNumbersMiddle` ON user.id = phoneNumbersMiddle.entity_id AND phoneNumbersMiddle.deleted = 0 AND phoneNumbersMiddle.primary = 1 AND phoneNumbersMiddle.entity_type = 'User' LEFT JOIN `phone_number` AS `phoneNumbers` ON phoneNumbers.id = phoneNumbersMiddle.phone_number_id AND phoneNumbers.deleted = 0 WHERE user.user_name = 'admin' AND user.password = 'Wkpa1j5J2/Og1qN4NMoygh3XDj1Je1Gugpdzpd4QA0m7t92XN8Ze8AyFVlPlXlsOM.DU.2.XbH3wVoK11LOon/' AND user.type NOT IN ('api','system') AND user.deleted = 0 LIMIT 0, 1
|
||||
5270 Query SELECT team.id AS `id`, team.name AS `name` FROM `team` AS `team` JOIN `team_user` AS `teamUser` ON teamUser.team_id = team.id AND teamUser.user_id = '1' AND teamUser.deleted = 0 WHERE team.deleted = 0 ORDER BY team.name ASC
|
||||
5270 Query UPDATE `auth_token` SET auth_token.last_access = '2024-09-14 12:20:09', auth_token.modified_at = '2024-09-14 12:20:09' WHERE auth_token.id = '66e4c445c1874e115' AND auth_token.deleted = 0
|
||||
5270 Query SELECT authLogRecord.id AS `id` FROM `auth_log_record` AS `authLogRecord` WHERE authLogRecord.auth_token_id = '66e4c445c1874e115' AND authLogRecord.deleted = 0 ORDER BY authLogRecord.request_time DESC LIMIT 0, 1
|
||||
5270 Query SELECT preferences.id AS `id`, preferences.data AS `data` FROM `preferences` WHERE preferences.id = '1' LIMIT 0, 1
|
||||
5270 Query SELECT autofollow.entity_type AS `entityType` FROM `autofollow` AS `autofollow` WHERE autofollow.user_id = '1' AND autofollow.deleted = 0
|
||||
5270 Query SELECT user.id AS `id`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(user.first_name, ''), ' ', IFNULL(user.middle_name, ''), ' ', IFNULL(user.last_name, ''))), ''), ' ', ' ') AS `name`, user.deleted AS `deleted`, user.user_name AS `userName`, user.type AS `type`, user.password AS `password`, user.auth_method AS `authMethod`, user.api_key AS `apiKey`, user.salutation_name AS `salutationName`, user.first_name AS `firstName`, user.last_name AS `lastName`, user.is_active AS `isActive`, user.title AS `title`, emailAddresses.name AS `emailAddress`, phoneNumbers.name AS `phoneNumber`, user.avatar_color AS `avatarColor`, user.gender AS `gender`, user.created_at AS `createdAt`, user.modified_at AS `modifiedAt`, userData.auth2_f_a AS `auth2FA`, user.middle_name AS `middleName`, emailAddresses.opt_out AS `emailAddressIsOptedOut`, emailAddresses.invalid AS `emailAddressIsInvalid`, phoneNumbers.opt_out AS `phoneNumberIsOptedOut`, phoneNumbers.invalid AS `phoneNumberIsInvalid`, user.delete_id AS `deleteId`, user.default_team_id AS `defaultTeamId`, defaultTeam.name AS `defaultTeamName`, user.contact_id AS `contactId`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(contact.first_name, ''), ' ', IFNULL(contact.middle_name, ''), ' ', IFNULL(contact.last_name, ''))), ''), ' ', ' ') AS `contactName`, user.avatar_id AS `avatarId`, avatar.name AS `avatarName`, user.created_by_id AS `createdById`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(createdBy.first_name, ''), ' ', IFNULL(createdBy.middle_name, ''), ' ', IFNULL(createdBy.last_name, ''))), ''), ' ', ' ') AS `createdByName`, user.dashboard_template_id AS `dashboardTemplateId`, dashboardTemplate.name AS `dashboardTemplateName`, user.working_time_calendar_id AS `workingTimeCalendarId`, user.layout_set_id AS `layoutSetId`, userData.id AS `userDataId`, userData.id AS `userDataName` FROM `user` AS `user` LEFT JOIN `attachment` AS `avatar` ON user.avatar_id = avatar.id LEFT JOIN `contact` AS `contact` ON user.contact_id = contact.id LEFT JOIN `user_data` AS `userData` ON user.id = userData.user_id AND userData.deleted = 0 LEFT JOIN `dashboard_template` AS `dashboardTemplate` ON user.dashboard_template_id = dashboardTemplate.id LEFT JOIN `user` AS `createdBy` ON user.created_by_id = createdBy.id LEFT JOIN `team` AS `defaultTeam` ON user.default_team_id = defaultTeam.id LEFT JOIN `entity_email_address` AS `emailAddressesMiddle` ON user.id = emailAddressesMiddle.entity_id AND emailAddressesMiddle.deleted = 0 AND emailAddressesMiddle.primary = 1 AND emailAddressesMiddle.entity_type = 'User' LEFT JOIN `email_address` AS `emailAddresses` ON emailAddresses.id = emailAddressesMiddle.email_address_id AND emailAddresses.deleted = 0 LEFT JOIN `entity_phone_number` AS `phoneNumbersMiddle` ON user.id = phoneNumbersMiddle.entity_id AND phoneNumbersMiddle.deleted = 0 AND phoneNumbersMiddle.primary = 1 AND phoneNumbersMiddle.entity_type = 'User' LEFT JOIN `phone_number` AS `phoneNumbers` ON phoneNumbers.id = phoneNumbersMiddle.phone_number_id AND phoneNumbers.deleted = 0 WHERE user.id = '1' AND user.deleted = 0
|
||||
5270 Query SELECT contact.id AS `id` FROM `contact` AS `contact` LEFT JOIN `entity_email_address` AS `emailAddressesMultipleMiddle` ON contact.id = emailAddressesMultipleMiddle.entity_id AND emailAddressesMultipleMiddle.deleted = 0 AND emailAddressesMultipleMiddle.entity_type = 'Contact' LEFT JOIN `email_address` AS `emailAddressesMultiple` ON emailAddressesMultiple.id = emailAddressesMultipleMiddle.email_address_id AND emailAddressesMultiple.deleted = 0 WHERE (((contact.first_name = 'H.N.M. (Hans)') AND (contact.last_name = 'Dijkema')) OR ((emailAddressesMultiple.lower = LOWER('hans@dykema.nl')))) AND contact.deleted = 0 LIMIT 0, 1
|
||||
5270 Query SELECT contact.id AS `id`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(contact.first_name, ''), ' ', IFNULL(contact.middle_name, ''), ' ', IFNULL(contact.last_name, ''))), ''), ' ', ' ') AS `name` FROM `contact` AS `contact` LEFT JOIN `entity_email_address` AS `emailAddressesMultipleMiddle` ON contact.id = emailAddressesMultipleMiddle.entity_id AND emailAddressesMultipleMiddle.deleted = 0 AND emailAddressesMultipleMiddle.entity_type = 'Contact' LEFT JOIN `email_address` AS `emailAddressesMultiple` ON emailAddressesMultiple.id = emailAddressesMultipleMiddle.email_address_id AND emailAddressesMultiple.deleted = 0 WHERE (((contact.first_name = 'H.N.M. (Hans)') AND (contact.last_name = 'Dijkema')) OR ((emailAddressesMultiple.lower = LOWER('hans@dykema.nl')))) AND contact.deleted = 0 LIMIT 0, 1
|
||||
5270 Query SELECT contact.id AS `id`, REPLACE(NULLIF(TRIM(CONCAT(IFNULL(contact.first_name, ''), ' ', IFNULL(contact.middle_name, ''), ' ', IFNULL(contact.last_name, ''))), ''), ' ', ' ') AS `name` FROM `contact` AS `contact` LEFT JOIN `entity_email_address` AS `emailAddressesMultipleMiddle` ON contact.id = emailAddressesMultipleMiddle.entity_id AND emailAddressesMultipleMiddle.deleted = 0 AND emailAddressesMultipleMiddle.entity_type = 'Contact' LEFT JOIN `email_address` AS `emailAddressesMultiple` ON emailAddressesMultiple.id = emailAddressesMultipleMiddle.email_address_id AND emailAddressesMultiple.deleted = 0 WHERE (((contact.first_name = 'H.N.M. (Hans)') AND (contact.last_name = 'Dijkema')) OR ((emailAddressesMultiple.lower = LOWER('hans@dykema.nl')))) AND contact.deleted = 0 LIMIT 0, 1
|
||||
5270 Quit
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
+17
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,294 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// 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');
|
||||
|
||||
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');
|
||||
|
||||
log('warning', 'nascholingsnorm: jaar: ', $year, ', dagen: ', $na_dagen_norm_formeel,
|
||||
', medisch: ', $na_medisch_norm,
|
||||
', homeopathie: ', $na_homeopathie_norm,
|
||||
', start surplus: ', $na_start_surplus
|
||||
);
|
||||
|
||||
// $na_vrijstelling is op zich al bekend, maar misschien is er nog dispensatie of registratie jaar
|
||||
$na_registration = ($year <= $na_diploma_jr);
|
||||
$na_examenjaar = false;
|
||||
ifThenElse($na_dispensatie,
|
||||
$na_vrijstelling = $na_dagen_norm_formeel;
|
||||
,
|
||||
ifThen($na_registration,
|
||||
//$na_vrijstelling = $na_dagen_norm_formeel;
|
||||
$na_dagen_norm_formeel = 0;
|
||||
$na_medisch_norm = 0;
|
||||
$na_homeopathie_norm = 0;
|
||||
$na_examenjaar = true;
|
||||
);
|
||||
);
|
||||
|
||||
$na_dagen_norm = $na_dagen_norm_formeel - $na_vrijstelling;
|
||||
|
||||
// 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);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Bereken het saldo aan dagen
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
log('warning', 'medisch:', $na_totaal_medisch, ', hom:', $na_totaal_homeopathie,
|
||||
', werkgr:', $na_totaal_werkgroep, ', homoverig:', $na_totaal_dagen);
|
||||
|
||||
$na_totaal_alle_dagen = $na_totaal_dagen + $na_totaal_medisch + $na_totaal_homeopathie + $na_totaal_werkgroep;
|
||||
$na_saldo = $na_totaal_alle_dagen - $na_dagen_norm;
|
||||
$na_saldo = $na_saldo + $na_start_surplus;
|
||||
|
||||
$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, ', 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>',
|
||||
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,
|
||||
'examenjaar', $na_examenjaar
|
||||
);
|
||||
|
||||
ifThen(!$oke, log('error', 'Update ging niet goed!'));
|
||||
);
|
||||
|
||||
@@ -0,0 +1,931 @@
|
||||
//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_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_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, examenjaar, handmatig',
|
||||
'jaar', 'asc',
|
||||
'contactId=', $contact_id,
|
||||
);
|
||||
|
||||
$h_surplus = hash\new();
|
||||
$h_saldi = hash\new();
|
||||
$h_verr = hash\new();
|
||||
|
||||
$h_surplus_med = hash\new();
|
||||
$h_saldi_med = hash\new();
|
||||
$h_verr_med = hash\new();
|
||||
|
||||
$h_surplus_hom = hash\new();
|
||||
$h_saldi_hom = hash\new();
|
||||
$h_verr_hom = hash\new();
|
||||
|
||||
$na_n = array\length($na_rows);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Sla alle saldi op
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
log('warning', 'Alle saldi opslaan');
|
||||
|
||||
$na_i = 0;
|
||||
while($na_i < $na_n,
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$na_id = hash\get($na_row, 'id');
|
||||
|
||||
$na_saldo = hash\get($na_row, 'dagenSaldo');
|
||||
$h_saldi = hash\set($h_saldi, $na_id, $na_saldo);
|
||||
$h_verr = hash\set($h_verr, $na_id, '');
|
||||
|
||||
$na_saldo_med = hash\get($na_row, 'medischSaldo');
|
||||
$h_saldi_med = hash\set($h_saldi_med, $na_id, $na_saldo_med);
|
||||
$h_verr_med = hash\set($h_verr_med, $na_id, '');
|
||||
|
||||
$na_saldo_hom = hash\get($na_row, 'homeopathieSaldo');
|
||||
$h_saldi_hom = hash\set($h_saldi_hom, $na_id, $na_saldo_hom);
|
||||
$h_verr_hom = hash\set($h_verr_hom, $na_id, '');
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
log('warning', 'Oke, klaar');
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Pas de eenvoudige doorschuif methode toe t/m het gegeven jaar voor methode 1
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_jaar_max = -1;
|
||||
$na_i = 0;
|
||||
$na_surplus = 0;
|
||||
while($na_i < $na_n && hash\get(array\at($na_rows, $na_i), 'jaar') <= $na_methode_1_max_jaar,
|
||||
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$na_id = hash\get($na_row, 'id');
|
||||
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
ifThen($na_jaar > $na_jaar_max, $na_jaar_max = $na_jaar);
|
||||
|
||||
$na_verr = hash\get($h_verr, $na_id);
|
||||
|
||||
$na_saldo = hash\get($na_row, 'dagenSaldo');
|
||||
$na_start_surplus = hash\get($na_row, 'startSurplus');
|
||||
$na_saldo_med = hash\get($na_row, 'medischSaldo');
|
||||
$na_saldo_hom = hash\get($na_row, 'homeopathieSaldo');
|
||||
$na_examenjaar = hash\get($na_row, 'examenjaar');
|
||||
|
||||
$na_dg_totaal = hash\get($na_row, 'dagenTotaal');
|
||||
$na_dg_med = hash\get($na_row, 'dagenMedisch');
|
||||
$na_dg_hom = hash\get($na_row, 'dagenHomeopathie');
|
||||
|
||||
strAdd($na_verr, "[TDagen gevolgd:][N", number\format($na_dg_totaal, 1), "]%%");
|
||||
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
|
||||
$na_norm_tot = hash\get($na_row, 'dagenFormeleNorm');
|
||||
strAdd($na_verr, "[TNorm:][N", number\format($na_norm_tot, 1), "]%%");
|
||||
ifThen($na_examenjaar,
|
||||
strAdd($na_verr, "[RIn het examenjaar of daarvoor hoeft niet nageschoold te worden.R]%%");
|
||||
);
|
||||
|
||||
$na_surplus_gemaximeerd = false;
|
||||
$na_surplus_old = $na_surplus;
|
||||
$na_surplus = $na_surplus + $na_saldo;
|
||||
ifThen($na_surplus > $na_methode_1_max_surplus, $na_surplus = $na_methode_1_max_surplus; $na_surplus_gemaximeerd = true);
|
||||
|
||||
$na_surplus_med = $na_saldo_med;
|
||||
$na_surplus_hom = $na_saldo_hom;
|
||||
|
||||
strAdd($na_verr, "[TSaldo dagen:][N", number\format($na_saldo, 1), "]%%");
|
||||
|
||||
ifThenElse($na_start_surplus != 0.0,
|
||||
strAdd($na_verr, "[TResterend Saldo dagen uit voorgaande jaren:][N", number\format($na_start_surplus, 1), "]%%");
|
||||
,
|
||||
strAdd($na_verr, "[TResterend Saldo dagen van ", $na_jaar - 1, ":][N", number\format($na_surplus_old , 1), "]%%");
|
||||
);
|
||||
|
||||
ifThen($na_surplus >= 0,
|
||||
ifThen($na_surplus_gemaximeerd,
|
||||
strAdd($na_verr, "[TResterend saldo dagen gemaximaliseerd op:][N", number\format($na_surplus, 1), "]%%");
|
||||
);
|
||||
);
|
||||
|
||||
$h_verr = Hash\Set($h_verr, $na_id, $na_verr);
|
||||
|
||||
/*ifThenElse($na_norm_med > 0,
|
||||
$na_verr = hash\get($h_verr_med, $na_id);
|
||||
strAdd($na_verr, '[TDagen gevolgd:][N', number\format($na_dg_med, 1), ']%%');
|
||||
strAdd($na_verr, '[TNorm:][N', number\format($na_norm_med, 1), ']%%');
|
||||
strAdd($na_verr, '[TSaldo dagen:][N', number\format($na_saldo_med, 1), ']%%');
|
||||
$h_verr_med = Hash\Set($h_verr_med, $na_id, $na_verr);
|
||||
,
|
||||
$h_verr_med = Hash\Set($h_verr_med, $na_id, '');
|
||||
);*/
|
||||
|
||||
$h_verr_hom = Hash\Set($h_verr_hom, $na_id, '');
|
||||
$h_surplus = Hash\Set($h_surplus, $na_id, $na_surplus);
|
||||
$h_surplus_med = Hash\Set($h_surplus_med, $na_id, $na_saldo_med);
|
||||
$h_surplus_hom = Hash\Set($h_surplus_hom, $na_id, $na_saldo_hom);
|
||||
|
||||
log('warning', 'jaar=', $na_jaar, ', saldo=', $na_saldo, ', surplus=', $na_surplus);
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
log('warning', 'Door:', $na_i);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Nu wordt het moeilijker. Vanaf dit jaar moeten de drie saldi samen >= 0 zijn voor ieder opeenvolgend stel.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_ii = $na_i;
|
||||
|
||||
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');
|
||||
|
||||
// Normen bepalen
|
||||
$na_norm_hom = hash\get($na_row, 'homeopathieFormeleNorm');
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
$na_norm_tot = hash\get($na_row, 'dagenFormeleNorm');
|
||||
$na_examenjaar = hash\get($na_row, 'examenjaar');
|
||||
|
||||
// Gevolgde dagen bepalen
|
||||
$na_dg_werkgroep = hash\get($na_row, 'dagenWerkgroep');
|
||||
$na_dg_vrij = hash\get($na_row, 'dagenVrijstelling');
|
||||
$na_dg_totaal = hash\get($na_row, 'dagenTotaal');
|
||||
$na_dg_hom = hash\get($na_row, 'dagenHomeopathie');
|
||||
$na_dg_med = hash\get($na_row, 'dagenMedisch');
|
||||
$na_dg_ovg = hash\get($na_row, 'dagen');
|
||||
|
||||
log('warning', 'na_jaar = ', $na_jaar, ' - na_dg_totaal = ', $na_dg_totaal);
|
||||
|
||||
$na_verr = hash\get($h_verr_hom, $na_id);
|
||||
$saldo = hash\get($h_saldi_hom, $na_id);
|
||||
|
||||
strAdd($na_verr, "[TDagen gevolgd:][N", number\format($na_dg_hom, 1), "]%%");
|
||||
strAdd($na_verr, "[TNorm:][N", number\format($na_norm_hom, 1), "]%%");
|
||||
ifThen($na_examenjaar,
|
||||
strAdd($na_verr, "[RIn het examenjaar of daarvoor hoeft niet nageschoold te worden.R]%%");
|
||||
);
|
||||
strAdd($na_verr, "[TSaldo dagen:][N", number\format($saldo, 1), "]%%");
|
||||
|
||||
$h_verr_hom = hash\set($h_verr_hom, $na_id, $na_verr);
|
||||
|
||||
$na_verr = hash\get($h_verr_med, $na_id);
|
||||
$saldo = hash\get($h_saldi_med, $na_id);
|
||||
|
||||
strAdd($na_verr, "[TDagen gevolgd:][N", number\format($na_dg_med, 1), "]%%");
|
||||
strAdd($na_verr, "[TNorm:][N", number\format($na_norm_med, 1), "]%%");
|
||||
ifThen($na_examenjaar,
|
||||
strAdd($na_verr, "[RIn het examenjaar of daarvoor hoeft niet nageschoold te worden.R]%%");
|
||||
);
|
||||
strAdd($na_verr, "[TSaldo dagen:][N", number\format($saldo, 1), "]%%");
|
||||
|
||||
$h_verr_med = hash\set($h_verr_med, $na_id, $na_verr);
|
||||
|
||||
$na_verr = hash\get($h_verr, $na_id);
|
||||
$saldo = hash\get($h_saldi, $na_id);
|
||||
|
||||
strAdd($na_verr, "[TDagen gevolgd:][N", number\format($na_dg_totaal, 1), "]%%");
|
||||
|
||||
strAdd($na_verr, "[IDagen voor klassieke homeopathie:I][NI", number\format($na_dg_hom, 1), "]%%");
|
||||
strAdd($na_verr, "[IDagen voor medisch:I][NI", number\format($na_dg_med, 1), "]%%");
|
||||
strAdd($na_verr, "[IDagen voor homeopathie overig:I][NI", number\format($na_dg_ovg, 1), "]%%");
|
||||
strAdd($na_verr, "[IDagen voor werkgroep deelname:I][NI", number\format($na_dg_werkgroep, 1), "]%%");
|
||||
ifThen($na_dg_vrij > 0,
|
||||
strAdd($na_verr, "[TDagen vrijstelling:][N", number\format($na_dg_vrij, 1), "]%%");
|
||||
);
|
||||
strAdd($na_verr, "[TNorm:][N", number\format($na_norm_tot, 1), "]%%");
|
||||
ifThen($na_examenjaar,
|
||||
strAdd($na_verr, "[RIn het examenjaar of daarvoor hoeft niet nageschoold te worden.R]%%");
|
||||
);
|
||||
strAdd($na_verr, "[TSaldo dagen:][N", number\format($saldo, 1), "]%%");
|
||||
|
||||
$h_verr = hash\set($h_verr, $na_id, $na_verr);
|
||||
|
||||
// En de volgende rij
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
$na_i = $na_ii;
|
||||
while($na_i < $na_n,
|
||||
|
||||
$na_row_prev = null;
|
||||
ifThen($na_i > 0, $na_row_prev = array\at($na_rows, $na_i - 1);$na_id_prev = hash\get($na_row_prev, 'id'););
|
||||
$na_row_next = null;
|
||||
ifThen($na_i < ($na_n - 1), $na_row_next = array\at($na_rows, $na_i + 1);$na_id_next = hash\get($na_row_next, 'id'););
|
||||
|
||||
$na_row = array\at($na_rows, $na_i);
|
||||
$na_id = hash\get($na_row, 'id');
|
||||
$na_jaar = hash\get($na_row, 'jaar');
|
||||
ifThen($na_jaar > $na_jaar_max, $na_jaar_max = $na_jaar);
|
||||
|
||||
// Normen bepalen
|
||||
$na_norm_hom = hash\get($na_row, 'homeopathieFormeleNorm');
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
$na_norm_tot = hash\get($na_row, 'dagenFormeleNorm');
|
||||
$na_examenjaar = hash\get($na_row, 'examenjaar');
|
||||
|
||||
// Gevolgde dagen bepalen
|
||||
$na_dg_werkgroep = hash\get($na_row, 'dagenWerkgroep');
|
||||
$na_dg_vrij = hash\get($na_row, 'dagenVrijstelling');
|
||||
$na_dg_totaal = hash\get($na_row, 'dagenTotaal');
|
||||
$na_dg_hom = hash\get($na_row, 'dagenHomeopathie');
|
||||
$na_dg_med = hash\get($na_row, 'dagenMedisch');
|
||||
$na_dg_ovg = hash\get($na_row, 'dagen');
|
||||
|
||||
// Check of je het voorgaande surplus en evt. het opvolgende saldo kunt gebruiken om
|
||||
// te compenseren op het huidige saldo, indien dat noodzakelijk is.
|
||||
// Als het huidige saldo negatief is, moet dit worden gecompenseerd vanuit het voorgaande surplus en/of het opvolgende saldo.
|
||||
// Als je het negatieve saldo van medisch of van klassieke homeopathie ophoogt, dan
|
||||
// hoog je daarmee ook het totaal aantal dagen op. Dus die correctie moet je dan ook bij het totaal toepassen.
|
||||
|
||||
// Let op. Het aantal dagen dat wordt gecompenseerd mag niet het totaal aantal dagen van de norm overschrijden.
|
||||
// Dus, als het totaal aantal dagen 5 is en de norm is 4, dan kan ik maximaal 1 dag compenseren, ook al heb ik misschien
|
||||
// van zowel medisch als homeopathie 1 dag over, dus in totaal 2 dagen.
|
||||
|
||||
$na_totaal_extra = 0;
|
||||
|
||||
// Eerst berekenen we de klassieke homeopathie.
|
||||
// $h_saldi_hom, $h_surplus_hom, $h_verr_hom
|
||||
|
||||
log('warning', 'Berekenen Klassieke Homeopathie:');
|
||||
ifThenElse($na_row_prev,
|
||||
$prev_surplus = hash\get($h_surplus_hom, $na_id_prev);
|
||||
$prev_surplus_tot = hash\get($h_surplus, $na_id_prev);
|
||||
,
|
||||
$prev_surplus = 0;
|
||||
$prev_surplus_tot = 0;
|
||||
);
|
||||
ifThenElse($na_row_next,
|
||||
$next_saldo = hash\get($h_saldi_hom, $na_id_next);
|
||||
$next_saldo_tot = hash\get($h_saldi, $na_id_next);
|
||||
,
|
||||
$next_saldo = 0;
|
||||
$next_saldo_tot = 0;
|
||||
);
|
||||
$saldo = hash\get($h_saldi_hom, $na_id);
|
||||
$na_verr = hash\get($h_verr_hom, $na_id);
|
||||
|
||||
$na_surplus = $saldo;
|
||||
|
||||
// Kijk of je gebruik kunt maken van het surplus van het voorgaande jaar, tot maximaal de norm.
|
||||
ifThenElse($prev_surplus > 0 && $prev_surplus_tot > 0,
|
||||
$na_verr_a = hash\get($h_verr_hom, $na_id_prev);
|
||||
$na_verr_t = hash\get($h_verr, $na_id_prev);
|
||||
$na_verr_tot = hash\get($h_verr, $na_id);
|
||||
|
||||
ifThenElse($prev_surplus > $prev_surplus_tot,
|
||||
$max_compensatie = $prev_surplus_tot;
|
||||
$na_uitleg_extra = " (totaal < kl. homeopathie)";
|
||||
,
|
||||
$max_compensatie = $prev_surplus;
|
||||
$na_uitleg_extra = "";
|
||||
);
|
||||
$na_uitleg = string\concatenate("Aantal dagen surplus kl. homeopathie overgenomen uit ", toString($na_jaar - 1));
|
||||
$na_uitleg_a = string\concatenate("Aantal dagen surplus kl. homeopathie doorgeschoven naar ", toString($na_jaar));
|
||||
strAdd($na_uitleg, $na_uitleg_extra);
|
||||
strAdd($na_uitleg_a, $na_uitleg_extra);
|
||||
|
||||
ifThen($max_compensatie > $na_norm_hom,
|
||||
$max_compensatie = $na_norm_hom;
|
||||
$na_norm_uitl = string\concatenate(", gemaximaliseerd op de norm van ", number\format($na_norm_hom, 1));
|
||||
strAdd($na_uitleg, $na_norm_uitl);
|
||||
strAdd($na_uitleg_a, $na_norm_uitl);
|
||||
);
|
||||
|
||||
strAdd($na_verr, "[I", $na_uitleg, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_tot, "[I", $na_uitleg, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_a, "[I", $na_uitleg_a, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_t, "[I", $na_uitleg_a, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
|
||||
$prev_surplus = $prev_surplus - $max_compensatie;
|
||||
$prev_surplus_tot = $prev_surplus_tot - $max_compensatie;
|
||||
$na_surplus = $na_surplus + $max_compensatie;
|
||||
$na_totaal_extra = $na_totaal_extra + $max_compensatie;
|
||||
|
||||
$h_verr_hom = hash\set($h_verr_hom, $na_id_prev, $na_verr_a);
|
||||
$h_verr = hash\set($h_verr, $na_id_prev, $na_verr_t);
|
||||
$h_verr = hash\set($h_verr, $na_id, $na_verr_tot);
|
||||
,
|
||||
ifThen($prev_surplus > 0,
|
||||
strAdd($na_verr, "[EHoewel het saldo kl. homeopathie dagen in ", toString($na_jaar - 1), " toereikend is",
|
||||
", kan er niet doogeschoven worden, omdat het totaal saldo van ", toString($na_jaar - 1), " <= 0 isE]%%");
|
||||
);
|
||||
);
|
||||
|
||||
ifThenElse($na_surplus < 0,
|
||||
// Als het surplus daarna nog < 0 is (een tekort), kijk dan of je kunt gebruik maken van het saldo van opvolgend jaar.
|
||||
$na_verr_a = hash\get($h_verr_hom, $na_id_next);
|
||||
$na_verr_t = hash\get($h_verr, $na_id_next);
|
||||
// Het huidig surplus klassieke homeopathie voldoet niet.
|
||||
// Als er nu een huidig totaal surplus is, en het saldo klassieke homeopathie van het opvolgende jaar
|
||||
// is voldoende en het totaal saldo van het opvolgende jaar + het totaal surplus van het huidige jaar is voldoende
|
||||
// dan kan er nog wat.
|
||||
|
||||
ifThenElse($next_saldo > ($next_saldo_tot + $na_totaal_extra),
|
||||
$max_compensatie = ($next_saldo_tot + $na_totaal_extra),
|
||||
$max_compensatie = $next_saldo
|
||||
);
|
||||
|
||||
ifThen($max_compensatie > 0,
|
||||
ifThenElse(($max_compensatie + $na_surplus) >= 0,
|
||||
strAdd($na_verr_a, "[IAantal dagen gebruikt om ", toString($na_jaar), " te compenseren:I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
strAdd($na_verr_t, "[IAantal dagen gebruikt om voor ", toString($na_jaar), " klassieke homeopathie te compenseren:I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
strAdd($na_verr, "[IGecompenseerd met aantal dagen uit ", toString($na_jaar + 1), ":I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
$next_saldo = $next_saldo + $na_surplus;
|
||||
$next_saldo_tot = $next_saldo_tot + $na_surplus;
|
||||
$na_surplus = 0;
|
||||
,
|
||||
strAdd($na_verr_a, "[IAantal dagen gebruikt om ", toString($na_jaar), " te compenseren:I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_t, "[IAantal dagen gebruikt om voor ", toString($na_jaar), " klassieke homeopathie te compenseren:I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr, "[IGecompenseerd met aantal dagen uit ", toString($na_jaar + 1), ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
$na_surplus = $na_surplus + $max_compensatie;
|
||||
$next_saldo = $next_saldo - $max_compensatie;
|
||||
$next_saldo_tot = $next_saldo_tot - $max_compensatie;
|
||||
);
|
||||
,
|
||||
ifThen($next_saldo > ($next_saldo_tot + $na_totaal_extra) && $next_saldo > 0,
|
||||
strAdd($na_verr, "[EHoewel het saldo kl. homeopathie dagen in ", toString($na_jaar + 1), " toereikend is",
|
||||
", kan er niet gecompenseerd worden, omdat het totaal saldo van ", toString($na_jaar + 1), " <= 0 isE]%%");
|
||||
);
|
||||
);
|
||||
$h_verr_hom = hash\set($h_verr_hom, $na_id_next, $na_verr_a);
|
||||
$h_verr = hash\set($h_verr, $na_id_next, $na_verr_t);
|
||||
);
|
||||
|
||||
// Nu de saldi opslaan en surplus opslaan
|
||||
ifThen($na_row_prev,
|
||||
$h_surplus_hom = hash\set($h_surplus_hom, $na_id_prev, $prev_surplus);
|
||||
$h_surplus = hash\set($h_surplus, $na_id_prev, $prev_surplus_tot);
|
||||
);
|
||||
ifThen($na_row_next,
|
||||
$h_saldi_hom = hash\set($h_saldi_hom, $na_id_next, $next_saldo);
|
||||
$h_saldi = hash\set($h_saldi, $na_id_next, $next_saldo_tot);
|
||||
);
|
||||
$h_surplus_hom = Hash\Set($h_surplus_hom, $na_id, $na_surplus);
|
||||
$h_verr_hom = Hash\Set($h_verr_hom, $na_id, $na_verr);
|
||||
$na_end_hom = $na_surplus;
|
||||
|
||||
// Daarna berekenen we het medische gedeelte
|
||||
// $h_saldi_med, $h_surplus_med, $h_verr_med
|
||||
|
||||
log('warning', 'Berekenen Medische Dagen:');
|
||||
ifThenElse($na_row_prev,
|
||||
$prev_surplus = hash\get($h_surplus_med, $na_id_prev);
|
||||
$prev_surplus_tot = hash\get($h_surplus, $na_id_prev);
|
||||
,
|
||||
$prev_surplus = 0;
|
||||
$prev_surplus_tot = 0;
|
||||
);
|
||||
ifThenElse($na_row_next,
|
||||
$next_saldo = hash\get($h_saldi_med, $na_id_next);
|
||||
$next_saldo_tot = hash\get($h_saldi, $na_id_next);
|
||||
,
|
||||
$next_saldo = 0;
|
||||
$next_saldo_tot = 0;
|
||||
);
|
||||
$saldo = hash\get($h_saldi_med, $na_id);
|
||||
$na_verr = hash\get($h_verr_med, $na_id);
|
||||
|
||||
$na_surplus = $saldo;
|
||||
log('warning', 'jaar = ', $na_jaar, ' - surplus medisch = ', $na_surplus);
|
||||
|
||||
// Kijk of je gebruik kunt maken van het surplus van het voorgaande jaar, tot maximaal de norm.
|
||||
ifThenElse($prev_surplus > 0 && $prev_surplus_tot > 0,
|
||||
$na_verr_a = hash\get($h_verr_med, $na_id_prev);
|
||||
$na_verr_t = hash\get($h_verr, $na_id_prev);
|
||||
$na_verr_tot = hash\get($h_verr, $na_id);
|
||||
|
||||
ifThenElse($prev_surplus > $prev_surplus_tot,
|
||||
$max_compensatie = $prev_surplus_tot;
|
||||
$na_uitleg_extra = " (totaal < medisch)";
|
||||
,
|
||||
$max_compensatie = $prev_surplus;
|
||||
$na_uitleg_extra = "";
|
||||
);
|
||||
$na_uitleg = string\concatenate("Aantal dagen surplus medisch overgenomen uit ", toString($na_jaar - 1));
|
||||
$na_uitleg_a = string\concatenate("Aantal dagen surplus medisch doorgeschoven naar ", toString($na_jaar));
|
||||
strAdd($na_uitleg, $na_uitleg_extra);
|
||||
strAdd($na_uitleg_a, $na_uitleg_extra);
|
||||
|
||||
ifThen($max_compensatie > $na_norm_med,
|
||||
$max_compensatie = $na_norm_med;
|
||||
$na_norm_uitl = string\concatenate(", gemaximaliseerd op de norm van ", number\format($na_norm_med, 1));
|
||||
strAdd($na_uitleg, $na_norm_uitl);
|
||||
strAdd($na_uitleg_a, $na_norm_uitl);
|
||||
);
|
||||
|
||||
strAdd($na_verr, "[I", $na_uitleg, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_tot, "[I", $na_uitleg, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_a, "[I", $na_uitleg_a, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_t, "[I", $na_uitleg_a, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
|
||||
$prev_surplus = $prev_surplus - $max_compensatie;
|
||||
$prev_surplus_tot = $prev_surplus_tot - $max_compensatie;
|
||||
$na_surplus = $na_surplus + $max_compensatie;
|
||||
$na_totaal_extra = $na_totaal_extra + $max_compensatie;
|
||||
|
||||
$h_verr_med = hash\set($h_verr_med, $na_id_prev, $na_verr_a);
|
||||
$h_verr = hash\set($h_verr, $na_id_prev, $na_verr_t);
|
||||
$h_verr = hash\set($h_verr, $na_id, $na_verr_tot);
|
||||
,
|
||||
ifThen($prev_surplus > 0,
|
||||
strAdd($na_verr, "[EHoewel het saldo medisch dagen in ", toString($na_jaar - 1), " toereikend is",
|
||||
", kan er niet doorgeschoven worden, omdat het totaal saldo van ", toString($na_jaar - 1), " <= 0 isE]%%");
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
ifThen($na_surplus < 0,
|
||||
// Als het surplus daarna nog < 0 is (een tekort), kijk dan of je kunt gebruik maken van het saldo van opvolgend jaar.
|
||||
$na_verr_a = hash\get($h_verr_med, $na_id_next);
|
||||
$na_verr_t = hash\get($h_verr, $na_id_next);
|
||||
|
||||
ifThenElse($next_saldo > ($next_saldo_tot + $na_totaal_extra),
|
||||
$max_compensatie = ($next_saldo_tot + $na_totaal_extra),
|
||||
$max_compensatie = $next_saldo
|
||||
);
|
||||
|
||||
strAdd($na_verr, "[Enext-saldo = ", $next_saldo, ", next-saldo-tot = ", $next_saldo_tot, ", max-compensatie = ", $max_compensatie, "E]%%");
|
||||
strAdd($na_verr, "[Ena_totaal_extra = ", $na_totaal_extra, "E]%%");
|
||||
|
||||
ifThenElse($max_compensatie > 0,
|
||||
ifThenElse(($max_compensatie + $na_surplus) >= 0,
|
||||
strAdd($na_verr_a, "[IAantal dagen gebruikt om ", toString($na_jaar), " te compenseren:I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
strAdd($na_verr_t, "[IAantal dagen gebruikt om voor ", toString($na_jaar), " medisch te compenseren:I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
strAdd($na_verr, "[IGecompenseerd met aantal dagen uit ", toString($na_jaar + 1), ":I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
$next_saldo = $next_saldo + $na_surplus;
|
||||
$next_saldo_tot = $next_saldo_tot + $na_surplus;
|
||||
$na_surplus = 0;
|
||||
,
|
||||
strAdd($na_verr_a, "[IAantal dagen gebruikt om ", toString($na_jaar), " te compenseren:I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_t, "[IAantal dagen gebruikt om voor ", toString($na_jaar), " medisch te compenseren:I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr, "[IGecompenseerd met aantal dagen uit ", toString($na_jaar + 1), ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
$na_surplus = $na_surplus + $max_compensatie;
|
||||
$next_saldo = $next_saldo - $max_compensatie;
|
||||
$next_saldo_tot = $next_saldo_tot - $max_compensatie;
|
||||
);
|
||||
,
|
||||
ifThen($next_saldo > ($next_saldo_tot + $na_totaal_extra) && $next_saldo > 0,
|
||||
strAdd($na_verr, "[EHoewel het saldo medische dagen in ", toString($na_jaar + 1), " toereikend is",
|
||||
", kan er niet gecompenseerd worden, omdat het totaal saldo van ", toString($na_jaar + 1), " <= 0 isE]%%");
|
||||
);
|
||||
);
|
||||
$h_verr_med = hash\set($h_verr_med, $na_id_next, $na_verr_a);
|
||||
$h_verr = hash\set($h_verr, $na_id_next, $na_verr_t);
|
||||
);
|
||||
|
||||
// Nu de saldi opslaan en surplus opslaan
|
||||
ifThen($na_row_prev,
|
||||
$h_surplus_med = hash\set($h_surplus_med, $na_id_prev, $prev_surplus);
|
||||
$h_surplus = hash\set($h_surplus, $na_id_prev, $prev_surplus_tot);
|
||||
);
|
||||
ifThen($na_row_next,
|
||||
$h_saldi_med = hash\set($h_saldi_med, $na_id_next, $next_saldo);
|
||||
$h_saldi = hash\set($h_saldi, $na_id_next, $next_saldo_tot);
|
||||
);
|
||||
|
||||
log('warning', 'jaar = ', $na_jaar, ' - surplus medisch berekend = ', $na_surplus);
|
||||
|
||||
$h_surplus_med = Hash\Set($h_surplus_med, $na_id, $na_surplus);
|
||||
$h_verr_med = Hash\Set($h_verr_med, $na_id, $na_verr);
|
||||
$na_end_med = $na_surplus;
|
||||
|
||||
// En nu berekenen we het totaal. Dat is en blijft een lastige
|
||||
// $h_saldi, $h_surplus, $h_verr
|
||||
|
||||
log('warning', 'Berekenen Totaal Dagen:');
|
||||
ifThenElse($na_row_prev, $prev_surplus = hash\get($h_surplus, hash\get($na_row_prev, 'id')), $prev_surplus = 0);
|
||||
ifThenElse($na_row_next, $next_saldo = hash\get($h_saldi, hash\get($na_row_next, 'id')), $next_saldo = 0);
|
||||
$saldo = hash\get($h_saldi, $na_id);
|
||||
$na_verr = hash\get($h_verr, $na_id);
|
||||
|
||||
$na_surplus = $saldo;
|
||||
|
||||
// Kijk of je gebruik kunt maken van het surplus van het voorgaande jaar, tot maximaal de norm.
|
||||
ifThen($prev_surplus > 0,
|
||||
$na_verr_a = hash\get($h_verr, $na_id_prev);
|
||||
|
||||
$max_compensatie = $prev_surplus;
|
||||
$na_uitleg = string\concatenate("Aantal aantal dagen surplus overgenomen uit ", toString($na_jaar - 1));
|
||||
$na_uitleg_a = string\concatenate("Aantal dagen surplus doorgeschoven naar ", toString($na_jaar));
|
||||
|
||||
ifThen(($na_totaal_extra + $max_compensatie) > $na_norm_tot,
|
||||
$max_compensatie = $na_norm_tot - $na_totaal_extra;
|
||||
ifThenElse($na_totaal_extra > 0,
|
||||
$norm_uitleg = string\concatenate(", incl. kl. hom. en medisch gemaximaliseerd op de norm van ", number\format($na_norm_tot, 1));
|
||||
,
|
||||
$norm_uitleg = string\concatenate(", gemaximaliseerd op de norm van ", number\format($na_norm_tot, 1));
|
||||
);
|
||||
|
||||
strAdd($na_uitleg, $norm_uitleg);
|
||||
strAdd($na_uitleg_a, $norm_uitleg);
|
||||
);
|
||||
|
||||
strAdd($na_verr, "[I", $na_uitleg, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
strAdd($na_verr_a, "[I", $na_uitleg_a, ":I][NI", number\format($max_compensatie, 1), "]%%");
|
||||
|
||||
$prev_surplus = $prev_surplus - $max_compensatie;
|
||||
$na_surplus = $na_surplus + $max_compensatie + $na_totaal_extra;
|
||||
|
||||
$h_verr = hash\set($h_verr, $na_id_prev, $na_verr_a);
|
||||
);
|
||||
|
||||
ifThen($na_surplus < 0,
|
||||
// Als het surplus daarna nog < 0 is (een tekort), kijk dan of je kunt gebruik maken van het saldo van opvolgend jaar.
|
||||
$na_verr_a = hash\get($h_verr, $na_id_next);
|
||||
ifThen($next_saldo > 0,
|
||||
ifThenElse(($next_saldo + $na_surplus) >= 0,
|
||||
strAdd($na_verr_a, "[IAantal dagen gebruikt om ", toString($na_jaar), " te compenseren:I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
strAdd($na_verr, "[IGecompenseerd met aantal dagen uit ", toString($na_jaar + 1), ":I][NI", number\format(-1 * $na_surplus, 1), "]%%");
|
||||
$next_saldo = $next_saldo + $na_surplus;
|
||||
$na_surplus = 0;
|
||||
,
|
||||
strAdd($na_verr_a, "[IAantal dagen gebruikt om ", toString($na_jaar), " te compenseren:I][NI", number\format($next_saldo, 1), "]%%");
|
||||
strAdd($na_verr, "[IGecompenseerd met aantal dagen uit ", toString($na_jaar + 1), ":I][NI", number\format($next_saldo, 1), "]%%");
|
||||
$na_surplus = $na_surplus + $next_saldo;
|
||||
$next_saldo = 0;
|
||||
);
|
||||
);
|
||||
$h_verr = hash\set($h_verr, $na_id_next, $na_verr_a);
|
||||
);
|
||||
|
||||
// Nu de saldi opslaan en surplus opslaan
|
||||
ifThen($na_row_prev, $h_surplus = hash\set($h_surplus, $na_id_prev, $prev_surplus));
|
||||
ifThen($na_row_next, $h_saldi = hash\set($h_saldi, $na_id_next, $next_saldo));
|
||||
|
||||
$h_surplus = Hash\Set($h_surplus, $na_id, $na_surplus);
|
||||
$h_verr = Hash\Set($h_verr, $na_id, $na_verr);
|
||||
|
||||
// En de volgende rij
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
// Het resterend saldo moet je voor alle jaren berekenen.
|
||||
$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');
|
||||
|
||||
// Normen bepalen
|
||||
$na_norm_hom = hash\get($na_row, 'homeopathieFormeleNorm');
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
$na_norm_tot = hash\get($na_row, 'dagenFormeleNorm');
|
||||
$na_examenjaar = hash\get($na_row, 'examenjaar');
|
||||
|
||||
// Surplus bepalen
|
||||
$na_surplus_hom = hash\get($h_surplus_hom, $na_id);
|
||||
$na_surplus_med = hash\get($h_surplus_med, $na_id);
|
||||
$na_surplus = hash\get($h_surplus, $na_id);
|
||||
ifThenElse($na_jaar > $na_methode_1_max_jaar,
|
||||
$na_end_med = $na_surplus_med;
|
||||
$na_end_hom = $na_surplus_hom;
|
||||
,
|
||||
$na_end_med = 0;
|
||||
$na_end_hom = 0;
|
||||
);
|
||||
|
||||
// Resultaten uitvoeren
|
||||
$na_verr = hash\get($h_verr_hom, $na_id);
|
||||
|
||||
ifThen($na_jaar > $na_methode_1_max_jaar,
|
||||
// Homeopathie
|
||||
ifThen($na_norm_hom > 0,
|
||||
ifThen($na_surplus_hom < 0,
|
||||
ifThenElse($na_jaar == $na_jaar_max,
|
||||
strAdd($na_verr, "[EHet tekort kan niet (volledig) worden gecompenseerd met ", toString($na_jaar - 1), "E]%%");
|
||||
,
|
||||
strAdd($na_verr, "[EHet tekort kan niet (volledig) worden gecompenseerd met ", toString($na_jaar - 1), " en/of ", toString($na_jaar + 1), "E]%%");
|
||||
);
|
||||
);
|
||||
strAdd($na_verr, "[TResterend saldo dagen:][N", number\format($na_surplus_hom, 1), "]%%");
|
||||
|
||||
ifThenElse($na_surplus_hom < 0,
|
||||
$na_verr = string\concatenate("[OKlassieke Homeopathie onvoldoendeO]%%", $na_verr);
|
||||
,
|
||||
$na_verr = string\concatenate("[VKlassieke Homeopathie voldoendeV]%%", $na_verr);
|
||||
);
|
||||
|
||||
$h_verr_hom = Hash\Set($h_verr_hom, $na_id, $na_verr);
|
||||
);
|
||||
|
||||
// Medisch
|
||||
ifThen($na_norm_med > 0,
|
||||
$na_verr = hash\get($h_verr_med, $na_id);
|
||||
|
||||
ifThen($na_surplus_med < 0,
|
||||
ifThenElse($na_jaar == $na_jaar_max,
|
||||
strAdd($na_verr, "[EHet tekort kan niet (volledig) worden gecompenseerd met ", toString($na_jaar - 1), "E]%%");
|
||||
,
|
||||
strAdd($na_verr, "[EHet tekort kan niet (volledig) worden gecompenseerd met ", toString($na_jaar - 1), " en/of ", toString($na_jaar + 1), "E]%%");
|
||||
);
|
||||
);
|
||||
strAdd($na_verr, "[TResterend saldo dagen:][N", number\format($na_surplus_med, 1), "]%%");
|
||||
|
||||
ifThenElse($na_surplus_med < 0,
|
||||
$na_verr = string\concatenate("[OMedisch onvoldoendeO]%%", $na_verr);
|
||||
,
|
||||
$na_verr = string\concatenate("[VMedisch voldoendeV]%%", $na_verr);
|
||||
);
|
||||
|
||||
$h_verr_med = Hash\Set($h_verr_med, $na_id, $na_verr);
|
||||
);
|
||||
);
|
||||
|
||||
// Totalen
|
||||
$na_verr = hash\get($h_verr, $na_id);
|
||||
|
||||
ifThen($na_surplus < 0,
|
||||
ifThenElse($na_jaar == $na_jaar_max,
|
||||
strAdd($na_verr, "[EHet tekort kan niet (volledig) worden gecompenseerd met ", toString($na_jaar - 1), "E]%%");
|
||||
,
|
||||
strAdd($na_verr, "[EHet tekort kan niet (volledig) worden gecompenseerd met ", toString($na_jaar - 1), " en/of ", toString($na_jaar + 1), "E]%%");
|
||||
);
|
||||
);
|
||||
strAdd($na_verr, "[TResterend saldo dagen:][N", number\format($na_surplus, 1), "]%%");
|
||||
|
||||
ifThenElse($na_surplus < 0 || $na_end_med < 0 || $na_end_hom < 0,
|
||||
$na_verr = string\concatenate("[OTotaal onvoldoendeO]%%", $na_verr);
|
||||
ifThen($na_surplus >= 0.0,
|
||||
ifThen($na_end_hom < 0 ,
|
||||
strAdd($na_verr, "[WAantal dagen resterend tekort Klassieke Homeopathie:W][N", number\format(-1 * $na_end_hom, 1), "]%%");
|
||||
);
|
||||
ifThen($na_end_med < 0,
|
||||
strAdd($na_verr, "[WAantal dagen resterend tekort Medisch:W][N", number\format(-1 * $na_end_med, 1), "]%%");
|
||||
);
|
||||
);
|
||||
,
|
||||
$na_verr = string\concatenate("[VTotaal voldoendeV]%%", $na_verr);
|
||||
);
|
||||
|
||||
$h_verr = Hash\Set($h_verr, $na_id, $na_verr);
|
||||
|
||||
// En de volgende rij
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// En nu slaan we de boel gewoon op in de nascholingstotalen. Nou, was dat nou moeilijk?
|
||||
// En bepaal en passent ook even de bijbehorende rapportage voor
|
||||
// - Dashboard
|
||||
// - Tekst
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$na_i = 0;
|
||||
$na_jaar_voorlopig = $na_jaar_max - 2;
|
||||
|
||||
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');
|
||||
|
||||
// Normen bepalen
|
||||
$na_norm_hom = hash\get($na_row, 'homeopathieFormeleNorm');
|
||||
$na_norm_med = hash\get($na_row, 'medischFormeleNorm');
|
||||
$na_norm_tot = hash\get($na_row, 'dagenFormeleNorm');
|
||||
$na_examenjaar = hash\get($na_row, 'examenjaar');
|
||||
|
||||
// Ophalen surplus waardes voor nascholingstotaal
|
||||
$na_surplus = hash\get($h_surplus, $na_id);
|
||||
$na_surplus_med = hash\get($h_surplus_med, $na_id);
|
||||
$na_surplus_hom = hash\get($h_surplus_hom, $na_id);
|
||||
|
||||
// Ophalen totalen
|
||||
$na_dg_hom = hash\get($na_row, 'dagenHomeopathie');
|
||||
$na_dg_med = hash\get($na_row, 'dagenMedisch');
|
||||
$na_dg_ovg = hash\get($na_row, 'dagen');
|
||||
$na_dg_werkgroep = hash\get($na_row, 'dagenWerkgroep');
|
||||
$na_dg_vrij = hash\get($na_row, 'dagenVrijstelling');
|
||||
$na_saldo = hash\get($na_row, 'dagenSaldo');
|
||||
$na_hand = hash\get($na_row, 'handmatig');
|
||||
|
||||
// Berekenen dashboard waarde op basis van de surplus waardes
|
||||
$na_dashboard = "";
|
||||
$na_onvoldoende = false;
|
||||
|
||||
$na_script = string\concatenate(
|
||||
'$na_surpl_k = toInt($na_surpl * 1000);',
|
||||
'$na_surpl_i = toInt($na_surpl) * 1000;',
|
||||
'ifThenElse($na_surpl_k == $na_surpl_i, $na_surpl_pos = 0, $na_surpl_pos = 1);',
|
||||
'ifThenElse($na_surpl_i == 1000, $na_dg = "dag", $na_dg = "dagen");',
|
||||
'ifThenElse($na_surpl >= 0, $na_surpl_f = number\format($na_surpl, $na_surpl_pos), $na_surpl_f = number\format(-1 * $na_surpl, $na_surpl_pos));',
|
||||
'ifThenElse($na_surpl >= 0, ',
|
||||
' ifThenElse($na_onvoldoende, ',
|
||||
' $na_dashb = string\concatenate($na_surpl_lbl, " onvoldoende");',
|
||||
' $na_class = "tekort";',
|
||||
' ,',
|
||||
' ifThenElse($na_surpl_i == 0, ',
|
||||
' $na_dashb = string\concatenate($na_surpl_lbl, " voldoende");',
|
||||
' ,',
|
||||
' $na_dashb = string\concatenate($na_surpl_lbl, " surplus: ", $na_surpl_f, " ", $na_dg);',
|
||||
' );',
|
||||
' $na_class = "goed";',
|
||||
' );',
|
||||
',',
|
||||
' $na_dashb = string\concatenate($na_surpl_lbl, " tekort: ", $na_surpl_f, " ", $na_dg);',
|
||||
' $na_class = "tekort";',
|
||||
');',
|
||||
);
|
||||
|
||||
//log('warning', 'na_jaar_voorlopig = ', $na_jaar_voorlopig, ', na_jaar = ', $na_jaar);
|
||||
|
||||
ifThenElse($na_jaar > $na_jaar_voorlopig,
|
||||
$na_bepaald = string\concatenate('<span ', $na_style_onbepaald, '>Voorlopig resultaat</span>');
|
||||
$na_bep_rep = string\concatenate('<span ', $na_style_onbepaald_report, '>Voorlopig resultaat</span>');
|
||||
,
|
||||
$na_bepaald = string\concatenate('<span ', $na_style_bepaald, '>Definitief resultaat</span>');
|
||||
$na_bep_rep = string\concatenate('<span ', $na_style_bepaald_report, '>Definitief resultaat</span>');
|
||||
);
|
||||
|
||||
$na_surpl = $na_surplus_hom;
|
||||
$na_surpl_lbl = "Kl. Homeopathie";
|
||||
Exec($na_script);
|
||||
ifThenElse($na_jaar <= $na_methode_1_max_jaar,
|
||||
$na_dashb_hom = string\concatenate('<span ', $na_style_nstd_nvt, '>', $na_dashb, '</span>');
|
||||
,
|
||||
ifThenElse($na_class == 'goed', $na_style = $na_style_nstd_goed, $na_style = $na_style_nstd_tekort);
|
||||
$na_dashb_hom = string\concatenate('<span ', $na_style, '>', $na_dashb, '</span>');
|
||||
);
|
||||
$na_dashboard = string\concatenate($na_dashboard, $na_dashb_hom);
|
||||
|
||||
$na_surpl = $na_surplus_med;
|
||||
$na_surpl_lbl = "Medisch";
|
||||
Exec($na_script);
|
||||
ifThenElse($na_jaar <= $na_methode_1_max_jaar,
|
||||
$na_dashb_med = string\concatenate('<span ', $na_style_nstd_nvt, '>', $na_dashb, '</span>');
|
||||
,
|
||||
ifThenElse($na_class == 'goed', $na_style = $na_style_nstd_goed, $na_style = $na_style_nstd_tekort);
|
||||
$na_dashb_med = string\concatenate('<span ', $na_style, '>', $na_dashb, '</span>');
|
||||
);
|
||||
$na_dashboard = string\concatenate($na_dashboard, $na_dashb_med);
|
||||
|
||||
ifThenElse($na_jaar > $na_methode_1_max_jaar,
|
||||
$na_end_med = $na_surplus_med;
|
||||
$na_end_hom = $na_surplus_hom;
|
||||
,
|
||||
$na_end_med = 0;
|
||||
$na_end_hom = 0;
|
||||
);
|
||||
|
||||
ifThen($na_end_med < 0 || $na_end_hom < 0,
|
||||
$na_onvoldoende = true;
|
||||
);
|
||||
|
||||
$na_surpl = $na_surplus;
|
||||
$na_surpl_lbl = "Totaal";
|
||||
Exec($na_script);
|
||||
|
||||
ifThenElse($na_class == 'goed', $na_style = $na_style_nstd_goed, $na_style = $na_style_nstd_tekort);
|
||||
$na_dashb = string\concatenate('<span ', $na_style, '>', $na_dashb, '</span>');
|
||||
$na_dashboard = string\concatenate($na_dashboard, $na_dashb);
|
||||
|
||||
$na_dashboard = string\concatenate($na_bepaald, $na_dashboard);
|
||||
|
||||
$na_hand_check = ' ';
|
||||
ifThen($na_hand, $na_hand_check='<span class="fa fa-check"></span>');
|
||||
|
||||
$na_dashboard_id = string\concatenate('dashboard_', $na_id);
|
||||
$na_dashboard = string\concatenate($na_dashboard,
|
||||
'<script>',
|
||||
'function toggle_', $na_dashboard_id, '() {',
|
||||
' var els = document.querySelectorAll(', "'", 'div[data-type="nt-dashboard"]', "'", ');',
|
||||
' var el = els[0];',
|
||||
' var toggle = (el.style.display == "none") ? "block" : "none";',
|
||||
' els.forEach(function(el) { el.style.display = toggle; });',
|
||||
' els = document.querySelectorAll(', "'", 'span[button-type="nt-dashboard"]', "'", ');',
|
||||
' els.forEach(function(el) { ',
|
||||
' if (toggle == "none") { el.classList.remove("fa-angle-up"); el.classList.add("fa-angle-down"); }',
|
||||
' else { el.classList.remove("fa-angle-down"); el.classList.add("fa-angle-up"); }',
|
||||
' });'
|
||||
'}',
|
||||
'</script>'
|
||||
);
|
||||
$na_dashboard = string\concatenate($na_dashboard,
|
||||
'<span class="input-group-btn" button-type="nt-dashboard">',
|
||||
'<button class="btn btn-default btn-icon" type="button" style="border-radius:5px;padding: 3px; margin-bottom:2px;height:unset;">',
|
||||
'<span button-type="nt-dashboard" class="fas fa-angle-down" onclick="toggle_', $na_dashboard_id, '();"></span></button></span>');
|
||||
$na_dashboard = string\concatenate($na_dashboard,
|
||||
'<div class="dashboard-data" data-type="nt-dashboard" id="', $na_dashboard_id, '" style="display:none;">',
|
||||
'<table>',
|
||||
'<tr>',
|
||||
'<th>Homeopathie</th>',
|
||||
'<th>Medisch</th>',
|
||||
'<th>Overig</th>',
|
||||
'<th>Werkgroep</th>',
|
||||
'<th>Vrijsttelling</th>',
|
||||
'<th>Norm totaal</th>',
|
||||
'<th>Dagen saldo</th>',
|
||||
'<th>Surplus</th>',
|
||||
'<th><i class="fa fa-pen"></i></th>',
|
||||
'</tr><tr>',
|
||||
'<td>', $na_dg_hom, '</td>',
|
||||
'<td>', $na_dg_med, '</td>',
|
||||
'<td>', $na_dg_ovg, '</td>',
|
||||
'<td>', $na_dg_werkgroep,'</td>',
|
||||
'<td>', $na_dg_vrij,'</td>',
|
||||
'<td>', $na_norm_tot, '</td>',
|
||||
'<td>', $na_saldo,'</td>',
|
||||
'<td>', $na_surplus, '</td>',
|
||||
'<td>', $na_hand_check, '</td>',
|
||||
'</tr>',
|
||||
'</table>',
|
||||
'</div>');
|
||||
|
||||
// Maak nu een rapport over de getallen. Kijk hoe het is bepaald.
|
||||
//dagen, dagenMedisch, dagenHomeopathie
|
||||
|
||||
|
||||
// Maak rapport op
|
||||
$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_verr_hom = hash\get($h_verr_hom, $na_id);
|
||||
$na_verr_med = hash\get($h_verr_med, $na_id);
|
||||
$na_verr_tot = hash\get($h_verr, $na_id);
|
||||
$na_report = string\replace($na_report, '%hom%', $na_verr_hom);
|
||||
$na_report = string\replace($na_report, '%med%', $na_verr_med);
|
||||
$na_report = string\replace($na_report, '%tot%', $na_verr_tot);
|
||||
|
||||
$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, '[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, '[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');
|
||||
|
||||
log('warning', 'Updating record voor jaar:', $na_jaar);
|
||||
|
||||
// Updaten van record
|
||||
record\update('Nascholingstotaal', $na_id,
|
||||
'surplus', $na_surplus,
|
||||
'surplusMedisch', $na_surplus_med,
|
||||
'surplusHomeopathie', $na_surplus_hom,
|
||||
'dashboard', $na_dashboard,
|
||||
'berekeningsuitleg', $na_report
|
||||
);
|
||||
|
||||
log('warning', 'record updated, increasing na_i:', $na_i, ' with 1');
|
||||
|
||||
$na_i = $na_i + 1;
|
||||
);
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Klaar.
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
global\unset($na_in_calc_key, true);
|
||||
@@ -0,0 +1,32 @@
|
||||
//exec last execution: Mon Jul 13 2020 17:57:38 GMT+0200 (Midden-Europese zomertijd)
|
||||
|
||||
$sln_rows = record\fetchManyHash('Nascholingsnorm', 'id, jaar, dagen, dagenMedisch, dagenHomeopathie, 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);
|
||||
Reference in New Issue
Block a user