Mikhail ChusavitinandClaude Opus 4.8 905f9a4952 feat: PN code в импорте BOM, объединённый список LOT (world ∪ estimate)
Колонка «PN code» в таблице импорта BOM: HPE-спецификации хранят партномер
в двух столбцах, канонический вид — P52534-B21#B19. Склейка попадает
в vendor_partnumber и сравнивается с книгой партномеров как есть; при
загрузке разбирается обратно на две колонки. Схему БД менять не пришлось.

Список допустимых LOT собирается из world ∪ estimate (componentUniverse),
а не только из estimate. Прежняя область видимости молча теряла
lot_mappings: резолвер сопоставлял PN по книге, которая про прайслисты
не знает, а фронт отбрасывал LOT, которого нет в estimate — при этом
в корзину он всё равно попадал. World-only позиции отдают price_quality 0.

Кнопка «Пересопоставить» — перерешать BOM по актуальной книге, так как
при открытии конфигурации сопоставления остаются замороженными.

Итоги на вкладке «Ценообразование»: звёздочки убраны (переносились
на новую строку), все три суммы красные, при наведении — попап с долей
цен из прайслиста WORLD. Колонка «PN вендора» больше не переносится.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 17:01:31 +03:00
2026-07-22 19:10:50 +03:00
2026-03-01 16:57:50 +03:00
2026-03-01 16:57:50 +03:00
2026-01-22 17:29:47 +03:00
2026-02-18 07:02:17 +03:00

QuoteForge

Local-first desktop web app for server configuration, quotation, and project work.

Runtime model:

  • user work is stored in local SQLite;
  • MariaDB is used only for setup checks and background sync;
  • HTTP server binds to loopback only.

What the app does

  • configuration editor with price refresh from synced pricelists;
  • projects with variants and ordered configurations;
  • vendor BOM import and PN -> LOT resolution;
  • revision history with rollback;
  • rotating local backups.

Run

go run ./cmd/qfs

Useful commands:

go run ./cmd/qfs -migrate
go test ./...
go vet ./...
make build-release

On first run the app creates a minimal config.yaml, starts on http://127.0.0.1:8080, and opens /setup if DB credentials were not saved yet.

Documentation

bible-local/ is the source of truth for QuoteForge-specific architecture. If code changes behavior, update the matching file there in the same commit.

Repository map

cmd/                  entry points and migration tools
internal/             application code
web/                  templates and static assets
bible/                shared engineering rules
bible-local/          project architecture and contracts
releases/             packaged release artifacts and release notes
config.example.yaml   runtime config reference
S
Description
No description provided
Readme
70 MiB
2026-09-01 09:02:01 +03:00
Languages
Go 63.9%
HTML 35%
Shell 0.4%
JavaScript 0.3%
Makefile 0.2%
Other 0.2%