ticket_gen.py 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  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_role_activation_metaservice_supervisor(user):
  6. """
  7. Создание тикета на получение роли Исполнителя сервиса.
  8. Список: 2201, METASERVICE-ADMIN: Присвоение роли Модератора Сервиса (ACCESS_REQUEST)
  9. Тип: 3, ACCESS_REQUEST
  10. """
  11. return Ticket.objects.create(
  12. title=f"Запрос прав на становление Модератором сервиса'",
  13. ticket_list=TicketList.objects.get(pk=2201), # Список кому назначается: METASERVICE-ADMIN
  14. ticket_type=3, # ACCESS_REQUEST
  15. due_date=datetime.now().date() + timedelta(days=30),
  16. created_by=user,
  17. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  18. note=f"""
  19. Пользователь {user} #{user.pk} отправил заявку на роль Модератора Сервиса.\n
  20. \n
  21. После принятия изменений назначается роль и пользователь получает право быть Модератором Сервиса.
  22. """
  23. )
  24. def create_ticket_role_activation_metaservice_support(user):
  25. """
  26. Создание тикета на получение роли Поддержки сервиса.
  27. Список: 2202, METASERVICE-SUPERVISOR: Присвоение роли Поддержки Сервиса (ACCESS_REQUEST)
  28. Тип: 3, ACCESS_REQUEST
  29. """
  30. return Ticket.objects.create(
  31. title=f"Запрос прав на становление Поддержкой сервиса'",
  32. ticket_list=TicketList.objects.get(pk=2202), # Список кому назначается: METASERVICE-SUPERVISOR
  33. ticket_type=3, # ACCESS_REQUEST
  34. due_date=datetime.now().date() + timedelta(days=30),
  35. created_by=user,
  36. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  37. note=f"""
  38. Пользователь {user} #{user.pk} отправил заявку на роль Поддержки Сервиса.\n
  39. \n
  40. После принятия изменений назначается роль и пользователь получает право быть Сотрудником поддержки.
  41. """
  42. )
  43. def create_ticket_role_activation_metaservice_techsupport(user):
  44. """
  45. Создание тикета на получение роли Поддержки сервиса.
  46. Список: 2202, METASERVICE-SUPERVISOR: Присвоение роли Техподдержки Сервиса (ACCESS_REQUEST)
  47. Тип: 3, ACCESS_REQUEST
  48. """
  49. return Ticket.objects.create(
  50. title=f"Запрос прав на становление Техподдержкой сервиса'",
  51. ticket_list=TicketList.objects.get(pk=2202), # Список кому назначается: METASERVICE-SUPERVISOR
  52. ticket_type=3, # ACCESS_REQUEST
  53. due_date=datetime.now().date() + timedelta(days=30),
  54. created_by=user,
  55. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  56. note=f"""
  57. Пользователь {user} #{user.pk} отправил заявку на роль Техподдержки Сервиса.\n
  58. \n
  59. После принятия изменений назначается роль и пользователь получает право быть Сотрудником техподдержки.
  60. """
  61. )
  62. def create_ticket_role_activation_partner_admin(user, сompany):
  63. """
  64. Создание тикета на получение роли администратора партнера сервиса.
  65. Список: 2202, METASERVICE-SUPERVISOR: Присвоение роли (ACCESS_REQUEST)
  66. Тип: 3, ACCESS_REQUEST
  67. """
  68. return Ticket.objects.create(
  69. title=f"Запрос прав на становление Партнером '{сompany.legal_name}'",
  70. ticket_list=TicketList.objects.get(pk=2202), # Список кому назначается: METASERVICE-ADMIN
  71. ticket_type=3, # ACCESS_REQUEST
  72. due_date=datetime.now().date() + timedelta(days=30),
  73. created_by=user,
  74. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  75. note=f"""
  76. Пользователь {user} #{user.pk} отправил заявку на роль администратора партнера сервиса.\n
  77. \n
  78. <a href="{get_admin_url(сompany)}">Полная информация о компании-партнере</a>\n
  79. \n
  80. После принятия изменений назначается роль и получает право на совершение юридически значимых действий от лица Партнера в соответствии с функционалом Сервиса.
  81. """
  82. )
  83. def create_ticket_role_activation_partner_supervisor(user, сompany):
  84. """
  85. Создание тикета на получение роли Модератора Партнера сервиса.
  86. Список: 3201, PARTNER-ADMIN: Присвоение роли Модератора партнера(ACCESS_REQUEST)
  87. Тип: 3, ACCESS_REQUEST
  88. """
  89. return Ticket.objects.create(
  90. title=f"Запрос прав на становление Модератором партнера '{сompany.legal_name}'",
  91. ticket_list=TicketList.objects.get(pk=3201), # Список кому назначается: METASERVICE-ADMIN
  92. ticket_type=3, # ACCESS_REQUEST
  93. due_date=datetime.now().date() + timedelta(days=30),
  94. created_by=user,
  95. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  96. note=f"""
  97. Пользователь {user} #{user.pk} отправил заявку на роль модератора партнера сервиса.\n
  98. \n
  99. <a href="{get_admin_url(сompany)}">Полная информация о компании-партнере</a>\n
  100. \n
  101. После принятия изменений назначается роль и получает право модерировать процессы Партнера.
  102. """
  103. )
  104. def create_ticket_role_activation_partner_support(user, сompany):
  105. """
  106. Создание тикета на получение роли поддержки партнера сервиса.
  107. Список: 3202, PARTNER-SUPERVISOR: Присвоение роли Поддержки партнера(ACCESS_REQUEST)
  108. Тип: 3, ACCESS_REQUEST
  109. """
  110. return Ticket.objects.create(
  111. title=f"Запрос прав на становление Поддержки партнера '{сompany.legal_name}'",
  112. ticket_list=TicketList.objects.get(pk=3202), # Список кому назначается: PARTNER-SUPERVISOR
  113. ticket_type=3, # ACCESS_REQUEST
  114. due_date=datetime.now().date() + timedelta(days=30),
  115. created_by=user,
  116. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  117. note=f"""
  118. Пользователь {user} #{user.pk} отправил заявку на роль поддержки партнера сервиса.\n
  119. \n
  120. <a href="{get_admin_url(сompany)}">Полная информация о компании-партнере</a>\n
  121. \n
  122. После принятия изменений назначается роль сотрудника поддержки партнера.
  123. """
  124. )
  125. def create_ticket_role_activation_partner_techsupport(user, сompany):
  126. """
  127. Создание тикета на получение роли техподдержки партнера сервиса.
  128. Список: 3202, PARTNER-SUPERVISOR: Присвоение роли ТехПоддержки партнера(ACCESS_REQUEST)
  129. Тип: 3, ACCESS_REQUEST
  130. """
  131. return Ticket.objects.create(
  132. title=f"Запрос прав на становление ТехПоддержки партнера '{сompany.legal_name}'",
  133. ticket_list=TicketList.objects.get(pk=3202), # Список кому назначается: PARTNER-SUPERVISOR
  134. ticket_type=3, # ACCESS_REQUEST
  135. due_date=datetime.now().date() + timedelta(days=30),
  136. created_by=user,
  137. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  138. note=f"""
  139. Пользователь {user} #{user.pk} отправил заявку на роль техподдержки партнера сервиса.\n
  140. \n
  141. <a href="{get_admin_url(сompany)}">Полная информация о компании-партнере</a>\n
  142. \n
  143. После принятия изменений назначается роль сотрудника техподдержки партнера.
  144. """
  145. )
  146. def create_ticket_role_activation_provider(user, provider):
  147. """
  148. Создание тикета на получение роли Исполнителя сервиса.
  149. Список: 2202, METASERVICE-SUPERVISOR: Присвоение роли (ACCESS_REQUEST)
  150. Тип: 3, ACCESS_REQUEST
  151. """
  152. return Ticket.objects.create(
  153. title=f"Запрос прав на становление Исполнителем '{provider.company}'",
  154. ticket_list=TicketList.objects.get(pk=2202), # Список кому назначается: METASERVICE-ADMIN
  155. ticket_type=3, # ACCESS_REQUEST
  156. due_date=datetime.now().date() + timedelta(days=30),
  157. created_by=user,
  158. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  159. note=f"""
  160. Пользователь {user} #{user.pk} отправил заявку на роль Исполнителя партнера '{provider.company}'.\n
  161. \n
  162. <a href="{get_admin_url(provider.сompany)}">Полная информация о компании-партнере</a>\n
  163. \n
  164. После принятия изменений назначается роль и пользователь получает право быть Исполнителем в Сервисе.
  165. """
  166. )
  167. def create_ticket_company_docs_verification(user, company, doc):
  168. """
  169. Создание тикета на проверку документов партнера.
  170. Список: 2103, METASERVICE-ADMIN: Проверка документов (ST_REQUEST)
  171. Тип: 1, ST_REQUEST
  172. """
  173. doc_name = doc.get_doc_type_display()
  174. doc_files = DocumentFile.objects.filter(document=doc)
  175. 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>"
  176. for file in doc_files:
  177. note += f"<li><a href='{file.file.url}' target='_blank'>{file}</a></li>"
  178. note += "</ul>"
  179. return Ticket.objects.create(
  180. title=f"Проверка документа '{doc_name}' партнера '{company.legal_name}'",
  181. ticket_list=TicketList.objects.get(pk=2103),
  182. ticket_type=1,
  183. due_date=datetime.now().date() + timedelta(days=30),
  184. created_by=user,
  185. note=note
  186. )
  187. def create_ticket_provider_activation(user, provider):
  188. """
  189. Создание тикета на активацию Услуги.
  190. Список: 2202, METASERVICE-SUPERVISOR: Активация услуг (ST_REQUEST)
  191. Тип: 1, ST_REQUEST
  192. """
  193. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  194. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  195. return Ticket.objects.create(
  196. title=f"Активация услуги '{provider.service}' для исполнителя '{user}'",
  197. ticket_list=TicketList.objects.get(pk=2202),
  198. ticket_type=1,
  199. due_date=datetime.now().date() + timedelta(days=30),
  200. created_by=user,
  201. #TODO надо сделать более информативный вывод
  202. note=f"""
  203. Пользователь {user} отправил заявку на оказание Услуги {provider.service}.\n
  204. Проверьте всю информацию о необходимых разрешениях и проверках и для активации возможности оказывать такие услуги измените статус заявки на ACCEPTED.
  205. Это будет означать, что Исполнитель сможет обрабатывать такие заказы.
  206. """
  207. )
  208. def create_ticket_company_activation(user, сompany):
  209. """
  210. Создание тикета на активацию партнера.
  211. Список: 2101, METASERVICE-ADMIN: Активация партнеров (NEG_REQUEST)
  212. Тип: 4, NEG_REQUEST
  213. """
  214. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  215. return Ticket.objects.create(
  216. title=f"Создание нового Партнера '{сompany.legal_name}'",
  217. ticket_list=TicketList.objects.get(pk=2101),
  218. ticket_type=4,
  219. due_date=datetime.now().date() + timedelta(days=30),
  220. created_by=user,
  221. note=f"""
  222. Пользователь {user} #{user.pk} отправил заявку на становление партнером сервиса:\n
  223. - Имя: {сompany.legal_name}\n
  224. - ИНН: {сompany.inn}\n
  225. - Юридический адрес: {сompany.address}\n
  226. <a href="{get_admin_url(сompany)}">Полная информация</a>\n
  227. \n
  228. Проверьте всю информацию и для активации партнера измените статус заявки на ACCEPTED.
  229. Это будет означать, что договорные отношения между сервисом и партнером, вступают в силу.
  230. """
  231. )
  232. def create_ticket_service_activation(user, service_category):
  233. """
  234. Создание тикета на активацию Услуги.
  235. Список: 2202, METASERVICE-SUPERVISOR: Активация услуг (ST_REQUEST)
  236. Тип: 1, ST_REQUEST
  237. """
  238. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  239. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  240. return Ticket.objects.create(
  241. title=f"Создание новой услуги '{service.id_metaservice}' - '{service.caption}'",
  242. ticket_list=TicketList.objects.get(pk=2202),
  243. ticket_type=1,
  244. due_date=datetime.now().date() + timedelta(days=30),
  245. created_by=user,
  246. #TODO надо сделать более информативный вывод
  247. note=f"""
  248. Пользователь {user} отправил заявку на добавление и активацию услуги сервиса:\n
  249. - Категория: {service.service_category_id}\n
  250. - Ресурс: {service.resource}\n
  251. - Комиссия партнера: {service.company_comission}\n
  252. - Тарификация: {service.price_type}\n
  253. - Стоимость км: {service.price_km}\n
  254. - Стоимость минуты: {service.price_min}\n
  255. - Стоимость за количество: {service.price_amount}\n
  256. - Описание: {service_category.description}\n
  257. \n
  258. Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
  259. Это будет означать, что Партнер сможет оказывать услуги на указанных условиях.
  260. """
  261. )
  262. def create_ticket_service_category_activation(user, service_category):
  263. """
  264. Создание тикета на активацию Категории Сервиса.
  265. Список: 2202, METASERVICE-SUPERVISOR: Активация категорий сервисов (ST_REQUEST)
  266. Тип: 1, ST_REQUEST
  267. """
  268. # FIXME: Возможно нужно автоматически создавать содержимое поля json
  269. #TODO вместе с созданием тикета должно отправляться уведомление в группу, но может быть это будет на уровне обработчиков
  270. return Ticket.objects.create(
  271. title=f"Создание новой категории сервиса '{service_category.id_metaservice}' - '{service_category.caption}'",
  272. ticket_list=TicketList.objects.get(pk=2202),
  273. ticket_type=1,
  274. due_date=datetime.now().date() + timedelta(days=30),
  275. created_by=user,
  276. note=f"""
  277. Пользователь {user} отправил заявку на добавление и активацию категории сервиса:\n
  278. - Название: {service_category.caption}\n
  279. - Договор: {service_category.link_agreement}\n
  280. - Комиссия Сервиса: {service_category.metaservice_comission}\n
  281. - Тарификация: {service_category.price_type}\n
  282. - Описание: {service_category.description}\n
  283. \n
  284. Проверьте всю информацию и для активации категории сервиса измените статус заявки на ACCEPTED.
  285. Это будет означать, что Сервис сможет обрабатывать заказы данной категории.
  286. """
  287. )