public function testTicket()
 {
     // SELECT picture_id FROM ItemPicture INNER JOIN Puzzle ON ItemPicture.item_id=ItemPuzzle_item_id
     $q = Doctrine_Query::create()->select('pic.id')->from('T1467_Picture pic')->innerJoin('pic.Items ite')->innerJoin('ite.Puzzles puz');
     $this->assertEqual($q->getDql(), 'SELECT pic.id FROM T1467_Picture pic INNER JOIN pic.Items ite INNER JOIN ite.Puzzles puz');
     $this->assertEqual($q->getSqlQuery(), 'SELECT t.id AS t__id FROM t1467__picture t INNER JOIN t1467__item_picture t3 ON (t.id = t3.picture_id) INNER JOIN t1467__item t2 ON t2.id = t3.item_id INNER JOIN t1467__item_puzzle t5 ON (t2.id = t5.item_id) INNER JOIN t1467__puzzle t4 ON t4.id = t5.puzzle_id');
 }
 public function doMassAction($user_id, $is_admin = false)
 {
     if ($this->isBound() && $this->isValid()) {
         $actions_values = $this->getValue('MassActionForm');
         $query = Doctrine_Query::create()->update('Specimens s');
         if ($is_admin === false) {
             $query->andWhere('s.id in (select fct_filter_encodable_row(?,?,?))', array(implode(',', $this->getValue('item_list')), 'spec_ref', $user_id));
         } else {
             $query->andWhere('s.id in (' . implode(',', $this->getValue('item_list')) . ')');
         }
         $group_action = 0;
         foreach ($this->embeddedForms['MassActionForm'] as $key => $form) {
             if (method_exists($this->getEmbeddedForm('MassActionForm')->getEmbeddedForm($key), 'doGroupedAction')) {
                 $this->getEmbeddedForm('MassActionForm')->getEmbeddedForm($key)->doGroupedAction($query, $actions_values[$key], $this->getValue('item_list'));
                 $group_action++;
             }
             if (method_exists($this->getEmbeddedForm('MassActionForm')->getEmbeddedForm($key), 'doMassAction')) {
                 $this->getEmbeddedForm('MassActionForm')->getEmbeddedForm($key)->doMassAction($user_id, $this->getValue('item_list'), $actions_values[$key]);
             }
         }
         if ($group_action) {
             $query->execute();
         }
     }
 }
 public function countProyectos(Doctrine_Query $q = null)
 {
     if (is_null($q)) {
         $q = Doctrine_Query::create()->from('ProyectoLey p');
     }
     return $q->count();
 }
 public function save(Doctrine_Connection $conn = null)
 {
     try {
         $this->setIsTosync(1);
         parent::save($conn);
         if ($this->getGainId() != null) {
             $send_email_visiteur_template_id = $this->getGain()->getSendEmailVisiteurTemplateId();
             $send_email_admin_template_id = $this->getGain()->getSendEmailAdminTemplateId();
             if ($send_email_visiteur_template_id || $send_email_admin_template_id) {
                 $visiteur = Doctrine_Core::getTable('Visiteur')->findOneBy('guid', $this->getVisiteurId());
                 $gain = $this->getGain();
                 $univers_status = $this->getUniversStatus();
                 $visiteur_email = $visiteur->getEmail();
                 $admin_email = sfConfig::get('app_gain_admin_email', null);
                 $array_replace = array('$visiteur_pseudo' => $visiteur->getPseudoSon(), '$visiteur_nom' => $visiteur->getNom(), '$visiteur_prenom' => $visiteur->getPrenom(), '$visiteur_adresse1' => $visiteur->getAdresse(), '$visiteur_adresse2' => $visiteur->getAdresse2(), '$visiteur_cp' => $visiteur->getCodePostal(), '$visiteur_ville' => $visiteur->getVille(), '$visiteur_num_mobile' => $visiteur->getNumMobile(), '$visiteur_email' => $visiteur->getEmail(), '$host_image_src' => sfConfig::get('app_host_image_src'), '$gain_libelle' => $gain->getLibelle(), '$gain_image' => $gain->getImage(), '$gain_description' => $gain->getDescription(), '$gain_start_at' => $gain->getStartAt(), '$gain_end_at' => $gain->getEndAt(), '$univers_status_level' => $univers_status->getLevel(), '$univers_status_level_name' => $univers_status->getLevelName(), '$univers_status_description' => $univers_status->getDescription(), '$univers_status_libelle' => $univers_status->getLibelle());
             }
             // envoi d'un email au visiteur
             if ($send_email_visiteur_template_id && $visiteur_email) {
                 $template = Doctrine_Query::create()->from('TemplateMail t')->where('t.guid = ?', $send_email_visiteur_template_id)->fetchOne();
                 if ($template !== false) {
                     $template->sendEmail($visiteur_email, $array_replace);
                 }
             }
             // envoi d'un email a l'admin
             if ($send_email_admin_template_id && $admin_email) {
                 $template = Doctrine_Query::create()->from('TemplateMail t')->where('t.guid = ?', $send_email_admin_template_id)->fetchOne();
                 if ($template !== false) {
                     $template->sendEmail($admin_email, $array_replace);
                 }
             }
         }
     } catch (Exception $e) {
         throw new Exception($e->getMessage());
     }
 }
Esempio n. 5
0
 public static function get_district_name_($district)
 {
     $query = Doctrine_Query::create()->select("*")->from("districts")->where("id='{$district}'");
     $drugs = $query->execute();
     $drugs = $drugs->toArray();
     return $drugs[0];
 }
Esempio n. 6
0
 public function executeBulk(sfWebRequest $request)
 {
     $ids = array_keys($request->getParameter('rl-check', array()));
     $query = Doctrine_Query::create();
     $query->update('Role r')->set('deleted_at', '?', date('Y-m-d H:i:s'))->whereIn('r.id', $ids)->andWhere('it.account_id = ?', $this->getUser()->getAttribute('account_id'))->execute();
     $this->redirect('adminRole/list');
 }
Esempio n. 7
0
 public function testTest()
 {
     $q = Doctrine_Query::create()->select('u.*, CONCAT(u.id, u.name) as custom')->from('User u INDEXBY custom');
     $this->assertEqual($q->getSqlQuery(), 'SELECT e.id AS e__id, e.name AS e__name, e.loginname AS e__loginname, e.password AS e__password, e.type AS e__type, e.created AS e__created, e.updated AS e__updated, e.email_id AS e__email_id, CONCAT(e.id, e.name) AS e__0 FROM entity e WHERE (e.type = 0)');
     $results = $q->fetchArray();
     $this->assertEqual($results['4zYne']['name'], 'zYne');
 }
 /**
  * Get comments for a specific module and spec entry
  * @param string $module
  * @param array||int $key
  * @return array -> objects
  */
 public function getComments($module, $key)
 {
     // If the key isn't an array (directly the integer)
     if (!is_array($key)) {
         // Encaspluate the key in a array
         $key = array($key);
     }
     switch ($module) {
         case "forums":
             $column = "tid";
             break;
         case "up":
             $column = "upid";
             break;
         case "sht":
             $column = "shtid";
             break;
         case "pm":
             $column = "pmid";
             break;
         case "poll":
             $column = "pollid";
             break;
         case "news":
             $column = "nwsid";
             break;
     }
     // Execute & return the request
     return Doctrine_Query::create()->select("m.*, v.*, u.username, u.avatar, u.slug, uu.username, uu.avatar, uu.slug")->from("MsgMessages m")->leftJoin("m.MsgVotes v")->leftJoin('m.Users u')->leftJoin('v.Users uu')->where('m.module = ?', $module)->andWhereIn('m.' . $column, $key)->useQueryCache(true)->setQueryCacheLifeSpan(3600 * 24)->execute();
 }
 /**
  * execute
  *
  * @param string $value
  * @param string $error
  * @return void
  */
 public function execute(&$value, &$error)
 {
     $className = $this->getParameter('class');
     $columnName = $className . '.' . $this->getParameter('column');
     $primaryKeys = Doctrine::getTable($className)->getIdentifier();
     if (!is_array($primaryKeys)) {
         $primaryKeys = array($primaryKeys);
     }
     // implied assumption: the is at least one primary key
     foreach ($primaryKeys as $primaryKey) {
         if (is_null($primaryKeyValue = $this->getContext()->getRequest()->getParameter($primaryKey))) {
             break;
         }
     }
     $query = Doctrine_Query::create()->from($className);
     if ($primaryKeyValue == null) {
         $query->where($columnName . ' = ?');
         $res = $query->execute(array($value));
     } else {
         $query->where($columnName . ' = ? AND ' . $primaryKey . ' != ?');
         $res = $query->execute(array($value, $primaryKeyValue));
     }
     if ($res->count()) {
         $error = $this->getParameterHolder()->get('unique_error');
         return false;
     }
     return true;
 }
 public function testInheritanceSubclasses()
 {
     $records = Doctrine_Query::create()->query('FROM Parent1713 m');
     foreach ($records as $rec) {
         $this->assertEqual(get_class($rec), $rec['title']);
     }
 }
