Browse Source

Sort articles by number of membership/cotisation months before saving a invoice

merge-requests/625/merge
chapeau 2 years ago
parent
commit
9b3892a1ea
  1. 10
      cotisations/views.py

10
cotisations/views.py

@ -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…
Cancel
Save