Completed
Push — Recipes ( 630f49...c8afb0 )
by Laurent
12:15 queued 03:48
created

OrdersRepository   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 106
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 3
dl 0
loc 106
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A getLastOrder() 0 8 1
A getLastDelivery() 0 8 1
A getLastInvoice() 0 9 1
A getAllItems() 0 8 1
A getItems() 0 8 1
A findDeliveries() 0 9 1
A findInvoices() 0 9 1
1
<?php
2
3
/**
4
 * Entity Orders.
5
 *
6
 * PHP Version 7
7
 *
8
 * @author    Quétier Laurent <[email protected]>
9
 * @copyright 2014 Dev-Int GLSR
10
 * @license   http://opensource.org/licenses/gpl-license.php GNU Public License
11
 *
12
 * @version GIT: <git_id>
13
 *
14
 * @link https://github.com/Dev-Int/glsr
15
 */
16
namespace App\Repository\Orders;
17
18
use Doctrine\ORM\EntityRepository;
19
20
/**
21
 * OrdersRepository
22
 *
23
 * @category Entity
24
 */
25
class OrdersRepository extends EntityRepository
26
{
27
    /**
28
     * Return the last orders.
29
     *
30
     * @param integer $count Nombre d'élément à afficher
31
     * @return array Query result
32
     */
33
    public function getLastOrder($count)
34
    {
35
        $query = $this->getAllItems()
36
            ->setMaxResults($count)
37
            ->getQuery();
38
39
        return $query->getResult();
40
    }
41
42
    /**
43
     * Returns the last deliveries.
44
     *
45
     * @param integer $count Nombre d'élément à afficher
46
     * @return array Query result
47
     */
48
    public function getLastDelivery($count)
49
    {
50
        $query = $this->findDeliveries()
51
            ->setMaxResults($count)
52
            ->getQuery();
53
54
        return $query->getResult();
55
    }
56
57
    /**
58
     * Return the last bills.
59
     *
60
     * @param integer $count Nombre d'élément à afficher
61
     * @return array Query result
62
     */
63
    public function getLastInvoice($count)
64
    {
65
        $query = $this->getItems()
66
            ->setMaxResults($count)
67
            ->where('o.status = 2')
68
            ->getQuery();
69
70
        return $query->getResult();
71
    }
72
73
    /**
74
     * Find Orders before delivering.
75
     *
76
     * @return \Doctrine\ORM\QueryBuilder
77
     */
78
    public function getAllItems()
79
    {
80
        $query = $this->getItems()
81
            ->where('o.delivdate > :date')
82
            ->setParameter('date', date('Y-m-d'));
83
84
        return $query;
85
    }
86
87
    /**
88
     * Find active Orders.
89
     *
90
     * @return \Doctrine\ORM\QueryBuilder
91
     */
92
    public function getItems()
93
    {
94
        $query = $this->createQueryBuilder('o')
95
            ->orderBy('o.id', 'DESC')
96
            ->where('o.status = 1');
97
98
        return $query;
99
    }
100
101
    /**
102
     * Find Orders for delivering.
103
     *
104
     * @return \Doctrine\ORM\QueryBuilder
105
     */
106
    public function findDeliveries()
107
    {
108
        $query = $this->getItems()
109
            ->where('o.delivdate <= :date')
110
            ->setParameter('date', date('Y-m-d'))
111
            ->andWhere('o.status = 1');
112
113
        return $query;
114
    }
115
116
    /**
117
     * Find Orders for billing.
118
     *
119
     * @return \Doctrine\ORM\QueryBuilder
120
     */
121
    public function findInvoices()
122
    {
123
        $query = $this->getItems()
124
            ->where('o.delivdate < :date')
125
            ->setParameter('date', date('Y-m-d'))
126
            ->andWhere('o.status > 1');
127
128
        return $query;
129
    }
130
}
131