Qual: Meilleure gestion erreur gestion des destinataires d'un mailing
Fix: Quelques erreurs sur le comptage des emails uniques.
This commit is contained in:
parent
78c38167b9
commit
c66971004a
@ -36,7 +36,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/** \file htdocs/includes/modules/mailings/cerise.modules.php
|
||||
/**
|
||||
\file htdocs/includes/modules/mailings/cerise.modules.php
|
||||
\ingroup mailing
|
||||
\brief Fichier de la classe permettant de générer la liste de destinataires Cerise
|
||||
\version $Revision$
|
||||
@ -45,14 +46,15 @@
|
||||
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
|
||||
|
||||
|
||||
/** \class mailing_cerise
|
||||
/**
|
||||
\class mailing_cerise
|
||||
\brief Classe permettant de générer la liste des destinataires Cerise
|
||||
*/
|
||||
|
||||
class mailing_cerise extends MailingTargets
|
||||
{
|
||||
var $name="ContactProspects"; // Identifiant du module mailing
|
||||
var $desc='Tous les contacts de toutes les sociétés prospects'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
|
||||
var $desc='Tous les contacts emails uniques de toutes les sociétés prospects'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
|
||||
var $require_module=array("commercial"); // Module mailing actif si modules require_module actifs
|
||||
var $require_admin=0; // Module mailing actif pour user admin ou non
|
||||
var $picto='contact';
|
||||
@ -69,14 +71,14 @@ class mailing_cerise extends MailingTargets
|
||||
$this->db=$DB;
|
||||
|
||||
// Liste des tableaux des stats espace mailing
|
||||
$this->statssql[0]="SELECT '".$langs->trans("Prospects")."' label, count(*) nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 2";
|
||||
$this->statssql[1]="SELECT '".$langs->trans("NbOfProspectsContacts")."' label, count(distinct(c.email)) nb FROM ".MAIN_DB_PREFIX."socpeople as c, ".MAIN_DB_PREFIX."societe as s WHERE s.idp = c.fk_soc AND s.client = 2 AND c.email IS NOT NULL";
|
||||
$this->statssql[0]="SELECT '".$langs->trans("Prospects")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 2";
|
||||
$this->statssql[1]="SELECT '".$langs->trans("NbOfProspectsContacts")."' 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 = 2 AND c.email IS NOT NULL";
|
||||
}
|
||||
|
||||
function getNbOfRecipients()
|
||||
{
|
||||
// La requete doit retourner: nb
|
||||
$sql = "SELECT count(distinct(c.email)) nb";
|
||||
$sql = "SELECT count(distinct(c.email)) as nb";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql .= " WHERE s.idp = c.fk_soc";
|
||||
@ -89,7 +91,7 @@ class mailing_cerise extends MailingTargets
|
||||
function add_to_target($mailing_id)
|
||||
{
|
||||
// La requete doit retourner: email, fk_contact, name, firstname
|
||||
$sql = "SELECT c.email email, c.idp fk_contact, c.name name, c.firstname firstname";
|
||||
$sql = "SELECT c.email as email, c.idp as fk_contact, c.name as name, c.firstname as firstname";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql .= " WHERE s.idp = c.fk_soc";
|
||||
|
||||
@ -70,13 +70,13 @@ class mailing_fraise extends MailingTargets
|
||||
$this->db=$DB;
|
||||
|
||||
// Liste des tableaux des stats espace mailing
|
||||
$this->statssql[0]="SELECT '".$langs->trans("MembersStatusValidated")."' label, count(*) nb FROM ".MAIN_DB_PREFIX."adherent where statut = 1";
|
||||
$this->statssql[0]="SELECT '".$langs->trans("MembersStatusValidated")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."adherent where statut = 1";
|
||||
}
|
||||
|
||||
function getNbOfRecipients()
|
||||
{
|
||||
// La requete doit retourner: nb
|
||||
$sql = "SELECT count(distinct(a.email)) nb";
|
||||
$sql = "SELECT count(distinct(a.email)) as nb";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||
$sql .= " WHERE a.email IS NOT NULL and statut=1";
|
||||
|
||||
@ -86,7 +86,7 @@ class mailing_fraise extends MailingTargets
|
||||
function add_to_target($mailing_id)
|
||||
{
|
||||
// La requete doit retourner: email, fk_contact, name, firstname
|
||||
$sql = "SELECT a.email email, null fk_contact, a.nom name, a.prenom firstname";
|
||||
$sql = "SELECT a.email as email, null as fk_contact, a.nom as name, a.prenom as firstname";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||
$sql .= " WHERE a.email IS NOT NULL AND a.statut=1";
|
||||
$sql .= " ORDER BY a.email";
|
||||
|
||||
@ -23,14 +23,16 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/** \file htdocs/includes/modules/mailings/modules_mailings.php
|
||||
/**
|
||||
\file htdocs/includes/modules/mailings/modules_mailings.php
|
||||
\ingroup mailing
|
||||
\brief Fichier contenant la classe mère des classes de liste de destinataires mailing
|
||||
\version $Revision$
|
||||
*/
|
||||
|
||||
|
||||
/** \class MailingTargets
|
||||
/**
|
||||
\class MailingTargets
|
||||
\brief Classe mère des classes de liste de destinataires mailing
|
||||
*/
|
||||
|
||||
@ -67,7 +69,7 @@ class MailingTargets
|
||||
/**
|
||||
* \brief Retourne nombre de destinataires
|
||||
* \param sql Requete sql de comptage
|
||||
* \return int Nb de destinataires
|
||||
* \return int Nb de destinataires si ok, < 0 si erreur
|
||||
*/
|
||||
function getNbOfRecipients($sql)
|
||||
{
|
||||
@ -77,7 +79,9 @@ class MailingTargets
|
||||
$obj = $this->db->fetch_object($result);
|
||||
return $obj->nb;
|
||||
}
|
||||
return 0;
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -101,6 +105,7 @@ class MailingTargets
|
||||
if (!$this->db->query($sql))
|
||||
{
|
||||
dolibarr_syslog($this->db->error());
|
||||
$this->error=$this->db->error();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -147,6 +152,7 @@ class MailingTargets
|
||||
else
|
||||
{
|
||||
dolibarr_syslog($this->db->error());
|
||||
$this->error=$this->db->error();
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@ -36,7 +36,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/** \file htdocs/includes/modules/mailings/poire.modules.php
|
||||
/**
|
||||
\file htdocs/includes/modules/mailings/poire.modules.php
|
||||
\ingroup mailing
|
||||
\brief Fichier de la classe permettant de générer la liste de destinataires Poire
|
||||
\version $Revision$
|
||||
@ -45,14 +46,15 @@
|
||||
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
|
||||
|
||||
|
||||
/** \class mailing_poire
|
||||
/**
|
||||
\class mailing_poire
|
||||
\brief Classe permettant de générer la liste des destinataires Poire
|
||||
*/
|
||||
|
||||
class mailing_poire extends MailingTargets
|
||||
{
|
||||
var $name='ContactCustomers'; // Identifiant du module mailing
|
||||
var $desc='Tous les contacts de toutes les sociétés clientes'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
|
||||
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 $require_module=array("commercial"); // Module mailing actif si modules require_module actifs
|
||||
var $require_admin=0; // Module mailing actif pour user admin ou non
|
||||
var $picto='contact';
|
||||
@ -69,19 +71,19 @@ class mailing_poire extends MailingTargets
|
||||
$this->db=$DB;
|
||||
|
||||
// Liste des tableaux des stats espace mailing
|
||||
$this->statssql[0]="SELECT '".$langs->trans("Customers")."' label, count(*) nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 1";
|
||||
$this->statssql[1]="SELECT '".$langs->trans("NbOfCustomersContacts")."' label, count(distinct(c.email)) 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 IS NOT NULL";
|
||||
$this->statssql[0]="SELECT '".$langs->trans("Customers")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."societe WHERE client = 1";
|
||||
$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 != ''";
|
||||
}
|
||||
|
||||
function getNbOfRecipients()
|
||||
{
|
||||
// La requete doit retourner: nb
|
||||
$sql = "SELECT count(distinct(c.email)) nb";
|
||||
$sql = "SELECT count(distinct(c.email)) as nb";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql .= " WHERE s.idp = c.fk_soc";
|
||||
$sql .= " AND s.client = 1";
|
||||
$sql .= " AND c.email IS NOT NULL";
|
||||
$sql .= " AND c.email != ''";
|
||||
|
||||
return parent::getNbOfRecipients($sql);
|
||||
}
|
||||
@ -89,14 +91,14 @@ class mailing_poire extends MailingTargets
|
||||
function add_to_target($mailing_id)
|
||||
{
|
||||
// La requete doit retourner: email, fk_contact, name, firstname
|
||||
$sql = "SELECT c.email email, c.idp fk_contact, c.name name, c.firstname firstname";
|
||||
$sql = "SELECT c.email as email, c.idp as fk_contact, c.name as name, c.firstname as firstname";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql .= " WHERE s.idp = c.fk_soc";
|
||||
$sql .= " AND s.client = 1";
|
||||
$sql .= " AND c.email IS NOT NULL";
|
||||
$sql .= " AND c.email != ''";
|
||||
$sql .= " ORDER BY c.email";
|
||||
|
||||
|
||||
return parent::add_to_target($mailing_id, $sql);
|
||||
}
|
||||
|
||||
|
||||
@ -35,7 +35,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/** \file htdocs/includes/modules/mailings/pomme.modules.php
|
||||
/**
|
||||
\file htdocs/includes/modules/mailings/pomme.modules.php
|
||||
\ingroup mailing
|
||||
\brief Fichier de la classe permettant de générer la liste de destinataires Pomme
|
||||
\version $Revision$
|
||||
@ -44,14 +45,15 @@
|
||||
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
|
||||
|
||||
|
||||
/** \class mailing_pomme
|
||||
/**
|
||||
\class mailing_pomme
|
||||
\brief Classe permettant de générer la liste des destinataires Pomme
|
||||
*/
|
||||
|
||||
class mailing_pomme extends MailingTargets
|
||||
{
|
||||
var $name='DolibarrUsers'; // Identifiant du module mailing
|
||||
var $desc='Tous les utilisateurs de Dolibarr'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
|
||||
var $desc='Tous les utilisateurs avec emails de Dolibarr'; // Libellé utilisé si aucune traduction pour MailingModuleDescXXX ou XXX=name trouvée
|
||||
var $require_module=array(); // Module mailing actif si modules require_module actifs
|
||||
var $require_admin=1; // Module mailing actif pour user admin ou non
|
||||
var $picto='user';
|
||||
@ -68,13 +70,13 @@ class mailing_pomme extends MailingTargets
|
||||
$this->db=$DB;
|
||||
|
||||
// Liste des tableaux des stats espace mailing
|
||||
$this->statssql[0]="SELECT '".$langs->trans("DolibarrUsers")."' label, count(*) nb FROM ".MAIN_DB_PREFIX."user";
|
||||
$this->statssql[0]="SELECT '".$langs->trans("DolibarrUsers")."' as label, count(*) as nb FROM ".MAIN_DB_PREFIX."user";
|
||||
}
|
||||
|
||||
function getNbOfRecipients()
|
||||
{
|
||||
// La requete doit retourner: nb
|
||||
$sql = "SELECT count(distinct(u.email)) nb";
|
||||
$sql = "SELECT count(distinct(u.email)) as nb";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||
$sql .= " WHERE u.email IS NOT NULL";
|
||||
|
||||
@ -84,7 +86,7 @@ class mailing_pomme extends MailingTargets
|
||||
function add_to_target($mailing_id)
|
||||
{
|
||||
// La requete doit retourner: email, fk_contact, name, firstname
|
||||
$sql = "SELECT u.email email, null fk_contact, u.name name, u.firstname firstname";
|
||||
$sql = "SELECT u.email as email, null as fk_contact, u.name as name, u.firstname as firstname";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||
$sql .= " WHERE u.email IS NOT NULL";
|
||||
$sql .= " ORDER BY u.email";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user