diff --git a/api/statistiques.php b/api/statistiques.php new file mode 100644 index 0000000..eddf542 --- /dev/null +++ b/api/statistiques.php @@ -0,0 +1,95 @@ +prepare("SELECT SUM(solde) FROM Clients WHERE solde > 0"); +if (!$requete) { + retour("erreur_bdd_preparee", ["message" => $db->error]); +} +if (!$requete->execute()) { + retour("erreur_bdd", ["message" => $requete->error]); +} +$requete->bind_result($recettes); +$requete->fetch(); +$requete->close(); + +$requete = $db->prepare("SELECT SUM(solde) FROM Clients WHERE solde < 0"); +if (!$requete) { + retour("erreur_bdd_preparee", ["message" => $db->error]); +} +if (!$requete->execute()) { + retour("erreur_bdd", ["message" => $requete->error]); +} +$requete->bind_result($dettes); +$requete->fetch(); +$requete->close(); + +// Arrondi et calculs +$recettes = round($recettes, 2); +$dettes = round($dettes, 2); +$benefices = $recettes + $dettes; + +// Statistiques générales +$requete = $db->prepare("SELECT COUNT(*) FROM Clients"); +if (!$requete) { + retour("erreur_bdd_preparee", ["message" => $db->error]); +} +if (!$requete->execute()) { + retour("erreur_bdd", ["message" => $requete->error]); +} +$requete->bind_result($clientsNb); +$requete->fetch(); +$requete->close(); + +$requete = $db->prepare("SELECT SUM(quantite) FROM Transactions"); +if (!$requete) { + retour("erreur_bdd_preparee", ["message" => $db->error]); +} +if (!$requete->execute()) { + retour("erreur_bdd", ["message" => $requete->error]); +} +$requete->bind_result($consommationsNb); +$requete->fetch(); +$requete->close(); + +$requete = $db->prepare("SELECT AVG(solde) FROM Clients WHERE solde > 0"); +if (!$requete) { + retour("erreur_bdd_preparee", ["message" => $db->error]); +} +if (!$requete->execute()) { + retour("erreur_bdd", ["message" => $requete->error]); +} +$requete->bind_result($soldeMoy); +$requete->fetch(); +$requete->close(); + +// Facture BDE + +// TODO Même si le BDE n'est censé que pouvoir faire des créations de compte, +// utiliser la fonction de somme de transactions utilisée pour vérifier +// l'intégrité des soldes pourrait être une bonne idée +$requete = $db->prepare("SELECT SUM(Transactions.montant) FROM Transactions JOIN Utilisateurs ON Transactions.utilisateur=Utilisateurs.login WHERE droit=1"); +if (!$requete) { + retour("erreur_bdd_preparee", ["message" => $db->error]); +} +if (!$requete->execute()) { + retour("erreur_bdd", ["message" => $requete->error]); +} +$requete->bind_result($factureBDE); +$requete->fetch(); + + +retour("ok", [ + "benefices" => $benefices, + "recettes" => $recettes, + "dettes" => $dettes, + "clientsNb" => $clientsNb, + "consommationsNb" => $consommationsNb, + "soldeMoy" => $soldeMoy, + "factureBDE" => $factureBDE, +]); + +?> diff --git a/api/utilisateur/deconnexion.php b/api/utilisateur/deconnexion.php index 654561e..cc8c05c 100644 --- a/api/utilisateur/deconnexion.php +++ b/api/utilisateur/deconnexion.php @@ -2,8 +2,6 @@ require_once("../commun.php"); -verifierDroit(0); - supprimerJeton(donne("jeton")); retour("ok"); -- libgit2 0.21.2