/**
  * Create an employee based on a job application.
  *
  * @param JobApplication $jobApplication Job Application to create the employee from.
  * @throws RecruitmentControllerException if there is an error when creating employee
  */
 public function createEmployeeFromApplication($jobApplication)
 {
     $empInfo = new EmpInfo();
     // main information
     $employeeId = $empInfo->getLastId();
     $empInfo->setEmployeeId($employeeId);
     $empInfo->setEmpLastName($jobApplication->getLastName());
     $empInfo->setEmpFirstName($jobApplication->getFirstName());
     $empInfo->setEmpMiddleName($jobApplication->getMiddleName());
     $result = $empInfo->addEmpMain();
     // contact information
     $empInfo->setEmpStreet1($jobApplication->getStreet1());
     $empInfo->setEmpStreet2($jobApplication->getStreet2());
     $empInfo->setEmpCity($jobApplication->getCity());
     $empInfo->setEmpProvince($jobApplication->getProvince());
     $empInfo->setEmpCountry($jobApplication->getCountry());
     $empInfo->setEmpZipCode($jobApplication->getZip());
     $empInfo->setEmpHomeTelephone($jobApplication->getPhone());
     $empInfo->setEmpMobile($jobApplication->getMobile());
     $empInfo->setEmpOtherEmail($jobApplication->getEmail());
     $result = $empInfo->updateEmpContact();
     // job information
     $vacancy = JobVacancy::getJobVacancy($jobApplication->getVacancyId());
     $empInfo->setEmpJobTitle($vacancy->getJobTitleCode());
     $empInfo->setEmpStatus(0);
     $empInfo->setEmpEEOCat(0);
     $empInfo->setEmpJoinedDate("null");
     $empInfo->setEmpTerminatedDate("null");
     $result = $empInfo->updateEmpJobInfo();
     return $empInfo->getEmpId();
 }