invoicing: display payer infos (#75054)
This commit is contained in:
parent
869cc6ca22
commit
5723ed2a2f
|
@ -303,6 +303,11 @@ class AbstractInvoice(models.Model):
|
|||
class Meta:
|
||||
abstract = True
|
||||
|
||||
@property
|
||||
def payer_name(self):
|
||||
payer_name = '%s %s' % (self.payer_first_name, self.payer_last_name)
|
||||
return payer_name.strip()
|
||||
|
||||
|
||||
class DraftInvoice(AbstractInvoice):
|
||||
pass
|
||||
|
@ -392,6 +397,11 @@ class AbstractInvoiceLine(models.Model):
|
|||
user_name = '%s %s' % (self.user_first_name, self.user_last_name)
|
||||
return user_name.strip()
|
||||
|
||||
@property
|
||||
def payer_name(self):
|
||||
payer_name = '%s %s' % (self.payer_first_name, self.payer_last_name)
|
||||
return payer_name.strip()
|
||||
|
||||
def get_error_display(self):
|
||||
if self.status == 'success':
|
||||
return
|
||||
|
|
|
@ -16,7 +16,13 @@
|
|||
<td>{{ line.unit_amount }}</td>
|
||||
<td>{{ line.total_amount }}</td>
|
||||
<td>{{ line.user_name }} ({{ line.user_external_id }})</td>
|
||||
<td>{{ line.payer_external_id }}</td>
|
||||
<td>
|
||||
{{ line.payer_name }} ({{ line.payer_external_id }})
|
||||
<br />
|
||||
{% blocktrans with payer_demat=line.payer_demat|yesno %}demat: {{ payer_demat }}{% endblocktrans %}
|
||||
<br />
|
||||
{% blocktrans with payer_direct_debit=line.payer_direct_debit|yesno %}direct debit: {{ payer_direct_debit }}{% endblocktrans %}
|
||||
</td>
|
||||
<td class="status">
|
||||
<span class="meta meta-{{ line.status }}">{% spaceless %}
|
||||
{% if line.status == 'error' and line.error_status %}
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<td>{{ line.unit_amount }}</td>
|
||||
<td>{{ line.total_amount }}</td>
|
||||
<td>{{ line.user_name }} ({{ line.user_external_id }})</td>
|
||||
<td>{{ line.payer_external_id }}</td>
|
||||
<td>{{ line.payer_name}} ({{ line.payer_external_id }})</td>
|
||||
<td class="status">
|
||||
<span class="meta meta-{{ line.status }}">{% spaceless %}
|
||||
{% if line.status == 'error'%}
|
||||
|
|
|
@ -51,9 +51,9 @@
|
|||
{% for invoice in object_list %}
|
||||
<li class="invoice untoggled" data-invoice-id="{{ invoice.pk }}" data-invoice-lines-url="{% url 'lingo-manager-invoicing-invoice-line-list' regie_pk=regie.pk pk=object.pk pool_pk=pool.pk invoice_pk=invoice.pk %}">
|
||||
{% if pool.draft %}
|
||||
{% blocktrans with number=invoice.pk payer=invoice.payer_external_id amount=invoice.total_amount %}Invoice <a href="{{ journal_url }}?invoice_id={{ number }}">PROFORMA-{{ number }}</a> addressed to <a href="{{ journal_url }}?payer_external_id={{ payer }}">{{ payer }}</a>, amount {{ amount }}€{% endblocktrans %}
|
||||
{% blocktrans with number=invoice.pk payer_id=invoice.payer_external_id payer_name=invoice.payer_name payer_demat=invoice.payer_demat|yesno payer_direct_debit=invoice.payer_direct_debit|yesno amount=invoice.total_amount %}Invoice <a href="{{ journal_url }}?invoice_id={{ number }}">PROFORMA-{{ number }}</a> addressed to <a href="{{ journal_url }}?payer_external_id={{ payer_id }}">{{ payer_name }} ({{ payer_id }})</a>, amount {{ amount }}€, demat: {{ payer_demat }}, direct debit: {{ payer_direct_debit }}{% endblocktrans %}
|
||||
{% else %}
|
||||
{% blocktrans with invoice_number=invoice.formatted_number payer=invoice.payer_external_id amount=invoice.total_amount number=invoice.number %}Invoice <a href="{{ journal_url }}?invoice_number={{ number }}">{{ invoice_number }}</a> addressed to <a href="{{ journal_url }}?payer_external_id={{ payer }}">{{ payer }}</a>, amount {{ amount }}€{% endblocktrans %}
|
||||
{% blocktrans with invoice_number=invoice.formatted_number payer_id=invoice.payer_external_id payer_name=invoice.payer_name payer_demat=invoice.payer_demat|yesno payer_direct_debit=invoice.payer_direct_debit|yesno amount=invoice.total_amount number=invoice.number %}Invoice <a href="{{ journal_url }}?invoice_number={{ number }}">{{ invoice_number }}</a> addressed to <a href="{{ journal_url }}?payer_external_id={{ payer_id }}">{{ payer_name }} ({{ payer_id }})</a>, amount {{ amount }}€, demat: {{ payer_demat }}, direct debit: {{ payer_direct_debit }}{% endblocktrans %}
|
||||
{% endif %}
|
||||
<span class="togglable"></span>
|
||||
</li>
|
||||
|
|
|
@ -635,6 +635,8 @@ class NonInvoicedLineListView(ListView):
|
|||
'total_amount',
|
||||
'user_external_id',
|
||||
'payer_external_id',
|
||||
'payer_first_name',
|
||||
'payer_last_name',
|
||||
'user_first_name',
|
||||
'user_last_name',
|
||||
'event',
|
||||
|
@ -669,6 +671,9 @@ class NonInvoicedLineListView(ListView):
|
|||
line['user_name'] = InvoiceLine(
|
||||
user_first_name=line['user_first_name'], user_last_name=line['user_last_name']
|
||||
).user_name
|
||||
line['payer_name'] = InvoiceLine(
|
||||
payer_first_name=line['payer_first_name'], payer_last_name=line['payer_last_name']
|
||||
).payer_name
|
||||
line['error_display'] = InvoiceLine(
|
||||
status=line['status'], pricing_data=line['pricing_data']
|
||||
).get_error_display()
|
||||
|
|
|
@ -627,10 +627,24 @@ def test_detail_pool_invoices(app, admin_user, draft):
|
|||
status='completed',
|
||||
)
|
||||
invoice1 = invoice_model.objects.create(
|
||||
date_issue=datetime.date.today(), regie=regie, pool=pool, payer_external_id='payer:1'
|
||||
date_issue=datetime.date.today(),
|
||||
regie=regie,
|
||||
pool=pool,
|
||||
payer_external_id='payer:1',
|
||||
payer_first_name='First1',
|
||||
payer_last_name='Name1',
|
||||
payer_demat=True,
|
||||
payer_direct_debit=False,
|
||||
)
|
||||
invoice2 = invoice_model.objects.create(
|
||||
date_issue=datetime.date.today(), regie=regie, pool=pool, payer_external_id='payer:2'
|
||||
date_issue=datetime.date.today(),
|
||||
regie=regie,
|
||||
pool=pool,
|
||||
payer_external_id='payer:2',
|
||||
payer_first_name='First2',
|
||||
payer_last_name='Name2',
|
||||
payer_demat=False,
|
||||
payer_direct_debit=True,
|
||||
)
|
||||
if not draft:
|
||||
invoice1.set_number()
|
||||
|
@ -711,12 +725,13 @@ def test_detail_pool_invoices(app, admin_user, draft):
|
|||
if draft:
|
||||
assert (
|
||||
resp.pyquery('li[data-invoice-id="%s"]' % invoice1.pk).text()
|
||||
== 'Invoice PROFORMA-%s addressed to payer:1, amount 6.00€' % invoice1.pk
|
||||
== 'Invoice PROFORMA-%s addressed to First1 Name1 (payer:1), amount 6.00€, demat: yes, direct debit: no'
|
||||
% invoice1.pk
|
||||
)
|
||||
else:
|
||||
assert resp.pyquery(
|
||||
'li[data-invoice-id="%s"]' % invoice1.pk
|
||||
).text() == 'Invoice F%02s-%s-0000001 addressed to payer:1, amount 6.00€' % (
|
||||
).text() == 'Invoice F%02s-%s-0000001 addressed to First1 Name1 (payer:1), amount 6.00€, demat: yes, direct debit: no' % (
|
||||
regie.pk,
|
||||
invoice1.created_at.strftime('%y-%m'),
|
||||
)
|
||||
|
@ -744,12 +759,13 @@ def test_detail_pool_invoices(app, admin_user, draft):
|
|||
if draft:
|
||||
assert (
|
||||
resp.pyquery('li[data-invoice-id="%s"]' % invoice2.pk).text()
|
||||
== 'Invoice PROFORMA-%s addressed to payer:2, amount 1.00€' % invoice2.pk
|
||||
== 'Invoice PROFORMA-%s addressed to First2 Name2 (payer:2), amount 1.00€, demat: no, direct debit: yes'
|
||||
% invoice2.pk
|
||||
)
|
||||
else:
|
||||
assert resp.pyquery(
|
||||
'li[data-invoice-id="%s"]' % invoice2.pk
|
||||
).text() == 'Invoice F%02d-%s-0000002 addressed to payer:2, amount 1.00€' % (
|
||||
).text() == 'Invoice F%02d-%s-0000002 addressed to First2 Name2 (payer:2), amount 1.00€, demat: no, direct debit: yes' % (
|
||||
regie.pk,
|
||||
invoice2.created_at.strftime('%y-%m'),
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue