public function onPreSetData(FormEvent $event)
 {
     $form = $event->getForm();
     if ($this->account->isRothIraType() || $this->account->isTraditionalIraType()) {
         $form->add($this->factory->createNamed('distribution_method', 'choice', null, array('choices' => Distribution::getDistributionMethodChoices(), 'expanded' => true, 'multiple' => false, 'required' => false)))->add($this->factory->createNamed('federal_withholding', 'choice', null, array('choices' => Distribution::getFederalWithholdingChoices(), 'expanded' => true, 'multiple' => false, 'required' => false)))->add($this->factory->createNamed('state_withholding', 'choice', null, array('choices' => Distribution::getStateWithholdingChoices(), 'expanded' => true, 'multiple' => false, 'required' => false)))->add($this->factory->createNamed('federal_withhold_percent', 'percent', null, array('required' => false)))->add($this->factory->createNamed('federal_withhold_money', 'number', null, array('precision' => 2, 'grouping' => true, 'required' => false)))->add($this->factory->createNamed('state_withhold_percent', 'percent', null, array('required' => false)))->add($this->factory->createNamed('state_withhold_money', 'number', null, array('precision' => 2, 'grouping' => true, 'required' => false)))->add($this->factory->createNamed('residenceState', 'entity', null, array('class' => 'WealthbotAdminBundle:State', 'label' => 'State', 'empty_value' => 'Select a State', 'required' => false)));
     }
 }
 /**
  * Validate state_withholding and child fields
  */
 private function validateStateWithholding()
 {
     if ($this->form->has('state_withholding')) {
         $stateWithholding = $this->data->getStateWithholding();
         if (!in_array($stateWithholding, array_keys(Distribution::getStateWithholdingChoices()))) {
             $this->form->get('state_withholding')->addError(new FormError('Choose an option.'));
         } elseif ($stateWithholding == Distribution::STATE_WITHHOLDING_TAXES) {
             $percentRate = $this->data->getStateWithholdPercent();
             $moneyRate = $this->data->getStateWithholdMoney();
             if (!is_numeric($percentRate) && !is_numeric($moneyRate)) {
                 $this->form->get('state_withholding')->addError(new FormError('Please enter withhold taxes rate.'));
             } elseif (is_numeric($percentRate) && is_numeric($moneyRate)) {
                 $this->form->get('state_withholding')->addError(new FormError('Please enter percent or money withhold taxes rate.'));
             }
             $this->data->setResidenceState(null);
         } elseif ($stateWithholding == Distribution::STATE_WITHHOLDING_RESIDENCE_STATE && !$this->data->getResidenceState()) {
             $this->form->get('residenceState')->addError(new FormError('Choose an option.'));
             $this->data->setStateWithholdPercent(null);
             $this->data->setStateWithholdMoney(null);
         } else {
             $this->data->setStateWithholdPercent(null);
             $this->data->setStateWithholdMoney(null);
             $this->data->setResidenceState(null);
         }
     }
 }