mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-22 03:13:12 +00:00
Sort articles by number of membership/cotisation months before saving a invoice
This commit is contained in:
parent
cab6598d28
commit
9b3892a1ea
1 changed files with 9 additions and 1 deletions
|
@ -75,6 +75,8 @@ def new_facture(request, user, userid):
|
|||
A bit of JS is used in the template to add articles in a fancier way.
|
||||
If everything is correct, save each one of the articles, save the
|
||||
purchase object associated and finally the newly created invoice.
|
||||
Each article is created and save sorted by the number of month-length
|
||||
membership or connection they offer, to solve duration ambiguities.
|
||||
"""
|
||||
invoice = Facture(user=user)
|
||||
# The template needs the list of articles (for the JS part)
|
||||
|
@ -98,7 +100,13 @@ def new_facture(request, user, userid):
|
|||
# Building a purchase for each article sold
|
||||
purchases = []
|
||||
total_price = 0
|
||||
for art_item in articles:
|
||||
# We sort articles by number of months of subscription in them, to solve month + day ambiguities issues
|
||||
sorted_articles = sorted(
|
||||
articles,
|
||||
key=lambda art: max(art.cleaned_data["article"].duration_membership, art.cleaned_data["article"].duration_connection),
|
||||
reverse=True
|
||||
)
|
||||
for art_item in sorted_articles:
|
||||
if art_item.cleaned_data:
|
||||
article = art_item.cleaned_data["article"]
|
||||
quantity = art_item.cleaned_data["quantity"]
|
||||
|
|
Loading…
Reference in a new issue