Fix switch of extrafields between all and only one entity

This commit is contained in:
Laurent Destailleur 2018-09-10 17:36:46 +02:00
parent 20fa294ff1
commit d011204624

View File

@ -657,11 +657,22 @@ class ExtraFields
$params='';
}
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields";
$sql_del.= " WHERE name = '".$attrname."'";
$sql_del.= " AND entity = ".($entity===''?$conf->entity:$entity);
$sql_del.= " AND elementtype = '".$elementtype."'";
if ($entity === '' || $entity != '0')
{
// We dont want on all entities, we delete all and current
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields";
$sql_del.= " WHERE name = '".$attrname."'";
$sql_del.= " AND entity IN (0, ".($entity===''?$conf->entity:$entity).")";
$sql_del.= " AND elementtype = '".$elementtype."'";
}
else
{
// We want on all entities ($entities = '0'), we delete on all only (we keep setup specific to each entity)
$sql_del = "DELETE FROM ".MAIN_DB_PREFIX."extrafields";
$sql_del.= " WHERE name = '".$attrname."'";
$sql_del.= " AND entity = 0";
$sql_del.= " AND elementtype = '".$elementtype."'";
}
$resql1=$this->db->query($sql_del);
$sql = "INSERT INTO ".MAIN_DB_PREFIX."extrafields(";