FIX compatibility with multicompany (avoid duplicate data)

This commit is contained in:
Regis Houssin 2020-02-03 11:46:18 +01:00
parent 2813c9d4b4
commit bc3a210d12

View File

@ -1658,19 +1658,19 @@ class Holiday extends CommonObject
{ {
// Si utilisateur de Dolibarr // Si utilisateur de Dolibarr
$sql = "SELECT u.rowid"; $sql = "SELECT DISTINCT u.rowid";
$sql.= " FROM ".MAIN_DB_PREFIX."user as u"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u";
if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
{ {
$sql.= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql.= ",".MAIN_DB_PREFIX."usergroup_user as ug";
$sql.= " WHERE (ug.fk_user = u.rowid"; $sql.= " WHERE ((ug.fk_user = u.rowid";
$sql.= " AND ug.entity = ".$conf->entity.")"; $sql.= " AND ug.entity IN (".getEntity('user')."))";
$sql.= " OR u.admin = 1"; $sql.= " OR u.entity = 0)"; // Show always superadmin
} }
else else
{ {
$sql.= " WHERE u.entity IN (0,".$conf->entity.")"; $sql.= " WHERE u.entity IN (".getEntity('user').")";
} }
$sql.= " AND u.statut > 0"; $sql.= " AND u.statut > 0";
if ($filters) $sql.=$filters; if ($filters) $sql.=$filters;
@ -1754,18 +1754,20 @@ class Holiday extends CommonObject
// List for Dolibarr users // List for Dolibarr users
if ($type) if ($type)
{ {
$sql = "SELECT u.rowid, u.lastname, u.firstname, u.gender, u.photo, u.employee, u.statut, u.fk_user"; $sql = "SELECT DISTINCT u.rowid, u.lastname, u.firstname, u.gender, u.photo, u.employee, u.statut, u.fk_user";
$sql.= " FROM ".MAIN_DB_PREFIX."user as u"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u";
if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
{ {
$sql.= ", ".MAIN_DB_PREFIX."usergroup_user as ug"; $sql.= ",".MAIN_DB_PREFIX."usergroup_user as ug";
$sql.= " WHERE (ug.fk_user = u.rowid"; $sql.= " WHERE ((ug.fk_user = u.rowid";
$sql.= " AND ug.entity = ".$conf->entity.")"; $sql.= " AND ug.entity IN (".getEntity('user')."))";
$sql.= " OR u.admin = 1"; $sql.= " OR u.entity = 0)"; // Show always superadmin
} }
else else
$sql.= " WHERE u.entity IN (0,".$conf->entity.")"; {
$sql.= " WHERE u.entity IN (".getEntity('user').")";
}
$sql.= " AND u.statut > 0"; $sql.= " AND u.statut > 0";
if ($filters) $sql.=$filters; if ($filters) $sql.=$filters;