ticket_gen.py 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. from datetime import datetime, timedelta
  2. from dbsynce.lib.core import get_admin_url
  3. from dbsynce.models import DocumentFile
  4. from tickets.models import Ticket, TicketList
  5. def create_ticket_company_activation(user, сompany):
  6. """
  7. Создание тикета на активацию партнера.
  8. Список: 2101, METASERVICE-ADMIN: Активация партнеров (NEG_REQUEST)
  9. Тип: 4, NEG_REQUEST
  10. """
  11. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  12. return Ticket.objects.create(
  13. title=f"Создание нового Партнера '{сompany.legal_name}'",
  14. ticket_list=TicketList.objects.get(pk=2101),
  15. ticket_type=4,
  16. due_date=datetime.now().date() + timedelta(days=30),
  17. created_by=user,
  18. note=f"""
  19. Пользователь {user} #{user.pk} отправил заявку на становление партнером сервиса:\n
  20. - Имя: {сompany.legal_name}\n
  21. - ИНН: {сompany.inn}\n
  22. - Юридический адрес: {сompany.address}\n
  23. <a href="{get_admin_url(сompany)}">Полная информация</a>\n
  24. \n
  25. Проверьте всю информацию и для активации партнера измените статус заявки на ACCEPTED.
  26. Это будет означать, что договорные отношения между сервисом и партнером, вступают в силу.
  27. """
  28. )
  29. def create_ticket_role_activation_partner_admin(user, сompany):
  30. """
  31. Создание тикета на получение роли администратора партнера сервиса.
  32. Список: 2102, METASERVICE-ADMIN: Присвоение роли (ACCESS_REQUEST)
  33. Тип: 3, ACCESS_REQUEST
  34. """
  35. return Ticket.objects.create(
  36. title=f"Запрос прав на становление Партнером '{сompany.legal_name}'",
  37. ticket_list=TicketList.objects.get(pk=2102), # Список кому назначается: METASERVICE-ADMIN
  38. ticket_type=3, # ACCESS_REQUEST
  39. due_date=datetime.now().date() + timedelta(days=30),
  40. created_by=user,
  41. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  42. note=f"""
  43. Пользователь {user} #{user.pk} отправил заявку на роль администратора партнера сервиса.\n
  44. \n
  45. <a href="{get_admin_url(сompany)}">Полная информация о компании-партнере</a>\n
  46. \n
  47. После принятия изменений назначается роль и получает право на совершение юридически значимых действий от лица Партнера в соответствии с функционалом Сервиса.
  48. """
  49. )
  50. def create_ticket_company_docs_verification(user, company, doc):
  51. """
  52. Создание тикета на проверку документов партнера.
  53. Список: 2103, METASERVICE-ADMIN: Проверка документов (ST_REQUEST)
  54. Тип: 1, ST_REQUEST
  55. """
  56. doc_name = doc.get_doc_type_display()
  57. doc_files = DocumentFile.objects.filter(document=doc)
  58. note = f"Пользователь {user} #{user.pk} добавил новые файлы документа <a href='{get_admin_url(doc)}'>{doc_name}</a> партнера <a href='{get_admin_url(company)}'>{company.legal_name}</a> требующие проверки:<ul>"
  59. for file in doc_files:
  60. note += f"<li><a href='{file.file.url}' target='_blank'>{file}</a></li>"
  61. note += "</ul>"
  62. return Ticket.objects.create(
  63. title=f"Проверка документа '{doc_name}' партнера '{company.legal_name}'",
  64. ticket_list=TicketList.objects.get(pk=2103),
  65. ticket_type=1,
  66. due_date=datetime.now().date() + timedelta(days=30),
  67. created_by=user,
  68. note=note
  69. )
  70. def create_ticket_provider_activation(user, provider):
  71. """
  72. Создание тикета на активацию Услуги.
  73. Список: 2102, METASERVICE-SUPERVISOR: Активация услуг (ST_REQUEST)
  74. Тип: 1, ST_REQUEST
  75. """
  76. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  77. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  78. return Ticket.objects.create(
  79. title=f"Активация услуги '{provider.service}' для исполнителя '{user}'",
  80. ticket_list=TicketList.objects.get(pk=2102),
  81. ticket_type=1,
  82. due_date=datetime.now().date() + timedelta(days=30),
  83. created_by=user,
  84. #TODO надо сделать более информативный вывод
  85. note=f"""
  86. Пользователь {user} отправил заявку на оказание Услуги {provider.service}.\n
  87. Проверьте всю информацию о необходимых разрешениях и проверках и для активации возможности оказывать такие услуги измените статус заявки на ACCEPTED.
  88. Это будет означать, что Исполнитель сможет обрабатывать такие заказы.
  89. """
  90. )
  91. def create_ticket_service_activation(user, service_category):
  92. """
  93. Создание тикета на активацию Услуги.
  94. Список: 2102, METASERVICE-SUPERVISOR: Активация услуг (ST_REQUEST)
  95. Тип: 1, ST_REQUEST
  96. """
  97. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  98. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  99. return Ticket.objects.create(
  100. title=f"Создание новой услуги '{service.id_metaservice}' - '{service.caption}'",
  101. ticket_list=TicketList.objects.get(pk=2102),
  102. ticket_type=1,
  103. due_date=datetime.now().date() + timedelta(days=30),
  104. created_by=user,
  105. #TODO надо сделать более информативный вывод
  106. note=f"""
  107. Пользователь {user} отправил заявку на добавление и активацию услуги сервиса:\n
  108. - Категория: {service.service_category_id}\n
  109. - Ресурс: {service.resource}\n
  110. - Комиссия партнера: {service.company_comission}\n
  111. - Тарификация: {service.price_type}\n
  112. - Стоимость км: {service.price_km}\n
  113. - Стоимость минуты: {service.price_min}\n
  114. - Стоимость за количество: {service.price_amount}\n
  115. - Описание: {service_category.description}\n
  116. \n
  117. Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
  118. Это будет означать, что Партнер сможет оказывать услуги на указанных условиях.
  119. """
  120. )
  121. def create_ticket_service_category_activation(user, service_category):
  122. """
  123. Создание тикета на активацию Категории Сервиса.
  124. Список: 2102, METASERVICE-SUPERVISOR: Активация категорий сервисов (ST_REQUEST)
  125. Тип: 1, ST_REQUEST
  126. """
  127. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  128. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  129. return Ticket.objects.create(
  130. title=f"Создание новой категории сервиса '{service_category.id_metaservice}' - '{service_category.caption}'",
  131. ticket_list=TicketList.objects.get(pk=2102),
  132. ticket_type=1,
  133. due_date=datetime.now().date() + timedelta(days=30),
  134. created_by=user,
  135. note=f"""
  136. Пользователь {user} отправил заявку на добавление и активацию категории сервиса:\n
  137. - Название: {service_category.caption}\n
  138. - Договор: {service_category.link_agreement}\n
  139. - Комиссия Сервиса: {service_category.metaservice_comission}\n
  140. - Тарификация: {service_category.price_type}\n
  141. - Описание: {service_category.description}\n
  142. \n
  143. Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
  144. Это будет означать, что Сервис сможет обрабатывать заказы данной категории.
  145. """
  146. )