public function changeProfileValidate(FormEvent $event) { /** @var UserAccountOwnerAdapter $data */ $data = $event->getData(); $form = $event->getForm(); if ($form->has('spouse') && $data->getMaritalStatus() === Profile::CLIENT_MARITAL_STATUS_MARRIED) { $spouseValidator = new ClientSpouseFormValidator($form->get('spouse'), $data->getSpouse()); $spouseValidator->validate(); } $phoneDigits = 10; $phoneNum = str_replace(array(' ', '-', '(', ')'), '', $data->getPhoneNumber()); if ($form->has('phone_number') && !is_numeric($phoneNum)) { $form->get('phone_number')->addError(new FormError("Enter correct phone number.")); } elseif ($form->has('phone_number') && strlen($phoneNum) != $phoneDigits) { $form->get('phone_number')->addError(new FormError("Phone number must be {$phoneDigits} digits.")); } if ($form->has('email')) { if (!filter_var($data->getEmail(), FILTER_VALIDATE_EMAIL)) { $form->get('email')->addError(new FormError("Invalid email address.")); } $exist = $this->em->getRepository('WealthbotUserBundle:User')->findOneBy(array('email' => $data->getEmail())); if ($exist && $exist->getId() != $data->getId()) { $form->get('email')->addError(new FormError("Email address already exist.")); } } }
public function validate(FormEvent $event) { /** @var \Wealthbot\UserBundle\Entity\Profile $data */ $data = $event->getData(); $form = $event->getForm(); if ($form->has('first_name') && !$data->getFirstName()) { $form->get('first_name')->addError(new FormError('Required.')); } if ($form->has('last_name') && !$data->getLastName()) { $form->get('last_name')->addError(new FormError('Required.')); } if ($form->has('street') && !$data->getStreet()) { $form->get('street')->addError(new FormError('Required.')); } if ($form->has('city') && !$data->getCity()) { $form->get('city')->addError(new FormError('Required.')); } if ($form->has('state') && !$data->getState()) { $form->get('state')->addError(new FormError('Required.')); } if ($form->has('estimated_income_tax') && !$data->getEstimatedIncomeTax()) { $form->get('estimated_income_tax')->addError(new FormError('Required.')); } // Choices validation if ($form->has('marital_status') && !in_array($data->getMaritalStatus(), Profile::getMaritalStatusChoices())) { $form->get('marital_status')->addError(new FormError('Required.')); } if ($form->has('annual_income') && !in_array($data->getAnnualIncome(), Profile::getAnnualIncomeChoices())) { $form->get('annual_income')->addError(new FormError('Required.')); } if ($form->has('liquid_net_worth') && !in_array($data->getLiquidNetWorth(), array_keys(Profile::getLiquidNetWorthChoices()))) { $form->get('liquid_net_worth')->addError(new FormError('Required.')); } if ($form->has('employment_type') && !in_array($data->getEmploymentType(), array_keys(Profile::getEmploymentTypeChoices()))) { $form->get('employment_type')->addError(new FormError('Required.')); } if ($form->has('birth_date')) { $birthDateData = $form->get('birth_date')->getData(); if ($birthDateData && $birthDateData instanceof \DateTime) { $year = (int) $birthDateData->format('Y'); if ($year < 1900) { $form->get('birth_date')->addError(new FormError('year must start with 19 or 20 e.g. 1980')); } } else { $form->get('birth_date')->addError(new FormError('date format must be MM-DD-YYYY')); } } if ($form->has('spouse') && $data->getMaritalStatus() === Profile::CLIENT_MARITAL_STATUS_MARRIED) { /** @var ClientAdditionalContact $spouse */ $spouse = $form->get('spouse')->getData(); $phoneNum = str_replace(array(' ', '-', '(', ')'), '', $data->getPhoneNumber()); $spouseValidator = new ClientSpouseFormValidator($form->get('spouse'), $data->getUser()->getSpouse()); $spouseValidator->validate(); $spouse->setSpouseFirstName($data->getFirstName()); $spouse->setSpouseMiddleName($data->getMiddleName()); $spouse->setSpouseLastName($data->getLastName()); $spouse->setSpouseBirthDate($data->getBirthDate()); $spouse->setState($data->getState()); $spouse->setCity($data->getCity()); $spouse->setStreet($data->getStreet()); $spouse->setZip($data->getZip()); $spouse->setPhoneNumber($phoneNum); $spouse->setType(ClientAdditionalContact::TYPE_SPOUSE); $spouse->setMaritalStatus(Profile::CLIENT_MARITAL_STATUS_MARRIED); } }