diff --git a/driver-pwa/frontend/src/api/driver.ts b/driver-pwa/frontend/src/api/driver.ts index b08a079..9d347a0 100644 --- a/driver-pwa/frontend/src/api/driver.ts +++ b/driver-pwa/frontend/src/api/driver.ts @@ -147,17 +147,12 @@ const FineBriefSchema = z.object({ article: z.string(), address: z.string().default(""), car_number: z.string().default(""), - // Сумма, начисленная ВОДИТЕЛЮ (парк платит ГИБДД со скидкой и выставляет то, - // что заплатил). fine_amount — номинал постановления, он бывает другим. + // Сумма, начисленная ВОДИТЕЛЮ. Номинала постановления, скидки и расчётов парка + // с ГИБДД в приложении нет намеренно — водителю нужен факт штрафа и сумма. amount: z.number(), - billed: z.boolean().default(false), - fine_amount: z.number().default(0), - discount_amount: z.number().default(0), - discount_until: z.string().nullable().default(null), - // Погашен ли штраф ВОДИТЕЛЕМ перед парком. Не путать с closed_with_gibdd: - // постановление парк гасит авансом, долг водителя от этого не исчезает. + // Погашен ли штраф водителем перед парком. Постановление парк гасит авансом, + // и на этот признак его расчёты не влияют. settled: z.enum(["owed", "paid", "not_charged", "cancelled", "unknown"]), - closed_with_gibdd: z.boolean().default(false), cancelled: z.boolean().default(false), has_photo: z.boolean().default(false), }); diff --git a/driver-pwa/frontend/src/pages/FineDetailPage.tsx b/driver-pwa/frontend/src/pages/FineDetailPage.tsx index 3e4b686..c4c2c76 100644 --- a/driver-pwa/frontend/src/pages/FineDetailPage.tsx +++ b/driver-pwa/frontend/src/pages/FineDetailPage.tsx @@ -19,6 +19,10 @@ function Row({ k, v }: { k: string; v: string }) { * Карточка штрафа. Главное здесь — фотография с камеры: по ней водитель узнаёт * свою машину и свою поездку либо понимает, что штраф не его. Поэтому она стоит * первой, до реквизитов, и открывается в полный размер по нажатию. + * + * Что парк заплатил ГИБДД, со скидкой ли и какой номинал у постановления — здесь + * не показывается: водителю нужен факт штрафа и сумма к возврату, а разбор + * расчётов парка уводит разговор от долга к внутренней кухне. */ export function FineDetailPage() { const { fineId = "" } = useParams(); @@ -39,10 +43,6 @@ export function FineDetailPage() { ); } - const discountLive = - f.discount_amount > 0 && !!f.discount_until && !f.closed_with_gibdd && - new Date(f.discount_until) >= new Date(new Date().toDateString()); - return (
{fineStatusText(f)}
- {f.billed && f.fine_amount > 0 && f.fine_amount !== f.amount && ( - // Номинал постановления и начисление расходятся почти всегда: парк - // платит со скидкой. Не показать этого — значит получить вопрос «почему - // с меня 618, если в постановлении 750». -- Постановление — {formatMoney(f.fine_amount)}, парк оплатил его - {f.fine_amount > f.amount ? " со скидкой" : ""} и выставил вам фактическую сумму -
- )} - {f.closed_with_gibdd && ( -В ГИБДД постановление закрыто
- )} - {discountLive && !f.billed && ( -- До {formatDate(f.discount_until)} — {formatMoney(f.discount_amount)} со скидкой -
- )}- Постановление в ГИБДД оплачивает парк — как правило, сразу и со скидкой. - Вы возвращаете парку начисленную сумму: она и складывается в долг по штрафам. -
-