10 Commits

Author SHA1 Message Date
Andrey Epifancev
4675b461d8 fix(table): закрыть пропуски исходного перечня AURORA-1892 по сверке 02.11.2026
validation.js: добавлены колонки, пропущенные в первой реализации (разделы 5/6.1
сверки) — approved.*, collegial.approved, ckk.*, contract_detail.* (включая
amount_foreign), corrected_plan, pay_ho/pay_rf, booking, rem_actual/
residual_after_actual, qN.total, new_plan, data.qN.economy. Отдельно добавлен
transfer_econ формы 2 — явное исключение из общего префикса transfer_*, так как
перечень Салмина прямо требует контроль минуса для этих колонок (раздел 6.3,
противоречие с Word). Тест validationUtils.test.js обновлён под это исключение
и дополнен проверкой полноты перечня и отсутствия дублей с remaining-booking.

FORM_1/OPER.js, AHR.js, CAP.js: перестановка колонок Q4 — «Комментарий» теперь
перед «Скорректированный план 4 кв.» во всех пяти таблицах (раздел 8 сверки).

Не включено (требует отдельного решения заказчика, раздел 12.2 сверки):
контроль месячного факта/СПОД, контроль факта расшифровочных листов сверх
плановых колонок, область действия правила для формы 4.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-03 14:38:27 +04:00
Andrey Epifancev
fa586c85cc feat(table): отрицательные суммы красным и правило «минус запрещён» (AURORA-1892)
Cell.jsx: formatNumber вынесен в utils/numberFormat.js и возвращает
{ text, isNegative }; отрицательные числа выделяются цветом (#C62828 на
светлом фоне, #FFCDD2 на тёмном) и font-weight 600, ноль остаётся «-».

constants/validation.js: фабрика nonNegativeRule и общий список
nonNegativeColumnKeys (план, бронь на 2026/2027, факт по месяцам и СПОД,
сумма платежа, предельная стоимость договора/ЦКК, сателлиты АХР
Аренда/Коммунальные/Безопасность, АХР Лимиты целиком). Корректировки и
переносы (adj_*, base_correction, revision_*, seq_*, target_change,
transfer_*) не включены — там минус — нормальная операция. Запрет
мягкий: подсветка и запись в «Контроль ошибок» через существующий
useValidationRules/isCellInvalid, сохранение не блокируется.

EditCell.jsx: handleSave предупреждает toast.warning при сохранении
отрицательного числа в защищённой колонке, значение всё равно
сохраняется. useValidationRules и RealtimeTable прокидывают
человекочитаемый заголовок колонки для текста предупреждения.

Тесты (node --test): numberFormat.test.js, validationUtils.test.js —
новые, 10/10 зелёных.
2026-11-01 12:20:06 +04:00
PotapovaA
ecbd89cc71 fix 2026-08-17 13:30:02 +03:00
PotapovaA
63c3cb26c7 fix 2026-08-17 13:21:08 +03:00
PotapovaA
6b564fc34b готово 2026-08-14 15:23:41 +03:00
PotapovaA
df6ea39194 исключила 1-3 кв для проверки 2026-08-13 17:43:14 +03:00
PotapovaA
5e106e7bab add validation 2026-08-12 16:03:50 +03:00
PotapovaA
ca6e0be255 fix 2026-08-11 18:34:24 +03:00
PotapovaA
72f2c67bdc исправления от линтера 2026-08-06 17:44:49 +03:00
65ecb164f3 [AURORA-1225] - логические ограничения для столбцов (требования №1 и требования №2) 2026-08-03 11:15:34 +03:00