53 |
|
|
54 |
class mailing_poire extends MailingTargets |
class mailing_poire extends MailingTargets |
55 |
{ |
{ |
56 |
var $name='ContactCustomers'; // Identifiant du module mailing |
var $name='ContactCompanies'; // Identifiant du module mailing |
57 |
var $desc='Tous les contacts uniques de toutes les sociétés clientes'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée |
var $desc='Contacts des sociétés'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée |
58 |
var $require_module=array("commercial"); // Module mailing actif si modules require_module actifs |
var $require_module=array("commercial"); // Module mailing actif si modules require_module actifs |
59 |
var $require_admin=0; // Module mailing actif pour user admin ou non |
var $require_admin=0; // Module mailing actif pour user admin ou non |
60 |
var $picto='contact'; |
var $picto='contact'; |
71 |
$this->db=$DB; |
$this->db=$DB; |
72 |
|
|
73 |
// Liste des tableaux des stats espace mailing |
// Liste des tableaux des stats espace mailing |
74 |
$this->statssql[0]="SELECT '".$langs->trans("Customers")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 1"; |
//$this->statssql[0]="SELECT '".$langs->trans("Customers")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 1"; |
75 |
$this->statssql[1]="SELECT '".$langs->trans("NbOfCustomersContacts")."' 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 != ''"; |
$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 != ''"; |
76 |
} |
} |
77 |
|
|
78 |
function getNbOfRecipients() |
function getNbOfRecipients() |
88 |
return parent::getNbOfRecipients($sql); |
return parent::getNbOfRecipients($sql); |
89 |
} |
} |
90 |
|
|
91 |
function add_to_target($mailing_id) |
/** |
92 |
|
* \brief Affiche formulaire de filtre qui apparait dans page de selection |
93 |
|
* des destinataires de mailings |
94 |
|
* \return string Retourne zone select |
95 |
|
*/ |
96 |
|
function formFilter() |
97 |
{ |
{ |
98 |
// La requete doit retourner: email, fk_contact, name, firstname |
global $langs; |
99 |
$sql = "SELECT c.email as email, c.idp as fk_contact, c.name as name, c.firstname as firstname"; |
$langs->load("commercial"); |
100 |
|
$langs->load("suppliers"); |
101 |
|
|
102 |
|
$s=''; |
103 |
|
$s.='<select name="filter" class="flat">'; |
104 |
|
$s.='<option value="all">'.$langs->trans("All").'</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 s.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"; |
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c"; |
134 |
$sql .= ", ".MAIN_DB_PREFIX."societe as s"; |
$sql .= ", ".MAIN_DB_PREFIX."societe as s"; |
135 |
$sql .= " WHERE s.idp = c.fk_soc"; |
$sql .= " WHERE s.idp = c.fk_soc"; |
|
$sql .= " AND s.client = 1"; |
|
136 |
$sql .= " AND c.email != ''"; |
$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"; |
$sql .= " ORDER BY c.email"; |
144 |
|
|
145 |
return parent::add_to_target($mailing_id, $sql); |
return parent::add_to_target($mailing_id, $sql); |