/** * */ 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; } }
/** * * @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); }
/** * * @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 listJobBarriers($id) { $mapperVacancy = new Job_Model_Mapper_JobVacancy(); $selectVacancy = $mapperVacancy->getSelectVacancy(); $dbActionPlanReferences = App_Model_DbTable_Factory::get('Action_Plan_References'); $dbHired = App_Model_DbTable_Factory::get('Hired'); $selectVacancy->join(array('apr' => $dbActionPlanReferences), 'apr.fk_id_jobvacancy = jv.id_jobvacancy', array())->joinLeft(array('h' => $dbHired), 'h.fk_id_jobvacancy = jv.id_jobvacancy AND h.fk_id_perdata = apr.fk_id_perdata', array('hired' => 'id_relationship'))->where('apr.fk_id_action_barrier = ?', $id); return $dbActionPlanReferences->fetchAll($selectVacancy); }