Files @ 742fccca0c76
Branch filter:

Location: NPO-Accounting/import2ledger/import2ledger/importers/github.py

Brett Smith
patreon: Exclude tax from full amount.

This makes the balancing logic in entry generation work the way we want.
import decimal

from . import _csv
from .. import strparse

class SponsorsImporter(_csv.CSVImporterBase):
    DATE_FMT = '%Y-%m-%d %H:%M:%S %z'
    NEEDED_FIELDS = frozenset([
        'processed amount',
        'status',
        'transaction date',
    ])
    COPIED_FIELDS = {
        'sponsor handle': 'handle',
        # 'sponsor profile name': 'name',
        'sponsor email': 'email',
        'transaction id': 'transaction_id',
    }
    ENTRY_SEED = {'currency': 'USD'}

    def _read_row(self, row):
        amount = strparse.currency_decimal(row['processed amount'])
        if (not amount) or row['status'] != 'settled':
            return None
        return {
            'amount': amount,
            'date': strparse.date(row['transaction date'], self.DATE_FMT),
            'payee': row.get('sponsor profile name') or row['sponsor handle'],
        }