This commit is contained in:
2021-08-03 08:15:30 +02:00
13 changed files with 272 additions and 26 deletions

View File

@@ -73,6 +73,10 @@ def devis_view(request):
logged_in = request.authenticated_userid.upper()
url = request.route_url("devis_view", nodevis=nodevis)
# lire son niveau d'accès
member = get_member_by_id(request, logged_in)
access = member.access
type_doc = nodevis[3:5]
if type_doc == 'DE':
page_title = "Devis no : %s" % (nodevis)
@@ -93,6 +97,7 @@ def devis_view(request):
bg_color = "bg-%s" % societe
status = get_status_by_id(request, 'DE')
motifs = get_motifs(request)
if 'form.close' in request.params:
status = request.params["status"]
@@ -119,7 +124,9 @@ def devis_view(request):
'details': details,
'bg_color': bg_color,
'status': status,
'motifs': motifs,
'type_doc': type_doc,
'access': access,
}
@view_config(route_name='devis_web', renderer='../templates/devis/devis_web.pt', permission='view')

View File

@@ -127,6 +127,7 @@ def dossier_view(request):
bg_color = "bg-%s" % societe
status = get_status_by_id(request, '')
motifs = get_motifs(request)
if 'form.close' in request.params:
status = request.params["status"]
@@ -159,6 +160,7 @@ def dossier_view(request):
'bg_color': bg_color,
'access': access,
'status': status,
'motifs': motifs,
}
@view_config(route_name='dossier_selected', permission='view')
@@ -1442,8 +1444,8 @@ def resize_photos(image_file):
# set the resizing factor so the aspect ratio can be retained
# factor > 1.0 increases size
# factor < 1.0 decreases size
factor = 0.50
width = int(width_org * factor)
width = 1366
factor = (width/float(width_org))
height = int(height_org * factor)
# best down-sizing filter
img_anti = img_org.resize((width, height), Image.ANTIALIAS)

View File

@@ -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,
@@ -378,3 +407,60 @@ def delais_pourcentage(request):
'groupe': groupe,
}
@view_config(route_name='pourcentage_devis', renderer='../templates/stats/pourcentage_devis.pt', permission='view')
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)
societes = ['PE','ME','PL']
# si societe a été changé par le user
if 'societe' in request.params:
societe = request.params["societe"]
# lire le nb de devis facturés
items = get_nb_devis_fact(request, societe, datedeb)
chart_devis_fact = []
# titre des colonnes
chart_devis_fact.append(('Catégorie', 'Delais'))
title = 'POURCENTAGE DU NOMBRE DE DEVIS FACTURÉS'
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)
# lire le nb de devis facturés
items = get_nb_fact_with_devis(request, societe, datedeb)
chart_fact = []
# titre des colonnes
chart_fact.append(('Catégorie', 'Delais'))
title = 'POURCENTAGE DU NOMBRE DE FACTURES AVEC DEVIS'
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)
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,
'societes': societes,
'societe': societe,
}