Commit 67f77f33286bc0c22e43a99ad4f6895b18ef556b

Authored by Geoffrey PREUD'HOMME
1 parent 5ded5781

api/client/payer

Showing 2 changed files with 66 additions and 2 deletions   Show diff stats
api/client/payer.php 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +<?php
  2 +
  3 +require_once("../commun.php");
  4 +
  5 +verifierDroit(2);
  6 +
  7 +if (!(donne("idCarte") && (donne("montant") XOR donne("quantite")))) {
  8 + retour("requete_malformee");
  9 +}
  10 +
  11 +if (!clientExiste(donne("idCarte"))) {
  12 + retour("client_inconnu");
  13 +}
  14 +
  15 +if (donne("quantite")) {
  16 + $quantite = intval($_POST["quantite"]);
  17 + $requete = $db->prepare("SELECT prix FROM Prix");
  18 + $requete->bind_result($prixItem);
  19 + if (!$requete->execute()) {
  20 + retour("erreur_bdd", ["message" => $requete->error]);
  21 + }
  22 + $requete->fetch();
  23 + $requete->close();
  24 +
  25 + $montant = $prixItem * $quantite;
  26 +} else {
  27 + $montant = floatval($_POST["montant"]);
  28 +}
  29 +
  30 +if ($montant <= 0) {
  31 + retour("paiement_negatif");
  32 +}
  33 +
  34 +$requete = $db->prepare("SELECT solde, decouvert FROM Clients WHERE idCarte=?");
  35 +$requete->bind_param("s", $_POST["idCarte"]);
  36 +$requete->bind_result($soldeAncien, $decouvert);
  37 +if (!$requete->execute()) {
  38 + retour("erreur_bdd", ["message" => $requete->error]);
  39 +}
  40 +$requete->fetch();
  41 +$requete->close();
  42 +
  43 +$soldeNouveau = $soldeAncien - $montant;
  44 +
  45 +if ($soldeNouveau < 0 && !$decouvert) {
  46 + retour("solde_insuffisant", ["solde" => $soldeAncien, "manque" => abs($soldeNouveau)]);
  47 +}
  48 +
  49 +$requete = $db->prepare("UPDATE Clients SET solde=? WHERE idCarte=?");
  50 +$requete->bind_param("ss", $soldeNouveau, $_POST["idCarte"]);
  51 +if (!$requete->execute()) {
  52 + retour("erreur_bdd", ["message" => $requete->error]);
  53 +}
  54 +$requete->close();
  55 +$id = transaction(TRANSACTION_PAIEMENT, $_POST["idCarte"], $montant);
  56 +
  57 +
  58 +retour("ok", ["id" => $id, "soldeAncien" => $soldeAncien, "soldeNouveau" => $soldeNouveau]);
  59 +
  60 +?>
... ...
api/client/recharger.php
... ... @@ -14,9 +14,13 @@ if (!clientExiste(donne(&quot;idCarte&quot;))) {
14 14  
15 15 $montant = floatval($_POST["montant"]);
16 16  
  17 +if ($montant <= 0) {
  18 + retour("rechargement_negatif");
  19 +}
  20 +
17 21 $requete = $db->prepare("SELECT solde FROM Clients WHERE idCarte=?");
18 22 $requete->bind_param("s", $_POST["idCarte"]);
19   -$requete->bind_results($soldeAncien);
  23 +$requete->bind_result($soldeAncien);
20 24 if (!$requete->execute()) {
21 25 retour("erreur_bdd", ["message" => $requete->error]);
22 26 }
... ... @@ -34,6 +38,6 @@ $requete-&gt;close();
34 38 $id = transaction(TRANSACTION_RECHARGEMENT, $_POST["idCarte"], $montant);
35 39  
36 40  
37   -retour("ok", ["id" => $id, "montantAncien" => $montantAncien, "montantNouveau" => $montantNouveau]);
  41 +retour("ok", ["id" => $id, "soldeAncien" => $soldeAncien, "soldeNouveau" => $soldeNouveau]);
38 42  
39 43 ?>
... ...