<?php

namespace OfficeBrain\Bundle\FlipBookBundle\Entity;

/**
 * FlipBookRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class FlipBookRepository extends \Doctrine\ORM\EntityRepository
{
	public function getPaginatorService()
    {
        return $this->paginatorService;
    }
    
    public function setPaginatorService($paginatorService)
    {
        $this->paginatorService = $paginatorService;
    }

    public function getQueryBuilder()
    {
        return $this->getEntityManager()->getRepository('OfficeBrainFlipBookBundle:FlipBook')->createQueryBuilder('r');
    }
    
    public function getList($keywords, $page,$recordsPerPage)
    {
        $queryBuilder = $this->getQueryBuilder();
        if($keywords!=null){
            $queryBuilder->andWhere('r.title = :title')
            ->setParameter('title', $keywords);
        }
        $queryBuilder->orderBy('r.id', 'ASC');
        return $this->paginatorService->paginate($queryBuilder, $page, $recordsPerPage);
    }

    public function getById($id, $status="")
    {
        $queryBuilder = $this->getQueryBuilder();
        $queryBuilder->where('r.id = :id');
        if($status!=""){
        	 $queryBuilder->andWhere('r.status = :status');
        	 $queryBuilder->setParameter('status', $status);
        }
        $queryBuilder->setParameter('id', $id);
        return $queryBuilder->getQuery()->getOneOrNullResult();
    }

    public function deleteById($id)
    {
       $em=$this->getEntityManager();
       $flipBookObj = $this->getById($id);
        $em->remove($flipBookObj);
        $em->flush();
    }
    
}
