| // +--------------------------------------------------------------------------------+ // // $Id: admin_annu.php,v 1.1 2005/03/24 08:47:31 alex Exp $ define ("URL_RECU", $GLOBALS['ann_url']->protocol. '://'.$GLOBALS['ann_url']->host."/client/annuaire/voir_recu_pdf.php") ; include_once ("HTML/Table.php") ; include_once 'api/formulaire/FORM_formulaire.class.php' ; // admin_annu est une application cliente de gsite elle commence donc // dans une fonction putFrame() function putFrame() { global $u_id, $cotisation_id ; global $action ; if (empty($action)) $action = false ; $url = $GLOBALS['ann_url']->getURL() ; // mise à jour si il y lieu if ($action == "up") { $res .= upSQL() ; } // Requete de pour récupérer toutes les infos d'un usager $query = "select annuaire_tela.*,annuaire_LABEL_ACT.*,annuaire_LABEL_ASS.*,gen_COUNTRY.GC_NAME" ; $query .= ", annuaire_LABEL_NIV.*" ; $query .= " from annuaire_tela,gen_COUNTRY,gen_FRENCH_DPT," ; $query .= " annuaire_LABEL_ACT,annuaire_LABEL_ASS, annuaire_LABEL_NIV" ; $query .= " where U_ID=$u_id" ; //$query .= " and annuaire_tela.U_FRENCH_DPT=gen_FRENCH_DPT.GFD_ID" ; $query .= " and annuaire_tela.U_COUNTRY=gen_COUNTRY.GC_ID" ; $query .= " and annuaire_tela.U_ACT=annuaire_LABEL_ACT.ID_LABEL_ACT" ; $query .= " and annuaire_tela.U_ASS=annuaire_LABEL_ASS.ID_LABEL_ASS" ; $query .= " and annuaire_tela.U_NIV=annuaire_LABEL_NIV.ID_LABEL_NIV" ; $resultat = $GLOBALS['ann_db']->query($query) ; if (DB::isError($resultat)) { return $resultat->getMessage().'
'.$resultat->getDebugInfo().'
'.$query ; } $row = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ; $lettre = 'non' ; if($row->U_LETTRE == 1) { $lettre = 'oui' ; } $res = "

Edition d'un adhérent : $row->U_NAME $row->U_SURNAME

