public function sincronizaAction() { /* $usuario = $this->getEm()->getRepository('MyClasses\Entities\AclUsuario') ->findOneBy(array("id"=>3)); foreach ($usuario->getEquipes() as $equipe) $idsEquipes[] = $equipe->getId(); $ultimaSincronizacao = new \DateTime("2015/01/01 09:00:00"); $query = $this->getEm()->createQueryBuilder(); $query->select("p, up, ep, t, ut, c, uc") ->from("MyClasses\Entities\Projeto", "p") ->leftJoin("p.usuario", "up") ->leftJoin("p.equipe", "ep") ->leftJoin("p.tarefas", "t") ->leftJoin("t.usuario", "ut") ->leftJoin("t.comentarios", "c") ->leftJoin("c.usuario", "uc") ->where( $query->expr()->orX( $query->expr()->eq("t.usuario", $usuario->getId()), $query->expr()->in("p.equipe", $idsEquipes) ) ) ->andWhere($query->expr()->gt("t.modificado", "'".$ultimaSincronizacao->format("Y/m/d H:i:s")."'")) ->andWhere($query->expr()->in("t.status", ":status")); if ( in_array(1, $idsEquipes)) //se faz parte da equipe ADM $query->setParameter("status", array("aberta", "concluir", "arquivada")); else $query->setParameter("status", array("aberta", "concluida", "rejeitada", "arquivada")); $projetosGeral = $query->getQuery()->getResult(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY); $idsTarefas = null; $hoje = new \DateTime(); $nSemanaHoje = date("w"); $inicioSemana = new \DateTime("-".$nSemanaHoje." days"); $fimSemana = new \DateTime("+".(6-$nSemanaHoje)." days"); $atualizar[0] = false; //se true, sinaliza atualizar projetos pessoais $atualizar[1] = false; //se true, sinaliza atualizar projetos equipes $atualizar[2] = false; //se true, sinaliza atualizar projetos hoje $atualizar[3] = false; //se true, sinaliza atualizar projetos semana foreach ($projetosGeral as $projeto){ if (!$atualizar[0] && $projeto['usuario']['id'] == $idUsuario) $atualizar[0] = true; if (!$atualizar[1] && in_array($projeto['equipe']['id'], $idsEquipes)) $atualizar[1] = true; foreach ($projeto['tarefas'] as $tarefa){ if (!$atualizar[2] && $tarefa['vencimento']->format('Y/m/d') == $hoje->format('Y/m/d')) $atualizar[2] = true; if (!$atualizar[3] && ($tarefa['vencimento']->format('Y/m/d') >= $inicioSemana->format('Y/m/d') && $tarefa['vencimento']->format('Y/m/d') <= $fimSemana->format('Y/m/d')) ) $atualizar[3] = true; $idsTarefas[] = $tarefa['id']; } } if ($idsTarefas != null) print_r( array( 0 => $idsTarefas, 1 => $projetosGeral, 2 => $atualizar )); else return null;*/ $cliente = new SoapClient($this->_WSDL_URI . '/wsdl'); $idsTarefas = $cliente->sincroniza(1, "2015/01/01 09:00:00"); return new ViewModel(array('idsTarefas' => $idsTarefas)); }