Update Eventbrite importer for new CSV format
This commit is contained in:
parent
9f8e5d7942
commit
2e87f9eaf0
2 changed files with 16 additions and 21 deletions
|
@ -1,30 +1,28 @@
|
||||||
import decimal
|
import datetime
|
||||||
|
|
||||||
from . import _csv
|
from . import _csv
|
||||||
from .. import strparse
|
from .. import strparse
|
||||||
|
|
||||||
|
|
||||||
class SalesImporter(_csv.CSVImporterBase):
|
class SalesImporter(_csv.CSVImporterBase):
|
||||||
DECIMAL_FIELDS = {
|
DECIMAL_FIELDS = {
|
||||||
'Eventbrite Fees': 'eventbrite_fees',
|
'Eventbrite service fee': 'service_fee',
|
||||||
'Eventbrite Payment Processing': 'payment_fees',
|
'Eventbrite payment processing fee': 'payment_processing_fee',
|
||||||
'Fees Paid': 'total_fees',
|
'Ticket quantity': 'ticket_quantity',
|
||||||
'Quantity': 'quantity',
|
'Eventbrite tax': 'eventbrite_tax',
|
||||||
'Tax Paid': 'tax',
|
'Organizer tax': 'organizer_tax',
|
||||||
'Total Paid': 'amount',
|
'Gross sales': 'amount',
|
||||||
}
|
}
|
||||||
NEEDED_FIELDS = frozenset([
|
NEEDED_FIELDS = frozenset([
|
||||||
'Order Date',
|
'Order date',
|
||||||
'Order Type',
|
'Payment status',
|
||||||
*DECIMAL_FIELDS,
|
*DECIMAL_FIELDS,
|
||||||
])
|
])
|
||||||
OPTIONAL_FIELDS = {
|
OPTIONAL_FIELDS = {
|
||||||
'Attendee #': 'attendee_id',
|
|
||||||
'Company': 'corporation',
|
|
||||||
'Currency': 'currency',
|
'Currency': 'currency',
|
||||||
'Event ID': 'event_id',
|
'Event ID': 'event_id',
|
||||||
'Event Name': 'event_name',
|
'Event name': 'event_name',
|
||||||
'Order #': 'order_id',
|
'Order ID': 'order_id',
|
||||||
'Ticket Type': 'ticket_type',
|
|
||||||
}
|
}
|
||||||
ENTRY_SEED = {'currency': 'USD'}
|
ENTRY_SEED = {'currency': 'USD'}
|
||||||
|
|
||||||
|
@ -36,12 +34,9 @@ class SalesImporter(_csv.CSVImporterBase):
|
||||||
self.DECIMAL_FIELDS[key]: strparse.currency_decimal(row[key])
|
self.DECIMAL_FIELDS[key]: strparse.currency_decimal(row[key])
|
||||||
for key in self.DECIMAL_FIELDS
|
for key in self.DECIMAL_FIELDS
|
||||||
}
|
}
|
||||||
date_s, _, _ = row['Order Date'].partition(' ')
|
retval['date'] = datetime.datetime.fromisoformat(row['Order date']).date()
|
||||||
retval['date'] = strparse.date(date_s, '%Y-%m-%d')
|
retval['payee'] = '{Buyer first name} {Buyer last name}'.format_map(row)
|
||||||
try:
|
retval['total_fees'] = retval['service_fee'] + retval['payment_processing_fee']
|
||||||
retval['payee'] = '{Buyer First Name} {Buyer Last Name}'.format_map(row)
|
|
||||||
except KeyError:
|
|
||||||
retval['payee'] = '{First Name} {Last Name}'.format_map(row)
|
|
||||||
retval.update(
|
retval.update(
|
||||||
(self.OPTIONAL_FIELDS[key], row.get(key, ''))
|
(self.OPTIONAL_FIELDS[key], row.get(key, ''))
|
||||||
for key in self.OPTIONAL_FIELDS
|
for key in self.OPTIONAL_FIELDS
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -30,7 +30,7 @@ REQUIREMENTS['tests_require'] = [
|
||||||
setup(
|
setup(
|
||||||
name='import2ledger',
|
name='import2ledger',
|
||||||
description="Import different sources of financial data to Ledger",
|
description="Import different sources of financial data to Ledger",
|
||||||
version='1.4.5',
|
version='1.4.6',
|
||||||
author='Brett Smith',
|
author='Brett Smith',
|
||||||
author_email='brettcsmith@brettcsmith.org',
|
author_email='brettcsmith@brettcsmith.org',
|
||||||
license='GNU AGPLv3+',
|
license='GNU AGPLv3+',
|
||||||
|
|
Loading…
Add table
Reference in a new issue