From 8ef3a4080019c5aabc7f5e43e48a3d84a145a53c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 30 Nov 2011 11:55:13 +0100 Subject: [PATCH] Fix: Select of target on supplier category --- .../modules/mailings/thirdparties.modules.php | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/htdocs/includes/modules/mailings/thirdparties.modules.php b/htdocs/includes/modules/mailings/thirdparties.modules.php index 45739684773..0e83378079c 100755 --- a/htdocs/includes/modules/mailings/thirdparties.modules.php +++ b/htdocs/includes/modules/mailings/thirdparties.modules.php @@ -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) {