From fb6819764d8564d4a90970f3c12fc305e49dfde0 Mon Sep 17 00:00:00 2001
From: Paris Liakos <rootatwc@gmail.com>
Date: Tue, 17 Nov 2015 01:20:58 +0200
Subject: [PATCH] Add PRODUCT_DEL_MULTILANGS trigger for translation deletion
 on product

---
 .../triggers/interface_90_all_Demo.class.php-NORUN   |  1 +
 htdocs/product/class/product.class.php               | 12 +++++++++++-
 htdocs/product/traduction.php                        |  4 ++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
index b7cb255bfc3..12d1394ac9d 100644
--- a/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
+++ b/htdocs/core/triggers/interface_90_all_Demo.class.php-NORUN
@@ -101,6 +101,7 @@ class InterfaceDemo extends DolibarrTriggers
 		    case 'PRODUCT_DELETE':
 		    case 'PRODUCT_PRICE_MODIFY':
 		    case 'PRODUCT_SET_MULTILANGS':
+		    case 'PRODUCT_DEL_MULTILANGS':
 
 			//Stock mouvement
 		    case 'STOCK_MOVEMENT':
diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index f0942786afa..02636de50b4 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -1067,9 +1067,11 @@ class Product extends CommonObject
 	 *	Delete a language for this product
 	 *
 	 *  @param		string	$langtodelete		Language code to delete
+	 *	@param		User	$user       Object user making delete
+	 *
 	 *	@return		int							<0 if KO, >0 if OK
 	 */
-	function delMultiLangs($langtodelete)
+	function delMultiLangs($langtodelete, $user)
 	{
 		$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_lang";
 		$sql.= " WHERE fk_product=".$this->id." AND lang='".$this->db->escape($langtodelete)."'";
@@ -1078,6 +1080,14 @@ class Product extends CommonObject
 		$result = $this->db->query($sql);
 		if ($result)
 		{
+			// Call trigger
+			$result = $this->call_trigger('PRODUCT_DEL_MULTILANGS',$user);
+			if ($result < 0) {
+				$this->error = $this->db->lasterror();
+				dol_syslog(get_class($this).'::delMultiLangs error='.$this->error, LOG_ERR);
+				return -1;
+			}
+			// End call triggers
 			return 1;
 		}
 		else
diff --git a/htdocs/product/traduction.php b/htdocs/product/traduction.php
index 3d97467f552..a40b7b15cd9 100644
--- a/htdocs/product/traduction.php
+++ b/htdocs/product/traduction.php
@@ -60,7 +60,7 @@ if ($action == 'delete' && GETPOST('langtodelete','alpha'))
 {
 	$object = new Product($db);
 	$object->fetch($id);
-	$object->delMultiLangs(GETPOST('langtodelete','alpha'));
+	$object->delMultiLangs(GETPOST('langtodelete','alpha'), $user);
 }
 
 // Add translation
@@ -144,7 +144,7 @@ $cancel != $langs->trans("Cancel") &&
 	$langtodelete=GETPOST('langdel','alpha');
 
 
-	if ( $object->delMultiLangs($langtodelete) > 0 )
+	if ( $object->delMultiLangs($langtodelete, $user) > 0 )
 	{
 		$action = '';
 	}
-- 
GitLab