Index: src/include/lib/Garradin/Cotisations.php ================================================================== --- src/include/lib/Garradin/Cotisations.php +++ src/include/lib/Garradin/Cotisations.php @@ -116,10 +116,15 @@ public function delete($id) { $db = DB::getInstance(); $db->exec('BEGIN;'); + + // Inscrire à NULL les opérations liées à cette cotisation, ainsi on conserve le lien avec les membres + $db->simpleExec('UPDATE membres_operations SET id_cotisation = NULL + WHERE id_cotisation IN (SELECT id FROM cotisations_membres WHERE id_cotisation = ?);', (int) $id); + $db->simpleExec('DELETE FROM cotisations_membres WHERE id_cotisation = ?;', (int) $id); $db->simpleExec('DELETE FROM cotisations WHERE id = ?;', (int) $id); $db->exec('END;'); return true; Index: src/templates/admin/membres/cotisations/gestion/supprimer.tpl ================================================================== --- src/templates/admin/membres/cotisations/gestion/supprimer.tpl +++ src/templates/admin/membres/cotisations/gestion/supprimer.tpl @@ -21,10 +21,12 @@
Attention, l'historique des membres ayant cotisé à cette cotisation sera supprimé. + Si des écritures comptables sont liées à l'historique des cotisations, elles ne seront pas supprimées, + et la comptabilité demeurera inchangée.
{csrf_field key="delete_co_"|cat:$cotisation.id}