Update bible: competitors API endpoints and pricelist deletion/competitor sections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -129,3 +129,22 @@ Task type: `TaskTypePricelistCreate`.
|
||||
- Service: `internal/services/pricelist/service.go`
|
||||
- Warehouse calc: `internal/warehouse/snapshot.go`
|
||||
- Handler: `internal/handlers/pricelist.go`
|
||||
|
||||
---
|
||||
|
||||
## Pricelist Deletion Guard
|
||||
|
||||
`CountUsage(id)` checks `qt_configurations` for references across **all three** pricelist columns:
|
||||
`pricelist_id`, `warehouse_pricelist_id`, `competitor_pricelist_id`.
|
||||
|
||||
A pricelist is only deletable when all three counts are zero.
|
||||
|
||||
---
|
||||
|
||||
## Competitor Pricelist
|
||||
|
||||
- **Source**: `competitor`
|
||||
- **Rebuilt via**: `POST /api/competitors/pricelist` (task type: `competitor_import`)
|
||||
- **Logic**: Latest quote per `(competitor_id, partnumber)` across ALL active competitors → apply each competitor's `expected_discount_pct` → `weighted_median` per lot → insert into `qt_pricelist_items`
|
||||
- **price_method**: `weighted_median`, **price_period_days**: `0`
|
||||
- Quotes stored in `partnumber_log_competitors`; unmapped p/ns recorded in `qt_vendor_partnumber_seen` with `source_type = 'competitor:<code>'`
|
||||
|
||||
Reference in New Issue
Block a user