Skip to main content

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);