Ajout graphes CA par clients

This commit is contained in:
thienan
2021-06-16 10:45:08 +02:00
parent 6902e04e54
commit 4e3e2f9a36
7 changed files with 359 additions and 135 deletions

View File

@@ -155,13 +155,14 @@ def stats_delais(request):
'groupe': groupe,
}
@view_config(route_name='ca_groupes_12m', renderer='../templates/stats/ca_groupes_12m.pt', permission='view')
def ca_groupes_12m(request):
@view_config(route_name='ca_groupes', renderer='../templates/stats/ca_groupes.pt', permission='view')
def ca_groupes(request):
societe = request.matchdict['societe']
url = request.route_url('stats_delais', societe = societe)
url = request.route_url('ca_groupes', societe = societe)
datefin = date.today()
datefin.replace(day=1)
# debut = aujourd'hui - 11 mois
datedeb = datefin + relativedelta(months=-11)
@@ -172,6 +173,7 @@ def ca_groupes_12m(request):
# lire les CA par mois
items = get_ca_groupe_12m(request, societe, datedeb, datefin)
print(datedeb)
chart_ca_12m = []
# titre des colonnes
chart_ca_12m.append(('Mois', 'AXA', { 'type':'string','role': 'tooltip'}, 'MAIF', { 'type':'string','role': 'tooltip'}))
@@ -194,22 +196,105 @@ def ca_groupes_12m(request):
chart_ca_3y_2 = []
chart_ca_3y_3 = []
# titre des colonnes
chart_ca_3y_1.append(('Groupe', 'CA'))
chart_ca_3y_2.append(('Groupe', 'CA'))
chart_ca_3y_3.append(('Groupe', 'CA'))
chart_ca_3y_1.append(('Groupe', 'CA', { 'type':'string','role': 'tooltip'}))
chart_ca_3y_2.append(('Groupe', 'CA', { 'type':'string','role': 'tooltip'}))
chart_ca_3y_3.append(('Groupe', 'CA', { 'type':'string','role': 'tooltip'}))
title1 = 'CA ' + (datedeb + relativedelta(years=-2)).strftime("%Y")
title2 = 'CA ' + (datedeb + relativedelta(years=-1)).strftime("%Y")
title3 = 'CA ' + datedeb.strftime("%Y")
for item in items:
# construire la liste pour donut cible
#tooltipMAIF = item.date + ' \nCA: '+str(item.MAIF_ca) + ' €\nDossiers: '+str(round(item.MAIF_nb))
#tooltipAXA = item.date + ' \nCA: '+str(item.AXA_ca) + ' €\nDossiers: '+str(round(item.AXA_nb))
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 = (item.groupe, float(item.Annee1))
d1 = (item.groupe, float(item.Annee1), tooltip_y1)
chart_ca_3y_1.append(d1)
d2 = (item.groupe, float(item.Annee2))
d2 = (item.groupe, float(item.Annee2), tooltip_y2)
chart_ca_3y_2.append(d2)
d3 = (item.groupe, float(item.Annee3))
d3 = (item.groupe, float(item.Annee3), tooltip_y3)
chart_ca_3y_3.append(d3)
return {
'page_title': "CA par groupe",
'url': url,
'chart_ca_12m': json.dumps(chart_ca_12m),
'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),
'title': title,
'title1': title1,
'title2': title2,
'title3': title3,
'societes': societes,
'societe': societe,
}
@view_config(route_name='ca_clients', renderer='../templates/stats/ca_clients.pt', permission='view')
def ca_clients(request):
societe = request.matchdict['societe']
url = request.route_url('ca_clients', societe = societe)
datefin = date.today()
# debut = aujourd'hui - 11 mois
datedeb = datefin + relativedelta(months=-11)
societes = ['PE','ME','PL']
# si societe a été changé par le user
if 'societe' in request.params:
societe = request.params["societe"]
# lire les CA par mois
items = get_ca_clients_12m(request, societe, datedeb, datefin)
print(datedeb)
chart_ca_12m = []
# titre des colonnes
chart_ca_12m.append(('Mois', 'A', { 'type':'string','role': 'tooltip'}, 'E', { 'type':'string','role': 'tooltip'},
'G', { 'type':'string','role': 'tooltip'}, 'I', { 'type':'string','role': 'tooltip'}, 'P', { 'type':'string','role': 'tooltip'},
'R', { 'type':'string','role': 'tooltip'}, 'S', { 'type':'string','role': 'tooltip'}))
title = 'CA / MOIS'
for item in items:
# construire la liste pour donut cible
tooltipA = item.date + ' \nCA: '+str(item.A_ca) + '\nDossiers: '+str(round(item.A_nb))
tooltipE = item.date + ' \nCA: '+str(item.E_ca) + '\nDossiers: '+str(round(item.E_nb))
tooltipG = item.date + ' \nCA: '+str(item.G_ca) + '\nDossiers: '+str(round(item.G_nb))
tooltipI = item.date + ' \nCA: '+str(item.I_ca) + '\nDossiers: '+str(round(item.I_nb))
tooltipP = item.date + ' \nCA: '+str(item.P_ca) + '\nDossiers: '+str(round(item.P_nb))
tooltipR = item.date + ' \nCA: '+str(item.R_ca) + '\nDossiers: '+str(round(item.R_nb))
tooltipS = item.date + ' \nCA: '+str(item.S_ca) + '\nDossiers: '+str(round(item.S_nb))
# ('+str(item.population)+')/n'
d = (item.mois, float(item.A_ca), tooltipA, float(item.E_ca), tooltipE, float(item.G_ca), tooltipG,
float(item.I_ca), tooltipI, float(item.P_ca), tooltipP, float(item.R_ca), tooltipR, float(item.S_ca), tooltipS)
chart_ca_12m.append(d)
# debut = aujourd'hui - 11 mois
datedeb = date.today()
datedeb.replace(month=1,day=1)
# lire les CA par mois
items = get_ca_clients_3y(request, societe, datedeb)
chart_ca_3y_1 = []
chart_ca_3y_2 = []
chart_ca_3y_3 = []
# titre des colonnes
chart_ca_3y_1.append(('Clients', 'CA', { 'type':'string','role': 'tooltip'}))
chart_ca_3y_2.append(('Clients', 'CA', { 'type':'string','role': 'tooltip'}))
chart_ca_3y_3.append(('Clients', 'CA', { 'type':'string','role': 'tooltip'}))
title1 = 'CA ' + (datedeb + relativedelta(years=-2)).strftime("%Y")
title2 = 'CA ' + (datedeb + relativedelta(years=-1)).strftime("%Y")
title3 = 'CA ' + datedeb.strftime("%Y")
for item in items:
# construire la liste pour donut cible
tooltip_y1 = item.typecli + ' \nCA: '+str(item.Annee1) + '\nDossiers: '+str(round(item.Count1))
tooltip_y2 = item.typecli + ' \nCA: '+str(item.Annee2) + '\nDossiers: '+str(round(item.Count1))
tooltip_y3 = item.typecli + ' \nCA: '+str(item.Annee3) + '\nDossiers: '+str(round(item.Count1))
# ('+str(item.population)+')/n'
d1 = (item.typecli, float(item.Annee1), tooltip_y1)
chart_ca_3y_1.append(d1)
d2 = (item.typecli, float(item.Annee2), tooltip_y2)
chart_ca_3y_2.append(d2)
d3 = (item.typecli, float(item.Annee3), tooltip_y3)
chart_ca_3y_3.append(d3)
return {