Fix: getLabelOfUnit() for Product, CommonObjectline to print long label

Also add $type = 'code' for return unit code in form 'unitXX' (where XX
is the code of unit).

for get return like unitXX where XX is the code of unit
This commit is contained in:
DEMAREST Maxime (Indelog) 2020-09-12 08:51:58 +02:00
parent 5ea3f09e17
commit 1c523abbd8
2 changed files with 14 additions and 15 deletions

View File

@ -54,7 +54,7 @@ abstract class CommonObjectLine extends CommonObject
* Returns the translation key from units dictionary.
* A langs->trans() must be called on result to get translated value.
*
* @param string $type Label type (long or short). This can be a translation key.
* @param string $type Label type (long, short or code). This can be a translation key.
* @return string|int <0 if ko, label if ok
*/
public function getLabelOfUnit($type = 'long')
@ -69,17 +69,16 @@ abstract class CommonObjectLine extends CommonObject
$label_type = 'label';
if ($type == 'short')
{
$label_type = 'short_label';
}
$label_type = 'label';
if ($type == 'short') $label_type = 'short_label';
elseif ($type == 'code') $label_type = 'code';
$sql = 'select '.$label_type.',code from '.MAIN_DB_PREFIX.'c_units where rowid='.$this->fk_unit;
$sql = 'select '.$label_type.', code from '.MAIN_DB_PREFIX.'c_units where rowid='.$this->fk_unit;
$resql = $this->db->query($sql);
if ($resql && $this->db->num_rows($resql) > 0)
{
if ($resql && $this->db->num_rows($resql) > 0) {
$res = $this->db->fetch_array($resql);
$label = ($label_type == 'short' ? $res[$label_type] : 'unit'.$res['code']);
if ($label_type == 'code') $label = 'unit'.$res['code'];
else $label = $res[$label_type];
$this->db->free($resql);
return $label;
}

View File

@ -5368,8 +5368,9 @@ class Product extends CommonObject
/**
* Returns the text label from units dictionary
* A langs->trans() must be called on result to get translated value.
*
* @param string $type Label type (long or short)
* @param string $type Label type (long, short or code)
* @return string|int <0 if ko, label if ok
*/
public function getLabelOfUnit($type = 'long')
@ -5383,16 +5384,15 @@ class Product extends CommonObject
$langs->load('products');
$label_type = 'label';
if ($type == 'short') {
$label_type = 'short_label';
}
if ($type == 'short') $label_type = 'short_label';
elseif ($type == 'code') $label_type = 'code';
$sql = 'select '.$label_type.', code from '.MAIN_DB_PREFIX.'c_units where rowid='.$this->fk_unit;
$resql = $this->db->query($sql);
if ($resql && $this->db->num_rows($resql) > 0) {
$res = $this->db->fetch_array($resql);
$label = ($label_type == 'short_label' ? $res[$label_type] : 'unit'.$res['code']);
if ($label_type == 'code') $label = 'unit'.$res['code'];
else $label = $res[$label_type];
$this->db->free($resql);
return $label;
}