// Combination multishop
This commit is contained in:
@@ -55,13 +55,18 @@
|
|||||||
<h4>{l s='Add or modify combinations for this product'}</h4>
|
<h4>{l s='Add or modify combinations for this product'}</h4>
|
||||||
<div class="separation"></div> {l s='or go to'}
|
<div class="separation"></div> {l s='or go to'}
|
||||||
<a class="button bt-icon confirm_leave" href="index.php?tab=AdminAttributeGenerator&id_product={$product->id}&attributegenerator&token={$token_generator}"><img src="../img/admin/appearance.gif" alt="combinations_generator" class="middle" title="{l s='Product combinations generator'}" /><span>{l s='Product combinations generator'}</span></a>
|
<a class="button bt-icon confirm_leave" href="index.php?tab=AdminAttributeGenerator&id_product={$product->id}&attributegenerator&token={$token_generator}"><img src="../img/admin/appearance.gif" alt="combinations_generator" class="middle" title="{l s='Product combinations generator'}" /><span>{l s='Product combinations generator'}</span></a>
|
||||||
|
|
||||||
|
{if isset($display_multishop_checkboxes) && $display_multishop_checkboxes}
|
||||||
|
<br />
|
||||||
|
{include file="controllers/products/multishop/check_fields.tpl" product_tab="Combinations"}
|
||||||
|
{/if}
|
||||||
<div class="separation"></div>
|
<div class="separation"></div>
|
||||||
|
|
||||||
<div id="add_new_combination" style="display: none;">
|
<div id="add_new_combination" style="display: none;">
|
||||||
<table cellpadding="5" style="width:100%">
|
<table cellpadding="5" style="width:100%">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
||||||
{l s='Attribute:'}
|
<label>{l s='Attribute:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<select name="attribute_group" id="attribute_group" style="width: 200px;" onchange="populate_attrs();">
|
<select name="attribute_group" id="attribute_group" style="width: 200px;" onchange="populate_attrs();">
|
||||||
@@ -75,7 +80,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" valign="top">
|
||||||
{l s='Value:'}
|
<label>{l s='Value:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<select name="attribute" id="attribute" style="width: 200px;">
|
<select name="attribute" id="attribute" style="width: 200px;">
|
||||||
@@ -102,7 +107,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Reference:'}</td>
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;"><label>{l s='Reference:'}</label></td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<input size="55" type="text" id="attribute_reference" name="attribute_reference" value="" style="width: 130px; margin-right: 44px;" />
|
<input size="55" type="text" id="attribute_reference" name="attribute_reference" value="" style="width: 130px; margin-right: 44px;" />
|
||||||
{l s='EAN13:'}<input size="55" maxlength="13" type="text" id="attribute_ean13" name="attribute_ean13" value="" style="width: 110px; margin-left: 10px; margin-right: 44px;" />
|
{l s='EAN13:'}<input size="55" maxlength="13" type="text" id="attribute_ean13" name="attribute_ean13" value="" style="width: 110px; margin-left: 10px; margin-right: 44px;" />
|
||||||
@@ -175,7 +180,8 @@
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||||
{l s='Wholesale price:'}
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_wholesale_price" type="default"}
|
||||||
|
<label>{l s='Wholesale price:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
||||||
@@ -185,7 +191,10 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on price:'}</td>
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_price_impact" type="attribute_price_impact"}
|
||||||
|
<label>{l s='Impact on price:'}</label>
|
||||||
|
</td>
|
||||||
<td colspan="2" style="padding-bottom:5px;">
|
<td colspan="2" style="padding-bottom:5px;">
|
||||||
<select name="attribute_price_impact" id="attribute_price_impact" style="width: 140px;" onchange="check_impact(); calcImpactPriceTI();">
|
<select name="attribute_price_impact" id="attribute_price_impact" style="width: 140px;" onchange="check_impact(); calcImpactPriceTI();">
|
||||||
<option value="0">{l s='None'}</option>
|
<option value="0">{l s='None'}</option>
|
||||||
@@ -210,7 +219,10 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on weight:'}</td>
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_weight_impact" type="attribute_weight_impact"}
|
||||||
|
<label>{l s='Impact on weight:'}</label>
|
||||||
|
</td>
|
||||||
<td colspan="2" style="padding-bottom:5px;">
|
<td colspan="2" style="padding-bottom:5px;">
|
||||||
<select name="attribute_weight_impact" id="attribute_weight_impact" style="width: 140px;" onchange="check_weight_impact();">
|
<select name="attribute_weight_impact" id="attribute_weight_impact" style="width: 140px;" onchange="check_weight_impact();">
|
||||||
<option value="0">{l s='None'}</option>
|
<option value="0">{l s='None'}</option>
|
||||||
@@ -224,7 +236,10 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="tr_unit_impact">
|
<tr id="tr_unit_impact">
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">{l s='Impact on unit price :'}</td>
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_unit_impact" type="attribute_unit_impact"}
|
||||||
|
<label style="width: 100px; float: right">{l s='Impact on unit price :'}</label>
|
||||||
|
</td>
|
||||||
<td colspan="2" style="padding-bottom:5px;">
|
<td colspan="2" style="padding-bottom:5px;">
|
||||||
<select name="attribute_unit_impact" id="attribute_unit_impact" style="width: 140px;" onchange="check_unit_impact();">
|
<select name="attribute_unit_impact" id="attribute_unit_impact" style="width: 140px;" onchange="check_unit_impact();">
|
||||||
<option value="0">{l s='None'}</option>
|
<option value="0">{l s='None'}</option>
|
||||||
@@ -240,7 +255,8 @@
|
|||||||
{if $ps_use_ecotax}
|
{if $ps_use_ecotax}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;">
|
||||||
{l s='Eco-tax:'}
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_ecotax" type="default"}
|
||||||
|
<label>{l s='Eco-tax:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
<td style="padding-bottom:5px;">{if $currency->format % 2 != 0}{$currency->sign}{/if}
|
||||||
<input type="text" size="3" name="attribute_ecotax" id="attribute_ecotax" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
<input type="text" size="3" name="attribute_ecotax" id="attribute_ecotax" value="0.00" onKeyUp="if (isArrowKey(event)) return ;this.value = this.value.replace(/,/g, '.');" />
|
||||||
@@ -251,6 +267,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left">
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_minimal_quantity" type="default"}
|
||||||
<label>{l s='Minimum quantity:'}</label>
|
<label>{l s='Minimum quantity:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -259,7 +276,8 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left" style="width:150px">
|
<td style="width:150px;vertical-align:top;text-align:right;padding-right:10px;font-weight:bold;" class="col-left">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="available_date_attribute" type="default"}
|
||||||
<label>{l s='Available date:'}</label>
|
<label>{l s='Available date:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -282,7 +300,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px">{l s='Image:'}</td>
|
<td style="width:150px"><label>{l s='Image:'}</label></td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<ul id="id_image_attr">
|
<ul id="id_image_attr">
|
||||||
{foreach from=$images key=k item=image}
|
{foreach from=$images key=k item=image}
|
||||||
@@ -298,7 +316,10 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:150px">{l s='Default:'}<br /><br /></td>
|
<td style="width:150px">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="attribute_default" type="attribute_default"}
|
||||||
|
<label>{l s='Default:'}</label><br /><br />
|
||||||
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<input type="checkbox" name="attribute_default" id="attribute_default" value="1" />
|
<input type="checkbox" name="attribute_default" id="attribute_default" value="1" />
|
||||||
{l s='Make this the default combination for this product'}<br /><br />
|
{l s='Make this the default combination for this product'}<br /><br />
|
||||||
|
|||||||
@@ -44,9 +44,9 @@
|
|||||||
|
|
||||||
ed.onInit.add(function(ed)
|
ed.onInit.add(function(ed)
|
||||||
{
|
{
|
||||||
if (typeof load_tinymce_multishop[ed.id] != 'undefined')
|
if (typeof ProductMultishop.load_tinymce[ed.id] != 'undefined')
|
||||||
{
|
{
|
||||||
if (typeof load_tinymce_multishop[ed.id])
|
if (typeof ProductMultishop.load_tinymce[ed.id])
|
||||||
ed.hide();
|
ed.hide();
|
||||||
else
|
else
|
||||||
ed.show();
|
ed.show();
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
{if isset($display_multishop_checkboxes) && $display_multishop_checkboxes}
|
{if isset($display_multishop_checkboxes) && $display_multishop_checkboxes}
|
||||||
<label style="float: none">
|
<label style="float: none">
|
||||||
<input type="checkbox" style="vertical-align: text-bottom" onclick="$('input[name^=\'multishop_check[\']').attr('checked', this.checked); multishopCheckAllProductFields{$product_tab}()" />
|
<input type="checkbox" style="vertical-align: text-bottom" onclick="$('input[name^=\'multishop_check[\']').attr('checked', this.checked); ProductMultishop.checkAll{$product_tab}()" />
|
||||||
{l s='Check / uncheck all (you are editing this page for several shops, some fields like "name" or "price" are disabled, you have to check these fields in order to edit them for these shops)'}
|
{l s='Check / uncheck all (you are editing this page for several shops, some fields like "name" or "price" are disabled, you have to check these fields in order to edit them for these shops)'}
|
||||||
</label>
|
</label>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -28,23 +28,23 @@
|
|||||||
{if isset($multilang) && $multilang}
|
{if isset($multilang) && $multilang}
|
||||||
{if isset($only_checkbox)}
|
{if isset($only_checkbox)}
|
||||||
{foreach from=$languages item=language}
|
{foreach from=$languages item=language}
|
||||||
<input type="checkbox" name="multishop_check[{$field}][{$language.id_lang}]" value="1" onclick="multishopCheckProductField(this.checked, '{$field}_{$language.id_lang}', '{$type}')" {if !empty($multishop_check[$field][$language.id_lang])}checked="checked"{/if} />
|
<input type="checkbox" name="multishop_check[{$field}][{$language.id_lang}]" value="1" onclick="ProductMultishop.checkField(this.checked, '{$field}_{$language.id_lang}', '{$type}')" {if !empty($multishop_check[$field][$language.id_lang])}checked="checked"{/if} />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{else}
|
{else}
|
||||||
<div class="multishop_product_checkbox">
|
<div class="multishop_product_checkbox">
|
||||||
{foreach from=$languages item=language}
|
{foreach from=$languages item=language}
|
||||||
<div class="multishop_lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if}">
|
<div class="multishop_lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if}">
|
||||||
<input type="checkbox" name="multishop_check[{$field}][{$language.id_lang}]" value="1" onclick="multishopCheckProductField(this.checked, '{$field}_{$language.id_lang}', '{$type}')" {if !empty($multishop_check[$field][$language.id_lang])}checked="checked"{/if} />
|
<input type="checkbox" name="multishop_check[{$field}][{$language.id_lang}]" value="1" onclick="ProductMultishop.checkField(this.checked, '{$field}_{$language.id_lang}', '{$type}')" {if !empty($multishop_check[$field][$language.id_lang])}checked="checked"{/if} />
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{else}
|
{else}
|
||||||
{if isset($only_checkbox)}
|
{if isset($only_checkbox)}
|
||||||
<input type="checkbox" name="multishop_check[{$field}]" value="1" onclick="multishopCheckProductField(this.checked, '{$field}', '{$type}')" {if !empty($multishop_check[$field])}checked="checked"{/if} />
|
<input type="checkbox" name="multishop_check[{$field}]" value="1" onclick="ProductMultishop.checkField(this.checked, '{$field}', '{$type}')" {if !empty($multishop_check[$field])}checked="checked"{/if} />
|
||||||
{else}
|
{else}
|
||||||
<div class="multishop_product_checkbox">
|
<div class="multishop_product_checkbox">
|
||||||
<input type="checkbox" name="multishop_check[{$field}]" value="1" onclick="multishopCheckProductField(this.checked, '{$field}', '{$type}')" {if !empty($multishop_check[$field])}checked="checked"{/if} />
|
<input type="checkbox" name="multishop_check[{$field}]" value="1" onclick="ProductMultishop.checkField(this.checked, '{$field}', '{$type}')" {if !empty($multishop_check[$field])}checked="checked"{/if} />
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -174,7 +174,10 @@ jQuery(document).ready(Customer.init);
|
|||||||
</tr>
|
</tr>
|
||||||
{if $ps_use_ecotax}
|
{if $ps_use_ecotax}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="col-left"><label>{l s='Eco-tax (tax incl.):'}</label></td>
|
<td class="col-left">
|
||||||
|
{include file="controllers/products/multishop/checkbox.tpl" field="ecot" type="default"}
|
||||||
|
<label>{l s='Eco-tax (tax incl.):'}</label>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{$currency->prefix}<input size="11" maxlength="14" id="ecotax" name="ecotax" type="text" value="{$product->ecotax|string_format:'%.2f'}" onkeyup="$('#priceType').val('TI');if (isArrowKey(event))return; calcPriceTE(); this.value = this.value.replace(/,/g, '.'); if (parseInt(this.value) > getE('priceTE').value) this.value = getE('priceTE').value; if (isNaN(this.value)) this.value = 0;" />{$currency->suffix}
|
{$currency->prefix}<input size="11" maxlength="14" id="ecotax" name="ecotax" type="text" value="{$product->ecotax|string_format:'%.2f'}" onkeyup="$('#priceType').val('TI');if (isArrowKey(event))return; calcPriceTE(); this.value = this.value.replace(/,/g, '.'); if (parseInt(this.value) > getE('priceTE').value) this.value = getE('priceTE').value; if (isNaN(this.value)) this.value = 0;" />{$currency->suffix}
|
||||||
<span style="margin-left:10px">({l s='already included in price'})</span>
|
<span style="margin-left:10px">({l s='already included in price'})</span>
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ class CombinationCore extends ObjectModel
|
|||||||
'ean13' => array('type' => self::TYPE_STRING, 'validate' => 'isEan13', 'size' => 13),
|
'ean13' => array('type' => self::TYPE_STRING, 'validate' => 'isEan13', 'size' => 13),
|
||||||
'upc' => array('type' => self::TYPE_STRING, 'validate' => 'isUpc', 'size' => 12),
|
'upc' => array('type' => self::TYPE_STRING, 'validate' => 'isUpc', 'size' => 12),
|
||||||
'quantity' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'size' => 10),
|
'quantity' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt', 'size' => 10),
|
||||||
'weight' => array('type' => self::TYPE_INT, 'validate' => 'isFloat'),
|
|
||||||
'reference' => array('type' => self::TYPE_STRING, 'size' => 32),
|
'reference' => array('type' => self::TYPE_STRING, 'size' => 32),
|
||||||
'supplier_reference' => array('type' => self::TYPE_STRING, 'size' => 32),
|
'supplier_reference' => array('type' => self::TYPE_STRING, 'size' => 32),
|
||||||
|
|
||||||
@@ -78,6 +77,7 @@ class CombinationCore extends ObjectModel
|
|||||||
'wholesale_price' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'size' => 27),
|
'wholesale_price' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'size' => 27),
|
||||||
'price' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isNegativePrice', 'size' => 20),
|
'price' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isNegativePrice', 'size' => 20),
|
||||||
'ecotax' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'size' => 20),
|
'ecotax' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'size' => 20),
|
||||||
|
'weight' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isFloat'),
|
||||||
'unit_price_impact' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'size' => 20),
|
'unit_price_impact' => array('type' => self::TYPE_FLOAT, 'shop' => true, 'validate' => 'isPrice', 'size' => 20),
|
||||||
'minimal_quantity' => array('type' => self::TYPE_INT, 'shop' => true, 'validate' => 'isUnsignedId', 'required' => true),
|
'minimal_quantity' => array('type' => self::TYPE_INT, 'shop' => true, 'validate' => 'isUnsignedId', 'required' => true),
|
||||||
'default_on' => array('type' => self::TYPE_INT, 'shop' => true, 'validate' => 'isBool'),
|
'default_on' => array('type' => self::TYPE_INT, 'shop' => true, 'validate' => 'isBool'),
|
||||||
|
|||||||
+19
-19
@@ -339,8 +339,9 @@ abstract class ObjectModelCore
|
|||||||
|| ($type == self::FORMAT_COMMON && (!empty($data['shop']) || !empty($data['lang']))))
|
|| ($type == self::FORMAT_COMMON && (!empty($data['shop']) || !empty($data['lang']))))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (is_array($this->update_fields) && (empty($this->update_fields[$field]) || ($type == self::FORMAT_LANG && empty($this->update_fields[$field][$id_lang]))))
|
if (is_array($this->update_fields))
|
||||||
continue;
|
if ((!empty($data['lang']) || !empty($data['shop'])) && (empty($this->update_fields[$field]) || ($type == self::FORMAT_LANG && empty($this->update_fields[$field][$id_lang]))))
|
||||||
|
continue;
|
||||||
|
|
||||||
// Get field value, if value is multilang and field is empty, use value from default lang
|
// Get field value, if value is multilang and field is empty, use value from default lang
|
||||||
$value = $this->$field;
|
$value = $this->$field;
|
||||||
@@ -433,12 +434,7 @@ abstract class ObjectModelCore
|
|||||||
$this->date_upd = date('Y-m-d H:i:s');
|
$this->date_upd = date('Y-m-d H:i:s');
|
||||||
|
|
||||||
// Database insertion
|
// Database insertion
|
||||||
if ($null_values)
|
if (!$result = Db::getInstance()->insert($this->def['table'], $this->getFields(), $null_values))
|
||||||
$result = Db::getInstance()->insert($this->def['table'], $this->getFields(), true);
|
|
||||||
else
|
|
||||||
$result = Db::getInstance()->insert($this->def['table'], $this->getFields());
|
|
||||||
|
|
||||||
if (!$result)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Get object id in database
|
// Get object id in database
|
||||||
@@ -450,10 +446,7 @@ abstract class ObjectModelCore
|
|||||||
$fields = $this->getFieldsShop();
|
$fields = $this->getFieldsShop();
|
||||||
$fields[$this->def['primary']] = (int)$this->id;
|
$fields[$this->def['primary']] = (int)$this->id;
|
||||||
$fields['id_shop'] = (int)$this->id_shop;
|
$fields['id_shop'] = (int)$this->id_shop;
|
||||||
if ($null_values)
|
$result &= Db::getInstance()->insert($this->def['table'].'_shop', $fields, $null_values);
|
||||||
$result &= Db::getInstance()->insert($this->def['table'].'_shop', $fields, true);
|
|
||||||
else
|
|
||||||
$result &= Db::getInstance()->insert($this->def['table'].'_shop', $fields);
|
|
||||||
}
|
}
|
||||||
else if (!Shop::isFeatureActive() && Shop::isTableAssociated($this->def['table']))
|
else if (!Shop::isFeatureActive() && Shop::isTableAssociated($this->def['table']))
|
||||||
$result &= $this->associateTo(Context::getContext()->shop->id);
|
$result &= $this->associateTo(Context::getContext()->shop->id);
|
||||||
@@ -515,12 +508,7 @@ abstract class ObjectModelCore
|
|||||||
$this->date_upd = date('Y-m-d H:i:s');
|
$this->date_upd = date('Y-m-d H:i:s');
|
||||||
|
|
||||||
// Database update
|
// Database update
|
||||||
if ($null_values)
|
if (!$result = Db::getInstance()->update($this->def['table'], $this->getFields(), '`'.pSQL($this->def['primary']).'` = '.(int)$this->id, 0, $null_values))
|
||||||
$result = Db::getInstance()->update($this->def['table'], $this->getFields(), '`'.pSQL($this->def['primary']).'` = '.(int)$this->id, 0, true);
|
|
||||||
else
|
|
||||||
$result = Db::getInstance()->update($this->def['table'], $this->getFields(), '`'.pSQL($this->def['primary']).'` = '.(int)$this->id);
|
|
||||||
|
|
||||||
if (!$result)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Database insertion for multishop fields related to the object
|
// Database insertion for multishop fields related to the object
|
||||||
@@ -528,14 +516,26 @@ abstract class ObjectModelCore
|
|||||||
{
|
{
|
||||||
$fields = $this->getFieldsShop();
|
$fields = $this->getFieldsShop();
|
||||||
$fields[$this->def['primary']] = (int)$this->id;
|
$fields[$this->def['primary']] = (int)$this->id;
|
||||||
|
if (is_array($this->update_fields))
|
||||||
|
{
|
||||||
|
$update_fields = $this->update_fields;
|
||||||
|
$this->update_fields = null;
|
||||||
|
$all_fields = $this->getFieldsShop();
|
||||||
|
$all_fields[$this->def['primary']] = (int)$this->id;
|
||||||
|
$this->update_fields = $update_fields;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$all_fields = $fields;
|
||||||
|
|
||||||
foreach (Shop::getContextListShopID() as $id_shop)
|
foreach (Shop::getContextListShopID() as $id_shop)
|
||||||
{
|
{
|
||||||
$fields['id_shop'] = $id_shop;
|
$fields['id_shop'] = $id_shop;
|
||||||
|
$all_fields['id_shop'] = $id_shop;
|
||||||
$where = $this->def['primary'].' = '.(int)$this->id.' AND id_shop = '.(int)$id_shop;
|
$where = $this->def['primary'].' = '.(int)$this->id.' AND id_shop = '.(int)$id_shop;
|
||||||
if (Db::getInstance()->getValue('SELECT '.$this->def['primary'].' FROM '._DB_PREFIX_.$this->def['table'].'_shop WHERE '.$where))
|
if (Db::getInstance()->getValue('SELECT '.$this->def['primary'].' FROM '._DB_PREFIX_.$this->def['table'].'_shop WHERE '.$where))
|
||||||
$result &= Db::getInstance()->update($this->def['table'].'_shop', $fields, $where, 0, $null_values);
|
$result &= Db::getInstance()->update($this->def['table'].'_shop', $fields, $where, 0, $null_values);
|
||||||
else
|
else
|
||||||
$result &= Db::getInstance()->insert($this->def['table'].'_shop', $fields, $null_values);
|
$result &= Db::getInstance()->insert($this->def['table'].'_shop', $all_fields, $null_values);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-3
@@ -1231,12 +1231,25 @@ class ProductCore extends ObjectModel
|
|||||||
* @return array Update result
|
* @return array Update result
|
||||||
*/
|
*/
|
||||||
public function updateAttribute($id_product_attribute, $wholesale_price, $price, $weight, $unit, $ecotax,
|
public function updateAttribute($id_product_attribute, $wholesale_price, $price, $weight, $unit, $ecotax,
|
||||||
$id_images, $reference, $ean13, $default, $location = null, $upc = null, $minimal_quantity, $available_date)
|
$id_images, $reference, $ean13, $default, $location = null, $upc = null, $minimal_quantity = null, $available_date = null, $update_all_fields = true)
|
||||||
{
|
{
|
||||||
|
$combination = new Combination($id_product_attribute);
|
||||||
|
|
||||||
|
if (!$update_all_fields)
|
||||||
|
$combination->setFieldsToUpdate(array(
|
||||||
|
'price' => !is_null($price),
|
||||||
|
'wholesale_price' => !is_null($wholesale_price),
|
||||||
|
'ecotax' => !is_null($ecotax),
|
||||||
|
'weight' => !is_null($weight),
|
||||||
|
'unit_price_impact' => !is_null($unit),
|
||||||
|
'default_on' => !is_null($ecotax),
|
||||||
|
'minimal_quantity' => !is_null($minimal_quantity),
|
||||||
|
'available_date' => !is_null($available_date),
|
||||||
|
));
|
||||||
|
|
||||||
$price = str_replace(',', '.', $price);
|
$price = str_replace(',', '.', $price);
|
||||||
$weight = str_replace(',', '.', $weight);
|
$weight = str_replace(',', '.', $weight);
|
||||||
|
|
||||||
$combination = new Combination($id_product_attribute);
|
|
||||||
$combination->price = (float)$price;
|
$combination->price = (float)$price;
|
||||||
$combination->wholesale_price = (float)$wholesale_price;
|
$combination->wholesale_price = (float)$wholesale_price;
|
||||||
$combination->ecotax = (float)$ecotax;
|
$combination->ecotax = (float)$ecotax;
|
||||||
@@ -1248,7 +1261,8 @@ class ProductCore extends ObjectModel
|
|||||||
$combination->upc = pSQL($upc);
|
$combination->upc = pSQL($upc);
|
||||||
$combination->default_on = (int)$default;
|
$combination->default_on = (int)$default;
|
||||||
$combination->minimal_quantity = (int)$minimal_quantity;
|
$combination->minimal_quantity = (int)$minimal_quantity;
|
||||||
$combination->available_date = pSQL($available_date);
|
$combination->available_date = $available_date ? pSQL($available_date) : '0000-00-00';
|
||||||
|
|
||||||
$combination->save();
|
$combination->save();
|
||||||
|
|
||||||
if (!empty($id_images))
|
if (!empty($id_images))
|
||||||
|
|||||||
@@ -583,7 +583,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
|
|
||||||
if (Validate::isLoadedObject($product = $this->object))
|
if (Validate::isLoadedObject($product = $this->object))
|
||||||
{
|
{
|
||||||
if (!Tools::getIsset('attribute_price') || Tools::getIsset('attribute_price') == null)
|
if ($this->isProductFieldUpdated('attribute_price') && (!Tools::getIsset('attribute_price') || Tools::getIsset('attribute_price') == null))
|
||||||
$this->errors[] = Tools::displayError('Attribute price required.');
|
$this->errors[] = Tools::displayError('Attribute price required.');
|
||||||
if (!Tools::getIsset('attribute_combination_list') || Tools::isEmpty(Tools::getValue('attribute_combination_list')))
|
if (!Tools::getIsset('attribute_combination_list') || Tools::isEmpty(Tools::getValue('attribute_combination_list')))
|
||||||
$this->errors[] = Tools::displayError('You must add at least one attribute.');
|
$this->errors[] = Tools::displayError('You must add at least one attribute.');
|
||||||
@@ -605,28 +605,29 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
$this->errors[] = Tools::displayError('This attribute already exists.');
|
$this->errors[] = Tools::displayError('This attribute already exists.');
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Validate::isDateFormat(Tools::getValue('available_date_attribute')))
|
if ($this->isProductFieldUpdated('available_date_attribute') && !Validate::isDateFormat(Tools::getValue('available_date_attribute')))
|
||||||
|
$this->errors[] = Tools::displayError('Invalid date format.');
|
||||||
|
else
|
||||||
{
|
{
|
||||||
$product->updateAttribute((int)$id_product_attribute,
|
$product->updateAttribute((int)$id_product_attribute,
|
||||||
Tools::getValue('attribute_wholesale_price'),
|
$this->isProductFieldUpdated('attribute_wholesale_price') ? Tools::getValue('attribute_wholesale_price') : null,
|
||||||
Tools::getValue('attribute_price') * Tools::getValue('attribute_price_impact'),
|
$this->isProductFieldUpdated('attribute_price_impact') ? Tools::getValue('attribute_price') * Tools::getValue('attribute_price_impact') : null,
|
||||||
Tools::getValue('attribute_weight') * Tools::getValue('attribute_weight_impact'),
|
$this->isProductFieldUpdated('attribute_weight_impact') ? Tools::getValue('attribute_weight') * Tools::getValue('attribute_weight_impact') : null,
|
||||||
Tools::getValue('attribute_unity') * Tools::getValue('attribute_unit_impact'),
|
$this->isProductFieldUpdated('attribute_unit_impact') ? Tools::getValue('attribute_unity') * Tools::getValue('attribute_unit_impact') : null,
|
||||||
Tools::getValue('attribute_ecotax'),
|
$this->isProductFieldUpdated('attribute_ecotax') ? Tools::getValue('attribute_ecotax') : null,
|
||||||
Tools::getValue('id_image_attr'),
|
Tools::getValue('id_image_attr'),
|
||||||
Tools::getValue('attribute_reference'),
|
Tools::getValue('attribute_reference'),
|
||||||
Tools::getValue('attribute_ean13'),
|
Tools::getValue('attribute_ean13'),
|
||||||
Tools::getValue('attribute_default'),
|
$this->isProductFieldUpdated('attribute_default') ? Tools::getValue('attribute_default') : null,
|
||||||
Tools::getValue('attribute_location'),
|
Tools::getValue('attribute_location'),
|
||||||
Tools::getValue('attribute_upc'),
|
Tools::getValue('attribute_upc'),
|
||||||
Tools::getValue('attribute_minimal_quantity'),
|
$this->isProductFieldUpdated('attribute_minimal_quantity') ? Tools::getValue('attribute_minimal_quantity') : null,
|
||||||
Tools::getValue('available_date_attribute'));
|
$this->isProductFieldUpdated('available_date_attribute') ? Tools::getValue('available_date_attribute') : null,
|
||||||
|
false);
|
||||||
|
|
||||||
Hook::exec('actionProductAttributeUpdate', array('id_product_attribute' => (int)$id_product_attribute));
|
Hook::exec('actionProductAttributeUpdate', array('id_product_attribute' => (int)$id_product_attribute));
|
||||||
$this->updateDownloadProduct($product, 1, $id_product_attribute);
|
$this->updateDownloadProduct($product, 1, $id_product_attribute);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
$this->errors[] = Tools::displayError('Invalid date format.');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1552,9 +1553,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
if ($this->isTabSubmitted('Shipping'))
|
if ($this->isTabSubmitted('Shipping'))
|
||||||
$this->addCarriers();
|
$this->addCarriers();
|
||||||
if ($this->isTabSubmitted('Associations'))
|
if ($this->isTabSubmitted('Associations'))
|
||||||
{
|
|
||||||
$this->updateAccessories($object);
|
$this->updateAccessories($object);
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->isTabSubmitted('Accounting'))
|
if ($this->isTabSubmitted('Accounting'))
|
||||||
$this->processAccounting();
|
$this->processAccounting();
|
||||||
@@ -1727,7 +1726,7 @@ class AdminProductsControllerCore extends AdminController
|
|||||||
// Cache this condition to improve performances
|
// Cache this condition to improve performances
|
||||||
static $is_activated = null;
|
static $is_activated = null;
|
||||||
if (is_null($is_activated))
|
if (is_null($is_activated))
|
||||||
$is_activated = Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP;
|
$is_activated = Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_SHOP && $this->id_object;
|
||||||
|
|
||||||
if (!$is_activated)
|
if (!$is_activated)
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1447,6 +1447,7 @@ CREATE TABLE `PREFIX_product_attribute_shop` (
|
|||||||
`wholesale_price` decimal(20,6) NOT NULL default '0.000000',
|
`wholesale_price` decimal(20,6) NOT NULL default '0.000000',
|
||||||
`price` decimal(20,6) NOT NULL default '0.000000',
|
`price` decimal(20,6) NOT NULL default '0.000000',
|
||||||
`ecotax` decimal(17,6) NOT NULL default '0.00',
|
`ecotax` decimal(17,6) NOT NULL default '0.00',
|
||||||
|
`weight` float NOT NULL default '0',
|
||||||
`unit_price_impact` decimal(17,2) NOT NULL default '0.00',
|
`unit_price_impact` decimal(17,2) NOT NULL default '0.00',
|
||||||
`default_on` tinyint(1) unsigned NOT NULL default '0',
|
`default_on` tinyint(1) unsigned NOT NULL default '0',
|
||||||
`minimal_quantity` int(10) unsigned NOT NULL DEFAULT '1',
|
`minimal_quantity` int(10) unsigned NOT NULL DEFAULT '1',
|
||||||
|
|||||||
@@ -61,13 +61,14 @@ CREATE TABLE `PREFIX_product_attribute_shop` (
|
|||||||
`wholesale_price` decimal(20,6) NOT NULL default '0.000000',
|
`wholesale_price` decimal(20,6) NOT NULL default '0.000000',
|
||||||
`price` decimal(20,6) NOT NULL default '0.000000',
|
`price` decimal(20,6) NOT NULL default '0.000000',
|
||||||
`ecotax` decimal(17,6) NOT NULL default '0.00',
|
`ecotax` decimal(17,6) NOT NULL default '0.00',
|
||||||
|
`weight` float NOT NULL default '0',
|
||||||
`unit_price_impact` decimal(17,2) NOT NULL default '0.00',
|
`unit_price_impact` decimal(17,2) NOT NULL default '0.00',
|
||||||
`default_on` tinyint(1) unsigned NOT NULL default '0',
|
`default_on` tinyint(1) unsigned NOT NULL default '0',
|
||||||
`minimal_quantity` int(10) unsigned NOT NULL DEFAULT '1',
|
`minimal_quantity` int(10) unsigned NOT NULL DEFAULT '1',
|
||||||
`available_date` date NOT NULL,
|
`available_date` date NOT NULL,
|
||||||
PRIMARY KEY (`id_product_attribute`, `id_shop`)
|
PRIMARY KEY (`id_product_attribute`, `id_shop`)
|
||||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
|
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
|
||||||
INSERT INTO `PREFIX_product_attribute_shop` (`id_product_attribute`, `id_shop`, `wholesale_price`, `price`, `ecotax`, `unit_price_impact`, `default_on`, `minimal_quantity`, `available_date`) (SELECT `id_product_attribute`, (SELECT `value` FROM `PREFIX_configuration` WHERE `name` = 'PS_SHOP_DEFAULT'), `wholesale_price`, `price`, `ecotax`, `unit_price_impact`, `default_on`, `minimal_quantity`, `available_date` FROM `PREFIX_product_attribute`);
|
INSERT INTO `PREFIX_product_attribute_shop` (`id_product_attribute`, `id_shop`, `wholesale_price`, `price`, `ecotax`, `weight`, `unit_price_impact`, `default_on`, `minimal_quantity`, `available_date`) (SELECT `id_product_attribute`, (SELECT `value` FROM `PREFIX_configuration` WHERE `name` = 'PS_SHOP_DEFAULT'), `wholesale_price`, `price`, `ecotax`, `weight`, `unit_price_impact`, `default_on`, `minimal_quantity`, `available_date` FROM `PREFIX_product_attribute`);
|
||||||
|
|
||||||
INSERT INTO `PREFIX_attribute_shop` (`id_attribute`, `id_shop`) (SELECT a.id_attribute, c.id_shop FROM PREFIX_attribute_group_shop a LEFT JOIN PREFIX_shop_group b ON a.id_group_shop = b.id_shop_group INNER JOIN PREFIX_shop c ON b.id_shop_group = c.id_shop_group);
|
INSERT INTO `PREFIX_attribute_shop` (`id_attribute`, `id_shop`) (SELECT a.id_attribute, c.id_shop FROM PREFIX_attribute_group_shop a LEFT JOIN PREFIX_shop_group b ON a.id_group_shop = b.id_shop_group INNER JOIN PREFIX_shop c ON b.id_shop_group = c.id_shop_group);
|
||||||
CREATE TABLE `PREFIX_attribute_shop` (
|
CREATE TABLE `PREFIX_attribute_shop` (
|
||||||
|
|||||||
+116
-80
@@ -398,6 +398,8 @@ product_tabs['Combinations'] = new function(){
|
|||||||
self.bindDefault();
|
self.bindDefault();
|
||||||
self.bindDelete();
|
self.bindDelete();
|
||||||
self.bindToggleAddCombination();
|
self.bindToggleAddCombination();
|
||||||
|
if (display_multishop_checkboxes)
|
||||||
|
ProductMultishop.checkAllCombinations();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -507,7 +509,7 @@ product_tabs['Seo'] = new function(){
|
|||||||
displayFlags(languages, id_language, allowEmployeeFormLang);
|
displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||||
|
|
||||||
if (display_multishop_checkboxes)
|
if (display_multishop_checkboxes)
|
||||||
multishopCheckAllProductFieldsSeo();
|
ProductMultishop.checkAllSeo();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -580,7 +582,7 @@ product_tabs['Prices'] = new function(){
|
|||||||
self.bindDelete();
|
self.bindDelete();
|
||||||
|
|
||||||
if (display_multishop_checkboxes)
|
if (display_multishop_checkboxes)
|
||||||
multishopCheckAllProductFieldsPrice();
|
ProductMultishop.checkAllPrice();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,7 +718,7 @@ product_tabs['Associations'] = new function(){
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (display_multishop_checkboxes)
|
if (display_multishop_checkboxes)
|
||||||
multishopCheckAllProductFieldsAssociations();
|
ProductMultishop.checkAllAssociations();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -931,7 +933,7 @@ product_tabs['Informations'] = new function(){
|
|||||||
|
|
||||||
if (display_multishop_checkboxes)
|
if (display_multishop_checkboxes)
|
||||||
{
|
{
|
||||||
multishopCheckAllProductFieldsInformations();
|
ProductMultishop.checkAllInformations();
|
||||||
var active_click = function()
|
var active_click = function()
|
||||||
{
|
{
|
||||||
if (!$('input[name=\'multishop_check[active]\']').attr('checked'))
|
if (!$('input[name=\'multishop_check[active]\']').attr('checked'))
|
||||||
@@ -1461,96 +1463,130 @@ function ajaxAction (url, action, success_callback, failure_callback){
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var load_tinymce_multishop = {};
|
var ProductMultishop = new function()
|
||||||
function multishopCheckProductField(checked, id, type)
|
|
||||||
{
|
{
|
||||||
checked = !checked;
|
var self = this;
|
||||||
switch (type)
|
this.load_tinymce = {};
|
||||||
|
|
||||||
|
this.checkField = function(checked, id, type)
|
||||||
{
|
{
|
||||||
case 'tinymce' :
|
checked = !checked;
|
||||||
$('#'+id).attr('disabled', checked);
|
switch (type)
|
||||||
if (typeof load_tinymce_multishop[id] == 'undefined')
|
{
|
||||||
load_tinymce_multishop[id] = checked;
|
case 'tinymce' :
|
||||||
else
|
$('#'+id).attr('disabled', checked);
|
||||||
{
|
if (typeof self.load_tinymce[id] == 'undefined')
|
||||||
if (checked)
|
self.load_tinymce[id] = checked;
|
||||||
tinyMCE.get(id).hide();
|
|
||||||
else
|
else
|
||||||
tinyMCE.get(id).show();
|
{
|
||||||
}
|
if (checked)
|
||||||
break;
|
tinyMCE.get(id).hide();
|
||||||
|
else
|
||||||
|
tinyMCE.get(id).show();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'radio' :
|
case 'radio' :
|
||||||
$('input[name=\''+id+'\']').attr('disabled', checked);
|
$('input[name=\''+id+'\']').attr('disabled', checked);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'show_price' :
|
case 'show_price' :
|
||||||
if ($('input[name=\'available_for_order\']').attr('checked'))
|
if ($('input[name=\'available_for_order\']').attr('checked'))
|
||||||
checked = true;
|
checked = true;
|
||||||
$('input[name=\''+id+'\']').attr('disabled', checked);
|
$('input[name=\''+id+'\']').attr('disabled', checked);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'price' :
|
case 'price' :
|
||||||
$('#priceTE').attr('disabled', checked);
|
$('#priceTE').attr('disabled', checked);
|
||||||
$('#priceTI').attr('disabled', checked);
|
$('#priceTI').attr('disabled', checked);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'unit_price' :
|
case 'unit_price' :
|
||||||
$('#unit_price').attr('disabled', checked);
|
$('#unit_price').attr('disabled', checked);
|
||||||
$('#unity').attr('disabled', checked);
|
$('#unity').attr('disabled', checked);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'category_box' :
|
case 'attribute_price_impact' :
|
||||||
$('#categories-treeview input[type=checkbox]').attr('disabled', checked);
|
$('#attribute_price_impact').attr('disabled', checked);
|
||||||
break;
|
$('#attribute_price').attr('disabled', checked);
|
||||||
|
$('#attribute_priceTI').attr('disabled', checked);
|
||||||
|
break;
|
||||||
|
|
||||||
default :
|
case 'category_box' :
|
||||||
$('#'+id).attr('disabled', checked);
|
$('#categories-treeview input[type=checkbox]').attr('disabled', checked);
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function multishopCheckAllProductFieldsInformations()
|
case 'attribute_weight_impact' :
|
||||||
{
|
$('#attribute_weight_impact').attr('disabled', checked);
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[active]\']').attr('checked'), 'active', 'radio');
|
$('#attribute_weight').attr('disabled', checked);
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[visibility]\']').attr('checked'), 'visibility');
|
break;
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[available_for_order]\']').attr('checked'), 'available_for_order');
|
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[show_price]\']').attr('checked'), 'show_price', 'show_price');
|
case 'attribute_unit_impact' :
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[online_only]\']').attr('checked'), 'online_only');
|
$('#attribute_unit_impact').attr('disabled', checked);
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[condition]\']').attr('checked'), 'condition');
|
$('#attribute_unity').attr('disabled', checked);
|
||||||
$.each(languages, function(k, v)
|
break;
|
||||||
|
|
||||||
|
default :
|
||||||
|
$('#'+id).attr('disabled', checked);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkAllInformations = function()
|
||||||
{
|
{
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[name]['+v.id_lang+']\']').attr('checked'), 'name_'+v.id_lang);
|
ProductMultishop.checkField($('input[name=\'multishop_check[active]\']').attr('checked'), 'active', 'radio');
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[description_short]['+v.id_lang+']\']').attr('checked'), 'description_short_'+v.id_lang, 'tinymce');
|
ProductMultishop.checkField($('input[name=\'multishop_check[visibility]\']').attr('checked'), 'visibility');
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[description]['+v.id_lang+']\']').attr('checked'), 'description_'+v.id_lang, 'tinymce');
|
ProductMultishop.checkField($('input[name=\'multishop_check[available_for_order]\']').attr('checked'), 'available_for_order');
|
||||||
});
|
ProductMultishop.checkField($('input[name=\'multishop_check[show_price]\']').attr('checked'), 'show_price', 'show_price');
|
||||||
}
|
ProductMultishop.checkField($('input[name=\'multishop_check[online_only]\']').attr('checked'), 'online_only');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[condition]\']').attr('checked'), 'condition');
|
||||||
|
$.each(languages, function(k, v)
|
||||||
|
{
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[name]['+v.id_lang+']\']').attr('checked'), 'name_'+v.id_lang);
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[description_short]['+v.id_lang+']\']').attr('checked'), 'description_short_'+v.id_lang, 'tinymce');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[description]['+v.id_lang+']\']').attr('checked'), 'description_'+v.id_lang, 'tinymce');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
function multishopCheckAllProductFieldsPrice(checked)
|
this.checkAllPrice = function()
|
||||||
{
|
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[wholesale_price]\']').attr('checked'), 'wholesale_price');
|
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[price]\']').attr('checked'), 'price', 'price');
|
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[id_tax_rules_group]\']').attr('checked'), 'id_tax_rules_group');
|
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[unit_price]\']').attr('checked'), 'unit_price', 'unit_price');
|
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[on_sale]\']').attr('checked'), 'on_sale');
|
|
||||||
}
|
|
||||||
|
|
||||||
function multishopCheckAllProductFieldsSeo(checked)
|
|
||||||
{
|
|
||||||
$.each(languages, function(k, v)
|
|
||||||
{
|
{
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[meta_title]['+v.id_lang+']\']').attr('checked'), 'meta_title_'+v.id_lang);
|
ProductMultishop.checkField($('input[name=\'multishop_check[wholesale_price]\']').attr('checked'), 'wholesale_price');
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[meta_description]['+v.id_lang+']\']').attr('checked'), 'meta_description_'+v.id_lang);
|
ProductMultishop.checkField($('input[name=\'multishop_check[price]\']').attr('checked'), 'price', 'price');
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[meta_keywords]['+v.id_lang+']\']').attr('checked'), 'meta_keywords_'+v.id_lang);
|
ProductMultishop.checkField($('input[name=\'multishop_check[id_tax_rules_group]\']').attr('checked'), 'id_tax_rules_group');
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[link_rewrite]['+v.id_lang+']\']').attr('checked'), 'link_rewrite_'+v.id_lang);
|
ProductMultishop.checkField($('input[name=\'multishop_check[unit_price]\']').attr('checked'), 'unit_price', 'unit_price');
|
||||||
});
|
ProductMultishop.checkField($('input[name=\'multishop_check[on_sale]\']').attr('checked'), 'on_sale');
|
||||||
}
|
ProductMultishop.checkField($('input[name=\'multishop_check[on_sale]\']').attr('checked'), 'ecotax');
|
||||||
|
};
|
||||||
|
|
||||||
function multishopCheckAllProductFieldsAssociations(checked)
|
this.checkAllSeo = function()
|
||||||
{
|
{
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[id_category_default]\']').attr('checked'), 'id_category_default');
|
$.each(languages, function(k, v)
|
||||||
multishopCheckProductField($('input[name=\'multishop_check[category_box]\']').attr('checked'), 'categories-treeview', 'category_box');
|
{
|
||||||
}
|
ProductMultishop.checkField($('input[name=\'multishop_check[meta_title]['+v.id_lang+']\']').attr('checked'), 'meta_title_'+v.id_lang);
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[meta_description]['+v.id_lang+']\']').attr('checked'), 'meta_description_'+v.id_lang);
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[meta_keywords]['+v.id_lang+']\']').attr('checked'), 'meta_keywords_'+v.id_lang);
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[link_rewrite]['+v.id_lang+']\']').attr('checked'), 'link_rewrite_'+v.id_lang);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkAllAssociations = function()
|
||||||
|
{
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[id_category_default]\']').attr('checked'), 'id_category_default');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[id_category_default]\']').attr('checked'), 'categories-treeview', 'category_box');
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkAllCombinations = function()
|
||||||
|
{
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_wholesale_price]\']').attr('checked'), 'attribute_wholesale_price');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_price_impact]\']').attr('checked'), 'attribute_price_impact', 'attribute_price_impact');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_weight_impact]\']').attr('checked'), 'attribute_weight_impact', 'attribute_weight_impact');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_unit_impact]\']').attr('checked'), 'attribute_unit_impact', 'attribute_unit_impact');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_ecotax]\']').attr('checked'), 'attribute_ecotax');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_minimal_quantity]\']').attr('checked'), 'attribute_minimal_quantity');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[available_date_attribute]\']').attr('checked'), 'available_date_attribute');
|
||||||
|
ProductMultishop.checkField($('input[name=\'multishop_check[attribute_default]\']').attr('checked'), 'attribute_default');
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
var tabs_manager = new ProductTabsManager();
|
var tabs_manager = new ProductTabsManager();
|
||||||
tabs_manager.setTabs(product_tabs);
|
tabs_manager.setTabs(product_tabs);
|
||||||
|
|||||||
Reference in New Issue
Block a user