Completed
Push — master ( 60d200...e262bd )
by Andrea
08:44
created

Fifree2installCommand::execute()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 38
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 38
ccs 0
cts 26
cp 0
rs 8.5806
c 1
b 0
f 0
cc 4
eloc 25
nc 4
nop 2
crap 20
1
<?php
2
3
namespace Fi\CoreBundle\Command;
4
5
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
6
use Symfony\Component\Console\Input\InputArgument;
7
use Symfony\Component\Console\Input\InputInterface;
8
use Symfony\Component\Console\Input\InputOption;
9
use Symfony\Component\Console\Output\OutputInterface;
10
use Symfony\Component\Console\Input\ArrayInput;
11
12
class Fifree2installCommand extends ContainerAwareCommand
13
{
14
15 1
    protected function configure()
16
    {
17
        $this
18 1
                ->setName('fifree2:install')
19 1
                ->setDescription('Installazione ambiente fifree')
20 1
                ->setHelp('Crea il database, un utente amministratore e i dati di default')
21 1
                ->addArgument('admin', InputArgument::REQUIRED, 'Username per amministratore')
22 1
                ->addArgument('adminpass', InputArgument::REQUIRED, 'Password per amministratore')
23 1
                ->addArgument('adminemail', InputArgument::REQUIRED, 'Email per amministratore')
24
        ;
25 1
    }
26
27
    protected function execute(InputInterface $input, OutputInterface $output)
28
    {
29
        $admin = $input->getArgument('admin');
30
        $adminpass = $input->getArgument('adminpass');
31
        $adminemail = $input->getArgument('adminemail');
32
33
        if (!$admin) {
34
            echo "Inserire il nome utente dell'amministratore";
35
36
            return 1;
37
        }
38
        if (!$adminpass) {
39
            echo "Inserire la password per dell'amministratore";
40
41
            return 1;
42
        }
43
        if (!$adminemail) {
44
            echo "Inserire la mail dell'amministratore";
45
46
            return 1;
47
        }
48
49
        $commanddb = $this->getApplication()->find('fifree2:createdatabase');
50
        $argumentsdb = array('command' => 'fifree2:createdatabase');
51
        $inputc = new ArrayInput($argumentsdb);
52
        $commanddb->run($inputc, $output);
53
54
        $userManipulator = $this->getContainer()->get('fifree.fos_user.util.user_manipulator');
55
56
        $adminPassword = $adminpass;
57
        $adminUsername = $admin;
58
        $adminEmail = $adminemail;
59
        $isActive = true;
60
        $isSuperAdmin = true;
61
        $userManipulator->create($adminUsername, $adminPassword, $adminEmail, $isActive, $isSuperAdmin);
62
63
        $this->loadDefaultValues($admin);
64
    }
65
66
    private function loadDefaultValues($admin)
67
    {
68
        $em = $this->getContainer()->get('doctrine')->getManager();
69
70
        $ruolos = new \Fi\CoreBundle\Entity\ruoli();
71
        $ruolos->setRuolo('Super Admin');
72
        $ruolos->setPaginainiziale('/adminpanel');
73
        $ruolos->setIsSuperadmin(true);
74
        $ruolos->setIsAdmin(true);
75
        $ruolos->setIsUser(false);
76
        $em->persist($ruolos);
77
        $ruoloa = new \Fi\CoreBundle\Entity\ruoli();
78
        $ruoloa->setRuolo('Amministratore');
79
        $ruoloa->setPaginainiziale('/adminpanel');
80
        $ruoloa->setIsSuperadmin(false);
81
        $ruoloa->setIsAdmin(true);
82
        $ruoloa->setIsUser(false);
83
        $em->persist($ruoloa);
84
        $ruolou = new \Fi\CoreBundle\Entity\ruoli();
85
        $ruolou->setRuolo('Utente');
86
        $ruolou->setPaginainiziale('/ffprincipale');
87
        $ruolou->setIsSuperadmin(false);
88
        $ruolou->setIsAdmin(false);
89
        $ruolou->setIsUser(true);
90
        $em->persist($ruolou);
91
        $em->flush();
92
93
        //Si tiene in memoria l'id del super admin
94
        $ruolo = $em->getRepository('FiCoreBundle:Ruoli')->findOneBy(array('is_superadmin' => true)); //SuperAdmin
95
        $operatore = $em->getRepository('FiCoreBundle:Operatori')->findOneByUsername($admin);
96
        $operatore->setRuoli($ruolo);
97
        $em->persist($operatore);
98
        $em->flush();
99
100
        $this->insertDefaultMenu($em);
101
102
        $this->insertDefaultFfTables($em);
103
104
        $permessimnuapp = new \Fi\CoreBundle\Entity\permessi();
105
        $permessimnuapp->setRuoli($ruolo);
106
        $permessimnuapp->setModulo('MenuApplicazione');
107
        $permessimnuapp->setCrud('crud');
108
        $em->persist($permessimnuapp);
109
110
        $permessiopt = new \Fi\CoreBundle\Entity\permessi();
111
        $permessiopt->setRuoli($ruolo);
112
        $permessiopt->setModulo('OpzioniTabella');
113
        $permessiopt->setCrud('crud');
114
        $em->persist($permessiopt);
115
116
        $permessitbl = new \Fi\CoreBundle\Entity\permessi();
117
        $permessitbl->setRuoli($ruolo);
118
        $permessitbl->setModulo('Tabelle');
119
        $permessitbl->setCrud('crud');
120
        $em->persist($permessitbl);
121
122
        $permessi = new \Fi\CoreBundle\Entity\permessi();
123
        $permessi->setRuoli($ruolo);
124
        $permessi->setModulo('Permessi');
125
        $permessi->setCrud('crud');
126
        $em->persist($permessi);
127
128
        $permessiope = new \Fi\CoreBundle\Entity\permessi();
129
        $permessiope->setRuoli($ruolo);
130
        $permessiope->setModulo('Operatori');
131
        $permessiope->setCrud('cru');
132
        $em->persist($permessiope);
133
134
        $permessiruo = new \Fi\CoreBundle\Entity\permessi();
135
        $permessiruo->setRuoli($ruolo);
136
        $permessiruo->setModulo('Ruoli');
137
        $permessiruo->setCrud('crud');
138
        $em->persist($permessiruo);
139
140
        $permessifp = new \Fi\CoreBundle\Entity\permessi();
141
        $permessifp->setRuoli($ruolo);
142
        $permessifp->setModulo('Ffprincipale');
143
        $permessifp->setCrud('crud');
144
        $em->persist($permessifp);
145
146
        $permessifs = new \Fi\CoreBundle\Entity\permessi();
147
        $permessifs->setRuoli($ruolo);
148
        $permessifs->setModulo('Ffsecondaria');
149
        $permessifs->setCrud('crud');
150
        $em->persist($permessifs);
151
152
        $tabelle = new \Fi\CoreBundle\Entity\tabelle();
153
        $tabelle->setNometabella('*');
154
        $em->persist($tabelle);
155
156
        $tabelleUno = new \Fi\CoreBundle\Entity\tabelle();
157
        $tabelleUno->setNometabella('Ffsecondaria');
158
        $tabelleUno->setNomecampo('ffprincipale');
159
        $tabelleUno->setMostraindex(true);
160
        $tabelleUno->setMostrastampa(true);
161
        $tabelleUno->setRegistrastorico(true);
162
        $em->persist($tabelleUno);
163
164
        $tabelleDue = new \Fi\CoreBundle\Entity\tabelle();
165
        $tabelleDue->setNometabella('Ffsecondaria');
166
        $tabelleDue->setNomecampo('descsec');
167
        $tabelleDue->setMostraindex(true);
168
        $tabelleDue->setMostrastampa(true);
169
        $tabelleDue->setRegistrastorico(true);
170
        $em->persist($tabelleDue);
171
172
173
        $opzionitabelle = new \Fi\CoreBundle\Entity\opzioniTabella();
174
        $opzionitabelle->setTabelle($tabelle);
175
        $opzionitabelle->setParametro('titolo');
176
        $opzionitabelle->setValore('Elenco dati per %tabella%');
177
        $em->persist($opzionitabelle);
178
179
        $opzionitabelleag = new \Fi\CoreBundle\Entity\opzioniTabella();
180
        $opzionitabelleag->setTabelle($tabelle);
181
        $opzionitabelleag->setDescrizione('Altezza Griglia');
182
        $opzionitabelleag->setParametro('altezzagriglia');
183
        $opzionitabelleag->setValore(400);
184
        $em->persist($opzionitabelleag);
185
186
        $em->flush();
187
    }
188
189
    private function insertDefaultMenu($em)
190
    {
191
        $menutabelle = new \Fi\CoreBundle\Entity\menuApplicazione();
192
        $menutabelle->setNome('Tabelle');
193
        $menutabelle->setAttivo(true);
194
        $menutabelle->setOrdine(10);
195
        $em->persist($menutabelle);
196
        $em->flush();
197
198
        $menufp = new \Fi\CoreBundle\Entity\menuApplicazione();
199
        $menufp->setPadre($menutabelle->getId());
200
        $menufp->setNome('FFprincipale');
201
        $menufp->setPercorso('Ffprincipale');
202
        $menufp->setAttivo(true);
203
        $menufp->setOrdine(10);
204
        $em->persist($menufp);
205
206
        $menufs = new \Fi\CoreBundle\Entity\menuApplicazione();
207
        $menufs->setPadre($menutabelle->getId());
208
        $menufs->setNome('FFsecondaria');
209
        $menufs->setPercorso('Ffsecondaria');
210
        $menufs->setAttivo(true);
211
        $menufs->setOrdine(10);
212
        $em->persist($menufs);
213
        $em->flush();
214
215
        $menuAmministrazione = new \Fi\CoreBundle\Entity\menuApplicazione();
216
        $menuAmministrazione->setNome('Amministrazione');
217
        $menuAmministrazione->setAttivo(true);
218
        $menuAmministrazione->setOrdine(20);
219
        $em->persist($menuAmministrazione);
220
        $em->flush();
221
222
        $menuop = new \Fi\CoreBundle\Entity\menuApplicazione();
223
        $menuop->setPadre($menuAmministrazione->getId());
224
        $menuop->setNome('Operatori');
225
        $menuop->setPercorso('Operatori');
226
        $menuop->setAttivo(true);
227
        $menuop->setOrdine(10);
228
        $em->persist($menuop);
229
230
        $menuruo = new \Fi\CoreBundle\Entity\menuApplicazione();
231
        $menuruo->setPadre($menuAmministrazione->getId());
232
        $menuruo->setNome('Ruoli');
233
        $menuruo->setPercorso('Ruoli');
234
        $menuruo->setAttivo(true);
235
        $menuruo->setOrdine(20);
236
        $em->persist($menuruo);
237
238
        $menuapp = new \Fi\CoreBundle\Entity\menuApplicazione();
239
        $menuapp->setPadre($menuAmministrazione->getId());
240
        $menuapp->setNome('Permessi');
241
        $menuapp->setPercorso('Permessi');
242
        $menuapp->setAttivo(true);
243
        $menuapp->setOrdine(30);
244
        $em->persist($menuapp);
245
246
        $menutbl = new \Fi\CoreBundle\Entity\menuApplicazione();
247
        $menutbl->setPadre($menuAmministrazione->getId());
248
        $menutbl->setNome('Gestione tabelle');
249
        $menutbl->setPercorso('');
250
        $menutbl->setAttivo(true);
251
        $menutbl->setOrdine(40);
252
        $em->persist($menutbl);
253
        $em->flush();
254
255
        $menutbs = new \Fi\CoreBundle\Entity\menuApplicazione();
256
        $menutbs->setPadre($menutbl->getId());
257
        $menutbs->setNome('Tabelle');
258
        $menutbs->setPercorso('Tabelle');
259
        $menutbs->setAttivo(true);
260
        $menutbs->setOrdine(10);
261
        $em->persist($menutbs);
262
263
        $menuopt = new \Fi\CoreBundle\Entity\menuApplicazione();
264
        $menuopt->setPadre($menutbl->getId());
265
        $menuopt->setNome('Opzioni tabella');
266
        $menuopt->setPercorso('OpzioniTabella');
267
        $menuopt->setAttivo(true);
268
        $menuopt->setOrdine(20);
269
        $em->persist($menuopt);
270
271
        $menumnuapp = new \Fi\CoreBundle\Entity\menuApplicazione();
272
        $menumnuapp->setPadre($menuAmministrazione->getId());
273
        $menumnuapp->setNome('Menu Applicazione');
274
        $menumnuapp->setPercorso('MenuApplicazione_container');
275
        $menumnuapp->setAttivo(true);
276
        $menumnuapp->setOrdine(50);
277
        $em->persist($menumnuapp);
278
279
        $menuutil = new \Fi\CoreBundle\Entity\menuApplicazione();
280
        $menuutil->setPadre($menuAmministrazione->getId());
281
        $menuutil->setNome('Utilità');
282
        $menuutil->setPercorso('fi_pannello_amministrazione_homepage');
283
        $menuutil->setAttivo(true);
284
        $menuutil->setOrdine(100);
285
        $em->persist($menuutil);
286
287
        $menudemo = new \Fi\CoreBundle\Entity\menuApplicazione();
288
        $menudemo->setPadre($menuAmministrazione->getId());
289
        $menudemo->setNome('FiDemo');
290
        $menudemo->setPercorso('fi_demo_index');
291
        $menudemo->setAttivo(false);
292
        $menudemo->setOrdine(150);
293
        $em->persist($menudemo);
294
        $em->flush();
295
    }
296
297
    private function insertDefaultFfTables($em)
298
    {
299
        $ffprincipalerow = new \Fi\CoreBundle\Entity\ffprincipale();
300
        $ffprincipalerow->setDescrizione('Descrizione primo record');
301
        $em->persist($ffprincipalerow);
302
        $em->flush();
303
        $ffsecondariarow1 = new \Fi\CoreBundle\Entity\Ffsecondaria();
304
        $ffsecondariarow1->setFfprincipale($ffprincipalerow);
305
        $ffsecondariarow1->setDescsec('1° secondaria legato al 1° record principale');
306
        $ffsecondariarow1->setData(new \DateTime());
307
        $ffsecondariarow1->setIntero(10);
308
        $ffsecondariarow1->setImporto(12.34);
309
        $ffsecondariarow1->setNota('Super Nota ffsecondaria');
310
        $ffsecondariarow1->setAttivo(true);
311
        $em->persist($ffsecondariarow1);
312
313
        $ffsecondariarow2 = new \Fi\CoreBundle\Entity\Ffsecondaria();
314
        $ffsecondariarow2->setFfprincipale($ffprincipalerow);
315
        $ffsecondariarow2->setDescsec('2° secondaria legato al 1° record principale');
316
        $ffsecondariarow2->setData(new \DateTime());
317
        $ffsecondariarow2->setIntero(1);
318
        $ffsecondariarow2->setImporto(1.23);
319
        $ffsecondariarow2->setNota('Nota ffsecondaria');
320
        $ffsecondariarow2->setAttivo(true);
321
322
        $em->persist($ffsecondariarow2);
323
324
        $ffsecondariarow3 = new \Fi\CoreBundle\Entity\Ffsecondaria();
325
        $ffsecondariarow3->setFfprincipale($ffprincipalerow);
326
        $ffsecondariarow3->setDescsec('3° secondaria legato al 1° record principale');
327
        $ffsecondariarow3->setData(new \DateTime());
328
        $ffsecondariarow3->setIntero(10);
329
        $ffsecondariarow3->setImporto(11.34);
330
        $ffsecondariarow3->setNota('Nota 3° ffsecondaria');
331
        $ffsecondariarow3->setAttivo(false);
332
333
        $em->persist($ffsecondariarow3);
334
335
        $ffsecondariarow4 = new \Fi\CoreBundle\Entity\Ffsecondaria();
336
        $ffsecondariarow4->setFfprincipale($ffprincipalerow);
337
        $ffsecondariarow4->setDescsec('4° secondaria legato al 1° record principale');
338
        $ffsecondariarow4->setData(new \DateTime());
339
        $ffsecondariarow4->setIntero(101);
340
        $ffsecondariarow4->setImporto(101.34);
341
        $ffsecondariarow4->setNota('Nota 4° ffsecondaria');
342
        $ffsecondariarow4->setAttivo(true);
343
344
        $em->persist($ffsecondariarow4);
345
346
        $ffsecondariarow5 = new \Fi\CoreBundle\Entity\Ffsecondaria();
347
        $ffsecondariarow5->setFfprincipale($ffprincipalerow);
348
        $ffsecondariarow5->setDescsec('5° secondaria legato al 1° record principale');
349
        $ffsecondariarow5->setData(new \DateTime());
350
        $ffsecondariarow5->setIntero(101);
351
        $ffsecondariarow5->setImporto(101.34);
352
        $ffsecondariarow5->setNota('Nota 4° ffsecondaria');
353
        $ffsecondariarow5->setAttivo(true);
354
355
        $em->persist($ffsecondariarow5);
356
357
        $ffprincipale = new \Fi\CoreBundle\Entity\ffprincipale();
358
        $ffprincipale->setDescrizione('Descrizione secondo record');
359
        $em->persist($ffprincipale);
360
361
        $ffsecondariarow6 = new \Fi\CoreBundle\Entity\Ffsecondaria();
362
        $ffsecondariarow6->setFfprincipale($ffprincipale);
363
        $ffsecondariarow6->setDescsec('6° secondaria legato al 2° record principale');
364
        $ffsecondariarow6->setData(new \DateTime());
365
        $ffsecondariarow6->setIntero(10006);
366
        $ffsecondariarow6->setImporto(10006.12);
367
        $ffsecondariarow6->setNota('Nota altra ffsecondaria');
368
        $ffsecondariarow6->setAttivo(true);
369
370
        $em->persist($ffsecondariarow6);
371
372
        $ffsecondariarow7 = new \Fi\CoreBundle\Entity\Ffsecondaria();
373
        $ffsecondariarow7->setFfprincipale($ffprincipale);
374
        $ffsecondariarow7->setDescsec('7° secondaria legato al 2° record principale');
375
        $ffsecondariarow7->setData(new \DateTime());
376
        $ffsecondariarow7->setIntero(10007);
377
        $ffsecondariarow7->setImporto(10007.22);
378
        $ffsecondariarow7->setNota('Nota altra 7 ffsecondaria');
379
        $ffsecondariarow7->setAttivo(false);
380
381
        $ffsecondariarow8 = new \Fi\CoreBundle\Entity\Ffsecondaria();
382
        $ffsecondariarow8->setFfprincipale($ffprincipale);
383
        $ffsecondariarow8->setDescsec('8° secondaria legato al 2° record principale');
384
        $ffsecondariarow8->setData(new \DateTime());
385
        $ffsecondariarow8->setIntero(10008);
386
        $ffsecondariarow8->setImporto(10008.22);
387
        $ffsecondariarow8->setNota('Nota altra 8 ffsecondaria');
388
        $ffsecondariarow8->setAttivo(true);
389
390
        $em->persist($ffsecondariarow7);
391
        $ffsecondariarow9 = new \Fi\CoreBundle\Entity\Ffsecondaria();
392
        $ffsecondariarow9->setFfprincipale($ffprincipale);
393
        $ffsecondariarow9->setDescsec('9° secondaria legato al 2° "record principale"');
394
        $ffsecondariarow9->setData(new \DateTime());
395
        $ffsecondariarow9->setIntero(1000);
396
        $ffsecondariarow9->setImporto(1000.12);
397
        $ffsecondariarow9->setNota('Nota altra ffsecondaria');
398
        $ffsecondariarow9->setAttivo(true);
399
        $em->persist($ffsecondariarow9);
400
401
        $ffsecondariarow10 = new \Fi\CoreBundle\Entity\Ffsecondaria();
402
        $ffsecondariarow10->setFfprincipale($ffprincipale);
403
        $ffsecondariarow10->setDescsec("10° secondaria legato al 2° record principale ed è l'ultimo record");
404
        $ffsecondariarow10->setData(new \DateTime());
405
        $ffsecondariarow10->setIntero(1100);
406
        $ffsecondariarow10->setImporto(1100.99);
407
        $ffsecondariarow10->setNota('Nota 10° altra ffsecondaria');
408
        $ffsecondariarow10->setAttivo(false);
409
        $em->persist($ffsecondariarow10);
410
    }
411
}
412