Skip to content

Commit f8f782f

Browse files
samar-hassanmfarhan943
authored andcommitted
[FEAT] Verify shipping charge upto 4 decimal places (django-oscar#370)
* feat ⭐ verify shipping charge upto 4 decimal places
1 parent 4467625 commit f8f782f

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

oscarapi/basket/operations.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"This module contains operation on baskets and lines"
2+
23
from django.conf import settings
34

45
from oscar.core.loading import get_class, get_model

oscarapi/serializers/checkout.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ class PriceSerializer(serializers.Serializer):
4949
currency = serializers.CharField(
5050
max_length=12, default=django_settings.OSCAR_DEFAULT_CURRENCY, required=False
5151
)
52-
excl_tax = serializers.DecimalField(decimal_places=2, max_digits=12, required=True)
52+
excl_tax = serializers.DecimalField(decimal_places=4, max_digits=12, required=True)
5353
incl_tax = TaxIncludedDecimalField(
54-
excl_tax_field="excl_tax", decimal_places=2, max_digits=12, required=False
54+
excl_tax_field="excl_tax", decimal_places=4, max_digits=12, required=False
5555
)
5656
tax = TaxIncludedDecimalField(
57-
excl_tax_value="0.00", decimal_places=2, max_digits=12, required=False
57+
excl_tax_value="0.00", decimal_places=4, max_digits=12, required=False
5858
)
5959

6060

oscarapi/serializers/product.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ class Meta:
440440

441441
class BaseProductSerializer(OscarModelSerializer):
442442
"Base class shared by admin and public serializer"
443+
443444
attributes = ProductAttributeValueSerializer(
444445
many=True, required=False, source="attribute_values"
445446
)
@@ -476,6 +477,7 @@ class Meta:
476477

477478
class PublicProductSerializer(BaseProductSerializer):
478479
"Serializer base class used for public products api"
480+
479481
url = serializers.HyperlinkedIdentityField(view_name="product-detail")
480482
price = serializers.HyperlinkedIdentityField(
481483
view_name="product-price", read_only=True
@@ -494,6 +496,7 @@ def get_field_names(self, declared_fields, info):
494496

495497
class ChildProductSerializer(PublicProductSerializer):
496498
"Serializer for child products"
499+
497500
parent = serializers.HyperlinkedRelatedField(
498501
view_name="product-detail",
499502
queryset=Product.objects.filter(structure=Product.PARENT),
@@ -508,6 +511,7 @@ class Meta(PublicProductSerializer.Meta):
508511

509512
class ProductSerializer(PublicProductSerializer):
510513
"Serializer for public api with strategy fields added for price and availability"
514+
511515
url = serializers.HyperlinkedIdentityField(view_name="product-detail")
512516
price = serializers.HyperlinkedIdentityField(
513517
view_name="product-price", read_only=True

oscarapi/tests/unit/testcheckout.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -490,9 +490,9 @@ def test_shipping_methods(self):
490490
"discount": 0,
491491
"price": {
492492
"currency": None,
493-
"excl_tax": "0.00",
494-
"incl_tax": "0.00",
495-
"tax": "0.00",
493+
"excl_tax": "0.0000",
494+
"incl_tax": "0.0000",
495+
"tax": "0.0000",
496496
},
497497
},
498498
)
@@ -516,9 +516,9 @@ def test_shipping_methods(self):
516516
"discount": 0,
517517
"price": {
518518
"currency": "EUR",
519-
"excl_tax": "0.00",
520-
"incl_tax": "0.00",
521-
"tax": "0.00",
519+
"excl_tax": "0.0000",
520+
"incl_tax": "0.0000",
521+
"tax": "0.0000",
522522
},
523523
},
524524
)

0 commit comments

Comments
 (0)