/**
  *
  * @param <type> $request
  * @return <type> 
  */
 public function execute($request)
 {
     // this should probably be kept in session?
     $attachId = $request->getParameter('attachId');
     $recruitmentAttachmentService = $this->getRecruitmentAttachmentService();
     $attachment = $recruitmentAttachmentService->getCandidateAttachment($attachId);
     $response = $this->getResponse();
     if (!empty($attachment)) {
         $contents = $attachment->getFileContent();
         $contentType = $attachment->getAttachmentType();
         $fileName = $attachment->getFileName();
         $fileLength = $attachment->getFileSize();
         $response->setHttpHeader('Pragma', 'public');
         $response->setHttpHeader('Expires', '0');
         $response->setHttpHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0, max-age=0");
         $response->setHttpHeader("Cache-Control", "private", false);
         $response->setHttpHeader("Content-Type", $contentType);
         $response->setHttpHeader("Content-Disposition", 'attachment; filename="' . $fileName . '";');
         $response->setHttpHeader("Content-Transfer-Encoding", "binary");
         $response->setHttpHeader("Content-Length", $fileLength);
         $response->setContent($contents);
         $response->send();
     } else {
         $response->setStatusCode(404, 'This attachment does not exist');
     }
     return sfView::NONE;
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $toBeDeletedProjectIds = $request->getParameter('chkSelectRow');
     $projectPermissions = $this->getDataGroupPermissions('time_projects');
     if ($projectPermissions->canDelete()) {
         $form = new DefaultListForm();
         $form->bind($request->getParameter($form->getName()));
         if ($form->isValid()) {
             if (!empty($toBeDeletedProjectIds)) {
                 $delete = true;
                 foreach ($toBeDeletedProjectIds as $toBeDeletedProjectId) {
                     $deletable = $this->getProjectService()->hasProjectGotTimesheetItems($toBeDeletedProjectId);
                     if ($deletable) {
                         $delete = false;
                         break;
                     }
                 }
                 if ($delete) {
                     foreach ($toBeDeletedProjectIds as $toBeDeletedProjectId) {
                         $customer = $this->getProjectService()->deleteProject($toBeDeletedProjectId);
                     }
                     $this->getUser()->setFlash('success', __(TopLevelMessages::DELETE_SUCCESS));
                 } else {
                     $this->getUser()->setFlash('error', __('Not Allowed to Delete Project(s) Which Have Time Logged Against Them'));
                 }
             }
         }
         $this->redirect('admin/viewProjects');
     }
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $form = new DefaultListForm(array(), array(), true);
     $form->bind($request->getParameter($form->getName()));
     $toBeDeletedUserIds = $request->getParameter('chkSelectRow');
     if (!empty($toBeDeletedUserIds)) {
         if ($form->isValid()) {
             $accessibleIds = $this->getContext()->getUserRoleManager()->getAccessibleEntityIds('SystemUser');
             $delete = true;
             foreach ($toBeDeletedUserIds as $id) {
                 if (!in_array($id, $accessibleIds)) {
                     $delete = false;
                     break;
                 }
             }
             if (!$delete) {
                 $this->forward(sfConfig::get('sf_secure_module'), sfConfig::get('sf_secure_action'));
             }
             $this->getSystemUserService()->deleteSystemUsers($toBeDeletedUserIds);
             $this->getUser()->setFlash('success', __(TopLevelMessages::DELETE_SUCCESS));
         }
     } else {
         $this->getUser()->setFlash('warning', __(TopLevelMessages::SELECT_RECORDS));
     }
     $this->redirect('admin/viewSystemUsers');
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $toBeDeletedVacancyIds = $request->getParameter('chkSelectRow');
     $isDeletionSucceeded = $this->getVacancyService()->deleteVacancies($toBeDeletedVacancyIds);
     $this->getUser()->setFlash('vacancyDeletionMessageItems', array('success', __(TopLevelMessages::DELETE_SUCCESS)));
     $this->redirect('recruitment/viewJobVacancy');
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     /* For highlighting corresponding menu item */
     $request->setParameter('initialActionName', 'viewJobVacancy');
     $this->vacancyPermissions = $this->getDataGroupPermissions('recruitment_vacancies');
     $this->vacancyId = $request->getParameter('Id');
     $values = array('vacancyId' => $this->vacancyId, 'vacancyPermissions' => $this->vacancyPermissions);
     $this->setForm(new AddJobVacancyForm(array(), $values));
     if ($this->getUser()->hasFlash('templateMessage')) {
         list($this->messageType, $this->message) = $this->getUser()->getFlash('templateMessage');
         MessageRegistry::instance()->addMessage($this->message, 'recruitment', 'addJobVacancy', MessageRegistry::PREPEND);
         $this->message = MessageRegistry::instance()->getMessage('recruitment', 'addJobVacancy');
     }
     if ($request->isMethod('post')) {
         if ($this->vacancyPermissions->canCreate() || $this->vacancyPermissions->canUpdate()) {
             $this->form->bind($request->getParameter($this->form->getName()));
             if ($this->form->isValid()) {
                 $this->vacancyId = $this->form->save();
                 $this->getUser()->setFlash('success', __(TopLevelMessages::SAVE_SUCCESS));
                 $this->redirect('recruitment/addJobVacancy?Id=' . $this->vacancyId);
             } else {
                 Logger::getLogger('recruitment.addJobVacancy')->error($this->form);
                 $this->getUser()->setFlash('warning', __(TopLevelMessages::SAVE_FAILURE), false);
             }
         }
     }
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $toBeDeletedActivityIds = $request->getParameter('chkSelectRow');
     $projectId = $request->getParameter('projectId');
     $form = new DefaultListForm();
     $form->bind($request->getParameter($form->getName()));
     if ($form->isValid()) {
         if (!empty($toBeDeletedActivityIds)) {
             $delete = true;
             foreach ($toBeDeletedActivityIds as $toBeDeletedActivityId) {
                 $deletable = $this->getProjectService()->hasActivityGotTimesheetItems($toBeDeletedActivityId);
                 if ($deletable) {
                     $delete = false;
                     break;
                 }
             }
             if ($delete) {
                 foreach ($toBeDeletedActivityIds as $toBeDeletedActivityId) {
                     $customer = $this->getProjectService()->deleteProjectActivities($toBeDeletedActivityId);
                 }
                 $this->getUser()->setFlash('success', __(TopLevelMessages::DELETE_SUCCESS));
             } else {
                 $this->getUser()->setFlash('error', __('Not Allowed to Delete Project Activites Which Have Time Logged Against'));
             }
         }
     }
     $this->redirect('admin/saveProject?projectId=' . $projectId . '#ProjectActivities');
 }
 /**
  * execute function
  * @param <type> $request
  */
 public function execute($request)
 {
     $this->setForm(new LocalizationForm());
     $languages = $this->getRequest()->getLanguages();
     $this->browserLanguage = $languages[0];
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter($this->form->getName()));
         if ($this->form->isValid()) {
             // For reloading main menu (index.php)
             $_SESSION['load.admin.localization'] = true;
             $formValues = $this->form->getFormValues();
             $defaultLanguage = $formValues['defaultLanguage'];
             $setBrowserLanguage = !empty($formValues['setBrowserLanguage']) ? "Yes" : "No";
             $supprotedLanguages = $this->form->getLanguages();
             if ($setBrowserLanguage == "Yes" && in_array($languages[0], $supprotedLanguages)) {
                 $defaultLanguage = $languages[0];
             }
             $this->getUser()->setCulture($defaultLanguage);
             $this->getConfigService()->setAdminLocalizationDefaultLanguage($formValues['defaultLanguage']);
             $this->getConfigService()->setAdminLocalizationUseBrowserLanguage($setBrowserLanguage);
             $this->getUser()->setDateFormat($formValues['defaultDateFormat']);
             $this->getConfigService()->setAdminLocalizationDefaultDateFormat($formValues['defaultDateFormat']);
             $this->getUser()->setFlash('success', __(TopLevelMessages::SAVE_SUCCESS));
         }
         $this->redirect("admin/localization");
     }
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     /* For highlighting corresponding menu item */
     $request->setParameter('initialActionName', 'viewJobVacancy');
     $usrObj = $this->getUser()->getAttribute('user');
     if (!$usrObj->isAdmin()) {
         $this->redirect('recruitment/viewCandidates');
     }
     $this->vacancyId = $request->getParameter('Id');
     $values = array('vacancyId' => $this->vacancyId);
     $this->setForm(new AddJobVacancyForm(array(), $values));
     if ($this->getUser()->hasFlash('templateMessage')) {
         list($this->messageType, $this->message) = $this->getUser()->getFlash('templateMessage');
         MessageRegistry::instance()->addMessage($this->message, 'recruitment', 'addJobVacancy', MessageRegistry::PREPEND);
         $this->message = MessageRegistry::instance()->getMessage('recruitment', 'addJobVacancy');
     }
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter($this->form->getName()));
         if ($this->form->isValid()) {
             $this->vacancyId = $this->form->save();
             $this->getUser()->setFlash('success', __(TopLevelMessages::SAVE_SUCCESS));
             $this->redirect('recruitment/addJobVacancy?Id=' . $this->vacancyId);
         }
     }
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $this->setForm(new CopyActivityForm());
     $projectId = $request->getParameter('projectId');
     $this->form->bind($request->getParameter($this->form->getName()));
     $projectActivityList = $this->getProjectService()->getActivityListByProjectId($projectId);
     if ($this->form->isValid()) {
         $activityNameList = $request->getParameter('activityNames', array());
         $activities = new Doctrine_Collection('ProjectActivity');
         $isUnique = true;
         foreach ($activityNameList as $activityName) {
             foreach ($projectActivityList as $projectActivity) {
                 if (strtolower($activityName) == strtolower($projectActivity->getName())) {
                     $isUnique = false;
                     break;
                 }
             }
         }
         if ($isUnique) {
             foreach ($activityNameList as $activityName) {
                 $activity = new ProjectActivity();
                 $activity->setProjectId($projectId);
                 $activity->setName($activityName);
                 $activity->setIsDeleted(ProjectActivity::ACTIVE_PROJECT);
                 $activities->add($activity);
             }
             $activities->save();
             $this->getUser()->setFlash('templateMessageAct', array('success', __('Successfully Copied')));
         } else {
             $this->getUser()->setFlash('templateMessageAct', array('failure', __('Name Already Exists')));
         }
         $this->redirect('admin/saveProject?projectId=' . $projectId);
     }
 }
