From 771558a55175ac21cb38e260a1a001661d4e69f7 Mon Sep 17 00:00:00 2001 From: vladtechno Date: Fri, 14 Aug 2026 12:24:44 +1000 Subject: [PATCH] =?UTF-8?q?feat(tyres):=20=D1=80=D0=B5=D0=B7=D0=B8=D0=BD?= =?UTF-8?q?=D1=83=20=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=20=D0=B2=D1=8B=D0=B4?= =?UTF-8?q?=D0=B0=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BF=D0=BE=D1=88=D1=82=D1=83?= =?UTF-8?q?=D1=87=D0=BD=D0=BE=20=E2=80=94=201,=202,=203=20=D0=B8=D0=BB?= =?UTF-8?q?=D0=B8=204=20=D0=BF=D0=BE=D0=BA=D1=80=D1=8B=D1=88=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Задача 4684. Выбор был 2/4/5 и не покрывал самый частый несезонный случай: порезали боковину, поймали грыжу — в замену уходит одно-два колеса, а не комплект. Теперь 1-4. Подпись кнопки перестала врать: «Выдать комплект» осталась только для четырёх, на меньшем количестве — «Выдать 1 покрышку» / «Выдать 2 покрышки». Вариант «5» (комплект с запаской) убран: задача перечисляет 1-4, а выдач за время жизни раздела не было ни одной — защищать нечего. Вернуть — одна строка. Co-Authored-By: Claude Opus 5 --- .../src/pages/warehouse/TyresPage.tsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/mechanic-pwa/frontend/src/pages/warehouse/TyresPage.tsx b/mechanic-pwa/frontend/src/pages/warehouse/TyresPage.tsx index ee8ce58..492b6d2 100644 --- a/mechanic-pwa/frontend/src/pages/warehouse/TyresPage.tsx +++ b/mechanic-pwa/frontend/src/pages/warehouse/TyresPage.tsx @@ -51,6 +51,13 @@ function daysOn(iso: string): number { return Number.isNaN(d) ? 0 : Math.max(0, Math.round((Date.now() - d) / 86_400_000)); } +/** Подпись кнопки выдачи. «Комплект» — только когда колёс действительно четыре: + * с тех пор как выдавать можно поштучно, на одной покрышке эта подпись врала. */ +function issueLabel(qty: number): string { + if (qty === 4) return "Выдать комплект"; + return `Выдать ${qty} ${qty === 1 ? "покрышку" : "покрышки"}`; +} + export default function TyresPage() { const navigate = useNavigate(); const [sp, setSp] = useSearchParams(); @@ -230,7 +237,7 @@ function IssueForm({ carId, onDone }: { carId: number; onDone: () => void }) { toast.success(`Выдано ${qty} шт · ${ctx.car_number ?? ""}`.trim()); onDone(); } catch (e) { - toast.error(await apiErrorText(e, "Не удалось выдать комплект")); + toast.error(await apiErrorText(e, "Не удалось выдать резину")); setSaving(false); } }; @@ -344,8 +351,11 @@ function IssueForm({ carId, onDone }: { carId: number; onDone: () => void }) { {/* Количество и состояние */}

Сколько покрышек

+ {/* Поштучно, а не только комплектом: в переобувку часто уходит одно-два + колеса — порезали боковину, поймали грыжу. Раньше выбор был 2/4/5 и + под такой случай не подходил (задача 4684). */}
- {[2, 4, 5].map((n) => ( + {[1, 2, 3, 4].map((n) => (