...

Как можно сделать процесс согласования чуточку гибче

Тема в разделе "Примеры решений и дополнительных модулей", создана пользователем efim.z, 24 окт 2023.

  1. efim.z

    efim.z Участник

    Пример решения кейса процесса согласования с возможностью добавлять ещё согласующих в процессе.



    Подписывайтесь на Youtube канал и Telegram канал, где вы найдёте ещё больше полезной и интересной информации
  2. olegsykarev

    olegsykarev Участник

    А как можно сразу добавить группу?
  3. efim.z

    efim.z Участник

    Какую группу?
  4. olegsykarev

    olegsykarev Участник

    С добавлением группы, постоянных пользователей для листа согласования разобрался.
    Добавил сценарий:
    Код:
    
    async function addGroupApprover(): Promise<void> {
          const 
    app await Context.data.equityParticipation!.fetch();
        const 
    addGroup await System.userGroups.search()
          .
    where(=> g.__id.eq("тут id грурпы"))
          .
    first();
        if (!
    addGroup) throw new Error("group not found");
    const 
    usersInAddGroup await addGroup.users();
         for (const 
    user of usersInAddGroup) {
                          const 
    findDuplicateUser app.data.approval_users!.find((eTUser) => e.id === user.id);
                                if (!
    findDuplicateUser) {
                                     
    app.data.approval_users!.push(user);
                                }
                          }
    await app.save();
    }
  5. olegsykarev

    olegsykarev Участник

    Но возник следующий вопрос!
    В БП, для каждого добавленного согласующего, используется отдельный лист согласования.
    Когда один согласующий "rejected" применяется статус "Отклонённый", но когда следующий ставит "approved" то статус перескакивает на другой.
    Как сделать проверку по всем листам согласования и если хоть один "rejected" то все остались в статусе "Отклонённый"?