ninegate/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/CalendareventRepository.php

101 lines
3.9 KiB
PHP

<?php
namespace Cadoles\PortalBundle\Repository;
use Doctrine\ORM\EntityRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Cadoles\PortalBundle\Entity\Page;
use Cadoles\PortalBundle\Entity\Pagecategory;
class CalendareventRepository extends EntityRepository
{
public function getCalendareventByDate($calendar,$start,$end)
{
$calendarevents=$this->createQueryBuilder('calendarevent')
->where('calendarevent.calendar=:calendar')
->andWhere('calendarevent.start>=:start')
->andWhere('calendarevent.end<=:end')
->setParameter('calendar',$calendar)
->setParameter('start',$start)
->setParameter('end',$end)
->OrderBy('calendarevent.start', 'ASC')
->getQuery()->getResult();
return $calendarevents;
}
public function getCalendareventShareByDate($user,$start,$end)
{
// Event partagées
$calendareventshared=[];
if($user) {
$calendareventshared=$this->createQueryBuilder('calendarevent')
->andWhere('calendarevent.start>=:start')
->andWhere('calendarevent.end<=:end')
->from('CadolesPortalBundle:Calendar','calendar')
->andWhere('calendarevent.calendar=calendar')
->andWhere('calendar.user != :user')
->andWhere('calendar.user is not null')
->from('CadolesCoreBundle:Group','groupe')
->andWhere('groupe.fgcanshare=:fgcanshare')
->andWhere('groupe MEMBER OF calendarevent.groups')
->from('CadolesCoreBundle:UserGroup','usergroupe')
->andWhere('groupe=usergroupe.group')
->andWhere('usergroupe.user=:user')
->from('CadolesCoreBundle:UserGroup','proprio')
->andWhere('proprio.group=groupe')
->andWhere('proprio.user=calendar.user')
->setParameter('fgcanshare',true)
->setParameter('user',$user)
->setParameter('start',$start)
->setParameter('end',$end)
->orderBy('calendarevent.start', 'ASC')
->getQuery()->getResult();
}
return $calendareventshared;
}
public function getCalendareventGroupsShareByDate($user,$start,$end)
{
// Event partagées
$calendareventshared=[];
if($user) {
$calendareventshared=$this->createQueryBuilder('calendarevent')
->andWhere('calendarevent.start>=:start')
->andWhere('calendarevent.end<=:end')
->from('CadolesPortalBundle:Calendar','calendar')
->andWhere('calendarevent.calendar=calendar')
->from('CadolesCoreBundle:Group','groupe')
->andWhere('groupe.fgcanshare=:fgcanshare')
->andWhere('groupe MEMBER OF calendarevent.groups')
->from('CadolesCoreBundle:UserGroup','usergroupe')
->andWhere('groupe=usergroupe.group')
->andWhere('usergroupe.user=:user')
->from('CadolesCoreBundle:UserGroup','proprio')
->andWhere('proprio.group=groupe')
->andWhere('proprio.user=calendar.user')
->setParameter('fgcanshare',true)
->setParameter('user',$user)
->setParameter('start',$start)
->setParameter('end',$end)
->orderBy('calendarevent.start', 'ASC')
->getQuery()->getResult();
}
return $calendareventshared;
}
}