patreon: Import VAT withholdings.

This commit is contained in:
Brett Smith 2017-10-26 12:40:28 -04:00
parent dd155749c3
commit cebd1481ec
4 changed files with 57 additions and 4 deletions

View file

@ -65,6 +65,17 @@ Patreon
``template patreon svcfees`` ``template patreon svcfees``
Imports one expense transaction per month for that month's Patreon service fees. Generated from Patreon's earnings report CSV. Imports one expense transaction per month for that month's Patreon service fees. Generated from Patreon's earnings report CSV.
``template patreon vat``
Imports one transaction per country per month each time Patreon withheld VAT. Generated from Patreon's VAT report CSV.
This template can use these variables:
``country_name``
The full name of the country VAT was withheld for
``country_code``
The two-letter ISO country code of the country VAT was withheld for
Template variables Template variables
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

View file

@ -53,11 +53,14 @@ class IncomeImporter(ImporterBase):
class FeeImporterBase(ImporterBase): class FeeImporterBase(ImporterBase):
def _read_row(self, row): def _read_row(self, row):
return { retval = {
'amount': row[self.AMOUNT_FIELD].lstrip('$'), key.lower().replace(' ', '_'): row[key]
'date': util.strpdate(row['Month'], '%Y-%m'), for key in self.NEEDED_FIELDS.difference([self.AMOUNT_FIELD, 'Month'])
'payee': "Patreon",
} }
retval['amount'] = row[self.AMOUNT_FIELD].lstrip('$')
retval['date'] = util.strpdate(row['Month'], '%Y-%m')
retval['payee'] = "Patreon"
return retval
class PatreonFeeImporter(FeeImporterBase): class PatreonFeeImporter(FeeImporterBase):
@ -70,3 +73,9 @@ class CardFeeImporter(FeeImporterBase):
AMOUNT_FIELD = 'Processing Fees' AMOUNT_FIELD = 'Processing Fees'
NEEDED_FIELDS = frozenset(['Month', AMOUNT_FIELD]) NEEDED_FIELDS = frozenset(['Month', AMOUNT_FIELD])
TEMPLATE_KEY = 'template patreon cardfees' TEMPLATE_KEY = 'template patreon cardfees'
class VATImporter(FeeImporterBase):
AMOUNT_FIELD = 'Vat Charged'
NEEDED_FIELDS = frozenset(['Country Code', 'Country Name', 'Month', AMOUNT_FIELD])
TEMPLATE_KEY = 'template patreon vat'

View file

@ -0,0 +1,5 @@
Country Code,Country Name,Month,Vat Charged
AT,Austria,2017-09,$2
BE,Belgium,2017-09,$3.30
BG,Bulgaria,2017-10,$0.40
CZ,Czech Republic,2017-10,$6.05
1 Country Code Country Name Month Vat Charged
2 AT Austria 2017-09 $2
3 BE Belgium 2017-09 $3.30
4 BG Bulgaria 2017-10 $0.40
5 CZ Czech Republic 2017-10 $6.05

View file

@ -33,3 +33,31 @@
date: [2017, 10, 1] date: [2017, 10, 1]
amount: "99.47" amount: "99.47"
currency: USD currency: USD
- source: PatreonVat.csv
importer: patreon.VATImporter
expect:
- payee: Patreon
date: [2017, 9, 1]
amount: "2"
currency: USD
country_code: AT
country_name: Austria
- payee: Patreon
date: [2017, 9, 1]
amount: "3.30"
currency: USD
country_code: BE
country_name: Belgium
- payee: Patreon
date: [2017, 10, 1]
amount: "0.40"
currency: USD
country_code: BG
country_name: Bulgaria
- payee: Patreon
date: [2017, 10, 1]
amount: "6.05"
currency: USD
country_code: CZ
country_name: Czech Republic