Commit 2c19577491fe54eef2b326a64c1302b9e6ea6dca

Authored by Geoffrey PREUD'HOMME
1 parent 78ed38ba

Statistiques client

Showing 2 changed files with 47 additions and 10 deletions   Show diff stats
index.html
... ... @@ -100,17 +100,17 @@
100 100 </div>
101 101 <ul class="right hide-on-med-and-down">
102 102 <li v-if="moi.connecte">
103   - <a class="dropdown-button" href="#utilisateurs" @click="page = 'gestion'">
  103 + <a class="dropdown-button" @click="changerPage('gestion', 'utilisateurs')">
104 104 <i class="material-icons">perm_identity</i> {{ moi.login }} (<i class="material-icons">timer</i> {{ timer }})
105 105 </a>
106 106 </li>
107 107 <li v-if="connecte && page == 'operations'">
108   - <a @click="page = 'gestion'">
  108 + <a @click="changerPage('gestion')">
109 109 <i class="material-icons">settings</i> Gestion
110 110 </a>
111 111 </li>
112 112 <li v-if="connecte && page == 'gestion'">
113   - <a @click="page = 'operations'">
  113 + <a @click="changerPage('operations')">
114 114 <i class="material-icons">play_arrow</i> Opérations
115 115 </a>
116 116 </li>
... ... @@ -334,6 +334,7 @@
334 334 </div>
335 335 <div class="collapsible-body">
336 336 <umodifier :utilisateur="utilisateur"></umodifier>
  337 + <button disabled>Supprimer <todo></todo></button>
337 338  
338 339 <h5>Transactions</h5>
339 340 <todo></todo>
... ... @@ -349,7 +350,26 @@
349 350 </div>
350 351 <div id="statistiques">
351 352 <h4>Statistiques</h4>
352   - <todo></todo>
  353 + <h5>Plage de temps <todo></todo></h5>
  354 + <p>Du <strong>début</strong> jusqu'à <strong>maintenant</strong></p>
  355 + <button @click="actuStatistiques">Rafraîchir</button>
  356 +
  357 + <h5>Chiffre d'affaires</h5>
  358 + <ul>
  359 + <li><strong>Bénéfices :</strong> {{ statistiques.benefices }} €</li>
  360 + <li><strong>Recettes :</strong> {{ statistiques.recettes }} €</li>
  361 + <li><strong>Dettes :</strong> {{ statistiques.dettes }} €</li>
  362 + </ul>
  363 + <h5>Factures</h5>
  364 + <ul>
  365 + <li><strong>BDE :</strong> {{ statistiques.factureBDE }} €</li>
  366 + </ul>
  367 + <h5>Divers</h5>
  368 + <ul>
  369 + <li><strong>Nombre de clients :</strong> {{ statistiques.clientsNb }}</li>
  370 + <li><strong>Consommations :</strong> {{ statistiques.consommationsNb }}</li>
  371 + <li><strong>Solde moyen :</strong> {{ statistiques.soldeMoy }} €</li>
  372 + </ul>
353 373 </div>
354 374 </div>
355 375 </div>
... ... @@ -372,7 +392,6 @@
372 392 </div>
373 393 </script>
374 394 <script type="text/template" id="u_modifier">
375   - <h5>Changer de droit</h5>
376 395 <form @change="u_droit(utilisateur)">
377 396 <p>
378 397 <input :name="'droit_' + utilisateur.login" type="radio" :id="'droit_' + utilisateur.login + '_1'" v-model="utilisateur.droit" value="1" :disabled="moi.droit < 3"/>
... ... @@ -387,7 +406,6 @@
387 406 <label :for="'droit_' + utilisateur.login + '_3'">Président</label>
388 407 </p>
389 408 </form>
390   - <h5>Changer de mot de passe</h5>
391 409 <form @submit="u_mdp(utilisateur)">
392 410 <div class="input-field">
393 411 <i class="material-icons prefix">vpn_key</i>
... ... @@ -396,7 +414,6 @@
396 414 </div>
397 415 <button :disabled="!utilisateur.mdp">Changer de mot de passe</button>
398 416 </form>
399   - <h5> Changer de carte </h5>
400 417 <form @submit="u_carte(utilisateur)">
401 418 <div class="input-field">
402 419 <i class="material-icons prefix">credit_card</i>
... ... @@ -408,8 +425,8 @@
408 425 </script>
409 426  
410 427 <!-- Scripts-->
411   - <script src="lib/jquery/dist/jquery.min.js"></script>
412   - <script src="lib/Materialize/dist/js/materialize.min.js"></script>
  428 + <script src="lib/jquery/dist/jquery.js"></script>
  429 + <script src="lib/Materialize/dist/js/materialize.js"></script>
413 430 <script src="lib/vue/dist/vue.js"></script>
414 431 <script src="js/init.js"></script>
415 432  
... ...
js/init.js
... ... @@ -51,6 +51,7 @@ var app = new Vue({
51 51 clients: [],
52 52 transactions: [],
53 53 utilisateurs: [],
  54 + statistiques: {},
54 55 },
55 56 methods: {
56 57 // API
... ... @@ -114,6 +115,20 @@ var app = new Vue({
114 115 }
115 116 })
116 117 },
  118 + actuStatistiques: function() {
  119 + var that = this
  120 + this.api("statistiques", {}, function(retour, donnees) {
  121 + switch(retour) {
  122 + case "ok":
  123 + that.statistiques = donnees
  124 + break;
  125 +
  126 + default:
  127 + that.erreur(retour, donnees);
  128 + break;
  129 + }
  130 + })
  131 + },
117 132  
118 133 // Affichage
119 134 modal: function(nom) {
... ... @@ -127,6 +142,12 @@ var app = new Vue({
127 142 this.erreurMessage = donnees.message
128 143 $("#modalErreur").openModal();
129 144 },
  145 + changerPage: function(page, onglet) {
  146 + this.page = page
  147 + if (typeof(onglet) == 'string') {
  148 + $('ul.tabs').tabs('select_tab', onglet);
  149 + }
  150 + },
130 151 annuler: function(id) {
131 152 var that = this
132 153 this.api("annuler", {idTransaction: id}, function(retour, donnees) {
... ... @@ -377,4 +398,3 @@ setInterval(function actualiserDate() {
377 398 app.$data.date = Math.floor(Date.now()/1000)
378 399 }, 1000);
379 400  
380   -
... ...