<?php

namespace OfficeBrain\Bundle\SupplierComplianceBundle\Entity;

/**
 * ProductSupplierComplianceRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class ProductSupplierComplianceRepository extends \Doctrine\ORM\EntityRepository
{
    protected $projectSetting;
    protected $paginatorService;
    protected $projectSettingService;
    
    public function getPaginatorService()
    {
        return $this->paginatorService;
    }
    
    public function setPaginatorService($paginatorService)
    {
        $this->paginatorService = $paginatorService;
    }
    
    public function getProjectSetting()
    {
        return $this->paginatorService;
    }
    
    public function setProjectSetting($projectSetting)
    {
        $this->projectSetting = $projectSetting;
        $this->prepareProjectSettingData();
    }
    
    public function prepareProjectSettingData()
    {
        $this->userId = $this->projectSetting['user_id'];
        $this->userType = $this->projectSetting['user_type'];
        $this->createdUid = $this->upatedUid = $this->userId;
        $this->instanceId = $this->projectSetting['instance_id'];
        $this->instanceType = $this->projectSetting['instance_type'];
        $this->cultureId = $this->projectSetting['culture_id'];
        $this->cultureCode = $this->projectSetting['culture_code'];
    }
    
    public function getQueryBuilder()
    {
        return $this->getEntityManager()->getRepository('OfficeBrainSupplierComplianceBundle:ProductSupplierCompliance')->createQueryBuilder('r');
    }

    public function getCompliaceProductById($id)
    {
        $queryBuilder = $this->getQueryBuilder();
        $queryBuilder->where('r.productId = :productId');
        $queryBuilder->setParameter('productId', $id);
        return $queryBuilder->getQuery()->getOneOrNullResult();
    }

    public function saveCompliaceProduct($product_id,$compliance,$object){
        $em=$this->getEntityManager();
        $mappedComplaince = new ProductSupplierCompliance();
        if($object!=null){
            $mappedComplaince = $object;
        }
        $mappedComplaince->setComplianceId($compliance);
        $mappedComplaince->setProductId($product_id);
        $em->persist($mappedComplaince);
        $em->flush();
        return $mappedComplaince;
    }
}
