From 2917fd4159228dbc3f66549633e520fbfb8dbdc8 Mon Sep 17 00:00:00 2001 From: cthienan Date: Wed, 28 Jul 2021 16:59:08 +0200 Subject: [PATCH 1/3] ajout ca groupe global --- development.ini | 2 +- mondumas/models/stats.py | 14 ++++++++ mondumas/templates/stats/ca_groupes.pt | 44 ++++++++++++++++++++++++++ mondumas/views/stats.py | 29 +++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) diff --git a/development.ini b/development.ini index 43f1ab5..0af0f28 100644 --- a/development.ini +++ b/development.ini @@ -19,7 +19,7 @@ pyramid.includes = pyramid_tm -sqlalchemy.url = mysql://phuoc:phuoc!@localhost/bddevfac?charset=utf8 +sqlalchemy.url = mysql://root:anan00@localhost/bddevfac?charset=utf8 # sqlalchemy.url = mysql://phuoc:phuoc!@192.168.1.17/bddevfac?charset=utf8 # sqlalchemy.url = mysql://phuoc:phuoc!@192.168.0.31/bddevfac?charset=utf8 diff --git a/mondumas/models/stats.py b/mondumas/models/stats.py index 7833361..64e8937 100644 --- a/mondumas/models/stats.py +++ b/mondumas/models/stats.py @@ -82,6 +82,20 @@ def get_ca_groupe_3y(request, societe, year): results = request.dbsession.execute(query, {'societe': societe, 'year': year}) return results.fetchall() +def get_ca_groupe_3y_with_others(request, societe, year): + + query = """SELECT groupe, + SUM(IF (year(date) = :year - 2, TOTALHT, 0)) as Annee1, + SUM(IF (year(date) = :year - 2, 1, 0)) as Count1, + SUM(IF (year(date) = :year - 1, TOTALHT, 0)) as Annee2, + SUM(IF (year(date) = :year - 1, 1, 0)) as Count2, + SUM(IF (year(date) = :year, TOTALHT, 0)) as Annee3, + SUM(IF (year(date) = :year, 1, 0)) as Count3 + FROM bddevfac.facture + WHERE societe=:societe AND year(date) >= :year - 2 AND typecli <> 'I' GROUP BY groupe;""" + results = request.dbsession.execute(query, {'societe': societe, 'year': year}) + return results.fetchall() + def get_ca_clients_12m(request, societe, datedeb, datefin): query = """SELECT DATE_FORMAT(date, "%Y%m") as yymm, diff --git a/mondumas/templates/stats/ca_groupes.pt b/mondumas/templates/stats/ca_groupes.pt index 068cc16..b72fe3d 100644 --- a/mondumas/templates/stats/ca_groupes.pt +++ b/mondumas/templates/stats/ca_groupes.pt @@ -37,6 +37,20 @@ +

Evolution du CA sur les 3 dernières années (global)

