forked from CGM_Public/pretix_original
Payment list export: Add date range
This commit is contained in:
@@ -770,6 +770,19 @@ class PaymentListExporter(ListExporter):
|
|||||||
def additional_form_fields(self):
|
def additional_form_fields(self):
|
||||||
return OrderedDict(
|
return OrderedDict(
|
||||||
[
|
[
|
||||||
|
('end_date_range',
|
||||||
|
DateFrameField(
|
||||||
|
label=_('Date range (payment date)'),
|
||||||
|
include_future_frames=False,
|
||||||
|
required=False,
|
||||||
|
help_text=_('Note that using this will exclude any non-confirmed payments or non-completed refunds.'),
|
||||||
|
)),
|
||||||
|
('start_date_range',
|
||||||
|
DateFrameField(
|
||||||
|
label=_('Date range (start of transaction)'),
|
||||||
|
include_future_frames=False,
|
||||||
|
required=False
|
||||||
|
)),
|
||||||
('payment_states',
|
('payment_states',
|
||||||
forms.MultipleChoiceField(
|
forms.MultipleChoiceField(
|
||||||
label=_('Payment states'),
|
label=_('Payment states'),
|
||||||
@@ -802,6 +815,24 @@ class PaymentListExporter(ListExporter):
|
|||||||
state__in=form_data.get('refund_states', [])
|
state__in=form_data.get('refund_states', [])
|
||||||
).select_related('order').prefetch_related('order__event').order_by('created')
|
).select_related('order').prefetch_related('order__event').order_by('created')
|
||||||
|
|
||||||
|
if form_data.get('end_date_range'):
|
||||||
|
dt_start, dt_end = resolve_timeframe_to_datetime_start_inclusive_end_exclusive(now(), form_data['end_date_range'], self.timezone)
|
||||||
|
if dt_start:
|
||||||
|
payments = payments.filter(created__gte=dt_start)
|
||||||
|
refunds = refunds .filter(created__gte=dt_start)
|
||||||
|
if dt_end:
|
||||||
|
payments = payments.filter(created__lt=dt_end)
|
||||||
|
refunds = refunds .filter(created__lt=dt_end)
|
||||||
|
|
||||||
|
if form_data.get('start_end_date_range'):
|
||||||
|
dt_start, dt_end = resolve_timeframe_to_datetime_start_inclusive_end_exclusive(now(), form_data['start_date_range'], self.timezone)
|
||||||
|
if dt_start:
|
||||||
|
payments = payments.filter(payment_date__gte=dt_start)
|
||||||
|
refunds = refunds .filter(execution_date__gte=dt_start)
|
||||||
|
if dt_end:
|
||||||
|
payments = payments.filter(payment_date__lt=dt_end)
|
||||||
|
refunds = refunds.filter(execution_date__lt=dt_end)
|
||||||
|
|
||||||
objs = sorted(list(payments) + list(refunds), key=lambda o: o.created)
|
objs = sorted(list(payments) + list(refunds), key=lambda o: o.created)
|
||||||
|
|
||||||
headers = [
|
headers = [
|
||||||
|
|||||||
Reference in New Issue
Block a user