public function tax_class() { $items = Mage::getModel('tax/class')->getCollection()->getItems(); foreach ($items as $item) { $item->delete(); } $this->conn->query('ALTER TABLE `tax_class` AUTO_INCREMENT=1'); foreach ($this->objects['tax_class'] as $item) { $model = new Mage_Tax_Model_Class(); foreach ($item as $key => $value) { $model->setData($key, $value); } try { $model->save(); } catch (Exception $e) { mage::d($e->getMessage()); } } }
/** * Check if customer tax class exists and has not been used yet (in Tax Rules or Customer Groups) * * @param Mage_Tax_Model_Class $classModel * @throws Mage_Core_Exception */ protected function _checkTaxClassUsage(Mage_Tax_Model_Class $classModel) { if (!$classModel->getId()) { Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('This class no longer exists.')); } $ruleCollection = Mage::getModel('Mage_Tax_Model_Calculation_Rule')->getCollection()->setClassTypeFilter($classModel->getClassType(), $classModel->getId()); if ($ruleCollection->getSize() > 0) { Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('You cannot delete this tax class as it is used in Tax Rules. You have to delete the rules it is used in first.')); } $customerGroupCollection = Mage::getModel('Mage_Customer_Model_Group')->getCollection()->addFieldToFilter('tax_class_id', $classModel->getId()); $groupCount = $customerGroupCollection->getSize(); if ($groupCount > 0) { Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('You cannot delete this tax class as it is used for %d customer groups.', $groupCount)); } }
/** * Get all possible options for specified class name (customer|product) * * @param string $classFilter * @return array */ public function getAllOptionsForClass($classFilter) { $classes = $this->_taxClass->getCollection()->setClassTypeFilter($classFilter)->toOptionArray(); return $classes; }
/** * Check if product tax class exists and has not been used yet (in Tax Rules or Products) * * @param Mage_Tax_Model_Class $classModel */ protected function _checkProductTaxClassUsage(Mage_Tax_Model_Class $classModel) { if (!$classModel->getId() || $classModel->getClassType() != Mage_Tax_Model_Class::TAX_CLASS_TYPE_PRODUCT) { Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('This class no longer exists.')); } $ruleCollection = Mage::getModel('Mage_Tax_Model_Calculation_Rule')->getCollection()->setClassTypeFilter(Mage_Tax_Model_Class::TAX_CLASS_TYPE_PRODUCT, $classModel->getId()); if ($ruleCollection->getSize() > 0) { Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('You cannot delete this tax class as it is used in Tax Rules. You have to delete the rules it is used in first.')); } $productCollection = Mage::getModel('Mage_Catalog_Model_Product')->getCollection()->addAttributeToFilter('tax_class_id', $classModel->getId()); $productCount = $productCollection->getSize(); if ($productCount > 0) { Mage::throwException(Mage::helper('Mage_Tax_Helper_Data')->__('You cannot delete this tax class as it is used for %d products.', $productCount)); } }