%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emtnaeewxm/www/src/EEM/ArticleBundle/Repository/
Upload File :
Create Path :
Current File : /home/emtnaeewxm/www/src/EEM/ArticleBundle/Repository/ArticleRepository.php

<?php

namespace EEM\ArticleBundle\Repository;

use Doctrine\ORM\QueryBuilder;

/**
 * ArticleRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class ArticleRepository extends \Doctrine\ORM\EntityRepository
{


    public function recherchePieceRechange()
    {
        $queryBuilder = $this->createQueryBuilder('a');
        $queryBuilder->andWhere('a.archiver is null or a.archiver = :archiv')
            ->setParameter('archiv', false);

        $queryBuilder
            ->leftJoin('a.famille', 'famille')
            ->andWhere('famille.pieceRechange = :type')
            ->setParameter('type', true);
        $query = $queryBuilder->getQuery();
        $results = $query->getResult();
        return $results;
    }

    public function MyFindAll($data)
    {
        $queryBuilder = $this->createQueryBuilder('a');

        $this->search($queryBuilder, $data);
        $queryBuilder->andWhere('a.archiver is null or a.archiver = :archiv')
            ->setParameter('archiv', false);

        /* $query = $queryBuilder->getQuery();
          $results = $query->getResult(); */
        return $queryBuilder;
    }

    public function articleDisponible()
    {
        $queryBuilder = $this->createQueryBuilder('a');

        $queryBuilder->andWhere('a.archiver is null or a.archiver = :archiv')
            ->setParameter('archiv', false);

        $query = $queryBuilder->getQuery();
        $results = $query->getResult();
        return $results;
    }

    public function MyFindAllArchive($data)
    {
        $queryBuilder = $this->createQueryBuilder('a');
        $queryBuilder->andWhere('a.archiver = :archiv')
            ->setParameter('archiv', true);

        $this->search($queryBuilder, $data);

        /* $query = $queryBuilder->getQuery();
          $results = $query->getResult(); */
        return $queryBuilder;
    }

    public function chiffreArticle($data)
    {
        $queryBuilder = $this->createQueryBuilder('a');
        $queryBuilder->andWhere('a.archiver is null or a.archiver = :archiv')
            ->setParameter('archiv', false);

        $this->search($queryBuilder, $data);

        $query = $queryBuilder->getQuery();
        $results = $query->getResult();
        return $results;
    }

    public function chiffreArticleArchive($data)
    {
        $queryBuilder = $this->createQueryBuilder('a');
        $queryBuilder->andWhere('a.archiver = :archiv')
            ->setParameter('archiv', true);

        $this->search($queryBuilder, $data);

        $query = $queryBuilder->getQuery();
        $results = $query->getResult();
        return $results;
    }

    public function chiffreArticleMagasin($data, $array_article_magasin)
    {
        $queryBuilder = $this->createQueryBuilder('a');
        $queryBuilder->andWhere('a.archiver is null or a.archiver = :archiv')
            ->andWhere('a.qteMagasin > 0')
            ->setParameter('archiv', false);

        $this->search($queryBuilder, $data);
        $queryBuilder->andWhere('a.id IN (:array_article_magasin)')
            ->setParameter('array_article_magasin', $array_article_magasin);

        $query = $queryBuilder->getQuery();
        $results = $query->getResult();
        return $results;
    }

    public function chiffreArticleGros($data, $array_article_achat)
    {
        $queryBuilder = $this->createQueryBuilder('a');
        $queryBuilder->andWhere('a.archiver is null or a.archiver = :archiv')
            ->setParameter('archiv', false);

        $this->searchMagasin($queryBuilder, $data);

        $queryBuilder->andWhere('a.id IN (:array_article_achat)')
            ->setParameter('array_article_achat', $array_article_achat);

        $query = $queryBuilder->getQuery();
        $results = $query->getResult();
        return $results;
    }

    private function search(QueryBuilder $qb, $data)
    {
        if (isset($data['type']) && $data['type'] == 'gros') {
            if (isset($data['stock']) && !empty($data['stock'])) {
                if ($data['stock'] == 'oui') {
                    $qb->andWhere('a.qteGros > :qte')
                        ->setParameter('qte', 0);
                } else {
                    $qb->andWhere('a.qteGros <= :qte')
                        ->setParameter('qte', 0);
                }
            }
        } else {
            if (isset($data['stock']) && !empty($data['stock'])) {
                if ($data['stock'] == 'oui') {
                    $qb->andWhere('a.qte > :qte')
                        ->setParameter('qte', 0);
                } else {
                    $qb->andWhere('a.qte <= :qte')
                        ->setParameter('qte', 0);
                }
            }
        }

        if (isset($data['barcode']) && !empty($data['barcode'])) {
            $qb->andWhere('a.codeABarre = :barcode')
                ->setParameter('barcode', $data['barcode']);
        }
        if (isset($data['famille']) && !empty($data['famille'])) {
            $qb->andWhere('a.famille = :famille')
                ->setParameter('famille', $data['famille']);
        }
        if (isset($data['marque']) && !empty($data['marque'])) {
            $qb->andWhere('a.marque = :marque')
                ->setParameter('marque', $data['marque']);
        }
        if (isset($data['modele']) && !empty($data['modele'])) {
            $qb->andWhere('a.modele = :modele')
                ->setParameter('modele', $data['modele']);
        }
    }

    private function searchMagasin(QueryBuilder $qb, $data)
    {

        if (isset($data['stock']) && !empty($data['stock'])) {
            if ($data['stock'] == 'oui') {
                $qb->andWhere('a.qte > :qte')
                    ->setParameter('qte', 0);
            } else {
                $qb->andWhere('a.qte <= :qte')
                    ->setParameter('qte', 0);
            }
        }

        if (isset($data['barcode']) && !empty($data['barcode'])) {
            $qb->andWhere('a.codeABarre = :barcode')
                ->setParameter('barcode', $data['barcode']);
        }
        if (isset($data['famille']) && !empty($data['famille'])) {
            $qb->andWhere('a.famille = :famille')
                ->setParameter('famille', $data['famille']);
        }
        if (isset($data['marque']) && !empty($data['marque'])) {
            $qb->andWhere('a.marque = :marque')
                ->setParameter('marque', $data['marque']);
        }
        if (isset($data['modele']) && !empty($data['modele'])) {
            $qb->andWhere('a.modele = :modele')
                ->setParameter('modele', $data['modele']);
        }
    }
}

Zerion Mini Shell 1.0