Completed
Pull Request — master (#1227)
by NOBU
15:39
created

MasterdataController   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 81
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 12
c 2
b 1
f 0
lcom 0
cbo 2
dl 0
loc 81
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B index() 0 36 5
C edit() 0 41 7
1
<?php
2
/*
3
 * This file is part of EC-CUBE
4
 *
5
 * Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved.
6
 *
7
 * http://www.lockon.co.jp/
8
 *
9
 * This program is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation; either version 2
12
 * of the License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, write to the Free Software
21
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
 */
23
24
25
namespace Eccube\Controller\Admin\Setting\System;
26
27
use Eccube\Application;
28
use Eccube\Controller\AbstractController;
29
use Eccube\Form\Type\Admin\MasterdataDataType;
30
use Symfony\Component\HttpFoundation\Request;
31
use Symfony\Component\Form\FormEvent;
32
use Symfony\Component\Form\FormEvents;
33
34
class MasterdataController extends AbstractController
0 ignored issues
show
introduced by
Missing class doc comment
Loading history...
35
{
36
    public function index(Application $app, Request $request)
0 ignored issues
show
introduced by
Missing function doc comment
Loading history...
37
    {
38
        $data = array();
39
40
        $builder = $app['form.factory']->createBuilder('admin_system_masterdata');
41
        $form = $builder->getForm();
42
43
        if ('POST' === $request->getMethod()) {
44
            $form->handleRequest($request);
45
            if ($form->isValid()) {
46
                $data = $form->getData();
47
48
                if ($data['masterdata']) {
49
                    $masterdata = $app['orm.em']->getRepository($data['masterdata'])->findBy(array(), array('rank' => 'ASC'));
50
51
                    foreach ($masterdata as $key => $value) {
52
                        $data['data'][$value['rank']]['id'] = $value['id'];
53
                        $data['data'][$value['rank']]['name'] = $value['name'];
54
                    }
55
56
                    $data['data'][$value['rank']+1]['id'] = '';
0 ignored issues
show
Bug introduced by
The variable $value seems to be defined by a foreach iteration on line 51. Are you sure the iterator is never empty, otherwise this variable is not defined?

It seems like you are relying on a variable being defined by an iteration:

foreach ($a as $b) {
}

// $b is defined here only if $a has elements, for example if $a is array()
// then $b would not be defined here. To avoid that, we recommend to set a
// default value for $b.


// Better
$b = 0; // or whatever default makes sense in your context
foreach ($a as $b) {
}

// $b is now guaranteed to be defined here.
Loading history...
57
                    $data['data'][$value['rank']+1]['name'] = '';
58
59
                    $data['masterdata_name'] = $data['masterdata'];
60
                }
61
            }
62
        }
63
64
        $builder2 = $app['form.factory']->createBuilder('admin_system_masterdata_edit', $data);
65
        $form2 = $builder2->getForm();
66
67
        return $app->render('Setting/System/masterdata.twig', array(
68
            'form' => $form->createView(),
69
            'form2' => $form2->createView(),
70
        ));
71
    }
72
73
    public function edit(Application $app, Request $request)
0 ignored issues
show
introduced by
Missing function doc comment
Loading history...
74
    {
75
        $builder2 = $app['form.factory']->createBuilder('admin_system_masterdata_edit');
76
        $form2 = $builder2->getForm();
77
78
        if ('POST' === $request->getMethod()) {
79
            $form2->handleRequest($request);
80
81
            if ($form2->isValid()) {
82
                $data = $form2->getData();
83
84
                $entity = new $data['masterdata_name']();
0 ignored issues
show
introduced by
Use parentheses when instantiating classes
Loading history...
85
                foreach ($data['data'] as $key => $value) {
86
                    if ($value['id'] !== null && $value['name'] !== null) {
87
                        $entity->setId($value['id']);
88
                        $entity->setName($value['name']);
89
                        $entity->setRank($key);
90
                        $app['orm.em']->merge($entity);
91
                    } else {
92
                        // remove
93
                        $rank = $app['orm.em']->getRepository($data['masterdata_name'])->findOneBy(array('rank' => $key));
94
                        if ($rank) {
95
                            $app['orm.em']->remove($rank);
96
                        }
97
                    }
98
                }
99
                $app['orm.em']->flush();
100
                $app->addSuccess('admin.register.complete', 'admin');
101
102
                return $app->redirect($app->url('admin_setting_system_masterdata'));
103
            }
104
        }
105
106
        $builder = $app['form.factory']->createBuilder('admin_system_masterdata');
107
        $form = $builder->getForm();
108
109
        return $app->render('Setting/System/masterdata.twig', array(
110
            'form' => $form->createView(),
111
            'form2' => $form2->createView(),
112
        ));
113
    }
114
}
115