// Fix various bugs with customized products in backoffice order
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
{if $product.customizedDatas}
|
{if $product.customizedDatas}
|
||||||
<tr class="customized customized-{$product.id_order_detail}">
|
<tr class="customized customized-{$product.id_order_detail}">
|
||||||
<input type="hidden" class="edit_product_id_order_detail" value="{$product.id_order_detail}" />
|
<input type="hidden" class="edit_product_id_order_detail" value="{$product.id_order_detail}" />
|
||||||
<td align="center">{if isset($product.image) && $product.image->id}{$product.image_tag}{else}'--'{/if}</td>
|
<td align="center">{if isset($product.image) && $product.image->id}{$product.image_tag}{else}--{/if}</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="index.php?controller=adminproducts&id_product={$product['product_id']}&updateproduct&token={getAdminToken tab='AdminProducts'}">
|
<a href="index.php?controller=adminproducts&id_product={$product['product_id']}&updateproduct&token={getAdminToken tab='AdminProducts'}">
|
||||||
<span class="productName">{$product['product_name']} - {l s='customized'}</span><br />
|
<span class="productName">{$product['product_name']} - {l s='customized'}</span><br />
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
$('.delete_product').live('click', function(e) {
|
$('.delete_product').live('click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var to_delete = $(this).attr('rel').split('_');
|
var to_delete = $(this).attr('rel').split('_');
|
||||||
deleteProduct(to_delete[1], to_delete[2]);
|
deleteProduct(to_delete[1], to_delete[2], to_delete[3]);
|
||||||
});
|
});
|
||||||
$('.delete_discount').live('click', function(e) {
|
$('.delete_discount').live('click', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
if ($(this).val() != cart_quantity[$(this).attr('rel')])
|
if ($(this).val() != cart_quantity[$(this).attr('rel')])
|
||||||
{
|
{
|
||||||
var product = $(this).attr('rel').split('_');
|
var product = $(this).attr('rel').split('_');
|
||||||
updateQty(product[0], product[1], $(this).val() - cart_quantity[$(this).attr('rel')]);
|
updateQty(product[0], product[1], product[2], $(this).val() - cart_quantity[$(this).attr('rel')]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('.increaseqty_product, .decreaseqty_product').live('click', function(e) {
|
$('.increaseqty_product, .decreaseqty_product').live('click', function(e) {
|
||||||
@@ -193,7 +193,7 @@
|
|||||||
var sign = '';
|
var sign = '';
|
||||||
if ($(this).hasClass('decreaseqty_product'))
|
if ($(this).hasClass('decreaseqty_product'))
|
||||||
sign = '-';
|
sign = '-';
|
||||||
updateQty(product[0], product[1], sign+1);
|
updateQty(product[0], product[1],product[2], sign+1);
|
||||||
});
|
});
|
||||||
$('#id_product').live('keydown', function(e) {
|
$('#id_product').live('keydown', function(e) {
|
||||||
$(this).click();
|
$(this).click();
|
||||||
@@ -396,7 +396,7 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteProduct(id_product, id_product_attribute)
|
function deleteProduct(id_product, id_product_attribute, id_customization)
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"POST",
|
type:"POST",
|
||||||
@@ -410,6 +410,7 @@
|
|||||||
action: "deleteProduct",
|
action: "deleteProduct",
|
||||||
id_product: id_product,
|
id_product: id_product,
|
||||||
id_product_attribute: id_product_attribute,
|
id_product_attribute: id_product_attribute,
|
||||||
|
id_customization: id_customization,
|
||||||
id_cart: id_cart,
|
id_cart: id_cart,
|
||||||
id_customer: id_customer
|
id_customer: id_customer
|
||||||
},
|
},
|
||||||
@@ -640,9 +641,9 @@
|
|||||||
$.each(products, function() {
|
$.each(products, function() {
|
||||||
cart_quantity[this.id_product+'_'+this.id_product_attribute] = this.cart_quantity;
|
cart_quantity[this.id_product+'_'+this.id_product_attribute] = this.cart_quantity;
|
||||||
cart_content += '<tr><td><img src="'+this.image_link+'" title="'+this.name+'" /></td><td>'+this.name+'<br />'+this.attributes_small+'</td><td>'+this.reference+'</td><td><input type="text" size="7" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="product_unit_price" value="'+this.price+'" /> <span class="currency_sign"></span></td><td>';
|
cart_content += '<tr><td><img src="'+this.image_link+'" title="'+this.name+'" /></td><td>'+this.name+'<br />'+this.attributes_small+'</td><td>'+this.reference+'</td><td><input type="text" size="7" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="product_unit_price" value="'+this.price+'" /> <span class="currency_sign"></span></td><td>';
|
||||||
cart_content += '<div style="float:left;"><a href="#" class="increaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'" ><img src="../img/admin/up.gif" /></a><br /><a href="#" class="decreaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'"><img src="../img/admin/down.gif" /></a></div>';
|
cart_content += '<div style="float:left;"><a href="#" class="increaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/up.gif" /></a><br /><a href="#" class="decreaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'"><img src="../img/admin/down.gif" /></a></div>';
|
||||||
cart_content += '<div style="float:left;"><input type="text" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="cart_quantity" size="2" value="'+this.cart_quantity+'" />';
|
cart_content += '<div style="float:left;"><input type="text" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" class="cart_quantity" size="2" value="'+this.cart_quantity+'" />';
|
||||||
cart_content += '<a href="#" class="delete_product" rel="delete_'+this.id_product+'_'+this.id_product_attribute+'" ><img src="../img/admin/delete.gif" /></a>';
|
cart_content += '<a href="#" class="delete_product" rel="delete_'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/delete.gif" /></a>';
|
||||||
cart_content += '</div></td><td>'+this.total+' <span class="currency_sign"></span></td></tr>';
|
cart_content += '</div></td><td>'+this.total+' <span class="currency_sign"></span></td></tr>';
|
||||||
});
|
});
|
||||||
$('#customer_cart tbody').html(cart_content);
|
$('#customer_cart tbody').html(cart_content);
|
||||||
@@ -671,8 +672,7 @@
|
|||||||
|
|
||||||
function displaySummary(jsonSummary)
|
function displaySummary(jsonSummary)
|
||||||
{
|
{
|
||||||
if (jsonSummary.summary.products.length)
|
updateCartProducts(jsonSummary.summary.products);
|
||||||
updateCartProducts(jsonSummary.summary.products);
|
|
||||||
updateCartVouchers(jsonSummary.summary.discounts);
|
updateCartVouchers(jsonSummary.summary.discounts);
|
||||||
updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice);
|
updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice);
|
||||||
|
|
||||||
@@ -720,7 +720,7 @@
|
|||||||
resetBind();
|
resetBind();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateQty(id_product, id_product_attribute, qty)
|
function updateQty(id_product, id_product_attribute, id_customization, qty)
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"POST",
|
type:"POST",
|
||||||
@@ -734,6 +734,7 @@
|
|||||||
action: "updateQty",
|
action: "updateQty",
|
||||||
id_product: id_product,
|
id_product: id_product,
|
||||||
id_product_attribute: id_product_attribute,
|
id_product_attribute: id_product_attribute,
|
||||||
|
id_customization: id_customization,
|
||||||
qty: qty,
|
qty: qty,
|
||||||
id_customer: id_customer,
|
id_customer: id_customer,
|
||||||
id_cart: id_cart,
|
id_cart: id_cart,
|
||||||
@@ -771,7 +772,7 @@
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$('#products_err').hide();
|
$('#products_err').hide();
|
||||||
updateQty(id_product, $('#ipa_'+id_product+' option:selected').val(), $('#qty').val());
|
updateQty(id_product, $('#ipa_'+id_product+' option:selected').val(), 0, $('#qty').val());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -471,7 +471,7 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$sql->select('cu.`id_customization`, cu.`quantity` AS customization_quantity');
|
$sql->select('cu.`id_customization`, cu.`quantity` AS customization_quantity');
|
||||||
$sql->leftJoin('customization', 'cu',
|
$sql->leftJoin('customization', 'cu',
|
||||||
'p.`id_product` = cu.`id_product` AND cp.`id_product_attribute` = cu.id_product_attribute');
|
'p.`id_product` = cu.`id_product` AND cp.`id_product_attribute` = cu.id_product_attribute AND cu.id_cart='.(int)$this->id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$sql->select('0 AS customization_quantity, 0 AS id_customization');
|
$sql->select('0 AS customization_quantity, 0 AS id_customization');
|
||||||
|
|||||||
@@ -233,8 +233,7 @@ class AdminCartsControllerCore extends AdminController
|
|||||||
$errors[] = Tools::displayError('Invalid combination');
|
$errors[] = Tools::displayError('Invalid combination');
|
||||||
if (count($errors))
|
if (count($errors))
|
||||||
die(Tools::jsonEncode($errors));
|
die(Tools::jsonEncode($errors));
|
||||||
|
if ($this->context->cart->deleteProduct($id_product, $id_product_attribute, (int)Tools::getValue('id_customization')))
|
||||||
if ($this->context->cart->deleteProduct($id_product, $id_product_attribute))
|
|
||||||
echo Tools::jsonEncode($this->ajaxReturnVars());
|
echo Tools::jsonEncode($this->ajaxReturnVars());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -254,7 +253,7 @@ class AdminCartsControllerCore extends AdminController
|
|||||||
$field_id = 'customization_'.$id_product.'_'.$customization_field['id_customization_field'];
|
$field_id = 'customization_'.$id_product.'_'.$customization_field['id_customization_field'];
|
||||||
if ($customization_field['type'] == Product::CUSTOMIZE_TEXTFIELD)
|
if ($customization_field['type'] == Product::CUSTOMIZE_TEXTFIELD)
|
||||||
{
|
{
|
||||||
if (!isset($_POST[$field_id]))
|
if (!isset($_POST[$field_id]) || empty($_POST[$field_id]))
|
||||||
{
|
{
|
||||||
if ($customization_field['required'])
|
if ($customization_field['required'])
|
||||||
$errors[] = Tools::displayError('Please fill in all required fields');
|
$errors[] = Tools::displayError('Please fill in all required fields');
|
||||||
|
|||||||
Reference in New Issue
Block a user