def handle(self, *args, **options): if len(args) < 2: raise CommandError("year and month are required") if len(args) > 2: domains = [Domain.get_by_name(args[2])] else: domains = SelectSMSBillableDomainsFilter.get_billable_domains() first_day, last_day = month_span(int(args[0]), int(args[1])) print "\nRecalculating SMS in HQ Bills\n----\n" for domain in domains: bills_for_domain = HQMonthlyBill.get_bills(domain.name, start=first_day.isoformat(), end=last_day.isoformat()).all() print "Found %d SMS Bills for domain %s" % (len(bills_for_domain), domain.name) for bill in bills_for_domain: bill._get_sms_activities(INCOMING) bill._get_sms_activities(OUTGOING) bill.save() sys.stdout.flush() print "\n"
def handle(self, *args, **options): if len(args) < 2: raise CommandError("year and month are required") if len(args) > 2: domains = [Domain.get_by_name(args[2])] else: domains = SelectSMSBillableDomainsFilter.get_billable_domains() first_day, last_day = month_span(int(args[0]), int(args[1])) print "\nRecalculating SMS Billables\n----\n" for domain in domains: billables_for_domain = SMSBillable.by_domain(domain.name, start=first_day.isoformat(), end=last_day.isoformat()).all() print "Found %d SMS Billables for domain %s" % (len(billables_for_domain), domain.name) for billable in billables_for_domain: rate_doc = SMSRate.get_db().get(billable.rate_id) rate_class = to_function("hqbilling.models.%s" % rate_doc.get('doc_type', 'SMSRate')) rate_item = rate_class.get(rate_doc['_id']) billable.calculate_rate(rate_item, real_time=False) billable.save() sys.stdout.write(".") sys.stdout.flush() print "\n"