Fix statements

This commit is contained in:
Skia 2016-12-21 13:09:40 +01:00
parent f6d34baf59
commit b07b408ecf
3 changed files with 18 additions and 11 deletions

View File

@ -5,7 +5,7 @@
{% endblock %}
{% macro display_tables(dict) %}
<h5>{% trans %}Credit{% endtrans %}</h5>
<h6>{% trans %}Credit{% endtrans %}</h6>
<table>
<thead>
<tr>
@ -24,7 +24,7 @@
</table>
{% trans %}Total: {% endtrans %}{{ dict['CREDIT_sum'] }}
<h5>{% trans %}Debit{% endtrans %}</h5>
<h6>{% trans %}Debit{% endtrans %}</h6>
<table>
<thead>
<tr>
@ -48,7 +48,7 @@
<h3>{% trans %}Statement by nature: {% endtrans %} {{ object.name }}</h3>
{% for k,v in statement.items() %}
<h4>{{ k }}</h4>
<h4 style="background: lightblue; padding: 4px;">{{ k }} : {{ v['CREDIT_sum'] - v['DEBIT_sum'] }}</h4>
{{ display_tables(v) }}
<hr>
{% endfor %}

View File

@ -22,8 +22,10 @@
<tr>
{% if key.target_type == "OTHER" %}
<td>{{ o.target_label }}</td>
{% else %}
{% elif key %}
<td><a href="{{ key.get_absolute_url() }}">{{ key.get_display_name() }}</a></td>
{% else %}
<td></td>
{% endif %}
<td>{{ credit_statement[key] }}</td>
</tr>
@ -48,8 +50,10 @@
<tr>
{% if key.target_type == "OTHER" %}
<td>{{ o.target_label }}</td>
{% else %}
{% elif key %}
<td><a href="{{ key.get_absolute_url() }}">{{ key.get_display_name() }}</a></td>
{% else %}
<td></td>
{% endif %}
<td>{{ debit_statement[key] }}</td>
</tr>

View File

@ -483,12 +483,14 @@ class JournalNatureStatementView(JournalTabsMixin, CanViewMixin, DetailView):
ret = collections.OrderedDict()
statement = collections.OrderedDict()
total_sum = 0
for at in AccountingType.objects.order_by('label').all():
for sat in [None] + list(SimplifiedAccountingType.objects.order_by('label').all()):
sum = queryset.filter(accounting_type__movement_type=movement_type,
accounting_type__code__startswith=at.code).aggregate(amount_sum=Sum('amount'))['amount_sum']
simpleaccounting_type=sat).aggregate(amount_sum=Sum('amount'))['amount_sum']
if sat: sat = sat.label
else: sat = ""
if sum:
total_sum += sum
statement[at.label] = sum
statement[sat] = sum
ret[movement_type] = statement
ret[movement_type+"_sum"] = total_sum
return ret
@ -532,8 +534,9 @@ class JournalPersonStatementView(JournalTabsMixin, CanViewMixin, DetailView):
target_id=target_id, target_type=target_type).aggregate(amount_sum=Sum('amount'))['amount_sum']
def statement(self, movement_type):
statement = {}
for op in Operation.objects.filter(accounting_type__movement_type=movement_type):
statement = collections.OrderedDict()
for op in self.object.operations.filter(accounting_type__movement_type=movement_type).order_by('target_type',
'target_id').distinct():
statement[op.target] = self.sum_by_target(op.target_id, op.target_type, movement_type)
return statement
@ -563,7 +566,7 @@ class JournalAccountingStatementView(JournalTabsMixin, CanViewMixin, DetailView)
for at in AccountingType.objects.order_by('code').all():
sum_by_type = self.object.operations.filter(
accounting_type__code__startswith=at.code).aggregate(amount_sum=Sum('amount'))['amount_sum']
if sum_by_type != 0:
if sum_by_type:
statement[at] = sum_by_type
return statement