Exemplo n.º 1
0
 /**
  * 
  */
 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);
 }
Exemplo n.º 2
0
 /**
  *
  * @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);
 }