示例#1
0
 /**
  * Send a leave request email to the employee that requested the leave
  * The method will check if the leave request was accepted or rejected 
  * before sending the e-mail
  * @param int $id Leave request identifier
  * @author Benjamin BALET <*****@*****.**>
  */
 private function sendMail($id)
 {
     $this->load->model('users_model');
     $this->load->model('organization_model');
     $leave = $this->leaves_model->getLeaves($id);
     $employee = $this->users_model->getUsers($leave['employee']);
     $supervisor = $this->organization_model->getSupervisor($employee['organization']);
     //Send an e-mail to the employee
     $this->load->library('email');
     $this->load->library('polyglot');
     $usr_lang = $this->polyglot->code2language($employee['language']);
     //We need to instance an different object as the languages of connected user may differ from the UI lang
     $lang_mail = new CI_Lang();
     $lang_mail->load('email', $usr_lang);
     $lang_mail->load('global', $usr_lang);
     $date = new DateTime($leave['startdate']);
     $startdate = $date->format($lang_mail->line('global_date_format'));
     $date = new DateTime($leave['enddate']);
     $enddate = $date->format($lang_mail->line('global_date_format'));
     $this->load->library('parser');
     $data = array('Title' => $lang_mail->line('email_leave_request_validation_title'), 'Firstname' => $employee['firstname'], 'Lastname' => $employee['lastname'], 'StartDate' => $startdate, 'EndDate' => $enddate, 'StartDateType' => $lang_mail->line($leave['startdatetype']), 'EndDateType' => $lang_mail->line($leave['enddatetype']), 'Cause' => $leave['cause'], 'Type' => $leave['type_name']);
     if ($leave['status'] == 3) {
         //accepted
         $message = $this->parser->parse('emails/' . $employee['language'] . '/request_accepted', $data, TRUE);
         $subject = $lang_mail->line('email_leave_request_accept_subject');
     } else {
         //rejected
         $message = $this->parser->parse('emails/' . $employee['language'] . '/request_rejected', $data, TRUE);
         $subject = $lang_mail->line('email_leave_request_reject_subject');
     }
     sendMailByWrapper($this, $subject, $message, $employee['email'], is_null($supervisor) ? NULL : $supervisor->email);
 }
示例#2
0
 private function sendMail($id)
 {
     $this->load->model('users_model');
     $this->load->model('organization_model');
     $extra = $this->overtime_model->getExtras($id);
     $employee = $this->users_model->getUsers($extra['employee']);
     $supervisor = $this->organization_model->getSupervisor($employee['organization']);
     $this->load->library('email');
     $this->load->library('polyglot');
     $usr_lang = $this->polyglot->code2language($employee['language']);
     $lang_mail = new CI_Lang();
     $lang_mail->load('email', $usr_lang);
     $lang_mail->load('global', $usr_lang);
     $date = new DateTime($extra['date']);
     $startdate = $date->format($lang_mail->line('global_date_format'));
     $this->load->library('parser');
     $data = array('Title' => $lang_mail->line('email_overtime_request_validation_title'), 'Firstname' => $employee['firstname'], 'Lastname' => $employee['lastname'], 'Date' => $startdate, 'Duration' => $extra['duration'], 'Cause' => $extra['cause']);
     if ($extra['status'] == 3) {
         $message = $this->parser->parse('emails/' . $employee['language'] . '/overtime_accepted', $data, TRUE);
         $subject = $lang_mail->line('email_overtime_request_accept_subject');
     } else {
         $message = $this->parser->parse('emails/' . $employee['language'] . '/overtime_rejected', $data, TRUE);
         $subject = $lang_mail->line('email_overtime_request_reject_subject');
     }
     sendMailByWrapper($this, $subject, $message, $employee['email'], is_null($supervisor) ? NULL : $supervisor->email);
 }