\n" ; $res .= "
".form("Nom : ", "U_NAME", $row->U_NAME)."
\n" ; $res .= "
".form("Prénom : ", "U_SURNAME", $row->U_SURNAME)."
\n" ; $res .= "
".form("Adresse mail : ", "U_MAIL", $row->U_MAIL)."
\n" ; $res .= "
".form("Date d'inscription : ", "U_DATE", $row->U_DATE)."
\n" ; $res .= "
".form("Adresse 1 : ", "U_ADDR1", $row->U_ADDR1)."
\n" ; $res .= "
".form("Adresse 2 : ", "U_ADDR2", $row->U_ADDR2)."
\n" ; $res .= "
".form("Région : ", "U_STATE", $row->U_STATE)."
\n" ; $res .= "
".form("Code postal : ", "U_ZIP_CODE", $row->U_ZIP_CODE)."
\n" ; $res .= "
".form("Ville : ", "U_CITY", $row->U_CITY)."
\n" ; $res .= "
".form("Pays : ", "U_COUNTRY", $row->U_COUNTRY)."
\n" ; $res .= "
".form("Site web personnel : ", "U_WEB", $row->U_WEB)."
\n" ; $res .= "
".form("Inscrit à la lettre d'actualités : ", "U_LETTRE", $lettre)."
\n" ; $res .= "
".form("Organisme : ", "U_TITLE", $row->U_TITLE)."
\n" ; $res .= "
".form("Fonction : ", "U_FONCTION", $row->U_FONCTION)."
\n" ; $res .= "
".form("Niveau en botanique : ", "LABEL_NIV", $row->LABEL_NIV)."
\n" ; $res .= "
".form("Activité : ", "LABEL_ACT", $row->LABEL_ACT)."
\n" ; $res .= "
".form("Secteur associatif : ", "LABEL_ASS", $row->LABEL_ASS)."
\n" ; $res .= "
".form("Spécialité : ", "U_SPE", $row->U_SPE)."
\n" ; $res .= "
".form("Spécialité géographique : ", "U_GEO", $row->U_GEO)."
\n" ; if (isset($cotisation_id) && $cotisation_id != "") { $db = & $GLOBALS['ann_db']; include_once ANN_CHEMIN_APPLI."recu_pdf_corps.php" ; // buffer est une propriété de la classe FPDF qui contient les données au format PDF. // habituellement on ne l'utilise pas, on appelle $pdf->Output() qui envoie les // entete HTTP du document généré $pdf->Close() ; $buf = $pdf->buffer; // Inclusion des bibliothèques PEAR include_once ('Mail.php'); include_once ('Mail/mime.php'); $file = 'Recu_Fiscal_Tela_Botanica.pdf'; $crlf = "\r\n"; $hdrs = array( 'From' => 'accueil@tela-botanica.org', 'Subject' => 'Reçu pour don à Tela Botanica' ); $mime = new Mail_mime($crlf); $text = "Bonjour !\n\n". "Le Réseau Tela Botanica vous remercie du soutien financier que vous lui avez apporté. Votre contribution permettra au réseau :\n\n". "- de continuer à encourager et accompagner des projets botaniques,\n". "- de maintenir et d'améliorer nos services Internet dédiés à la botanique.\n\n". "Vous trouverez en pièce jointe à ce message un document PDF contenant le reçu fiscal à imprimer". " et à joindre à votre déclaration d'impôts. Si vous n'arrivez pas à imprimer ce document, veuillez". " nous le signaler en répondant à ce mail et en indiquant votre nom et votre adresse postale. Nous vous". " ferons parvenir le reçu imprimé à cette adresse.\n\n". "Rappel : Votre contribution financière ne constitue pas une adhésion à l'Association Tela Botanica mais ". "bien un soutien aux actions menées par le Réseau Tela Botanica.\n\n". "Si ce n'est déjà fait, n'oubliez pas de vous inscrire au Réseau sur le site Internet, à l'adresse : ". "http://www.tela-botanica.org (menu « Inscription», onglet « Inscription»), afin que vous puissiez :\n\n". "- consulter l'annuaire des personnes inscrites au Réseau ;\n- localiser les membres du Réseau dans tous". " les pays;\n- accédez à certaines données diffusées sur le site ;\n- vous inscrire à des projets ". "botaniques ;\n- être informé personnellement des actualités du Réseau.\n\n". "Bien cordialement,\n\n". "Tela Botanica\nLe Réseau des Botanistes Francophones\n163, rue A. Broussonnet\n34090 Montpellier\n". "Tél. : 04-67-52-41-22\naccueil@tela-botanica.org\nhttp://www.tela-botanica.org\n" ; $mime->setTXTBody($text); // On attache le document PDF grace à $buf, et en indiquant son type MIME $mime->addAttachment($buf, 'application/pdf', $file, false, 'base64') ; $body = $mime->get(); $hdrs = $mime->headers($hdrs); $mail =& Mail::factory('mail'); $mail->send($ligne->U_MAIL, $hdrs, $body); // On insere le numéro du reçu dans la table annuaire_COTISATION @mysql_query("update annuaire_COTISATION set IC_RECU=$num_recu, IC_DATE_ENVOIE_RECU=NOW() where IC_ID=$cotisation_id") ; // On incrémente le compteur de mail de 1 if (!$deja_envoye) { $num_recu++ ; mysql_query("update COMPTEUR_COTISATION set COMPTEUR=$num_recu ") ; } $res .= "
Le reçu a été envoyé
\n" ; } $res .= cotisation($u_id) ; $res .= suppression($u_id) ; return $res ; } // form construit soit un formulaire de type et // de nom $field_ et place un $label devant // soit construit un lien vers un formulaire à partir du champs $field_ function form($label, $field_, $value) { global $u_id, $GS_GLOBAL, $field ; $url = $GLOBALS['ann_url']->getURL() ; if ($field != $field_) { $res = "$label" ; $res .= "" ; if ($field_ == 'LABEL_NIV' || $field_ == 'LABEL_ACT' || $field_== 'LABEL_ASS') { $res .= $value ? $value : "(vide)"; } else if ($field_ == "U_COT") { if ($value == 0) { $res .= "non" ; } else { $res .= "oui" ; } } else { $res .= $value ? $value : "(vide)"; } $res .= "\n" ; } if ($field == $field_) { $res = "\n
" ; $res .= "$label\n" ; switch ($field_) { case "U_COUNTRY" : $select_country = new form($GS_GLOBAL['link']) ; $res .= ereg_replace("gen_COUNTRY", "U_COUNTRY", $select_country->selectFromTable("gen_COUNTRY", $value, "GC_ID", "GC_NAME")) ; unset($select_country) ; break ; case "LABEL_NIV" : $res .= getFormInsInfo($field_, $value) ; break ; case "LABEL_ASS" : $res .= getFormInsInfo($field_, $value) ; break ; case "LABEL_ACT" : $res .= getFormInsInfo($field_, $value) ; break ; case "LABEL_STATUT" : $res .= getFormInsInfo($field_, $value) ; break ; case "U_COT" : $res .= "\n" ; break ; default : $res .= "\n" ; } $res .= "\n" ; $res .= "
" ; } return $res ; } // upSQL met à jour la table annuaire_tela function upSQL() { global $field_ ; global $u_id ; global $HTTP_POST_VARS ; switch ($field_) { case "LABEL_NIV" : $field_ = "U_NIV" ; $id_field = "ID_LABEL_NIV"; break ; case "LABEL_ACT" : $field_ = "U_ACT" ; $id_field = "ID_LABEL_ACT"; break ; case "LABEL_ASS" : $field_ = "U_ACT" ; $id_field = "ID_LABEL_ASS"; break ; default :$id_field = $field_ ; } // Recherche de l'ancien mail $req_am = "select U_MAIL from annuaire_tela where U_ID = $u_id" ; $res_am = mysql_query ($req_am); if(!$res_am) { $res .= "
Echec de la requete dans la table annuaire, l'identifiant de personnes est invalide : ".$u_id."
" ; } $ligne_am = mysql_fetch_object ($res_am) ; $ancien_mail = $ligne_am->U_MAIL ; $query = "update annuaire_tela set $field_=\"".$HTTP_POST_VARS[$id_field]."\" where U_ID = $u_id" ; $res_update = mysql_query($query); if(!$res_update) { $res .= "
Echec de la requete de mise à jour de la table annuaire
du paramètre U_ID
ancienne valeur : ".$u_id." nouvelle valeur : ".$HTTP_POST_VARS[$id_field]."
" ; } // Traitement du département if ($field_ == "U_ZIP_CODE") { if (preg_match("/^97|98[0-9]*/", $HTTP_POST_VARS['U_ZIP_CODE'])) { $n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 3) ; } else { $n_dpt = substr($HTTP_POST_VARS['U_ZIP_CODE'], 0, 2) ; } mysql_query ("update annuaire_tela set U_FRENCH_DPT='$n_dpt' where U_ID='$u_id'") ; } // Traitement de l'adresse mail if ($field_ == "U_MAIL") { $requete = "update ins_STATS set IS_MAIL=\"".$HTTP_POST_VARS['U_MAIL']."\" where IS_MAIL=\"$ancien_mail\"" ; mysql_query ($requete) ; } return ""; } function getFormInsInfo($field, $value) { $query = "select * from annuaire_$field" ; $id_field = "ID_$field" ; $result = mysql_query($query) or die ("Echec de la requete sur ID_$field
".mysql_error()) ; $res = "\n" ; return $res ; } // Fonction pour gérer les cotisations d'un inscrit, en // fonction de son id ($u_id) function cotisation($u_id) { global $action, $IC_MONTANT, $IC_DATE, $id_cot, $IC_MC_ID ; $res = '' ; // un peu de javascript pour la confirmation en cas de destruction $outputText = "function confirmLink(theLink, theSqlQuery) { var is_confirmed = confirm(theSqlQuery); return is_confirmed; } " ; // fonction gsite pour inclure la fonction Javascript // au code html GEN_stockerCodeScript($outputText) ; $url = $GLOBALS['ann_url']->getURL() ; // Ce qui suit sont le traitement des 3 actions ajouter, modifier, supprimer // qui agissent sur la table annuaire_COTISATION // l'action 'cu' consiste en l'insertion d'une ligne dans la table annuaire_COTISATION if ($action == "cu") { $date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ; $query = 'insert into annuaire_COTISATION values ("", '.$IC_MC_ID.', '.$u_id.', '.$date.',"'.$IC_MONTANT.'", 0, "0000-00-00")' ; $resultat = $GLOBALS['ann_db']->query ($query) ; if (DB::isError($resultat)) { echo $resultat->getMessage().'
'.$resultat->getDebugInfo().'
'.$query ; } $GLOBALS['ann_db']->query("update annuaire_tela set U_COT=1 where U_ID=$u_id") ; } // l'action 'mu' permet de mettre à jour une ligne dans annuaire_COTISATION if ($action == "mu") { $date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3-\\2-\\1", $IC_DATE) ; $query = 'update annuaire_COTISATION set IC_DATE="'.$date.'", IC_MONTANT="'.$IC_MONTANT.'", IC_MC_ID='.$IC_MC_ID.' where IC_ID='.$id_cot ; $GLOBALS['ann_db']->query ($query) ; if (DB::isError($resultat)) { echo $resultat->getMessage().'
'.$resultat->getDebugInfo().'
'.$query ; } } // l'action 'rm' retire une ligne de la table annuaire_COTISATION if ($action == "rm") { $query = "delete from annuaire_COTISATION where IC_ID=$id_cot" ; $GLOBALS['ann_db']->query ($query) ; if (DB::isError($resultat)) { echo $resultat->getMessage().'
'.$resultat->getDebugInfo().'
'.$query ; } $GLOBALS['ann_db']->query("update annuaire_tela set U_COT=0 where U_ID=$u_id") ; } // Quoi qu'il arrive, on récupère les informations concernant // les cotisations d'un inscrit et on les affiche sous forme de // table HTML $query = "select * from annuaire_COTISATION, MODE_COTISATION where IC_ANNU_ID=$u_id and IC_MC_ID=MC_ID ORDER BY IC_DATE" ; $result = $GLOBALS['ann_db']->query($query) ; if (DB::isError($result)) { return $result->getMessage().'
'.$result->getDebugInfo().'
'.$query; } $res = "

Etat des cotisations :

" ; // formatage de la date $date = date("d-m-Y") ; // l'action 'sc' correspond à l'édition d'une ligne de la table // annuaire_COTISATION. Si elle est présente on affiche un formulaire // de modification if ($action == "sc") { $res .= "
Date : " ; $res .= "\n" ; $res .= "Montant : €\n" ; $res .= mode_paiement(0) ; $res .= "\n" ; $res .= "
\n" ; $res .= "
\n" ; // si l'action 'sc' n'est pas active on affiche toutes les lignes // de cotisation de l'inscrit } else { if ($result->numRows() != 0) { $res .= "
" ; $table = new HTML_Table(array("class" => "table_cadre")) ; $table->addRow(array("Date", "Montant", "Mode", "modifier", "supprimer", "Voir le reçu", "Envoyer le reçu", "Date d'envoie du reçu"),'', 'TH') ; while ($row = $result->fetchRow(DB_FETCHMODE_OBJECT)) { // Le reçu a t il été envoyé ? if ($row->IC_RECU != 0) { $message_envoye = $row->IC_DATE_ENVOIE_RECU ; ; } else { $message_envoye = "Reçu non envoyé"; } if ($action != "mc" || $id_cot != $row->IC_ID) { $table->addRow(array ($row->IC_DATE, $row->IC_MONTANT." ", $row->MC_LABEL, "IC_ID\">modifier", "IC_ID\"". " onclick=\"javascript:return confirmLink(this, 'êtes-vous". " sûr de vouloir supprimer cette entrée');\">supprimer", "IC_ID\">Voir le reçu", "IC_ID&action=er\">Envoyer le reçu", $message_envoye)) ; } else { // Recherche du mode de paiement $table->addRow(array("
IC_ID\" method=\"post\">\n". "IC_DATE)."\">", "IC_MONTANT\">", mode_paiement($row->IC_MC_ID), "". "
", " ")) ; } } $table->altRowAttributes(1, array("class" => "ligne_paire"), array("class" => "ligne_impaire")) ; $res .= $table->toHTML()."
\n" ; unset($table) ; } else { $res .= "
non cotisant
\n" ; } $res .= "
\n" ; } return $res ; } function suppression($u_id) { global $GS_GLOBAL, $action ; // un peu de javascript pour la confirmation en cas de destruction $outputText = "function confirmLink(theLink, theSqlQuery) { var is_confirmed = confirm(theSqlQuery); return is_confirmed; } " ; // fonction gsite pour inclure la fonction Javascript // au code html GEN_stockerCodeScript($outputText) ; $url = $GLOBALS['ann_url']->getURL() ; $res = "
Supprimer l'inscription
\n" ; $res .="
\n" ; $res .= "\n" ; $res .= "
\n" ; if ($action=="suppr_adh") { $requete_utilisateur = "select U_MAIL from annuaire_tela where U_ID=".$u_id ; $resultat_utilisateur = mysql_query($requete_utilisateur); if(!$resultat_utilisateur) { $res .= "
Echec de la requete dans la table annuaire utilisateurs, l'identifiant de personne est invalide : ".$u_id."
" ; } $utilisateur = mysql_fetch_object($resultat_utilisateur) ; $mail = $utilisateur->U_MAIL ; mysql_free_result($resultat_utilisateur) ; // vérifications // 1. annu_ADMIN $requete_annuaire_admin = "select ".ANNUAIRE_ADMIN_ID." from ".ANNUAIRE_ADMIN." where ".ANNUAIRE_ADMIN_ID."=".$u_id ; $r_annu_ADMIN = mysql_query($requete_annuaire_admin); if(!$r_annu_ADMIN) { $res .= "
Echec de la requete dans la table annuaire administrateurs, l'identifiant de personne est invalide : ".$u_id ."
Requete : ".$requete_annuaire_admin ; } if (mysql_num_rows($r_annu_ADMIN) != 0) { $res .= "Une référence dans annu_ADMIN" ; } // 2. // suppression $query_supp = "delete from annuaire_tela where U_ID=".$u_id ; $res_supp = mysql_query($query_supp); if(!$res_supp) { $res .= "
Echec de la suppression dans la table annuaire utilisateurs, l'identifiant de personne est invalide : ".$u_id ."
Requete : ".$query_supp ; } // Suppression dans SPIP if (INS_UTILISE_SPIP) { desinscription_spip($u_id) ; } // Désinscription de la lettre d'info if (INS_UTILISE_LISTE) { if ($utilisateur->U_LETTRE == 1) { $supp_abo = file_get_contents(URL_LISTE_ACTU.'suppression_abonne.php?domaine=tela-botanica.org&liste=actu&mail='.$mail) ; } } // Appel des actions desinscriptions des applications clientes $msg = ''; $id_utilisateur = $u_id; $d = dir(GEN_CHEMIN_CLIENT); while (false !== ($repertoire = $d->read())) { if ($repertoire != '.' || $repertoire != '..') { if (file_exists(GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php')) include_once GEN_CHEMIN_CLIENT.$repertoire.GEN_SEP.$repertoire.'.desinscription.inc.php' ; } if ($msg != '') $res .= $msg; } } return $res ; } /** function mode_paiement () Produit un champs select avec le mode de paiement * * * @param integer mode de paiement par defaut * @return string HTML */ function mode_paiement ($defaut) { $res = '\n" ; return $res ; } function desinscription_spip($id_utilisateur) { //BIEN METTRE alea_actuel, htpass ET alea_futur À "" $requete = 'DELETE FROM '.INS_BDD_SPIP.'.spip_auteurs WHERE id_auteur='.$id_utilisateur ; //echo $requete; $resultat = $GLOBALS['ins_db']->query ($requete) ; if (DB::isError ($resultat)) { return "Echec de la requete : $requete
".$resultat->getMessage() ; } } ?>