/** * */ public function printAction() { $this->_helper->layout()->setLayout('print'); $id = $this->_getParam('id'); $vacancy = $this->_mapperVacancy->detailVacancy($id); $this->view->vacancy = $vacancy; $this->view->shortlist = $this->_mapper->listShortlist($id); }
/** * */ public function printListAction() { $this->_helper->layout()->setLayout('print'); $id = $this->_getParam('id'); $this->view->user = Zend_Auth::getInstance()->getIdentity(); $this->view->quick = $this->_mapper->detailQuickList($id); $this->view->list = $this->_mapper->listQuickList($id); }
/** * */ public function notifyJobVacancyExpired() { $dbAdapter = Zend_Db_Table_Abstract::getDefaultAdapter(); $dbAdapter->beginTransaction(); try { // Search all the expired job vacancy $jobVacancyMapper = new Job_Model_Mapper_JobVacancy(); $selectJob = $jobVacancyMapper->getSelectVacancy(); $selectJob->where('jv.active = ?', 1)->where('jv.close_date < ?', Zend_Date::now()->toString('yyyy-MM-dd')); $dbJobVacancy = App_Model_DbTable_Factory::get('JOBVacancy'); $rows = $dbJobVacancy->fetchAll($selectJob); // Search the user who must receive notes when job vacancy are expired $noteTypeMapper = new Admin_Model_Mapper_NoteType(); $users = $noteTypeMapper->getUsersByNoteType(Admin_Model_Mapper_NoteType::JOB_EXPIRED); $noteModelMapper = new Default_Model_Mapper_NoteModel(); $noteMapper = new Default_Model_Mapper_Note(); $userMapper = new Admin_Model_Mapper_SysUser(); $ceopsUser = array(); foreach ($rows as $row) { $usersWarning = $users; if (empty($ceopsUser[$row->fk_id_dec])) { // Search all the users from the same CEOP $usersCeop = $userMapper->listAll($row->fk_id_dec); foreach ($usersCeop as $userCeop) { $ceopsUser[$row->fk_id_dec][] = $userCeop->id_sysuser; } $usersWarning += $ceopsUser[$row->fk_id_dec]; } else { $usersWarning += $ceopsUser[$row->fk_id_dec]; } $dataNote = array('title' => 'VAGA EMPREGU LORON TAKA LIU TIHA ONA', 'level' => 0, 'message' => $noteModelMapper->getJobExpired($row->id_jobvacancy), 'users' => $usersWarning); $noteMapper->setData($dataNote)->saveNote(); } $dbAdapter->commit(); return true; } catch (Exception $e) { $dbAdapter->rollBack(); echo "Error sending job vacancy expired notifications: " . $e->getMessage() . "\n"; return false; } }
/** * * @param array $data * @return string */ public function geJobShortlist($data) { $mapperJobVacancy = new Job_Model_Mapper_JobVacancy(); $mapperClient = new Client_Model_Mapper_Client(); $mapperCase = new Client_Model_Mapper_Case(); $vacancy = $mapperJobVacancy->detailVacancy($data['vacancy']); $client = $mapperClient->detailClient($data['client']); $case = $mapperCase->detailCase($data['case']); $view = Zend_Layout::getMvcInstance()->getView(); $link = '<a href="%s" target="_blank">%s</a>'; $vacancyName = str_pad($vacancy->id_jobvacancy, 5, '0', STR_PAD_LEFT) . ' - ' . $vacancy->vacancy_titule; $clientName = Client_Model_Mapper_Client::buildNumRow($client) . ' - ' . Client_Model_Mapper_Client::buildName($client); $aVacancy = sprintf($link, $view->baseUrl('/job/vacancy/view/id/' . $vacancy->id_jobvacancy), $vacancy->name_dec . ' - ' . $vacancyName); $aClient = sprintf($link, $view->baseUrl('/client/client/print/id/' . $client->id_perdata), $clientName); $idCase = str_pad($case->id_action_plan, 5, '0', STR_PAD_LEFT); return sprintf(self::JOB_SHORTLIST, $aClient, $idCase, $case->name_dec, $case->name, $aVacancy, $vacancy->name_dec); }
/** * */ public function jobClientAction() { $this->_helper->layout()->disableLayout(); $mapperVacancy = new Job_Model_Mapper_JobVacancy(); $vacancy = $mapperVacancy->detailVacancy($this->_getParam('vacancy')); $this->view->vacancy = $vacancy; }
/** * * @return array */ public function registerReport() { $mapperVacancy = new Job_Model_Mapper_JobVacancy(); $select = $mapperVacancy->getSelectVacancy(); $dbVacancy = App_Model_DbTable_Factory::get('JOBVacancy'); $date = new Zend_Date(); $filters = $this->_data; $select->where('jv.active = ?', (int) $filters['active']); if (!empty($filters['fk_id_profocupation'])) { $select->where('jv.fk_id_profocupation = ?', $filters['fk_id_profocupation']); } if (!empty($filters['fk_id_fefpenterprise'])) { $select->where('jv.fk_id_fefpenterprise = ?', $filters['fk_id_fefpenterprise']); } if (!empty($filters['date_start'])) { $select->where('jv.open_date >= ?', $date->set($filters['date_start'])->toString('yyyy-MM-dd')); } if (!empty($filters['date_finish'])) { $select->where('jv.close_date <= ?', $date->set($filters['date_finish'])->toString('yyyy-MM-dd')); } if (!empty($filters['fk_id_dec'])) { $select->where('jv.fk_id_dec = ?', $filters['fk_id_dec']); } $rows = $dbVacancy->fetchAll($select); return array('rows' => $rows); }
/** * */ public function jobListAction() { $mapperJob = new Job_Model_Mapper_JobVacancy(); $filters = array('active' => 1); $this->view->rows = $mapperJob->listByFilters($filters); }
/** * * @param int $barrier * @return Zend_Db_Table_Rowset */ public function listJobIntervention($intervention, $case) { $mapperVacancy = new Job_Model_Mapper_JobVacancy(); $selectVacancy = $mapperVacancy->getSelectVacancy(); $dbActionPlanBarrier = App_Model_DbTable_Factory::get('Action_Plan_Barrier'); $dbActionPlanReferences = App_Model_DbTable_Factory::get('Action_Plan_References'); $dbActionpPlanHasGroup = App_Model_DbTable_Factory::get('Action_Plan_has_Group'); $selectVacancy->join(array('apr' => $dbActionPlanReferences), 'apr.fk_id_jobvacancy = jv.id_jobvacancy', array())->join(array('apb' => $dbActionPlanBarrier), 'apb.id_action_barrier = apr.fk_id_action_barrier', array())->join(array('apg' => $dbActionpPlanHasGroup), 'apg.fk_id_action_plan = apb.fk_id_action_plan', array())->where('apg.fk_id_action_plan_group = ?', $case)->where('apb.fk_id_barrier_intervention = ?', $intervention)->group(array('id_jobvacancy')); return $dbActionPlanReferences->fetchAll($selectVacancy); }
/** * * @param int $id * @return Zend_Db_Table_Rowset */ public function listAutomatic($id) { $select = $this->_selectMatchClient($id); $mapperVacancy = new Job_Model_Mapper_JobVacancy(); $dbPerExperience = App_Model_DbTable_Factory::get('PerExperience'); $dbJobVacancy = App_Model_DbTable_Factory::get('JOBVacancy'); $dbJobLocation = App_Model_DbTable_Factory::get('JOBVacancy_has_Location'); $dbJobScholarity = App_Model_DbTable_Factory::get('JOBVacancy_has_PerScholarity'); $dbJobTraining = App_Model_DbTable_Factory::get('JOBVacancy_has_Training'); $dbJobLanguage = App_Model_DbTable_Factory::get('JOBVacancy_has_PerLanguage'); $dbAddress = App_Model_DbTable_Factory::get('AddAddress'); $dbPerScholarity = App_Model_DbTable_Factory::get('PerScholarity_has_PerTypeScholarity'); $dbPerLanguage = App_Model_DbTable_Factory::get('PerLanguage_has_PerLevelKnowledge'); $dbProfOcupation = App_Model_DbTable_Factory::get('PROFOcupationTimor'); $dbHandicapped = App_Model_DbTable_Factory::get('handicapped'); $vacancy = $mapperVacancy->detailVacancy($id); // Minimum Age if (!empty($vacancy->minimum_age)) { $select->having('age >= ?', $vacancy->minimum_age); } // Maximum Age if (!empty($vacancy->maximum_age)) { $select->having('age <= ?', $vacancy->maximum_age); } // Gender if (!empty($vacancy->gender)) { $select->where('LEFT(c.gender, 1) = ?', $vacancy->gender); } $selectOcupation = $dbProfOcupation->select()->setIntegrityCheck(false)->from(array('pot1' => $dbProfOcupation))->where('pot1.fk_id_profocupation = pot.fk_id_profocupation')->where('pot1.id_profocupationtimor = ?', $vacancy->fk_id_profocupation); // Minimal Experience and the Profesional Occupation $select->join(array('xp' => $dbPerExperience), 'xp.fk_id_perdata = c.id_perdata', array())->join(array('pot' => $dbProfOcupation), 'pot.id_profocupationtimor = xp.fk_id_profocupation', array())->where('EXISTS (?)', new Zend_Db_Expr('(' . $selectOcupation . ')')); // Minimal Experience if (!empty($vacancy->minimum_experience)) { $select->where('xp.experience_year >= ?', $vacancy->minimum_experience); } // Search by SubDistrict $subDistricts = $mapperVacancy->listAddress($id); if ($subDistricts->count() > 0) { $selectAddress = $dbJobLocation->select()->from(array('jl' => $dbJobLocation), array(new Zend_Db_Expr('NULL')))->setIntegrityCheck(false)->where('jl.fk_id_jobvacancy = ?', $id)->where('( jl.fk_id_addcountry = ad.fk_id_addcountry')->orWhere('jl.fk_id_adddistrict = ad.fk_id_adddistrict )'); $select->join(array('ad' => $dbAddress), 'ad.fk_id_perdata = c.id_perdata', array())->where('EXISTS (?)', new Zend_Db_Expr('(' . $selectAddress . ')')); } // Search By Scholarity $scholarities = $mapperVacancy->listScholarity($id); if ($scholarities->count() > 0) { $selectScholarity = $dbJobScholarity->select()->from(array('js' => $dbJobScholarity), array(new Zend_Db_Expr('NULL')))->setIntegrityCheck(false)->where('js.fk_id_perscholarity = ps.fk_id_perscholarity')->where('js.fk_id_jobvacancy = ?', $id); $select->join(array('ps' => $dbPerScholarity), 'ps.fk_id_perdata = c.id_perdata', array())->where('EXISTS (?)', new Zend_Db_Expr('(' . $selectScholarity . ')')); } // Search By Training $trainings = $mapperVacancy->listTraining($id); if ($trainings->count() > 0) { $selectTraining = $dbJobTraining->select()->from(array('jt' => $dbJobTraining), array(new Zend_Db_Expr('NULL')))->where('jt.fk_id_perscholarity = pt.fk_id_perscholarity')->where('jt.fk_id_jobvacancy = ?', $id); $select->join(array('pt' => $dbPerScholarity), 'pt.fk_id_perdata = c.id_perdata', array())->where('EXISTS (?)', new Zend_Db_Expr('(' . $selectTraining . ')')); } // Search By Language $languages = $mapperVacancy->listLanguage($id); if ($languages->count() > 0) { $selectLanguage = $dbJobLanguage->select()->from(array('jl' => $dbJobLanguage), array(new Zend_Db_Expr('NULL')))->where('jl.fk_id_perlanguage = pl.fk_id_perlanguage')->where('jl.fk_id_jobvacancy = ?', $id); $select->join(array('pl' => $dbPerLanguage), 'pl.fk_id_perdata = c.id_perdata', array())->where('EXISTS (?)', new Zend_Db_Expr('(' . $selectLanguage . ')')); } // Search by handicapped $handicapped = $mapperVacancy->listHandicapped($id); if ($handicapped->count() > 0) { $selectHandicapped = $dbHandicapped->select()->from(array('hd' => $dbHandicapped), array(new Zend_Db_Expr('NULL')))->where('hd.fk_id_typehandicapped = ph.fk_id_typehandicapped')->where('hd.fk_id_jobvacancy = ?', $id); $select->join(array('ph' => $dbHandicapped), 'ph.fk_id_perdata = c.id_perdata', array())->where('EXISTS (?)', new Zend_Db_Expr('(' . $selectHandicapped . ')')); } $select->where('c.active = ?', 1)->where('c.hired = ?', 0)->group('id_perdata')->order(array('date_registration')); return $dbJobVacancy->fetchAll($select); }
/** * * @return int|bool */ public function clientVacancy() { $dbAdapter = Zend_Db_Table_Abstract::getDefaultAdapter(); $dbAdapter->beginTransaction(); try { $dbJobCandidates = App_Model_DbTable_Factory::get('JOBVacancy_Candidates'); $dbPersonHistory = App_Model_DbTable_Factory::get('Person_History'); $dbActionPlanReferences = App_Model_DbTable_Factory::get('Action_Plan_References'); // Fetch the case $case = $this->fetchRow($this->_data['id']); // Fetch the vacancy $mapperVacancy = new Job_Model_Mapper_JobVacancy(); $vacancy = $mapperVacancy->fetchRow($this->_data['vacancy']); if ($vacancy->active != 1) { $this->_message->addMessage('Vaga ida ne\'e taka tiha ona, la bele tau kliente iha lista kandidatu.', App_Message::ERROR); return false; } $where = array('fk_id_jobvacancy = ?' => $this->_data['vacancy'], 'fk_id_perdata = ?' => $case->fk_id_perdata); $hasCandidateList = $dbJobCandidates->fetchRow($where); // If the candidate is already in candidate list if (!empty($hasCandidateList)) { $this->_message->addMessage('Kliente iha Lista Kandidatu tiha ona ba vaga empregu iha ne\'e.', App_Message::ERROR); return false; } // Add the client to the shortlist $row = $dbJobCandidates->createRow(); $row->fk_id_jobvacancy = $this->_data['vacancy']; $row->fk_id_perdata = $case->fk_id_perdata; $row->fk_id_sysuser = Zend_Auth::getInstance()->getIdentity()->id_sysuser; $row->source = 'C'; $row->save(); // Save history to client $rowHistory = $dbPersonHistory->createRow(); $rowHistory->fk_id_perdata = $case->fk_id_perdata; $rowHistory->fk_id_jobvacancy = $this->_data['vacancy']; $rowHistory->fk_id_sysuser = Zend_Auth::getInstance()->getIdentity()->id_sysuser; $rowHistory->fk_id_dec = Zend_Auth::getInstance()->getIdentity()->fk_id_dec; $rowHistory->date_time = Zend_Date::now()->toString('yyyy-MM-dd HH:mm'); $rowHistory->action = sprintf('KLIENTE SELECIONADO BA LISTA KANDIDATU VAGA EMPREGU NUMERO:%s ', $this->_data['vacancy']); $rowHistory->description = 'KLIENTE SELECIONADO BA LISTA KANDIDATU BA VAGA EMPREGU'; $rowHistory->save(); // Save the auditing $history = sprintf('KLIENTE BA LISTA KANDIDATU: %s - BA VAGA EMPREGU NUMERU: %s ', $case->fk_id_perdata, $this->_data['vacancy']); $this->_sysAudit($history); // Insert the reference to the action barrier $rowReference = $dbActionPlanReferences->createRow(); $rowReference->fk_id_perdata = $case->fk_id_perdata; $rowReference->fk_id_action_plan = $this->_data['id']; $rowReference->fk_id_action_barrier = $this->_data['barrier']; $rowReference->fk_id_sysuser = Zend_Auth::getInstance()->getIdentity()->id_sysuser; $rowReference->fk_id_jobvacancy = $this->_data['vacancy']; $rowReference->save(); $dbAdapter->commit(); return $this->_data['id']; } catch (Exception $e) { $dbAdapter->rollBack(); $this->_message->addMessage($this->_config->messages->error, App_Message::ERROR); return false; } }