1
|
|
|
<?php |
2
|
|
|
namespace modules\bataille\app\controller; |
3
|
|
|
|
4
|
|
|
|
5
|
|
|
use core\App; |
6
|
|
|
use core\HTML\flashmessage\FlashMessage; |
7
|
|
|
|
8
|
|
|
class GroupeUnite extends Unite { |
9
|
|
|
|
10
|
|
|
|
11
|
|
|
//-------------------------- BUILDER ----------------------------------------------------------------------------// |
12
|
|
|
//-------------------------- END BUILDER ----------------------------------------------------------------------------// |
13
|
|
|
|
14
|
|
|
|
15
|
|
|
//-------------------------- GETTER ----------------------------------------------------------------------------// |
16
|
|
|
/** |
17
|
|
|
* fonction qui récupère tous les groupes de la bases |
18
|
|
|
*/ |
19
|
|
|
public function getAllGroupeUnite() { |
20
|
|
|
$dbc = App::getDb(); |
21
|
|
|
|
22
|
|
|
$query = $dbc->select()->from("_bataille_groupe_unite") |
23
|
|
|
->where("ID_base", "=", Bataille::getIdBase(), "AND") |
24
|
|
|
->where("(ID_mission IS NULL OR ID_mission = 0)", "", "", "", true)->get(); |
25
|
|
|
|
26
|
|
View Code Duplication |
if ((is_array($query)) && (count($query))) { |
|
|
|
|
27
|
|
|
$groupe = []; |
28
|
|
|
|
29
|
|
|
foreach ($query as $obj) { |
30
|
|
|
$groupe[] = [ |
31
|
|
|
"id_groupe" => $obj->ID_groupe_unite, |
32
|
|
|
"nom_groue" => $obj->nom_groupe, |
33
|
|
|
"unites" => $this->getAllUnites(Bataille::getIdBase(), $obj->ID_groupe_unite) |
34
|
|
|
]; |
35
|
|
|
} |
36
|
|
|
|
37
|
|
|
Bataille::setValues(["groupe_unites" => $groupe]); |
38
|
|
|
} |
39
|
|
|
} |
40
|
|
|
|
41
|
|
|
/** |
42
|
|
|
* @param $nom_groupe |
43
|
|
|
* @return bool |
44
|
|
|
* fonction qui test si un groupe existe déjà ou pas dans cette base |
45
|
|
|
*/ |
46
|
|
|
private function getTestGroupExist($nom_groupe) { |
47
|
|
|
$dbc = App::getDb(); |
48
|
|
|
|
49
|
|
|
$query = $dbc->select("ID_groupe_unite") |
50
|
|
|
->from("_bataille_groupe_unite") |
51
|
|
|
->where("nom_groupe", "=", $nom_groupe, "AND") |
52
|
|
|
->where("ID_base", "=", Bataille::getIdBase()) |
53
|
|
|
->get(); |
54
|
|
|
|
55
|
|
|
if (count($query) > 0) { |
56
|
|
|
return false; |
57
|
|
|
} |
58
|
|
|
|
59
|
|
|
return true; |
60
|
|
|
} |
61
|
|
|
//-------------------------- END GETTER ----------------------------------------------------------------------------// |
62
|
|
|
|
63
|
|
|
|
64
|
|
|
//-------------------------- SETTER ----------------------------------------------------------------------------// |
65
|
|
|
/** |
66
|
|
|
* @param $nombre_unite |
67
|
|
|
* @param $nom_unite |
68
|
|
|
* @param $type_unite |
69
|
|
|
* @param $nom_groupe |
70
|
|
|
* @return bool |
71
|
|
|
* fonction qui permet de créer un groupe |
72
|
|
|
*/ |
73
|
|
|
public function setCreerGroupe($nombre_unite, $nom_unite, $type_unite, $nom_groupe) { |
74
|
|
|
$dbc = App::getDb(); |
75
|
|
|
|
76
|
|
|
if ($this->getTestGroupExist($nom_groupe) == false) { |
|
|
|
|
77
|
|
|
FlashMessage::setFlash("Un groupe portant ce nom existe déjà, merci d'en choisir un autre !"); |
78
|
|
|
return false; |
79
|
|
|
} |
80
|
|
|
|
81
|
|
|
$dbc->insert("nom_groupe", $nom_groupe) |
82
|
|
|
->insert("niveau_groupe", 1) |
83
|
|
|
->insert("ID_base", Bataille::getIdBase()) |
84
|
|
|
->into("_bataille_groupe_unite") |
85
|
|
|
->set(); |
86
|
|
|
|
87
|
|
|
$id_groupe = $dbc->lastInsertId(); |
88
|
|
|
|
89
|
|
|
$count = count($nombre_unite); |
90
|
|
|
|
91
|
|
|
for ($i=0 ; $i<$count ; $i++) { |
92
|
|
|
$this->setAjouterUniteGroupe($nombre_unite[$i], $nom_unite[$i], $type_unite[$i], $id_groupe); |
93
|
|
|
} |
94
|
|
|
} |
95
|
|
|
|
96
|
|
|
/** |
97
|
|
|
* @param $nombre_unite |
98
|
|
|
* @param $nom_unite |
99
|
|
|
* @param $type_unite |
100
|
|
|
* @param $id_groupe |
101
|
|
|
* @return bool |
102
|
|
|
* fonction qui permet d'ajouter des unités a un groupe |
103
|
|
|
*/ |
104
|
|
|
private function setAjouterUniteGroupe($nombre_unite, $nom_unite, $type_unite, $id_groupe) { |
105
|
|
|
$dbc = App::getDb(); |
106
|
|
|
|
107
|
|
|
$nombre_unite_base = $this->getNombreUniteNom($type_unite, $nom_unite); |
108
|
|
|
|
109
|
|
|
if ($nombre_unite > $nombre_unite_base) { |
110
|
|
|
FlashMessage::setFlash("Pas assez d'unités ".$nom_unite." disponibles dans les ajouter à ce groupe"); |
111
|
|
|
return false; |
112
|
|
|
} |
113
|
|
|
|
114
|
|
|
$dbc->update("ID_groupe", $id_groupe) |
115
|
|
|
->from("_bataille_unite") |
116
|
|
|
->where("type", "=", $type_unite, "AND") |
117
|
|
|
->where("nom", "=", $nom_unite, "AND") |
118
|
|
|
->where("ID_base", "=", Bataille::getIdBase(), "AND") |
119
|
|
|
->where("(ID_groupe IS NULL OR ID_groupe = 0)", "", "", "", true) |
120
|
|
|
->limit($nombre_unite, "no") |
121
|
|
|
->set(); |
122
|
|
|
|
123
|
|
|
return true; |
124
|
|
|
} |
125
|
|
|
|
126
|
|
|
/** |
127
|
|
|
* @param $id_groupe |
128
|
|
|
* @param $id_mission |
129
|
|
|
* @return bool |
130
|
|
|
* fonction qui sert à envoyer toutes les troupes d'un groupe en mission |
131
|
|
|
*/ |
132
|
|
|
public function setCommencerExpedition($id_groupe, $id_mission) { |
133
|
|
|
$dbc = App::getDb(); |
134
|
|
|
|
135
|
|
|
$dbc->update("ID_mission", $id_mission) |
136
|
|
|
->from("_bataille_unite") |
137
|
|
|
->where("ID_groupe", "=", $id_groupe, "AND") |
138
|
|
|
->where("ID_base", "=", Bataille::getIdBase()) |
139
|
|
|
->set(); |
140
|
|
|
|
141
|
|
|
$dbc->update("ID_mission", $id_mission) |
142
|
|
|
->from("_bataille_groupe_unite") |
143
|
|
|
->where("ID_groupe", "=", $id_groupe, "AND") |
144
|
|
|
->where("ID_base", "=", Bataille::getIdBase()) |
145
|
|
|
->set(); |
146
|
|
|
|
147
|
|
|
return true; |
148
|
|
|
} |
149
|
|
|
|
150
|
|
|
/** |
151
|
|
|
* @param $id_mission |
152
|
|
|
* fonction qui termine la mission pour tous les groupes qui y ont été assignés |
153
|
|
|
*/ |
154
|
|
|
public function setTerminerExpedition($id_mission) { |
155
|
|
|
$dbc = App::getDb(); |
156
|
|
|
|
157
|
|
|
$dbc->update("ID_mission", 0)->from("_bataille_groupe_unite")->where("ID_base", "=", Bataille::getIdBase())->set(); |
158
|
|
|
} |
159
|
|
|
//-------------------------- END SETTER ----------------------------------------------------------------------------// |
160
|
|
|
} |
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.