From 223ed64aa199311385c964f752107c5a7bdb099d Mon Sep 17 00:00:00 2001 From: David Winterbottom Date: Wed, 28 May 2014 16:58:47 +0100 Subject: [PATCH] Rework US site's shipping methods to fit new system --- sites/us/apps/checkout/session.py | 5 +---- sites/us/apps/shipping/repository.py | 25 +++++++++++++------------ sites/us/apps/tax.py | 9 ++++----- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/sites/us/apps/checkout/session.py b/sites/us/apps/checkout/session.py index 7844886feca..657b6b250ad 100644 --- a/sites/us/apps/checkout/session.py +++ b/sites/us/apps/checkout/session.py @@ -1,5 +1,3 @@ -from decimal import Decimal as D - from oscar.apps.checkout import session from apps import tax @@ -17,8 +15,7 @@ def build_submission(self, **kwargs): # Recalculate order total to ensure we have a tax-inclusive total submission['order_total'] = self.get_order_totals( - submission['basket'], - shipping_method=submission['shipping_method']) + submission['basket'], submission['shipping_charge']) return submission diff --git a/sites/us/apps/shipping/repository.py b/sites/us/apps/shipping/repository.py index 485d7d3a600..389ccec3c06 100644 --- a/sites/us/apps/shipping/repository.py +++ b/sites/us/apps/shipping/repository.py @@ -4,28 +4,29 @@ class Standard(methods.FixedPrice): - def __init__(self): - super(Standard, self).__init__( - charge_excl_tax=D('10.00')) + code = "standard" + name = "Standard" + charge_excl_tax = D('10.00') class Express(methods.FixedPrice): - def __init__(self): - super(Express, self).__init__( - charge_excl_tax=D('20.00')) + code = "express" + name = "Express" + charge_excl_tax = D('20.00') class Repository(repository.Repository): methods = [Standard, Express] - def get_shipping_methods(self, user, basket, shipping_addr=None, + def get_shipping_methods(self, basket, user=None, shipping_addr=None, request=None, **kwargs): methods = super(Repository, self).get_shipping_methods( - user, basket, shipping_addr, request, **kwargs) + basket, user, shipping_addr, request, **kwargs) - item_methods = models.OrderAndItemCharges.objects.filter( - countries=shipping_addr.country) - for method in item_methods: - methods.append(self.prime_method(basket, method)) + if shipping_addr: + item_methods = models.OrderAndItemCharges.objects.filter( + countries=shipping_addr.country) + for method in item_methods: + methods.append(self.prime_method(basket, method)) return methods diff --git a/sites/us/apps/tax.py b/sites/us/apps/tax.py index 6e3470658ef..007c3ed7c6c 100644 --- a/sites/us/apps/tax.py +++ b/sites/us/apps/tax.py @@ -25,11 +25,10 @@ def apply_to(submission): unit_tax = (line_tax / line.quantity).quantize(D('0.01')) line.purchase_info.price.tax = unit_tax - # We don't charge sales tax on shipping - shipping_method = submission['shipping_method'] - if shipping_method is not None: - shipping_method.tax = calculate_tax( - shipping_method.charge_excl_tax, rate) + shipping_charge = submission['shipping_charge'] + if shipping_charge is not None: + shipping_charge.tax = calculate_tax( + shipping_charge.excl_tax, rate) def calculate_tax(price, rate):