def load(self): load_wbs_configs() from datetime import timedelta, datetime from dateutil.relativedelta import relativedelta Config = models.Config read_bill_interval = int(Config.objects.get(name='read_bill_interval').value) billing_duration = int(Config.objects.get(name='billing_duration').value) with open(self.path, 'r') as f: if self.format == 'csv': self.reader= csv.DictReader(f) else: self.reader = [] data = [] for row in self.reader: row['created_by'] = self.user row['last_updated_by'] = self.user reading_start_date = datetime.strptime(row['reading_start_date'],'%Y-%m-%d').date() reading_end_date = datetime.strptime(row['reading_end_date'],'%Y-%m-%d').date() start_date = reading_end_date + timedelta(read_bill_interval) row['start_date'] = start_date.strftime('%Y-%m-%d') end_date = start_date + relativedelta(months=+billing_duration) - timedelta(days=1) row['end_date'] = end_date.strftime('%Y-%m-%d') data.append(self.Model(**row)) print "loading", len(data), "for", self.Model self.Model.objects.bulk_create(data)
def load(self,business_date=None): addresses = [] customers = [] meters = [] try: print "getting schedule and accounttype" bs, created = models.BillingSchedule.objects.get_or_create(start_date=date(2014, 2, 16), end_date=date(2014, 3, 15)) if business_date is None: business_date = models.Config.objects.get(name='business_date').value #account_type = models.AccountType.objects.get(description = 'Residential') print "loading default configs.. " load_wbs_configs() load_wbs_users() print ".. done loading!" except Exception, e: print e transaction.rollback() raise e