示例#3
0
 public function forgetpassword()
 {
     $this->output->set_content_type('text/plain');
     $login = $this->input->post('login');
     $this->load->model('users_model');
     $user = $this->users_model->getUserByLogin($login);
     if (is_null($user)) {
         echo "UNKNOWN";
     } else {
         $lang_mail = new CI_Lang();
         $usr_lang = $this->polyglot->code2language($user->language);
         $lang_mail->load('email', $usr_lang);
         $lang_mail->load('global', $usr_lang);
         $password = $this->users_model->resetClearPassword($user->id);
         $this->load->library('parser');
         $data = array('Title' => $lang_mail->line('email_password_forgotten_title'), 'BaseURL' => base_url(), 'Firstname' => $user->firstname, 'Lastname' => $user->lastname, 'Login' => $user->login, 'Password' => $password);
         $message = $this->parser->parse('emails/' . $user->language . '/password_forgotten', $data, TRUE);
         sendMailByWrapper($this, $lang_mail->line('email_password_forgotten_subject'), $message, $user->email);
         echo "OK";
     }
 }
示例#4
0
 /**
  * Ajax : Send the password by e-mail to a user requesting it
  * POST: string login Login of the user
  * RETURN: UNKNOWN if the login was not found, OK otherwise
  * @author Benjamin BALET <*****@*****.**>
  */
 public function forgetpassword()
 {
     $this->output->set_content_type('text/plain');
     $login = $this->input->post('login');
     $this->load->model('users_model');
     $user = $this->users_model->getUserByLogin($login);
     if (is_null($user)) {
         echo "UNKNOWN";
     } else {
         //We need to instance an different object as the languages of connected user may differ from the UI lang
         $lang_mail = new CI_Lang();
         $usr_lang = $this->polyglot->code2language($user->language);
         $lang_mail->load('email', $usr_lang);
         $lang_mail->load('global', $usr_lang);
         //Generate random password and store its hash into db
         $password = $this->users_model->resetClearPassword($user->id);
         //Prepare the e-mail content by parsing a view
         $this->load->library('parser');
         $data = array('Title' => $lang_mail->line('email_password_forgotten_title'), 'BaseURL' => base_url(), 'Firstname' => $user->firstname, 'Lastname' => $user->lastname, 'Login' => $user->login, 'Password' => $password);
         $message = $this->parser->parse('emails/' . $user->language . '/password_forgotten', $data, TRUE);
         //Send the e-mail
         sendMailByWrapper($this, $lang_mail->line('email_password_forgotten_subject'), $message, $user->email);
         //Tell to the frontend that we've found the login and sent the email
         echo "OK";
     }
 }
示例#5
0
 /**
  * Send a overtime request email to the manager of the connected employee
  * @param int $id overtime request identifier
  * @author Benjamin BALET <*****@*****.**>
  */
 private function sendMail($id)
 {
     $this->load->model('users_model');
     $this->load->model('delegations_model');
     $extra = $this->overtime_model->getExtras($id);
     $user = $this->users_model->getUsers($extra['employee']);
     $manager = $this->users_model->getUsers($user['manager']);
     //Test if the manager hasn't been deleted meanwhile
     if (empty($manager['email'])) {
         $this->session->set_flashdata('msg', lang('extra_create_msg_error'));
     } else {
         $acceptUrl = base_url() . 'overtime/accept/' . $id;
         $rejectUrl = base_url() . 'overtime/reject/' . $id;
         //Send an e-mail to the manager
         $this->load->library('email');
         $this->load->library('polyglot');
         $usr_lang = $this->polyglot->code2language($manager['language']);
         //We need to instance an different object as the languages of connected user may differ from the UI lang
         $lang_mail = new CI_Lang();
         $lang_mail->load('email', $usr_lang);
         $lang_mail->load('global', $usr_lang);
         $date = new DateTime($this->input->post('date'));
         $startdate = $date->format($lang_mail->line('global_date_format'));
         $this->load->library('parser');
         $data = array('Title' => $lang_mail->line('email_extra_request_validation_title'), 'Firstname' => $user['firstname'], 'Lastname' => $user['lastname'], 'Date' => $startdate, 'Duration' => $this->input->post('duration'), 'Cause' => $this->input->post('cause'), 'UrlAccept' => $acceptUrl, 'UrlReject' => $rejectUrl);
         $message = $this->parser->parse('emails/' . $manager['language'] . '/overtime', $data, TRUE);
         //Copy to the delegates, if any
         $delegates = $this->delegations_model->listMailsOfDelegates($manager['id']);
         $subject = $lang_mail->line('email_extra_request_reject_subject') . ' ' . $user['firstname'] . ' ' . $user['lastname'];
         sendMailByWrapper($this, $subject, $message, $manager['email'], $delegates);
     }
 }