ca_groupe

This commit is contained in:
2021-06-15 10:30:48 +02:00
parent 1356fc2255
commit 0601815ec0
10 changed files with 411 additions and 159 deletions

View File

@@ -32,19 +32,6 @@ def get_rappels_rdv(request):
results = request.dbsession.execute(query, {})
return results.fetchall()
def get_stats_dd(request, societe):
query = """SELECT societe, year(date) as Annee, COUNT(*) as Total,
SUM(IF(status = '', 1, 0)) AS Created,
SUM(IF(status = 'Devis', 1, 0)) AS Devis,
SUM(IF(status = 'Commandé', 1, 0)) AS Commande,
SUM(IF(status = 'Facturé', 1, 0)) AS Facture,
SUM(IF(status = 'Régl part.', 1, 0)) AS ReglePart,
SUM(IF(status = 'Réglée', 1, 0)) AS Regle
FROM dem_devis where societe=:societe group by societe, year(date);"""
results = request.dbsession.execute(query, {'societe': societe}).fetchall()
return results
def get_dossiers_byChantier(request, societe, name):
query = "CALL spGET_DOSSIERS_byChantier('%s','%s','%s');" % (societe, 'DE', name.replace("'","''"))
@@ -197,21 +184,7 @@ def update_expert(request, code_cab, code_exp, new_values):
def delete_expert(request, code_cab, code_exp):
query = "DELETE FROM p_experts WHERE code_cab = :code_cab AND code_exp = :code_exp;"
execute_query(request, query, {'code_cab': code_cab, 'code_exp': code_exp})
def get_stats_delai_groupe(request, societe, datedeb, datefin):
query = """SELECT group2, group2_lib FROM stats_delais
WHERE societe=:societe AND group1 >= :datedeb AND group1 <= :datefin GROUP BY group2 ORDER BY group2_lib;"""
results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y%m"), 'datefin': datefin.strftime("%Y%m")})
return results.fetchall()
def get_stats_delais(request, societe, datedeb, datefin, groupe, id_chart):
# lire les examens sur 12 mois glissants par moniteur
query = """SELECT * FROM stats_delais
WHERE societe=:societe AND id=:id_chart AND group1 >= :datedeb AND group1 <= :datefin AND group2=:groupe order by group1;"""
results = request.dbsession.execute(query, {'societe': societe, 'id_chart': id_chart, 'datedeb': datedeb.strftime("%Y%m"),
'datefin': datefin.strftime("%Y%m"), 'groupe': groupe})
return results.fetchall()
def update_societe(request, code, new_values):
# formater les champs
s = ''

61
mondumas/models/stats.py Normal file
View File

@@ -0,0 +1,61 @@
# -*- coding: utf8 -*-
from sqlalchemy import text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
)
from zope.sqlalchemy import (
ZopeTransactionExtension,
mark_changed
)
from datetime import *
import dateutil.relativedelta
import transaction
def execute_query(request, query, params):
"""Execute query and mark session as changed"""
request.dbsession.execute(query, params)
mark_changed(request.dbsession)
transaction.commit()
def get_stats_dd(request, societe):
query = """SELECT societe, year(date) as Annee, COUNT(*) as Total,
SUM(IF(status = '', 1, 0)) AS A_traiter,
SUM(IF(status = 'Devis', 1, 0)) AS Devis,
SUM(IF(status = 'Commandé', 1, 0)) AS Commande,
SUM(IF(status = 'Facturé', 1, 0)) AS Facture,
SUM(IF(status = 'Régl part.', 1, 0)) AS ReglePart,
SUM(IF(status = 'Réglée', 1, 0)) AS Regle
FROM dem_devis where societe=:societe group by societe, year(date) order by year(date) desc;"""
results = request.dbsession.execute(query, {'societe': societe}).fetchall()
return results
def get_stats_delais(request, societe, datedeb, datefin, groupe, id_chart):
# lire les examens sur 12 mois glissants par moniteur
query = """SELECT * FROM stats_delais
WHERE societe=:societe AND id=:id_chart AND group1 >= :datedeb AND group1 <= :datefin AND group2=:groupe order by group1;"""
results = request.dbsession.execute(query, {'societe': societe, 'id_chart': id_chart, 'datedeb': datedeb.strftime("%Y%m"),
'datefin': datefin.strftime("%Y%m"), 'groupe': groupe})
return results.fetchall()
def get_stats_delai_groupe(request, societe, datedeb, datefin):
query = """SELECT group2, group2_lib FROM stats_delais
WHERE societe=:societe AND group1 >= :datedeb AND group1 <= :datefin GROUP BY group2 ORDER BY group2_lib;"""
results = request.dbsession.execute(query, {'societe': societe, 'datedeb': datedeb.strftime("%Y%m"), 'datefin': datefin.strftime("%Y%m")})
return results.fetchall()
def get_ca_groupe_12m(request, societe):
query = """SELECT DATE_FORMAT(date, "%Y%m") as yymm,
DATE_FORMAT(date, "%M") as mois,
SUM(IF(groupe = 'AXA', totalht, 0)) AS AXA_ca,
sum(IF(groupe = 'AXA', 1, 0)) AS AXA_nb,
SUM(IF(groupe = 'MAIF', totalht, 0)) AS MAIF
FROM bddevfac.facture
WHERE societe='PE' and date >= "2020/07/01" and date <= "2021/06/30" GROUP BY yymm;"""
results = request.dbsession.execute(query, {'societe': societe}).fetchall()
return results