forked from DGNum/gestioCOF
week & day stat
This commit is contained in:
parent
e4c8209df8
commit
3a7ffefacf
4 changed files with 378 additions and 2 deletions
130
kfet/statistic.py
Normal file
130
kfet/statistic.py
Normal file
|
@ -0,0 +1,130 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from django.utils import timezone
|
||||
|
||||
french_days = {
|
||||
1: "lundi",
|
||||
2: "mardi",
|
||||
3: "mercredi",
|
||||
4: "jeudi",
|
||||
5: "vendredi",
|
||||
6: "samedi",
|
||||
7: "dimanche",
|
||||
}
|
||||
|
||||
french_months = {
|
||||
1: "janvier",
|
||||
2: "février",
|
||||
3: "mars",
|
||||
4: "avril",
|
||||
5: "mai",
|
||||
6: "juin",
|
||||
7: "juillet",
|
||||
8: "août",
|
||||
9: "septembre",
|
||||
10: "octobre",
|
||||
11: "novembre",
|
||||
12: "décembre",
|
||||
}
|
||||
|
||||
|
||||
def dayname(date):
|
||||
return french_days[date.isoweekday()]
|
||||
|
||||
|
||||
def weekname(date):
|
||||
(_, a, _) = date.isocalendar()
|
||||
week_num = a
|
||||
return "semaine %d" % week_num
|
||||
|
||||
|
||||
def monthname(date):
|
||||
return french_months[date.month]
|
||||
|
||||
|
||||
# Pareil mais pour une liste de dates
|
||||
# dans un dico ordonné
|
||||
def daynames(dates):
|
||||
names = {}
|
||||
for i in dates:
|
||||
names[i] = dayname(dates[i])
|
||||
return names
|
||||
|
||||
|
||||
# Pareil mais pour une liste de dates
|
||||
# dans un dico ordonné
|
||||
def weeksnames(dates):
|
||||
names = {}
|
||||
for i in dates:
|
||||
names[i] = weekname(dates[i])
|
||||
return names
|
||||
|
||||
|
||||
# Pareil mais pour une liste de dates
|
||||
# dans un dico ordonné
|
||||
def monthnames(dates):
|
||||
names = {}
|
||||
for i in dates:
|
||||
names[i] = monthname(dates[i])
|
||||
return names
|
||||
|
||||
|
||||
# rend les dates des nb derniers jours
|
||||
# dans l'ordre chronologique
|
||||
# aujourd'hui compris
|
||||
# nb = 1 : rend hier
|
||||
def lastdays(nb):
|
||||
morning = this_morning()
|
||||
days = {}
|
||||
for i in range(1, nb+1):
|
||||
days[i] = morning - timezone.timedelta(days=nb - i + 1)
|
||||
return days
|
||||
|
||||
|
||||
def lastweeks(nb):
|
||||
monday_morning = this_monday_morning()
|
||||
mondays = {}
|
||||
for i in range(1, nb+1):
|
||||
mondays[i] = monday_morning \
|
||||
- timezone.timedelta(days=7*(nb - i + 1))
|
||||
return mondays
|
||||
|
||||
|
||||
# def lastmonths(nb):
|
||||
# first_month_day = this_first_month_day()
|
||||
# fisrt_days = {}
|
||||
# for i in range(1, nb+1):
|
||||
# days[i] =
|
||||
|
||||
|
||||
def this_first_month_day():
|
||||
now = timezone.now()
|
||||
first_day = timezone.datetime(year=now.year,
|
||||
month=now.month,
|
||||
day=1)
|
||||
return first_day
|
||||
|
||||
|
||||
def this_monday_morning():
|
||||
now = timezone.now()
|
||||
monday = now - timezone.timedelta(days=now.isoweekday()-1)
|
||||
monday_morning = timezone.datetime(year=monday.year,
|
||||
month=monday.month,
|
||||
day=monday.day)
|
||||
return monday_morning
|
||||
|
||||
|
||||
def this_morning():
|
||||
now = timezone.now()
|
||||
morning = timezone.datetime(year=now.year,
|
||||
month=now.month,
|
||||
day=now.day)
|
||||
return morning
|
||||
|
||||
|
||||
# Étant donné un queryset d'operations
|
||||
# rend la somme des article_nb
|
||||
def tot_ventes(queryset):
|
||||
res = 0
|
||||
for op in queryset:
|
||||
res += op.article_nb
|
||||
return res
|
Loading…
Add table
Add a link
Reference in a new issue