New: Can make mailing on prospects with a particular level.

This commit is contained in:
Laurent Destailleur 2008-04-04 11:16:00 +00:00
parent 70fed39886
commit a9aa26f8ff
4 changed files with 51 additions and 14 deletions

View File

@ -1,3 +1,8 @@
README (english)
------------------------------------
Adding your own email selector module
------------------------------------
If you want to add your own emails selector/import module. This is steps to follow If you want to add your own emails selector/import module. This is steps to follow
to add you own email predefined selector: to add you own email predefined selector:

View File

@ -16,9 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/ * or see http://www.gnu.org/
* *
* $Id$
* $Source$
*
* *
* L'utilisation d'adresses de courriers électroniques dans les opérations * L'utilisation d'adresses de courriers électroniques dans les opérations
* de prospection commerciale est subordonnée au recueil du consentement * de prospection commerciale est subordonnée au recueil du consentement
@ -39,7 +36,7 @@
\file htdocs/includes/modules/mailings/fraise.modules.php \file htdocs/includes/modules/mailings/fraise.modules.php
\ingroup mailing \ingroup mailing
\brief Fichier de la classe permettant de générer la liste de destinataires Fraise \brief Fichier de la classe permettant de générer la liste de destinataires Fraise
\version $Revision$ \version $Id$
*/ */
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php'; include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';

View File

@ -17,9 +17,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/ * or see http://www.gnu.org/
* *
* $Id$
* $Source$
*
* *
* L'utilisation d'adresses de courriers électroniques dans les opérations * L'utilisation d'adresses de courriers électroniques dans les opérations
* de prospection commerciale est subordonnée au recueil du consentement * de prospection commerciale est subordonnée au recueil du consentement
@ -39,7 +36,7 @@
\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 $Id$
*/ */
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php'; include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';
@ -115,6 +112,25 @@ class mailing_poire extends MailingTargets
$s.='<select name="filter" class="flat">'; $s.='<select name="filter" class="flat">';
$s.='<option value="all">'.$langs->trans("ContactsAllShort").'</option>'; $s.='<option value="all">'.$langs->trans("ContactsAllShort").'</option>';
$s.='<option value="prospects">'.$langs->trans("ThirdPartyProspects").'</option>'; $s.='<option value="prospects">'.$langs->trans("ThirdPartyProspects").'</option>';
# Add prospect of a particular level
$sql = "SELECT code, label";
$sql.= " FROM ".MAIN_DB_PREFIX."c_prospectlevel";
$sql.= " WHERE active > 0";
$sql.= " ORDER BY label";
$resql = $this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
$level=$langs->trans($obj->code);
if ($level == $obj->code) $level=$langs->trans($obj->label);
$s.='<option value="prospectslevel'.$obj->code.'">'.$langs->trans("ThirdPartyProspects").' ('.$langs->trans("ProspectLevelShort").'='.$level.')</option>';
$i++;
}
}
$s.='<option value="customers">'.$langs->trans("ThirdPartyCustomers").'</option>'; $s.='<option value="customers">'.$langs->trans("ThirdPartyCustomers").'</option>';
//$s.='<option value="customersidprof">'.$langs->trans("ThirdPartyCustomersWithIdProf12",$langs->trans("ProfId1"),$langs->trans("ProfId2")).'</option>'; //$s.='<option value="customersidprof">'.$langs->trans("ThirdPartyCustomersWithIdProf12",$langs->trans("ProfId1"),$langs->trans("ProfId2")).'</option>';
$s.='<option value="suppliers">'.$langs->trans("ThirdPartySuppliers").'</option>'; $s.='<option value="suppliers">'.$langs->trans("ThirdPartySuppliers").'</option>';
@ -143,7 +159,27 @@ class mailing_poire extends MailingTargets
{ {
$cibles = array(); $cibles = array();
// La requete doit retourner: id, email, fk_contact, name, firstname # List prospects levels
$prospectlevel=array();
$sql = "SELECT code, label";
$sql.= " FROM ".MAIN_DB_PREFIX."c_prospectlevel";
$sql.= " WHERE active > 0";
$sql.= " ORDER BY label";
$resql = $this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
$prospectlevel[$obj->code]=$obj->label;
$i++;
}
}
else dolibarr_print_error($this->db);
// La requete doit retourner: id, email, fk_contact, name, firstname
$sql = "SELECT c.rowid as id, c.email as email, c.rowid as fk_contact, c.name as name, c.firstname as firstname"; $sql = "SELECT c.rowid as id, c.email as email, c.rowid 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";
@ -152,11 +188,13 @@ class mailing_poire extends MailingTargets
foreach($filtersarray as $key) foreach($filtersarray as $key)
{ {
if ($key == 'prospects') $sql.= " AND s.client=2"; if ($key == 'prospects') $sql.= " AND s.client=2";
//print "xx".$key;
foreach($prospectlevel as $codelevel=>$valuelevel) if ($key == 'prospectslevel'.$codelevel) $sql.= " AND s.fk_prospectlevel='".$codelevel."'";
if ($key == 'customers') $sql.= " AND s.client=1"; if ($key == 'customers') $sql.= " AND s.client=1";
if ($key == 'suppliers') $sql.= " AND s.fournisseur=1"; if ($key == 'suppliers') $sql.= " AND s.fournisseur=1";
} }
$sql .= " ORDER BY c.email"; $sql .= " ORDER BY c.email";
//print "x".$sql;
// Stocke destinataires dans cibles // Stocke destinataires dans cibles
$result=$this->db->query($sql); $result=$this->db->query($sql);

View File

@ -16,9 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/ * or see http://www.gnu.org/
* *
* $Id$
* $Source$
*
* *
* L'utilisation d'adresses de courriers électroniques dans les opérations * L'utilisation d'adresses de courriers électroniques dans les opérations
* de prospection commerciale est subordonnée au recueil du consentement * de prospection commerciale est subordonnée au recueil du consentement
@ -38,7 +35,7 @@
\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 $Id$
*/ */
include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php'; include_once DOL_DOCUMENT_ROOT.'/includes/modules/mailings/modules_mailings.php';