diff --git a/src/webparts/requestPortal/forms/RecruitingHire/load.ts b/src/webparts/requestPortal/forms/RecruitingHire/load.ts index ada91f8..f6cc282 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/load.ts +++ b/src/webparts/requestPortal/forms/RecruitingHire/load.ts @@ -63,6 +63,7 @@ export async function loadHireRequest(itemId: number, listId?: string): Promise< 'RecruitingAgency', 'HireOnArrival', 'HireSecurityApproved', + 'PieceworkPay', 'HireApproverNoteImportant', APPROVER_CHANGES_FIELD, 'RequestStatus', @@ -81,6 +82,7 @@ export async function loadHireRequest(itemId: number, listId?: string): Promise< (data as unknown as Record).RecruitingAgency = !!item.RecruitingAgency; (data as unknown as Record).HireOnArrival = !!item.HireOnArrival; data.HireSecurityApproved = !!item.HireSecurityApproved; + data.PieceworkPay = !!item.PieceworkPay; data.HireApproverNoteImportant = !!item.HireApproverNoteImportant; SCALAR_FIELDS.forEach((key) => { diff --git a/src/webparts/requestPortal/forms/RecruitingHire/model.ts b/src/webparts/requestPortal/forms/RecruitingHire/model.ts index fba199c..a1b3e6e 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/model.ts +++ b/src/webparts/requestPortal/forms/RecruitingHire/model.ts @@ -75,6 +75,12 @@ export interface IFormData { SalaryAfterProbation: string; WorkSchedule: string; WorkScheduleOther: string; + /** + * Сдельная оплата труда — информационная отметка, на обязательность окладов не + * влияет. Та же колонка сайта PieceworkPay (Boolean), что в заявке на подбор: + * оттуда и подставляется (см. selectionPrefill). + */ + PieceworkPay: boolean; // Рекрутинговое агентство (условный блок): при включённом флаге — название + условия. RecruitingAgency: boolean; AgencyName: string; @@ -126,6 +132,7 @@ export const EMPTY_DATA: IFormData = { SalaryAfterProbation: '', WorkSchedule: '', WorkScheduleOther: '', + PieceworkPay: false, RecruitingAgency: false, AgencyName: '', AgencyTerms: '', diff --git a/src/webparts/requestPortal/forms/RecruitingHire/provisioning.json b/src/webparts/requestPortal/forms/RecruitingHire/provisioning.json index a98a0b1..4c97646 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/provisioning.json +++ b/src/webparts/requestPortal/forms/RecruitingHire/provisioning.json @@ -41,6 +41,7 @@ { "internalName": "SalaryAfterProbation", "title": "Оклад по завершении ИС", "type": "Number", "decimals": 2 }, { "internalName": "WorkSchedule", "title": "График работы", "type": "Text" }, { "internalName": "WorkScheduleOther", "title": "График работы (другое)", "type": "Text" }, + { "internalName": "PieceworkPay", "title": "Сдельная оплата труда", "type": "Boolean" }, { "internalName": "RecruitingAgency", "title": "Рекрутинговое агентство", "type": "Boolean" }, { "internalName": "AgencyName", "title": "Название компании (агентство)", "type": "Text" }, diff --git a/src/webparts/requestPortal/forms/RecruitingHire/sections/ConditionsSection.tsx b/src/webparts/requestPortal/forms/RecruitingHire/sections/ConditionsSection.tsx index fb5aa46..134d6f4 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/sections/ConditionsSection.tsx +++ b/src/webparts/requestPortal/forms/RecruitingHire/sections/ConditionsSection.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { CollapseSection, FormField, TextInput, MoneyInput, Select } from '../../../shared/ui'; +import { CollapseSection, FormField, TextInput, MoneyInput, Select, Toggle } from '../../../shared/ui'; import { ISectionProps, OTHER_VALUE, WORK_SCHEDULE_OPTIONS, PROBATION_PERIOD_OPTIONS } from '../model'; interface IConditionsSectionProps extends ISectionProps { @@ -67,5 +67,9 @@ export const ConditionsSection: React.FC = ({ data, set /> )} + {/* Просто отметка: обязательность окладов (4.2, 4.3) от неё не зависит. */} + + set('PieceworkPay', v)} onLabel="Да" /> + ); diff --git a/src/webparts/requestPortal/forms/RecruitingHire/selectionPrefill.ts b/src/webparts/requestPortal/forms/RecruitingHire/selectionPrefill.ts index d91903d..bf49872 100644 --- a/src/webparts/requestPortal/forms/RecruitingHire/selectionPrefill.ts +++ b/src/webparts/requestPortal/forms/RecruitingHire/selectionPrefill.ts @@ -38,6 +38,7 @@ export function selectionPrefill(link: ISelectionLink, selection: ISelectionData ProbationPeriodOther: selection.SelectionProbationPeriodOther, SalaryProbation: selection.RateProbation, SalaryAfterProbation: selection.RateAfterProbation, + PieceworkPay: selection.PieceworkPay, }; // Тип приёма однозначен, только если в подборе ОДНА причина; ФИО «взамен