first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
@@ -0,0 +1,146 @@
|
||||
from apps.lead.models import Lead as LeadModel,\
|
||||
LeadType as LeadTypeModel, LeadStep as LeadStepModel, LeadSource as LeadSourceModel, LeadComment as LeadCommentModel
|
||||
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 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:
|
||||
try:
|
||||
sys_ws = get_user_workspace(request=request)
|
||||
cuser_role = get_cuser_role(request=request)
|
||||
|
||||
customer = ObjectValidationById(object_model=CustomerModel, request=request).is_valid(int(customer_id))
|
||||
lead_type = ObjectValidationById(object_model=LeadTypeModel, request=request).is_valid(lead_type_id)
|
||||
lead_step = ObjectValidationById(object_model=LeadStepModel, request=request).is_valid(lead_step_id)
|
||||
lead_source = ObjectValidationById(object_model=LeadSourceModel, request=request).is_valid(lead_source_id)
|
||||
product_type = ObjectValidationById(object_model=ProductTypeModel, request=request).is_valid(product_type_id)
|
||||
city = ObjectValidationById(object_model=CityModel, request=request).is_valid(city_id)
|
||||
|
||||
new_lead = LeadModel()
|
||||
new_lead.title = title
|
||||
new_lead.customer = customer
|
||||
new_lead.desc = desc
|
||||
new_lead.type = lead_type
|
||||
new_lead.step = lead_step
|
||||
new_lead.source = lead_source
|
||||
new_lead.product_type = product_type
|
||||
new_lead.city = city
|
||||
new_lead.sys_ws = sys_ws
|
||||
new_lead.cuser_role = cuser_role
|
||||
|
||||
new_lead.save()
|
||||
|
||||
return new_lead
|
||||
|
||||
except Exception as exp:
|
||||
print("error creae lead")
|
||||
message = f'Error Create New Lead: {exp}'
|
||||
raise exceptions.ValidationError({'error': message})
|
||||
|
||||
|
||||
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:
|
||||
try:
|
||||
sys_ws = get_user_workspace(request=request)
|
||||
cuser_role = get_cuser_role(request=request)
|
||||
|
||||
customer = ObjectValidationById(object_model=CustomerModel, request=request).is_valid(int(customer_id))
|
||||
lead_type = ObjectValidationById(object_model=LeadTypeModel, request=request).is_valid(lead_type_id)
|
||||
lead_step = ObjectValidationById(object_model=LeadStepModel, request=request).is_valid(lead_step_id)
|
||||
lead_source = ObjectValidationById(object_model=LeadSourceModel, request=request).is_valid(lead_source_id)
|
||||
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 = LeadModel.objects.get(id=lead_id, sys_ws=sys_ws, cuser_role=cuser_role)
|
||||
lead.title = title
|
||||
lead.customer = customer
|
||||
lead.desc = desc
|
||||
lead.type = lead_type
|
||||
lead.step = lead_step
|
||||
lead.source = lead_source
|
||||
lead.product_type = product_type
|
||||
lead.city = city
|
||||
|
||||
lead.save()
|
||||
|
||||
return lead
|
||||
|
||||
except Exception as exp:
|
||||
message = f'Error Update Lead: {exp}'
|
||||
raise exceptions.ValidationError({'error': message})
|
||||
|
||||
|
||||
def update_lead_status(request, lead_id: int, status: str) -> LeadModel:
|
||||
try:
|
||||
sys_ws = get_user_workspace(request=request)
|
||||
cuser_role = get_cuser_role(request=request)
|
||||
|
||||
lead = LeadModel.objects.get(id=lead_id, sys_ws=sys_ws, cuser_role=cuser_role)
|
||||
lead.status = status
|
||||
|
||||
lead.save()
|
||||
|
||||
return lead
|
||||
|
||||
except Exception as exp:
|
||||
message = f'Error Update Lead Status: {exp}'
|
||||
raise exceptions.ValidationError({'error': message})
|
||||
|
||||
|
||||
def update_lead_comment(request, lead_comment_id: int, desc: str) -> LeadModel:
|
||||
try:
|
||||
sys_ws = get_user_workspace(request=request)
|
||||
cuser_role = get_cuser_role(request=request)
|
||||
|
||||
lead_comment = LeadCommentModel.objects.get(id=lead_comment_id, sys_ws=sys_ws, cuser_role=cuser_role)
|
||||
lead_comment.desc = desc
|
||||
|
||||
lead_comment.save()
|
||||
|
||||
return lead_comment
|
||||
|
||||
except Exception as exp:
|
||||
message = f'Error Update Lead_comment: {exp}'
|
||||
raise exceptions.ValidationError({'error': message})
|
||||
|
||||
|
||||
def create_lead_comment(request, lead_id, desc: str) -> LeadCommentModel:
|
||||
try:
|
||||
sys_ws = get_user_workspace(request=request)
|
||||
cuser_role = get_cuser_role(request=request)
|
||||
|
||||
lead_comment = LeadCommentModel()
|
||||
lead_comment.lead = LeadModel.objects.get(id=lead_id, sys_ws=sys_ws, cuser_role=cuser_role)
|
||||
lead_comment.sys_ws = sys_ws
|
||||
lead_comment.cuser_role = cuser_role
|
||||
lead_comment.desc = desc
|
||||
lead_comment.save()
|
||||
|
||||
return lead_comment
|
||||
|
||||
except Exception as exp:
|
||||
message = f'Error Create Lead comment: {exp}'
|
||||
raise exceptions.ValidationError({'error': message})
|
||||
|
||||
|
||||
def delete_lead_comment(request, lead_comment_id: int) -> LeadModel:
|
||||
try:
|
||||
sys_ws = get_user_workspace(request=request)
|
||||
cuser_role = get_cuser_role(request=request)
|
||||
|
||||
lead_comment = LeadCommentModel.objects.get(id=lead_comment_id, sys_ws=sys_ws, cuser_role=cuser_role)
|
||||
lead_comment.delete()
|
||||
|
||||
return lead_comment
|
||||
|
||||
except Exception as exp:
|
||||
message = f'Error Delete Lead_comment: {exp}'
|
||||
raise exceptions.ValidationError({'error': message})
|
||||
|
||||
|
||||
Reference in new issue
Block a user