From b436df3a3e2cf9f9058df4e3d0572d9c1231b5ea Mon Sep 17 00:00:00 2001 From: lLefevre Date: Thu, 20 Oct 2011 14:43:43 +0000 Subject: [PATCH] [*] BO #PSFV-94 : Added AdminDeliverySlipController --- admin-dev/themes/template/form.tpl | 4 +- admin-dev/themes/template/options.tpl | 1 - classes/AdminController.php | 1 + classes/HelperForm.php | 7 + .../admin/AdminDeliverySlipController.php | 140 ++++++++++++++++++ 5 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 controllers/admin/AdminDeliverySlipController.php diff --git a/admin-dev/themes/template/form.tpl b/admin-dev/themes/template/form.tpl index 0b3c1bfaf..fadb4a7f9 100644 --- a/admin-dev/themes/template/form.tpl +++ b/admin-dev/themes/template/form.tpl @@ -54,7 +54,7 @@ {/if} - +{if isset($fields.title)}

{$fields.title}

{/if}
{if $form_id} @@ -264,7 +264,7 @@


-{if $firstCall} +{if $firstCall && !$no_back} {if $back} {l s='Back'} {else} diff --git a/admin-dev/themes/template/options.tpl b/admin-dev/themes/template/options.tpl index 7ceaeddf0..1bc4b78ab 100644 --- a/admin-dev/themes/template/options.tpl +++ b/admin-dev/themes/template/options.tpl @@ -26,7 +26,6 @@ -
{foreach $option_list AS $category => $categoryData} {if isset($categoryData['top'])}{$categoryData['top']}{/if} diff --git a/classes/AdminController.php b/classes/AdminController.php index 15415fa0d..b0d28b442 100644 --- a/classes/AdminController.php +++ b/classes/AdminController.php @@ -1154,6 +1154,7 @@ class AdminControllerCore extends Controller $helper = new HelperOptions(); $helper->id = $this->id; $helper->token = $this->token; + $helper->table = $this->table; $helper->currentIndex = self::$currentIndex; $this->content .= $helper->generateOptions($this->options); } diff --git a/classes/HelperForm.php b/classes/HelperForm.php index 0b773fe9e..dadcf391d 100644 --- a/classes/HelperForm.php +++ b/classes/HelperForm.php @@ -49,6 +49,12 @@ class HelperFormCore extends Helper */ public $submit_action = ''; + /** + * @var bool + * Usage : Set the value to true if you want to simply remove the back button + */ + public $no_back = false; + public $token; public $languages = null; @@ -80,6 +86,7 @@ class HelperFormCore extends Helper 'allowEmployeeFormLang' => $this->allow_employee_form_lang, 'form_id' => $this->id, 'back' => Tools::getValue('back'), + 'no_back' => $this->no_back, 'fields' => $this->fields_form, 'fields_value' => $this->fields_value, 'required_fields' => $this->getFieldsRequired(), diff --git a/controllers/admin/AdminDeliverySlipController.php b/controllers/admin/AdminDeliverySlipController.php new file mode 100644 index 000000000..78354086a --- /dev/null +++ b/controllers/admin/AdminDeliverySlipController.php @@ -0,0 +1,140 @@ + +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 8971 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +class AdminDeliverySlipControllerCore extends AdminController +{ + public function __construct() + { + $this->table = 'delivery'; + $this->context = Context::getContext(); + + $this->options = array( + 'general' => array( + 'title' => $this->l('Delivery slips options'), + 'fields' => array( + 'PS_DELIVERY_PREFIX' => array( + 'title' => $this->l('Delivery prefix:'), + 'desc' => $this->l('Prefix used for delivery slips'), + 'size' => 6, + 'type' => 'textLang' + ), + 'PS_DELIVERY_NUMBER' => array( + 'title' => $this->l('Delivery number:'), + 'desc' => $this->l('The next delivery slip will begin with this number, and then increase with each additional slip'), + 'size' => 6, + 'type' => 'text' + ) + ), + 'submit' => array() + ) + ); + + parent::__construct(); + } + + public function initForm() + { + $this->fields_form = array( + 'title' => $this->l('Print PDF delivery slips'), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('From:'), + 'name' => 'date_from', + 'size' => 20, + 'maxlength' => 10, + 'required' => true, + 'p' => $this->l('Format: 2007-12-31 (inclusive)') + ), + array( + 'type' => 'text', + 'label' => $this->l('To:'), + 'name' => 'date_to', + 'size' => 20, + 'maxlength' => 10, + 'required' => true, + 'p' => $this->l('Format: 2008-12-31 (inclusive)') + ) + ), + 'submit' => array( + 'title' => $this->l('Generate PDF file'), + 'class' => 'button' + ) + ); + + $this->fields_value = array( + 'date_from' => date('Y-m-d'), + 'date_to' => date('Y-m-d') + ); + } + + public function postProcess() + { + if (Tools::isSubmit('submitPrint')) + { + if (!Validate::isDate(Tools::getValue('date_from'))) + $this->_errors[] = Tools::displayError('Invalid from date'); + if (!Validate::isDate(Tools::getValue('date_to'))) + $this->_errors[] = Tools::displayError('Invalid end date'); + if (!count($this->_errors)) + { + $orders = Order::getOrdersIdByDate(Tools::getValue('date_from'), Tools::getValue('date_to'), null, 'delivery'); + if (count($orders)) + Tools::redirectAdmin('pdf.php?deliveryslips='.urlencode(serialize($orders)).'&token='.$this->token); + else + $this->_errors[] = Tools::displayError('No delivery slip found for this period'); + } + } + else + parent::postProcess(); + } + + public function initContent() + { + $this->initForm(); + $helper = new HelperForm(); + // Check if form template has been overriden + if (file_exists($this->context->smarty->template_dir[0].'/'.$this->tpl_folder.'form.tpl')) + $helper->tpl = $this->tpl_folder.'form.tpl'; + $helper->currentIndex = self::$currentIndex; + $helper->token = $this->token; + $helper->table = $this->table; + $helper->identifier = $this->identifier; + $helper->languages = $this->_languages; + $helper->submit_action = 'submitPrint'; + $helper->no_back = true; + $helper->default_form_language = $this->default_form_language; + $helper->allow_employee_form_lang = $this->allow_employee_form_lang; + $helper->fields_value = $this->fields_value; + $this->content .= $helper->generateForm($this->fields_form); + + parent::initContent(); + } + +} + +