diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 255dc4888aa..1f7b41df085 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -67,13 +67,14 @@ $extrafields = new ExtraFields($db); $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('categorycard')); +$hookmanager->initHooks(array('categorycard','globalcard')); /* * Actions */ - +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks // Remove element from category if ($id > 0 && $removeelem > 0) { diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php index 0ca4b4d879d..92290ee0656 100644 --- a/htdocs/contrat/card.php +++ b/htdocs/contrat/card.php @@ -1511,9 +1511,11 @@ else // Title line for service $cursorline=1; - while ($cursorline <= $nbofservices) + print '
'; + while ($cursorline <= $nbofservices) { - print '
'; + print '
'; + print ''; print ''; print ''; print ''; @@ -2027,9 +2029,10 @@ else print ''; } - + print '
'; $cursorline++; } + print '
'; // Form to add new line if ($user->rights->contrat->creer && ($object->statut == 0)) diff --git a/htdocs/societe/class/api_thirdparties.class.php b/htdocs/societe/class/api_thirdparties.class.php index 7326d99e2b7..6910f5d6dc3 100644 --- a/htdocs/societe/class/api_thirdparties.class.php +++ b/htdocs/societe/class/api_thirdparties.class.php @@ -552,7 +552,45 @@ class Thirdparties extends DolibarrApi return $this->company; } + /** + * Delete category to a thirdparty + * + * @param int $id Id of thirdparty + * @param array $request_data Request datas + * + * @return mixed + * + * @url POST {id}/deleteCategory + */ + function deleteCategory($id, $request_data = NULL) { + if (!isset($request_data["category_id"])) + throw new RestException(400, "category_id field missing"); + $category_id = $request_data["category_id"]; + if(! DolibarrApiAccess::$user->rights->societe->creer) { + throw new RestException(401); + } + + $result = $this->company->fetch($id); + if( ! $result ) { + throw new RestException(404, 'Thirdparty not found'); + } + $category = new Categorie($this->db); + $result = $category->fetch($category_id); + if( ! $result ) { + throw new RestException(404, 'category not found'); + } + + if( ! DolibarrApi::_checkAccessToResource('societe',$this->company->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + if( ! DolibarrApi::_checkAccessToResource('category',$category->id)) { + throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); + } + + $category->del_type($this->company,'customer'); + return $this->company; + } /** * Get outstanding proposals of thirdparty