...

Получение руководителя Инициатора

Тема в разделе "Разработчикам", создана пользователем Andrey765, 15 авг 2018.

  1. Andrey765

    Andrey765 New Member

    Есть код:
    public void GetChief (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
    {
    var chiefs = context.Iniciator.OrganizationItems.ToArray ().Union (context.Iniciator.OrganizationGroups).Select (organizationItem => {
    var parentOrganizationItem = organizationItem.ParentItem;
    while (parentOrganizationItem != null && parentOrganizationItem.User == null)
    parentOrganizationItem = parentOrganizationItem.ParentItem;
    return parentOrganizationItem != null ? parentOrganizationItem.User : null;
    }).Where (u => u != null);
    if (chiefs.IsEmpty () != true) {
    var chief = chiefs.FirstOrDefault ();
    context.RukZaintPodrazd = chief;
    }
    else
    context.RukZaintPodrazd = context.Iniciator;
    }

    Суть:

    Создаётся заявка, при создании заявки может быть 3 роли, одна из них инициатор, им может быть как сотрудник подразделения, так и руководитель, в поле RukZaintPodrazd должен высвечиваться руководитель, но если заявку заполняет руководитель, то в поле RukZaintPodrazd заполняется вышестоящий, а должен быть руководитель конкретного подразделения(то есть тот, кто заполняет).
    Подскажите, пожалуйста, что надо изменить в коде?
     
  2. arkarimov

    arkarimov Member

    Сильно зависит от оргструктуры. Руководители бывают разные, например бригадир, или замначальника отдела - руководитель своим сотрудникам. Но ему тоже надо руководителя подразделения выдавать.
    В одном случае когда это было важно делал в оргструктуре отделы (OrganizationItemType.Department) и вот "настоящих" руководителей делал руководителями таких отделов, и делал проверку - ParentItem=OrganizationItemType.Department - начальник отдела, а в остальных случаях выбирал руководителя сотрудника.
     

Поделиться: