\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" ;
}
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 .= "
\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("",
" ")) ;
}
}
$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" ;
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() ;
}
}
?>