2
0
forked from Wavyzz/dolibarr

Fix case of ismultientitymanaged that is key@table

This commit is contained in:
Laurent Destailleur
2025-08-01 18:37:20 +02:00
parent e8a17bd1e3
commit 602b9c26ae
4 changed files with 30 additions and 14 deletions

View File

@@ -137,9 +137,14 @@ class MyModuleApi extends DolibarrApi
$sql = "SELECT t.rowid";
$sql .= " FROM ".$this->db->prefix().$tmpobject->table_element." AS t";
$sql .= " LEFT JOIN ".$this->db->prefix().$tmpobject->table_element."_extrafields AS ef ON (ef.fk_object = t.rowid)"; // Modification VMR Global Solutions to include extrafields as search parameters in the API GET call, so we will be able to filter on extrafields
$sql .= " WHERE 1 = 1";
if ($tmpobject->ismultientitymanaged) {
$sql .= ' AND t.entity IN ('.getEntity($tmpobject->element).')';
if (!empty($tmpobject->ismultientitymanaged) && (int) $tmpobject->ismultientitymanaged == 1) {
$sql .= " WHERE t.entity IN (".getEntity($tmpobject->element).")";
} elseif (preg_match('/^\w+@\w+$/', (string) $tmpobject->ismultientitymanaged)) {
$tmparray = explode('@', (string) $tmpobject->ismultientitymanaged);
$sql .= " LEFT JOIN ".$this->db->prefix().$tmparray[1]." as pt ON t.".$tmparray[0]." = pt.rowid";
$sql .= " WHERE pt.entity IN (".getEntity($tmpobject->element).")";
} else {
$sql .= " WHERE 1 = 1";
}
if ($restrictonsocid && $socid) {
$sql .= " AND t.fk_soc = ".((int) $socid);