VacationAPI: автоматизация отпусков

VacationAPI (Автоматизация отпуска (Отпуск ID: 11211))

Описание

Цель: Автоматизация формирования отпусков

API Методы

Скрипт

ru.bgcrm.dyn.ufanet.edo.VacationApi

init

Получение данных о сотруднике для оформления отпуска

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн сотрудника

Ответ

Название

Тип

Описание

edoAgreement

boolean

Параметр говорит о том, что сотрудник подписал разрешение на ЭДО в отделе кадров

paidVacationDays

int

Количество доступных отпускных дней

vacationTypes

List<(int: id,string: title)>

Доступные типы отпуска

Пример ответа

{
   "status":"ok",
   "message":"",
   "data":{
      "response":{
         "edoAgreement":false,
         "paidVacationDays":0,
         "vacationTypes":[
            {
               "id":1,
               "title":"Ежегодный отпуск"
            },
            {
               "id":2,
               "title":"Административный отпуск"
            }
         ]
      }
   },
   "eventList":[]
}

getVacationRequests

Получение списка текущий заявок на отпуск

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн сотрудника

Ответ

Список из

Название

Тип

Описание

id

int

ID Процесса

type

int

Тип отпуска

dateFrom

int

TimStamp даты начала отпуска

dateTo

int

TimeStamp даты окончания отпуска

count

int

Количество дней

status

string

Статус отпуска

comment

string

Комментарий

Пример ответа

{
   "status":"ok",
   "message":"",
   "data":{
      "response":[
         {
            "id":12345678,
            "type":1,
            "dateFrom":1663786800000,
            "dateTo":1664391600000,
            "count":8,
            "status":"Не согласовано",
            "comment":""
         },
         {
            "id":12345679,
            "type":1,
            "dateFrom":1664564400000,
            "dateTo":1667242800000,
            "count":32,
            "status":"Согласование",
            "comment":""
         }
      ]
   },
   "eventList":[]
}

getVacationDays

Вычисление количества дней отпуска

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн сотрудника

type

int

да

Тип отпуска

dateFrom

string

да

Дата начала отпуска в формате 'yyyy-MM-dd'

dateTo

string

да

Дата окончания отпуска в формате 'yyyy-MM-dd'

Ответ

Название

Тип

Описание

days

int

Количество дней для отпуска

Пример ответа

{
   "status":"ok",
   "message":"",
   "data":{
      "response":{
         "days":0
      }
   },
   "eventList":[]
}

createVacationRequest

Создание заявки на отпуск

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн сотрудника

type

int

да

Тип отпуска

dateFrom

string

да

Дата начала отпуска в формате 'yyyy-MM-dd'

dateTo

string

да

Дата окончания отпуска в формате 'yyyy-MM-dd'

login

string

да

Логин сотрудника

Ответ

Название

Тип

Описание

id

int

ID процесса

Пример ответа

{
   "status":"ok",
   "message":"",
   "data":{
      "response":{
         "id":12345678
      }
   },
   "eventList":[]
}

cancelVacationRequest

Отмена заявки на отпуск

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн сотрудника

id

string

да

ID процесса

Ответ

OK: 200

getVacations

Получение списка отпусков сотрудника

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн сотрудника

dateFrom

string

да

Дата начала отпуска в формате 'yyyy-MM-dd'

dateTo

string

да

Дата окончания отпуска в формате 'yyyy-MM-dd'

Ответ

Список из

Название

Тип

Обязательный

Описание

id

int

да

ID процесса

count

int

да

Количество дней отпуска

dateFrom

int

да

TimeStamp дата начала отпуска

dateTo

int

да

TimeStamp дата окончания отпуска

Пример ответа

{
   "status":"ok",
   "message":"",
   "data":{
      "response":[
          {
            "type": 1,
            "dateFrom": 123455670000,
            "dateTo": 123566641230,
            "count": 10
          },
          {
            "type": 2,
            "dateFrom": 124455670000,
            "dateTo": 124566641230,
            "count": 5
          }
      ]
   },
   "eventList":[]
}

getVacationAgreements

Получение списка отпусков для согласования

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн согласователя

Ответ

Список из

Название

