mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-15 18:53:25 +00:00
Add invoices calls
This commit is contained in:
parent
ddceb82abf
commit
51f342a7d3
@ -30,8 +30,16 @@
|
||||
<tr>
|
||||
<td>{{ s.date|localtime|date(DATETIME_FORMAT) }} {{ s.date|localtime|time(DATETIME_FORMAT) }}</td>
|
||||
<td>{{ s.counter }}</td>
|
||||
{% if s.seller %}
|
||||
<td><a href="{{ s.seller.get_absolute_url() }}">{{ s.seller.get_display_name() }}</a></td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
{% if s.customer %}
|
||||
<td><a href="{{ s.customer.user.get_absolute_url() }}">{{ s.customer.user.get_display_name() }}</a></td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
<td>{{ s.label }}</td>
|
||||
<td>{{ s.quantity }}</td>
|
||||
<td>{{ s.quantity * s.unit_price }} €</td>
|
||||
|
34
counter/templates/counter/invoices_call.jinja
Normal file
34
counter/templates/counter/invoices_call.jinja
Normal file
@ -0,0 +1,34 @@
|
||||
{% extends "core/base.jinja" %}
|
||||
|
||||
{% block title %}
|
||||
{% trans %}Invoices call{% endtrans %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h3>{% trans %}Invoices call{% endtrans %}</h3>
|
||||
<form method="get" action="">
|
||||
<select name="month">
|
||||
{% for m in months %}
|
||||
<option value="{{ m|date("Y-m") }}">{{ m|date("Y-m") }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type="submit" value="{% trans %}Go{% endtrans %}" />
|
||||
</form>
|
||||
<table>
|
||||
<thead>
|
||||
<td>{% trans %}Club{% endtrans %}</td>
|
||||
<td>{% trans %}Sum{% endtrans %}</td>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in sums %}
|
||||
<tr>
|
||||
<td>{{ i['club__name'] }}</td>
|
||||
<td>{{ i['selling_sum'] }} €</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
@ -16,6 +16,7 @@ urlpatterns = [
|
||||
url(r'^admin$', CounterListView.as_view(), name='admin_list'),
|
||||
url(r'^admin/new$', CounterCreateView.as_view(), name='new'),
|
||||
url(r'^admin/delete/(?P<counter_id>[0-9]+)$', CounterDeleteView.as_view(), name='delete'),
|
||||
url(r'^admin/invoices_call$', InvoiceCallView.as_view(), name='invoices_call'),
|
||||
url(r'^admin/cash_summary/list$', CashSummaryListView.as_view(), name='cash_summary_list'),
|
||||
url(r'^admin/cash_summary/(?P<cashsummary_id>[0-9]+)$', CashSummaryEditView.as_view(), name='cash_summary_edit'),
|
||||
url(r'^admin/product/list$', ProductListView.as_view(), name='product_list'),
|
||||
|
@ -1,6 +1,6 @@
|
||||
from django.shortcuts import render
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.views.generic import ListView, DetailView, RedirectView
|
||||
from django.views.generic import ListView, DetailView, RedirectView, TemplateView
|
||||
from django.views.generic.edit import UpdateView, CreateView, DeleteView, ProcessFormView, FormMixin
|
||||
from django.forms.models import modelform_factory
|
||||
from django.forms import CheckboxSelectMultiple
|
||||
@ -459,6 +459,11 @@ class CounterAdminTabsMixin(TabedViewMixin):
|
||||
'slug': 'cash_summary',
|
||||
'name': _("Cash register summaries"),
|
||||
},
|
||||
{
|
||||
'url': reverse_lazy('counter:invoices_call'),
|
||||
'slug': 'invoices_call',
|
||||
'name': _("Invoices call"),
|
||||
},
|
||||
]
|
||||
|
||||
class CounterListView(CounterAdminTabsMixin, CanViewMixin, ListView):
|
||||
@ -908,3 +913,29 @@ class CashSummaryListView(CanEditPropMixin, CounterAdminTabsMixin, ListView):
|
||||
kwargs['refilling_sums'][c.name] = sum([s.amount for s in Refilling.objects.filter(counter=c, date__gt=last_date).all()])
|
||||
return kwargs
|
||||
|
||||
class InvoiceCallView(CounterAdminTabsMixin, TemplateView):
|
||||
template_name = 'counter/invoices_call.jinja'
|
||||
current_tab = 'invoices_call'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
""" Add sums to the context """
|
||||
kwargs = super(InvoiceCallView, self).get_context_data(**kwargs)
|
||||
kwargs['months'] = Selling.objects.datetimes('date', 'month', order='DESC')
|
||||
start_date = None
|
||||
end_date = None
|
||||
try:
|
||||
start_date = datetime.strptime(self.request.GET['month'], '%Y-%m')
|
||||
except:
|
||||
start_date = datetime(year=timezone.now().year, month=(timezone.now().month+10)%12+1, day=1)
|
||||
end_date = (start_date + timedelta(days=32)).replace(day=1, hour=0, minute=0, microsecond=0)
|
||||
from django.db.models import Sum, Case, When, F, DecimalField
|
||||
kwargs['sums'] = Selling.objects.values('club__name').annotate(selling_sum=Sum(
|
||||
Case(When(date__gte=start_date,
|
||||
date__lt=end_date,
|
||||
then=F('unit_price')*F('quantity')),
|
||||
output_field=CurrencyField()
|
||||
)
|
||||
)).exclude(selling_sum=None).order_by('-selling_sum')
|
||||
return kwargs
|
||||
|
||||
#).exclude(selling_sum=None).order_by('-selling_sum').all()[:100]
|
||||
|
Binary file not shown.
@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-09-29 16:18+0200\n"
|
||||
"POT-Creation-Date: 2016-09-29 18:19+0200\n"
|
||||
"PO-Revision-Date: 2016-07-18\n"
|
||||
"Last-Translator: Skia <skia@libskia.so>\n"
|
||||
"Language-Team: AE info <ae.info@utbm.fr>\n"
|
||||
@ -171,6 +171,7 @@ msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: accounting/models.py:190 club/templates/club/club_detail.jinja:5
|
||||
#: counter/templates/counter/invoices_call.jinja:19
|
||||
msgid "Club"
|
||||
msgstr "Club"
|
||||
|
||||
@ -297,7 +298,7 @@ msgstr "Compte en banque : "
|
||||
|
||||
#: accounting/templates/accounting/bank_account_details.jinja:15
|
||||
#: accounting/templates/accounting/club_account_details.jinja:16
|
||||
#: club/templates/club/club_sellings.jinja:40
|
||||
#: club/templates/club/club_sellings.jinja:48
|
||||
#: core/templates/core/file_detail.jinja:43
|
||||
#: core/templates/core/group_list.jinja:13 core/templates/core/macros.jinja:61
|
||||
#: core/templates/core/user_account_detail.jinja:67
|
||||
@ -484,7 +485,7 @@ msgid "Done"
|
||||
msgstr "Effectué"
|
||||
|
||||
#: accounting/templates/accounting/journal_details.jinja:34
|
||||
#: counter/templates/counter/cash_summary_list.jinja:32 counter/views.py:692
|
||||
#: counter/templates/counter/cash_summary_list.jinja:32 counter/views.py:697
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
@ -1725,20 +1726,16 @@ msgid "Godfathers"
|
||||
msgstr "Parrains"
|
||||
|
||||
#: core/templates/core/user_godfathers.jinja:18
|
||||
#, fuzzy
|
||||
#| msgid "Godfathers"
|
||||
msgid "No godfathers"
|
||||
msgstr "Parrains"
|
||||
msgstr "Pas de parrains"
|
||||
|
||||
#: core/templates/core/user_godfathers.jinja:21
|
||||
msgid "Godchildren"
|
||||
msgstr "Fillots"
|
||||
|
||||
#: core/templates/core/user_godfathers.jinja:29
|
||||
#, fuzzy
|
||||
#| msgid "Godchildren"
|
||||
msgid "No godchildren"
|
||||
msgstr "Fillots"
|
||||
msgstr "Pas de fillots"
|
||||
|
||||
#: core/templates/core/user_group.jinja:4
|
||||
#, python-format
|
||||
@ -1793,7 +1790,7 @@ msgid "Subscriptions"
|
||||
msgstr "Cotisations"
|
||||
|
||||
#: core/templates/core/user_tools.jinja:23 counter/views.py:440
|
||||
#: counter/views.py:579
|
||||
#: counter/views.py:584
|
||||
msgid "Counters"
|
||||
msgstr "Comptoirs"
|
||||
|
||||
@ -2077,7 +2074,7 @@ msgstr "Liste des relevés de caisse"
|
||||
msgid "Theoric sums"
|
||||
msgstr "Sommes théoriques"
|
||||
|
||||
#: counter/templates/counter/cash_summary_list.jinja:31 counter/views.py:693
|
||||
#: counter/templates/counter/cash_summary_list.jinja:31 counter/views.py:698
|
||||
msgid "Emptied"
|
||||
msgstr "Coffre vidé"
|
||||
|
||||
@ -2108,6 +2105,7 @@ msgstr "Pas de date de naissance renseigné"
|
||||
|
||||
#: counter/templates/counter/counter_click.jinja:52
|
||||
#: counter/templates/counter/counter_click.jinja:86
|
||||
#: counter/templates/counter/invoices_call.jinja:15
|
||||
#: launderette/templates/launderette/launderette_admin.jinja:35
|
||||
#: launderette/templates/launderette/launderette_click.jinja:13
|
||||
msgid "Go"
|
||||
@ -2183,6 +2181,15 @@ msgstr "Merci de vous identifier"
|
||||
msgid "Barman: "
|
||||
msgstr "Barman : "
|
||||
|
||||
#: counter/templates/counter/invoices_call.jinja:4
|
||||
#: counter/templates/counter/invoices_call.jinja:8 counter/views.py:465
|
||||
msgid "Invoices call"
|
||||
msgstr "Appels à facture"
|
||||
|
||||
#: counter/templates/counter/invoices_call.jinja:20
|
||||
msgid "Sum"
|
||||
msgstr "Somme"
|
||||
|
||||
#: counter/templates/counter/last_ops.jinja:5
|
||||
#: counter/templates/counter/last_ops.jinja:9
|
||||
#, python-format
|
||||
@ -2290,61 +2297,61 @@ msgstr "Produits archivés"
|
||||
msgid "Product types"
|
||||
msgstr "Types de produit"
|
||||
|
||||
#: counter/views.py:576
|
||||
#: counter/views.py:581
|
||||
msgid "Parent product"
|
||||
msgstr "Produit parent"
|
||||
|
||||
#: counter/views.py:577
|
||||
#: counter/views.py:582
|
||||
msgid "Buying groups"
|
||||
msgstr "Groupes d'achat"
|
||||
|
||||
#: counter/views.py:672
|
||||
#: counter/views.py:677
|
||||
msgid "10 cents"
|
||||
msgstr "10 centimes"
|
||||
|
||||
#: counter/views.py:673
|
||||
#: counter/views.py:678
|
||||
msgid "20 cents"
|
||||
msgstr "20 centimes"
|
||||
|
||||
#: counter/views.py:674
|
||||
#: counter/views.py:679
|
||||
msgid "50 cents"
|
||||
msgstr "50 centimes"
|
||||
|
||||
#: counter/views.py:675
|
||||
#: counter/views.py:680
|
||||
msgid "1 euro"
|
||||
msgstr "1 €"
|
||||
|
||||
#: counter/views.py:676
|
||||
#: counter/views.py:681
|
||||
msgid "2 euros"
|
||||
msgstr "2 €"
|
||||
|
||||
#: counter/views.py:677
|
||||
#: counter/views.py:682
|
||||
msgid "5 euros"
|
||||
msgstr "5 €"
|
||||
|
||||
#: counter/views.py:678
|
||||
#: counter/views.py:683
|
||||
msgid "10 euros"
|
||||
msgstr "10 €"
|
||||
|
||||
#: counter/views.py:679
|
||||
#: counter/views.py:684
|
||||
msgid "20 euros"
|
||||
msgstr "20 €"
|
||||
|
||||
#: counter/views.py:680
|
||||
#: counter/views.py:685
|
||||
msgid "50 euros"
|
||||
msgstr "50 €"
|
||||
|
||||
#: counter/views.py:681
|
||||
#: counter/views.py:686
|
||||
msgid "100 euros"
|
||||
msgstr "100 €"
|
||||
|
||||
#: counter/views.py:682 counter/views.py:684 counter/views.py:686
|
||||
#: counter/views.py:688 counter/views.py:690
|
||||
#: counter/views.py:687 counter/views.py:689 counter/views.py:691
|
||||
#: counter/views.py:693 counter/views.py:695
|
||||
msgid "Check amount"
|
||||
msgstr "Montant du chèque"
|
||||
|
||||
#: counter/views.py:683 counter/views.py:685 counter/views.py:687
|
||||
#: counter/views.py:689 counter/views.py:691
|
||||
#: counter/views.py:688 counter/views.py:690 counter/views.py:692
|
||||
#: counter/views.py:694 counter/views.py:696
|
||||
msgid "Check quantity"
|
||||
msgstr "Nombre de chèque"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user