From 2437c9f15f60660bcb8a703e9e93ee7cd70c95f4 Mon Sep 17 00:00:00 2001 From: rGaillard Date: Fri, 2 Mar 2012 11:21:40 +0000 Subject: [PATCH] [-] BO: Fix PSFV-177 backoffice order message --- .../template/controllers/orders/form.tpl | 23 +++++++++++++ .../template/controllers/products/prices.tpl | 2 +- controllers/admin/AdminCartsController.php | 33 ++++++++++++++++++- 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/orders/form.tpl b/admin-dev/themes/default/template/controllers/orders/form.tpl index 43e86a0dd..684f0da0b 100755 --- a/admin-dev/themes/default/template/controllers/orders/form.tpl +++ b/admin-dev/themes/default/template/controllers/orders/form.tpl @@ -201,6 +201,28 @@ var product = $(this).attr('rel').split('_'); updateProductPrice(product[0], product[1], $(this).val()); }); + $('#order_message').live('change', function(e) { + e.preventDefault(); + $.ajax({ + type:"POST", + url: "{$link->getAdminLink('AdminCarts')}", + async: true, + dataType: "json", + data : { + ajax: "1", + token: "{getAdminToken tab='AdminCarts'}", + tab: "AdminCarts", + action: "updateOrderMessage", + id_cart: id_cart, + id_customer: id_customer, + message: $(this).val() + }, + success : function(res) + { + displaySummary(res); + } + }); + }); /*$('.fancybox').live('click', function(e) { $(this).fancybox().trigger('click'); return false; @@ -611,6 +633,7 @@ $('#id_lang option[value="'+id_lang+'"]').attr('selected', 'selected'); $('#send_email_to_customer').attr('rel', jsonSummary.link_order); $('#go_order_process').attr('href', jsonSummary.link_order); + $('#order_message').val(jsonSummary.order_message); resetBind(); } diff --git a/admin-dev/themes/default/template/controllers/products/prices.tpl b/admin-dev/themes/default/template/controllers/products/prices.tpl index 04baa8c41..3ece69e52 100644 --- a/admin-dev/themes/default/template/controllers/products/prices.tpl +++ b/admin-dev/themes/default/template/controllers/products/prices.tpl @@ -157,7 +157,7 @@ jQuery(document).ready(Customer.init); {if $tax_exclude_taxe_option} {l s='Taxes are currently disabled'} ({l s='Tax options'}) - + {/if} diff --git a/controllers/admin/AdminCartsController.php b/controllers/admin/AdminCartsController.php index 9ded02a1c..4dc12954c 100755 --- a/controllers/admin/AdminCartsController.php +++ b/controllers/admin/AdminCartsController.php @@ -301,6 +301,31 @@ class AdminCartsControllerCore extends AdminController echo Tools::jsonEncode($this->ajaxReturnVars()); } } + + public function ajaxProcessUpdateOrderMessage() + { + if ($this->tabAccess['edit'] === '1') + { + $id_message = false; + if ($old_message = Message::getMessageByCartId((int)$this->context->cart->id)) + $id_message = $old_message['id_message']; + $message = new Message((int)$id_message); + if ($message_content = Tools::getValue('message')) + { + if (Validate::isMessage($message_content)) + { + $message->message = htmlentities($message_content, ENT_COMPAT, 'UTF-8'); + $message->id_cart = (int)$this->context->cart->id; + $message->id_customer = (int)$this->context->cart->id_customer; + $message->save(); + } + } + else + if (Validate::isLoadedObject($message)) + $message->delete(); + echo Tools::jsonEncode($this->ajaxReturnVars()); + } + } public function ajaxProcessUpdateCurrency() { @@ -504,12 +529,18 @@ class AdminCartsControllerCore extends AdminController public function ajaxReturnVars() { - $id_cart = (int)$this->context->cart->id; + $id_cart = (int)$this->context->cart->id; + + $message_content = ''; + if ($message = Message::getMessageByCartId((int)$this->context->cart->id)) + $message_content = $message['message']; + return array('summary' => $this->getCartSummary(), 'delivery_option_list' => $this->getDeliveryOptionList(), 'cart' => $this->context->cart, 'addresses' => $this->context->customer->getAddresses((int)$this->context->cart->id_lang), 'id_cart' => $id_cart, + 'order_message' => $message_content, 'link_order' => $this->context->link->getPageLink( 'order', false, (int)$this->context->cart->id_lang,