diff --git a/mondumas/models/stats.py b/mondumas/models/stats.py
index 19b6c27..51dbf30 100644
--- a/mondumas/models/stats.py
+++ b/mondumas/models/stats.py
@@ -142,23 +142,31 @@ def get_delais_pourcent(request, societe, groupe, datedeb):
results = request.dbsession.execute(query, {'societe': societe, 'groupe': groupe, 'datedeb': datedeb.strftime("%Y-%m")})
return results.fetchall()
-def get_nb_devis_fact(request, societe, datedeb):
+def get_nb_devis_fact(request, societe, year):
query = """SELECT
- SUM(IF (NOFACT > 0, 1, 0)) AS devis_fact,
- SUM(IF (NOFACT <= 0, 1, 0)) AS devis_non_fact
+ SUM(IF (NOFACT > 0 AND year(date) = :year - 2, 1, 0)) AS devis_fact_y1,
+ SUM(IF (NOFACT <= 0 AND year(date) = :year - 2, 1, 0)) AS devis_non_fact_y1,
+ SUM(IF (NOFACT > 0 AND year(date) = :year - 1, 1, 0)) AS devis_fact_y2,
+ SUM(IF (NOFACT <= 0 AND year(date) = :year - 1, 1, 0)) AS devis_non_fact_y2,
+ SUM(IF (NOFACT > 0 AND year(date) = :year, 1, 0)) AS devis_fact_y3,
+ SUM(IF (NOFACT <= 0 AND year(date) = :year, 1, 0)) AS devis_non_fact_y3
FROM bddevfac.devis
- WHERE societe = :societe AND date >= :datedeb;"""
- results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y-%m")})
+ WHERE societe = :societe;"""
+ results = request.dbsession.execute(query, {'societe': societe, 'year': year})
return results.fetchall()
-def get_nb_fact_with_devis(request, societe, datedeb):
+def get_nb_fact_with_devis(request, societe, year):
query = """SELECT
- SUM(IF (NODEVIS > 0, 1, 0)) AS fact_w_devis,
- SUM(IF (NODEVIS <= 0, 1, 0)) AS fact_wo_devis
+ SUM(IF (NODEVIS > 0 AND year(date) = :year - 2, 1, 0)) AS fact_w_devis_y1,
+ SUM(IF (NODEVIS <= 0 AND year(date) = :year - 2, 1, 0)) AS fact_wo_devis_y1,
+ SUM(IF (NODEVIS > 0 AND year(date) = :year - 1, 1, 0)) AS fact_w_devis_y2,
+ SUM(IF (NODEVIS <= 0 AND year(date) = :year - 1, 1, 0)) AS fact_wo_devis_y2,
+ SUM(IF (NODEVIS > 0 AND year(date) = :year, 1, 0)) AS fact_w_devis_y3,
+ SUM(IF (NODEVIS <= 0 AND year(date) = :year, 1, 0)) AS fact_wo_devis_y3
FROM bddevfac.facture
- WHERE societe = :societe AND date >= :datedeb;"""
- results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y-%m")})
+ WHERE societe = :societe;"""
+ results = request.dbsession.execute(query, {'societe': societe, 'year': year})
return results.fetchall()
diff --git a/mondumas/templates/stats/pourcentage_devis.pt b/mondumas/templates/stats/pourcentage_devis.pt
index 9550805..fed5367 100644
--- a/mondumas/templates/stats/pourcentage_devis.pt
+++ b/mondumas/templates/stats/pourcentage_devis.pt
@@ -19,12 +19,16 @@
@@ -32,28 +36,64 @@
diff --git a/mondumas/views/stats.py b/mondumas/views/stats.py
index 37224be..8f05b13 100644
--- a/mondumas/views/stats.py
+++ b/mondumas/views/stats.py
@@ -413,9 +413,8 @@ def pourcentage_devis(request):
societe = request.matchdict['societe']
url = request.route_url('delais_pourcentage', societe = societe)
- datefin = date.today()
- # debut = aujourd'hui - 11 mois
- datedeb = datefin + relativedelta(months=-11)
+ # année aujourd'hui
+ thisyear = date.today().year
societes = ['PE','ME','PL']
# si societe a été changé par le user
@@ -423,43 +422,76 @@ def pourcentage_devis(request):
societe = request.params["societe"]
# lire le nb de devis facturés
- items = get_nb_devis_fact(request, societe, datedeb)
- chart_devis_fact = []
-
+ items = get_nb_devis_fact(request, societe, thisyear)
+ chart_devis_y1 = []
+ chart_devis_y2 = []
+ chart_devis_y3 = []
# titre des colonnes
- chart_devis_fact.append(('Catégorie', 'Delais'))
- title = 'POURCENTAGE DU NOMBRE DE DEVIS FACTURÉS'
+ chart_devis_y1.append(('Catégorie', 'Nb Devis facturés'))
+ chart_devis_y2.append(('Catégorie', 'Nb Devis facturés'))
+ chart_devis_y3.append(('Catégorie', 'Nb Devis facturés'))
+ title_devis1 = 'NB DEVIS ' + str(thisyear - 2)
+ title_devis2 = 'NB DEVIS ' + str(thisyear - 1)
+ title_devis3 = 'NB DEVIS ' + str(thisyear)
for item in items:
- # construire la liste pour donut cible
- #tooltipA = item.date + ' \nCA: '+str(item.A_ca) + ' €\nDossiers: '+str(round(item.A_nb))
- # ('+str(item.population)+')/n'
- d = ('Nb de devis facturés', round(item.devis_fact))
- chart_devis_fact.append(d)
- d = ('Nb de devis non facturés', round(item.devis_non_fact))
- chart_devis_fact.append(d)
+ d1 = ('Nb de devis facturés', item.devis_fact_y1)
+ chart_devis_y1.append(d1)
+ d1 = ('Nb de devis non facturés', item.devis_non_fact_y1)
+ chart_devis_y1.append(d1)
+
+ d2 = ('Nb de devis facturés', item.devis_fact_y2)
+ chart_devis_y2.append(d2)
+ d2 = ('Nb de devis non facturés', item.devis_non_fact_y2)
+ chart_devis_y2.append(d2)
+
+ d3 = ('Nb de devis facturés', item.devis_fact_y3),
+ chart_devis_y3.append(d3)
+ d3 = ('Nb de devis non facturés', item.devis_non_fact_y3)
+ chart_devis_y3.append(d3)
# lire le nb de devis facturés
- items = get_nb_fact_with_devis(request, societe, datedeb)
- chart_fact = []
-
+ items = get_nb_fact_with_devis(request, societe, thisyear)
+ chart_fact_y1 = []
+ chart_fact_y2 = []
+ chart_fact_y3 = []
# titre des colonnes
- chart_fact.append(('Catégorie', 'Delais'))
- title = 'POURCENTAGE DU NOMBRE DE FACTURES AVEC DEVIS'
+ chart_fact_y1.append(('Catégorie', 'Nb Factures avec devis'))
+ chart_fact_y2.append(('Catégorie', 'Nb Factures avec devis'))
+ chart_fact_y3.append(('Catégorie', 'Nb Factures avec devis'))
+ title_fact1 = 'NB FACTURES ' + str(thisyear - 2)
+ title_fact2 = 'NB FACTURES ' + str(thisyear - 1)
+ title_fact3 = 'NB FACTURES ' + str(thisyear)
for item in items:
- # construire la liste pour donut cible
- #tooltipA = item.date + ' \nCA: '+str(item.A_ca) + ' €\nDossiers: '+str(round(item.A_nb))
- # ('+str(item.population)+')/n'
- d = ('Nb de factures avec devis', round(item.fact_w_devis))
- chart_fact.append(d)
- d = ('Nb de factures sans devis', round(item.fact_wo_devis))
- chart_fact.append(d)
+ d1 = ("Nb de factures avec devis", item.fact_w_devis_y1)
+ chart_fact_y1.append(d1)
+ d1 = ("Nb de factures sans devis", item.fact_wo_devis_y1)
+ chart_fact_y1.append(d1)
+
+ d2 = ("Nb de factures avec devis", item.fact_w_devis_y2)
+ chart_fact_y2.append(d2)
+ d2 = ("Nb de factures sans devis", item.fact_wo_devis_y2)
+ chart_fact_y2.append(d2)
+
+ d3 = ("Nb de factures avec devis", item.fact_w_devis_y3)
+ chart_fact_y3.append(d3)
+ d3 = ("Nb de factures sans devis", item.fact_wo_devis_y3)
+ chart_fact_y3.append(d3)
return {
'page_title': "Pourcentage de délais inférieurs à 2 jours",
'url': url,
- 'chart_devis_fact': json.dumps(chart_devis_fact),
- 'chart_fact': json.dumps(chart_fact),
- 'title': title,
+ 'chart_devis_y1': json.dumps(chart_devis_y1),
+ 'chart_devis_y2': json.dumps(chart_devis_y2),
+ 'chart_devis_y3': json.dumps(chart_devis_y3),
+ 'chart_fact_y1': json.dumps(chart_fact_y1),
+ 'chart_fact_y2': json.dumps(chart_fact_y2),
+ 'chart_fact_y3': json.dumps(chart_fact_y3),
+ 'title_devis1': title_devis1,
+ 'title_devis2': title_devis2,
+ 'title_devis3': title_devis3,
+ 'title_fact1': title_fact1,
+ 'title_fact2': title_fact2,
+ 'title_fact3': title_fact3,
'societes': societes,
'societe': societe,
}