public function indexAction() { $have_integrate = 0; $is_integrate = ""; $user = Rp_User::getInstance(); $user_id = $user->getPersonId(); $integrated = new Rp_Db_View_IntegratedPersons(); $refer_id = $integrated->fetchRefID($user_id); // if (($user_id >= 90000000) OR (count($refer_id) > 0)) // if ($user_id >= 90000000) switch ($user->persg) { case 2: case 3: case 7: case 8: case 'S': $have_integrate = 1; $is_integrate = "—овместитель"; break; default: if (count($refer_id) > 0) { $have_integrate = 1; } break; } $view = $this->initView(); $view->title = Rp::getTitle(); $view->have_integrate = $have_integrate; $view->is_integrate = $is_integrate; }
public function indexAction() { $request = $this->getRequest(); $taskId = $request->getParam('taskid'); $is_personal = $request->getParam('is_personal', 0); $tasks = new Rp_Db_Table_Ach_Tasks(); $task = $tasks->find($taskId)->current(); $notes = new Rp_Db_Table_Ach_Tasks_Notes(); switch ($is_personal) { case 0: $note = $notes->fetchTaskNotes($task->id); break; case 1: $note = $notes->fetchPersonalManagerNotes($task->id); break; default: $note = $notes->fetchTaskNotes($task->id); break; } //$note = $notes->fetchTaskNotes($task->id); $view = $this->initView(); $view->title = Rp::getTitle('Заметки к бизнес-цели #' . $task->id); $view->task = $task; $view->is_personal = $is_personal; $view->notes = $note; }
public function indexAction() { $personId = $this->_getParam('personid', null); $persons = new Rp_Db_View_Persons(); $person = $persons->find($personId)->current(); $view = $this->initView(); $view->title = Rp::getTitle(array($person->fullname, 'Карточка сотрудника')); $view->person = $person; }
public function indexAction() { $request = $this->getRequest(); $cards = new Rp_Db_Table_Ach_Cards(); $id = $request->getParam('id', null); if ($id !== null) { $card = $cards->find($id)->current(); if (empty($card)) { throw new Exception('Карточка достижений с указанным идентификатором не найдена.'); } } else { $personId = $request->getParam('personid', null); $period = $request->getParam('period', date('Y')); $card = $cards->findByPersonIdAndPeriod($personId, $period); } $user = Rp_User::getInstance(); $emp = $card->getEmployee(); $person = $emp->getPerson(); $periods = range(2006, date('Y') + 1); $periods = array_combine($periods, $periods); $statuses = new Rp_Db_Table_Ach_Cards_Statuses(); $status = $statuses->find($card->status_id)->current(); $months = new Rp_Db_Table_Months(); $ratings = new Rp_Db_Table_Ach_Ratings(); $trainsGroupsMethods = new Rp_Db_Table_Ach_Trainings_GroupsMethods(); $trainsRespons = new Rp_Db_Table_Ach_Trainings_Respons(); $careerFlags = new Rp_Db_Table_Ach_Cards_CareerFlags(); $view = $this->initView(); $view->title = Rp::getTitle(array($person->fullname, "Карточка достижений {$card->period}")); $view->emp = $emp; $view->person = $person; $view->user = $user; $view->userRole = $this->_getUserRole($card, $user); $view->card = $card; $view->periods = $periods; $view->status = $status; $view->tasks = $card->fetchTasks(); $view->personalTasks = $card->fetchPersonalTasks(); $view->competences = $card->fetchCompetences(); $view->personalCompetences = $card->fetchPersonalCompetences(); $view->trainings = $card->fetchTrainings(); $view->personalTrainings = $card->fetchPersonalTrainings(); $view->approvals = new Achievs_ApprovalsModel($card); $view->months = $months->fetchNames(); $view->ratings = $ratings->fetchNames(); $view->rate_weights = $ratings->fetchWeights(); $view->rate_name_weights = $ratings->fetchNameWeights(); $view->trainsGroupsMethods = $trainsGroupsMethods->toArrayNames(); $view->trainsGroupsMethodsActual = $trainsGroupsMethods->toArrayNamesWithoutDisabled(); $view->trainsRespons = $trainsRespons->fetchNames(); $view->careerFlags = $careerFlags->fetchNames(); $view->count_func = count($emp->getFuncManagers()->getCol('person_id')); $view->emails = $this->_getEmails($card, $user); $view->tab = isset($_SESSION['tab']) ? $_SESSION['tab'] : 'tasks'; }
public function indexAction() { $request = $this->getRequest(); $trainId = $request->getParam('trainId'); $trainings = new Rp_Db_Table_Ach_Trainings(); $training = $trainings->find($trainId)->current(); $view = $this->initView(); $view->title = Rp::getTitle('Заметки к цели проф. развития #' . $training->id); $view->training = $training; $view->notes = $training->fetchNotes(); }
public function indexAction() { $ratePeriod = 2007; $planPeriod = 2008; $db = Rp::getDbAdapter(); $sql = "\r\n\t\t\tSELECT\r\n\t\t\t\tpersons.id,\r\n\t\t\t\tpersons.fullname,\r\n\t\t\t\tcompanies.name AS company,\r\n\t\t\t\tappointments.name AS appointment,\r\n\t\t\t\tdepartments.name AS department,\r\n\t\t\t\trate_mng_date = CASE WHEN cards_rate.rate_mng_status IS NULL THEN 'нет' \r\n\t\t\t\t\tELSE CONVERT(varchar(255), cards_rate.rate_mng_date, 104) END,\r\n\t\t\t\trate_emp_date = CASE WHEN cards_rate.rate_emp_status IS NULL THEN 'нет' \r\n\t\t\t\t\tWHEN cards_rate.rate_emp_status = 0 THEN 'несогласен'\r\n\t\t\t\t\tELSE CONVERT(varchar(255), cards_rate.rate_emp_date, 104) END,\r\n\t\t\t\trate_hmg_date = CASE WHEN cards_rate.rate_hmg_status IS NULL THEN 'нет' \r\n\t\t\t\t\tWHEN cards_rate.rate_hmg_status = 0 THEN 'несогласен'\r\n\t\t\t\t\tELSE CONVERT(varchar(255), cards_rate.rate_hmg_date, 104) END,\r\n\t\t\t\tratings.name AS rtg_total,\r\n\t\t\t\tplan_mng_date = CASE WHEN cards_plan.plan_mng_status IS NULL THEN 'нет' \r\n\t\t\t\t\tELSE CONVERT(varchar(255), cards_plan.plan_mng_date, 104) END,\r\n\t\t\t\tplan_emp_date = CASE WHEN cards_plan.plan_emp_status IS NULL THEN 'нет' \r\n\t\t\t\t\tWHEN cards_plan.plan_emp_status = 0 THEN 'несогласен'\r\n\t\t\t\t\tELSE CONVERT(varchar(255), cards_plan.plan_emp_date, 104) END,\r\n\t\t\t\tplan_hmg_date = CASE WHEN cards_plan.plan_hmg_status IS NULL THEN 'нет' \r\n\t\t\t\t\tWHEN cards_plan.plan_hmg_status = 0 THEN 'несогласен'\r\n\t\t\t\t\tELSE CONVERT(varchar(255), cards_plan.plan_hmg_date, 104) END,\r\n\t\t\t\tdbo.user_func_rp_department_path(employees.department_id, DEFAULT) AS department_path,\r\n\t\t\t\tdbo.user_func_rp_tree_post_persons(posts_employees.post_pid, ', ', '; ') AS managers\r\n\t\t\tFROM\r\n\t\t\t\tuser_rp_tree_posts_employees_PM posts_employees\r\n\t\t\t\tINNER JOIN user_rp_persons_PM persons\r\n\t\t\t\t\tON posts_employees.person_id = persons.id\r\n\t\t\t\tINNER JOIN user_rp_employees_PM employees\r\n\t\t\t\t\tON persons.id = employees.person_id\r\n\t\t\t\tLEFT JOIN user_rp_companies companies\r\n\t\t\t\t\tON employees.company_id = companies.id\r\n\t\t\t\tLEFT JOIN user_rp_departments departments\r\n\t\t\t\t\tON employees.department_id = departments.id\r\n\t\t\t\tLEFT JOIN user_rp_appointments appointments\r\n\t\t\t\t\tON employees.appointment_id = appointments.id\r\n\t\t\t\tLEFT JOIN user_rp_ach_cards cards_rate\r\n\t\t\t\t\tON persons.id = cards_rate.person_id AND cards_rate.period = {$ratePeriod}\r\n\t\t\t\tLEFT JOIN user_rp_ach_cards cards_plan\r\n\t\t\t\t\tON persons.id = cards_plan.person_id AND cards_plan.period = {$planPeriod}\r\n\t\t\t\tLEFT JOIN user_rp_ach_ratings ratings\r\n\t\t\t\t\tON cards_rate.rtg_total_id = ratings.id\r\n\t\t\tORDER BY\r\n\t\t\t\tpersons.fullname\r\n\t\t"; $view = $this->initView(); $view->title = Rp::getTitle('—водный отчет по сотрудникам'); $view->rows = $db->fetchAll($sql); $view->ratePeriod = $ratePeriod; $view->planPeriod = $planPeriod; }
public function indexAction() { $request = $this->getRequest(); $authtype = Rp_Auth_Adapter_DbTable::AUTH_TRANSPARENT; $username = basename($request->getServer('AUTH_USER', NULL)); $password = ''; if ($_POST or isset($_GET['force_auth'])) { $authtype = Rp_Auth_Adapter_DbTable::AUTH_FORM; $username = $request->getPost('username', NULL); $password = $request->getPost('password', NULL); } $message = ''; if ($username) { try { $auth = Zend_Auth::getInstance(); $adapter = new Rp_Auth_Adapter_DbTable($username, $password, $authtype); $result = $auth->authenticate($adapter); if ($result->isValid()) { $row = $adapter->getResultRowObject('id'); Rp_User::setInstance($row->id); $user = Rp_User::getInstance(); $appointments = new Rp_Db_View_Appointments(); $log = new Rp_Db_Table_Logon(); if (!isset($_SESSION['user_id'])) { $logon = array(); $logon['session_id'] = session_id(); $logon['user_id'] = $user->getPerson()->id; $logon['userfullname'] = $user->getPerson()->fullname; $logon['userpost'] = current($appointments->fetchNames($user->getEmployee()->appointment_id)); $logon['date_logon'] = date("m.d.y H:i:s"); $logon['ip'] = $_SERVER['REMOTE_ADDR']; $logon['version'] = $_SERVER['HTTP_USER_AGENT']; $log->insert($logon); $_SESSION['user_id'] = $user->getPerson()->id; } $this->_forward('index', 'index'); return; } elseif ($result->getCode() != Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND) { $message = implode("\n", $result->getMessages()); } elseif ($authtype == Rp_Auth_Adapter_DbTable::AUTH_FORM) { $message = 'ѕользователь с указанным сочетанием логин/пароль не найден.'; } } catch (Exception $e) { $message = $e->getMessage(); } } $view = $this->initView(); $view->title = Rp::getTitle('јвторизаци¤'); $view->message = $message; }
public function errorAction() { $errors = $this->getRequest()->getParam('error_handler'); $e = isset($errors->exception) ? $errors->exception : null; $this->getResponse()->clearBody(); $view = $this->initView(); $view->title = Rp::getTitle('—ообщение об ошибке'); $view->caption = 'ќшибка'; $view->message = ''; if ($e instanceof Exception) { if (Rp::getConfig('system')->debug_mode) { $view->message = $e->__toString(); } else { $view->message = $e->getMessage(); } } }
public function indexAction() { $user = Rp_User::getInstance(); $view = $this->initView(); $view->title = Rp::getTitle('Справка'); }
public function indexAction() { set_time_limit(self::TIME_LIMIT); $logPath = './log/log_' . date('YmdHis') . '.txt'; $this->_logHandle = @fopen($logPath, 'xb'); $maxTimeCheck = time() - self::DAYS_LIMIT * 24 * 60 * 60; $maxDateCheck = date('Y-m-d H:i:s', $maxTimeCheck); /* $sql = " SELECT cards.id, cards.person_id, cards.period, cards.status_id, cards.status_date, cards.plan_emp_status, cards.plan_hmg_status, cards.plan_fnc_status, cards.rate_emp_status, cards.rate_hmg_status, cards.rate_fnc_status, persons.fullname AS emp_fullname, persons.email AS emp_email, dbo.user_func_rp_tree_post_persons_emails(tree_posts.id, ',') AS mngs_emails, dbo.user_func_rp_tree_post_persons_emails(tree_posts.pid, ',') AS hmgs_emails, dbo.user_func_rp_tree_post_persons_emails(tree_posts_func.post_func_id, ',') AS func_emails FROM user_rp_ach_cards cards INNER JOIN user_rp_persons_PM persons ON cards.person_id = persons.id INNER JOIN user_rp_tree_posts_employees_PM posts_employees ON cards.person_id = posts_employees.person_id INNER JOIN user_rp_tree_posts tree_posts ON posts_employees.post_pid = tree_posts.id LEFT JOIN user_rp_tree_posts_func tree_posts_func ON cards.person_id = tree_posts_func.person_id WHERE cards.status_id IN ('CPN', 'CRG') AND cards.status_date < '$maxDateCheck' ORDER BY cards.status_date "; */ $sql = "\r\n\t\t\tSELECT \r\n\t\t\t\tcards.id,\r\n\t\t\t\tcards.person_id,\r\n\t\t\t\tcards.period,\r\n\t\t\t\tcards.status_id,\r\n\t\t\t\tcards.status_date,\r\n\t\t\t\tcards.plan_emp_status,\r\n\t\t\t\tcards.plan_hmg_status,\r\n\t\t\t\tcards.plan_fnc_status,\r\n\t\t\t\tcards.rate_emp_status,\r\n\t\t\t\tcards.rate_hmg_status,\r\n\t\t\t\tcards.rate_fnc_status,\r\n\t\t\t\tpersons.fullname AS emp_fullname,\r\n\t\t\t\tpersons.email AS emp_email,\r\n\t\t\t\tdbo.user_func_rp_tree_post_persons_emails(tree_posts.id, ',') AS mngs_emails,\r\n\t\t\t\tdbo.user_func_rp_tree_post_persons_emails(tree_posts.pid, ',') AS hmgs_emails,\r\n\t\t\t\tdbo.user_func_rp_tree_post_persons_emails(tree_posts_func.post_func_id, ',') AS func_emails\r\n\t\t\tFROM\r\n\t\t\t\tuser_rp_ach_cards cards\r\n\t\t\t\tINNER JOIN user_rp_persons_PM persons\r\n\t\t\t\t\tON cards.person_id = persons.id\r\n\t\t\t\tINNER JOIN user_rp_tree_posts_employees_PM posts_employees\r\n\t\t\t\t\tON cards.person_id = posts_employees.person_id\r\n\t\t\t\tINNER JOIN user_rp_tree_posts tree_posts\r\n\t\t\t\t\tON posts_employees.post_pid = tree_posts.id\r\n\t\t\t\tLEFT JOIN user_rp_tree_posts_func tree_posts_func\r\n\t\t\t\t\tON cards.person_id = tree_posts_func.person_id\r\n\t\t\tWHERE\r\n\t\t\t\tcards.status_id IN ('CPN', 'CRG') AND cards.period > (YEAR(GETDATE()) - 2)\r\n\t\t\tORDER BY\r\n\t\t\t\tcards.status_date\r\n\t\t"; $db = Rp::getDbAdapter(); $rows = $db->fetchAll($sql); $ps = "\n" . "\n" . '----------------' . "\n" . 'Это письмо создано автоматически и не требует ответа.' . "\n" . 'По всем возникающим вопросам обращайтесь к HR-партнерам' . ' и специалистам по персоналу Вашего подразделения.'; foreach ($rows as $row) { if ($row['status_id'] == 'CPN') { // Согласование планирования. $message = "\n" . "Карточка достижений за {$row['period']} год (сотрудник {$row['emp_fullname']})" . " была выставлена на согласование {$row['status_date']}." . "\n" . 'На данный момент не получено согласование от' . ($row['plan_emp_status'] ? '' : ' сотрудника' . ($row['plan_hmg_status'] ? '' : ' и')) . ($row['plan_hmg_status'] ? '' : ' вышестоящего руководителя') . ($row['plan_fnc_status'] ? '' : ' , a также от функционального руководителя') . '.' . "\n" . 'Пожалуйста, предпримите меры для завершения процесса согласования карточки.' . $ps; $mails = explode(',', $row['mngs_emails']); $this->_sendMail($mails, $message); if (!$row['plan_emp_status'] && $row['emp_email']) { $message = "\n" . 'Ваша карточка достижений за ' . $row['period'] . ' год' . ' была выставлена на согласование Вашим руководителем ' . $row['status_date'] . '.' . "\n" . 'Пожалуйста, подтвердите Ваше согласие с поставленными целями и задачами.' . $ps; $this->_sendMail($row['emp_email'], $message); } if (!$row['plan_hmg_status']) { $message = "\n" . 'Карточка достижений за ' . $row['period'] . ' год' . ' (сотрудник ' . $row['emp_fullname'] . ')' . ' была выставлена руководителем на согласование ' . $row['status_date'] . '.' . "\n" . 'Пожалуйста, подтвердите Ваше согласие с поставленными целями и задачами.' . $ps; $mails = explode(',', $row['hmgs_emails']); $this->_sendMail($mails, $message); } if (!$row['plan_fnc_status']) { $message = "\n" . 'Карточка достижений за ' . $row['period'] . ' год' . ' (сотрудник ' . $row['emp_fullname'] . ')' . ' была выставлена руководителем на согласование ' . $row['status_date'] . '.' . "\n" . 'Пожалуйста, подтвердите Ваше согласие с поставленными целями и задачами.' . $ps; $mails = explode(',', $row['func_emails']); $this->_sendMail($mails, $message); } } else { if ($row['status_id'] == 'CRG') { // Согласование оценки. $message = "\n" . "Карточка достижений за {$row['period']} год (сотрудник {$row['emp_fullname']})" . " была выставлена на согласование {$row['status_date']}." . "\n" . 'На данный момент не получено согласование от' . ($row['rate_emp_status'] ? '' : ' сотрудника' . ($row['rate_hmg_status'] ? '' : ' и')) . ($row['rate_hmg_status'] ? '' : ' вышестоящего руководителя') . ($row['rate_fnc_status'] ? '' : ' , a также от функционального руководителя') . '.' . "\n" . 'Пожалуйста, предпримите меры для завершения процесса согласования карточки.' . $ps; $mails = explode(',', $row['mngs_emails']); $this->_sendMail($mails, $message); if (!$row['rate_emp_status'] && $row['emp_email']) { $message = "\n" . 'Ваша карточка достижений за ' . $row['period'] . ' год' . ' была выставлена на согласование Вашим руководителем ' . $row['status_date'] . '.' . "\n" . 'Пожалуйста, подтвердите Ваше согласие с поставленными оценками.' . $ps; $this->_sendMail($row['emp_email'], $message); } if (!$row['rate_hmg_status']) { $message = "\n" . 'Карточка достижений за ' . $row['period'] . ' год' . ' (сотрудник ' . $row['emp_fullname'] . ')' . ' была выставлена руководителем на согласование ' . $row['status_date'] . '.' . "\n" . 'Пожалуйста, подтвердите Ваше согласие с поставленными оценками.' . $ps; $mails = explode(',', $row['hmgs_emails']); $this->_sendMail($mails, $message); } if (!$row['rate_fnc_status']) { $message = "\n" . 'Карточка достижений за ' . $row['period'] . ' год' . ' (сотрудник ' . $row['emp_fullname'] . ')' . ' была выставлена руководителем на согласование ' . $row['status_date'] . '.' . "\n" . 'Пожалуйста, подтвердите Ваше согласие с поставленными оценками.' . $ps; $mails = explode(',', $row['func_emails']); $this->_sendMail($mails, $message); } } } } $log = "\n\n" . 'Количество карточек: ' . count($rows) . "\n" . 'Отправлено сообщений: ' . $this->_countSending . "\n" . 'Ошибок: ' . $this->_countErrors; fwrite($this->_logHandle, $log); fclose($this->_logHandle); $view = $this->initView(); $view->title = Rp::getTitle('Рассылка оповещений'); }