Merge branch 'Tragicus/kfetTriArticles' into 'master'

kfet articles vendus en premier dans inventaire et commandes

Closes #219

See merge request klub-dev-ens/gestioCOF!477
This commit is contained in:
Martin Pepin 2021-01-06 21:41:39 +01:00
commit ab9d95055e
6 changed files with 111 additions and 25 deletions

View file

@ -31,6 +31,8 @@ adhérents ni des cotisations.
### K-Fêt ### K-Fêt
- On affiche les articles actuellement en vente en premier lors des inventaires
et des commandes.
- On peut supprimer un inventaire. Seuls les articles dont c'est le dernier - On peut supprimer un inventaire. Seuls les articles dont c'est le dernier
inventaire sont affectés. inventaire sont affectés.

View file

@ -558,6 +558,7 @@ class InventoryArticleForm(forms.Form):
self.category = kwargs["initial"]["category"] self.category = kwargs["initial"]["category"]
self.category_name = kwargs["initial"]["category__name"] self.category_name = kwargs["initial"]["category__name"]
self.box_capacity = kwargs["initial"]["box_capacity"] self.box_capacity = kwargs["initial"]["box_capacity"]
self.is_sold = kwargs["initial"]["is_sold"]
# ----- # -----
@ -584,6 +585,7 @@ class OrderArticleForm(forms.Form):
self.v_et = kwargs["initial"]["v_et"] self.v_et = kwargs["initial"]["v_et"]
self.v_prev = kwargs["initial"]["v_prev"] self.v_prev = kwargs["initial"]["v_prev"]
self.c_rec = kwargs["initial"]["c_rec"] self.c_rec = kwargs["initial"]["c_rec"]
self.is_sold = kwargs["initial"]["is_sold"]
class OrderArticleToInventoryForm(forms.Form): class OrderArticleToInventoryForm(forms.Form):

View file

@ -0,0 +1,66 @@
# Generated by Django 2.2.17 on 2021-01-06 20:26
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("kfet", "0072_auto_20200901_1526"),
]
operations = [
migrations.AlterField(
model_name="account",
name="promo",
field=models.IntegerField(
blank=True,
choices=[
(1980, 1980),
(1981, 1981),
(1982, 1982),
(1983, 1983),
(1984, 1984),
(1985, 1985),
(1986, 1986),
(1987, 1987),
(1988, 1988),
(1989, 1989),
(1990, 1990),
(1991, 1991),
(1992, 1992),
(1993, 1993),
(1994, 1994),
(1995, 1995),
(1996, 1996),
(1997, 1997),
(1998, 1998),
(1999, 1999),
(2000, 2000),
(2001, 2001),
(2002, 2002),
(2003, 2003),
(2004, 2004),
(2005, 2005),
(2006, 2006),
(2007, 2007),
(2008, 2008),
(2009, 2009),
(2010, 2010),
(2011, 2011),
(2012, 2012),
(2013, 2013),
(2014, 2014),
(2015, 2015),
(2016, 2016),
(2017, 2017),
(2018, 2018),
(2019, 2019),
(2020, 2020),
(2021, 2021),
],
default=2020,
null=True,
),
),
]

View file

@ -26,6 +26,12 @@
</thead> </thead>
<tbody> <tbody>
{% for form in formset %} {% for form in formset %}
{% ifchanged form.is_sold %}
<tr class='section'>
<td>{% if form.is_sold %} Vendu {% else %} Non vendu {% endif %}</td>
<td colspan="7"></td>
</tr>
{% endifchanged %}
{% ifchanged form.category %} {% ifchanged form.category %}
<tr class='section'> <tr class='section'>
<td>{{ form.category_name }}</td> <td>{{ form.category_name }}</td>

View file

@ -58,31 +58,39 @@
{% endfor %} {% endfor %}
</tr> </tr>
</thead> </thead>
{% regroup formset by category_name as category_list %} {% regroup formset by is_sold as is_sold_list %}
{% for category in category_list %} {% for condition in is_sold_list %}
<tbody class="tablesorter-no-sort"> <tbody class="tablesorter-no-sort">
<tr class='section text-left'> <tr class='section text-center'>
<td colspan="{{ scale|length|add:'8' }}">{{ category.grouper }}</td> <td colspan="{{ scale|length|add:'8' }}">{% if condition.grouper %} Vendu {% else %} Non vendu {% endif %}</td>
</tr> </tr>
</tbody> </tbody>
<tbody> {% regroup condition.list by category_name as category_list %}
{% for form in category.list %} {% for category in category_list %}
<tr> <tbody class="tablesorter-no-sort">
{{ form.article }} <tr class='section text-left'>
<td class="text-left">{{ form.name }}</td> <td colspan="{{ scale|length|add:'8' }}">{{ category.grouper }}</td>
{% for v_chunk in form.v_all %} </tr>
<td>{{ v_chunk }}</td> </tbody>
{% endfor %} <tbody>
<td>{{ form.v_moy }}</td> {% for form in category.list %}
<td>{{ form.v_et }}</td> <tr>
<td>{{ form.v_prev }}</td> {{ form.article }}
<td>{{ form.stock }}</td> <td class="text-left">{{ form.name }}</td>
<td>{{ form.box_capacity|default:"" }}</td> {% for v_chunk in form.v_all %}
<td>{{ form.c_rec }}</td> <td>{{ v_chunk }}</td>
<td class="nopadding">{{ form.quantity_ordered|add_class:"form-control" }}</td> {% endfor %}
</tr> <td>{{ form.v_moy }}</td>
{% endfor %} <td>{{ form.v_et }}</td>
</tbody> <td>{{ form.v_prev }}</td>
<td>{{ form.stock }}</td>
<td>{{ form.box_capacity|default:"" }}</td>
<td>{{ form.c_rec }}</td>
<td class="nopadding">{{ form.quantity_ordered|add_class:"form-control" }}</td>
</tr>
{% endfor %}
</tbody>
{% endfor %}
{% endfor %} {% endfor %}
</table> </table>
</div> </div>

View file

@ -1835,12 +1835,13 @@ class InventoryList(ListView):
def inventory_create(request): def inventory_create(request):
articles = Article.objects.select_related("category").order_by( articles = Article.objects.select_related("category").order_by(
"category__name", "name" "-is_sold", "category__name", "name"
) )
initial = [] initial = []
for article in articles: for article in articles:
initial.append( initial.append(
{ {
"is_sold": article.is_sold,
"article": article.pk, "article": article.pk,
"stock_old": article.stock, "stock_old": article.stock,
"name": article.name, "name": article.name,
@ -1960,7 +1961,7 @@ def order_create(request, pk):
Article.objects.filter(suppliers=supplier.pk) Article.objects.filter(suppliers=supplier.pk)
.distinct() .distinct()
.select_related("category") .select_related("category")
.order_by("category__name", "name") .order_by("-is_sold", "category__name", "name")
) )
# Force hit to cache # Force hit to cache
@ -2017,6 +2018,7 @@ def order_create(request, pk):
"v_et": round(v_et), "v_et": round(v_et),
"v_prev": round(v_prev), "v_prev": round(v_prev),
"c_rec": article.box_capacity and c_rec or round(c_rec_tot), "c_rec": article.box_capacity and c_rec or round(c_rec_tot),
"is_sold": article.is_sold,
} }
) )