diff --git a/admin-dev/tabs/AdminTaxRulesGroup.php b/admin-dev/tabs/AdminTaxRulesGroup.php deleted file mode 100755 index 0fecf1a99..000000000 --- a/admin-dev/tabs/AdminTaxRulesGroup.php +++ /dev/null @@ -1,528 +0,0 @@ - -* @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision: 7300 $ -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - -class AdminTaxRulesGroup extends AdminTab -{ - public $tax_rule; - public $selected_countries = array(); - public $selected_states = array(); - public $_errors_tax_rule; - - public function __construct() - { - global $cookie; - $this->table = 'tax_rules_group'; - $this->className = 'TaxRulesGroup'; - $this->edit = true; - $this->delete = true; - $this->ajax = false; - - $this->fieldsDisplay = array( - 'id_tax_rules_group' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), - 'name' => array('title' => $this->l('Name'), 'width' => 140), - 'active' => array('title' => $this->l('Enabled'), 'width' => 25, 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false)); - - parent::__construct(); - } - - - /** - * retrieve a tax rule via ajax - * @return tax rule in json format - */ - public function ajaxProcessGetTaxRule() - { - $id_rule = (int)Tools::getValue('id_tax_rule'); - - if ($tax_rule = TaxRule::retrieveById($id_rule)) - die(Tools::jsonEncode($tax_rule)); - else - die('error'); - } - - - public function ajaxPreProcess() {} - - public function postProcess() - { - $action = Tools::getValue('action'); - if ($action == 'delete_rule') - { - $id_rule = (int)Tools::getValue('id_tax_rule'); - $tax_rule = new TaxRule($id_rule); - - if (Validate::isLoadedObject($tax_rule)) - { - $tax_rule->delete(); - Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$tax_rule->id_tax_rules_group.'&conf=4&update'.$this->table.'&token='.$this->token); - } - } - else if ($action == 'create_rule') - { - $zipcode = Tools::getValue('zipcode'); - $id_rule = (int)Tools::getValue('id_tax_rule'); - - $this->selected_countries = Tools::getValue('country'); - $this->selected_states = Tools::getValue('states'); - - if (empty($this->selected_states) || sizeof($this->selected_states) == 0) - $this->selected_states = array(0); - - foreach ($this->selected_countries as $id_country) - { - foreach ($this->selected_states as $id_state) - { - $tr = new TaxRule(); - - // update or creation? - if (isset($id_rule)) - $tr->id = $id_rule; - - $tr->id_tax = (int)Tools::getValue('tax'); - $tr->id_tax_rules_group = (int)Tools::getValue('id_tax_rules_group'); - $tr->id_country = (int)$id_country; - $tr->id_state = (int)$id_state; - list($tr->zipcode_from, $tr->zipcode_to) = $tr->breakDownZipCode($zipcode); - $tr->behavior = (int)Tools::getValue('behavior'); - $tr->description = Tools::getValue('description'); - - $this->tax_rule = $tr; - $this->_errors_tax_rule = $this->validateTaxRule($tr); - if (sizeof($this->_errors_tax_rule) == 0) - { - if (!$tr->save()) - die(Tools::displayError('An error has occured: Can\'t save the current tax rule')); - } else - Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$tr->id_tax_rules_group.'&conf=4&update'.$this->table.'&token='.$this->token); - } - } - - if (sizeof($this->_errors_tax_rule) == 0) - Tools::redirectAdmin(self::$currentIndex.'&'.$this->identifier.'='.$tr->id_tax_rules_group.'&conf=4&update'.$this->table.'&token='.$this->token); - - } else - parent::postProcess(); - } - - /** - * check if the tax rule could be added in the database - * @param TaxRule $tr - */ - protected function validateTaxRule(TaxRule $tr) - { - // TODO: check if the rule already exists - return $tr->validateController(); - } - - protected function displayJS() - { - global $cookie; - - $all = $this->l('All'); - $javascript = << - function populateStates(id_country, id_state) - { - if ($("#country option:selected").size() > 1) - { - $("#zipcode-label").hide(); - $("#zipcode").hide(); - - $("#state-select").hide(); - $("#state-label").hide(); - } else { - $.ajax({ - url: "ajax.php", - cache: false, - data: "ajaxStates=1&id_country="+id_country+"&id_state="+id_state+"&empty_value=$all", - success: function(html){ - if (html == "false") - { - $("#state-label").hide(); - $("#state-select").hide(); - } - else - { - $("#state-label").show(); - $("#state-select").show(); - $("#states").html(html); - } - } - }); - - $("#zipcode-label").show(); - $("#zipcode").show(); - - } - } - - function loadTaxRule(id_tax_rule) - { - $.ajax({ - url: "ajax-tab.php", - cache: false, - dataType: "json", - data: "action=get_tax_rule&id_tax_rule="+id_tax_rule+"&tab=AdminTaxRulesGroup&token=$this->token", - success: function(data){ - $('#rule_form').show(); - $('#id_tax_rule').val(data.id_tax_rule); - $('#country').val(data.id_country); - $('#state').val(data.id_state); - - zipcode = 0; - if (data.zipcode_from != 0) - { - zipcode = data.zipcode_from; - - if (data.zipcode_to != 0) - zipcode = zipcode +"-"+data.zipcode_to - } - - $('#zipcode').val(zipcode); - $('#behavior').val(data.behavior); - $('#tax').val(data.id_tax); - $('#description').val(data.description); - - populateStates(data.id_country, data.id_state); - }, - error: function(data) - { - - } - }); - } - - function initForm() - { - $('#id_tax_rule').val(''); - $('#country').val(0); - $('#state').val(0); - $('#zipcode').val(0); - $('#behavior').val(0); - $('#tax').val(0); - $('#description').val(''); - - populateStates(0,0); - } - -EOT; - - echo $javascript; - } - - - public function displayTaxRulesErrors() - { - if ($nbErrors = count($this->_errors_tax_rule) AND $this->_includeContainer) - { - - echo ' -
X'; - if (count($this->_errors_tax_rule) == 1) - echo $this->_errors_tax_rule[0]; - else - { - echo $nbErrors.' '.$this->l('errors').'
    '; - foreach ($this->_errors_tax_rule as $error) - echo '
  1. '.$error.'
  2. '; - echo '
'; - } - echo '
'; - } - } - - - public function display() - { - if ((Tools::getValue('submitAdd'.$this->table) AND sizeof($this->_errors_tax_rule)) OR isset($_GET['add'.$this->table])) - { - if ($this->tabAccess['add'] === '1') - $this->displayForm(); - else - echo $this->l('You do not have permission to add here'); - } - else parent::display(); - } - - /** - * displays the tax rules group form - */ - protected function displayRuleGroupForm() - { - global $cookie, $currentIndex; - parent::displayForm(); - if (!($obj = $this->loadObject(true))) - return; - - // if the user come from the product page - $param_product = Tools::getValue('id_product') ? '&id_product='.Tools::getValue('id_product') : ''; - - echo '
- '.($obj->id ? '' : '').' -
'.$this->l('Tax Rules').' - - '; - - echo ' -
- * - '.$this->l('Invalid characters:').' <>;=#{}  -

-
'; - - echo ' - -
- getFieldValue($obj, 'active') ? 'checked="checked" ' : '').'/> - - getFieldValue($obj, 'active') ? 'checked="checked" ' : '').'/> - -
-
- -
- '; - } - - /** - * Display the tax rule form - * - * @param int $id_rule_group - */ - protected function displayRuleForm($id_rule_group) - { - global $cookie, $currentIndex; - - if (Validate::isLoadedObject($this->tax_rule)) - die(Tools::displayError('Unable to load the tax rule!')); - - $country_select = Helper::selectInput(Country::getCountries((int)$cookie->id_lang), - array('id' => 'country', - 'name' => 'country[]', - 'onclick' => 'populateStates($(this).val(), \'\')', - 'multiple' => 'multiple', - 'size' => 15), - array('key' => 'id_country', - 'value' => 'name', - 'selected' => $this->selected_countries, - 'empty' => $this->l('All'))); - - - $tax_select = Helper::selectInput(Tax::getTaxes((int)$cookie->id_lang), - array('id' => 'tax', 'name' => 'tax'), - array('key' => 'id_tax', - 'value' => 'name', - 'empty' => $this->l('No Tax'))); - - $behavior_select = Helper::selectInput(array(0 => $this->l('This tax only'), - 1 => $this->l('Combine'), - 2 => $this->l('One After Another') - ), - array('id' => 'behavior', 'name' => 'behavior')); - - echo ' '.$this->l('Add a new tax rule').' -
- -
-

- '; - } - - /** - * display the list of rules - * - * @param int $id_rule_group - */ - protected function displayRulesList($id_rule_group) - { - echo ' - - - - - - - - - - - - - '.$this->displayTaxRules((int)$id_rule_group).' - -
'.$this->l('Country').''.$this->l('State').''.$this->l('ZipCodes').''.$this->l('Behavior').''.$this->l('Tax').''.$this->l('Description').''.$this->l('Actions').'
'; - } - - - /** - * display the tax rules list table body - * - * @param int $id_rule_group - */ - protected function displayTaxRules($id_rule_group) - { - global $currentIndex, $cookie; - - $html = ''; - $tax_rules = TaxRule::getTaxRulesByGroupId((int)$cookie->id_lang, (int)$id_rule_group); - if (count($tax_rules) == 0) - { - $html .= ' - '.$this->l('No rules defined').' - '; - } else { - foreach ($tax_rules as $tax_rule) - { - // format fields for display - $country_name = ($tax_rule['country_name'] == '' ? '*' : $tax_rule['country_name']); - $state_name = ($tax_rule['state_name'] == '' ? '*' : $tax_rule['state_name']); - $zipcodes = '*'; - if (isset($tax_rule['zipcode_from']) && $tax_rule['zipcode_from'] != 0) - { - $zipcodes = $tax_rule['zipcode_from']; - if (isset($tax_rule['zipcode_to']) && $tax_rule['zipcode_to'] != 0 && $tax_rule['zipcode_to'] != $tax_rule['zipcode_from']) - $zipcodes .= '-'.$tax_rule['zipcode_to']; - } - - $tax = ((float)$tax_rule['rate'] == 0 ? '-' : (float)$tax_rule['rate'].'%'); - $behavior = $this->l('This tax only'); - if (TaxCalculator::COMBINE_METHOD == $tax_rule['behavior']) - $behavior = $this->l('Compute with others'); - else if (TaxCalculator::ONE_AFTER_ANOTHER_METHOD == $tax_rule['behavior']) - $behavior = $this->l('One after another'); - - // render fields - $html .= ' - '.Tools::htmlentitiesUTF8($country_name).' - '.Tools::htmlentitiesUTF8($state_name).' - '.Tools::htmlentitiesUTF8($zipcodes).' - '.Tools::htmlentitiesUTF8($behavior).' - '.Tools::htmlentitiesUTF8($tax).' - '.Tools::htmlentitiesUTF8($tax_rule['description']).' - - - '.$this->l('Edit').' - - - '.$this->l('Delete').' - - - - '; - } - } - - return $html; - } - - /** - * @param boolean $firstCall - */ - public function displayForm($firstCall = true) - { - if (!($obj = $this->loadObject(true))) - return; - - parent::displayForm(); - $this->displayRuleGroupForm(); - $this->displayJS(); - - // display tax rules only if the group has already been created - if ($obj->id) - { - echo '
'; - $this->displayTaxRulesErrors(); - $this->displayRuleForm($obj->id); - $this->displayRulesList($obj->id); - } - } -} -