浏览代码

sum umsatz script

master
erichhasl 7 年前
父节点
当前提交
159eced9c7
共有 2 个文件被更改,包括 63 次插入1 次删除
  1. +30
    -1
      web_dev/sas_web/meingoethopia/admin.py
  2. +33
    -0
      web_dev/sas_web/meingoethopia/templates/meingoethopia/umsatz_view.html

+ 30
- 1
web_dev/sas_web/meingoethopia/admin.py 查看文件

@@ -86,6 +86,35 @@ def create_overview(modeladmin, request, queryset):
create_overview.short_description = "Übersicht erstellen"


def sum_umsatz(modeladmin, request, queryset):
if request.POST.get('back'):
pass
else:
betriebe = queryset
klassen = {}
umsatz_gesamt = 0
for b in betriebe:
u = sum([a.umsatz for a in b.betriebsabrechnung_set.all()])
umsatz_gesamt += u
try:
u2 = u / b.angestellte.count()
except ZeroDivisionError:
u2 = 0
for a in b.angestellte.all():
if a.klasse not in klassen:
klassen[a.klasse] = u2
else:
klassen[a.klasse] += u2
anteile = {k: round((v / umsatz_gesamt) * 100, 2) for k, v in klassen.items()}
context = {'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
'umsatz_gesamt': umsatz_gesamt,
'klassen': anteile,
'title': "Umsatzübersicht"}
return render(request, 'meingoethopia/umsatz_view.html', context)

sum_umsatz.short_description = "Umsatzverteilung berechnen"


class AufsichtInline(admin.TabularInline):
model = Betriebsaufsicht
extra = 0
@@ -125,7 +154,7 @@ class BetriebAdmin(admin.ModelAdmin):
models.ManyToManyField: {'widget': forms.CheckboxSelectMultiple},
models.ForeignKey: {'widget': apply_select2(forms.Select)}
}
actions = [ban_ip, create_overview]
actions = [ban_ip, create_overview, sum_umsatz]
filter_horizontal = ('angestellte',)
inlines = [BetriebsabrechnungInline, BetriebskreditInline, AufsichtInline]



+ 33
- 0
web_dev/sas_web/meingoethopia/templates/meingoethopia/umsatz_view.html 查看文件

@@ -0,0 +1,33 @@
{% extends "admin/base_site.html" %}

{% block content %}

<h2>Gesamtumsatz</h2>

<p>Insgesamt wurden {{ umsatz_gesamt }} G-Mark erwirtschaftet.</p>

<h2>Klassenverteilung</h2>

<p>Bei einer Verteilung des Projektgewinns auf die Klassenkassen je nach Arbeitnehmer des
Betriebs, entsteht folgender Schlüssel.</p>

<table>
<tr>
<th>Klasse</th>
<th>Prozentualer Gewinnanteil</th>
</tr>
{% for klasse, anteil in klassen.items %}
<tr>
<td>{{ klasse }}</td>
<td>{{ anteil }} %</td>
</tr>
{% endfor %}
</table>

<form action="" method="post">
{% csrf_token %}
<input type="submit" value="Zurück">
</form>

{% endblock %}

正在加载...
取消
保存