From c4391df0382a7e578ac9b108c7b3711eefecf4ef Mon Sep 17 00:00:00 2001 From: jmCollin Date: Thu, 13 Oct 2011 15:44:33 +0000 Subject: [PATCH] // fix bug with virtual product git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9325 b9a71923-0436-4b27-9f14-aed3839534dd --- admin-dev/tabs/AdminProducts.php | 34 +++++++++++++++++++------------- classes/Product.php | 5 +++++ js/attributesBack.js | 6 ++++++ 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/admin-dev/tabs/AdminProducts.php b/admin-dev/tabs/AdminProducts.php index bdd8ec986..b6be9edcd 100644 --- a/admin-dev/tabs/AdminProducts.php +++ b/admin-dev/tabs/AdminProducts.php @@ -479,6 +479,9 @@ class AdminProducts extends AdminTab { if (!Combination::isFeatureActive()) return; + + $is_virtual = (int)Tools::getValue('is_virtual'); + if (Validate::isLoadedObject($product = new Product((int)(Tools::getValue('id_product'))))) { if (!isset($_POST['attribute_price']) || $_POST['attribute_price'] == null) @@ -574,7 +577,11 @@ class AdminProducts extends AdminTab if (!sizeof($this->_errors)) { if (!$product->cache_default_attribute) - Product::updateDefaultAttribute($product->id); + Product::updateDefaultAttribute($product->id); + + if (!empty($is_virtual)) + Product::updateIsVirtual($product->id); + Tools::redirectAdmin(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)); } } @@ -926,8 +933,8 @@ class AdminProducts extends AdminTab @unlink(_PS_TMP_IMG_DIR_.'/product_mini_'.$image->id_product.'.jpg'); die(true); } - } + protected function _validateSpecificPrice($id_shop, $id_currency, $id_country, $id_group, $price, $from_quantity, $reduction, $reduction_type, $from, $to) { if (!Validate::isUnsignedId($id_shop) || !Validate::isUnsignedId($id_currency) || !Validate::isUnsignedId($id_country) || !Validate::isUnsignedId($id_group)) @@ -1072,7 +1079,7 @@ class AdminProducts extends AdminTab $saveShort = $_POST['description_short']; $_POST['description_short'] = strip_tags($_POST['description_short']); } - + /* Check description short size without html */ $limit = (int)Configuration::get('PS_PRODUCT_SHORT_DESC_LIMIT'); if ($limit <= 0) $limit = 400; @@ -2331,20 +2338,20 @@ class AdminProducts extends AdminTab id OR !$productDownload->active) + if(!$productDownload->id || !$productDownload->active) $hidden = 'style="display:none;"'; - $cache_default_attribute = (int) $this->getFieldValue($obj, 'cache_default_attribute'); - $is_virtual = (int) $this->getFieldValue($obj, 'is_virtual'); + $cache_default_attribute = (int)$this->getFieldValue($obj, 'cache_default_attribute'); + $is_virtual = (int)$this->getFieldValue($obj, 'is_virtual'); if($is_virtual && $productDownload->active) $check = 'checked="checked"'; - - if($is_virtual) + + if($productDownload->id) $virtual = 1; else $virtual = 0; - + echo '

1. '.$this->l('Info.').'

@@ -2659,8 +2666,8 @@ class AdminProducts extends AdminTab var newLabel = \''.$this->l('New label').'\'; var choose_language = \''.$this->l('Choose language:').'\'; var required = \''.$this->l('required').'\'; - var customizationUploadableFileNumber = '.(int) $this->getFieldValue($obj, 'uploadable_files').'; - var customizationTextFieldNumber = '.(int) $this->getFieldValue($obj, 'text_fields').'; + var customizationUploadableFileNumber = '.(int)$this->getFieldValue($obj, 'uploadable_files').'; + var customizationTextFieldNumber = '.(int)$this->getFieldValue($obj, 'text_fields').'; var uploadableFileLabel = 0; var textFieldLabel = 0; @@ -2673,10 +2680,9 @@ class AdminProducts extends AdminTab
'.$this->l('Does this product has an associated file ?').'
'; - // todo gérer le is_virtual avec la valeur du produit $exists_file = realpath(_PS_DOWNLOAD_DIR_).'/'.$productDownload->filename; - if ($productDownload->id && !empty($cache_default_attribute) && !empty($productDownload->display_filename)) + if ($productDownload->id && !empty($cache_default_attribute) || !empty($productDownload->display_filename)) { $check_yes = 'checked="checked"'; $check_no = ''; @@ -4540,4 +4546,4 @@ class AdminProducts extends AdminTab $this->displayErrors(); } -} +} \ No newline at end of file diff --git a/classes/Product.php b/classes/Product.php index 31d9eb7e9..952fcf43b 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -572,6 +572,11 @@ class ProductCore extends ObjectModel Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product SET cache_default_attribute = '.(int)$id_product_attribute.' WHERE id_product = '.(int)$id_product.' LIMIT 1'); } + public static function updateIsVirtual($id_product) + { + Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'product SET is_virtual = 1 WHERE id_product = '.(int)$id_product.' LIMIT 1'); + } + public function validateFieldsLang($die = true, $errorReturn = false) { $limit = (int)Configuration::get('PS_PRODUCT_SHORT_DESC_LIMIT'); diff --git a/js/attributesBack.js b/js/attributesBack.js index 56e850dab..36ac1ad1e 100644 --- a/js/attributesBack.js +++ b/js/attributesBack.js @@ -122,6 +122,12 @@ virtual_product_nb_days, is_shareable) link = $("#make_downloadable_product_attribute").attr('href'); $("#make_downloadable_product_attribute").attr('href', link+"&id_product_attribute="+id_product_attribute); + $("#virtual_product_filename_attribute").val(virtual_product_filename_attribute); + console.log(virtual_product_filename_attribute); + console.log("ok"); + console.log($("#virtual_product_filename_attribute").val()); + + /* Reset all combination images */ combinationImages = $('#id_image_attr').find("input[id^=id_image_attr_]"); combinationImages.each(function() {