示例#1
0
    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"