Merge pull request #14631 from c3do/patch-3
NEW ref_ext for Attributes and Combinations
This commit is contained in:
commit
c5aff1769a
@ -41,6 +41,12 @@ class ProductAttribute extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $ref;
|
public $ref;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* External ref of the product attribute
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $ref_ext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Label of the product attribute
|
* Label of the product attribute
|
||||||
* @var string
|
* @var string
|
||||||
@ -79,7 +85,7 @@ class ProductAttribute extends CommonObject
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT rowid, ref, label, rang FROM ".MAIN_DB_PREFIX."product_attribute WHERE rowid = ".(int) $id." AND entity IN (".getEntity('product').")";
|
$sql = "SELECT rowid, ref, ref_ext, label, rang FROM ".MAIN_DB_PREFIX."product_attribute WHERE rowid = ".(int) $id." AND entity IN (".getEntity('product').")";
|
||||||
|
|
||||||
$query = $this->db->query($sql);
|
$query = $this->db->query($sql);
|
||||||
|
|
||||||
@ -91,6 +97,7 @@ class ProductAttribute extends CommonObject
|
|||||||
|
|
||||||
$this->id = $obj->rowid;
|
$this->id = $obj->rowid;
|
||||||
$this->ref = $obj->ref;
|
$this->ref = $obj->ref;
|
||||||
|
$this->ref_ext = $obj->ref_ext;
|
||||||
$this->label = $obj->label;
|
$this->label = $obj->label;
|
||||||
$this->rang = $obj->rang;
|
$this->rang = $obj->rang;
|
||||||
|
|
||||||
@ -106,7 +113,7 @@ class ProductAttribute extends CommonObject
|
|||||||
{
|
{
|
||||||
$return = array();
|
$return = array();
|
||||||
|
|
||||||
$sql = 'SELECT rowid, ref, label, rang FROM '.MAIN_DB_PREFIX."product_attribute WHERE entity IN (".getEntity('product').')';
|
$sql = 'SELECT rowid, ref, ref_ext, label, rang FROM '.MAIN_DB_PREFIX."product_attribute WHERE entity IN (".getEntity('product').')';
|
||||||
$sql .= $this->db->order('rang', 'asc');
|
$sql .= $this->db->order('rang', 'asc');
|
||||||
$query = $this->db->query($sql);
|
$query = $this->db->query($sql);
|
||||||
if ($query)
|
if ($query)
|
||||||
@ -115,6 +122,7 @@ class ProductAttribute extends CommonObject
|
|||||||
$tmp = new ProductAttribute($this->db);
|
$tmp = new ProductAttribute($this->db);
|
||||||
$tmp->id = $result->rowid;
|
$tmp->id = $result->rowid;
|
||||||
$tmp->ref = $result->ref;
|
$tmp->ref = $result->ref;
|
||||||
|
$tmp->ref_ext = $result->ref_ext;
|
||||||
$tmp->label = $result->label;
|
$tmp->label = $result->label;
|
||||||
$tmp->rang = $result->rang;
|
$tmp->rang = $result->rang;
|
||||||
|
|
||||||
@ -147,8 +155,8 @@ class ProductAttribute extends CommonObject
|
|||||||
//Ref must be uppercase
|
//Ref must be uppercase
|
||||||
$this->ref = strtoupper($this->ref);
|
$this->ref = strtoupper($this->ref);
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute (ref, label, entity, rang)
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute (ref, ref_ext, label, entity, rang)
|
||||||
VALUES ('".$this->db->escape($this->ref)."', '".$this->db->escape($this->label)."', ".(int) $this->entity.", ".(int) $this->rang.")";
|
VALUES ('".$this->db->escape($this->ref)."', '".$this->db->escape($this->ref_ext)."', '".$this->db->escape($this->label)."', ".(int) $this->entity.", ".(int) $this->rang.")";
|
||||||
|
|
||||||
$query = $this->db->query($sql);
|
$query = $this->db->query($sql);
|
||||||
if ($query)
|
if ($query)
|
||||||
@ -183,7 +191,7 @@ class ProductAttribute extends CommonObject
|
|||||||
$this->ref = trim(strtoupper($this->ref));
|
$this->ref = trim(strtoupper($this->ref));
|
||||||
$this->label = trim($this->label);
|
$this->label = trim($this->label);
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute SET ref = '".$this->db->escape($this->ref)."', label = '".$this->db->escape($this->label)."', rang = ".(int) $this->rang." WHERE rowid = ".(int) $this->id;
|
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute SET ref = '".$this->db->escape($this->ref)."', ref_ext = '".$this->db->escape($this->ref_ext)."', label = '".$this->db->escape($this->label)."', rang = ".(int) $this->rang." WHERE rowid = ".(int) $this->id;
|
||||||
|
|
||||||
if ($this->db->query($sql)) {
|
if ($this->db->query($sql)) {
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@ -77,6 +77,12 @@ class ProductCombination
|
|||||||
*/
|
*/
|
||||||
public $combination_price_levels;
|
public $combination_price_levels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* External ref
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $variation_ref_ext = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -100,7 +106,7 @@ class ProductCombination
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
$sql = "SELECT rowid, fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight FROM ".MAIN_DB_PREFIX."product_attribute_combination WHERE rowid = ".(int) $rowid." AND entity IN (".getEntity('product').")";
|
$sql = "SELECT rowid, fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight, variation_ref_ext FROM ".MAIN_DB_PREFIX."product_attribute_combination WHERE rowid = ".(int) $rowid." AND entity IN (".getEntity('product').")";
|
||||||
|
|
||||||
$query = $this->db->query($sql);
|
$query = $this->db->query($sql);
|
||||||
|
|
||||||
@ -120,6 +126,7 @@ class ProductCombination
|
|||||||
$this->variation_price = $obj->variation_price;
|
$this->variation_price = $obj->variation_price;
|
||||||
$this->variation_price_percentage = $obj->variation_price_percentage;
|
$this->variation_price_percentage = $obj->variation_price_percentage;
|
||||||
$this->variation_weight = $obj->variation_weight;
|
$this->variation_weight = $obj->variation_weight;
|
||||||
|
$this->variation_ref_ext = $obj->variation_ref_ext;
|
||||||
|
|
||||||
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||||
$this->fetchCombinationPriceLevels();
|
$this->fetchCombinationPriceLevels();
|
||||||
@ -226,7 +233,6 @@ class ProductCombination
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves information of a variant product and ID of its parent product.
|
* Retrieves information of a variant product and ID of its parent product.
|
||||||
*
|
*
|
||||||
@ -295,6 +301,7 @@ class ProductCombination
|
|||||||
$tmp->variation_price = $result->variation_price;
|
$tmp->variation_price = $result->variation_price;
|
||||||
$tmp->variation_price_percentage = $result->variation_price_percentage;
|
$tmp->variation_price_percentage = $result->variation_price_percentage;
|
||||||
$tmp->variation_weight = $result->variation_weight;
|
$tmp->variation_weight = $result->variation_weight;
|
||||||
|
$tmp->variation_ref_ext = $result->variation_ref_ext;
|
||||||
|
|
||||||
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||||
$tmp->fetchCombinationPriceLevels();
|
$tmp->fetchCombinationPriceLevels();
|
||||||
@ -339,10 +346,10 @@ class ProductCombination
|
|||||||
/* $this->fk_product_child may be empty and will be filled later after subproduct has been created */
|
/* $this->fk_product_child may be empty and will be filled later after subproduct has been created */
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute_combination";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute_combination";
|
||||||
$sql .= " (fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight, entity)";
|
$sql .= " (fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight, variation_ref_ext, entity)";
|
||||||
$sql .= " VALUES (".((int) $this->fk_product_parent).", ".((int) $this->fk_product_child).",";
|
$sql .= " VALUES (".((int) $this->fk_product_parent).", ".((int) $this->fk_product_child).",";
|
||||||
$sql .= (float) $this->variation_price.", ".(int) $this->variation_price_percentage.",";
|
$sql .= (float) $this->variation_price.", ".(int) $this->variation_price_percentage.",";
|
||||||
$sql .= (float) $this->variation_weight.", ".(int) $this->entity.")";
|
$sql .= (float) $this->variation_weight.", '".$this->db->escape($this->variation_ref_ext)."', ".(int) $this->entity.")";
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if ($resql) {
|
if ($resql) {
|
||||||
@ -375,7 +382,8 @@ class ProductCombination
|
|||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute_combination";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute_combination";
|
||||||
$sql .= " SET fk_product_parent = ".(int) $this->fk_product_parent.", fk_product_child = ".(int) $this->fk_product_child.",";
|
$sql .= " SET fk_product_parent = ".(int) $this->fk_product_parent.", fk_product_child = ".(int) $this->fk_product_child.",";
|
||||||
$sql .= " variation_price = ".(float) $this->variation_price.", variation_price_percentage = ".(int) $this->variation_price_percentage.",";
|
$sql .= " variation_price = ".(float) $this->variation_price.", variation_price_percentage = ".(int) $this->variation_price_percentage.",";
|
||||||
$sql .= " variation_weight = ".(float) $this->variation_weight." WHERE rowid = ".((int) $this->id);
|
$sql .= " variation_ref_ext = '".$this->db->escape($this->variation_ref_ext)."',";
|
||||||
|
$sql .= " variation_weight = ".(float) $this->variation_weight." WHERE rowid = ".((int) $this->id);
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (!$resql) {
|
if (!$resql) {
|
||||||
@ -663,9 +671,10 @@ class ProductCombination
|
|||||||
* @param bool|float $forced_pricevar If the price variation is forced
|
* @param bool|float $forced_pricevar If the price variation is forced
|
||||||
* @param bool|float $forced_weightvar If the weight variation is forced
|
* @param bool|float $forced_weightvar If the weight variation is forced
|
||||||
* @param bool|string $forced_refvar If the reference is forced
|
* @param bool|string $forced_refvar If the reference is forced
|
||||||
|
* @param string $ref_ext External reference
|
||||||
* @return int <0 KO, >0 OK
|
* @return int <0 KO, >0 OK
|
||||||
*/
|
*/
|
||||||
public function createProductCombination(User $user, Product $product, array $combinations, array $variations, $price_var_percent = false, $forced_pricevar = false, $forced_weightvar = false, $forced_refvar = false)
|
public function createProductCombination(User $user, Product $product, array $combinations, array $variations, $price_var_percent = false, $forced_pricevar = false, $forced_weightvar = false, $forced_refvar = false, $ref_ext = '')
|
||||||
{
|
{
|
||||||
global $db, $conf;
|
global $db, $conf;
|
||||||
|
|
||||||
@ -781,6 +790,7 @@ class ProductCombination
|
|||||||
$newcomb->variation_price_percentage = $price_var_percent;
|
$newcomb->variation_price_percentage = $price_var_percent;
|
||||||
$newcomb->variation_price = $price_impact[1];
|
$newcomb->variation_price = $price_impact[1];
|
||||||
$newcomb->variation_weight = $weight_impact;
|
$newcomb->variation_weight = $weight_impact;
|
||||||
|
$newcomb->variation_ref_ext = $db->escape($ref_ext);
|
||||||
|
|
||||||
// Init price level
|
// Init price level
|
||||||
if ($conf->global->PRODUIT_MULTIPRICES) {
|
if ($conf->global->PRODUIT_MULTIPRICES) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user