Exemple #10
0
 /**
  * Get TXT from fields
  *
  * @param <type> $ret
  * @param <type> $field
  * @return <type>
  */
 private function _getTXT($ret, $field)
 {
     if ($field->isNull()) {
         return $ret;
     }
     return $ret . "\t" . $field->getDescription() . ": " . ($field->isNull() ? '--------' : $field->getValueName()) . "\n";
 }
 /**
  * Adds a model to the validator
  * @param <type> $model 
  */
 public function addModel($model)
 {
     if ($model) {
         $this->_model = $model;
         $this->_rules = $model->rules();
     }
 }
Exemple #12
0
 /**
  * @param <type> $query
  * @depends testQueryCache_DependsOnHints
  */
 public function testQueryCache_DependsOnHydrationMode($query)
 {
     $cache = $query->getQueryCacheDriver();
     $cacheCount = count($cache->getIds());
     $query->getArrayResult();
     $this->assertEquals($cacheCount + 1, count($cache->getIds()));
 }
Exemple #13
0
 /**
  *
  * @param <type> $observer
  * @return <type>
  * @desciption After saving order, Relase Lock
  */
 public function sales_order_save_after($observer)
 {
     $order = $observer->getOrder();
     $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
     $connection->beginTransaction();
     $fields = array();
     $fields['status'] = '0';
     $fields['lock_released'] = Varien_Date::now();
     $where = $connection->quoteInto('order_id =?', $order->getRelationParentRealId());
     $connection->update('lockorder', $fields, $where);
     $connection->commit();
     $paymenttype = $order->getPayment()->getMethodInstance()->getCode();
     if ($paymenttype == 'cashondelivery') {
         $total = round($order->getGrandTotal());
         $codOrderAmount = Mage::getStoreConfig('codordervalue/codordervaluesetting/cod_order_amount');
         if ($codOrderAmount) {
             if ($total <= $codOrderAmount) {
                 try {
                     if ($order->getStatus() == 'COD_Verification_Pending') {
                         $order->setState('new', 'COD_Verification_Successful', 'Less than ' . $codOrderAmount . ' condition', true);
                         $order->sendNewOrderEmail();
                     }
                 } catch (Exception $e) {
                     file_put_contents('/tmp/payment.txt', 'in exception:' . $order->getIncrementId() . "\n");
                 }
             }
         }
     }
     return;
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $candidateId = $request->getParameter('candidateId');
     //print($candidateId);die;
     //$timeList = $this->getJobInterviewService();
     //$dao = new CandidateDao();
     //print_r(count($dao->getCandidateById($candidateId)->getJobCandidateVacancy()));die;
     $service = new JobInterviewService();
     //        $service->getInterviewListByCandidateIdAndInterviewDateAndTime(1, '2011-08-10', '10:30:00');
     //        $allowedVacancyList = $this->getUser()->getAttribute('user')->getAllowedVacancyList();
     //
     //        $this->setLayout(false);
     //        sfConfig::set('sf_web_debug', false);
     //        sfConfig::set('sf_debug', false);
     //
     //        $vacancyList = array();
     //
     //        if ($this->getRequest()->isXmlHttpRequest()) {
     //            $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     //        }
     //
     //        $jobTitle = $request->getParameter('jobTitle');
     //
     //        $vacancyService = new VacancyService();
     //        $vacancyList = $vacancyService->getVacancyListForJobTitle($jobTitle, $allowedVacancyList, true);
     //	$newVacancyList = array();
     //        foreach ($vacancyList as $vacancy) {
     //            if ($vacancy['status'] == JobVacancy::CLOSED) {
     //                $vacancy['name'] = $vacancy['name'] . " (Closed)";
     //            }
     //            $newVacancyList[] = $vacancy;
     //        }
     //        return $this->renderText(json_encode($newVacancyList));
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     $this->setLayout(false);
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $userRoleManager = $this->getContext()->getUserRoleManager();
     $mode = $request->getParameter('mode');
     $dataGroupName = $mode == self::MODE_CANDIDATES ? 'recruitment_candidates' : 'recruitment_vacancies';
     $requiredPermissions = array(BasicUserRoleManager::PERMISSION_TYPE_DATA_GROUP => array($dataGroupName => new ResourcePermission(true, false, false, false)));
     $allowedVacancyList = $userRoleManager->getAccessibleEntityIds('Vacancy', null, null, array(), array(), $requiredPermissions);
     $jobTitle = $request->getParameter('jobTitle');
     $vacancyService = new VacancyService();
     $vacancyList = $vacancyService->getVacancyListForJobTitle($jobTitle, $allowedVacancyList, true);
     $newVacancyList = array();
     foreach ($vacancyList as $vacancy) {
         if ($vacancy['status'] == JobVacancy::CLOSED) {
             $vacancy['name'] = $vacancy['name'] . " (Closed)";
         }
         $newVacancyList[] = $vacancy;
     }
     return $this->renderText(json_encode($newVacancyList));
 }
Exemple #16
0
 /**
  * 构造函数
  */
 function __construct($app)
 {
     parent::__construct();
     $this->_app = $app;
     //建立路径
     $this->_pathway = new Helper_Pathway();
     $this->_pathway->addStep('首页', url('default::default/index'));
 }
Exemple #17
0
 /**
  * Constructs a Dublin_Core object from a Fedora_Item object and populates
  * the $dc array.
  * @param <type> $item
  */
 function Dublin_Core($item = NULL)
 {
     if (!empty($item)) {
         $this->owner = $item;
         $dc_xml = $item->get_datastream_dissemination('DC');
         $this->dc = self::import_from_xml_string($dc_xml)->dc;
     }
 }
Exemple #18
0
 /**
  * Constructs DataServiceQuery instance.
  *
  * @param <type> $entitySetUrl Partial Url pointing to entity Set in OData Service
  * @param <type> $context The DataService Context
  */
 public function DataServiceQuery($entitySetUrl, $context)
 {
     //Client is allowed to pass entitySet name in either
     //'EntitySetName' or '/EntitySetName' format (with or without slash)
     $entitySetUrl = ltrim($entitySetUrl, '/');
     $this->_entitySetUrl = $context->GetBaseUriWithSlash() . $entitySetUrl;
     $this->_context = $context;
 }
/**
 * Inject cells into an array from corresponding properties in an object
 * @param <type> $source The original object
 * @param <type> $target An associative array state representation of that object
 * @param <type> $fields The names of the object properties
 */
function fieldInject($source, $target, $fields)
{
    foreach ($fields as $prop) {
        if (isset($source->{$prop})) {
            $target[$prop] = $source->html_entity_decode($prop);
        }
    }
}
 /**
  * Performs lazy connection, only connecting to the DB when a query is actually performed
  * Also ensures that only 1 connection can be active, by returning the existing PDO object if one exists
  * @return <type>
  */
 public function lazyConnect()
 {
     if (!self::$_dbh instanceof \PDO) {
         try {
             self::$_dbh = new \PDO($this->_dsn, $this->_dbinfo['username'], $this->_dbinfo['password']);
             self::$_dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
         } catch (\PDOException $e) {
             die('Could not connect to database');
         }
     }
     return self::$_dbh;
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $toBeDeletedUserIds = $request->getParameter('chkSelectRow');
     if (!empty($toBeDeletedUserIds)) {
         $delete = true;
         $this->getSystemUserService()->deleteSystemUsers($toBeDeletedUserIds);
         $this->getUser()->setFlash('templateMessage', array('success', __(TopLevelMessages::DELETE_SUCCESS)));
     } else {
         $this->getUser()->setFlash('templateMessage', array('warning', __(TopLevelMessages::SELECT_RECORDS)));
     }
     $this->redirect('admin/viewSystemUsers');
 }
Exemple #22
0
 /**
  * Populate the form values from Opus_Account instance.
  * @param <type> $account
  */
 public function populateFromAccount($account)
 {
     $this->getElement('username')->setValue(strtolower($account->getLogin()));
     $this->getElement('firstname')->setValue($account->getFirstName());
     $this->getElement('lastname')->setValue($account->getLastName());
     $this->getElement('email')->setValue($account->getEmail());
     $roles = $account->getRole();
     $this->setSelectedRoles($roles);
     $adminRoleElement = $this->getElement('roleadministrator');
     if (Zend_Auth::getInstance()->getIdentity() === strtolower($account->getLogin())) {
         $adminRoleElement->setAttrib('disabled', true);
     }
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     $this->setLayout(false);
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $jobCatId = $request->getParameter('id');
     $service = new JobCategoryService();
     $status = $service->getJobCategoryById($jobCatId);
     return $this->renderText(json_encode($status->toArray()));
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     $this->setLayout(false);
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $curId = $request->getParameter('curId');
     $payGradeId = $request->getParameter('payGradeId');
     $service = new PayGradeService();
     $status = $service->getCurrencyByCurrencyIdAndPayGradeId($curId, $payGradeId);
     return $this->renderText(json_encode($status->toArray()));
 }
 /**
  *
  * @param <type> $request
  */
 public function execute($request)
 {
     $vacancyPermissions = $this->getDataGroupPermissions('recruitment_vacancies');
     if ($vacancyPermissions->canDelete()) {
         $form = new DefaultListForm(array(), array(), true);
         $form->bind($request->getParameter($form->getName()));
         if ($form->isValid()) {
             $toBeDeletedVacancyIds = $request->getParameter('chkSelectRow');
             $isDeletionSucceeded = $this->getVacancyService()->deleteVacancies($toBeDeletedVacancyIds);
             $this->getUser()->setFlash('success', __(TopLevelMessages::DELETE_SUCCESS));
         }
     }
     $this->redirect('recruitment/viewJobVacancy');
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     $this->setLayout(false);
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $workShiftId = $request->getParameter('id');
     $service = new WorkShiftService();
     $workShift = $service->getWorkShiftById($workShiftId);
     $workShiftFields = array('id' => $workShift->getId(), 'name' => $workShift->getName(), 'hoursPerDay' => $workShift->getHoursPerDay(), 'start_time' => date('H:i', strtotime($workShift->getStartTime())), 'end_time' => date('H:i', strtotime($workShift->getEndTime())));
     return $this->renderText(json_encode($workShiftFields));
 }
Exemple #27
0
 /**
  *
  * @param <type> $id the user id to modify the values here
  * @param <type> $userInstanceNewValues  the new values of the user info
  *                                          that are in the user instance
  */
 public function modifyUserInfo($id, $userInstanceNewValues)
 {
     $connector = new DBConnector();
     $connection = $connector->createConnection();
     $userId = $userInstanceNewValues->getId();
     $gender = $userInstanceNewValues->gender;
     $maritalStatus = $userInstanceNewValues->maritalSt;
     $studies = $userInstanceNewValues->studies;
     $institutionName = $userInstanceNewValues->getInstitutionName();
     $country = $userInstanceNewValues->getCountry();
     $religion = $userInstanceNewValues->getReligion();
     $query = "UPDATE userinfo set gender='" . $gender . "', maritalSt='" . $maritalStatus . "', studies='" . $studies . "' , InstitutionName='" . $institutionName . "'  , currentLocation='" . $country . "' , religion='" . $religion . "'  where FK_users=" . $userId;
     mysql_query($query) or die("Error in query modifying user info : {$query}. " . mysql_error() . " and the user id is" . $id);
     mysql_close($connection);
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     $this->setLayout(false);
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $systemUser = $request->getParameter('systemUser');
     $userId = $request->getParameter('user_id');
     $systemUserService = new SystemUserService();
     $user = $systemUserService->isExistingSystemUser($systemUser['userName'], $userId);
     $isExisting = $user instanceof SystemUser ? false : true;
     return $this->renderText(json_encode($isExisting));
 }
 /** Devuelve una variable con texto html con generación de la tabla
  * correspondiente al resource de una consulta de BD. No escribe nada en la web.
  * Si el result esta vacio devuelve html vacío
  * @param <type> $result
  * @param <type> $liberar : al acabar libera la memoria del result
  * @return <type>
  */
 private function escribir_consulta_html($result, $liberar = null)
 {
     if (!$result) {
         // ninguna fila
         return;
     }
     if ($result->num_rows > 0) {
         // Si hay filas
         // cabecera de la tabla
         $consulta_html .= "<table>\n";
         $consulta_html .= "<tr>\n";
         $fila = $result->fetch_assoc();
         foreach ($fila as $nombre => $valor) {
             $consulta_html .= "<th>" . $nombre . "</th>\n";
         }
         $consulta_html .= "</tr>\n";
         // Mientra haya filas
         do {
             // Escribir campos de fila
             $consulta_html .= "<tr>\n";
             foreach ($fila as $nombre => $valor) {
                 $consulta_html .= "<td>" . $valor . "</td>\n";
             }
             $consulta_html .= "</tr>\n";
         } while ($fila = $result->fetch_assoc());
         $consulta_html .= "</table>\n";
     }
     // liberar memoria
     if (isset($liberar) && $liberar) {
         $result->free();
     }
     return $consulta_html;
 }
 /**
  *
  * @param <type> $request
  * @return <type>
  */
 public function execute($request)
 {
     $allowedVacancyList = $this->getUser()->getAttribute('user')->getAllowedVacancyList();
     $this->setLayout(false);
     sfConfig::set('sf_web_debug', false);
     sfConfig::set('sf_debug', false);
     $hiringManagerList = array();
     if ($this->getRequest()->isXmlHttpRequest()) {
         $this->getResponse()->setHttpHeader('Content-Type', 'application/json; charset=utf-8');
     }
     $jobTitle = $request->getParameter('jobTitle');
     $vacancyId = $request->getParameter('vacancyId');
     $vacancyService = new VacancyService();
     $hiringManagerList = $vacancyService->getHiringManagersList($jobTitle, $vacancyId, $allowedVacancyList);
     return $this->renderText(json_encode($hiringManagerList));
 }