# Скрипты bzPython для автоматизации BCRM

Скрипты для автоматизации бизнес-процессов в BCRM.

## CLD-1625031528

https://bcrm.carbonsoft.ru/desk/Task/CLD-1625031528

Автоматизировать процесс найма HR.

Заявку создали, статус "Согласовать ставку":
    - исполнитель ставится Денис, у него появляется кнопка "Согласовать"
    - почему-то нет будильника. баг?
Тут нет автоматики bzPython.

Далее БП по шагам:
1. Денис нажимает "Согласовать", статус меняется на "Завяка на поиск"
    - поменять исполнителя на автора/постановщика
    - добавить копию документа "Шаблон "Профиль должности" в разделе "Профили кандидатов"
    - и подвязать к задаче
    - создать дочернюю задачу на автора "Заполнить профиль должности"
2. После закрытия задачи на заполнение профиля
    - статус родителя меняется на "Заявка HR на подбор"
    - исполнитель меняется на Юлию
3. **Тут нет автоматики bzPython!** Юлия ставит статус "В работу" и связывается с постановщиком,
  обсуждает задачу
4. Далее переводит заявку в статус "Согласовать вакансию"
    - исполнитель должен смениться на автора
5. У автора появляется кнопка "Подтвердить", он нажимает кнопку "Подтвердить"
    - статус меняется на "Разместить вакансию"
    - исполнитель меняется на Юлию
6. **Тут нет автоматики bzPython!** Юлия выполняет задачу, ставит в "Подтверждение закрытия",
  меняется ожидание ответа на постановщика

## CLD-1625026707

https://bcrm.carbonsoft.ru/desk/Task/CLD-1625026707

Автоматизирует перевод задачи работки в review при появлении git commit.

Настроено только для workflow "EvaDevBack/Front".


## CLD-1625032147

https://bcrm.carbonsoft.ru/desk/Task/CLD-1625032147

Механизм блокировки версии релиза:
1) Если есть задачи с этим приоритетом  - релиз нельзя перевести в статус тайп клозе
2) Задача с таким приоритетом  - запрещено менять приоритет и удалять из списка
   (добавлять можно) Все кроме овнера задачи, в том числе менять овнера задачи

Этот модуль реализует второй пункт.

## WF EvaTeam

Основной документ
https://bcrm.carbonsoft.ru/project/Document/DOC-010033#spec-bazovyh-wf-eva-team-chernovik

EvaFeature, EvaDevBack/Front, EvaTest
https://bcrm.carbonsoft.ru/project/Document/DOC-012315#wf-fich-rekvesty

EvaBug
https://bcrm.carbonsoft.ru/project/Document/DOC-012316#wf-bug

Делалось изначально прямо в тригерах. Иногда нужно дорабатывать, стало понятно, что это неудобно.

Перенесено сюда.

Получить список тригеров по этим БП из пайшела:

```python
for w in models.CmfWorkflow.list(filter=['name','IN',[
	'EvaFeature','EvaSpecA','EvaSpecB/F','EvaDevBack/Front','EvaTest','EvaBug']]):
	for wt in w.trans.load():
		# Условия перехода
		for wtf in wt.trans_filters.load(fields=['code','name','logic_type']):
				print(f'{w.code}:{w.name}, {wt.code}:{wt.name}, {wtf.code}:{wtf.logic_type}')
		# Валидаторы
		for wtv in wt.trans_validators.load(fields=['code','name','logic_type']):
				print(f'{w.code}:{w.name}, {wt.code}:{wt.name}, {wtv.code}:{wtv.logic_type}')
		# Действия
		for wta in wt.trans_actions.load(fields=['code','name','logic_type']):
				print(f'{w.code}:{w.name}, {wt.code}:{wt.name}, {wta.code}:{wta.logic_type}')
```