Esempio n. 11
0
 public function testTicket()
 {
     $q = Doctrine_Query::create()->from('T1500_User u')->innerJoin('u.Group g')->where('u.id = 1');
     $this->assertEqual($q->getSqlQuery(), 'SELECT t.user_id AS t__user_id, t.group_id AS t__group_id, t.name AS t__name, t2.group_id AS t2__group_id, t2.name AS t2__name FROM t1500__user t INNER JOIN t1500__group t2 ON t.group_id = t2.group_id WHERE t.user_id = 1');
     $q = Doctrine_Query::create()->from('T1500_Group g')->innerJoin('g.Users u')->where('g.id = 1');
     $this->assertEqual($q->getSqlQuery(), 'SELECT t.group_id AS t__group_id, t.name AS t__name, t2.user_id AS t2__user_id, t2.group_id AS t2__group_id, t2.name AS t2__name FROM t1500__group t INNER JOIN t1500__user t2 ON t.group_id = t2.group_id WHERE t.group_id = 1');
 }
 protected function processForm(sfWebRequest $request, sfForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->isValid()) {
         try {
             $peticion = $form->save();
             $aux = Doctrine_Query::create()->from('sfGuardUser s')->where('s.email_address = ?', $peticion->getEmailAddress());
             $aux1 = $aux->fetchOne();
             if (!$aux1) {
                 $auxU = Doctrine_Query::create()->from('sfGuardUser s')->where('s.username = ?', $peticion->getUsername());
                 $auxU1 = $auxU->fetchOne();
                 if (!$auxU1) {
                     $this->redirect('peticion/notificacion');
                 } else {
                     $peticion->delete();
                     $this->getUser()->setFlash('error', 'El nombre de usuario "' . $peticion->getUsername() . '" no esta disponible.', false);
                 }
             } else {
                 $peticion->delete();
                 $this->getUser()->setFlash('error', 'El correo electrónico "' . $peticion->getEmailAddress() . '" ya se encuentra registrado.', false);
             }
         } catch (Exception $e) {
             $this->getUser()->setFlash('error', 'El correo electrónico ingresado ya se encuentra registrado.', false);
         }
     }
 }
 /**
  * @todo Execute deleteUser function for delete the particular user based on parameter.
  *
  * @param $snIdUser  Integer UserId.
  * @return type array or boolean.
  */
 public static function deleteCategory($snIdUser)
 {
     if ($snIdUser == "" || !is_numeric($snIdUser)) {
         return false;
     }
     return Doctrine_Query::create()->delete("Model_Category MU")->where("id_category = ?", $snIdUser)->execute();
 }
