feat: price_quality индикатор для прайслиста; убраны неиспользуемые price_method/period/coefficient/manual_price/meta_prices

Прайслисты: добавлено поле price_quality (0-9, выставляется внешней
утилитой ценообразования на основе количества/свежести котировок за
период — QF только отображает, не считает сам). В карточке прайслиста
рядом с ценой показывается предупреждение (жёлтый/красный «!») при
quality < 7.

price_method/price_period_days/price_coefficient/manual_price/meta_prices
убраны из контракта QF (models.PricelistItem, local_pricelist_items,
API, колонка «Настройки» на странице прайслиста) — эти поля принадлежат
внешнему движку ценообразования и нигде не использовались в клиенте.
Сами колонки в qt_pricelist_items не трогаем — оставлены для обратной
совместимости с внешней системой.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Chusavitin
2026-07-22 18:09:01 +03:00
co-authored by Claude Sonnet 5
parent 39e6fd5642
commit bea8d9453e
8 changed files with 90 additions and 128 deletions
+13 -21
View File
@@ -332,32 +332,24 @@ func LocalToPricelist(local *LocalPricelist) *models.Pricelist {
// PricelistItemToLocal converts models.PricelistItem to LocalPricelistItem
func PricelistItemToLocal(item *models.PricelistItem, localPricelistID uint) *LocalPricelistItem {
return &LocalPricelistItem{
PricelistID: localPricelistID,
LotName: models.NormalizeLotName(item.LotName),
LotCategory: item.LotCategory,
LotDescription: item.LotDescription,
Price: item.Price,
PriceMethod: item.PriceMethod,
PricePeriodDays: item.PricePeriodDays,
PriceCoefficient: item.PriceCoefficient,
ManualPrice: item.ManualPrice,
MetaPrices: item.MetaPrices,
PricelistID: localPricelistID,
LotName: models.NormalizeLotName(item.LotName),
LotCategory: item.LotCategory,
LotDescription: item.LotDescription,
Price: item.Price,
PriceQuality: item.PriceQuality,
}
}
// LocalToPricelistItem converts LocalPricelistItem to models.PricelistItem
func LocalToPricelistItem(local *LocalPricelistItem, serverPricelistID uint) *models.PricelistItem {
return &models.PricelistItem{
ID: local.ID,
PricelistID: serverPricelistID,
LotName: local.LotName,
LotCategory: local.LotCategory,
LotDescription: local.LotDescription,
Price: local.Price,
PriceMethod: local.PriceMethod,
PricePeriodDays: local.PricePeriodDays,
PriceCoefficient: local.PriceCoefficient,
ManualPrice: local.ManualPrice,
MetaPrices: local.MetaPrices,
ID: local.ID,
PricelistID: serverPricelistID,
LotName: local.LotName,
LotCategory: local.LotCategory,
LotDescription: local.LotDescription,
Price: local.Price,
PriceQuality: local.PriceQuality,
}
}