/** * 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(); }
/** * Send an email to the hiring manager informing of approval for hiring the applicant. * * @param JobApplication $jobApplication Job Application object * @param JobApplicationEvent $jobApplicationEvent Job Application Event object * * @return boolean True if mail sent, false otherwise */ public function sendApprovalToHiringManager($jobApplication, $jobApplicationEvent) { $vacancy = JobVacancy::getJobVacancy($jobApplication->getVacancyId()); $managerId = $vacancy->getManagerId(); $email = $this->_getEmpAddress($managerId); $empName = $this->_getEmpName($managerId); $fromName = $jobApplicationEvent->getCreatorName(); $subject = $this->_getTemplate(self::SUBJECT_DIRECTOR_APPROVE); $body = $this->_getTemplate(self::TEMPLATE_DIRECTOR_APPROVE); // Replace placeholders in subject and body $search = array(self::VARIABLE_JOB_TITLE, self::VARIABLE_TO, self::VARIABLE_APPLICANT_FIRSTNAME, self::VARIABLE_APPLICANT_MIDDLENAME, self::VARIABLE_APPLICANT_LASTNAME, self::VARIABLE_APPLICANT_STREET1, self::VARIABLE_APPLICANT_STREET2, self::VARIABLE_APPLICANT_CITY, self::VARIABLE_APPLICANT_PROVINCE, self::VARIABLE_APPLICANT_ZIP, self::VARIABLE_APPLICANT_COUNTRY, self::VARIABLE_APPLICANT_PHONE, self::VARIABLE_APPLICANT_MOBILE, self::VARIABLE_APPLICANT_EMAIL, self::VARIABLE_APPLICANT_QUALIFICATIONS, self::VARIABLE_APPROVE_NOTES, self::VARIABLE_FROM); $country = $this->_getCountryName($jobApplication->getCountry()); $replace = array($vacancy->getJobTitleName(), $empName['first'], $jobApplication->getFirstName(), $jobApplication->getMiddleName(), $jobApplication->getLastName(), $jobApplication->getStreet1(), $jobApplication->getStreet2(), $jobApplication->getCity(), $jobApplication->getProvince(), $jobApplication->getZip(), $country, $jobApplication->getPhone(), $jobApplication->getMobile(), $jobApplication->getEmail(), $jobApplication->getQualifications(), $jobApplicationEvent->getNotes(), $fromName); $subject = str_replace($search, $replace, $subject); $body = str_replace($search, $replace, $body); /* Add tasks */ $attachments = array(); $creatorName = $fromName; $creatorEmail = $jobApplicationEvent->getCreatorEmail(); $applicantName = $jobApplication->getFirstName() . ' ' . $jobApplication->getLastName(); $applicantEmail = $jobApplication->getEmail(); // Event time in 5 days $startTime = strtotime("+5 day", time()); foreach ($this->onHireTasks as $task) { /* Create task */ $summary = $task . "({$applicantName})"; $description = $summary; $eventTime = date(LocaleUtil::STANDARD_TIMESTAMP_FORMAT, $startTime); // Next event in 1 hour $startTime = $startTime + 3600; $message = $this->_getTask($task, $description, $creatorName, $creatorEmail, $applicantName, $applicantEmail, $eventTime); $mailer = $this->_getMailer(); $attachment = $mailer->createAttachment($message); $attachment->type = 'text/calendar'; $attachment->filename = "{$task}.ics"; $attachments[] = $attachment; } $notificationType = EmailNotificationConfiguration::EMAILNOTIFICATIONCONFIGURATION_NOTIFICATION_TYPE_HIRE_APPROVED; return $this->_sendMail($email, $subject, $body, $notificationType, $attachments); }