Esempio n. 14
0
 public static function getFeedEntries($uid = null, $actorid = null, $friends = false, $actions = true, $stories = true)
 {
     $q = Doctrine_Query::create();
     if (isset($actorid) && !empty($actorid)) {
         $_whereClause = "feed.actor_id = {$actorid}";
     } else {
         if (isset($uid) && !empty($uid)) {
             if ($friends) {
                 $_whereClause = "friend.from_id = '{$uid}' and feed.author_id = friend.to_id";
             } else {
                 if (!empty($_whereClause)) {
                     $_whereClause .= ' and ';
                 }
                 $_whereClause = "feed.author_id = '{$uid}'";
             }
         }
     }
     if (!$actions || !$stories) {
         $_type = empty($actions) ? '1' : '2';
         $_whereClause .= ' and feed.type = ' . $_type;
     }
     //		error_log( 'where clause: ' . $_whereClause );
     $q->select(self::getSelect($friends))->from(self::getFrom($uid, $actorid, $friends))->where($_whereClause)->orderby('feed.created desc');
     return $q->execute()->toArray(true);
 }
 public function testSavingUnmodifiedRecordsDoesNotInvokeTimestampableListener()
 {
     $this->conn->clear();
     $wiki = Doctrine_Query::create()->from('Wiki w')->where('w.id = 1')->fetchOne();
     $wiki->save();
     $this->assertEqual($wiki->Translation['FI']->version, 2);
 }
 /**
  * Query
  *
  * @param array $args
  * @return Doctrine_Query $q
  */
 protected function air_query($args = array())
 {
     $user_id = $this->parent_rec->user_id;
     $q = Doctrine_Query::create()->from('UserPhoneNumber u');
     $q->where('u.uph_user_id = ?', $user_id);
     return $q;
 }
Esempio n. 17
0
 public static function resetFieldsValues()
 {
     $list = Doctrine_Core::getTable('ExtraFieldsList')->createQuery('efl')->leftJoin('efl.ExtraFields ef')->addWhere('efl.bind_id>0')->fetchArray();
     foreach ($list as $l) {
         switch ($l['ExtraFields']['bind_type']) {
             case 'projects':
                 $t = 'Projects';
                 break;
             case 'tasks':
                 $t = 'Tasks';
                 break;
             case 'tickets':
                 $t = 'Tickets';
                 break;
             case 'discussions':
                 $t = 'Discussions';
                 break;
             case 'users':
                 $t = 'Users';
                 break;
             case 'events':
                 $t = 'Events';
                 break;
             case 'contacts':
                 $t = 'Contacts';
                 break;
         }
         if (Doctrine_Core::getTable($t)->createQuery()->addWhere('id=?', $l['bind_id'])->count() == 0) {
             Doctrine_Query::create()->delete()->from('ExtraFieldsList')->andWhere('id=?', $l['id'])->execute();
         }
     }
 }
 public function testTest()
 {
     $q = Doctrine_Query::create()->from('User u');
     $users = $q->execute();
     $array = $users->toKeyValueArray('id', 'name');
     $this->assertEqual($array, array(4 => 'zYne', 5 => 'Arnold Schwarzenegger', 6 => 'Michael Caine', 7 => 'Takeshi Kitano', 8 => 'Sylvester Stallone', 9 => 'Kurt Russell', 10 => 'Jean Reno', 11 => 'Edward Furlong'));
 }
