Files
CRM_Scripts_NVKH/code-current/scripts/Presentielijst inlezen.js
T
2026-08-28 12:28:39 +02:00

299 lines
26 KiB
JavaScript

// last execution: Tue Jul 07 2026 10:48:32 GMT+0200 (Midden-Europese zomertijd)
$csvfile_par_Presentielijst_als_csv='Presentielijst;Nascholingsdatum:;3-7-2026;t/m;3-7-2026\nNascholing;01131-NVKH;Aandoeningen aan de voeten (Irma Janssen);;\n;;;;\nGebruik een X om aan te kruizen of een lid aanwezig is, vul anders niets in.;;;;\n;;;;\nNaam;Lidnummer;3-7-2026;;\nC.C.D.M. (Chantal) van Aart-Verhulst;1998;;;\nJ.A.D. (Joyce) Aarts;1846;;;\nH. (Hakan) Aksu;1856;;;\nG. (Gerke) Alberink-Oldegbers;2008;;;\nM.L. (Loes) Ambrosius;0878;;;\nM.W.M. (Monique) Ammerlaan;1509;x;;\nC.P. (Ina) van Andel;0325;x;;\nY.T. (Yvonne) Arnaud de Calavon;1255;x;;\nW. (Wendy) Auceps;2011;;;\nJ. (Jos) Baars;0600;x;;\nJ.L.M. (Joloma) Bakker;0949;;;\nJ. (Joyce) Bakker;1938;x;;\nC.A. (Carla) Bakker;2086;;;\nD.E. (Dyonne) Bakker-de Boer;1885;;;\nM. (Marjolijn) Bakker-van Heeswijk;1904;;;\nT.E. (Thea) von Bannisseht-Wijsmuller;1258;;;\nR. (Renate) Bdorf;1986;x;;\nW.J.P. (Willem) Beekman;1431;;;\nK.C. (Kirsten) Beers;2007;;;\nM.H.E. (Evelien) Beldman-Nijland;1924;;;\nE.M. (Evelien) van den Berg-Holsteyn;1761;x;;\nS.A. (Suzanne) van Berkel;1830;;;\nE. (Ellen) Berkvens;1821;;;\nD.E.B. (Deborah) Beukema;1991;;;\nR. (Ruchi) Bhargava;1940;;;\nY.B.C. (Yvonne) Bisschops-Wikkers;1219;;;\nB. (Bettie) Blankendaal;1675;;;\nR. (Roos) van der Blom;2097;;;\nI. (Ilse) Boekhout;0847;x;;\nA. (Annemieke) de Boer;2088;;;\nF. (Freya) Boerma;2046;;;\nR.N. (Richard) van Bokhoven;0157;;;\nM.A.C. (Maria) Bom;1433;x;;\nC.E.C. (Ccile) de Booij;1158;;;\nY. (Yvonne) van Borrendam;1820;;;\nJ.T. (Jannie) Bos;0395;;;\nE.J. (Ilse) van den Bos;1926;x;;\nJ. (Jerry) Van den Bosch;1436;x;;\nL.M. (Linda) von Bose;1861;;;\nJ. (Joyce) Bosman-Jansen;2016;;;\nM.J.M. (Marjon) Bot-Nieuweboer;1716;x;;\nM. (Martina) Bouman;1799;;;\nN. (Bea) Braber;2102;;;\nM.T.M. (Moniek) Brands;1640;;;\nA.J.C.P. (Angelique) Braspenning-Buijs;1914;;;\nI. (Ien) Brethouwer;0038;;;\nH.F.J.M. (Dick) van den Brink;1003;x;;\nW.P.M. (Ina) van den Brink;1762;;;\nW.J. (Wouda) van den Brink;2041;;;\nJ.C.M. (Josephine) Broeders;1256;;;\nL. (Lindsay) van den Broek-van de Sande;2026;;;\nE.H. (Erica) Broekhoven;2098;x;;\nH.H. (Hilde) Brombacher;1718;;;\nL. (Lizabeth) Brouwer-Hiemstra;1982;;;\nC.J. (Carolien) Bruinenberg;1706;x;;\nP. (Nelleke) Bruinooge-Lokerse;1784;x;;\nM.G.J. (Manon) Bruins-Maathuis;1274;;;\nM. (Micha) Bud;1565;;;\nF.E.H. (Cisca) Buis;1001;;;\nJ.J. (Jara) Bulten;2080;;;\nM.H.T.A. (Marij) Camps;1500;;;\nY. (Yvet) Coppoolse-Vrijland;2040;;;\nN. (Naomi) Cornet;1899;;;\nN. (Nicole) Cullinan;2057;x;;\nC.A.A. (Caroline) van Daal;1727;;;\nS. (Sita) van Daalen;2033;;;\nA. (Astrid) Damman;2032;x;;\nF.J.M. (Fernand) Debats;1892;;;\nY.A. (Jolly) Determann;0257;x;;\nM. (Marieke) Diemeer;1842;;;\nH. (Helena) van Dijk;1143;;;\nH. (Hildegard) Dijkgraaf;1387;x;;\nB.L. (Bea) Dijkman;1587;;;\nK. (Karin) Dijkstra;1585;;;\nJ.J.M. (Jan) Dingemans;0985;x;;\nA.W. (Arjan) Domeni;1002;;;\nP.E. (Paulien) van Dommelen;0265;;;\nW.M.M. (Wilmie) Doornbos-Reintjes;1569;;;\nT. (Tanja) van Dorsser;0743;x;;\nM. (Marieke) van Dorst;0577;;;\nF.J. (Frances) Drijvers;2039;x;;\nM. (Marieke) van Drooge-van Loon;1495;x;;\nM.A.B. (Thea) Dudink-Bakker;1643;;;\nA. (Sandra) van Duijne;1794;x;;\nP.D. (Petra) Eelman;1750;;;\nM. (Monique) Eggink;1628;x;;\nA.H.M. (Annet) Ellenbroek-Kamphuis;1571;;;\nV.P. (Vincent) Engel;1713;x;;\nA.H.M. (Andr) Ernst;0205;;;\nA.F.F. (Anne-Flore) Eschauzier;1951;;;\nH.E.C. (Hanna) Evers;0956;x;;\nM.Th.A. (Marie-Therese) Feringa;1933;x;;\nS. (Sabine) Flake;1278;x;;\nT.E.M. (Dorotee) Fleuren;0080;;;\nM.S. (Martine) du Floo;1690;;;\nM. (Manon) Fontijn;1918;x;;\nK.M.M. (Karen) Franken-Neelen;1922;x;;\nT.C.A. (Tessa) Franken-Zagers;1961;;;\nB.N. (Barbara) Franssen-Laan;2069;;;\nM.A. (Martin) Frijters;1620;;;\nJ.T. (Judith) van Gaalen;1584;x;;\nW.A.M. (Michiel) van Gemert;0757;;;\nP.G. (Pim) Gerlagh-Buurmeijer;1736;;;\nC.J. (Carolien) Gerritsen;1533;x;;\nT.J.H. (Thea) Geurink-Stteler;1380;;;\nJ.A.A. (Jacqueline) Giesen;1358;;;\nM. (Marije) Glerum;1894;;;\nP. (Peter) Goosensen;1681;;;\nM.K. (Marlijn) de Graaff-Schalekamp;1759;;;\nG.C. (Gerda) Greeven;0726;;;\nE.F.G.M. (Eugne) van Grinsven;1293;;;\nN.M. (Nancy) Groeneveld;1524;x;;\nJ.M.M. (Johan) Guffens;1865;x;;\nM.S.B. (Monique) Haafkes;1696;x;;\nJ.G. (Hans) van Haaften;2035;;;\nA. (Aartje) van de Haar-van Kreel;1455;x;;\nM.I. (Machteld) van Haeften;1978;x;;\nV.H,E. (Victorine) Hamers;1787;x;;\nA.J. (Anke) Hamminga-Hiemstra;2095;;;\nG. (Margriet) de Harder-Hopman;1859;x;;\nH. (Ria) ter Harmsel;0924;x;;\nS. (Simone) Hartman;1672;;;\nG.J.M. (Gerrie) Hasselaar;1811;;;\nC. (Christel) Heerwegh;2050;;;\nS.N. (Simone) van der Heide;1499;;;\nK. (Karin) van der Heide;2036;x;;\nM. (Marjon) Heij;1260;;;\nM.Y.P. (Mieke) Heijmans;1048;x;;\nJ.H. (Janneke) Hellendoorn;1605;;;\nJ. (Jacomijn) van Helvoort;0451;x;;\nH.A.A.M. (Helen) Hensing;0685;;;\nA.A.M. (Anita) Heppe;1969;;;\nJ.D.M. (Hans) Hilhorst;0957;;;\nH.M. (Hilde) Hoenderdos-Maarsingh;1828;x;;\nM.J.P. (Marja) Hofstede;1987;;;\nE. (Els) Holthuis;2025;x;;\nG.Ph. (Gerard) Homburg;1680;;;\nB. (Barbara) Hoogendoorn;1910;;;\nJ.M. (Judy) Hoomans;1350;;;\nF. (Flore) de Hoop;1610;;;\nH. (Hedi) Hop-Poolen;1684;;;\nM.L. (Marjon) Hornung-Mller;1720;;;\nA. (Afke) Houtman;1995;;;\nA.J. (Astrid) van Houwelingen;0843;x;;\nR.A. (Karin) Hoven-Cazemier;1614;;;\nL.A.G. (Lucia) Hubens;1418;x;;\nR.M.G. (Regina) Huisman;1598;;;\nJ. (Janneke) Huisman;1954;x;;\nH.G.C. (Marieke) Huisman-den Brok;1563;;;\nJ.C.M. (Karin) Hutter-van Vlissingen;1956;x;;\nM.L. (Ries) IJsseldijk;0266;;;\nA.N. (Ton) Jansen;0301;;;\nH.J.G. (Henritte) Janssen;1729;;;\nC.I.J. (Collette) Janssens;1395;;;\nS.T. (Sietske) Jellema;1897;;;\nN. (Nienke) de Jong;2013;;;\nS.W.C. (Susanne) de Jong;2020;;;\nI.P.M. (Idalina) de Jong-Maasdijk;1725;;;\nG.J. (Inez) van der Kaaij;1712;;;\nE. (Evelien) van de Kamp;0286;;;\nP.J. (Petra) Kamphuis;1915;x;;\nJ.H.M. (Dianne) Kamphuis-Veldhuis;2047;x;;\nP.J. (Pooja Jignesh) Karnik;2075;x;;\nA. (Astrid) Kaspers;0179;x;;\nR. (Richard) Kersten;0887;;;\nF. (Froukje) Klaver-van der Meer;0893;;;\nA. (Angela) Kleijwegt-Marsilje;2090;x;;\nJ.M. (Josephine) Klein;0954;x;;\nY.H. (Yvonne) Klein Rouweler;1602;;;\nI.M. (Inge) Klep;1936;x;;\nL.K. (Lucas) Klooster;1917;x;;\nA.R.M. (Aranka) Kneepkens;1993;;;\nE.J. (Eric) Koedam;0631;;;\nG.H. (Karin) Koeman-Wichers;1895;;;\nR. (Rene) Koenders;0180;;;\nJ.A. (Monique) Koenders-Knuvink;1972;;;\nB.W.M. (Bianca) Koenen;1860;;;\nH. (Hilde) Koert;0230;;;\nE. (Elke) Koller-Westenbroek;1963;;;\nE.W. (Esther) van Kommer;1254;;;\nJ.W. (Jan) Kooiman;0085;;;\nJ.V. (Jos) van Kooten;0606;;;\nW.H. (Mieke) van Kooten;1633;x;;\nA.E.J.L. (Anita) Korte-Kempers;1649;;;\nL.J.C. (Loes) Kremer;1816;x;;\nH.T. (Harmke) Kroeze;1218;;;\nM.A. (Maritte) Krol;1868;x;;\nR.J. (Jeanet) Kronenburcht;1955;;;\nE.W. (Elke) Kroon;1597;x;;\nM. (Marlies) Kropholler;1804;;;\nS. (Steffi) Krul-Meinhold;1788;;;\nL. (Livia) Kuipers-Jakovljevic;1810;;;\nE.J.M. (Milja) van Laak;1428;;;\nE. (Elsje) Lagaaij;1814;x;;\nK.M. (Sada) Landers;1299;;;\nR. (Ronald) de Landmeter;0063;x;;\nM. (Marina) Landstra;1921;x;;\nY.A.A. (Yvonne) Lassauw;1939;;;\nE.M. (Els) Leechburch Auwers;0807;;;\nG.J.M. (Ineke) Leemkuil-Kienhuis;0485;;;\nM.L. (Marijke) van Leeuwen-de Lange;2017;;;\nJ.J. (Joyce) van Leeuwen-Sloos;2021;;;\nJ. (Cobien) Leguijt;1570;;;\nA. (Alex) Lon;1801;x;;\nJ.A.F. (Hans) Leushuis;1578;;;\nA.H.R. (Agaathe) Levenga;1554;;;\nM.M. (Magda) Louwerse;1701;x;;\nG.T.M. (Bianca) Lubberts-van Raaij;2059;;;\nP.J.M. (Ellen) van der Maat;0433;;;\nY. (Yvonne) Marklein-Korporaal;1730;x;;\nA. (Annick) Marschand-Akker;1866;;;\nJ.M.T. (Anne) Matton;0190;;;\nV.E.I.M. (Vronique) Man;1805;;;\nM. (Maarten) van der Meer;0137;;;\nM. (Miranda) Meere;1992;x;;\nM.H.M. (Monique) Meereboer;1150;;;\nA. (Annelies) Meester;0714;;;\nI.S. (Ingrid) Meijerink van der Harst;1908;;;\nH.H. (Karin) Meinders;1838;;;\nG.G.J. (Trukie) Menge;1639;;;\nM. (Marit) Mets;1923;;;\nG.H. (Henritte) Metz-Wit;1827;;;\nM.M.M. (Margie) van Mierlo-Theunissen;1161;;;\nW. (Wies) Moes;0872;;;\nM. (Martine) van der Molen;2073;;;\nJ.J.M.M. (Jacqueline) Mols-van der Wal;1737;x;;\nJ. (Jeroen) Morssink;0003;;;\nR.C.M. (Renate) Mulder;1529;;;\nC.J. (Ynette) Mulder-de Ronde;1040;;;\nF.P. (Franc) Mller;1359;;;\nH.Th. (Henk) van Munster;0154;;;\nS. (Sangeeta) Naveen Shrivastava;2024;x;;\nA.J. (Alida) Nijeboer-Verkerk;1858;;;\nR.J.G. (Regina) Nijenhuis;0185;x;;\nA.D.E. (Annelie) Nijland-Hoekstra;1615;x;;\nO.G.P. (Oliver) Noronha;1948;;;\nC.T.M. (Caroline) Nuiten-Zielhorst;1890;;;\nL. (Lisette) van \'t Oever;1769;;;\nC.M. (Carmen) Olde Scholtenhuis;1683;x;;\nS. (Susanna) Oldersma;1086;;;\nS.E. (Saskia) Olivier;0926;x;;\nF. (Femke) Oosterhof-de Vries;2006;x;;\nL.G. (Linda) Oostland;1893;;;\nC.B. (Christel) Ophuis;2042;;;\nC. (Corina) Oskamp;1141;x;;\nR.C. (Rene) Otter;0287;;;\nG.A. (Auke) Ottink-Doeschot;2071;;;\nA. (Anja) Overbeeke;1464;;;\nL.A. (Bert) Pannekeet;2089;;;\nM.A.M. (Monique) du Pau;1746;;;\nW.F.C.M. (Helmi) Pauwels;1916;x;;\nP.J.M. (Paul) Pelsma;0967;;;\nE.C. (Els) van Pelt-Stofberg;0876;;;\nH.M. (Hester) Penneweert;1534;;;\nM.J.G. (Aniek) Pere-Verhoeven;2053;;;\nA.C. (Anneke) Petter-Stavast;1983;;;\nH.W. (Herman) Philipsen;0861;x;;\nT. (Tineke) Priester;1175;x;;\nH. (Hilde) Pronk;1435;x;;\nS. (Sylvia) van der Putte-Hekster;0226;;;\nF.C.A. (Frans) Quirijnen;0938;;;\nM. (Monaza) Qureshi;2051;x;;\nC. (Catinka) Rabbers-Dekker;1549;;;\nE.F.H. (Ellen) Ramaker-Cents;1952;;;\nM.M. (Marije) Rappoldt-Smits;1779;;;\nC.G.F. (Chantal) Ravers;1959;;;\nA.M. (Netje) Reezigt;1035;;;\nA. (Anne) van Remortel;1797;x;;\nD. (Doroth) Renkema;0788;x;;\nM. (Minke) Roelants;0569;x;;\nM. (Monique) Roggeveen;0228;x;;\nT. (Tatjana) Rogic-Lagendijk;2005;;;\nJ.G.M. (Jan) Roks;0316;;;\nP.F.J. (Paula) Roox-Grosfeld;2023;;;\nM. (Marja) Roozendaal-Van Kempen;0927;;;\nM.F. (Marille) Ros;2004;;;\nN.I.J. (Nicole) van Rossum;1967;;;\nM. (Maayke) Rusken;1944;;;\nP. (Pauline) Saalmink;2066;;;\nM. (Manasi) Sagdeo-Mohril;1887;x;;\nM.A. (Marianne) Samsen;1733;x;;\nK.A. (Krista) Sand-Engelsma;2048;;;\nS.H. (Sjoukje) van Schaik;1641;;;\nC.C.M. (Tineke) Schaper;1425;;;\nM.E. (Marjolijne) Schipper;1638;x;;\nC.M.S. (Christa) Schipper;1724;;;\nB.C.E. (Bianca) Schipper;2009;;;\nN. (Nelly) Schmal-Haye;0869;;;\nF.M.T. (Frederike) Scholten;2044;;;\nM.E.P. (Monique) van Schoubroeck;1781;x;;\nK. (Karin) Schreurs;1809;;;\nA.G.E. (Anita) Schuit;0935;;;\nK. (Karina) Sevriens-Kallenbach;1510;;;\nJ.T.J.M. (Jacqueline) Sharpe-Scheuermann;1213;;;\nE. (Evelien) Simon-Pijpers;1648;;;\nM.C.M. (Marja) Simons;1195;;;\nH. (Henk) Slobbe;0203;x;;\nG.F.S. (Fiona) Sloet-van der Kolk;1667;;;\nN.H. (Nicole) Slootheer;0533;;;\nA.C. (Jeanine) Slot;1874;;;\nJ.M. (Marianne) Smit;1556;x;;\nM. (Miriam) Sommer;1465;;;\nD.E. (Dsire) Somsen-Appeldoorn;1732;;;\nJ. (Judith) Staats-Stel;1942;;;\nA.M.C. (Anita) Stam;0643;;;\nL. (Lioba) Steinkamp;1877;x;;\nC.E. (Caroline) Steinvoort-Ypenburg;1815;;;\nM.J. (Miranda) Stierman;1996;;;\nP. (Paul) Stollman;1062;;;\nF. (Femmy) Stolte-Mulder;2002;;;\nE.C.W. (Ewald) Stteler;0112;;;\nA. (Alberta) Stubbe-Drenth;2056;;;\nR. (Riek) Taekema;0113;;;\nR.A. (Roberto) Tangel;0551;;;\nS.E. (Susanne) Taubitz;1562;;;\nP.J. (Petra) van der Tempel-van Mil;1981;;;\nL.C.A. (Loes) Tesselaar;2030;;;\nE.M. (Eva) ten Thije;2061;;;\nM.C. (Margriet) Tibben;1763;;;\nA.W. (Alize) Timmerman;0114;;;\nJ. (Coby) Tjassing;1468;;;\nP. (Paul) van der Toorn;0648;x;;\nS.D. (Sharon) Townhill;1703;;;\nJ.E. (Hannelies) van der Vaart-de Pundert;1886;x;;\nM. (Marit) Valstar;0811;;;\nW.M. (Wendy) van der Vegt;1962;x;;\nC.C.M. (Claudia) van der Veen;2038;x;;\nJ. (Jorien) Veldhuis-Kleverwal;2091;;;\nJ.M.S. (Jolande) Velgersdijk;1772;;;\nJ.C.J. (Hannie) van de Ven;1471;;;\nM. (Mireille) Veninga-Peeren;1752;;;\nI. (Iris) Verdonk;1363;;;\nA.W.J. (Anita) Verlangen;1850;;;\nM.M.J. (Monique) Vermazeren;1178;x;;\nM. (Maarten) Verzaal;1773;;;\nM.C. (Marjan) Vink;1665;x;;\nE.J.M. (Bert) Vooijs;0564;;;\nA. (Annemarie) Vooijs;1317;x;;\nM.A.W.F. (Marianne) van de Vorstenbosch;0875;x;;\nH. (Helen) de Vos;1625;;;\nC.C. (Corstiaan) de Vries;1941;;;\nM.J.M. (Muril) Wagenmans;1283;x;;\nH.W. (Wilma) van de Wal-Muusse;1912;x;;\nS.A.F. (Sandra) Wammes;2067;;;\nA. (Anneke) van der Wel-van Akker;1807;x;;\nM. (Martine) Welling;1953;;;\nE.S. (Eva) Wetsteijn;2052;x;;\nJ.M. (Ank) Wichers;1837;x;;\nA.L. (Anais) Wicke;2104;;;\nV.M. (Vanja) Wierenga;1276;;;\nI.G.J.M. (Inge) van Wijck;0580;;;\nM.P.S. (Marij) Wijtenburg;1843;;;\nE.M. (Elly) te Winkel;1930;;;\nK. (Kristel) Winters;1867;x;;\nE. (Elke) Wisseborn;1802;;;\nD.J. (Dick) de Wit;0022;x;;\nG.G.M. (Gerlinde) de Wit;1659;;;\nN.M. (Nelleke) de Wit;2012;;;\nL.M.H. (Lucie) Wolbert;0628;x;;\nI.P. (Ilonka) Woltering;1663;;;\nE.C.M. (Ellen) van \'t Wout-Binnendijk;0820;;;\nG.E. (Gerda) Zaalberg;0178;;;\nJ.A. (Jan) Zachariasse;0928;x;;\nH.W. (Henk) Zachariasse;1888;;;\nI. (Ivonne) Zijlstra;1156;;;\nC.L. (Christine) Zrcher;0921;;;\n';
$par_Testrun_geen_nascholingen_maken=false;
$par_Nascholingen_verwijderen_in_plaats_van_maken=false;
logAdd(log);
$csv=$csvfile_par_Presentielijst_als_csv;
ifThenElse($csv == '',
logAdd(log, 'error', 'Geen CSV bestand ingelezen, kies er één.');
,
logAdd(log, 'warning', 'CSV Bestand ingelezen, uitvoeren nascholingsrecords.');
$idx1 = string\pos($csv, ',');
$idx2 = string\pos($csv, ';');
$comma="@$@#@@";
ifThenElse($idx1,
ifThenElse($idx2,
ifThenElse($idx1 < $idx2, $comma=',', $comma=';');
,
$comma=',';
);
,
ifThen($idx2,
$comma=';';
);
);
$testrun = $par_Testrun_geen_nascholingen_maken;
$remove_nasch=$par_Nascholingen_verwijderen_in_plaats_van_maken;
$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 nascholingen aangemaakt.');
,
logAdd(log, 'warning', 'Er worden nascholingen aangemaakt');
);
// Split in lines
$sep = "@!%@";
$rows=list();
$line='';
$csv = string\concatenate(string\trim($csv), '\n');
$csv = string\replace($csv, string\concatenate($comma, $comma), string\concatenate($comma, $sep, $comma));
$csv = string\replace($csv, string\concatenate($comma, $comma), string\concatenate($comma, $sep, $comma));
$csv = string\replace($csv, string\concatenate($comma, "\n"), string\concatenate($comma, $sep, "\n"));
$idx = string\pos($csv, '\n');
$data = list();
$n_data = -1;
$name_len_data = -1;
while($idx,
$line = string\substring($csv, 0, $idx);
$csv = string\substring($csv, $idx + 1);
// NB. Dit gaat goed zolang je alleen het aantal presentie-datums telt en niet iets met de
// dat zelf doet!
$entries = string\matchAll($line, $re_entries);
$k = array\length($entries);
ifThenElse($name_len_data > 0 && $k > ($name_len_data + 2),
logAdd(log, 'error', 'Meer dan ', $n_data, ' cellen op deze rij, niet te herkennen');
logAdd(log, 'error', $line);
,
$row = list();
$j = 0;
while($j < $k,
$row = array\push($row, array\at($entries, $j));
$j = $j + 1;
);
ifThen($n_data == -1,
ifThen($k > 0,
ifThen(string\trim(string\lowerCase(array\at($row, 0))) == 'naam',
$n_data = array\length($row) - 2;
$name_len_data = $n_data;
$jj = 2;
$dts = '';
$comma = '';
while($jj < $k,
$data = array\push($data, array\at($row, $jj));
strAdd($dts, $comma);
$elem = array\at($row, $jj);
ifThenElse($elem == $sep,
$n_data = $jj - 2;
$jj = $k;
,
strAdd($dts, array\at($row, $jj));
$comma = ', ';
$jj = $jj + 1;
);
);
logAdd(log, 'info', 'Data: ', $dts);
logAdd(log, 'info', 'n_data: ', $n_data);
);
);
);
$rows = array\push($rows, $row);
);
$idx = string\pos($csv, '\n');
);
$leden_present = list();
$presentie_factors = list();
$opmerkingen = list();
$n = array\length($rows);
logAdd(log, 'info', 'lijst met aantal regels=', $n);
$nascholing='';
$fields = false;
$i = 0;
$dates = list();
while($i < $n,
$row = array\at($rows, $i);
ifThenElse($nascholing == '',
$type = string\lowerCase(array\at($row, 0));
ifThen($type == 'nascholing',
$nascholing = array\at($row, 1);
logAdd(log, 'warning', 'Nascholing gevonden: ', $nascholing);
);
,
ifThenElse($fields == false,
ifThen(string\trim(string\lowerCase(array\at($row, 0))) == 'naam',
$fields = true;
$dates = $row;
);
,
$m = array\length($row);
// Dit is een nascholingsrij met voor iedere datum een kruis.
$jj = 2;
$dagen_present = 0;
$dagen_totaal = 0;
$data_afwezig = "";
$data_aanwezig = "";
while($jj < $m,
$present = string\trim(string\lowerCase(array\at($row, $jj)));
ifThenElse($present == 'x',
$dagen_present = $dagen_present + 1;
ifThen($data_aanwezig != "", strAdd($data_aanwezig, ", "););
strAdd($data_aanwezig, array\at($dates, $jj));
,
ifThen($data_afwezig != "", strAdd($data_afwezig, ", "););
strAdd($data_afwezig, array\at($dates, $jj));
);
$jj = $jj + 1;
$dagen_totaal = $dagen_totaal + 1;
);
ifThenElse($data_afwezig != "",
$opmerking = string\concatenate("Aanwezig: ", $data_aanwezig, "\n",
"Afwezig : ", $data_afwezig, "\n",
"Presentiefactor : ", $dagen_present, " / ", $dagen_totaal,
" = ", number\format($dagen_present/$dagen_totaal, 2),
"\n"
);
,
$opmerking = "Alle dagen gevolgd.";
);
ifThen($dagen_present > 0,
$naam = array\at($row, 0);
$lidnummer = array\at($row, 1);
$factor = $dagen_present / $n_data;
ifThen($factor > 0.99, $factor = 1.0);
logAdd(log, 'info', $naam, ' (', $lidnummer, ') - presentiefactor: ', $factor);
$leden_present = array\push($leden_present, $lidnummer);
$presentie_factors = array\push($presentie_factors, $factor);
$opmerkingen = array\push($opmerkingen, $opmerking);
);
);
);
$i = $i + 1;
);
ifThenElse($nascholing == '',
logAdd(log, 'error', 'Er is geen nascholingscode gevonden!');
,
ifThenElse($fields == false,
logAdd(log, 'error', 'Er is geen velden-regel gevonden!');
,
$code = $nascholing;
$recs = Entity\GetMany('Nascholing', 1, 'name', 'asc', 'code=', $code);
$m = array\length($recs);
ifThenElse($m != 1,
logAdd(log, 'error', 'Onverwacht: Aantal nascholingen voor code ', $code, '<>1:', $m);
,
$nascholing = array\at($recs, 0);
ifThenElse($testrun,
logAdd(log, 'warning', 'Testrun, hier stopt het.');
,
ifThenElse($remove_nasch,
logAdd(log, 'warning', 'Verwijderen van nascholingsrecords begint.');
logAdd(log, 'warning', 'Alleen nascholingsrecord die op basis van een presentielijst zijn opgevoerd worden verwijderd');
,
logAdd(log, 'warning', 'Toevoegen of Vervangen nascholingsrecords begint.');
logAdd(log, 'warning', 'Bestaande nascholingsrecords voor deze nascholing, niet op basis van een presentielijst, worden niet vervangen!');
);
$n = array\length($leden_present);
logAdd(log, 'warning', $n, ' leden waren present');
$i = 0;
while($i < $n,
$lidnummer = array\at($leden_present, $i);
$factor = array\at($presentie_factors, $i);
$opmerking = array\at($opmerkingen, $i);
$c = Entity\GetMany('Contact', 1, 'lastName', 'asc', 'lidnummer=', $lidnummer);
$m = array\length($c);
ifThenElse($m != 1,
logAdd(log, 'error', 'Onverwacht: aantal contacten voor lidnummer ', $lidnummer, ' <> 1: ', $m);
,
$contact = array\at($c, 0);
$contact_id = attr($contact, 'id');
$nascholings_id = attr($nascholing, 'id');
$jaar = attr($nascholing, 'jaar');
$totaals = Entity\GetRelated($contact, 'nascholingstotalen', 1, 'jaar', 'asc', 'jaar=', $jaar);
$m = array\length($totaals);
ifThenElse($remove_nasch,
$action_str = 'Verwijderen';
,
$action_str = 'Aanmaken';
);
logAdd(log, 'info', $action_str, ' nascholing: ', $code, ' voor lid: ', $lidnummer, ' voor jaar: ', $jaar);
ifThenElse($m != 1,
logAdd(log, 'error', 'Geen nascholingstotaal voor jaar: ', $jaar);
,
$totaal = array\at($totaals, 0);
$totaal_id = attr($totaal, 'id');
$rec_ids = Record\FindMany('HandmatigeNascholing', 'name', 'asc',
'contactId=', $contact_id,
'accNascholingId=', $nascholings_id,
'nascholingstotaalId=', $totaal_id,
'status!=', 'presentielijst'
);
$m = array\length($rec_ids);
ifThenElse($m > 0,
logAdd(log, 'error', 'Dit lid (lidnummer=', $lidnummer, ') heeft al een nascholingsrecord voor deze nascholing!');
,
ifThenElse($remove_nasch,
$rec_ids = Record\FindMany('HandmatigeNascholing', 'name', 'asc',
'contactId=', $contact_id,
'accNascholingId=', $nascholings_id,
'nascholingstotaalId=', $totaal_id,
'status=', 'presentielijst'
);
$m = array\length($rec_ids);
logAdd(log, 'info', $m, ' nascholingen te verwijderen.');
$j = 0;
while($j < $m,
$rec_id = array\at($rec_ids, $j);
record\update('HandmatigeNascholing', $rec_id, 'deleted', true);
$j = $j + 1;
);
,
$rec_id = record\create('HandmatigeNascholing',
'contactId', $contact_id,
'accNascholingId', $nascholings_id,
'nascholingstotaalId', $totaal_id,
'status', 'presentielijst',
'systeemopmerkingen', $opmerking,
'aanwezigheidsFactor', $factor,
'assignedUserId', $user_id,
'createdBy', $user_id,
'modifiedBy', $user_id
);
ifThenElse($rec_id,
logAdd(log, 'info', 'Aangemaakt');
,
logAdd(log, 'error', 'Niet gelukt!');
);
);
);
);
);
$i = $i + 1;
);
);
);
);
);
); // CSV bestand leeg of niet leeg
logAdd(log, 'warning', 'Klaar');