Skip to content

Commit bfdb31d

Browse files
committed
Fix de plusieurs bugs dans les reboursements
Les vérifications, saisies des remboursements étaient impacté. J'ai reussi à factoriser du code serveur de remboursement et de ventes. Voir : - <#354> - <#351> Liée à : - <#352>
1 parent 9debabf commit bfdb31d

File tree

5 files changed

+52
-47
lines changed

5 files changed

+52
-47
lines changed

core/requetes.php

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,37 @@ function data_graphs_from_bilan(array $bilan, string $key): array {
470470
return ['data' => $data, 'colors' => $colors];
471471
}
472472

473+
/// Fonction servant à obtenir le détail d'une vente ou
474+
/// d'un remboursement identifié par son Id vente.
475+
function vendu_by_id_vente(PDO $bdd, int $id_vente): array {
476+
$req = $bdd->prepare('SELECT
477+
vendus.id,
478+
vendus.id_vente,
479+
vendus.timestamp,
480+
vendus.quantite,
481+
vendus.prix,
482+
vendus.remboursement,
483+
vendus.id_createur,
484+
vendus.id_last_hero,
485+
vendus.last_hero_timestamp,
486+
type_dechets.nom type,
487+
CASE WHEN vendus.id_objet > 0 THEN grille_objets.nom ELSE "autre" END objet,
488+
pesees_vendus.masse
489+
FROM vendus
490+
INNER JOIN type_dechets
491+
ON type_dechets.id = vendus.id_type_dechet
492+
left JOIN grille_objets
493+
ON grille_objets.id = vendus.id_objet
494+
LEFT JOIN pesees_vendus
495+
ON pesees_vendus.id = vendus.id_vente
496+
WHERE vendus.id_vente = :id_vente');
497+
$req->bindParam(':id_vente', $id_vente, PDO::PARAM_INT);
498+
$req->execute();
499+
$vendus = $req->fetchAll(PDO::FETCH_ASSOC);
500+
$req->closeCursor();
501+
return $vendus;
502+
}
503+
473504
function vendus_case_lot_unit(): string {
474505
return "case when vendus.lot > 0
475506
then vendus.prix

ifaces/modification_verification_remboursement.php

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,15 @@
2222
require_once '../core/requetes.php';
2323
require_once '../core/session.php';
2424

25-
if (is_valid_session() === 'oressource' && is_allowed_verifications()) {
25+
if (is_valid_session() && is_allowed_verifications()) {
2626
require_once '../moteur/dbconfig.php';
27-
require_once 'tete.php';
2827

2928
$users = map_by(utilisateurs($bdd), 'id');
3029

3130
$id = $_GET['nvente'];
32-
$req = $bdd->prepare('SELECT
33-
vendus.id,
34-
vendus.timestamp,
35-
type_dechets.nom type,
36-
grille_objets.nom objet,
37-
vendus.remboursement,
38-
vendus.quantite,
39-
FROM vendus, type_dechets, grille_objets
40-
WHERE vendus.id_vente = :id_vente
41-
AND grille_objets.id = vendus.id_objet
42-
AND type_dechets.id = vendus.id_type_dechet');
43-
$req->execute(['id_vente' => $id]);
44-
$rembs = $req->fetchAll(PDO::FETCH_ASSOC);
45-
$req->closeCursor();
31+
$rembs = vendu_by_id_vente($bdd, $id);
32+
33+
require_once 'tete.php';
4634
?>
4735
<div class="container">
4836
<h1>Modifier le remboursement n° <?= $_GET['nvente']; ?></h1>
@@ -76,7 +64,7 @@
7664
<td><?= $r['objet']; ?></td>
7765
<td><?= $r['quantite']; ?></td>
7866
<td><?= $r['remboursement']; ?></td>
79-
<td><?= $users[$v['id_createur']]['mail'] ?></td>
67+
<td><?= $users[$r['id_createur']]['mail'] ?></td>
8068
<td><form action="modification_verification_objet_remboursement.php" method="post">
8169
<input type="hidden" name="id" value="<?= $r['id']; ?>">
8270
<input type="hidden" name="nvente" value="<?= $id ?>">
@@ -87,8 +75,8 @@
8775
<input type="hidden" name="npoint" value="<?= $_POST['npoint']; ?>">
8876
<button class="btn btn-warning btn-sm">Modifier</button>
8977
</form>
90-
<td><?= $v['last_hero_timestamp'] !== $v['timestamp'] ? $users[$v['id_last_hero']]['mail'] : '' ?></td>
91-
<td><?= $v['last_hero_timestamp'] !== $v['timestamp'] ? $v['last_hero_timestamp'] : '' ?></td>
78+
<td><?= $r['last_hero_timestamp'] !== $r['timestamp'] ? $users[$r['id_last_hero']]['mail'] : '' ?></td>
79+
<td><?= $r['last_hero_timestamp'] !== $r['timestamp'] ? $r['last_hero_timestamp'] : '' ?></td>
9280
</tr>
9381
<?php } ?>
9482
</tbody>

ifaces/modification_verification_vente.php

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,34 +26,13 @@
2626
require_once '../moteur/dbconfig.php';
2727
$users = map_by(utilisateurs($bdd), 'id');
2828

29-
$req = $bdd->prepare('SELECT
30-
vendus.id,
31-
vendus.id_vente,
32-
vendus.timestamp,
33-
vendus.quantite,
34-
vendus.prix,
35-
vendus.id_createur,
36-
vendus.id_last_hero,
37-
vendus.last_hero_timestamp,
38-
type_dechets.nom type,
39-
CASE WHEN vendus.id_objet > 0 THEN grille_objets.nom ELSE "autre" END objet,
40-
pesees_vendus.masse
41-
FROM vendus
42-
INNER JOIN type_dechets
43-
ON type_dechets.id = vendus.id_type_dechet
44-
INNER JOIN grille_objets
45-
ON (grille_objets.id = vendus.id_objet OR vendus.id_objet = 0)
46-
LEFT JOIN pesees_vendus
47-
ON pesees_vendus.id = vendus.id_vente
48-
WHERE vendus.id_vente = :id_vente');
49-
$req->bindParam(':id_vente', $_GET['nvente'], PDO::PARAM_INT);
50-
$req->execute();
51-
$vendus = $req->fetchAll(PDO::FETCH_ASSOC);
29+
$vendus = vendu_by_id_vente($bdd, $_GET['nvente']);
5230

5331
$reponse = $bdd->prepare('SELECT commentaire FROM ventes WHERE id = :id_vente');
5432
$reponse->execute(['id_vente' => $_GET['nvente']]);
5533
$commentaire = $reponse->fetch()['commentaire'];
5634
$reponse->closeCursor();
35+
5736
require_once 'tete.php';
5837
?>
5938
<div class="container">

ifaces/verif_vente.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,17 @@
117117
$remboursements = $v['remb'];
118118
$quantite = $v['quantite'];
119119
$masse = $v['masse'];
120-
$rembo = $ventes > 0 && $remboursements > 0;
120+
$rembo = ($remboursements > 0.00);
121121
?>
122122
<tr>
123-
<td><?= $v['id']; ?></td>
123+
<td>
124+
<span <?= $rembo
125+
? '(class="badge" style="background-color:red"'
126+
: '' ?>><?= $v['id'] ?></span>
127+
</td>
124128
<td><?= $v['timestamp']; ?></td>
125-
<td><?= !$rembo ? $ventes : '' ?></td>
126-
<td><?= $rembo ? $remboursements : '' ?></td>
129+
<td><?= $ventes ?></td>
130+
<td><?= $remboursements ?></td>
127131
<td><?= $quantite ?></td>
128132
<td>
129133
<span class="badge" style="background-color:<?= $v['couleur']; ?>"><?= $v['moyen']; ?></span>

moteur/remboursement_post.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424

2525
session_start();
2626

27+
// TODO: Réecrire la gestion des remboursements pour avoir quelque chose de plus proche de ventes.
28+
// Pourquoi pas sinon fair une table dédiée.
29+
2730
if (is_valid_session() && is_allowed_vente_id($_POST['id_point_vente'])) {
2831
require_once '../moteur/dbconfig.php';
2932

@@ -70,7 +73,7 @@
7073
$tquantite = 'tquantite' . $i;
7174
$tprix = 'tprix' . $i;
7275

73-
if (!isset($_POST[$tid_type_objet])) {
76+
if (!$_POST[$tid_type_objet]) {
7477
header("Location:../ifaces/ventes.php?err=Les remboursement de sans type d'objet ou dechet ne sont pas valides&numero=" . $_POST['id_point_vente']);
7578
die();
7679
}

0 commit comments

Comments
 (0)