diff --git a/htdocs/product/card.php b/htdocs/product/card.php
index 420203eedae4d..64c6b6817bd20 100644
--- a/htdocs/product/card.php
+++ b/htdocs/product/card.php
@@ -1870,40 +1870,40 @@
if (empty($conf->global->PRODUCT_DISABLE_WEIGHT)) {
// Brut Weight
print '
'.$langs->trans("Weight").' | ';
- print ' ';
- print $formproduct->selectMeasuringUnits("weight_units", "weight", $object->weight_units, 0, 2);
+ print ' ';
+ print $formproduct->selectMeasuringUnits("weight_units", "weight", GETPOSTISSET('weight_units') ? GETPOST('weight_units') : $object->weight_units, 0, 2);
print ' |
';
}
if (empty($conf->global->PRODUCT_DISABLE_SIZE)) {
// Brut Length
print ''.$langs->trans("Length").' x '.$langs->trans("Width").' x '.$langs->trans("Height").' | ';
- print 'x';
- print 'x';
- print ' ';
- print $formproduct->selectMeasuringUnits("size_units", "size", $object->length_units, 0, 2);
+ print 'x';
+ print 'x';
+ print ' ';
+ print $formproduct->selectMeasuringUnits("size_units", "size", GETPOSTISSET('size_units') ? GETPOST('size_units') : $object->length_units, 0, 2);
print ' |
';
}
if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) {
// Brut Surface
print ''.$langs->trans("Surface").' | ';
- print ' ';
- print $formproduct->selectMeasuringUnits("surface_units", "surface", $object->surface_units, 0, 2);
+ print ' ';
+ print $formproduct->selectMeasuringUnits("surface_units", "surface", GETPOSTISSET('surface_units') ? GETPOST('surface_units') : $object->surface_units, 0, 2);
print ' |
';
}
if (empty($conf->global->PRODUCT_DISABLE_VOLUME)) {
// Brut Volume
print ''.$langs->trans("Volume").' | ';
- print ' ';
- print $formproduct->selectMeasuringUnits("volume_units", "volume", $object->volume_units, 0, 2);
+ print ' ';
+ print $formproduct->selectMeasuringUnits("volume_units", "volume", GETPOSTISSET('volume_units') ? GETPOST('volume_units') : $object->volume_units, 0, 2);
print ' |
';
}
if (!empty($conf->global->PRODUCT_ADD_NET_MEASURE)) {
// Net Measure
print ''.$langs->trans("NetMeasure").' | ';
- print ' ';
- print $formproduct->selectMeasuringUnits("net_measure_units", "", $object->net_measure_units, 0, 0);
+ print ' ';
+ print $formproduct->selectMeasuringUnits("net_measure_units", "", GETPOSTISSET('net_measure_units') ? GETPOST('net_measure_units') : $object->net_measure_units, 0, 0);
print ' |
';
}
}
diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php
index 98cff66bf1f3c..26bf4915d8098 100644
--- a/htdocs/product/class/product.class.php
+++ b/htdocs/product/class/product.class.php
@@ -860,6 +860,8 @@ public function create($user, $notrigger = 0)
*/
public function verify()
{
+ global $langs;
+
$this->errors = array();
$result = 0;
@@ -870,6 +872,15 @@ public function verify()
$result = -2;
}
+ $arrayofnonnegativevalue = array('weight'=>'Weight', 'width'=>'Width', 'height'=>'Height', 'length'=>'Length', 'surface'=>'Surface', 'volume'=>'Volume');
+ foreach ($arrayofnonnegativevalue as $key => $value) {
+ if (property_exists($this, $key) && $this->$key < 0) {
+ $langs->load("other");
+ $this->errors[] = $langs->trans("FieldCannotBeNegative", $langs->transnoentitiesnoconv($value));
+ $result = -4;
+ }
+ }
+
$rescode = $this->check_barcode($this->barcode, $this->barcode_type_code);
if ($rescode) {
if ($rescode == -1) {