COP - Amende 2.0
Nous rejoindre sur Discord : lien discord
Sujet : Ajouter à vos amendes un montant forfaitaire, un montant maximal ainsi qu'une description
(Ce plugin est compatible avec le retrait automatique des points sur le permis)
-
Liste des fichiers concernés :
-
intranet-cop/page/administration/ajout_systeme.twig
-
intranet-cop/page/administration/modification_systeme.twig
-
intranet-cop/routes/insert.php
-
intranet-cop/src/insertion.php
-
intranet-cop/routes/recherche.php
-
intranet-cop/routes/edit.php
-
intranet-cop/src/edit.php
-
intranet-cop/src/historique.php
-
intranet-cop/assets/script/event_saisie.js
-
Update de la base de données
Dans votre base de données, exécutez la requêtes sql suivante :
ALTER TABLE lspd_delit ADD amende_max INT;
ALTER TABLE lspd_delit ADD description TEXT;
Modification fichier twig
Emplacement : intranet-cop/page/administration/ajout_systeme.twig
Au niveau de la ligne ~54, remplacez :
<div>
<label for="delit_amende">Entrer le montant de l'amende :</label>
<input type="number" name="delit_amende" id="amd_delit" min="0" placeholder="Montant Amende">
</div>
Par :
<div>
<label for="delit_description">Entrer une description au delit :</label>
<textarea type="text" name="delit_description" id="description_delit" placeholder="Description du délit"></textarea>
</div>
<div>
<label for="delit_amende">Entrer le montant de l'amende forfaitaire :</label>
<input class="short" type="number" name="delit_amende" id="amd_delit" min="0" placeholder="Montant Amende" required>
</div>
<div>
<label for="delit_amende_max">Entrer le montant de l'amende maximal :</label>
<input class="short" type="number" name="delit_amende_max" id="amd_delit_max" min="0" placeholder="Montant Amende Maximum">
</div>
Emplacement : intranet-cop/page/administration/modification_systeme.twig
Au niveau de la ligne ~151, remplacez :
<div id="dtls_amende">
<label for="delit_amende">Entrer le montant de l'amende :</label>
<input class="short" type="number" name="delit_amende" id="amd_delit" min="0" placeholder="Montant Amende" required>
</div>
Par :
<div id="dtls_description">
<label for="delit_description">Entrer une description au delit :</label>
<textarea type="text" name="delit_description" id="description_delit" placeholder="Description du délit"></textarea>
</div>
<div id="dtls_amende">
<label for="delit_amende">Entrer le montant de l'amende forfaitaire :</label>
<input class="short" type="number" name="delit_amende" id="amd_delit" min="0" placeholder="Montant Amende" required>
</div>
<div id="dtls_amende_max">
<label for="delit_amende_max">Entrer le montant de l'amende maximal :</label>
<input class="short" type="number" name="delit_amende_max" id="amd_delit_max" min="0" placeholder="Montant Amende Maximum">
</div>
À la fin du fichier, à la suite de :
document.getElementById("confirm_edit_mdp").style.display = "none";
document.getElementById("confirm_edit_delit").style.display = "none";
document.getElementById("list_route").style.display = "none";
document.getElementById("list_leger").style.display = "none";
document.getElementById("list_moyen").style.display = "none";
document.getElementById("list_grave").style.display = "none";
document.getElementById("dtls_amende").style.display = "none";
document.getElementById("dtls_prison").style.display = "none";
document.getElementById("button_delit").style.display = "none";
Ajoutez :
document.getElementById("dtls_description").style.display = "none";
document.getElementById("dtls_amende_max").style.display = "none";
Modification fichiers php
Emplacement : intranet-cop/routes/insert.php
Au niveau de la ligne ~61, dans la fonction Flight::route('/insert/delit', function() {...}
, Ã la suite de :
$nom = $_POST['nom'];
$montant = $_POST['amende'];
$prison = $_POST['temps'];
$type = $_POST['type'];
Ajoutez :
$montantMax = $_POST['amende_max'];
$description = $_POST['description'];
if ($montantMax < $montant) {
$montantMax = $montant;
}
Dans l'appel de la fonction addDelit(...);
, ajoutez les paramètres : , $montantMax, $description
.
addDelit($nom, $montant, $prison, $type); // Avant
addDelit($nom, $montant, $prison, $type, $montantMax, $description); // Après
Emplacement : intranet-cop/src/insertion.php
Au niveau de la ligne ~33, dans l'appel de la fonction function addDelit(...) {...}
, ajoutez les paramètres : , $montantMax, $description
.
function addDelit($nom, $montant, $prison, $type) {...} // Avant
function addDelit($nom, $montant, $prison, $type, $montantMax, $description) {...} // Après
Dans le tableau présent dans $casier->set(array(...));
, ajoutez :
'amende_max' => $montantMax,
'description' => $description,
Exemple avant :
$casier->set(array(
'intitule' => $nom,
'amende' => $montant,
'temps_prison' => $prison,
'type_delit' => $type,
));
Exemple après :
$casier->set(array(
'intitule' => $nom,
'amende' => $montant,
'temps_prison' => $prison,
'type_delit' => $type,
'amende_max' => $montantMax,
'description' => $description,
));
Emplacement : intranet-cop/routes/recherche.php
Au niveau de la ligne ~74, dans la fonction Flight::route('/recherche/info_delit', function() {...}
, dans le tableau présent dans $data = [...];
, ajoutez :
'amende_max' => $info->amende_max,
'description' => $info->description,
Exemple avant :
$data = [
'amende' => $info->amende,
'prison' => $info->temps_prison,
];
Exemple après :
$data = [
'amende' => $info->amende,
'prison' => $info->temps_prison,
'amende_max' => $info->amende_max,
'description' => $info->description,
];
Emplacement : intranet-cop/routes/edit.php
Au niveau de la ligne ~146, dans la fonction Flight::route('/delit/edit/value', function() {...}
, Ã la suite de :
$id = $_POST['id_delit'];
$amd_delit = $_POST['amd_delit'];
$tps_delit = $_POST['tps_delit'];
Ajoutez :
$description_delit = $_POST['description_delit'];
$amd_delit_max = $_POST['amd_delit_max'];
À la suite de (~161) :
if (($info->temps_prison != $tps_delit) and ($amd_delit != '')) {
editDelitPrison($id, $tps_delit);
addHistorique(Agent::getInfoAgent()->matricule, "0¤3¤1¤" . $id . "¤" . $info->temps_prison . "¤" . $tps_delit);
}
Ajoutez :
if (($info->description != $description_delit) and ($description_delit != '')) {
editDelitDescription($id, $description_delit);
if ($info->retrait == null) { $info->retrait = 0; }
addHistorique(Agent::getInfoAgent()->matricule, "0¤3¤3¤" . $id . "¤" . $info->description . "¤" . $description_delit);
}
if (($info->amende_max != $amd_delit_max) and ($amd_delit_max != '')) {
editDelitAmendeMax($id, $amd_delit_max);
if ($info->retrait == null) { $info->retrait = 0; }
addHistorique(Agent::getInfoAgent()->matricule, "0¤3¤4¤" . $id . "¤" . $info->amende_max . "¤" . $amd_delit_max);
}
Emplacement : intranet-cop/src/edit.php
À la fin du fichier, avant ?>
, ajoutez le code suivant :
function editDelitDescription($id, $description) {
$delit = Model::factory('Delit')->where('id', $id)->find_one();
$delit->set('description', $description);
$delit->save();
}
function editDelitAmendeMax($id, $amendeMax) {
$delit = Model::factory('Delit')->where('id', $id)->find_one();
$delit->set('amende_max', $amendeMax);
$delit->save();
}
Emplacement : intranet-cop/src/historique.php
Au niveau de la ligne ~73, Ã la suite de :
// Modification Délit
case '0¤3¤0':
return "ADMIN : Modification Délit n°" . $code[3] . " - Amende : " . $code[4] . " >>> " . $code[5];
break;
case '0¤3¤1':
return "ADMIN : Modification Délit n°" . $code[3] . " - Temps prison : " . $code[4] . " >>> " . $code[5];
break;
Ajoutez :
case '0¤3¤3':
return "ADMIN : Modification Délit n°" . $code[3] . " - Description : " . $code[4] . " >>> " . $code[5];
break;
case '0¤3¤4':
return "ADMIN : Modification Délit n°" . $code[3] . " - Amende Max : " . $code[4] . " >>> " . $code[5];
break;
(L'indicatif 0¤3¤2 étant déjà utilisé par le retrait de point)
Modification fichiers event_saisie.js
Emplacement : intranet-cop/assets/script/event_saisie.js
Au niveau de la ligne ~226, dans la fonction function AddDelitAdmin() {...}
:
- À la fin du tableau de la variable var_tab, ajoutez :
, 'amende_max', 'description'
. - À la fin du tableau de la variable var_tab2, ajoutez :
, 'amd_delit_max', 'description_delit'
.
Exemple avant :
let var_tab = ['nom', 'amende', 'temps', 'type'];
let var_tab2 = ['name_delit', 'amd_delit', 'tps_delit', 'type_delit'];
Exemple après :
let var_tab = ['nom', 'amende', 'temps', 'type', 'amende_max', 'description'];
let var_tab2 = ['name_delit', 'amd_delit', 'tps_delit', 'type_delit', 'amd_delit_max', 'description_delit'];
Au niveau de la ligne ~288 dans la fonction function AfficheMenuModDelit() {...}
:
À la suite :
document.getElementById("list_route").style.display = "none";
document.getElementById("list_leger").style.display = "none";
document.getElementById("list_moyen").style.display = "none";
document.getElementById("list_grave").style.display = "none";
document.getElementById("dtls_amende").style.display = "none";
document.getElementById("dtls_prison").style.display = "none";
document.getElementById("confirm_edit_delit").style.display = "none";
document.getElementById("button_delit").style.display = "none";
Ajoutez :
document.getElementById("dtls_description").style.display = "none";
document.getElementById("dtls_amende_max").style.display = "none";
Au niveau de la ligne ~322 dans la fonction function AfficheMenuModDelit() {...}
:
Dans la première condition if (value_this == 0) {...}
avant le return;
, ajoutez :
document.getElementById("dtls_description").style.display = "none";
document.getElementById("dtls_amende_max").style.display = "none";
À la suite de (~333) :
document.getElementById("dtls_amende").style.display = "block";
document.getElementById("dtls_prison").style.display = "block";
document.getElementById("confirm_edit_delit").style.display = "none";
document.getElementById("amd_delit").value = '';
document.getElementById("tps_delit").value = '';
document.getElementById("button_delit").setAttribute('value', value_this);
document.getElementById("button_delit").style.display = "initial";
document.getElementById("dtls_description").style.display = "block";
document.getElementById("dtls_amende_max").style.display = "block";
Ajoutez :
document.getElementById("dtls_description").style.display = "block";
document.getElementById("dtls_amende_max").style.display = "block";
À la suite de (~354) :
document.getElementById("amd_delit").placeholder = resultat.amende;
document.getElementById("tps_delit").placeholder = resultat.prison;
Ajoutez :
document.getElementById("amd_delit_max").placeholder = resultat.amende_max;
if (resultat.description != "") {
document.getElementById("description_delit").placeholder = resultat.description;
}
Au niveau de la ligne ~360 dans la fonction function updateDelitAdmin() {...}
:
À la suite de (~364) :
data.append('id_delit', document.getElementById('button_delit').value);
data.append('amd_delit', document.getElementById('amd_delit').value);
data.append('tps_delit', document.getElementById('tps_delit').value);
Ajoutez :
data.append('description_delit', document.getElementById('description_delit').value);
data.append('amd_delit_max', document.getElementById('amd_delit_max').value);