private function saveTaxRates(Tax $tax) { $zones = DeliveryZone::getAll(); $zones->add(DeliveryZone::getDefaultZoneInstance()); $classes = TaxClass::getAllClasses(); ActiveRecord::beginTransaction(); foreach ($zones as $zone) { // delete all zone tax rates $taxRates = $zone->getTaxRates(); foreach ($taxRates as $rate) { if ($rate->taxID->get()->getID() == $tax->getID()) { $rate->delete(); } } $this->saveRate($zone, $tax); foreach ($classes as $class) { $this->saveRate($zone, $tax, $class); } } ActiveRecord::commit(); }
private function getFieldName(Tax $tax, TaxClass $class = null) { $classID = $class ? $class->getID() : ''; return 'tax_' . $tax->getID() . '_' . $classID; }