Fix regressions in selecting duration of service

This commit is contained in:
Laurent Destailleur 2019-03-19 11:42:50 +01:00
parent 6970d066f8
commit 1a05cdfaa1
2 changed files with 26 additions and 20 deletions

View File

@ -1025,8 +1025,8 @@ else
if ($type == 1) if ($type == 1)
{ {
print '<tr><td>'.$langs->trans("Duration").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("Duration").'</td><td colspan="3">';
print '<input name="surface" size="4" value="'.GETPOST('duration_value').'">'; print '<input name="surface" size="4" value="'.GETPOST('duration_value', 'alpha').'">';
print $formproduct->select_measuring_units("duration_unit", "time"); print $formproduct->load_measuring_units("duration_unit", "time", GETPOST('duration_value', 'alpha'), 0, 1);
print '</td></tr>'; print '</td></tr>';
} }
@ -1041,7 +1041,7 @@ else
// Weight // Weight
print '<tr><td>'.$langs->trans("Weight").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("Weight").'</td><td colspan="3">';
print '<input name="weight" size="4" value="'.GETPOST('weight').'">'; print '<input name="weight" size="4" value="'.GETPOST('weight').'">';
print $formproduct->select_measuring_units("weight_units", "weight", (empty($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?0:$conf->global->MAIN_WEIGHT_DEFAULT_UNIT)); print $formproduct->load_measuring_units("weight_units", "weight", (empty($conf->global->MAIN_WEIGHT_DEFAULT_UNIT)?0:$conf->global->MAIN_WEIGHT_DEFAULT_UNIT));
print '</td></tr>'; print '</td></tr>';
// Length // Length
if (empty($conf->global->PRODUCT_DISABLE_SIZE)) if (empty($conf->global->PRODUCT_DISABLE_SIZE))
@ -1402,7 +1402,7 @@ else
// Duration // Duration
print '<tr><td>'.$langs->trans("Duration").'</td><td colspan="3">'; print '<tr><td>'.$langs->trans("Duration").'</td><td colspan="3">';
print '<input name="surface" size="5" value="'.$object->duration_value.'"> '; print '<input name="surface" size="5" value="'.$object->duration_value.'"> ';
print $formproduct->select_measuring_units("duration_unit", "time", $object->duration_unit); print $formproduct->load_measuring_units("duration_unit", "time", $object->duration_unit, 0, 1);
print '</td></tr>'; print '</td></tr>';
} }
else else

View File

@ -286,15 +286,16 @@ class FormProduct
* pour l'instant on ne definit pas les unites dans la base * pour l'instant on ne definit pas les unites dans la base
* *
* @param string $name Name of HTML field * @param string $name Name of HTML field
* @param string $measuring_style Unit to show: weight, size, surface, volume * @param string $measuring_style Unit to show: weight, size, surface, volume, time
* @param string $default Force unit * @param string $default Preselected value
* @param int $adddefault Add empty unit called "Default" * @param int $adddefault Add empty unit called "Default"
* @param int $mode 1=Use short label as value, 0=Use rowid
* @return void * @return void
*/ */
public function select_measuring_units($name = 'measuring_units', $measuring_style = '', $default = '0', $adddefault = 0) public function select_measuring_units($name = 'measuring_units', $measuring_style = '', $default = '0', $adddefault = 0, $mode = 0)
{ {
//phpcs:enable //phpcs:enable
print $this->load_measuring_units($name, $measuring_style, $default, $adddefault); print $this->load_measuring_units($name, $measuring_style, $default, $adddefault, $mode);
} }
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
@ -303,12 +304,13 @@ class FormProduct
* For the moment, units labels are defined in measuring_units_string * For the moment, units labels are defined in measuring_units_string
* *
* @param string $name Name of HTML field * @param string $name Name of HTML field
* @param string $measuring_style Unit to show: weight, size, surface, volume * @param string $measuring_style Unit to show: weight, size, surface, volume, time
* @param string $default Force unit * @param string $default Preselected value
* @param int $adddefault Add empty unit called "Default" * @param int $adddefault Add empty unit called "Default"
* @param int $mode 1=Use short label as value, 0=Use rowid
* @return string * @return string
*/ */
public function load_measuring_units($name = 'measuring_units', $measuring_style = '', $default = '0', $adddefault = 0) public function load_measuring_units($name = 'measuring_units', $measuring_style = '', $default = '0', $adddefault = 0, $mode = 0)
{ {
//phpcs:enable //phpcs:enable
global $langs, $conf, $mysoc, $db; global $langs, $conf, $mysoc, $db;
@ -337,12 +339,16 @@ class FormProduct
$return .= '<option value="0">' . $langs->trans("Default") . '</option>'; $return .= '<option value="0">' . $langs->trans("Default") . '</option>';
foreach ($measuringUnits->records as $lines) { foreach ($measuringUnits->records as $lines) {
$return .= '<option value="' . $lines->id . '"'; $return .= '<option value="';
if ($lines->id == $default) { if ($mode == 1) $return .= $lines->short_label;
$return .= ' selected'; else $return .= $lines->id;
} $return .= '"';
// $return.= '>'.$value.'</option>'; if ($mode == 1 && $lines->short_label == $default) $return .= ' selected';
$return .= '>' . $langs->transnoentitiesnoconv($lines->label) . '</option>'; if ($mode == 0 && $lines->id == $default) $return .= ' selected';
$return .= '>';
if ($measuring_style == 'time') $return.= $langs->trans(ucfirst($lines->label));
else $return .= $langs->trans($lines->label);
$return .= '</option>';
} }
$return .= '</select>'; $return .= '</select>';
} }