def get_default_plan_by_domain(cls, domain, edition=None): domain = assure_domain_instance(domain) edition = edition or SoftwarePlanEdition.COMMUNITY product_type = SoftwareProductType.get_type_by_domain(domain) try: default_product_plan = DefaultProductPlan.objects.get(product_type=product_type, edition=edition) return default_product_plan.plan.get_version() except DefaultProductPlan.DoesNotExist: raise AccountingError("No default product plan was set up, did you forget to bootstrap plans?")
def get_subscribed_plan_by_domain(cls, domain): """ Returns SoftwarePlanVersion, Subscription for the given domain. """ domain = assure_domain_instance(domain) subscriber = Subscriber.objects.safe_get(domain=domain.name, organization=None) plan_version, subscription = (cls._get_plan_by_subscriber(subscriber) if subscriber else cls.get_subscribed_plan_by_organization(domain.organization)) if plan_version is None: plan_version = DefaultProductPlan.get_default_plan_by_domain(domain) return plan_version, subscription
def get_subscribed_plan_by_domain(cls, domain): """ Returns SoftwarePlanVersion, Subscription for the given domain. """ domain_obj = assure_domain_instance(domain) if domain_obj is None: plan_version = DefaultProductPlan.objects.get(edition=SoftwarePlanEdition.COMMUNITY, product_type=SoftwareProductType.COMMCARE).plan.get_version() return plan_version, None domain = domain_obj subscriber = Subscriber.objects.safe_get(domain=domain.name, organization=None) plan_version, subscription = (cls._get_plan_by_subscriber(subscriber) if subscriber else cls.get_subscribed_plan_by_organization(domain.organization)) if plan_version is None: plan_version = DefaultProductPlan.get_default_plan_by_domain(domain) return plan_version, subscription
def __init__(self, date_start, date_end, domain): super(CommunityInvoiceFactory, self).__init__(date_start, date_end) self.domain = assure_domain_instance(domain)