Esempio n. 19
0
 function getApoyoByEtapa($etapa_id)
 {
     $query = Doctrine_Query::create();
     $query->from('ApoyoEstado ae, ae.EtapasEmpresa ee');
     $query->where('ee.id = ?', $etapa_id);
     return $query->execute();
 }
 public static function get_if_commodity_is_in_table($facility_code, $commodity_id)
 {
     $query = Doctrine_Query::create()->select("*")->from("facility_transaction_table")->where("facility_code='{$facility_code}' and commodity_id='{$commodity_id}' and status='1'");
     $commodities = $query->execute();
     $commodities = $commodities->count();
     return $commodities;
 }
 public function query($query, array $params = array(), $hydrationMode = null)
 {
     $parser = Doctrine_Query::create();
     $key = md5($query);
     if (isset($this->hashByQuery[$key])) {
         $parser->setCachedQueryCacheHash($this->hashByQuery[$key][0]);
         if ($this->hashByQuery[$key][1] && $this->hashByQuery[$key][2]) {
             $parser->from($this->hashByQuery[$key][1])->where($this->hashByQuery[$key][2]);
         } else {
             $parser->parseDqlQuery($query);
         }
         $res = $parser->execute($params, $hydrationMode);
     } else {
         $res = $parser->query($query, $params, $hydrationMode);
         $froms = $parser->getFrom();
         $from = $froms[0];
         if (1 < count($froms)) {
             $from = '';
         }
         $where = '';
         $simpleRelationQuery = 'FROM ' . $from . ' WHERE ' . $from . '.id = ?';
         $simpleRelationInQuery = 'FROM ' . $from . ' WHERE ' . $from . '.id IN (?)';
         if ($query === $simpleRelationQuery) {
             $where = $from . '.id = ?';
         } elseif ($query === $simpleRelationInQuery) {
             $where = $from . '.id IN (?)';
         }
         $this->hashByQuery[$key] = array($parser->calculateQueryCacheHash(), $from, $where);
     }
     $parser->free();
     return $res;
 }
 /**
  * @see sfValidatorBase
  */
 protected function doClean($values)
 {
     $originalValues = $values;
     $table = Doctrine::getTable($this->getOption('model'));
     if (!is_array($this->getOption('column'))) {
         $this->setOption('column', array($this->getOption('column')));
     }
     //if $values isn't an array, make it one
     if (!is_array($values)) {
         //use first column for key
         $columns = $this->getOption('column');
         $values = array($columns[0] => $values);
     }
     $q = Doctrine_Query::create()->from($this->getOption('model') . ' a');
     foreach ($this->getOption('column') as $column) {
         $colName = $table->getColumnName($column);
         $q->addWhere('a.' . $colName . ' = ?', $values[$column]);
     }
     $object = $q->fetchOne();
     // if no object or if we're updating the object, it's ok
     if (!$object || $this->isUpdate($object, $values)) {
         return $originalValues;
     }
     $error = new sfValidatorError($this, 'invalid', array('column' => implode(', ', $this->getOption('column')), 'value' => implode(', ', $values)));
     if ($this->getOption('throw_global_error')) {
         throw $error;
     }
     $columns = $this->getOption('column');
     throw new sfValidatorErrorSchema($this, array($columns[0] => $error));
 }
 protected function execute($arguments = array(), $options = array())
 {
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'])->getConnection();
     $this->logSection('Create directory', "Visiteur");
     $q = Doctrine_Query::create()->from('Visiteur v');
     $visiteurs = $q->execute();
     foreach ($visiteurs as $visiteur) {
         $visiteur->createDataFolder();
     }
     $this->logSection('Create directory', "Interactif");
     $q = Doctrine_Query::create()->from('Interactif i');
     $interactifs = $q->execute();
     foreach ($interactifs as $interactif) {
         $interactif->createDataFolder();
     }
     $this->logSection('Create directory', "Exposition");
     $q = Doctrine_Query::create()->from('Exposition v');
     $expositions = $q->execute();
     foreach ($expositions as $exposition) {
         $exposition->createDataFolder();
     }
     $this->logSection('Create directory', "Medaille");
     $fileSystem = new sfFilesystem();
     $fileSystem->mkdirs(sfConfig::get('sf_web_dir') . "/medaille");
     $this->logSection('Create directory', "MedailleType");
     $fileSystem = new sfFilesystem();
     $fileSystem->mkdirs(sfConfig::get('sf_web_dir') . "/medaille_type");
 }
Esempio n. 24
0
 public function validate($user, $password)
 {
     if (!isset($user)) {
         $user = new CocoasUser();
     }
     $cuenta = 0;
     try {
         $this->connection = Doctrine_Manager::connection();
         $q = Doctrine_Query::create()->from('user u')->where("u.email='" . $user->name . "'");
         $rows = $q->execute();
         $cuenta = count($rows);
     } catch (Exception $e) {
         if ($GLOBALS["debugMode"]) {
             $this->validator->errors->addError(ErrorManager::CANIS_FATAL, $e->getMessage());
         }
     }
     if ($cuenta == 1) {
         $auxUser = $rows[0];
         //Si los hash de la clave coinciden
         if ($password == $auxUser->password) {
             $user->roleName = $auxUser->Role->name;
             $user->locationId = $auxUser->Location->id;
             $user->status = $auxUser->status;
             $user->id = $auxUser->id;
         }
     } else {
         $user = new CocoasUser();
     }
     return $user;
 }
 /**
  *  si l'utilisateur est connecté afficher la playlist de l user sinon
  *  afficher une liste au hasard
  * 
  * @todo verifier si l user est dans la page d un playlist, alor afficher les mp3 de ce dernier
  * @param integer $userId
  * @return type 
  */
 public function loadUserPlaylist($userId, $playOwnerId)
 {
     $q = Doctrine_Query::create()->from('userPlayList upl')->leftJoin('upl.sfGuardUser u')->leftJoin('upl.track pi')->leftJoin('pi.playList pl')->leftJoin('pl.playOwner po');
     //$q = ($playOwnerId !== null)? $q->addWhere('po.id = ?', $playOwnerId): '';
     $q = $userId === null ? $q->limit(10) : $q->addWhere('upl.user_id = ?', $userId);
     return $q->execute();
 }
Esempio n. 26
0
 public function postDelete(Doctrine_Event $event)
 {
     //Make sure all linked tables are clean
     //RokGallery_Model_FileTags
     $q = Doctrine_Query::create()->delete('RokGallery_Model_FileTags ft')->andWhere('ft.file_id NOT IN (SELECT f.id from RokGallery_Model_File f)');
     $q->execute();
     $q->free();
     //RokGallery_Model_FileViews
     $q = Doctrine_Query::create()->delete('RokGallery_Model_FileViews fv')->andWhere('fv.file_id NOT IN (SELECT f.id from RokGallery_Model_File f)');
     $q->execute();
     $q->free();
     //RokGallery_Model_FileLoves
     $q = Doctrine_Query::create()->delete('RokGallery_Model_FileLoves fl')->andWhere('fl.file_id NOT IN (SELECT f.id from RokGallery_Model_File f)');
     $q->execute();
     $q->free();
     //rokgallery_files_index
     $conn =& Doctrine_Manager::connection();
     $dbh =& $conn->getDbh();
     $stmt = $dbh->prepare('delete from ' . RokCommon_Doctrine::getPlatformInstance()->setTableName('rokgallery_files_index') . ' where id NOT IN (SELECT f.id from ' . RokGallery_Model_FileTable::getInstance()->getTableName() . ' f)');
     $stmt->execute();
     //RokGallery_Model_Slice
     $q = Doctrine_Query::create()->delete('RokGallery_Model_Slice s')->andWhere('s.file_id NOT IN (SELECT f.id from RokGallery_Model_File f)');
     $q->execute();
     $q->free();
 }
Esempio n. 27
0
 public function testTest()
 {
     $q = Doctrine_Query::create()->from('Ticket_1208_User u');
     $user = $q->fetchOne(array(), Doctrine::HYDRATE_ARRAY);
     $this->assertTrue(isset($user['pre_hydrate']));
     $this->assertTrue(isset($user['post_hydrate']));
 }
Esempio n. 28
0
 function findMaestros()
 {
     $query = Doctrine_Query::create();
     $query->from('Contenido c');
     $query->andWhere('c.maestro = 1');
     return $query->execute();
 }
