/** * */ public function printAction() { $this->_helper->layout()->setLayout('print'); $id = $this->_getParam('id'); $this->view->vacancy = $this->_mapper->detailVacancy($id); $this->view->address = $this->_mapper->listAddress($id); $this->view->scholarity = $this->_mapper->listScholarity($id); $this->view->training = $this->_mapper->listTraining($id); $this->view->language = $this->_mapper->listLanguagePrint($id); $this->view->handicapped = $this->_mapper->listHandicapped($id); }
/** * * @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); }