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 '
';
// 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