// Fix product attributes

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@11308 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
tDidierjean
2011-12-16 15:06:53 +00:00
parent 5a4bc80867
commit 31f3a71b9d
7 changed files with 81 additions and 51 deletions
+63 -29
View File
@@ -590,11 +590,53 @@ class AdminProductsControllerCore extends AdminController
$this->_errors[] = Tools::displayError('Invalid date format.');
}
}
else
$this->_errors[] = Tools::displayError('You do not have permission to add here.');
}
// Add new
else
{
if ($this->tabAccess['add'] === '1')
{
if ($product->productAttributeExists($_POST['attribute_combinaison_list']))
$this->_errors[] = Tools::displayError('This combination already exists.');
else
$id_product_attribute = $product->addCombinationEntity(
Tools::getValue('attribute_wholesale_price'),
Tools::getValue('attribute_price') * Tools::getValue('attribute_price_impact'),
Tools::getValue('attribute_weight') * Tools::getValue('attribute_weight_impact'),
Tools::getValue('attribute_unity') * Tools::getValue('attribute_unit_impact'),
Tools::getValue('attribute_ecotax'),
Tools::getValue('id_image_attr'),
Tools::getValue('attribute_reference'),
null,
Tools::getValue('attribute_ean13'),
Tools::getValue('attribute_default'),
Tools::getValue('attribute_location'),
Tools::getValue('attribute_upc')
);
$this->updateDownloadProduct($product, 0, $id_product_attribute);
}
else
$this->_errors[] = Tools::displayError('You do not have permission to').'<hr>'.Tools::displayError('Edit here.');
}
if (!count($this->_errors))
{
$product->addAttributeCombinaison($id_product_attribute, Tools::getValue('attribute_combinaison_list'));
$product->checkDefaultAttributes();
}
if (!count($this->_errors))
{
if (!$product->cache_default_attribute)
Product::updateDefaultAttribute($product->id);
if (!empty($is_virtual))
Product::updateIsVirtual($product->id);
$this->redirect_after = self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=3&token='.($token ? $token : $this->token);
}
}
}
else
$this->_errors[] = Tools::displayError('Could not load Product');
}
public function processFeatures($token)
@@ -801,17 +843,8 @@ class AdminProductsControllerCore extends AdminController
public function initProcess()
{
parent::initProcess();
if ($this->action)
{
if ($this->action == 'new')
$this->action = 'Informations';
return;
}
// Delete a product in the download folder
elseif (Tools::getValue('deleteVirtualProduct'))
if (Tools::getValue('deleteVirtualProduct'))
{
if ($this->tabAccess['delete'] === '1')
$this->action = 'deleteVirtualProduct';
@@ -916,6 +949,16 @@ class AdminProductsControllerCore extends AdminController
else
$this->_errors[] = Tools::displayError('You do not have permission to edit here.');
}
if (!$this->action)
parent::initProcess();
if ($this->action)
{
if ($this->action == 'new')
$this->action = 'Informations';
return;
}
}
/**
@@ -1043,20 +1086,11 @@ class AdminProductsControllerCore extends AdminController
$id_product_attribute = (int)Tools::getValue('id_product_attribute');
if ($id_product && Validate::isUnsignedId($id_product) && Validate::isLoadedObject($product = new Product($id_product)))
{
$combinaisons = $product->getAttributeCombinaisonsById($id_product_attribute, $this->context->language->id);
foreach ($combinaisons as $key => $combinaison)
$combinaisons[$key]['attributes'][] = array($combinaison['group_name'], $combinaison['attribute_name'], $combinaison['id_attribute']);
$combinations = $product->getAttributeCombinaisonsById($id_product_attribute, $this->context->language->id);
foreach ($combinations as $key => $combinaison)
foreach ($combinaisons as $key => $combinaison)
{
$js_list = '';
asort($combinaison['attributes']);
foreach ($combinaison['attributes'] AS $attribute)
$js_list .= '\''.addslashes(htmlspecialchars($combinaison['group_name'])).' : '.addslashes(htmlspecialchars($combinaison['attribute_name'])).'\', \''.$combinaison['id_attribute'].'\', ';
$combinaisons[$key]['list_attributes'] = rtrim($js_list, ', ');
}
die(Tools::jsonEncode($combinaisons));
$combinations[$key]['attributes'][] = array($combinaison['group_name'], $combinaison['attribute_name'], $combinaison['id_attribute']);
die(Tools::jsonEncode($combinations));
}
}
}
@@ -1928,8 +1962,8 @@ class AdminProductsControllerCore extends AdminController
// adding button for adding a new combination in Combinaition tab
$this->toolbar_btn['newCombination'] = array(
'short' => 'Add a new combination',
'desc' => $this->l('Add a new combination'),
'short' => 'New combination',
'desc' => $this->l('New combination'),
'class' => 'toolbar-new'
);
}
@@ -2084,7 +2118,7 @@ class AdminProductsControllerCore extends AdminController
*/
public function processSuppliers($token)
{
if (Tools::getValue('supplier_loaded') && Validate::isLoadedObject($product = new Product((int)Tools::getValue('id_product'))))
if (Validate::isLoadedObject($product = new Product((int)Tools::getValue('id_product'))))
{
// Get all id_product_attribute
$attributes = $product->getAttributesResume($this->context->language->id);
@@ -2262,7 +2296,7 @@ class AdminProductsControllerCore extends AdminController
*/
public function processWarehouses($token)
{
if (Tools::getValue('warehouse_loaded') && Validate::isLoadedObject($product = new Product((int)Tools::getValue('id_product'))))
if (Validate::isLoadedObject($product = new Product((int)Tools::getValue('id_product'))))
{
// Get all id_product_attribute
$attributes = $product->getAttributesResume($this->context->language->id);