[ Index ]
 

Code source de Dolibarr 2.0.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/htdocs/includes/modules/mailings/ -> poire.modules.php (source)

   1  <?php
   2  /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
   3   * Copyright (C) 2005 Laurent Destailleur  <eldy@users.sourceforge.net>
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License
  16   * along with this program; if not, write to the Free Software
  17   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18   * or see http://www.gnu.org/
  19   *
  20   * $Id: poire.modules.php,v 1.7 2005/11/08 00:21:49 eldy Exp $
  21   * $Source: /cvsroot/dolibarr/dolibarr/htdocs/includes/modules/mailings/poire.modules.php,v $
  22   *
  23   *
  24   * L'utilisation d'adresses de courriers électroniques dans les opérations
  25   * de prospection commerciale est subordonnée au recueil du consentement 
  26   * préalable des personnes concernées.
  27   *
  28   * Le dispositif juridique applicable a été introduit par l'article 22 de 
  29   * la loi du 21 juin 2004  pour la confiance dans l'économie numérique.
  30   *
  31   * Les dispositions applicables sont définies par les articles L. 34-5 du 
  32   * code des postes et des télécommunications et L. 121-20-5 du code de la 
  33   * consommation. L'application du principe du consentement préalable en 
  34   * droit français résulte de la transposition de l'article 13 de la Directive 
  35   * européenne du 12 juillet 2002 « Vie privée et communications électroniques ».
  36   */
  37  
  38  /**
  39             \file       htdocs/includes/modules/mailings/poire.modules.php
  40          \ingroup    mailing
  41          \brief      Fichier de la classe permettant de générer la liste de destinataires Poire
  42          \version    $Revision: 1.7 $
  43  */
  44  
  45  include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
  46  
  47  
  48  /**
  49          \class      mailing_poire
  50          \brief      Classe permettant de générer la liste des destinataires Poire
  51  */
  52  
  53  class mailing_poire extends MailingTargets
  54  {
  55      var $name='ContactCompanies';                       // Identifiant du module mailing
  56      var $desc='Contacts avec emails des sociétés';      // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
  57      var $require_module=array("commercial");            // Module mailing actif si modules require_module actifs
  58      var $require_admin=0;                               // Module mailing actif pour user admin ou non
  59      var $picto='contact';
  60      
  61      var $db;
  62      var $statssql=array();
  63      
  64  
  65      function mailing_poire($DB)
  66      {
  67          global $langs;
  68          $langs->load("commercial");
  69  
  70          $this->db=$DB;
  71  
  72          // Liste des tableaux des stats espace mailing
  73          //$this->statssql[0]="SELECT '".$langs->trans("Customers")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 1";
  74          $this->statssql[0]="SELECT '".$langs->trans("NbOfCompaniesContacts")."' as label, count(distinct(c.email)) as nb FROM ".MAIN_DB_PREFIX."socpeople as c, ".MAIN_DB_PREFIX."societe as s WHERE s.idp = c.fk_soc AND s.client = 1 AND c.email != ''";
  75      }
  76      
  77      function getNbOfRecipients()
  78      {
  79          // La requete doit retourner: nb
  80          $sql  = "SELECT count(distinct(c.email)) as nb";
  81          $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
  82          $sql .= ", ".MAIN_DB_PREFIX."societe as s";
  83          $sql .= " WHERE s.idp = c.fk_soc";
  84          $sql .= " AND s.client = 1";
  85          $sql .= " AND c.email != ''";
  86  
  87          return parent::getNbOfRecipients($sql); 
  88      }
  89      
  90      /**
  91       *      \brief      Affiche formulaire de filtre qui apparait dans page de selection
  92       *                  des destinataires de mailings
  93       *      \return     string      Retourne zone select
  94       */
  95      function formFilter()
  96      {
  97          global $langs;
  98          $langs->load("companies");
  99          $langs->load("commercial");
 100          $langs->load("suppliers");
 101          
 102          $s='';
 103          $s.='<select name="filter" class="flat">';
 104          $s.='<option value="all">'.$langs->trans("ContactsAllShort").'</option>';
 105          $s.='<option value="prospects">'.$langs->trans("Prospects").'</option>';
 106          $s.='<option value="customers">'.$langs->trans("Customers").'</option>';
 107          $s.='<option value="suppliers">'.$langs->trans("Suppliers").'</option>';
 108          $s.='</select>';
 109          return $s;
 110      }
 111      
 112      
 113      /**
 114       *      \brief      Renvoie url lien vers fiche de la source du destinataire du mailing
 115       *      \return     string      Url lien
 116       */
 117      function url($id)
 118      {
 119          return '<a href="'.DOL_URL_ROOT.'/contact/fiche.php?id='.$id.'">'.img_object('',"contact").'</a>';
 120      }
 121      
 122      
 123      /**
 124       *    \brief      Ajoute destinataires dans table des cibles
 125       *    \param      mailing_id    Id du mailing concerné
 126       *    \param      filterarray   Requete sql de selection des destinataires
 127       *    \return     int           < 0 si erreur, nb ajout si ok
 128       */
 129      function add_to_target($mailing_id,$filtersarray=array())
 130      {
 131          // La requete doit retourner: id, email, fk_contact, name, firstname
 132          $sql = "SELECT c.idp as id, c.email as email, c.idp as fk_contact, c.name as name, c.firstname as firstname";
 133          $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
 134          $sql .= ", ".MAIN_DB_PREFIX."societe as s";
 135          $sql .= " WHERE s.idp = c.fk_soc";
 136          $sql .= " AND c.email != ''";
 137          foreach($filtersarray as $key)
 138          {
 139              if ($key == 'prospects') $sql.= " AND s.client=2";
 140              if ($key == 'customers') $sql.= " AND s.client=1";
 141              if ($key == 'suppliers') $sql.= " AND s.fournisseur=1";
 142          }
 143          $sql .= " ORDER BY c.email";
 144  
 145          return parent::add_to_target($mailing_id, $sql);
 146      }
 147  
 148  }
 149  
 150  ?>


Généré le : Mon Nov 26 12:29:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics