static function getProyectos($idApp)
 {
     $proyectos = new PcaeProyectosApps();
     $rows = $proyectos->cargaCondicion("*", "IdApp={$idApp}", "Id ASC");
     unset($proyectos);
     return $rows;
 }
 /**
  * Devuelve un array de objetos \PcaeApps
  * asociados al proyecto en curso.
  *
  * @return array Array de objetos \PcaeApps
  */
 public function getApps()
 {
     $apps = array();
     $app = new PcaeProyectosApps();
     $rows = $app->cargaCondicion("IdApp", "IdProyecto='{$this->Id}'");
     unset($app);
     foreach ($rows as $row) {
         $apps[] = new PcaeApps($row['IdApp']);
     }
     return $apps;
 }
 /**
  * Comprueba la unicidad de IdProyecto-IdApp
  */
 public function validaLogico()
 {
     parent::validaLogico();
     if (!$this->Id) {
         $proApp = new PcaeProyectosApps();
         $rows = $proApp->cargaCondicion("Id", "IdProyecto='{$this->IdProyecto}' AND IdApp='{$this->IdApp}'");
         unset($proApp);
         if (count($rows)) {
             $this->_errores[] = "Ya existe esa App en el proyecto";
         }
     }
 }
 /**
  * Asigno permiso al usuario-proyecto-app
  * 
  * Y además creo el usuario en el cpanel del proyecto.
  * 
  * @return boolean
  */
 public function create()
 {
     $id = parent::create();
     if ($id) {
         // Para saber el perfil que tiene el usuario con la empresa.
         $usuario = new PcaeUsuarios($this->IdUsuario);
         $perfil = $usuario->getPerfilEmpresa($this->IdEmpresa);
         $idPerfil = $perfil->getId();
         unset($usuario);
         unset($perfil);
         $proyectoApp = new PcaeProyectosApps();
         $filtro = "IdProyecto='{$this->IdProyecto}' AND IdApp='{$this->IdApp}'";
         $rows = $proyectoApp->cargaCondicion("*", $filtro);
         unset($proyectoApp);
         $row = $rows[0];
         if ($row['Id']) {
             $connection = array('dbEngine' => $row['DbEngine'], 'host' => $row['Host'], 'user' => $row['User'], 'password' => $row['Password'], 'dataBase' => $row['Database']);
             $em = new EntityManager($connection);
             if ($em->getDbLink()) {
                 $query = "select Id from {$connection['dataBase']}.CpanUsuarios where IdUsuario='{$this->IdUsuario}'";
                 $em->query($query);
                 $rows = $em->fetchResult();
                 $id = $rows[0]['Id'];
                 if ($id) {
                     $query = "update {$connection['dataBase']}.CpanUsuarios set IdPerfil='{$idPerfil}' where Id='{$id}'";
                     $em->query($query);
                 } else {
                     $query = "insert into {$connection['dataBase']}.CpanUsuarios (IdUsuario,IdPerfil,IdRol,IdTipoUsuario) values ('{$this->IdUsuario}','{$idPerfil}','1','1');";
                     $em->query($query);
                     $lastId = $em->getInsertId();
                     $query = "update {$connection['dataBase']}.CpanUsuarios set SortOrder='{$lastId}', PrimaryKeyMD5='" . md5($lastId) . "' WHERE Id='{$lastId}'";
                     $em->query($query);
                 }
                 $em->desConecta();
             }
             unset($em);
         }
     }
     return $id;
 }
 /**
  * Devuelve un array anidado con las empresa, proyectos
  * y aplicaciones a los que tiene acceso el usuario en curso.
  *
  * @return array
  */
 public function getArrayAccesos()
 {
     $accesos = array();
     $permisos = new PcaePermisos();
     $rows = $permisos->cargaCondicion("IdEmpresa,IdProyecto,IdApp", "IdUsuario='{$this->Id}'", "IdEmpresa,IdProyecto,IdApp ASC");
     unset($permisos);
     $empAnt = '';
     $proAnt = '';
     foreach ($rows as $row) {
         if ($empAnt != $row['IdEmpresa']) {
             $empresa = new PcaeEmpresas($row['IdEmpresa']);
             $accesos['empresas'][$row['IdEmpresa']] = array('empresa' => $empresa->getRazonSocial(), 'perfil' => $this->getPerfilEmpresa($row['IdEmpresa'])->getPerfil());
             unset($empresa);
         }
         if ($proAnt != $row['IdProyecto']) {
             $proyecto = new PcaeProyectos($row['IdProyecto']);
             $accesos['empresas'][$row['IdEmpresa']]['proyectos'][$row['IdProyecto']] = array('proyecto' => $proyecto->getProyecto());
             unset($proyecto);
         }
         $app = new PcaeApps($row['IdApp']);
         $proyectoApp = new PcaeProyectosApps();
         $keyProyectoApp = $proyectoApp->cargaCondicion("PrimaryKeyMD5", "IdProyecto='{$row['IdProyecto']}' AND IdApp='{$row['IdApp']}'");
         $accesos['empresas'][$row['IdEmpresa']]['proyectos'][$row['IdProyecto']]['apps'][$row['IdApp']] = array('aplicacion' => $app->getAplicacion(), 'url' => $app->getUrl(), 'IdProyectoApp' => $keyProyectoApp[0]['PrimaryKeyMD5']);
         unset($app);
         unset($proyectoApp);
         $proAnt = $row['IdProyecto'];
         $empAnt = $row['IdEmpresa'];
     }
     return $accesos;
 }