source: spip-zone/_plugins_/Association/Associaspip/action/editer_asso_dons.php @ 62713

Last change on this file since 62713 was 62713, checked in by gildas.cotomale@…, 8 years ago

correction dans l'enregistrement des colis : pas de compte financier imputé

File size: 5.0 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & François de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12
13if (!defined('_ECRIRE_INC_VERSION'))
14        return;
15
16function action_editer_asso_dons()
17{
18        $securiser_action = charger_fonction('securiser_action', 'inc');
19        $id_don = $securiser_action();
20        $erreur = '';
21        $date_don = association_recupere_date(_request('date_don'));
22        $bienfaiteur = _request('bienfaiteur');
23        $id_adherent = intval(_request('id_adherent'));
24        if (!$bienfaiteur AND $id_adherent) {
25                $data =  sql_fetsel('sexe, nom_famille, prenom', 'spip_asso_membres', "id_auteur=$id_adherent");
26                $bienfaiteur = association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']);
27        }
28        $argent = association_recupere_montant(_request('argent'));
29        $valeur = association_recupere_montant(_request('valeur'));
30        $modifs = array(
31                'date_don' => $date_don,
32                'bienfaiteur' => _request('bienfaiteur'),
33                'id_adherent' => $id_adherent,
34                'argent' => $argent,
35                'colis' => _request('colis'),
36                'valeur' => $valeur,
37                'contrepartie' => _request('contrepartie'),
38                'commentaire' => _request('commentaire'),
39        );
40    include_spip('base/association');
41        $id_compte = intval(_request('id_compte'));
42        $journal = _request('journal');
43        include_spip('inc/association_comptabilite');
44        if ($id_don) { /* c'est une modification */
45                // on modifie les operations comptables associees au don
46                if ($GLOBALS['association_metas']['pc_dons']==$GLOBALS['association_metas']['pc_colis']) { /* si dons et colis sont associes a la meme reference, on modifie une seule operation */
47                        association_modifier_operation_comptable($date_don, $argent+$valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] &mdash; ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
48                } else { // sinon on en modifie deux
49                        // modification du don en argent
50                        association_modifier_operation_comptable($date_don, $argent, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] &mdash; ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
51                        // modification du don en nature
52                        $association_imputation = charger_fonction('association_imputation', 'inc');
53                        $critere = $association_imputation('pc_colis');
54                        $critere .= ($critere?' AND ':'') ."id_journal=$id_don";
55                        association_modifier_operation_comptable($date_don, $valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:colis'),'num'=>$id_don) ) ."->don$id_don] &mdash; ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_colis'], '', $id_don, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere) );
56                }
57                // on modifie les informations relatives au don
58                sql_updateq('spip_asso_dons', $modifs, "id_don=$id_don");
59        } else { // c'est un ajout
60                // on ajoute les informations relatives au don
61                $id_don = sql_insertq('spip_asso_dons', $modifs);
62                if (!$id_don) { // la suite serait aleatoire sans cette cle...
63                        $erreur = _T('asso:erreur_sgbdr');
64                } else { // on ajoute les operations comptables associees au don
65                        if ($GLOBALS['association_metas']['pc_dons']==$GLOBALS['association_metas']['pc_colis']) { // si argent et colis sont associes a la meme reference, on ajoute une seule operation
66                                association_ajouter_operation_comptable($date_don, $argent+$valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] &mdash; ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don);
67                        } else { // sinon on en insere deux
68                                // argent
69                                association_ajouter_operation_comptable($date_don, $argent, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] &mdash; ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don);
70                                // colis
71                                association_ajouter_operation_comptable($date_don, $valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:colis'),'num'=>$id_don) ) ."->don$id_don] &mdash; ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_colis'], '', $id_don);
72                        }
73                }
74        }
75        return array($id_don, $erreur);
76}
77
78?>
Note: See TracBrowser for help on using the repository browser.