Update Eventbrite importer for new CSV format

This commit is contained in:
Ben Sturmfels 2025-09-30 23:32:14 +10:00
parent 9f8e5d7942
commit 2e87f9eaf0
Signed by: bsturmfels
GPG key ID: 023C05E2C9C068F0
2 changed files with 16 additions and 21 deletions

View file

@ -1,30 +1,28 @@
import decimal
import datetime
from . import _csv
from .. import strparse
class SalesImporter(_csv.CSVImporterBase):
DECIMAL_FIELDS = {
'Eventbrite Fees': 'eventbrite_fees',
'Eventbrite Payment Processing': 'payment_fees',
'Fees Paid': 'total_fees',
'Quantity': 'quantity',
'Tax Paid': 'tax',
'Total Paid': 'amount',
'Eventbrite service fee': 'service_fee',
'Eventbrite payment processing fee': 'payment_processing_fee',
'Ticket quantity': 'ticket_quantity',
'Eventbrite tax': 'eventbrite_tax',
'Organizer tax': 'organizer_tax',
'Gross sales': 'amount',
}
NEEDED_FIELDS = frozenset([
'Order Date',
'Order Type',
'Order date',
'Payment status',
*DECIMAL_FIELDS,
])
OPTIONAL_FIELDS = {
'Attendee #': 'attendee_id',
'Company': 'corporation',
'Currency': 'currency',
'Event ID': 'event_id',
'Event Name': 'event_name',
'Order #': 'order_id',
'Ticket Type': 'ticket_type',
'Event name': 'event_name',
'Order ID': 'order_id',
}
ENTRY_SEED = {'currency': 'USD'}
@ -36,12 +34,9 @@ class SalesImporter(_csv.CSVImporterBase):
self.DECIMAL_FIELDS[key]: strparse.currency_decimal(row[key])
for key in self.DECIMAL_FIELDS
}
date_s, _, _ = row['Order Date'].partition(' ')
retval['date'] = strparse.date(date_s, '%Y-%m-%d')
try:
retval['payee'] = '{Buyer First Name} {Buyer Last Name}'.format_map(row)
except KeyError:
retval['payee'] = '{First Name} {Last Name}'.format_map(row)
retval['date'] = datetime.datetime.fromisoformat(row['Order date']).date()
retval['payee'] = '{Buyer first name} {Buyer last name}'.format_map(row)
retval['total_fees'] = retval['service_fee'] + retval['payment_processing_fee']
retval.update(
(self.OPTIONAL_FIELDS[key], row.get(key, ''))
for key in self.OPTIONAL_FIELDS

View file

@ -30,7 +30,7 @@ REQUIREMENTS['tests_require'] = [
setup(
name='import2ledger',
description="Import different sources of financial data to Ledger",
version='1.4.5',
version='1.4.6',
author='Brett Smith',
author_email='brettcsmith@brettcsmith.org',
license='GNU AGPLv3+',