response = HttpResponse(content_type='text/csv; charset=cp1250')
response['Content-Disposition'] = 'attachment; filename=export.csv'
writer = csv.writer(response)
- writer.writerow([
- 'Identyfikator płatności (IDP)',
- 'Nazwa Płatnika',
- 'Adres Płatnika Ulica + numer domu',
- 'Adres Płatnika kod+miejscowość',
- 'Numer kierunkowy banku Płatnika',
- 'Numer rachunku bankowego Płatnika',
- 'Identyfikator Odbiorcy (NIP Odbiorcy)',
- 'Osobowość prawna Płatnika (Osoba fizyczna)'
- ])
-
- # TODO: ansi encoding
for obj in queryset:
writer.writerow([
obj.payment_id,
obj.full_name,
+ '',
obj.street_address,
' '.join([obj.postal_code, obj.town]).strip(),
obj.iban[2:10],
yield payment_id, status, comment
-def bank_order(date, queryset):
+def bank_order(date, sent_at, queryset):
response = HttpResponse(content_type='application/octet-stream')
response['Content-Disposition'] = 'attachment; filename=order.PLD'
rows = []
no_dates = []
no_amounts = []
+ cancelled = []
if date is None:
raise ValueError('Payment date not set yet.')
no_dates.append(debit)
if debit.amount is None:
no_amounts.append(debit)
+ if debit.cancelled_at and debit.cancelled_at.date() <= date and (sent_at is None or debit.cancelled_at < sent_at):
+ cancelled.append(debit)
- if no_dates or no_amounts:
+ if no_dates or no_amounts or cancelled:
t = ''
if no_dates:
t += 'Bank acceptance not received for: '
for debit in no_amounts
)
t += '. '
+ if cancelled:
+ t += 'Debits have been cancelled: '
+ t += ', '.join(
+ '<a href="/admin/pz/directdebit/{}/change">{}</a>'.format(
+ debit.pk, debit
+ )
+ for debit in cancelled
+ )
+ t += '. '
raise ValueError(mark_safe(t))
for debit in queryset: