49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
from apps.reminder.models import Reminder as ReminderModel
|
|
from apps.lead.models import Lead as LeadModel
|
|
from rest_framework import exceptions
|
|
from utils.get_user_workspace import get_user_workspace
|
|
from utils.get_cuser_role import get_cuser_role
|
|
|
|
|
|
def create_or_edit_reminder_lead(request, lead_id: int, datetime: str, desc: str = None) -> ReminderModel:
|
|
try:
|
|
workspace = get_user_workspace(request)
|
|
cuser_role = get_cuser_role(request)
|
|
|
|
lead = LeadModel.objects.get(id=lead_id)
|
|
customer = lead.customer
|
|
|
|
try:
|
|
reminder = ReminderModel.objects.get(type='LE', lead=lead, customer=customer, sys_ws=workspace, cuser_role=cuser_role)
|
|
except Exception as exp:
|
|
reminder = ReminderModel(lead=lead)
|
|
|
|
reminder.type = 'LE'
|
|
reminder.customer = customer
|
|
reminder.datetime = datetime
|
|
reminder.sys_ws = workspace
|
|
reminder.cuser_role = cuser_role
|
|
if desc:
|
|
reminder.desc = desc
|
|
reminder.save()
|
|
|
|
return reminder
|
|
|
|
except Exception as exp:
|
|
message = f'Error Creating or Update reminder for lead: {exp}'
|
|
raise exceptions.ValidationError({'error': message})
|
|
|
|
|
|
def delete_reminder_lead(request, lead_id: int) -> ReminderModel:
|
|
try:
|
|
workspace = get_user_workspace(request)
|
|
cuser_role = get_cuser_role(request)
|
|
|
|
reminder = ReminderModel.objects.get(type='LE', lead_id=lead_id, sys_ws=workspace, cuser_role=cuser_role).delete()
|
|
|
|
return reminder
|
|
|
|
except Exception as exp:
|
|
message = f'Error Delete reminder for lead: {exp}'
|
|
raise exceptions.ValidationError({'error': message})
|