Mikhail Chusavitin f48615e8a9 Modularize Go files, extract JS to static, implement competitor pricelists
Go refactoring:
- Split handlers/pricing.go (2446→291 lines) into 5 focused files
- Split services/stock_import.go (1334→~400 lines) into stock_mappings.go + stock_parse.go
- Split services/sync/service.go (1290→~250 lines) into 3 files

JS extraction:
- Move all inline <script> blocks to web/static/js/ (6 files)
- Templates reduced: admin_pricing 2873→521, lot 1531→304, vendor_mappings 1063→169, etc.

Competitor pricelists (migrations 033-039):
- qt_competitors + partnumber_log_competitors tables
- Excel import with column mapping, dedup, bulk insert
- p/n→lot resolution via weighted_median, discount applied
- Unmapped p/ns written to qt_vendor_partnumber_seen
- Quote counts (unique/total) shown on /admin/competitors
- price_method="weighted_median", price_period_days=0 stored explicitly

Fix price_method/price_period_days for warehouse items:
- warehouse: weighted_avg, period=0
- competitor: weighted_median, period=0
- Removes misleading DB defaults (was: median/90)

Update bible: architecture.md, pricelist.md, history.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 07:44:10 +03:00
2026-03-08 17:09:43 +03:00
2026-02-18 07:01:49 +03:00
2026-03-01 16:58:28 +03:00
2026-02-07 21:42:26 +03:00
2026-02-07 21:42:26 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00
2026-02-08 08:57:52 +03:00

PriceForge

Price and pricelist manager for MariaDB.

Quick Start

cp config.example.yaml config.yaml
# Edit config.yaml: database.host, name, user, password
make run

Commands

make run           # dev server
make build         # local build
make build-release # release build
make build-all     # cross-compile Linux/macOS/Windows
make test          # run tests
go run ./cmd/pfs -migrate   # run migrations
./bin/pfs -version          # check version
./scripts/release.sh        # build release archives

Requirements

  • Go 1.22+
  • MariaDB / MySQL

macOS Gatekeeper

xattr -d com.apple.quarantine /path/to/pfs-darwin-arm64
Description
No description provided
Readme 261 MiB
Languages
Go 47.2%
CSS 25.1%
JavaScript 16%
HTML 11.3%
Makefile 0.2%
Other 0.2%