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
|
\ingroup mailing
|
||||||
\brief Fichier de la classe permettant de générer la liste de destinataires Cerise
|
\brief Fichier de la classe permettant de générer la liste de destinataires Cerise
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
@ -45,14 +46,15 @@
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
|
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
|
\brief Classe permettant de générer la liste des destinataires Cerise
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class mailing_cerise extends MailingTargets
|
class mailing_cerise extends MailingTargets
|
||||||
{
|
{
|
||||||
var $name="ContactProspects"; // Identifiant du module mailing
|
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_module=array("commercial"); // Module mailing actif si modules require_module actifs
|
||||||
var $require_admin=0; // Module mailing actif pour user admin ou non
|
var $require_admin=0; // Module mailing actif pour user admin ou non
|
||||||
var $picto='contact';
|
var $picto='contact';
|
||||||
@ -69,14 +71,14 @@ class mailing_cerise extends MailingTargets
|
|||||||
$this->db=$DB;
|
$this->db=$DB;
|
||||||
|
|
||||||
// Liste des tableaux des stats espace mailing
|
// 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[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")."' 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[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()
|
function getNbOfRecipients()
|
||||||
{
|
{
|
||||||
// La requete doit retourner: nb
|
// 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 .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||||
$sql .= " WHERE s.idp = c.fk_soc";
|
$sql .= " WHERE s.idp = c.fk_soc";
|
||||||
@ -89,7 +91,7 @@ class mailing_cerise extends MailingTargets
|
|||||||
function add_to_target($mailing_id)
|
function add_to_target($mailing_id)
|
||||||
{
|
{
|
||||||
// La requete doit retourner: email, fk_contact, name, firstname
|
// 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 .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||||
$sql .= " WHERE s.idp = c.fk_soc";
|
$sql .= " WHERE s.idp = c.fk_soc";
|
||||||
|
|||||||
@ -70,13 +70,13 @@ class mailing_fraise extends MailingTargets
|
|||||||
$this->db=$DB;
|
$this->db=$DB;
|
||||||
|
|
||||||
// Liste des tableaux des stats espace mailing
|
// 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()
|
function getNbOfRecipients()
|
||||||
{
|
{
|
||||||
// La requete doit retourner: nb
|
// 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 .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||||
$sql .= " WHERE a.email IS NOT NULL and statut=1";
|
$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)
|
function add_to_target($mailing_id)
|
||||||
{
|
{
|
||||||
// La requete doit retourner: email, fk_contact, name, firstname
|
// 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 .= " FROM ".MAIN_DB_PREFIX."adherent as a";
|
||||||
$sql .= " WHERE a.email IS NOT NULL AND a.statut=1";
|
$sql .= " WHERE a.email IS NOT NULL AND a.statut=1";
|
||||||
$sql .= " ORDER BY a.email";
|
$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
|
\ingroup mailing
|
||||||
\brief Fichier contenant la classe mère des classes de liste de destinataires mailing
|
\brief Fichier contenant la classe mère des classes de liste de destinataires mailing
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** \class MailingTargets
|
/**
|
||||||
|
\class MailingTargets
|
||||||
\brief Classe mère des classes de liste de destinataires mailing
|
\brief Classe mère des classes de liste de destinataires mailing
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -67,7 +69,7 @@ class MailingTargets
|
|||||||
/**
|
/**
|
||||||
* \brief Retourne nombre de destinataires
|
* \brief Retourne nombre de destinataires
|
||||||
* \param sql Requete sql de comptage
|
* \param sql Requete sql de comptage
|
||||||
* \return int Nb de destinataires
|
* \return int Nb de destinataires si ok, < 0 si erreur
|
||||||
*/
|
*/
|
||||||
function getNbOfRecipients($sql)
|
function getNbOfRecipients($sql)
|
||||||
{
|
{
|
||||||
@ -77,7 +79,9 @@ class MailingTargets
|
|||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
return $obj->nb;
|
return $obj->nb;
|
||||||
}
|
}
|
||||||
return 0;
|
else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -101,6 +105,7 @@ class MailingTargets
|
|||||||
if (!$this->db->query($sql))
|
if (!$this->db->query($sql))
|
||||||
{
|
{
|
||||||
dolibarr_syslog($this->db->error());
|
dolibarr_syslog($this->db->error());
|
||||||
|
$this->error=$this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,6 +152,7 @@ class MailingTargets
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog($this->db->error());
|
dolibarr_syslog($this->db->error());
|
||||||
|
$this->error=$this->db->error();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** \file htdocs/includes/modules/mailings/poire.modules.php
|
/**
|
||||||
|
\file htdocs/includes/modules/mailings/poire.modules.php
|
||||||
\ingroup mailing
|
\ingroup mailing
|
||||||
\brief Fichier de la classe permettant de générer la liste de destinataires Poire
|
\brief Fichier de la classe permettant de générer la liste de destinataires Poire
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
@ -45,14 +46,15 @@
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
|
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
|
\brief Classe permettant de générer la liste des destinataires Poire
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class mailing_poire extends MailingTargets
|
class mailing_poire extends MailingTargets
|
||||||
{
|
{
|
||||||
var $name='ContactCustomers'; // Identifiant du module mailing
|
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_module=array("commercial"); // Module mailing actif si modules require_module actifs
|
||||||
var $require_admin=0; // Module mailing actif pour user admin ou non
|
var $require_admin=0; // Module mailing actif pour user admin ou non
|
||||||
var $picto='contact';
|
var $picto='contact';
|
||||||
@ -69,19 +71,19 @@ class mailing_poire extends MailingTargets
|
|||||||
$this->db=$DB;
|
$this->db=$DB;
|
||||||
|
|
||||||
// Liste des tableaux des stats espace mailing
|
// 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[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")."' 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[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()
|
function getNbOfRecipients()
|
||||||
{
|
{
|
||||||
// La requete doit retourner: nb
|
// 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 .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||||
$sql .= " WHERE s.idp = c.fk_soc";
|
$sql .= " WHERE s.idp = c.fk_soc";
|
||||||
$sql .= " AND s.client = 1";
|
$sql .= " AND s.client = 1";
|
||||||
$sql .= " AND c.email IS NOT NULL";
|
$sql .= " AND c.email != ''";
|
||||||
|
|
||||||
return parent::getNbOfRecipients($sql);
|
return parent::getNbOfRecipients($sql);
|
||||||
}
|
}
|
||||||
@ -89,14 +91,14 @@ class mailing_poire extends MailingTargets
|
|||||||
function add_to_target($mailing_id)
|
function add_to_target($mailing_id)
|
||||||
{
|
{
|
||||||
// La requete doit retourner: email, fk_contact, name, firstname
|
// 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 .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
$sql .= ", ".MAIN_DB_PREFIX."societe as s";
|
||||||
$sql .= " WHERE s.idp = c.fk_soc";
|
$sql .= " WHERE s.idp = c.fk_soc";
|
||||||
$sql .= " AND s.client = 1";
|
$sql .= " AND s.client = 1";
|
||||||
$sql .= " AND c.email IS NOT NULL";
|
$sql .= " AND c.email != ''";
|
||||||
$sql .= " ORDER BY c.email";
|
$sql .= " ORDER BY c.email";
|
||||||
|
|
||||||
return parent::add_to_target($mailing_id, $sql);
|
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
|
\ingroup mailing
|
||||||
\brief Fichier de la classe permettant de générer la liste de destinataires Pomme
|
\brief Fichier de la classe permettant de générer la liste de destinataires Pomme
|
||||||
\version $Revision$
|
\version $Revision$
|
||||||
@ -44,14 +45,15 @@
|
|||||||
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
|
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
|
\brief Classe permettant de générer la liste des destinataires Pomme
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class mailing_pomme extends MailingTargets
|
class mailing_pomme extends MailingTargets
|
||||||
{
|
{
|
||||||
var $name='DolibarrUsers'; // Identifiant du module mailing
|
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_module=array(); // Module mailing actif si modules require_module actifs
|
||||||
var $require_admin=1; // Module mailing actif pour user admin ou non
|
var $require_admin=1; // Module mailing actif pour user admin ou non
|
||||||
var $picto='user';
|
var $picto='user';
|
||||||
@ -68,13 +70,13 @@ class mailing_pomme extends MailingTargets
|
|||||||
$this->db=$DB;
|
$this->db=$DB;
|
||||||
|
|
||||||
// Liste des tableaux des stats espace mailing
|
// 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()
|
function getNbOfRecipients()
|
||||||
{
|
{
|
||||||
// La requete doit retourner: nb
|
// 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 .= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql .= " WHERE u.email IS NOT NULL";
|
$sql .= " WHERE u.email IS NOT NULL";
|
||||||
|
|
||||||
@ -84,7 +86,7 @@ class mailing_pomme extends MailingTargets
|
|||||||
function add_to_target($mailing_id)
|
function add_to_target($mailing_id)
|
||||||
{
|
{
|
||||||
// La requete doit retourner: email, fk_contact, name, firstname
|
// 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 .= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||||
$sql .= " WHERE u.email IS NOT NULL";
|
$sql .= " WHERE u.email IS NOT NULL";
|
||||||
$sql .= " ORDER BY u.email";
|
$sql .= " ORDER BY u.email";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user