fix(number-fields): избегаем потери точности длинных чисел

- number-поля теперь рендерятся как text + inputMode=numeric,
  чтобы браузер не округлял значения через input type=number
- пробелы при вставке в number-поля удаляются
- бэкенд нормализует значения number-полей в строку перед сохранением
- добавлен хелпер normalizeFieldValueForStorage

Closes: искажение расчётного счёта и других длинных числовых полей
This commit is contained in:
2026-07-07 21:03:40 +03:00
commit 1f5ecb6da4
1089 changed files with 237546 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
ALTER TABLE organization_assets
ADD COLUMN IF NOT EXISTS form_id integer,
ADD COLUMN IF NOT EXISTS field_code varchar(100),
ADD COLUMN IF NOT EXISTS field_value text;
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1 FROM pg_indexes
WHERE indexname = 'organization_assets_form_field_idx'
) THEN
CREATE INDEX organization_assets_form_field_idx
ON organization_assets (form_id, field_code, field_value);
END IF;
END $$;
ALTER TABLE organization_assets
DROP CONSTRAINT IF EXISTS organization_assets_form_id_fkey;
ALTER TABLE organization_assets
ADD CONSTRAINT organization_assets_form_id_fkey
FOREIGN KEY (form_id) REFERENCES forms(id) ON DELETE SET NULL;