+
+ +
+
+
+
+
+
+
+
+
+
+ diff --git a/mondumas/views/stats.py b/mondumas/views/stats.py index c04f151..c431b46 100644 --- a/mondumas/views/stats.py +++ b/mondumas/views/stats.py @@ -218,6 +218,32 @@ def ca_groupes(request): d3 = (item.groupe, float(item.Annee3), tooltip_y3) chart_ca_3y_3.append(d3) + # lire les CA par mois + items = get_ca_groupe_3y_with_others(request, societe, thisyear) + chart_ca_3y_1_x = [] + chart_ca_3y_2_x = [] + chart_ca_3y_3_x = [] + # titre des colonnes + chart_ca_3y_1_x.append(('Groupe', 'CA', { 'type':'string','role': 'tooltip'})) + chart_ca_3y_2_x.append(('Groupe', 'CA', { 'type':'string','role': 'tooltip'})) + chart_ca_3y_3_x.append(('Groupe', 'CA', { 'type':'string','role': 'tooltip'})) + title1 = 'CA ' + str(thisyear - 2) + title2 = 'CA ' + str(thisyear - 1) + title3 = 'CA ' + str(thisyear) + for item in items: + # construire la liste pour donut cible + tooltip_y1 = item.groupe + ' \nCA: '+str(item.Annee1) + ' €\nDossiers: '+str(round(item.Count1)) + tooltip_y2 = item.groupe + ' \nCA: '+str(item.Annee2) + ' €\nDossiers: '+str(round(item.Count1)) + tooltip_y3 = item.groupe + ' \nCA: '+str(item.Annee3) + ' €\nDossiers: '+str(round(item.Count1)) + # ('+str(item.population)+')/n' + d1_x = (item.groupe, float(item.Annee1), tooltip_y1) + chart_ca_3y_1_x.append(d1_x) + d2_x = (item.groupe, float(item.Annee2), tooltip_y2) + chart_ca_3y_2_x.append(d2_x) + d3_x = (item.groupe, float(item.Annee3), tooltip_y3) + chart_ca_3y_3_x.append(d3_x) + + return { 'page_title': "CA par groupe", 'url': url, @@ -225,6 +251,9 @@ def ca_groupes(request): 'chart_ca_3y_1': json.dumps(chart_ca_3y_1), 'chart_ca_3y_2': json.dumps(chart_ca_3y_2), 'chart_ca_3y_3': json.dumps(chart_ca_3y_3), + 'chart_ca_3y_1_x': json.dumps(chart_ca_3y_1_x), + 'chart_ca_3y_2_x': json.dumps(chart_ca_3y_2_x), + 'chart_ca_3y_3_x': json.dumps(chart_ca_3y_3_x), 'title': title, 'title1': title1, 'title2': title2, From 63105f5c673d4e1fa035b9d1f3c405e5aa134025 Mon Sep 17 00:00:00 2001 From: cthienan Date: Wed, 28 Jul 2021 17:15:01 +0200 Subject: [PATCH 2/3] bug fix --- development.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/development.ini b/development.ini index 0af0f28..43f1ab5 100644 --- a/development.ini +++ b/development.ini @@ -19,7 +19,7 @@ pyramid.includes = pyramid_tm -sqlalchemy.url = mysql://root:anan00@localhost/bddevfac?charset=utf8 +sqlalchemy.url = mysql://phuoc:phuoc!@localhost/bddevfac?charset=utf8 # sqlalchemy.url = mysql://phuoc:phuoc!@192.168.1.17/bddevfac?charset=utf8 # sqlalchemy.url = mysql://phuoc:phuoc!@192.168.0.31/bddevfac?charset=utf8 From 0e77614b89df91b02c1fbd1dd94326243d699a04 Mon Sep 17 00:00:00 2001 From: cthienan Date: Mon, 2 Aug 2021 15:05:28 +0200 Subject: [PATCH 3/3] ajouts astats pourcentage devis + modif permission devis gest --- development.ini | 2 +- mondumas/models/dossier.py | 5 ++ mondumas/models/stats.py | 21 +++++++ mondumas/routes.py | 1 + mondumas/templates/default/home.pt | 2 +- mondumas/templates/devis/devis_view.pt | 23 ++++--- mondumas/templates/dossier/dossier_view.pt | 17 +++-- mondumas/templates/stats/pourcentage_devis.pt | 63 +++++++++++++++++++ mondumas/templates/stats/stats.pt | 7 ++- mondumas/views/devis.py | 7 +++ mondumas/views/dossier.py | 6 +- mondumas/views/stats.py | 57 +++++++++++++++++ 12 files changed, 185 insertions(+), 26 deletions(-) create mode 100644 mondumas/templates/stats/pourcentage_devis.pt diff --git a/development.ini b/development.ini index 43f1ab5..411fa99 100644 --- a/development.ini +++ b/development.ini @@ -20,7 +20,7 @@ pyramid.includes = sqlalchemy.url = mysql://phuoc:phuoc!@localhost/bddevfac?charset=utf8 -# sqlalchemy.url = mysql://phuoc:phuoc!@192.168.1.17/bddevfac?charset=utf8 +# sqlalchemy.url = mysql://phuoc:phuoc!@192.168.15.33/bddevfac?charset=utf8 # sqlalchemy.url = mysql://phuoc:phuoc!@192.168.0.31/bddevfac?charset=utf8 mondumas.admin_email = cao.thien-phuoc@orange.fr diff --git a/mondumas/models/dossier.py b/mondumas/models/dossier.py index 35d3bd3..d775a83 100644 --- a/mondumas/models/dossier.py +++ b/mondumas/models/dossier.py @@ -339,6 +339,11 @@ def get_status_by_id(request, code): results = request.dbsession.execute(query, {'code': code}).first() return results +def get_motifs(request): + query = """SELECT * FROM p_motfs;""" + results = request.dbsession.execute(query,).fetchall() + return results + def get_factures_en_att(request, societe): query = """SELECT f.date, LPAD(f.no_id,6,'0') AS numero, f.nomcli, CONCAT(f.c_nom,'; ',f.c_adr,'; ',f.c_ville) AS chantier, f.totalht AS montant, f.status, s.libelle, f.nosin, f.nopol, f.usermaj FROM facture f JOIN p_statuts s ON f.STATUS = s.CODE WHERE f.societe=:societe AND f.STATUS < 8 ORDER BY f.societe, f.STATUS, f.nomcli;""" diff --git a/mondumas/models/stats.py b/mondumas/models/stats.py index 64e8937..19b6c27 100644 --- a/mondumas/models/stats.py +++ b/mondumas/models/stats.py @@ -141,3 +141,24 @@ def get_delais_pourcent(request, societe, groupe, datedeb): WHERE societe = :societe AND GROUPE = :groupe AND date >= :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): + + query = """SELECT + SUM(IF (NOFACT > 0, 1, 0)) AS devis_fact, + SUM(IF (NOFACT <= 0, 1, 0)) AS devis_non_fact + FROM bddevfac.devis + WHERE societe = :societe AND date >= :datedeb;""" + results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y-%m")}) + return results.fetchall() + +def get_nb_fact_with_devis(request, societe, datedeb): + + query = """SELECT + SUM(IF (NODEVIS > 0, 1, 0)) AS fact_w_devis, + SUM(IF (NODEVIS <= 0, 1, 0)) AS fact_wo_devis + FROM bddevfac.facture + WHERE societe = :societe AND date >= :datedeb;""" + results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y-%m")}) + return results.fetchall() + diff --git a/mondumas/routes.py b/mondumas/routes.py index eabd1d2..72cfa9d 100644 --- a/mondumas/routes.py +++ b/mondumas/routes.py @@ -87,6 +87,7 @@ def includeme(config): config.add_route('ca_groupes', '/ca_groupes/{societe}') config.add_route('ca_clients', '/ca_clients/{societe}') config.add_route('delais_pourcentage', '/delais_pourcentage/{societe}') + config.add_route('pourcentage_devis', '/pourcentage_devis/{societe}') # utils config.add_route('batch_nuit', '/batch_nuit/{param}') diff --git a/mondumas/templates/default/home.pt b/mondumas/templates/default/home.pt index d559397..b2ca603 100644 --- a/mondumas/templates/default/home.pt +++ b/mondumas/templates/default/home.pt @@ -109,7 +109,7 @@
DEVIS - EN ATTENTE + EN COURS ${nb_de_restants.nb_PE} ${nb_de_restants.nb_ME} ${nb_de_restants.nb_PL} diff --git a/mondumas/templates/devis/devis_view.pt b/mondumas/templates/devis/devis_view.pt index 96fe14e..c6b8e11 100644 --- a/mondumas/templates/devis/devis_view.pt +++ b/mondumas/templates/devis/devis_view.pt @@ -64,14 +64,14 @@

Dernière modif. le ${entete.DATEMAJ.strftime('%d/%m/%Y à %H:%M')} par ${entete.USERMAJ}

Modif. statut + data-toggle="modal" data-target="#confirmCloture" tal:condition="access > 0"> Modif. statut

- +
@@ -98,9 +98,9 @@ - - - + + +
Total HT Total TVA
${detail.REF} ${detail.LIB}${layout.to_euro(detail.QTE)}${layout.to_euroz(detail.PRIXHT)}${layout.to_euroz(detail.MTHT)}${detail.QTE}${layout.to_euroz(detail.PRIXHT)}${layout.to_euroz(detail.MTHT)} ${detail.USERMAJ}
@@ -133,13 +133,12 @@
- +

diff --git a/mondumas/templates/dossier/dossier_view.pt b/mondumas/templates/dossier/dossier_view.pt index 071b5ea..6522792 100644 --- a/mondumas/templates/dossier/dossier_view.pt +++ b/mondumas/templates/dossier/dossier_view.pt @@ -129,7 +129,7 @@