feat: подразделения в подборе и приёме фильтруются по организации
Tests / frontend-test (push) Successful in 1m14s
Tests / frontend-test (push) Successful in 1m14s
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
import * as React from "react";
|
||||
import { CollapseSection, FormField, TextInput } from "../../../shared/ui";
|
||||
import { PositionPicker } from "../../../shared/dictionary";
|
||||
import { ISectionProps } from "../model";
|
||||
import { DepartmentPicker, PositionPicker } from "../../../shared/dictionary";
|
||||
import { IFormData, ISectionProps } from "../model";
|
||||
import { HireDateField } from "./HireDateField";
|
||||
|
||||
// Отдел ищем в «Основном месте работы», если оно выбрано, иначе — во всех
|
||||
// организациях заявки.
|
||||
function departmentCompanyIds(data: IFormData): string[] {
|
||||
if (data.MainCompanyId) return [data.MainCompanyId];
|
||||
return data.Companies.map((c) => c.Id);
|
||||
}
|
||||
|
||||
interface ICandidateSectionProps extends ISectionProps {
|
||||
/** Начальник расчётной группы правит отдел/участок даже в режиме просмотра (см. approverRights.ts). */
|
||||
payrollEditable?: boolean;
|
||||
@@ -42,11 +49,15 @@ export const CandidateSection: React.FC<ICandidateSectionProps> = ({
|
||||
/>
|
||||
</FormField>
|
||||
<FormField label="2.4 Отдел/Участок" htmlFor="Department">
|
||||
<TextInput
|
||||
{/* Выбор из справочника или свой текст — отдела может не быть в справочнике. */}
|
||||
<DepartmentPicker
|
||||
context={context}
|
||||
id="Department"
|
||||
value={data.Department}
|
||||
onChange={(v) => set("Department", v)}
|
||||
onChange={(name) => set("Department", name)}
|
||||
companyIds={departmentCompanyIds(data)}
|
||||
readOnly={payrollEditable ? false : undefined}
|
||||
placeholder="Выберите из списка или введите вручную"
|
||||
/>
|
||||
</FormField>
|
||||
<FormField label="2.5 Местоположение" htmlFor="SiteLocation">
|
||||
|
||||
@@ -15,6 +15,9 @@ export const DepartmentSection: React.FC<ISectionProps> = ({ data, set, context
|
||||
id="Department"
|
||||
context={context}
|
||||
value={data.Department}
|
||||
valueId={data.DepartmentId}
|
||||
// Подразделения всех организаций из «1.5 Организация».
|
||||
companyIds={data.Companies.map((c) => c.Id)}
|
||||
onChange={(name, id) => {
|
||||
set('Department', name);
|
||||
set('DepartmentId', id);
|
||||
|
||||
Reference in New Issue
Block a user