protected function _prepareForm() { $rateId = (int) $this->getRequest()->getParam('rate'); $rateObject = new Varien_Object(); $rateModel = Mage::getSingleton('tax/rate'); $rateObject->setData($rateModel->getData()); $form = new Varien_Data_Form(); $countries = Mage::getModel('adminhtml/system_config_source_country')->toOptionArray(); unset($countries[0]); $regionCollection = Mage::getModel('directory/region')->getCollection()->addCountryFilter($rateModel->getTaxCountryId()); $regions = $regionCollection->toOptionArray(); if ($regions) { $regions[0]['label'] = '*'; } else { $regions = array(array('value' => '', 'label' => '*')); } $fieldset = $form->addFieldset('base_fieldset', array('legend' => Mage::helper('tax')->__('Tax Rate Information'))); if ($rateObject->getTaxRateId() > 0) { $fieldset->addField('tax_rate_id', 'hidden', array('name' => "tax_rate_id", 'value' => $rateObject->getTaxRateId())); } $countryId = $rateObject->getTaxCountryId(); if (!$countryId) { $countryId = Mage::getStoreConfig('general/country/default'); } $fieldset->addField('tax_country_id', 'select', array('name' => 'tax_country_id', 'label' => Mage::helper('tax')->__('Country'), 'title' => Mage::helper('tax')->__('Please select Country'), 'class' => 'required-entry', 'required' => true, 'values' => $countries, 'value' => $countryId)); $fieldset->addField('tax_region_id', 'select', array('name' => 'tax_region_id', 'label' => Mage::helper('tax')->__('State'), 'title' => Mage::helper('tax')->__('Please select State'), 'class' => 'required-entry', 'required' => true, 'values' => $regions, 'value' => $rateObject->getTaxRegionId())); /* FIXME!!! {* $fieldset->addField('tax_county_id', 'select', array( 'name' => 'tax_county_id', 'label' => Mage::helper('tax')->__('County'), 'title' => Mage::helper('tax')->__('Please select County'), 'values' => array( array( 'label' => '*', 'value' => '' ) ), 'value' => $rateObject->getTaxCountyId() ) ); } */ $postcode = $rateObject->getTaxCountryId(); if (!$postcode) { $postcode = '*'; } $fieldset->addField('tax_postcode', 'text', array('name' => 'tax_postcode', 'label' => Mage::helper('tax')->__('Zip/Post Code'), 'value' => $postcode)); $rateTypeCollection = Mage::getModel('tax/rate_type')->getCollection()->load(); foreach ($rateTypeCollection as $rateType) { if ($rateModel->getId()) { $value = 1 * $rateModel->getRateDataCollection()->getItemByRateAndType($rateModel->getId(), $rateType->getTypeId())->getRateValue(); } else { $value = '0.0000'; } $value = number_format($value, 4); $fieldset->addField('rate_data_' . $rateType->getTypeId(), 'text', array('name' => "rate_data[{$rateType->getTypeId()}]", 'label' => $rateType->getTypeName(), 'title' => $rateType->getTypeName(), 'value' => $value, 'class' => 'validate-not-negative-number')); } $form->setAction($this->getUrl('*/tax_rate/save')); $form->setUseContainer(true); $form->setId('rate_form'); $form->setMethod('post'); $this->setForm($form); return parent::_prepareForm(); }