diff --git a/ecommerce/api.py b/ecommerce/api.py
index ce20da78e8..081dd93793 100644
--- a/ecommerce/api.py
+++ b/ecommerce/api.py
@@ -156,6 +156,21 @@ def calculate_tax(
return (0, "", item_price)
+def display_taxes(user):
+ """
+ Calculates the taxes display for a specific user.
+
+ Args:
+ user(users.User): User object
+ """
+ return (
+ settings.FEATURES.get("ENABLE_TAXES_DISPLAY", False)
+ and user.is_authenticated
+ and user.legal_address.country
+ in TaxRate.objects.filter(active=True).values_list("country_code", flat=True)
+ )
+
+
def generate_cybersource_sa_signature(payload):
"""
Generate an HMAC SHA256 signature for the CyberSource Secure Acceptance payload
diff --git a/ecommerce/mail_api.py b/ecommerce/mail_api.py
index ffe4ecbc63..8a2bf951a9 100644
--- a/ecommerce/mail_api.py
+++ b/ecommerce/mail_api.py
@@ -21,6 +21,7 @@
EMAIL_WELCOME_COURSE_RUN_ENROLLMENT,
)
from mitxpro.utils import format_price
+from users.models import User
log = logging.getLogger()
ENROLL_ERROR_EMAIL_SUBJECT = "MIT xPRO enrollment error"
@@ -297,6 +298,7 @@ def send_ecommerce_order_receipt(order, cyber_source_provided_email=None):
cyber_source_provided_email: Include the email address if user provide though CyberSource payment process.
order: An order.
"""
+ from ecommerce.api import display_taxes
from ecommerce.serializers import OrderReceiptSerializer
data = OrderReceiptSerializer(instance=order).data
@@ -306,6 +308,7 @@ def send_ecommerce_order_receipt(order, cyber_source_provided_email=None):
order = data.get("order")
receipt = data.get("receipt")
country = pycountry.countries.get(alpha_2=purchaser.get("country"))
+ user = User.objects.get(email=purchaser.get("email"))
recipients = [purchaser.get("email")]
if cyber_source_provided_email and cyber_source_provided_email not in recipients:
recipients.append(cyber_source_provided_email)
@@ -356,9 +359,7 @@ def send_ecommerce_order_receipt(order, cyber_source_provided_email=None):
"company": purchaser.get("company"),
"vat_id": purchaser.get("vat_id"),
},
- "enable_taxes_display": settings.FEATURES.get(
- "ENABLE_TAXES_DISPLAY", False
- ),
+ "enable_taxes_display": display_taxes(user),
},
),
)
diff --git a/mail/templates/product_order_receipt/body.html b/mail/templates/product_order_receipt/body.html
index bba7b47879..1133d48c7e 100755
--- a/mail/templates/product_order_receipt/body.html
+++ b/mail/templates/product_order_receipt/body.html
@@ -22,7 +22,7 @@
Cambridge, MA 02139 USA
{% if enable_taxes_display %}
- GSTIN: Pending
+ GSTIN: 9923USA29055OSB
{% endif %}
Support:
diff --git a/mitxpro/utils.py b/mitxpro/utils.py
index c931f6e3d8..f8f5cfc42c 100644
--- a/mitxpro/utils.py
+++ b/mitxpro/utils.py
@@ -581,6 +581,8 @@ def get_js_settings(request: HttpRequest):
Returns:
dict: the settings object
"""
+ from ecommerce.api import display_taxes
+
return {
"gtmTrackingID": settings.GTM_TRACKING_ID,
"gaTrackingID": settings.GA_TRACKING_ID,
@@ -600,7 +602,7 @@ def get_js_settings(request: HttpRequest):
"course_dropdown": settings.FEATURES.get("COURSE_DROPDOWN", False),
"webinars": settings.FEATURES.get("WEBINARS", False),
"enable_blog": settings.FEATURES.get("ENABLE_BLOG", False),
- "enable_taxes_display": settings.FEATURES.get("ENABLE_TAXES_DISPLAY", False),
+ "enable_taxes_display": display_taxes(request.user),
"enable_enterprise": settings.FEATURES.get("ENABLE_ENTERPRISE", False),
}
diff --git a/static/js/containers/pages/ReceiptPage.js b/static/js/containers/pages/ReceiptPage.js
index c212412791..5c9fb44971 100644
--- a/static/js/containers/pages/ReceiptPage.js
+++ b/static/js/containers/pages/ReceiptPage.js
@@ -107,7 +107,7 @@ export class ReceiptPage extends React.Component {
Cambridge, MA 02139 USA
{SETTINGS.enable_taxes_display ? (
- GSTIN: Pending
+ GSTIN: 9923USA29055OSB
) : null}
Support:{" "}