예제 #1
0
파일: upgrade.php 프로젝트: kd2org/garradin
        }
    }
    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à
    }