From 7c7626e445e1845577e2f3925415bbac786ff34e Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 10 Dec 2016 13:19:33 +0100 Subject: [PATCH 1/3] allow to change height and width --- htdocs/product/class/product.class.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 3df1393628a..56b9fc527a6 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -636,6 +636,10 @@ class Product extends CommonObject $this->weight_units = trim($this->weight_units); $this->length = price2num($this->length); $this->length_units = trim($this->length_units); + $this->width = price2num($this->width); + $this->width_units = trim($this->width_units); + $this->height = price2num($this->height); + $this->height_units = trim($this->height_units); $this->surface = price2num($this->surface); $this->surface_units = trim($this->surface_units); $this->volume = price2num($this->volume); @@ -750,6 +754,10 @@ class Product extends CommonObject $sql.= ", weight_units = " . ($this->weight_units!='' ? "'".$this->weight_units."'": 'null'); $sql.= ", length = " . ($this->length!='' ? "'".$this->length."'" : 'null'); $sql.= ", length_units = " . ($this->length_units!='' ? "'".$this->length_units."'" : 'null'); + $sql.= ", width= " . ($this->width!='' ? "'".$this->width."'" : 'null'); + $sql.= ", width_units = " . ($this->width_units!='' ? "'".$this->width_units."'" : 'null'); + $sql.= ", height = " . ($this->height!='' ? "'".$this->height."'" : 'null'); + $sql.= ", height_units = " . ($this->height_units!='' ? "'".$this->height_units."'" : 'null'); $sql.= ", surface = " . ($this->surface!='' ? "'".$this->surface."'" : 'null'); $sql.= ", surface_units = " . ($this->surface_units!='' ? "'".$this->surface_units."'" : 'null'); $sql.= ", volume = " . ($this->volume!='' ? "'".$this->volume."'" : 'null'); @@ -1671,8 +1679,9 @@ class Product extends CommonObject $sql = "SELECT rowid, ref, ref_ext, label, description, url, note as note_private, customcode, fk_country, price, price_ttc,"; $sql.= " price_min, price_min_ttc, price_base_type, cost_price, default_vat_code, tva_tx, recuperableonly as tva_npr, localtax1_tx, localtax2_tx, localtax1_type, localtax2_type, tosell,"; - $sql.= " tobuy, fk_product_type, duration, seuil_stock_alerte, canvas,"; - $sql.= " weight, weight_units, length, length_units, surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,"; + $sql.= " tobuy, fk_product_type, duration, seuil_stock_alerte, canvas, weight, weight_units,"; + $sql.= " length, length_units, width, width_units, height, height_units,"; + $sql.= " surface, surface_units, volume, volume_units, barcode, fk_barcode_type, finished,"; $sql.= " accountancy_code_buy, accountancy_code_sell, stock, pmp,"; $sql.= " datec, tms, import_key, entity, desiredstock, tobatch, fk_unit,"; $sql.= " fk_price_expression, price_autogen"; @@ -1734,6 +1743,11 @@ class Product extends CommonObject $this->weight_units = $obj->weight_units; $this->length = $obj->length; $this->length_units = $obj->length_units; + $this->width = $obj->width; + $this->width_units = $obj->width_units; + $this->height = $obj->height; + $this->height_units = $obj->height_units; + $this->surface = $obj->surface; $this->surface_units = $obj->surface_units; $this->volume = $obj->volume; From 300c91fd7fc8495a6d6b8b419373938078930b99 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sat, 10 Dec 2016 13:25:33 +0100 Subject: [PATCH 2/3] Update card.php --- htdocs/product/card.php | 64 +++++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 122e80b2e69..eca254eb93e 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -283,7 +283,11 @@ if (empty($reshook)) $object->weight_units = GETPOST('weight_units'); $object->length = GETPOST('size'); $object->length_units = GETPOST('size_units'); - $object->surface = GETPOST('surface'); + $object->width = GETPOST('sizewidth'); + $object->width_units = GETPOST('sizewidth_units'); + $object->height = GETPOST('sizeheight'); + $object->height_units = GETPOST('sizeheight_units'); + $object->surface = GETPOST('surface'); $object->surface_units = GETPOST('surface_units'); $object->volume = GETPOST('volume'); $object->volume_units = GETPOST('volume_units'); @@ -380,6 +384,11 @@ if (empty($reshook)) $object->weight_units = GETPOST('weight_units'); $object->length = GETPOST('size'); $object->length_units = GETPOST('size_units'); + $object->width = GETPOST('sizewidth'); + $object->width_units = GETPOST('sizewidth_units'); + $object->height = GETPOST('sizeheight'); + $object->height_units = GETPOST('sizeheight_units'); + $object->surface = GETPOST('surface'); $object->surface_units = GETPOST('surface_units'); $object->volume = GETPOST('volume'); @@ -1010,12 +1019,23 @@ else print $formproduct->select_measuring_units("weight_units","weight"); print ''; // Length - if (empty($conf->global->PRODUCT_DISABLE_LENGTH)) + if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { print ''.$langs->trans("Length").''; print ''; print $formproduct->select_measuring_units("size_units","size"); print ''; + + print ''.$langs->trans("Width").''; + print ''; + print $formproduct->select_measuring_units("sizewidth_units","size"); + print ''; + + print ''.$langs->trans("Height").''; + print ''; + print $formproduct->select_measuring_units("sizeheight_units","size"); + print ''; + } if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) { @@ -1324,13 +1344,23 @@ else print ' '; print $formproduct->select_measuring_units("weight_units", "weight", $object->weight_units); print ''; - if (empty($conf->global->PRODUCT_DISABLE_LENGTH)) + if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { - // Length - print ''.$langs->trans("Length").''; - print ' '; - print $formproduct->select_measuring_units("size_units", "size", $object->length_units); - print ''; + // Length + print ''.$langs->trans("Length").''; + print ' '; + print $formproduct->select_measuring_units("size_units", "size", $object->length_units); + print ''; + + print ''.$langs->trans("Width").''; + print ' '; + print $formproduct->select_measuring_units("sizewidth_units","size", $object->width_units); + print ''; + + print ''.$langs->trans("Height").''; + print ' '; + print $formproduct->select_measuring_units("sizeheight_units","size", $object->height_units); + print ''; } if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) { @@ -1634,7 +1664,7 @@ else print ' '; } print "\n"; - if (empty($conf->global->PRODUCT_DISABLE_LENGTH)) + if (empty($conf->global->PRODUCT_DISABLE_SIZE)) { // Length print ''.$langs->trans("Length").''; @@ -1647,6 +1677,22 @@ else print ' '; } print "\n"; + + print ''.$langs->trans("Width").''; + if ($object->width != '') { + print $object->width." ".measuring_units_string($object->width_units,"size"); + } + else + print ' '; + print "\n"; + + print ''.$langs->trans("Height").''; + if ($object->height != '') { + print $object->height." ".measuring_units_string($object->height_units,"size"); + } + else + print ' '; + print "\n"; } if (empty($conf->global->PRODUCT_DISABLE_SURFACE)) { From b7af0461471fff0f9fe782f73bfd6b0e4e077c01 Mon Sep 17 00:00:00 2001 From: BENKE Charlie Date: Sun, 11 Dec 2016 01:53:33 +0100 Subject: [PATCH 3/3] Add automated compute --- htdocs/product/class/product.class.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 56b9fc527a6..695ab573805 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -640,6 +640,20 @@ class Product extends CommonObject $this->width_units = trim($this->width_units); $this->height = price2num($this->height); $this->height_units = trim($this->height_units); + // Automated compute surface and volume if not filled + if (empty($this->surface) && !empty($this->length) && !empty($this->width) + && $this->length_units == $this->with_units + ) { + $this->surface = $this->length * $this->width; + $this->surface_units = $this->width_units; + if (empty($this->volume) && !empty($this->height) + && $this->length_units == $this->height_units + ) { + $this->volume = $this->surface * $this->height; + $this->volume_units = $this->height_units; + } + } + $this->surface = price2num($this->surface); $this->surface_units = trim($this->surface_units); $this->volume = price2num($this->volume);