[-] FO : Fix Bug PSCFI-7016 available date on product page

This commit is contained in:
gRoussac
2013-02-12 16:37:44 +01:00
parent ba3f3b88b5
commit 51e458bccc
7 changed files with 94 additions and 79 deletions
+14 -11
View File
@@ -680,6 +680,7 @@ class AdminProductsControllerCore extends AdminController
if (!isset($_POST['attribute_ecotax'])) $_POST['attribute_ecotax'] = 0;
if (Tools::getValue('attribute_default'))
$product->deleteDefaultAttributes();
// Change existing one
if (($id_product_attribute = (int)Tools::getValue('id_product_attribute')) || ($id_product_attribute = $product->productAttributeExists(Tools::getValue('attribute_combination_list'), false, null, true, true)))
{
@@ -703,11 +704,10 @@ class AdminProductsControllerCore extends AdminController
Tools::getValue('attribute_location'),
Tools::getValue('attribute_upc'),
$this->isProductFieldUpdated('attribute_minimal_quantity') ? Tools::getValue('attribute_minimal_quantity') : null,
$this->isProductFieldUpdated('available_date_attribute') ? Tools::getValue('available_date_attribute') : null,
false);
$this->isProductFieldUpdated('available_date_attribute') ? Tools::getValue('available_date_attribute') : null, false);
StockAvailable::setProductDependsOnStock((int)$product->id, $product->depends_on_stock, null, (int)$id_product_attribute);
StockAvailable::setProductOutOfStock((int)$product->id, $product->out_of_stock, null, (int)$id_product_attribute);
}
}
}
else
$this->errors[] = Tools::displayError('You do not have permission to add here.');
@@ -749,11 +749,14 @@ class AdminProductsControllerCore extends AdminController
$combination = new Combination((int)$id_product_attribute);
$combination->setAttributes(Tools::getValue('attribute_combination_list'));
$product->checkDefaultAttributes();
}
if (!count($this->errors))
{
if (!$product->cache_default_attribute)
Product::updateDefaultAttribute($product->id);
if (Tools::getValue('attribute_default'))
{
Product::updateDefaultAttribute((int)$product->id);
if(isset($id_product_attribute))
$product->cache_default_attribute = (int)$id_product_attribute;
if ($available_date = Tools::getValue('available_date_attribute'))
$product->setAvailableDate($available_date);
}
}
}
}
@@ -1958,10 +1961,10 @@ class AdminProductsControllerCore extends AdminController
public function updateDownloadProduct($product, $edit = 0)
{
$is_virtual_file = (int)Tools::getValue('is_virtual_file');
$product->setDefaultAttribute(0);//reset cache_default_attribute
// add or update a virtual product
if (Tools::getValue('is_virtual_good') == 'true')
{
$product->setDefaultAttribute(0);//reset cache_default_attribute
if (Tools::getValue('virtual_product_expiration_date') && !Validate::isDate(Tools::getValue('virtual_product_expiration_date') && !empty($is_virtual_file)))
{
if (!Tools::getValue('virtual_product_expiration_date'))
@@ -3547,7 +3550,7 @@ class AdminProductsControllerCore extends AdminController
$data->assign('reasons', $reasons = StockMvtReason::getStockMvtReasons($this->context->language->id));
$data->assign('ps_stock_mvt_reason_default', $ps_stock_mvt_reason_default = Configuration::get('PS_STOCK_MVT_REASON_DEFAULT'));
$data->assign('minimal_quantity', $this->getFieldValue($product, 'minimal_quantity') ? $this->getFieldValue($product, 'minimal_quantity') : 1);
$data->assign('available_date', ($this->getFieldValue($product, 'available_date') != 0) ? stripslashes(htmlentities(Tools::displayDate($this->getFieldValue($product, 'available_date'), $this->context->language->id))) : '0000-00-00');
$data->assign('available_date', ($this->getFieldValue($product, 'available_date') != 0) ? stripslashes(htmlentities($this->getFieldValue($product, 'available_date'), $this->context->language->id)) : '0000-00-00');
$i = 0;
$data->assign('imageType', ImageType::getByNameNType('small_default', 'products'));
@@ -4126,10 +4129,10 @@ class AdminProductsControllerCore extends AdminController
public function updatePackItems($product)
{
Pack::deleteItems($product->id);
$product->setDefaultAttribute(0);//reset cache_default_attribute
// lines format: QTY x ID-QTY x ID
if (Tools::getValue('type_product') == Product::PTYPE_PACK)
{
$product->setDefaultAttribute(0);//reset cache_default_attribute
$items = Tools::getValue('inputPackItems');
$lines = array_unique(explode('-', $items));
// lines is an array of string with format : QTYxID
+4 -5
View File
@@ -407,10 +407,6 @@ class ProductControllerCore extends FrontController
$groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']] = 0;
$groups[$row['id_attribute_group']]['attributes_quantity'][$row['id_attribute']] += (int)$row['quantity'];
if ($row['available_date'] != '0000-00-00 00:00:00' && $row['available_date'] != '0000-00-00')
$available_date = Tools::displayDate($row['available_date'], $this->context->language->id);
else
$available_date = $row['available_date'];
$combinations[$row['id_product_attribute']]['attributes_values'][$row['id_attribute_group']] = $row['attribute_name'];
$combinations[$row['id_product_attribute']]['attributes'][] = (int)$row['id_attribute'];
@@ -429,7 +425,10 @@ class ProductControllerCore extends FrontController
$combinations[$row['id_product_attribute']]['reference'] = $row['reference'];
$combinations[$row['id_product_attribute']]['unit_impact'] = $row['unit_price_impact'];
$combinations[$row['id_product_attribute']]['minimal_quantity'] = $row['minimal_quantity'];
$combinations[$row['id_product_attribute']]['available_date'] = $available_date;
if ($row['available_date'] != '0000-00-00')
$combinations[$row['id_product_attribute']]['available_date'] = $row['available_date'];
else
$combinations[$row['id_product_attribute']]['available_date'] = '';
if (isset($combination_images[$row['id_product_attribute']][0]['id_image']))
$combinations[$row['id_product_attribute']]['id_image'] = $combination_images[$row['id_product_attribute']][0]['id_image'];