Blame | Last modification | View Log | RSS feed
<?php// +--------------------------------------------------------------------------------+// | admin_annu.php |// +--------------------------------------------------------------------------------+// | Copyright (c) 2002 |// +--------------------------------------------------------------------------------+// | Administration des inscrits à un annuaire de type annuaire_tela |// | de Gsite, |// | Sont également mises en jeux les tables gen_COUNTRY, gen_FRENCH_DPT, |// | LABELS |// | Plus spécifique la fonction cotisation($id) en bas permet de |// | gérer les cotisations versées par les inscrits, avec la table |// | annuaire_COTISATION |// +--------------------------------------------------------------------------------+// | Auteur : Alexandre Granier <alexandre@tela-botanica.org> |// +--------------------------------------------------------------------------------+//// $Id: edition_fiche.php,v 1.1 2005-04-06 13:33:32 florian Exp $global $HTTP_HOST ;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 ;global $link ;if (empty($action)) $action = false ;$url = $GLOBALS['ann_url']->getURL() ;// mise à jour si il y lieuif ($action == "up") {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.*, annuaire_LABEL_STATUT.*" ;$query .= " from annuaire_tela,gen_COUNTRY,gen_FRENCH_DPT," ;$query .= " annuaire_LABEL_ACT,annuaire_LABEL_ASS, annuaire_LABEL_NIV, annuaire_LABEL_STATUT" ;$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" ;$query .= " and annuaire_tela.U_SHOW=annuaire_LABEL_STATUT.ID_LABEL_STATUT" ;$result = mysql_query($query) or die("Echec de la requete sur ".ANN_ANNUAIRE.":<br>".mysql_error().'<br>'.$query) ;$row = mysql_fetch_object($result) ;$res = "<h1>Edition d'un adhérent : $row->U_NAME $row->U_SURNAME</h1>\n" ;$res .= "<div>".form("Nom : ", "U_NAME", $row->U_NAME)."</div>\n" ;$res .= "<div>".form("Prénom : ", "U_SURNAME", $row->U_SURNAME)."</div>\n" ;$res .= "<div>".form("Adresse mail : ", "U_MAIL", $row->U_MAIL)."</div>\n" ;$res .= "<div>".form("Date d'inscription : ", "U_DATE", $row->U_DATE)."</div>\n" ;$res .= "<div>".form("Adresse 1 : ", "U_ADDR1", $row->U_ADDR1)."</div>\n" ;$res .= "<div>".form("Adresse 2 : ", "U_ADDR2", $row->U_ADDR2)."</div>\n" ;$res .= "<div>".form("Région : ", "U_STATE", $row->U_STATE)."</div>\n" ;$res .= "<div>".form("Code postal : ", "U_ZIP_CODE", $row->U_ZIP_CODE)."</div>\n" ;$res .= "<div>".form("Ville : ", "U_CITY", $row->U_CITY)."</div>\n" ;$res .= "<div>".form("Pays : ", "U_COUNTRY", $row->U_COUNTRY)."</div>\n" ;$res .= "<div>".form("Site web personnel : ", "U_WEB", $row->U_WEB)."</div>\n" ;$res .= "<div>".form("Organisme : ", "U_TITLE", $row->U_TITLE)."</div>\n" ;$res .= "<div>".form("Fonction : ", "U_FONCTION", $row->U_FONCTION)."</div>\n" ;$res .= "<div>".form("Niveau en botanique : ", "LABEL_NIV", $row->LABEL_NIV)."</div>\n" ;$res .= "<div>".form("Activité : ", "LABEL_ACT", $row->LABEL_ACT)."</div>\n" ;$res .= "<div>".form("Secteur associatif : ", "LABEL_ASS", $row->LABEL_ASS)."</div>\n" ;$res .= "<div>".form("Spécialité : ", "U_SPE", $row->U_SPE)."</div>\n" ;$res .= "<div>".form("Spécialité géographique : ", "U_GEO", $row->U_GEO)."</div>\n" ;$res .= "<div>".form("Statut : ", "LABEL_STATUT", $row->LABEL_STATUT)."</div>\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 PEARinclude_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) ;$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 1if (!$deja_envoye) {$num_recu++ ;mysql_query("update COMPTEUR_COTISATION set COMPTEUR=$num_recu ") ;}$res .= "<div>Le reçu a été envoyé</div>\n" ;}$res .= cotisation($u_id) ;$res .= suppression($u_id) ;return $res ;}// form construit soit un formulaire de type <input type="text" ...> 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 = "<b>$label</b>" ;$res .= "<a href=\"$url&field=$field_\">" ;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 .= "</a>\n" ;}if ($field == $field_) {$res = "\n<form action=\"$url&u_id=$u_id&action=up&field_=$field_\" method=\"post\">" ;$res .= "<b>$label</b>\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 .= "<select class=\"insInputForm\" name=\"II_COT\">\n" ;if ($value == 0) {$check0 = " selected" ;$check1 = "" ;} else {$check1 = " selected" ;$check0 = "" ;}$res .= "<option value=\"0\"$check0>non</option>\n" ;$res .= "<option value=\"1\"$check1>oui</option>\n" ;$res .= "</select>\n" ;break ;default :$res .= "<input type=\"text\" size=\"40\" name=\"$field_\" value=\"$value\">\n" ;}$res .= "<input type=\"submit\" value=\"valider\" class=\"texte_tb\">\n" ;$res .= "</form>" ;}return $res ;}// upSQL met à jour la table annuaire_telafunction upSQL(){global $field_ ;global $u_id ;global $HTTP_POST_VARS ;switch ($field_) {case "LABEL_STATUT" : $field_ = "U_SHOW" ;$id_field = "ID_LABEL_STATUT";break ;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) or die ("Echec ".mysql_error()) ;$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" ;mysql_query($query) or die ("<br>Echec de la requete de mise à jour<br>\n") ;// Traitement du départementif ($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 mailif ($field_ == "U_MAIL") {$requete = "update ins_STATS set IS_MAIL=\"".$HTTP_POST_VARS['U_MAIL']."\" where IS_MAIL=\"$ancien_mail\"" ;mysql_query ($requete) ;}}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<br>".mysql_error()) ;$res = "<select name=\"$id_field\" class=\"insInputForm\">\n" ;$i = 0 ;while ($row = mysql_fetch_object($result)) {$res .= "<option value=\"".$row->$id_field."\"" ;if ($value == $row->$field) $res .= " selected";$res .= ">" ;$res .= $row->$field ;$res .= "</option>\n" ;$i++ ;}$res .= "</select>\n" ;return $res ;}// Fonction pour gérer les cotisations d'un inscrit, en// fonction de son id ($u_id)function cotisation($u_id){global $GS_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 htmlGEN_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_COTISATIONif ($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, UNIX_TIMESTAMP($date),\"$IC_MONTANT\", 0, \"0000-00-00\")" ;mysql_query ($query) or die ("Echec de la requete d'insertion dans annuaire_COTISATION<br>$query<br>".mysql_error()) ;mysql_query("update annuaire_tela set U_COT=1 where U_ID=$u_id") ;}// l'action 'mu' permet de mettre à jour une ligne dans annuaire_COTISATIONif ($action == "mu") {$date = preg_replace("/([0-9]+)-([0-9]+)-([0-9]+)/", "\\3\\2\\1", $IC_DATE) ;$query = "update annuaire_COTISATION set IC_DATE=UNIX_TIMESTAMP($date), IC_MONTANT=\"$IC_MONTANT\",IC_MC_ID=$IC_MC_ID where IC_ID=$id_cot" ;mysql_query ($query) or die ("Echec de la requete d'insertion dans annuaire_COTISATION<br>$query<br>".mysql_error()) ;}// l'action 'rm' retire une ligne de la table annuaire_COTISATIONif ($action == "rm") {$query = "delete from annuaire_COTISATION where IC_ID=$id_cot" ;mysql_query ($query) or die ("Echec de la requete de suppression dans annuaire_COTISATION") ;mysql_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_idand IC_MC_ID=MC_ID" ;$result = mysql_query($query) or die ("Echec de la requete sur annuaire_COTISATION<br>".$query) ;$res = "<h1>Etat des cotisations : </h1>" ;// 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 modificationif ($action == "sc") {$res .= "<div><form action=\"$url&action=cu\" method=\"post\"><b>Date : </b>" ;$res .= "<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"";$res .= $date ;$res .= "\">\n" ;$res .= "<b>Montant : </b><input type=\"text\" class=\"insInputForm\" size=\"5\" name=\"IC_MONTANT\" value=\"30\"> €\n" ;$res .= mode_paiement(0) ;$res .= "<input type=\"submit\" value=\"Valider\" class=\"texte_tb\">\n" ;$res .= "<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>\n" ;$res .= "</div>\n" ;// si l'action 'sc' n'est pas active on affiche toutes les lignes// de cotisation de l'inscrit} else {if (mysql_num_rows($result) != 0) {$res .= "<div>" ;$table = new HTML_Table(array("width" => "100%", "class" => "texte_tb2")) ;$table->addRow(array("Date", "Montant", "Mode", "modifier", "supprimer", "Voir le reçu", "Envoyer le reçu","Date d'envoie du reçu"),array("class" => "insTitle1")) ;while ($row = mysql_fetch_object($result)) {// 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 (date ("j m Y", $row->IC_DATE), $row->IC_MONTANT." <b>€</b>", $row->MC_LABEL,"<a href=\"$url&action=mc&id_cot=$row->IC_ID\">modifier</a>","<a href=\"$url&action=rm&id_cot=$row->IC_ID\""." onclick=\"javascript:return confirmLink(this, 'êtes-vous"." sûr de vouloir supprimer cette entrée');\">supprimer</a>","<a href=\"".URL_RECU."?cotisation_id=$row->IC_ID\">Voir le reçu</a>","<a href=\"$url&cotisation_id=$row->IC_ID\">Envoyer le reçu</a>",$message_envoye)) ;} else {// Recherche du mode de paiement$table->addRow(array("<form action=\"$url&action=mu&id_cot=$row->IC_ID\" method=\"post\">\n"."<input type=\"text\" size=\"9\" class=\"insInputForm\" name=\"IC_DATE\" value=\"".date ("j-m-Y", $row->IC_DATE)."\">","<input type=\"text\" size=\"5\" class=\"insInputForm\" name=\"IC_MONTANT\" value=\"$row->IC_MONTANT\"><b>€</b>",mode_paiement($row->IC_MC_ID),"<input type=\"submit\" class=\"texte_tb\" value=\"valider\">"."<input type=\"button\" value=\"Annuler\" class=\"texte_tb\" onclick=\"javascript:window.location.href='$url';\"></form>"," ")) ;}}$table->altRowAttributes(1, array("class" => "texte_tb2"), array("class" => "text2")) ;$res .= $table->toHTML()."</div>\n" ;unset($table) ;} else {$res .= "<div>non cotisant</div>\n" ;}$res .= "<div><input type=\"button\" class=\"texte_tb\" " ;$res .= "value=\"Saisir une cotisation\" onclick=\"javascript:window.location.href='$url&action=sc';\"></div>\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 htmlGEN_stockerCodeScript($outputText) ;$url = $GLOBALS['ann_url']->getURL() ;$res = "<div>Supprimer l'inscription</div>\n" ;$res .="<div><form action=\"$url&action=suppr_adh\" method=\"post\">\n" ;$res .= "<input type=\"submit\" class=\"texte_tb\" value=\"Supprimer\" " ;$res .= "onclick=\"javascript:return confirmLink(this, 'êtes-vous sûr de vouloir supprimer cet adhérent');\">\n" ;$res .= "</form></div>\n" ;if ($action=="suppr_adh") {$queryLogin = "select U_MAIL from annuaire_tela where U_ID=$u_id" ;$resultLogin = mysql_query($queryLogin) or die ("Echec de la requete sur annu_USERS");$rowLogin = mysql_fetch_object($resultLogin) ;$mail = $rowLogin->U_MAIL ;mysql_free_result($resultLogin) ;// vérifications// 1. annu_ADMIN$q_annu_ADMIN = "select AA_ID from annu_ADMIN where AA_ID=$u_id" ;$r_annu_ADMIN = mysql_query($q_annu_ADMIN) or die ("Echec ..." );if (mysql_num_rows($r_annu_ADMIN) != 0) {$res .= "Une référence dans annu_ADMIN" ;}// 2.// suppression$query = "delete from annuaire_tela where U_ID=$u_id" ;}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 = "<select name=\"IC_MC_ID\" class=\"insInputForm\">\n" ;$req_mode = "select * from MODE_COTISATION" ;$res_mode = mysql_query($req_mode) or die ($req_mode."<br>".mysql_error()) ;while ($ligne_mode = mysql_fetch_object($res_mode)) {$res .= "<option value=\"$ligne_mode->MC_ID\"" ;if ($ligne_mode ->MC_ID == $defaut) $res .= " selected" ;$res .= ">$ligne_mode->MC_LABEL</option>\n" ;}$res .= "</select>\n" ;return $res ;}?>