Send email to admin on VAT number update
This commit is contained in:
parent
d4bfcbef47
commit
efaf75615b
2 changed files with 45 additions and 0 deletions
|
@ -40,6 +40,7 @@ from datacenterlight.models import VMTemplate, VMPricing
|
||||||
from datacenterlight.utils import (
|
from datacenterlight.utils import (
|
||||||
create_vm, get_cms_integration, check_otp, validate_vat_number
|
create_vm, get_cms_integration, check_otp, validate_vat_number
|
||||||
)
|
)
|
||||||
|
from dynamicweb.settings.base import DCL_ERROR_EMAILS_TO_LIST
|
||||||
from hosting.models import UserCardDetail
|
from hosting.models import UserCardDetail
|
||||||
from membership.models import CustomUser, StripeCustomer
|
from membership.models import CustomUser, StripeCustomer
|
||||||
from opennebula_api.models import OpenNebulaManager
|
from opennebula_api.models import OpenNebulaManager
|
||||||
|
@ -663,9 +664,29 @@ class SettingsView(LoginRequiredMixin, FormView):
|
||||||
)
|
)
|
||||||
billing_address = current_billing_address
|
billing_address = current_billing_address
|
||||||
billing_address.save()
|
billing_address.save()
|
||||||
|
email_data = {
|
||||||
|
'subject': "%s updated VAT number to %s but failed" %
|
||||||
|
(request.user.email, vat_number),
|
||||||
|
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
|
||||||
|
'to': settings.DCL_ERROR_EMAILS_TO_LIST,
|
||||||
|
'body': "\n".join(
|
||||||
|
["%s=%s" % (k, v) for (k, v) in
|
||||||
|
validate_result.items()]),
|
||||||
|
}
|
||||||
else:
|
else:
|
||||||
|
email_data = {
|
||||||
|
'subject': "%s updated VAT number to %s" % (
|
||||||
|
request.user.email, vat_number
|
||||||
|
),
|
||||||
|
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
|
||||||
|
'to': settings.DCL_ERROR_EMAILS_TO_LIST,
|
||||||
|
'body': "\n".join(
|
||||||
|
["%s=%s" % (k, v) for (k, v) in
|
||||||
|
validate_result.items()]),
|
||||||
|
}
|
||||||
msg = _("Billing address updated successfully")
|
msg = _("Billing address updated successfully")
|
||||||
messages.add_message(request, messages.SUCCESS, msg)
|
messages.add_message(request, messages.SUCCESS, msg)
|
||||||
|
send_plain_email_task.delay(email_data)
|
||||||
else:
|
else:
|
||||||
msg = _("Billing address updated successfully")
|
msg = _("Billing address updated successfully")
|
||||||
messages.add_message(request, messages.SUCCESS, msg)
|
messages.add_message(request, messages.SUCCESS, msg)
|
||||||
|
|
|
@ -8,6 +8,8 @@ from django.http import HttpResponse
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
|
|
||||||
|
from membership.models import StripeCustomer
|
||||||
|
|
||||||
from utils.models import BillingAddress, UserBillingAddress
|
from utils.models import BillingAddress, UserBillingAddress
|
||||||
from utils.tasks import send_plain_email_task
|
from utils.tasks import send_plain_email_task
|
||||||
|
|
||||||
|
@ -70,6 +72,12 @@ def handle_webhook(request):
|
||||||
tax_id_obj = event.data.object
|
tax_id_obj = event.data.object
|
||||||
logger.debug("Tax_id %s is %s" % (tax_id_obj.id,
|
logger.debug("Tax_id %s is %s" % (tax_id_obj.id,
|
||||||
tax_id_obj.verification.status))
|
tax_id_obj.verification.status))
|
||||||
|
stripe_customer = None
|
||||||
|
try:
|
||||||
|
stripe_customer = StripeCustomer.objects.get(tax_id_obj.customer)
|
||||||
|
except StripeCustomer.DoesNotExist as dne:
|
||||||
|
logger.debug(
|
||||||
|
"StripeCustomer %s does not exist" % tax_id_obj.customer)
|
||||||
if tax_id_obj.verification.status == "verified":
|
if tax_id_obj.verification.status == "verified":
|
||||||
b_addresses = BillingAddress.objects.filter(stripe_tax_id=tax_id_obj.id)
|
b_addresses = BillingAddress.objects.filter(stripe_tax_id=tax_id_obj.id)
|
||||||
for b_address in b_addresses:
|
for b_address in b_addresses:
|
||||||
|
@ -82,9 +90,25 @@ def handle_webhook(request):
|
||||||
ub_address.vat_validation_status = tax_id_obj.verification.status
|
ub_address.vat_validation_status = tax_id_obj.verification.status
|
||||||
ub_address.vat_number_validated_on = datetime.datetime.now()
|
ub_address.vat_number_validated_on = datetime.datetime.now()
|
||||||
ub_address.save()
|
ub_address.save()
|
||||||
|
email_data = {
|
||||||
|
'subject': "The VAT %s associated with %s was verified" %
|
||||||
|
(tax_id_obj.value, stripe_customer.user.email if stripe_customer else "unknown"),
|
||||||
|
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
|
||||||
|
'to': settings.DCL_ERROR_EMAILS_TO_LIST,
|
||||||
|
'body': "The following objects were modified:\n".join(b_addresses).join(ub_addresses),
|
||||||
|
}
|
||||||
else:
|
else:
|
||||||
logger.debug("Tax_id %s is %s" % (tax_id_obj.id,
|
logger.debug("Tax_id %s is %s" % (tax_id_obj.id,
|
||||||
tax_id_obj.verification.status))
|
tax_id_obj.verification.status))
|
||||||
|
email_data = {
|
||||||
|
'subject': "The VAT %s associated with %s was %s" %
|
||||||
|
(tax_id_obj.value, stripe_customer.user.email if stripe_customer else "unknown", tax_id_obj.verification.status),
|
||||||
|
'from_email': settings.DCL_SUPPORT_FROM_ADDRESS,
|
||||||
|
'to': settings.DCL_ERROR_EMAILS_TO_LIST,
|
||||||
|
'body': "Response = %s" % str(tax_id_obj),
|
||||||
|
}
|
||||||
|
|
||||||
|
send_plain_email_task.delay(email_data)
|
||||||
else:
|
else:
|
||||||
logger.error("Unhandled event : " + event.type)
|
logger.error("Unhandled event : " + event.type)
|
||||||
return HttpResponse(status=200)
|
return HttpResponse(status=200)
|
||||||
|
|
Loading…
Reference in a new issue