project done
This commit is contained in:
parent
224a28f2d2
commit
268618d045
@ -2135,50 +2135,8 @@ class Project extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function setCategories($categories)
|
public function setCategories($categories)
|
||||||
{
|
{
|
||||||
$type_categ = Categorie::TYPE_PROJECT;
|
|
||||||
|
|
||||||
// Handle single category
|
|
||||||
if (!is_array($categories)) {
|
|
||||||
$categories = array($categories);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get current categories
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
$c = new Categorie($this->db);
|
return parent::setCategoriesCommon($categories, Categorie::TYPE_PROJECT);
|
||||||
$existing = $c->containing($this->id, $type_categ, 'id');
|
|
||||||
|
|
||||||
// Diff
|
|
||||||
if (is_array($existing)) {
|
|
||||||
$to_del = array_diff($existing, $categories);
|
|
||||||
$to_add = array_diff($categories, $existing);
|
|
||||||
} else {
|
|
||||||
$to_del = array(); // Nothing to delete
|
|
||||||
$to_add = $categories;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Process
|
|
||||||
foreach ($to_del as $del) {
|
|
||||||
if ($c->fetch($del) > 0) {
|
|
||||||
$result = $c->del_type($this, $type_categ);
|
|
||||||
if ($result < 0) {
|
|
||||||
$this->errors = $c->errors;
|
|
||||||
$this->error = $c->error;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach ($to_add as $add) {
|
|
||||||
if ($c->fetch($add) > 0) {
|
|
||||||
$result = $c->add_type($this, $type_categ);
|
|
||||||
if ($result < 0) {
|
|
||||||
$this->errors = $c->errors;
|
|
||||||
$this->error = $c->error;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user