Overview
Comment:éviter les problèmes de foreign key en mettant à NULL id_cotisation dans membres_operations, et prévenir de l'effet
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 87b5f2fd4f7a62aac555ef919a86103250c40e7d
User & Date: bohwaz on 2015-03-28 16:48:06
Other Links: manifest | tags
Context
2015-03-28
17:06
Liste des écritures liées à une cotisation check-in: 9e6dc2ec31 user: bohwaz tags: trunk
16:48
éviter les problèmes de foreign key en mettant à NULL id_cotisation dans membres_operations, et prévenir de l'effet check-in: 87b5f2fd4f user: bohwaz tags: trunk
16:33
comptage du nombre d'écritures liées et avertissement avant suppression, et ne pas supprimer les liaisons membre <-> écriture, simplement indiquer qu'elles ne sont plus liées à une cotisation check-in: fea5d3bdbe user: bohwaz tags: trunk
Changes

Modified src/include/lib/Garradin/Cotisations.php from [aa5c86a894] to [c70e00c4d9].

114
115
116
117
118
119
120





121
122
123
124
125
126
127
	 * @return integer true en cas de succès
	 */
	public function delete($id)
	{
		$db = DB::getInstance();

		$db->exec('BEGIN;');





		$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;
	}








>
>
>
>
>







114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
	 * @return integer true en cas de succès
	 */
	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;
	}

Modified src/templates/admin/membres/cotisations/gestion/supprimer.tpl from [72c2730600] to [c69a905047].

19
20
21
22
23
24
25


26
27
28
29
30
31
32
33
34
35
36
    <fieldset>
        <legend>Supprimer cette cotisation ?</legend>
        <h3 class="warning">
            Êtes-vous sûr de vouloir supprimer la cotisation «&nbsp;{$cotisation.intitule|escape}&nbsp;» ?
        </h3>
        <p class="help">
            Attention, l'historique des membres ayant cotisé à cette cotisation sera supprimé.


        </p>
    </fieldset>

    <p class="submit">
        {csrf_field key="delete_co_"|cat:$cotisation.id}
        <input type="submit" name="delete" value="Supprimer &rarr;" />
    </p>

</form>

{include file="admin/_foot.tpl"}







>
>











19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    <fieldset>
        <legend>Supprimer cette cotisation ?</legend>
        <h3 class="warning">
            Êtes-vous sûr de vouloir supprimer la cotisation «&nbsp;{$cotisation.intitule|escape}&nbsp;» ?
        </h3>
        <p class="help">
            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.
        </p>
    </fieldset>

    <p class="submit">
        {csrf_field key="delete_co_"|cat:$cotisation.id}
        <input type="submit" name="delete" value="Supprimer &rarr;" />
    </p>

</form>

{include file="admin/_foot.tpl"}