ec182abe9923f3c27ae1dde644a2ae570461b11d
- Add GetLatestQuotesAllCompetitors() repo method: latest quote per (competitor_id, partnumber) across all active competitors - Add RebuildPricelist() service method: loads all quotes, applies each competitor's discount, aggregates with weighted_median per lot, creates single combined competitor pricelist - Add POST /api/competitors/pricelist handler + route - JS: "Создать прайслист" on competitor tab calls new endpoint instead of the generic one that required explicit items This allows recreating the competitor pricelist after new lot mappings are added, without requiring a new file upload. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PriceForge
Price and pricelist manager for MariaDB.
- Main UI: http://127.0.0.1:8084/admin/pricing
- Architecture docs:
bible/
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
Languages
Go
47.2%
CSS
25.1%
JavaScript
16%
HTML
11.3%
Makefile
0.2%
Other
0.2%