require_once dirname(__FILE__) . '/../../../sources/Afup/AFUP_Mail.php'; $forum_inscriptions = new AFUP_Inscriptions_Forum($bdd); $forum_facturation = new AFUP_Facturation_Forum($bdd); $forum_inscriptions->modifierEtatInscription($_GET['cmd'], AFUP_FORUM_ETAT_REGLE); $forum_facturation->enregistrerInformationsTransaction($_GET['cmd'], $_GET['autorisation'], $_GET['transaction']); if ($forum_facturation->estFacture($_GET['cmd'])) { $facture = $forum_facturation->obtenir($_GET['cmd']); // Send the invoice $forum_facturation->envoyerFacture($facture); // Send register confirmation $mail = new AFUP_Mail(); $registrations = $forum_inscriptions->getRegistrationsByReference($facture['reference']); foreach ($registrations as $registration) { $receiver = array('email' => $registration['email'], 'name' => sprintf('%s %s', $registration['prenom'], $registration['nom'])); $data = $registration; if (!$mail->send('confirmation-inscription-phptour2015', $receiver, $data)) { $message = <<<HTML Impossible d'envoyer la confirmation d'inscription après paiement pour le forum en cours.<br> Facture : {$registration['reference']}<br/> Contact : {$registration['prenom']} {$registration['nom']} <{$registration['email']}> HTML; $mail->sendSimpleMessage("Impossible d'envoyer la confirmation", $message, array(array('name' => 'Trésorier AFUP', 'email' => '*****@*****.**'), array('name' => 'Communication AFUP', 'email' => '*****@*****.**'))); } } } else { // Send error to default // @TODO check if this happens or not $mail = new AFUP_Mail(); $mail->sendSimpleMessage("Impossible d'envoyer la facture", 'Impossible de facturer la commande ' . htmlspecialchars($_GET['cmd']) . ' après paiement inscription forum.'); } $smarty->display('paybox_effectue.html');
/** * Send the "convocation" email to every people attending to the specified event. * @param int $id_forum Forum's ID * @param string $template Mandrill template's identifier * @return bool Always TRUE (due to legacy code) */ public function envoyerEmailConvocation($id_forum, $template) { require_once dirname(__FILE__) . '/AFUP_Configuration.php'; $configuration = $GLOBALS['AFUP_CONF']; // Get all visitors with "good" state (good to receive the email) // No speakers. $requete = <<<SQL SELECT i.*, f.societe, md5(CONCAT(i.id, i.reference)) as md5key, af.path FROM afup_inscription_forum i LEFT JOIN afup_facturation_forum f ON i.reference = f.reference INNER JOIN afup_forum af ON i.id_forum = af.id WHERE i.id_forum = {$id_forum} AND i.type_inscription <> 12 AND i.etat IN (0, 4, 5, 6, 7, 8) ORDER BY i.date ; SQL; $inscrits = $this->_bdd->obtenirTous($requete); require_once dirname(__FILE__) . '/AFUP_Mail.php'; $mailer = new AFUP_Mail(); $listSent = array(); // Send to each visitor $total = count($inscrits); foreach ($inscrits as $nb => $inscrit) { $sent = $mailer->send($template, array('name' => $inscrit['prenom'] . " " . $inscrit['nom'], 'email' => $inscrit['email']), $inscrit, array('bcc_address' => false), true); if ($sent) { $listSent[] = "{$inscrit['prenom']} {$inscrit['nom']} : {$inscrit['email']}"; } } // Send confirmation $count = count($listSent); $msg = "<p>Voici la liste des convocations envoyées ({$count}/{$total}, template {$template}) :</p>"; $msg .= "<ol>"; $msg .= "<li>" . implode("</li>\n<li>", $listSent) . "</li>"; $msg .= "</ol>"; $mailer->sendSimpleMessage("Liste des convocations envoyées", $msg); return true; }
$etat = AFUP_FORUM_ETAT_REGLE; } elseif ($status === '00015') { // Designe un paiement deja effectue : on a surement deja eu le retour donc on s'arrete die; } elseif ($status === '00117') { $etat = AFUP_FORUM_ETAT_ANNULE; } elseif (substr($status, 0, 3) === '001') { $etat = AFUP_FORUM_ETAT_REFUSE; } $forum_inscriptions->modifierEtatInscription($_GET['cmd'], $etat); $forum_facturation->enregistrerInformationsTransaction($_GET['cmd'], $_GET['autorisation'], $_GET['transaction']); if ($etat === AFUP_FORUM_ETAT_REGLE && $forum_facturation->estFacture($_GET['cmd'])) { $facture = $forum_facturation->obtenir($_GET['cmd']); // Send the invoice $forum_facturation->envoyerFacture($facture); // Send register confirmation $mail = new AFUP_Mail(); $registrations = $forum_inscriptions->getRegistrationsByReference($facture['reference']); foreach ($registrations as $registration) { $receiver = array('email' => $registration['email'], 'name' => sprintf('%s %s', $registration['prenom'], $registration['nom'])); $data = $registration; if (!$mail->send('confirmation-inscription-php-tour-2016', $receiver, $data)) { $message = <<<HTML Impossible d'envoyer la confirmation d'inscription après paiement pour le forum en cours.<br> Facture : {$registration['reference']}<br/> Contact : {$registration['prenom']} {$registration['nom']} <{$registration['email']}> HTML; $mail->sendSimpleMessage("Impossible d'envoyer la confirmation", $message, array(array('name' => 'Trésorier AFUP', 'email' => '*****@*****.**'), array('name' => 'Communication AFUP', 'email' => '*****@*****.**'))); } } }
/** * Envoi par mail d'une facture au format PDF * * @param string|array $reference Invoicing reference as string, or the invoice itself * @access public * @return bool Succès de l'envoi */ function envoyerFacture($reference, $copyTresorier = true, $facturer = true) { require_once 'AFUP_Mail.php'; require_once 'AFUP_Configuration.php'; $configuration = $GLOBALS['AFUP_CONF']; if (is_array($reference)) { $personne = $reference; $reference = $personne['reference']; } else { $personne = $this->obtenir($reference, 'email, nom, prenom'); } $mail = new AFUP_Mail(); $receiver = array('email' => $personne['email'], 'name' => sprintf('%s %s', $personne['prenom'], $personne['nom'])); $parameters = array(); if (!$copyTresorier) { // Bypass copy tresorier@afup.org $parameters['bcc_address'] = null; } $parameters['subject'] = "Facture événement AFUP"; $data = array('raison_sociale' => $configuration->obtenir('afup|raison_sociale'), 'adresse' => $configuration->obtenir('afup|adresse'), 'ville' => $configuration->obtenir('afup|code_postal') . " " . $configuration->obtenir('afup|ville')); $chemin_facture = AFUP_CHEMIN_RACINE . 'cache' . DIRECTORY_SEPARATOR . 'fact' . $reference . '.pdf'; $numeroFacture = $this->genererFacture($reference, $chemin_facture); $parameters += array("attachments" => array(array("type" => "application/pdf", "name" => 'facture-' . $numeroFacture . '.pdf', "content" => base64_encode(file_get_contents($chemin_facture))))); @unlink($chemin_facture); $ok = $mail->send('facture-forum', $receiver, $data, $parameters); if ($ok && $facturer) { $this->estFacture($reference); } return $ok; }