Completed
Push — sf2.7 ( fb6965...00100f )
by Laurent
03:55
created

SupplierController::getOrder()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 6
rs 9.4285
cc 2
eloc 3
nc 2
nop 1
1
<?php
2
/**
3
 * DefaultController controller des fournisseurs.
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\Controller;
16
17
use Symfony\Component\HttpFoundation\Request;
18
use AppBundle\Controller\AbstractController;
19
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
20
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
21
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
22
use AppBundle\Entity\Supplier;
23
use AppBundle\Form\Type\SupplierType;
24
25
/**
26
 * Supplier controller.
27
 *
28
 * @category Controller
29
 *
30
 * @Route("/suppliers")
31
 */
32
class SupplierController extends AbstractController
33
{
34
    /**
35
     * Lists all Supplier entities.
36
     *
37
     * @Route("/", name="suppliers")
38
     * @Method("GET")
39
     * @Template()
40
     */
41 View Code Duplication
    public function indexAction(Request $request)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
42
    {
43
        $em = $this->getDoctrine()->getManager();
44
        $qb = $em->getRepository('AppBundle:Supplier')->createQueryBuilder('s');
45
        $this->addQueryBuilderSort($qb, 'supplier');
46
        $paginator = $this->get('knp_paginator')->paginate($qb, $request->query->get('page', 1), 20);
47
        
48
        return array(
49
            'paginator' => $paginator,
50
        );
51
    }
52
53
    /**
54
     * Finds and displays a Supplier entity.
55
     *
56
     * @Route("/{slug}/show", name="suppliers_show")
57
     * @Method("GET")
58
     * @Template()
59
     */
60
    public function showAction(Supplier $supplier)
61
    {
62
        $deleteForm = $this->createDeleteForm($supplier->getId(), 'suppliers_delete');
63
64
        return array(
65
            'supplier' => $supplier,
66
            'delete_form' => $deleteForm->createView(),
67
        );
68
    }
69
70
    /**
71
     * Displays a form to create a new Supplier entity.
72
     *
73
     * @Route("/new", name="suppliers_new")
74
     * @Method("GET")
75
     * @Template()
76
     */
77
    public function newAction()
78
    {
79
        $supplier = new Supplier();
80
        $form = $this->createForm(new SupplierType(), $supplier);
81
82
        return array(
83
            'supplier' => $supplier,
84
            'form'   => $form->createView(),
85
        );
86
    }
87
88
    /**
89
     * Creates a new Supplier entity.
90
     *
91
     * @Route("/create", name="suppliers_create")
92
     * @Method("POST")
93
     * @Template("AppBundle:Supplier:new.html.twig")
94
     */
95
    public function createAction(Request $request)
96
    {
97
        $supplier = new Supplier();
98
        $form = $this->createForm(new SupplierType(), $supplier);
99
        if ($form->handleRequest($request)->isValid()) {
100
            $em = $this->getDoctrine()->getManager();
101
            $em->persist($supplier);
102
            $em->flush();
103
104
            return $this->redirectToRoute('suppliers_show', array('slug' => $supplier->getSlug()));
105
        }
106
107
        return array(
108
            'supplier' => $supplier,
109
            'form'   => $form->createView(),
110
        );
111
    }
112
113
    /**
114
     * Displays a form to edit an existing Supplier entity.
115
     *
116
     * @Route("/{slug}/edit", name="suppliers_edit")
117
     * @Method("GET")
118
     * @Template()
119
     */
120
    public function editAction(Supplier $supplier)
121
    {
122
        $editForm = $this->createForm(new SupplierType(), $supplier, array(
123
            'action' => $this->generateUrl('suppliers_update', array('slug' => $supplier->getSlug())),
124
            'method' => 'PUT',
125
        ));
126
        $deleteForm = $this->createDeleteForm($supplier->getId(), 'suppliers_delete');
127
128
        return array(
129
            'supplier' => $supplier,
130
            'edit_form'   => $editForm->createView(),
131
            'delete_form' => $deleteForm->createView(),
132
        );
133
    }
134
135
    /**
136
     * Edits an existing Supplier entity.
137
     *
138
     * @Route("/{slug}/update", name="suppliers_update")
139
     * @Method("PUT")
140
     * @Template("AppBundle:Supplier:edit.html.twig")
141
     */
142
    public function updateAction(Supplier $supplier, Request $request)
143
    {
144
        $editForm = $this->createForm(new SupplierType(), $supplier, array(
145
            'action' => $this->generateUrl('suppliers_update', array('slug' => $supplier->getSlug())),
146
            'method' => 'PUT',
147
        ));
148
        if ($editForm->handleRequest($request)->isValid()) {
149
            $this->getDoctrine()->getManager()->flush();
150
            $this->addFlash('info', 'gestock.edit.ok');
151
        }
152
        $deleteForm = $this->createDeleteForm($supplier->getId(), 'suppliers_delete');
153
154
        return array(
155
            'supplier' => $supplier,
156
            'edit_form'   => $editForm->createView(),
157
            'delete_form' => $deleteForm->createView(),
158
        );
159
    }
160
161
162
    /**
163
     * Save order.
164
     *
165
     * @Route("/order/{field}/{type}", name="suppliers_sort")
166
     */
167
    public function sortAction($field, $type)
168
    {
169
        $this->setOrder('supplier', $field, $type);
170
171
        return $this->redirectToRoute('suppliers');
172
    }
173
174
    /**
175
     * Deletes a Supplier entity.
176
     *
177
     * @Route("/{id}/delete", name="suppliers_delete", requirements={"id"="\d+"})
178
     * @Method("DELETE")
179
     */
180
    public function deleteAction(Supplier $supplier, Request $request)
181
    {
182
        $form = $this->createDeleteForm($supplier->getId(), 'suppliers_delete');
183
        if ($form->handleRequest($request)->isValid()) {
184
            $em = $this->getDoctrine()->getManager();
185
            $em->remove($supplier);
186
            $em->flush();
187
        }
188
189
        return $this->redirectToRoute('suppliers');
190
    }
191
}
192