Fix: Select of target on supplier category

This commit is contained in:
Laurent Destailleur 2011-11-30 11:55:13 +01:00
parent 92a79b8cd5
commit 8ef3a40800

View File

@ -56,20 +56,35 @@ class mailing_thirdparties extends MailingTargets
$cibles = array();
// CHANGE THIS
// Select the third parties from category
$sql = "SELECT s.rowid as id, s.email as email, s.nom as name, null as fk_contact, null as firstname,";
if ($_POST['filter']) $sql.= " llx_categorie.label as label";
else $sql.=" null as label";
$sql.= " FROM llx_societe as s";
if ($_POST['filter']) $sql.= " LEFT JOIN llx_categorie_societe ON llx_categorie_societe.fk_societe=s.rowid";
if ($_POST['filter']) $sql.= " LEFT JOIN llx_categorie ON llx_categorie.rowid = llx_categorie_societe.fk_categorie";
$sql.= " WHERE s.email != ''";
$sql.= " AND s.entity = ".$conf->entity;
if ($_POST['filter']) $sql.= " AND llx_categorie.rowid='".$_POST['filter']."'";
$sql.= " ORDER BY s.email";
if (empty($_POST['filter']))
{
$sql = "SELECT s.rowid as id, s.email as email, s.nom as name, null as fk_contact, null as firstname, null as label";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
$sql.= " WHERE s.email != ''";
$sql.= " AND s.entity = ".$conf->entity;
}
else
{
$sql = "SELECT s.rowid as id, s.email as email, s.nom as name, null as fk_contact, null as firstname, c.label as label";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."categorie_societe as cs, ".MAIN_DB_PREFIX."categorie as c";
$sql.= " WHERE s.email != ''";
$sql.= " AND s.entity = ".$conf->entity;
$sql.= " AND cs.fk_societe = s.rowid";
$sql.= " AND c.rowid = cs.fk_categorie";
$sql.= " AND c.rowid='".$this->db->escape($_POST['filter'])."'";
$sql.= " UNION ";
$sql.= "SELECT s.rowid as id, s.email as email, s.nom as name, null as fk_contact, null as firstname, c.label as label";
$sql.= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."categorie_fournisseur as cs, ".MAIN_DB_PREFIX."categorie as c";
$sql.= " WHERE s.email != ''";
$sql.= " AND s.entity = ".$conf->entity;
$sql.= " AND cs.fk_societe = s.rowid";
$sql.= " AND c.rowid = cs.fk_categorie";
$sql.= " AND c.rowid='".$this->db->escape($_POST['filter'])."'";
}
$sql.= " ORDER BY email";
// Stocke destinataires dans cibles
// Stock recipients emails into targets table
$result=$this->db->query($sql);
if ($result)
{