本文整理汇总了Python中plans.models.Order.tax方法的典型用法代码示例。如果您正苦于以下问题:Python Order.tax方法的具体用法?Python Order.tax怎么用?Python Order.tax使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类plans.models.Order
的用法示例。
在下文中一共展示了Order.tax方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: recalculate
# 需要导入模块: from plans.models import Order [as 别名]
# 或者: from plans.models.Order import tax [as 别名]
def recalculate(self, amount, billing_info):
"""
Calculates and return pre-filled Order
"""
order = Order(pk=-1)
order.amount = amount
order.currency = self.get_currency()
country = getattr(billing_info, "country", None)
if not country is None:
country = country.code
tax_number = getattr(billing_info, "tax_number", None)
# Calculating tax can be complex task (e.g. VIES webservice call)
# To ensure that tax calculated on order preview will be the same on
# final order tax rate is cached for a given billing data (as this
# value only depends on it)
tax_session_key = "tax_%s_%s" % (tax_number, country)
tax = self.request.session.get(tax_session_key)
if tax is None:
tax = getattr(settings, "PLANS_TAX", None)
if tax is None:
taxation_policy = getattr(settings, "PLANS_TAXATION_POLICY", None)
if not taxation_policy:
raise ImproperlyConfigured("PLANS_TAXATION_POLICY is not set")
taxation_policy = import_name(taxation_policy)
tax = str(taxation_policy.get_tax_rate(tax_number, country))
# Because taxation policy could return None which clutters with saving this value
# into cache, we use str() representation of this value
self.request.session[tax_session_key] = tax
order.tax = Decimal(tax) if tax != "None" else None
return order
示例2: recalculate
# 需要导入模块: from plans.models import Order [as 别名]
# 或者: from plans.models.Order import tax [as 别名]
def recalculate(self, amount, billing_info):
"""
Calculates and return pre-filled Order
"""
order = Order(pk=-1)
order.amount = amount
order.currency = self.get_currency()
country = getattr(billing_info, 'country', None)
if not country is None:
country = country.code
tax_number = getattr(billing_info, 'tax_number', None)
# Calculating session can be complex task (e.g. VIES webservice call)
# To ensure that once we get what tax we display to confirmation it will
# not change, tax rate is cached for a given billing data (as it mainly depends on it)
tax_session_key = "tax_%s_%s" % (tax_number, country)
tax = self.request.session.get(tax_session_key)
if tax is None:
taxation_policy = getattr(settings, 'TAXATION_POLICY', None)
if not taxation_policy:
raise ImproperlyConfigured('TAXATION_POLICY is not set')
taxation_policy = import_name(taxation_policy)
tax = str(taxation_policy.get_tax_rate(tax_number, country))
# Because taxation policy could return None which clutters with saving this value
# into cache, we use str() representation of this value
self.request.session[tax_session_key] = tax
order.tax = Decimal(tax) if tax != 'None' else None
return order
示例3: test_amount_taxed_23
# 需要导入模块: from plans.models import Order [as 别名]
# 或者: from plans.models.Order import tax [as 别名]
def test_amount_taxed_23(self):
o = Order()
o.amount = Decimal(123)
o.tax = Decimal(23)
self.assertEqual(o.total(), Decimal('151.29'))
示例4: test_amount_taxed_0
# 需要导入模块: from plans.models import Order [as 别名]
# 或者: from plans.models.Order import tax [as 别名]
def test_amount_taxed_0(self):
o = Order()
o.amount = Decimal(123)
o.tax = Decimal(0)
self.assertEqual(o.total(), Decimal('123'))
示例5: test_amount_taxed_none
# 需要导入模块: from plans.models import Order [as 别名]
# 或者: from plans.models.Order import tax [as 别名]
def test_amount_taxed_none(self):
o = Order()
o.amount = Decimal(123)
o.tax = None
self.assertEqual(o.total(), Decimal("123"))