source: spip-zone/_plugins_/Association/Associaspip/exec/adherent.php @ 65825

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

marquer visuellement le module et utiliser le bouton retour pour revenir à la page principale

File size: 10.6 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
12if (!defined('_ECRIRE_INC_VERSION'))
13        return;
14
15include_spip('inc/navigation_modules');
16include_spip('inc/association_comptabilite');
17
18function exec_adherent(){
19        $id_auteur = intval(_request('id'));
20        $full = autoriser('associer', 'adherents');
21        if (!autoriser('voir_membres', 'association', $id_auteur)) {
22                include_spip('inc/minipres');
23                echo minipres();
24        } else {
25                $data = sql_fetsel('m.sexe, m.nom_famille, m.prenom, m.validite, m.id_asso, c.libelle','spip_asso_membres as m LEFT JOIN spip_asso_categories as c ON m.categorie=c.id_categorie', "m.id_auteur=$id_auteur");
26                include_spip('inc/association_coordonnees');
27                $nom_membre = association_calculer_nom_membre($data['sexe'], $data['prenom'], $data['nom_famille']);
28                $validite = $data['validite'];
29                $adresses = association_formater_adresses(array($id_auteur));
30                $emails = association_formater_emails(array($id_auteur));
31                $telephones = association_formater_telephones(array($id_auteur));
32                $categorie = $data['libelle']?$data['libelle']:_T('asso:pas_de_categorie_attribuee');
33                $statut = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur='.$id_auteur);
34                switch($statut) {
35                        case '0minirezo':
36                                $statut='auteur'; break;
37                        case '1comite':
38                                $statut='auteur'; break;
39                        default :
40                                $statut='visiteur'; break;
41                }
42                onglets_association('titre_onglet_membres', 'adherents');
43                // INFOS
44                if ($full) {
45                        $infos['adherent_libelle_categorie'] = $categorie;
46                }
47                $infos['adherent_libelle_validite'] = association_formater_date($data['validite']);
48                if ($GLOBALS['association_metas']['id_asso']) {
49                        $infos['adherent_libelle_reference_interne'] = ($data['id_asso']?_T('asso:adherent_libelle_reference_interne').'<br/>'.$data['id_asso']:_T('asso:pas_de_reference_interne_attribuee')) ;
50                }
51                if ($adresses[$id_auteur])
52                        $infos['adresses'] = $adresses[$id_auteur];
53                if ($emails[$id_auteur])
54                        $infos['emails'] = $emails[$id_auteur];
55                if ($telephones[$id_auteur])
56                        $infos['numeros'] =  $telephones[$id_auteur];
57                echo '<div class="vcard">'. association_totauxinfos_intro('<span class="fn">'.htmlspecialchars($nom_membre).'</span>', $statut, $id_auteur, $infos, 'asso', 'asso_membre') .'</div>';
58                // datation et raccourcis
59                if ($full)
60                        $res['adherent_label_modifier_membre'] = array('edit-24.gif', 'edit_adherent', "id=$id_auteur");
61                include_spip('inc/texte'); // pour nettoyer_raccourci_typo
62                $res["adherent_label_modifier_$statut"] = array('membre_infos.png', 'auteur_infos', "id_auteur=$id_auteur");
63                raccourcis_association('', $res);
64                debut_cadre_association('annonce.gif', 'membre', $nom_membre);
65                if ($full)
66                        echo propre($data['commentaire']);
67                $query_groupes = sql_select('g.id_groupe as id_groupe, g.nom as nom', 'spip_asso_groupes g LEFT JOIN spip_asso_groupes_liaisons l ON g.id_groupe=l.id_groupe', 'g.id_groupe>=100 AND l.id_auteur='.$id_auteur, '', 'g.nom'); // Liste des groupes (on ignore les groupes d'id <100 qui sont dedies a la gestion des autorisations)
68                if (sql_count($query_groupes)) {
69                        echo debut_cadre_relief('', true, '', _T('asso:groupes_membre') );
70                        echo association_bloc_listehtml(
71                                $query_groupes, // requete
72                                array(
73                                        'id_groupe' => array('asso:entete_id', 'entier'),
74                                        'nom' => array('asso:groupe', 'texte'),
75                                        'fonction' => array('asso:fonction', 'texte'),
76                                ), // entetes et formats des donnees
77                                array(
78                                        array('faire', 'membres', 'voir-12.gif', 'membres_groupe', 'id=$$'),
79                                ), // boutons d'action
80                                'id_groupe' // champ portant la cle des lignes et des boutons
81                        );
82                        echo fin_cadre_relief(true);
83                }
84                if (test_plugin_actif('fpdf') AND $GLOBALS['association_metas']['recufiscal']) { // JUSTIFICATIFS : afficher le lien vers les justificatifs seulemeunt si active en configuration et si FPDF est actif
85                        echo debut_cadre_relief('', true, '', _T('asso:liens_vers_les_justificatifs') );
86                        $data = array_map('array_shift', sql_allfetsel("DATE_FORMAT(date, '%Y')  AS annee", 'spip_asso_comptes', "id_journal=$id_auteur", 'annee', 'annee ASC') );
87                        foreach($data as $k => $annee) {
88                                echo '<a href="'. generer_url_ecrire('pdf_fiscal', "id=$id_auteur&annee=$annee") .'">'.$annee.'</a> ';
89                        }
90                        echo fin_cadre_relief(true);
91                }
92                if ($GLOBALS['association_metas']['pc_cotisations']){ // HISTORIQUE COTISATIONS
93                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_cotisations') );
94                        if ($full) { // si on a l'autorisation admin, on ajoute un bouton pour ajouter une cotisation
95                                echo '<p><a href="' .generer_url_ecrire('ajout_cotisation', "id=$id_auteur").'">' . _T('asso:adherent_label_ajouter_cotisation') .'</a></p>';
96                        }
97                        $association_imputation = charger_fonction('association_imputation', 'inc');
98                        $critere = $association_imputation('pc_cotisations');
99                        if ($critere)
100                                $critere .= ' AND ';
101                        echo voir_adherent_paiements(
102                                array('id_compte, recette AS montant, date, justification, journal', 'spip_asso_comptes', "$critere id_journal=$id_auteur", '', 'date DESC, id_compte DESC', '0,10' ),
103                                $full,
104                                'cotisation'
105                        );
106                        echo fin_cadre_relief(true);
107                }
108                if ($GLOBALS['association_metas']['activites']){ // HISTORIQUE ACTIVITES
109                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_activites') );
110                        echo association_bloc_listehtml(
111                                array('*', 'spip_asso_activites As a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement', "id_adherent=$id_auteur", '', 'date_debut DESC, date_fin DESC', '0,10'), // requete
112                                array(
113                                        'id_activite' => array('asso:entete_id', 'entier'),
114                                        'date_debut' => array('asso:entete_date', 'date'),
115                                        'titre' => array('asso:adherent_entete_activite', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
116                                        'inscrits' => array('asso:adherent_entete_inscrits', 'entier'),
117                                        'montant' => array('asso:entete_montant', 'prix'),
118                                ), // entetes et formats des donnees
119                                $full ? array(
120                                        array('edit', 'activite', 'id=$$'),
121                                ) : array(), // boutons d'action
122                                'id_activite' // champ portant la cle des lignes et des boutons
123                        );
124                        echo fin_cadre_relief(true);
125                }
126                if ($GLOBALS['association_metas']['ventes']){ // HISTORIQUE VENTES
127                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_ventes') );
128                        echo association_bloc_listehtml(
129                                array('*', 'spip_asso_ventes', "id_acheteur=$id_auteur", '', 'date_vente DESC', '0,10'), // requete
130                                array(
131                                        'id_vente' => array('asso:entete_id', 'entier'),
132                                        'date_vente' => array('asso:entete_date', 'date'),
133                                        'article' => array('asso:entete_article', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
134                                        'quantite' => array('asso:entete_quantite', 'nombre'),
135                                        'date_envoie' => array('asso:vente_entete_date_envoi', 'date'),
136                                ), // entetes et formats des donnees
137                                $full ? array(
138                                        array('edit', 'vente', 'id=$$'),
139                                ) : array(), // boutons d'action
140                                'id_vente' // champ portant la cle des lignes et des boutons
141                        );
142                        echo fin_cadre_relief(true);
143                }
144                if ($GLOBALS['association_metas']['dons']){ // HISTORIQUE DONS
145                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_dons') );
146                        echo association_bloc_listehtml(
147                                array('*', 'spip_asso_dons', "id_adherent=$id_auteur", '', 'date_don DESC', '0,10'), // requete
148                                array(
149                                        'id_don' => array('asso:entete_id', 'entier'),
150                                        'date_don' => array('asso:entete_date', 'date'),
151                                        'argent' => array('asso:entete_montant', 'prix'),
152                                        'colis' => array('asso:colis', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
153//                                      'valeur' => array('asso:vente_entete_date_envoi', 'prix'),
154                                ), // entetes et formats des donnees
155                                $full ? array(
156                                        array('edit', 'don', 'id=$$'),
157                                ) : array(), // boutons d'action
158                                'id_don' // champ portant la cle des lignes et des boutons
159                        );
160/*
161                        $association_imputation = charger_fonction('association_imputation', 'inc');
162                        $critere = $association_imputation('pc_dons');
163                        if ($critere)
164                                $critere .= ' AND ';
165                        echo voir_adherent_paiements(
166                                array('D.id_don AS id, D.argent AS montant, D.date_don AS date, justification, journal, id_compte', 'spip_asso_dons AS D LEFT JOIN spip_asso_comptes AS C ON C.id_journal=D.id_don', "$critere id_adherent=$id_auteur",'D.date_don DESC', '0,10'),
167                                $full,
168                                'don'
169                        );
170*/
171                        echo fin_cadre_relief(true);
172                }
173                if ($GLOBALS['association_metas']['prets']){ // HISTORIQUE PRETS
174                        echo debut_cadre_relief('', true, '', _T('asso:adherent_titre_historique_prets') );
175                        echo association_bloc_listehtml(
176                                array('*', 'spip_asso_prets AS P LEFT JOIN spip_asso_ressources AS R ON P.id_ressource=R.id_ressource', "id_emprunteur=$id_auteur", '', 'id_pret DESC', '0,10'), // requete
177                                array(
178                                        'id_pret' => array('asso:entete_id', 'entier'),
179                                        'date_sortie' => array('asso:prets_entete_date_sortie', 'date', 'dtstart'),
180                                        'intitule' => array('asso:entete_article', 'texte', $full?'propre':'nettoyer_raccourcis_typo', ),
181//                                      'duree' => array('asso:entete_duree', 'duree'),
182                                        'date_retour' => array('asso:prets_entete_date_retour', 'date', 'dtend'),
183                                ), // entetes et formats des donnees
184                                $full ? array(
185                                        array('edit', 'pret', 'id=$$'),
186                                ) : array(), // boutons d'action
187                                'id_pret' // champ portant la cle des lignes et des boutons
188                        );
189                        echo fin_cadre_relief(true);
190                }
191                fin_page_association();
192        }
193}
194
195function voir_adherent_paiements($data, $lien)
196{
197        return association_bloc_listehtml(
198                $data, // requete
199                array(
200                        'id_compte' => array('asso:entete_id', 'entier'),
201                        'date' => array('asso:entete_date', 'date'),
202                        'journal' => array('asso:adherent_entete_journal', 'texte'),
203                        'justification' => array('asso:adherent_entete_justification', 'texte', $lien?'propre':'nettoyer_raccourcis_typo', ),
204                        'montant' => array('asso:entete_montant', 'prix'),
205                ),
206                $lien ? array(
207                        array('faire', 'adherent_label_voir_operation', 'voir-12.png', 'comptes', 'id_compte=$$'),
208                ) : array(), // boutons d'action : pas plutot edit_compte ? (a propos, il faudrait carrement un voir_compte pour ne pas risquer de modifier ainsi une operation marquee "vu" et donc archivee/verouillee)
209                'id_compte' // champ portant la cle des lignes et des boutons
210        );
211}
212
213?>
Note: See TracBrowser for help on using the repository browser.