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 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -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+',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue