diff --git a/htdocs/lib/product.lib.php b/htdocs/lib/product.lib.php index 391eca76636..6a1cd99e4bb 100644 --- a/htdocs/lib/product.lib.php +++ b/htdocs/lib/product.lib.php @@ -23,7 +23,6 @@ * \brief Ensemble de fonctions de base pour le module produit et service * \version $Id$ */ - function product_prepare_head($product, $user) { global $langs, $conf; @@ -122,7 +121,6 @@ function product_prepare_head($product, $user) foreach ($conf->tabs_modules['product'] as $value) { $values=split(':',$value); - if ($values[2]) $langs->load($values[2]); $head[$h][0] = eregi_replace('__ID__',$product->id,$values[3]); $head[$h][1] = $langs->trans($values[1]); diff --git a/htdocs/product/stock/mouvementstock.class.php b/htdocs/product/stock/mouvementstock.class.php index 63f0d070d37..aa1cf8bb44c 100644 --- a/htdocs/product/stock/mouvementstock.class.php +++ b/htdocs/product/stock/mouvementstock.class.php @@ -105,7 +105,7 @@ class MouvementStock $sql.= " (".$qty.",".$entrepot_id.",".$fk_product.")"; } - dolibarr_syslog("MouvementStock::_create sql=".$sql, LOG_DEBUG); + dolibarr_syslog("MouvementStock::_Create sql=".$sql, LOG_DEBUG); if ($this->db->query($sql)) { @@ -130,11 +130,17 @@ class MouvementStock } // Add movement for sub products - if ($conf->global->PRODUIT_SOUSPRODUITS) + if ($error == 0 && $conf->global->PRODUIT_SOUSPRODUITS) { $error = $this->_createSubProduct($user, $fk_product, $entrepot_id, $qty, $type, $price=0); } + // composition module + if ($error == 0 && $qty < 0 && $conf->global->MAIN_MODULE_COMPOSITION) + { + $error = $this->_createProductComposition($user, $fk_product, $entrepot_id, $qty, $type, $price=0); + } + if ($error == 0) { $this->db->commit(); diff --git a/htdocs/translate.class.php b/htdocs/translate.class.php index db2a6caae30..1c10e223310 100644 --- a/htdocs/translate.class.php +++ b/htdocs/translate.class.php @@ -180,9 +180,11 @@ class Translate { // Check cache if (! empty($this->tab_loaded[$domain])) { return; } // Le fichier de ce domaine est deja charge - + foreach($this->dir as $searchdir) { + $newalt=$alt; + // If $domain is @xxx instead of xxx then we look for module lang file htdocs/xxx/langs/code_CODE/xxx.lang // instead of global lang file htdocs/langs/code_CODE/xxx.lang if (eregi('@',$domain)) // It's a language file of a module, we look in dir of this module. @@ -191,7 +193,6 @@ class Translate { $searchdir=$searchdir ."/".$domain."/langs"; } else $searchdir=$searchdir."/langs"; - //print 'rrr'.$searchdir; // Directory of translation files $scandir = $searchdir."/".$this->defaultlang; @@ -199,7 +200,7 @@ class Translate { $filelangexists=is_file($file_lang); // Check in "always available" alternate file if not found or if asked - if ($alt || ! $filelangexists) + if ($newalt || ! $filelangexists) { // Dir of always available alternate file (en_US or fr_FR) if ($this->defaultlang == "en_US") $scandiralt = $searchdir."/fr_FR"; @@ -210,9 +211,10 @@ class Translate { $file_lang = $scandiralt . "/".$domain.".lang"; $filelangexists=is_file($file_lang); - $alt=1; + $newalt=1; } + //print 'eee'.$file_lang."-".$filelangexists; if ($filelangexists) { // Enable cache of lang file in session (faster but need more memory) @@ -229,9 +231,9 @@ class Translate { } else { - if ($fp = @fopen($file_lang,"rt")) + if ($fp = @fopen($file_lang,"rt")) { - if ($enablelangcacheinsession) $tabtranslatedomain=array(); // To save lang in session + if ($enablelangcacheinsession) $tabtranslatedomain=array(); // To save lang in session $finded = 0; while (($ligne = fgets($fp,4096)) && ($finded == 0)) { @@ -258,7 +260,7 @@ class Translate { if ($this->charset_inputfile == 'ISO-8859-1') $value=utf8_encode($value); // We do not load Separator values for alternate files - if (! $alt || (! eregi('^Separator',$key))) + if (! $newalt || (! eregi('^Separator',$key))) { $this->tab_translate[$key]=$value; } @@ -270,7 +272,7 @@ class Translate { fclose($fp); // Pour les langues aux fichiers parfois incomplets, on charge la langue alternative - if (! $alt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US") + if (! $newalt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US") { dolibarr_syslog("Translate::Load loading alternate translation file (to complete ".$this->defaultlang."/".$domain.".lang file)", LOG_DEBUG); $this->load($domain,1);