OrderRepositoryTrait   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 15
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 15
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A countSalesByAffiliate() 0 11 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Odiseo\SyliusReferralsPlugin\Repository;
6
7
use Odiseo\SyliusReferralsPlugin\Entity\AffiliateInterface;
8
use Sylius\Component\Core\OrderPaymentStates;
9
10
trait OrderRepositoryTrait
11
{
12
    abstract public function createQueryBuilder($alias, $indexBy = null);
13
14
    public function countSalesByAffiliate(AffiliateInterface $affiliate): int
15
    {
16
        return (int) $this->createQueryBuilder('o')
17
            ->select('COUNT(o.id)')
18
            ->innerJoin('o.affiliateReferral', 'ar')
19
            ->andWhere('ar.affiliate = :affiliate')
20
            ->andWhere('o.paymentState = :paymentState')
21
            ->setParameter('affiliate', $affiliate)
22
            ->setParameter('paymentState', OrderPaymentStates::STATE_PAID)
23
            ->getQuery()
24
            ->getSingleScalarResult()
25
        ;
26
    }
27
}
28