def handle(self, *args, **options):

        path = options['path']
        carrier_slug = options['carrier']
        phone_type = options['type']

        skip = options['skip']
        delimiter = options['delimiter']
        quotechar = options['quotechar']
        batchsize = options['batchsize']
        verbosity = options['verbosity']

        if verbosity > 2:
            logger.setLevel(logging.DEBUG)
            connection.force_debug_cursor = True

        carrier = Carrier.objects.get(slug=carrier_slug)

        try:
            self.last_inserted_person = Person.objects.latest('id')
        except Person.DoesNotExist:
            pass

        try:
            self.last_inserted_address = Address.objects.latest('id')
        except Address.DoesNotExist:
            pass

        try:
            self.last_inserted_phone = Phone.objects.latest('id')
        except Phone.DoesNotExist:
            pass

        start = datetime.datetime.now()

        for row in self.read(path, skip, delimiter, quotechar):

            try:
                record = ZoomRecord.parse_gvt(row, carrier, phone_type)
                self.handle_valid(record)
            except (CNPJValidationError, CPFValidationError):
                self.handle_document_error(record)
            except ZipCodeValidationError:
                self.handle_zipcode_error(record)
            except PhoneValidationError:
                self.handle_phone_error(record)
            except AreaCodeValidationError:
                self.handle_areacode_error(record)
            except UnicodeEncodeError as e:
                import pdb
                pdb.set_trace()

            sys.stdout.write('\r%s' % (self.counter['record'] + 1))
            sys.stdout.flush()

            if (self.counter['batch'] + 1) == batchsize:
                self.persist(self.counter['batch'])
                self.counter['batch'] = 0
            else:
                self.counter['batch'] += 1

            self.counter['record'] += 1

        self.persist(self.counter['batch'])
        sys.stdout.write(self.get_finish(start, datetime.datetime.now()))
        sys.stdout.flush()