diff --git a/modules/cashondelivery/controllers/front/validation.php b/modules/cashondelivery/controllers/front/validation.php new file mode 100644 index 000000000..7b21968af --- /dev/null +++ b/modules/cashondelivery/controllers/front/validation.php @@ -0,0 +1,80 @@ + +* @copyright 2007-2012 PrestaShop SA +* @version Release: $Revision: 15094 $ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +/** + * @since 1.5.0 + */ +class CashondeliveryValidationModuleFrontController extends ModuleFrontController +{ + public $display_column_left = false; + public $ssl = true; + + public function postProcess() + { + if ($this->context->cart->id_customer == 0 || $this->context->cart->id_address_delivery == 0 || $this->context->cart->id_address_invoice == 0 || !$this->module->active) + Tools::redirectLink(__PS_BASE_URI__.'order.php?step=1'); + + // Check that this payment option is still available in case the customer changed his address just before the end of the checkout process + $authorized = false; + foreach (Module::getPaymentModules() as $module) + if ($module['name'] == 'cashondelivery') + { + $authorized = true; + break; + } + if (!$authorized) + die(Tools::displayError('This payment method is not available.')); + + $customer = new Customer($this->context->cart->id_customer); + if (!Validate::isLoadedObject($customer)) + Tools::redirectLink(__PS_BASE_URI__.'order.php?step=1'); + + if (Tools::getValue('confirm')) + { + $customer = new Customer((int)$this->context->cart->id_customer); + $total = $this->context->cart->getOrderTotal(true, Cart::BOTH); + $this->module->validateOrder((int)$this->context->cart->id, Configuration::get('PS_OS_PREPARATION'), $total, $this->module->displayName, null, array(), null, false, $customer->secure_key); + Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id_cart='.(int)$this->context->cart->id.'&id_module='.(int)$this->module->id.'&id_order='.(int)$this->module->currentOrder); + } + } + + /** + * @see FrontController::initContent() + */ + public function initContent() + { + parent::initContent(); + + $this->context->smarty->assign(array( + 'total' => $this->context->cart->getOrderTotal(true, Cart::BOTH), + 'this_path' => $this->module->getPathUri(), + 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->module->name.'/' + )); + + $this->setTemplate('validation.tpl'); + } +} diff --git a/modules/cashondelivery/validation.php b/modules/cashondelivery/validation.php index 074f73343..d6461697a 100755 --- a/modules/cashondelivery/validation.php +++ b/modules/cashondelivery/validation.php @@ -26,6 +26,8 @@ */ include(dirname(__FILE__).'/../../config/config.inc.php'); +Tools::displayFileAsDeprecated(); + include(dirname(__FILE__).'/../../header.php'); include(dirname(__FILE__).'/cashondelivery.php'); diff --git a/modules/cashondelivery/validation.tpl b/modules/cashondelivery/views/templates/front/validation.tpl similarity index 100% rename from modules/cashondelivery/validation.tpl rename to modules/cashondelivery/views/templates/front/validation.tpl diff --git a/modules/cashondelivery/confirmation.tpl b/modules/cashondelivery/views/templates/hook/confirmation.tpl similarity index 100% rename from modules/cashondelivery/confirmation.tpl rename to modules/cashondelivery/views/templates/hook/confirmation.tpl diff --git a/modules/cashondelivery/payment.tpl b/modules/cashondelivery/views/templates/hook/payment.tpl similarity index 90% rename from modules/cashondelivery/payment.tpl rename to modules/cashondelivery/views/templates/hook/payment.tpl index 4ef09a2f4..b087bfd90 100755 --- a/modules/cashondelivery/payment.tpl +++ b/modules/cashondelivery/views/templates/hook/payment.tpl @@ -25,7 +25,7 @@ *}

- + {l s='Pay with cash on delivery (COD)' mod='cashondelivery'}
{l s='Pay with cash on delivery (COD)' mod='cashondelivery'}
{l s='You pay for the merchandise upon delivery' mod='cashondelivery'}