Add Lead Event and Send SMS

This commit is contained in:
javad committed 2024-08-27 12:04:27 +03:30
1 parent 43f5dd4594
commit 5e396c0e32
20 files changed
+364 -31

No files matched your search

+30 -4
View File
@@ -1,16 +1,17 @@
from apps.lead.models import Lead as LeadModel,\
LeadType as LeadTypeModel, LeadStep as LeadStepModel, LeadSource as LeadSourceModel, LeadComment as LeadCommentModel
LeadType as LeadTypeModel, LeadStep as LeadStepModel, LeadSource as LeadSourceModel, LeadComment as LeadCommentModel, LeadEvent as LeadEventModel
from apps.shop.models import ProductType as ProductTypeModel
from utils.get_user_workspace import get_user_workspace
from utils.get_cuser_role import get_cuser_role
from utils.validations import ObjectValidationById
from apps.customer.models import Customer as CustomerModel
from apps.workspace.models import City as CityModel
from utils.services.sms import DefaultSmsProvider
from rest_framework import exceptions
def create_new_lead(request, title: str, customer_id: str, desc: str, product_type_id: int,
lead_type_id: int, lead_source_id: int, city_id: int, lead_step_id: int) -> LeadModel:
def create_new_lead(request, title: str, customer_id: str, mobile1: int, desc: str, product_type_id: int,
lead_type_id: int, lead_source_id: int, city_id: int, lead_step_id: int, mobile2: int = None, phone: int = None, lead_event_id: int = None) -> LeadModel:
try:
sys_ws = get_user_workspace(request=request)
cuser_role = get_cuser_role(request=request)
@@ -22,9 +23,20 @@ def create_new_lead(request, title: str, customer_id: str, desc: str, product_ty
product_type = ObjectValidationById(object_model=ProductTypeModel, request=request).is_valid(product_type_id)
city = ObjectValidationById(object_model=CityModel, request=request).is_valid(city_id)
lead_event_obj = None
new_lead = LeadModel()
new_lead.title = title
new_lead.customer = customer
if mobile1:
new_lead.mobile1 = mobile1
if mobile2:
new_lead.mobile2 = mobile2
if phone:
new_lead.phone = phone
if lead_event_id and (lead_event_id != '0' or lead_event_id != 0):
lead_event_obj = LeadEventModel.objects.get(id=lead_event_id, sys_ws=sys_ws)
new_lead.lead_event = lead_event_obj
new_lead.desc = desc
new_lead.type = lead_type
new_lead.step = lead_step
@@ -36,6 +48,14 @@ def create_new_lead(request, title: str, customer_id: str, desc: str, product_ty
new_lead.save()
# send sms
if lead_event_obj and lead_event_obj.send_sms:
sms_provider = DefaultSmsProvider()
if mobile1:
sms_provider.send_sms(str(mobile1), lead_event_obj.message)
if mobile2:
sms_provider.send_sms(str(mobile2), lead_event_obj.message)
return new_lead
except Exception as exp:
@@ -45,7 +65,7 @@ def create_new_lead(request, title: str, customer_id: str, desc: str, product_ty
def update_lead(request, lead_id: int, title: str, customer_id: str, desc: str, product_type_id: int,
lead_type_id: int, lead_source_id: int, city_id: int, lead_step_id: int) -> LeadModel:
lead_type_id: int, lead_source_id: int, city_id: int, lead_step_id: int, mobile1: int = None, mobile2: int = None, phone: int = None) -> LeadModel:
try:
sys_ws = get_user_workspace(request=request)
cuser_role = get_cuser_role(request=request)
@@ -60,6 +80,12 @@ def update_lead(request, lead_id: int, title: str, customer_id: str, desc: str,
lead = LeadModel.objects.get(id=lead_id, sys_ws=sys_ws, cuser_role=cuser_role)
lead.title = title
lead.customer = customer
if mobile1:
lead.mobile1 = mobile1
if mobile2:
lead.mobile2 = mobile2
if phone:
lead.phone = phone
lead.desc = desc
lead.type = lead_type
lead.step = lead_step