fix: примечание СБ в заявке на приём — необязательное
По просьбе заказчика примечание при отметке «Согласован СБ» больше не требуется для отправки: поле по-прежнему появляется только при отметке, но его можно оставить пустым. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -86,7 +86,7 @@ export interface IFormData {
|
||||
AgencyName: string;
|
||||
AgencyTerms: string;
|
||||
// Служба безопасности: инициатор при подаче отмечает, что кандидат согласован
|
||||
// с СБ; при отметке обязательно примечание (см. validation.ts). Информационное —
|
||||
// с СБ; примечание при отметке — по желанию. Информационное —
|
||||
// на маршрут и решения не влияет.
|
||||
HireSecurityApproved: boolean;
|
||||
HireSecurityNote: string;
|
||||
|
||||
@@ -4,7 +4,7 @@ import { ISectionProps } from '../model';
|
||||
|
||||
/**
|
||||
* 6. Служба безопасности: инициатор отмечает, что кандидат согласован с СБ, и
|
||||
* тогда обязательно пишет примечание (см. validation.ts). Поле информационное —
|
||||
* при желании пишет примечание (необязательно). Поле информационное —
|
||||
* на маршрут и решения согласующих не влияет. При снятии отметки примечание
|
||||
* очищается, чтобы в заявку не ушёл текст скрытого поля (как в AgencySection).
|
||||
*/
|
||||
@@ -20,7 +20,7 @@ export const SecuritySection: React.FC<ISectionProps> = ({ data, set }) => {
|
||||
<Toggle checked={data.HireSecurityApproved} onChange={handleToggle} onLabel="Да" />
|
||||
</FormField>
|
||||
{data.HireSecurityApproved && (
|
||||
<FormField label="6.2 Примечание СБ" htmlFor="HireSecurityNote" required full>
|
||||
<FormField label="6.2 Примечание СБ" htmlFor="HireSecurityNote" full>
|
||||
<TextArea
|
||||
id="HireSecurityNote"
|
||||
value={data.HireSecurityNote}
|
||||
|
||||
@@ -38,13 +38,8 @@ describe('RecruitingHire validation', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('«Согласован СБ» требует примечание СБ, без отметки — не требует', () => {
|
||||
expect(labels(submitIssues(DRAFT_READY))).not.toContain('6.2 Примечание СБ');
|
||||
expect(labels(submitIssues({ ...DRAFT_READY, HireSecurityApproved: true }))).toContain('6.2 Примечание СБ');
|
||||
expect(
|
||||
labels(submitIssues({ ...DRAFT_READY, HireSecurityApproved: true, HireSecurityNote: 'Проверка пройдена' }))
|
||||
).not.toContain('6.2 Примечание СБ');
|
||||
// Черновик без примечания сохранить можно.
|
||||
it('примечание СБ необязательно, даже при отметке «Согласован СБ»', () => {
|
||||
expect(labels(submitIssues({ ...DRAFT_READY, HireSecurityApproved: true }))).not.toContain('6.2 Примечание СБ');
|
||||
expect(draftIssues({ ...DRAFT_READY, HireSecurityApproved: true })).toEqual([]);
|
||||
});
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ interface IRequiredRule extends IFieldIssue {
|
||||
* агентство» не проверяется — у булевых нет пустого состояния.
|
||||
* 2.2 «Дата приёма» не нужна, если отмечено «По приезду на объект»
|
||||
* (HireOnArrival) — тогда дату проставляет исполнитель на своём шаге.
|
||||
* 6.2 «Примечание СБ» обязательно только при отметке 6.1 «Согласован СБ».
|
||||
* 6.2 «Примечание СБ» необязательно (по просьбе заказчика) — даже при отметке 6.1.
|
||||
*
|
||||
* 1.3 «Проект» — хотя бы один проект из справочника: первый уходит в resolve
|
||||
* маршрута (projectId), а без него approval-route отвечал 404 и заявка ушла бы
|
||||
@@ -49,13 +49,7 @@ const REQUIRED_RULES: ReadonlyArray<IRequiredRule> = [
|
||||
{ field: 'ProbationPeriod', label: '4.1 Испытательный срок', ok: (d) => !!d.ProbationPeriod },
|
||||
{ field: 'SalaryProbation', label: '4.2 Оклад при испытательном сроке', ok: (d) => !!d.SalaryProbation.trim() },
|
||||
{ field: 'SalaryAfterProbation', label: '4.3 Оклад по завершении ИС', ok: (d) => !!d.SalaryAfterProbation.trim() },
|
||||
{ field: 'WorkSchedule', label: '4.4 График работы', ok: (d) => !!d.WorkSchedule },
|
||||
{
|
||||
field: 'HireSecurityNote',
|
||||
label: '6.2 Примечание СБ',
|
||||
message: 'отмечено «Согласован СБ» — укажите примечание',
|
||||
ok: (d) => !d.HireSecurityApproved || !!d.HireSecurityNote.trim()
|
||||
}
|
||||
{ field: 'WorkSchedule', label: '4.4 График работы', ok: (d) => !!d.WorkSchedule }
|
||||
];
|
||||
|
||||
function toIssue({ field, label, message }: IRequiredRule): IFieldIssue {
|
||||
|
||||
Reference in New Issue
Block a user