Add import_vat_rates management command
This commit is contained in:
		
					parent
					
						
							
								b3dd57f189
							
						
					
				
			
			
				commit
				
					
						7040d908dd
					
				
			
		
					 1 changed files with 44 additions and 0 deletions
				
			
		
							
								
								
									
										44
									
								
								hosting/management/commands/import_vat_rates.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								hosting/management/commands/import_vat_rates.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,44 @@
 | 
			
		|||
from django.core.management.base import BaseCommand
 | 
			
		||||
import csv
 | 
			
		||||
from hosting.models import VATRates
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Command(BaseCommand):
 | 
			
		||||
    help = '''Imports VAT Rates. Assume vat rates of format https://github.com/kdeldycke/vat-rates/blob/master/vat_rates.csv'''
 | 
			
		||||
 | 
			
		||||
    def add_arguments(self, parser):
 | 
			
		||||
        parser.add_argument('csv_file', nargs='+', type=str)
 | 
			
		||||
 | 
			
		||||
    def handle(self, *args, **options):
 | 
			
		||||
        try:
 | 
			
		||||
            for c_file in options['csv_file']:
 | 
			
		||||
                print("c_file =  %s" % c_file)
 | 
			
		||||
                with open(c_file, mode='r') as csv_file:
 | 
			
		||||
                    csv_reader = csv.DictReader(csv_file)
 | 
			
		||||
                    line_count = 0
 | 
			
		||||
                    for row in csv_reader:
 | 
			
		||||
                        if line_count == 0:
 | 
			
		||||
                            line_count += 1
 | 
			
		||||
                        obj, created = VATRates.objects.get_or_create(
 | 
			
		||||
                            start_date=row["start_date"],
 | 
			
		||||
                            stop_date=row["stop_date"] if row["stop_date"] is not "" else None,
 | 
			
		||||
                            territory_codes=row["territory_codes"],
 | 
			
		||||
                            currency_code=row["currency_code"],
 | 
			
		||||
                            rate=row["rate"],
 | 
			
		||||
                            rate_type=row["rate_type"],
 | 
			
		||||
                            description=row["description"]
 | 
			
		||||
                        )
 | 
			
		||||
                        if created:
 | 
			
		||||
                            self.stdout.write(self.style.SUCCESS(
 | 
			
		||||
                                '%s. %s - %s - %s - %s' % (
 | 
			
		||||
                                    line_count,
 | 
			
		||||
                                    obj.start_date,
 | 
			
		||||
                                    obj.stop_date,
 | 
			
		||||
                                    obj.territory_codes,
 | 
			
		||||
                                    obj.rate
 | 
			
		||||
                                )
 | 
			
		||||
                            ))
 | 
			
		||||
                            line_count+=1
 | 
			
		||||
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            print(" *** Error occurred. Details {}".format(str(e)))
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue