Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/MemberBundle/Repository/
Upload File :
Current File : /var/www/v3.cesa.co.za/src/MemberBundle/Repository/MemberFirmRepository.php

<?php

namespace App\MemberBundle\Repository;

use App\MemberBundle\Entity\MemberFirm;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query\ResultSetMappingBuilder;
use Doctrine\Persistence\ManagerRegistry;

/**
 * @extends ServiceEntityRepository<MemberFirm>
 *
 * @method MemberFirm|null find($id, $lockMode = null, $lockVersion = null)
 * @method MemberFirm|null findOneBy(array $criteria, array $orderBy = null)
 * @method MemberFirm[]    findAll()
 * @method MemberFirm[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
 */
class MemberFirmRepository extends ServiceEntityRepository
{

    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, MemberFirm::class);
    }

    /**
     * Get the list of IDs
     * @return array
     */
    public function findAllIds()
    {
        return $this->createQueryBuilder('mf')
            ->select('mf.id')
            //                        ->where('ma.cancelled = 0 OR ma.cancelled IS NULL')
            //                        ->setMaxResults(100)
            ->getQuery()->getArrayResult()
        ;
    }

    /**
     * Get the list of IDs
     * @return array
     */
    public function getList($memberStatus = array('Member'))
    {

        $qb = $this->createQueryBuilder('mf');

        if (is_array($memberStatus) && count($memberStatus) > 0) {
            $qb->where('mf.member_status IN (:memberStatus)')->setParameter('memberStatus', $memberStatus);
        }

        $qb->orderBy('mf.firm_name', 'ASC');

        return $qb->getQuery()->getArrayResult();
    }

    /**
     * Get the list of IDs
     * @return array
     */
    public function getStatistics($memberStatus = array('Member'))
    {

        $qb = $this->createQueryBuilder('mf')->select("CONCAT('Black Women Owned, ',mf.black_women_owned) AS Label, COUNT(DISTINCT mf.id) AS num, SUM(mf.three_years_average_turnover) AS total_turnover");

        if (is_array($memberStatus) && count($memberStatus) > 0) {
            $qb->where('mf.member_status IN (:memberStatus)')->setParameter('memberStatus', $memberStatus);
        }

        $qb->groupBy('mf.black_women_owned');

        $result = $qb->getQuery()->getArrayResult();

        $qb = $this->createQueryBuilder('mf')->select("CONCAT('Black Owned, ',mf.black_owned) AS Label, COUNT(DISTINCT mf.id) AS num, SUM(mf.three_years_average_turnover) AS total_turnover");

        if (is_array($memberStatus) && count($memberStatus) > 0) {
            $qb->where('mf.member_status IN (:memberStatus)')->setParameter('memberStatus', $memberStatus);
        }

        $qb->groupBy('mf.black_owned');

        $result = array_merge($result, $qb->getQuery()->getArrayResult());

        return $result;
    }

    //    /**
    //     * @return MemberFirm[] Returns an array of MemberFirm objects
    //     */
    //    public function findByExampleField($value): array
    //    {
    //        return $this->createQueryBuilder('m')
    //            ->andWhere('m.exampleField = :val')
    //            ->setParameter('val', $value)
    //            ->orderBy('m.id', 'ASC')
    //            ->setMaxResults(10)
    //            ->getQuery()
    //            ->getResult()
    //        ;
    //    }
    //    public function findOneBySomeField($value): ?MemberFirm
    //    {
    //        return $this->createQueryBuilder('m')
    //            ->andWhere('m.exampleField = :val')
    //            ->setParameter('val', $value)
    //            ->getQuery()
    //            ->getOneOrNullResult()
    //        ;
    //    }
}