From 80bc47948c3cb3eb4cf67d9bf3957a129de70f68 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 15 Sep 2023 14:41:48 +0200 Subject: [PATCH] FIX multicompany compatibility --- htdocs/core/lib/company.lib.php | 5 ++++- .../install/mysql/tables/llx_partnership-partnership.sql | 8 +++++--- htdocs/societe/website.php | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index fada0897a2a..4ccb125a63c 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -260,6 +260,7 @@ function societe_prepare_head(Societe $object) $sql = "SELECT COUNT(n.rowid) as nb"; $sql .= " FROM ".MAIN_DB_PREFIX."societe_account as n"; $sql .= " WHERE fk_soc = ".((int) $object->id); + $sql .= " AND entity IN (".getEntity('thirdpartyaccount').")"; if (!empty($site_filter_list)) { $sql .= " AND n.site IN (".$db->sanitize("'".implode("','", $site_filter_list)."'", 1).")"; } @@ -287,6 +288,7 @@ function societe_prepare_head(Societe $object) $sql = "SELECT COUNT(n.rowid) as nb"; $sql .= " FROM ".MAIN_DB_PREFIX."partnership as n"; $sql .= " WHERE fk_soc = ".((int) $object->id); + $sql .= " AND entity IN (".getEntity('partnership').")"; $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); @@ -400,7 +402,8 @@ function societe_prepare_head(Societe $object) } else { $sql = "SELECT COUNT(id) as nb"; $sql .= " FROM ".MAIN_DB_PREFIX."actioncomm"; - $sql .= " WHERE fk_soc = ".((int) $object->id); + $sql .= " WHERE entity = ".((int) $conf->entity); + $sql .= " AND fk_soc = ".((int) $object->id); $resql = $db->query($sql); if ($resql) { $obj = $db->fetch_object($resql); diff --git a/htdocs/install/mysql/tables/llx_partnership-partnership.sql b/htdocs/install/mysql/tables/llx_partnership-partnership.sql index 0a5c4c260b2..5191400bbbd 100644 --- a/htdocs/install/mysql/tables/llx_partnership-partnership.sql +++ b/htdocs/install/mysql/tables/llx_partnership-partnership.sql @@ -16,8 +16,10 @@ -- -- =================================================================== -CREATE TABLE llx_partnership( - rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, +CREATE TABLE llx_partnership +( + rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, + entity integer DEFAULT 1 NOT NULL, -- multi company id, 0 = all ref varchar(128) DEFAULT '(PROV)' NOT NULL, status smallint DEFAULT 0 NOT NULL, fk_type integer DEFAULT 0 NOT NULL, @@ -26,7 +28,6 @@ CREATE TABLE llx_partnership( email_partnership varchar(64), -- if different than email of thirdparty or member date_partnership_start date NOT NULL, date_partnership_end date NULL, - entity integer DEFAULT 1 NOT NULL, -- multi company id, 0 = all reason_decline_or_cancel text NULL, date_creation datetime NOT NULL, fk_user_creat integer NULL, -- can be null if created from public page @@ -41,4 +42,5 @@ CREATE TABLE llx_partnership( ip varchar(250), import_key varchar(14), model_pdf varchar(255) + ) ENGINE=innodb; \ No newline at end of file diff --git a/htdocs/societe/website.php b/htdocs/societe/website.php index 95bd6c14ea6..a29cf93e403 100644 --- a/htdocs/societe/website.php +++ b/htdocs/societe/website.php @@ -290,7 +290,7 @@ if (isset($extrafields->attributes[$object->table_element]['label']) && is_array $sql .= " LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element."_extrafields as ef on (t.rowid = ef.fk_object)"; } if ($objectwebsiteaccount->ismultientitymanaged == 1) { - $sql .= " WHERE t.entity IN (".getEntity('societeaccount').")"; + $sql .= " WHERE t.entity IN (".getEntity('thirdpartyaccount').")"; } else { $sql .= " WHERE 1 = 1"; }