55 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | """
 | ||
|  | investigate into a simple python function that maps an ldap user to a vat percentage. Basically you need to | ||
|  | lookup the customer address, check if she is a business/registered tax number and if not apply the local | ||
|  | vat | ||
|  | """
 | ||
|  | 
 | ||
|  | import iso3166 | ||
|  | import datetime | ||
|  | 
 | ||
|  | from csv import DictReader | ||
|  | 
 | ||
|  | 
 | ||
|  | def get_vat(street_address, city, postal_code, country, vat_number=None): | ||
|  |     vat = { | ||
|  |         'Austria': [ | ||
|  |             {'period': '1984-01-01/', 'rate': 0.2}, | ||
|  |             {'period': '1976-01-01/1984-01-01', 'rate': 0.18}, | ||
|  |             {'period': '1973-01-01/1976-01-01', 'rate': 0.16}, | ||
|  |             ] | ||
|  |     } | ||
|  |     return iso3166.countries.get(country) | ||
|  | 
 | ||
|  |     # return iso3166.countries_by_name[country] | ||
|  | 
 | ||
|  | 
 | ||
|  | def main(): | ||
|  |     # vat = get_vat( | ||
|  |     #     street_address='82 Nasheman-e-Iqbal near Wapda Town', | ||
|  |     #     city='Lahore', | ||
|  |     #     postal_code=53700, | ||
|  |     #     country='Pakistan', | ||
|  |     # ) | ||
|  |     # print(vat) | ||
|  |     vat_rates = {} | ||
|  |     with open('vat_rates.csv', newline='') as csvfile: | ||
|  |         reader = DictReader(csvfile) | ||
|  |         for row in reader: | ||
|  |             territory_codes = row['territory_codes'].split('\n') | ||
|  |             for code in territory_codes: | ||
|  |                 if code not in vat_rates: | ||
|  |                     vat_rates[code] = {} | ||
|  | 
 | ||
|  |                 start_date = row['start_date'] | ||
|  |                 stop_data = row['stop_date'] | ||
|  |                 time_period = f'{start_date}|{stop_data}' | ||
|  |                 r = row.copy() | ||
|  |                 del r['start_date'] | ||
|  |                 del r['stop_date'] | ||
|  |                 del r['territory_codes'] | ||
|  |                 vat_rates[code][time_period] = r | ||
|  |     print(vat_rates) | ||
|  | 
 | ||
|  | 
 | ||
|  | if __name__ == '__main__': | ||
|  |     main() |