Overview
Comment: | Mettre à jour la liste des comptes pour corriger le souci avec le champ parent qui n'était pas forcément positionné correctement (la faute au formulaire qui permettait de choisir un compte qui n'était pas le parent le plus proche) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
3bbb95ed9f2dcb7b4772c03147b3f302 |
User & Date: | bohwaz on 2018-09-06 21:43:37 |
Other Links: | branch diff | manifest | tags |
References
2020-12-08
| ||
23:25 | • Wiki page "Changelog/0.9" artifact: b9c916b4d1 user: bohwaz | |
Context
2018-09-06
| ||
21:50 | Détecter les plugins dont le code source manque (cas lorsqu'on importe une base sur une installation ou un plugin manque à l'appel) check-in: 65ad392db4 user: bohwaz tags: dev | |
21:43 | Mettre à jour la liste des comptes pour corriger le souci avec le champ parent qui n'était pas forcément positionné correctement (la faute au formulaire qui permettait de choisir un compte qui n'était pas le parent le plus proche) check-in: 3bbb95ed9f user: bohwaz tags: dev | |
2018-09-04
| ||
23:22 | Corriger divers détails sur la recherche avancée check-in: 20568ca832 user: bohwaz tags: dev | |
Changes
Modified src/www/admin/upgrade.php from [6bfe8df0b5] to [53e496bd2b].
︙ | |||
182 183 184 185 186 187 188 189 190 191 192 193 194 195 | 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + | if (version_compare($v, '0.9.0', '<')) { $db->exec('PRAGMA foreign_keys = OFF;'); $db->begin(); $db->import(ROOT . '/include/data/0.9.0.sql'); // Correction des ID parents des comptes qui ont été mal renseignés // exemple : compte 512A avec "5" comme parent (c'était permis, // par erreur, par le formulaire d'ajout de compte dans le plan) // Serait probablement possible en 3-4 lignes de SQL avec // WITH RECURSIVE mais c'est au delà de mes compétences $comptes = $db->iterate('SELECT id FROM compta_comptes WHERE parent != length(id) - 1;'); foreach ($comptes as $compte) { $parent = false; $id = $compte->id; while (!$parent && strlen($id)) { // On enlève un caractère à la fin jusqu'à trouver un compte parent correspondant $id = substr($id, 0, -1); $parent = $db->firstColumn('SELECT id FROM compta_comptes WHERE id = ?;', $id); } if (!$parent) { // Situation normalement impossible ! throw new \LogicException(sprintf('Le compte %s est invalide et n\'a pas de compte parent possible !', $compte->id)); } $db->update('compta_comptes', ['parent' => $parent], 'id = :id', ['id' => $compte->id]); } $db->commit(); $config->set('desactiver_site', false); $config->save(); } |
︙ |