/** * 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)); } }
/** * 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)); } }