Esempio n. 29
0
 public function testCachedResultsAreSpecificToDsn()
 {
     $cacheDriver = new Doctrine_Cache_Array();
     $conn1 = Doctrine_Manager::connection('sqlite::memory:', 'conn_1');
     $conn1->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE, $cacheDriver);
     $conn2 = Doctrine_Manager::connection('sqlite::memory:', 'conn_2');
     $conn2->setAttribute(Doctrine_Core::ATTR_RESULT_CACHE, $cacheDriver);
     $this->assertNotEqual($conn1, $conn2);
     $manager = Doctrine_Manager::getInstance();
     $manager->setCurrentConnection('conn_1');
     $this->assertEqual($conn1, Doctrine_Manager::connection());
     Doctrine_Core::createTablesFromArray(array('Ticket_1706_User'));
     $user = new Ticket_1706_User();
     $user->name = 'Allen';
     $user->save();
     $manager->setCurrentConnection('conn_2');
     $this->assertEqual($conn2, Doctrine_Manager::connection());
     Doctrine_Core::createTablesFromArray(array('Ticket_1706_User'));
     $user = new Ticket_1706_User();
     $user->name = 'Bob';
     $user->save();
     $manager->setCurrentConnection('conn_1');
     $u1 = Doctrine_Query::create()->from('Ticket_1706_User u')->useResultCache()->execute();
     $this->assertEqual(1, count($u1));
     $this->assertEqual('Allen', $u1[0]->name);
     $manager->setCurrentConnection('conn_2');
     $u2 = Doctrine_Query::create()->from('Ticket_1706_User u')->useResultCache()->execute();
     $this->assertEqual(1, count($u2));
     $this->assertEqual('Bob', $u2[0]->name);
 }
Esempio n. 30
0
 public function cuentas($cuenta_id = null, $proceso_id = null)
 {
     if (!$cuenta_id) {
         //Seleccionamos los tramites que se han avanzado o tienen datos
         $tramites_arr = Doctrine_Query::create()->from('Tramite t, t.Etapas e, e.DatosSeguimiento d')->select('t.id')->where('t.updated_at > DATE_SUB(NOW(),INTERVAL 30 DAY)')->having('COUNT(d.id) > 0 OR COUNT(e.id) > 1')->groupBy('t.id')->execute(array(), Doctrine_Core::HYDRATE_SINGLE_SCALAR);
         $data['ntramites'] = count($tramites_arr);
         $cuentas = Doctrine_Query::create()->from('Cuenta c, c.Procesos.Tramites t')->select('c.*, COUNT(t.id) as ntramites')->whereIn('t.id', empty($tramites_arr) ? array(-1) : $tramites_arr)->groupBy('c.id')->execute();
         $data['cuentas'] = $cuentas;
         $data['title'] = 'Cuentas';
         $data['content'] = 'manager/estadisticas/cuentas';
     } else {
         if (!$proceso_id) {
             $cuenta = Doctrine::getTable('Cuenta')->find($cuenta_id);
             //Seleccionamos los tramites que se han avanzado o tienen datos
             $tramites_arr = Doctrine_Query::create()->from('Tramite t, t.Etapas e, e.DatosSeguimiento d, t.Proceso.Cuenta c')->where('c.id = ?', $cuenta_id)->andWhere('t.updated_at > DATE_SUB(NOW(),INTERVAL 30 DAY)')->select('t.id')->having('COUNT(d.id) > 0 OR COUNT(e.id) > 1')->groupBy('t.id')->execute(array(), Doctrine_Core::HYDRATE_SINGLE_SCALAR);
             $data['ntramites'] = count($tramites_arr);
             $procesos = Doctrine_Query::create()->from('Proceso p, p.Tramites t')->select('p.*, COUNT(t.id) as ntramites')->whereIn('t.id', $tramites_arr)->groupBy('p.id')->execute();
             $data['procesos'] = $procesos;
             $data['title'] = $cuenta->nombre;
             $data['content'] = 'manager/estadisticas/procesos';
         } else {
             $data['proceso'] = Doctrine::getTable('Proceso')->find($proceso_id);
             $tramites = Doctrine_Query::create()->from('Tramite t, t.Proceso p, t.Etapas e, e.DatosSeguimiento d')->where('p.id = ?', $proceso_id)->andWhere('t.updated_at > DATE_SUB(NOW(),INTERVAL 30 DAY)')->orderBy('t.updated_at DESC')->having('COUNT(d.id) > 0 OR COUNT(e.id) > 1')->groupBy('t.id')->execute();
             $data['tramites'] = $tramites;
             $data['title'] = $data['proceso']->nombre;
             $data['content'] = 'manager/estadisticas/tramites';
         }
     }
     $this->load->view('manager/template', $data);
 }