Тип

Обязательный

Описание

id

int

ID процесса

department

string

Название отдела

employee

string

ФИО сотрудника

type

int

Тип отпуска

dateFrom

int

да

TimeStamp дата начала отпуска

dateTo

int

да

TimeStamp дата окончания отпуска

count

int

Количество дней отпуска

prepaidCount

int

Количество авансовых дней отпуска

Пример ответа

{
   "status":"ok",
   "message":"",
   "data":{
      "response":[
         {
            "id":12345678,
            "department":"Служба разработки программного обеспечения",
            "employee":"Хххххов Ххххислав Ххххрович",
            "type":1,
            "dateFrom":1664534400000,
            "dateTo":1667242500000,
            "count":32,
            "prepaidCount":27
         }
      ]
   },
   "eventList":[

   ]
}

approveVacation

Согласовать отпуск

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн согласователя

id

string

да

ID процесса

Ответ

OK: 200

refuseVacation

Отказать в согласовании отпуска

Параметры

Название

Тип

Обязательный

Описание

inn

string

да

Инн согласователя

id

string

да

ID процесса

Ответ

OK: 200

Автоматизация

При создании процесса Отпуск (ID: 11211) ЕРП будет посылать сообщения в телеграм согласователям по их очереди.

Если ЕРП получит один из отказов, процесс перейдет в статус "Не согласовано", после чего оповестит сотрудника через телеграм о том, что его отпуск не согласован.

Если ЕРП получит все согласования, процесс перейдет в статус "Согласовано", после чего сотрудник получит уведомление о согласовании отпуска, а также отправит в 1С Едо запрос на создание отпуска. После чего 1С Едо закроет процесс и ЕРП уведомит сотрудника (через телеграм) о том, что отпуск был подписан в отделе кадров.

Конфигурация

У процесса Отпуск (ID: 11211) можно конфигурировать сообщения, которые получает как сотрудник, так и согласователь.

Эти сообщения конфигурируются и отображаются по-разному. Так, сообщения для сотрудника, оформляющего отпуск, отправляются при смене статуса процесса, что отражается на способе конфигурации этих уведомлений.

Пример конфигурации сообщений для сотрудника, оформляющего отпуск:

notify.employee.<statud_id>=<vacation_text>

Где:

  • <status_id> - числовой идентификатор статуса процесса Отпуск (ID: 11211);

  • <vacation_text> - текст уведомления, сопутствующего смене статуса процесса Отпуск (ID: 11211) и отправляемого сотруднику, оформляющему отпуск.

Пример конфигурации сообщений для руководителя, согласующего отпуск:

notify.coordinator.common=<vacation_coordination_common_message>
notify.coordinator.prepaid=<vacation_coordination_prepaid_message>
notify.coordinator.refused=<vacation_coordination_refused_message>
notify.coordinator.approved=<vacation_coordination_approved_message>

Где:

  • <vacation_coordination_common_message> - сообщение руководителю о наличии отпуска для согласования;

  • <vacation_coordination_prepaid_message> - сообщение руководителю о наличии отпуска с указанным количеством дней взятых авансом для согласования;

  • <vacation_coordination_refused_message> - сообщение руководителю о не согласовании отпуска;

  • <vacation_coordination_approved_message> - сообщение руководителю о согласовании отпуска;

Сообщения <vacation_coordination_common_message> и <vacation_coordination_prepaid_message> обычно снабжаются интерактивными телеграм-кнопками для того, чтобы руководитель мог сразу принять решение о согласовании отпуска, нажав на кнопку.

Текст сообщения <vacation_text> и все сообщения <vacation_coordination_*> могут быть снабжены контекстными переменными и параметрами

Пример включения контекстных параметров в сообщение:

Здравствуйте, Ваш отпуск c {{ process:param<start_vacation_date_param_id> }} по {{ process:param<end_vacation_date_param_id> }} согласован руководителем.

Где:

  • <start_vacation_date_param_id> - числовой идентификатор параметра даты начала отпуска у процесса Отпуск (ID: 11211);

  • <end_vacation_date_param_id> - числовой идентификатор параметра даты окончания отпуска у процесса Отпуск (ID: 11211).