ticket_gen.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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_role_activation_provider(user, provider):
  51. """
  52. Создание тикета на получение роли Исполнителя сервиса.
  53. Список: 2202, METASERVICE-SUPERVISOR: Присвоение роли (ACCESS_REQUEST)
  54. Тип: 3, ACCESS_REQUEST
  55. """
  56. return Ticket.objects.create(
  57. title=f"Запрос прав на становление Исполнителем '{provider.company}'",
  58. ticket_list=TicketList.objects.get(pk=2202), # Список кому назначается: METASERVICE-ADMIN
  59. ticket_type=3, # ACCESS_REQUEST
  60. due_date=datetime.now().date() + timedelta(days=30),
  61. created_by=user,
  62. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  63. note=f"""
  64. Пользователь {user} #{user.pk} отправил заявку на роль Исполнителя партнера '{provider.company}'.\n
  65. \n
  66. <a href="{get_admin_url(provider.сompany)}">Полная информация о компании-партнере</a>\n
  67. \n
  68. После принятия изменений назначается роль и пользователь получает право быть Исполнителем в Сервисе.
  69. """
  70. )
  71. def create_ticket_company_docs_verification(user, company, doc):
  72. """
  73. Создание тикета на проверку документов партнера.
  74. Список: 2103, METASERVICE-ADMIN: Проверка документов (ST_REQUEST)
  75. Тип: 1, ST_REQUEST
  76. """
  77. doc_name = doc.get_doc_type_display()
  78. doc_files = DocumentFile.objects.filter(document=doc)
  79. 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>"
  80. for file in doc_files:
  81. note += f"<li><a href='{file.file.url}' target='_blank'>{file}</a></li>"
  82. note += "</ul>"
  83. return Ticket.objects.create(
  84. title=f"Проверка документа '{doc_name}' партнера '{company.legal_name}'",
  85. ticket_list=TicketList.objects.get(pk=2103),
  86. ticket_type=1,
  87. due_date=datetime.now().date() + timedelta(days=30),
  88. created_by=user,
  89. note=note
  90. )
  91. def create_ticket_provider_activation(user, provider):
  92. """
  93. Создание тикета на активацию Услуги.
  94. Список: 2202, METASERVICE-SUPERVISOR: Активация услуг (ST_REQUEST)
  95. Тип: 1, ST_REQUEST
  96. """
  97. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  98. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  99. return Ticket.objects.create(
  100. title=f"Активация услуги '{provider.service}' для исполнителя '{user}'",
  101. ticket_list=TicketList.objects.get(pk=2202),
  102. ticket_type=1,
  103. due_date=datetime.now().date() + timedelta(days=30),
  104. created_by=user,
  105. #TODO надо сделать более информативный вывод
  106. note=f"""
  107. Пользователь {user} отправил заявку на оказание Услуги {provider.service}.\n
  108. Проверьте всю информацию о необходимых разрешениях и проверках и для активации возможности оказывать такие услуги измените статус заявки на ACCEPTED.
  109. Это будет означать, что Исполнитель сможет обрабатывать такие заказы.
  110. """
  111. )
  112. def create_ticket_service_activation(user, service_category):
  113. """
  114. Создание тикета на активацию Услуги.
  115. Список: 2202, METASERVICE-SUPERVISOR: Активация услуг (ST_REQUEST)
  116. Тип: 1, ST_REQUEST
  117. """
  118. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  119. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  120. return Ticket.objects.create(
  121. title=f"Создание новой услуги '{service.id_metaservice}' - '{service.caption}'",
  122. ticket_list=TicketList.objects.get(pk=2202),
  123. ticket_type=1,
  124. due_date=datetime.now().date() + timedelta(days=30),
  125. created_by=user,
  126. #TODO надо сделать более информативный вывод
  127. note=f"""
  128. Пользователь {user} отправил заявку на добавление и активацию услуги сервиса:\n
  129. - Категория: {service.service_category_id}\n
  130. - Ресурс: {service.resource}\n
  131. - Комиссия партнера: {service.company_comission}\n
  132. - Тарификация: {service.price_type}\n
  133. - Стоимость км: {service.price_km}\n
  134. - Стоимость минуты: {service.price_min}\n
  135. - Стоимость за количество: {service.price_amount}\n
  136. - Описание: {service_category.description}\n
  137. \n
  138. Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
  139. Это будет означать, что Партнер сможет оказывать услуги на указанных условиях.
  140. """
  141. )
  142. def create_ticket_service_category_activation(user, service_category):
  143. """
  144. Создание тикета на активацию Категории Сервиса.
  145. Список: 2202, METASERVICE-SUPERVISOR: Активация категорий сервисов (ST_REQUEST)
  146. Тип: 1, ST_REQUEST
  147. """
  148. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  149. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  150. return Ticket.objects.create(
  151. title=f"Создание новой категории сервиса '{service_category.id_metaservice}' - '{service_category.caption}'",
  152. ticket_list=TicketList.objects.get(pk=2202),
  153. ticket_type=1,
  154. due_date=datetime.now().date() + timedelta(days=30),
  155. created_by=user,
  156. note=f"""
  157. Пользователь {user} отправил заявку на добавление и активацию категории сервиса:\n
  158. - Название: {service_category.caption}\n
  159. - Договор: {service_category.link_agreement}\n
  160. - Комиссия Сервиса: {service_category.metaservice_comission}\n
  161. - Тарификация: {service_category.price_type}\n
  162. - Описание: {service_category.description}\n
  163. \n
  164. Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
  165. Это будет означать, что Сервис сможет обрабатывать заказы данной категории.
  166. """
  167. )