<?php

namespace Tda\AdminBundle\Repository;

use Doctrine\ORM\EntityRepository;

/**
 * ObligesRepository
 *
 * Jorge Manrique
 */
class ObligesRepository extends EntityRepository
{
    
    public function getObliges($perPage,$offset,$queries,$sorts)
    {
        if(empty($queries['search'])) $queries['search']="";
        $orderBy="a.id DESC";
        if(is_array($sorts)){
            foreach($sorts as $key => $value){
               if($value<0) $orderBy="a.".$key." ASC";
               else if($value>0) $orderBy="a.".$key." DESC";
            }
        }
        
        $query = $this->createQueryBuilder('a')
                    ->where('a.nom LIKE :search OR a.siret LIKE :search')
                    ->add('orderBy', $orderBy)
                    ->getQuery()
                    ->setParameter('search', '%'.$queries['search'].'%')
                    ->setFirstResult($offset)
                    ->setMaxResults($perPage);

        return $query->getResult();
    }
    
    public function getObligesCount($perPage,$offset,$queries,$sorts)
    {
        if(empty($queries['search'])) $queries['search']="";
        $orderBy="a.id DESC";
        if(is_array($sorts)){
            foreach($sorts as $key => $value){
               if($value<0) $orderBy="a.".$key." ASC";
               else if($value>0) $orderBy="a.".$key." DESC";
            }
        }
        
        $nbObliges = $this->createQueryBuilder('a')
                    ->select('COUNT(a)')
                    ->where('a.nom LIKE :search OR a.siret LIKE :search')
                    ->add('orderBy', $orderBy)
                    ->getQuery()
                    ->setParameter('search', '%'.$queries['search'].'%')
                    ->getSingleScalarResult();

        return $nbObliges;
    }
    
     public function getNbObliges()
    {      
        $nbObliges = $this->createQueryBuilder('a')
                          ->select('COUNT(a)')
                          ->getQuery()
                          ->getSingleScalarResult();

        return $nbObliges;
    }
}
