} } foreach ($champs_modifiables_membre as $name) { if ($champs->get($name) !== null) { $champs->set($name, 'editable', true); } } $champs->save(); $config->set('champs_membres', $champs); $config->save(); // Suppression de l'ancienne config $db->exec('DELETE FROM config WHERE cle IN ("champs_obligatoires", "champs_modifiables_membre");'); } if (version_compare($v, '0.6.0-rc1', '<')) { $categories = new Membres\Categories(); $list = $categories->listComplete(); $db->exec('PRAGMA foreign_keys = OFF; BEGIN;'); // Mise à jour base de données $db->exec(file_get_contents(ROOT . '/include/data/0.6.0.sql')); $id_cat_cotisation = $db->querySingle('SELECT id FROM compta_categories WHERE compte = 756 LIMIT 1;'); // Conversion des cotisations de catégories en cotisations indépendantes foreach ($list as $cat) { $db->simpleInsert('cotisations', ['id_categorie_compta' => null, 'intitule' => $cat['nom'], 'montant' => (double) $cat['montant_cotisation'], 'duree' => round($cat['duree_cotisation'] * 30.44), 'description' => 'Créé automatiquement depuis les catégories de membres (version 0.5.x)']); $args = ['id_cotisation' => (int) $db->lastInsertRowId(), 'id_categorie' => (int) $cat['id']]; // import des dates de cotisation existantes comme paiements $db->simpleExec('INSERT INTO cotisations_membres (id_membre, id_cotisation, date) SELECT id, :id_cotisation, date(date_cotisation) FROM membres WHERE date_cotisation IS NOT NULL AND date_cotisation != \'\' AND id_categorie = :id_categorie;', $args); // Mais on ne crée pas d'écriture comptable, car elles existent probablement déjà }