Пример #1
0
 * @link     http://leqg.info
 */
$var = $_GET;
$var['criteres'] = trim($var['criteres'], ';');
$contacts = People::listing($var, 0, false);
$fichier = array();
$nomFichier = 'export-' . User::ID() . '-' . uniqid() . '.csv';
$file = fopen('exports/' . $nomFichier, 'w+');
$entete = ['nom', 'nom_usage', 'prenoms', 'sexe', 'date_naissance', 'age', 'adresse declaree', 'adresse electorale', 'bureau', 'ville', 'electeur', 'electeur_europeen', 'electeur_municipales', 'organisme', 'fonction', 'tags'];
fputcsv($file, $entete, ';', '"');
foreach ($contacts as $_contact) {
    $contact = new People($_contact);
    $address = $contact->postal_address();
    $poll = Maps::pollData($contact->get('bureau'));
    $birthdate = new DateTime($contact->get('date_naissance'));
    $_fichier = array($contact->get('nom'), $contact->get('nom_usage'), $contact->get('prenoms'), $contact->get('sexe'), $birthdate->format('d/m/Y'), $contact->age(), $address['reel'], $address['officiel'], $poll['number'], $poll['city'], $contact->get('electeur'), $contact->get('electeur_europeen'), $contact->get('electeur_municipales'), $contact->get('organisme'), $contact->get('fonction'), implode(',', $contact->get('tags')));
    fputcsv($file, $_fichier, ';', '"');
}
// On retraite le nom du fichier
$f = 'exports/' . $nomFichier;
if ($f) {
    $email = file_get_contents('tpl/mail/export-reussi.tpl.html');
    $objet = '[LeQG] Votre export est prêt à être téléchargé';
    $email = strtr($email, array('{URL}' => 'http://' . Configuration::read('url') . $f));
} else {
    $email = file_get_contents('tpl/mail/export-echec.tpl.html');
    $objet = '[LeQG] Votre export a provoqué un erreur';
}
$query = Core::query('user-data', 'core');
$query->bindValue(':user', User::ID());
$query->execute();
Пример #2
0
 /**
  * Number of phonecall to do in a mission
  *
  * @param array $args sorting methods
  *
  * @return integer
  * @static
  */
 public static function estimation(array $args)
 {
     // On commence par paramétrer les données PDO
     $link = Configuration::read('db.link');
     // On prépare la requête de récupération de tous les numéros
     // connus par le système
     $sql = 'SELECT *
             FROM `coordonnees`
             WHERE `coordonnee_type` != "email"';
     $query = $link->prepare($sql);
     $query->execute();
     $numeros = $query->fetchAll(PDO::FETCH_ASSOC);
     // On prépare le tableau des résultats du tri $num
     $num = array();
     // On retraite les arguments entrés
     if (isset($args['age']) && !empty($args['age'])) {
         $age = array();
         $age['usr'] = explode(':', $args['age']);
         $age['min'] = $age['usr'][0];
         $age['max'] = $age['usr'][1];
     } else {
         $age = false;
     }
     if (isset($args['bureaux']) && !empty($args['bureaux'])) {
         $bureaux = explode(',', $args['bureaux']);
     } else {
         $bureaux = false;
     }
     if (isset($args['thema']) && !empty($args['thema'])) {
         $thema = $args['thema'];
     } else {
         $thema = false;
     }
     // On fait la boucle de tous les numéros,
     // et on charge les informations pour chacun
     foreach ($numeros as $numero) {
         // On réinitialise le test
         $test = true;
         // On ouvre la fiche correspondante
         $contact = new People($numero['contact_id']);
         // On récupère son bureau de vote, son âge et ses tags
         $ageContact = $contact->age();
         $bureau = $contact->get('bureau');
         $tags = $contact->get('tags');
         // On vérifie si la fiche correspond aux arguments entrés
         if ($age && $test) {
             if ($ageContact <= $age['max'] && $ageContact >= $age['min']) {
                 // On le rajoute au test
                 $test = true;
                 $testAge = true;
             } else {
                 $test = false;
                 $testAge = false;
             }
         }
         // On fait les vérifications concernant le bureau de vote
         if ($bureaux && $test) {
             if (in_array($bureau, $bureaux)) {
                 $test = true;
                 $testBureau = true;
             } else {
                 $test = false;
                 $testBureau = false;
             }
         }
         // On fait les vérifications concernant les thématiques
         if ($thema && $test) {
             if (in_array($thema, $tags)) {
                 $test = true;
             } else {
                 $test = false;
             }
         }
         // Si le test est concluant, on l'ajoute à la liste des numéros
         // en utilisant comme key l'ID du contact pour éviter les doublons
         if ($test) {
             $id = $contact->get('id');
             $num[$id] = $numero['coordonnee_id'];
         }
     }
     // On calcule maintenant le nombre de numéros concluant
     $nombre = count($num);
     // On retourne cette estimation
     return $nombre;
 }