You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from decimal import Decimal
  2. class ShippingMethod(object):
  3. u"""
  4. Superclass for all shipping method objects
  5. """
  6. code = '__default__'
  7. name = 'Default shipping'
  8. description = ''
  9. def set_basket(self, basket):
  10. self.basket = basket
  11. def basket_charge_incl_tax(self):
  12. pass
  13. def basket_charge_excl_tax(self):
  14. pass
  15. class FreeShipping(ShippingMethod):
  16. u"""
  17. Simple method for free shipping
  18. """
  19. code = 'free-shipping'
  20. name = 'Free shipping'
  21. def basket_charge_incl_tax(self):
  22. return Decimal('0.00')
  23. def basket_charge_excl_tax(self):
  24. return Decimal('0.00')
  25. class FixedPriceShipping(ShippingMethod):
  26. code = 'fixed-price-shipping'
  27. name = 'Fixed price shipping'
  28. def __init__(self, charge_incl_tax, charge_excl_tax=None):
  29. self.charge_incl_tax = charge_incl_tax
  30. if not charge_excl_tax:
  31. charge_excl_tax = charge_incl_tax
  32. self.charge_excl_tax = charge_excl_tax
  33. def basket_charge_incl_tax(self):
  34. return self.charge_incl_tax
  35. def basket_charge_excl_tax(self):
  36. return self.charge_excl_tax