Completed
Push — master ( 099705...21cdad )
by Laurent
03:04
created

ControllerHelper::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
/**
3
 * ControllerHelper Helpers des Controller de l'application GLSR.
4
 *
5
 * PHP Version 5
6
 *
7
 * @author    Quétier Laurent <[email protected]>
8
 * @copyright 2014 Dev-Int GLSR
9
 * @license   http://opensource.org/licenses/gpl-license.php GNU Public License
10
 *
11
 * @version since 1.0.0
12
 *
13
 * @link      https://github.com/Dev-Int/glsr
14
 */
15
namespace AppBundle\Helper;
16
17
use AppBundle\Entity\Article;
18
use Doctrine\Common\Persistence\ObjectManager;
19
20
/**
21
 * Controller helper.
22
 *
23
 * @category Helper
24
 */
25
class ControllerHelper
26
{
27
    public function __construct($translator, $session)
28
    {
29
        $this->translator = $translator;
0 ignored issues
show
Bug introduced by
The property translator does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
30
        $this->session = $session;
0 ignored issues
show
Bug introduced by
The property session does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
31
    }
32
    /**
33
     * Tests of creation conditions.
34
     *
35
     * @param array Articles à tester
36
     * @return boolean
37
     */
38
    public function hasSupplierArticles(array $articles)
39
    {
40
        $return = true;
41
42
        // This supplier has no articles!
43
        if (count($articles) < 1) {
44
            $message = $this->translator->trans('settings.no_articles', array(), 'gs_suppliers');
45
            $this->session->getFlashBag()->add('danger', $message);
46
            $return = false;
47
        }
48
49
        return $return;
50
    }
51
52
    /**
53
     * Tests Order in progress for a supplier.
54
     *
55
     * @param \AppBundle\Entity\Article $articles Articles to test
56
     * @param \Doctrine\Common\Persistence\ObjectManager $etm Named object manager
57
     * @return boolean
58
     */
59
    public function isOrderInProgress(Article $articles, ObjectManager $etm)
60
    {
61
        $return = false;
62
        $orders = $etm->getRepository('AppBundle:Orders')->findAll();
63
        // This provider already has an order in progress!
64
        foreach ($orders as $order) {
65
            if ($order->getSupplier() === $articles->getSupplier()) {
66
                $return = true;
67
            }
68
        }
69
        return $return;
70
    }
71
72
    /**
73
     * test paramters to return
74
     *
75
     * @param object $entity     Entity to return
76
     * @param string $entityName Entity name to test
77
     * @return array             Parameters to return
78
     */
79
    protected function testReturnParam($entity, $entityName)
80
    {
81
        $entityArray = ['company', 'settings', 'group', 'tva'];
82
        if (in_array($entityName, $entityArray, true)) {
83
            $param = ['id' => $entity->getId()];
84
        } else {
85
            $param = ['slug' => $entity->getSlug()];
86
        }
87
88
        return $param;
89
    }
90
91
    /**
92
     * SetOrder for the SortAction in views.
93
     *
94
     * @param string $name   session name
95
     * @param string $entity entity name
96
     * @param string $field  field name
97
     * @param string $type   sort type ("ASC"/"DESC")
98
     */
99
    protected function setOrder($name, $entity, $field, $type = 'ASC')
100
    {
101
        $session = new Session();
102
103
        $session->set('sort.'.$name, array('entity' => $entity, 'field' => $field, 'type' => $type));
104
    }
105
106
    /**
107
     * GetOrder for the SortAction in views.
108
     *
109
     * @param string $name session name
110
     *
111
     * @return array
112
     */
113
    protected function getOrder($name)
114
    {
115
        $session = new Session();
116
117
        return $session->has('sort.' . $name) ? $session->get('sort.' . $name) : null;
118
    }
119
}
120