Fix offline usage tracking and active pricelist sync

This commit is contained in:
Mikhail Chusavitin
2026-02-04 09:54:13 +03:00
parent a3dc264efd
commit 1b87c53609
3 changed files with 39 additions and 6 deletions

View File

@@ -132,6 +132,11 @@ func (s *QuoteService) ValidateAndCalculate(req *QuoteRequest) (*QuoteValidation
// RecordUsage records that components were used in a quote
func (s *QuoteService) RecordUsage(items []models.ConfigItem) error {
if s.statsRepo == nil {
// Offline mode: usage stats are unavailable and should not block config saves.
return nil
}
for _, item := range items {
revenue := item.UnitPrice * float64(item.Quantity)
if err := s.statsRepo.IncrementUsage(item.LotName, item.Quantity, revenue); err != nil {

View File

@@ -44,9 +44,9 @@ func (s *Service) GetStatus() (*SyncStatus, error) {
if connStatus.IsConnected {
if mariaDB, err := s.connMgr.GetDB(); err == nil && mariaDB != nil {
pricelistRepo := repository.NewPricelistRepository(mariaDB)
serverPricelists, _, err := pricelistRepo.List(0, 1)
activeCount, err := pricelistRepo.CountActive()
if err == nil {
serverCount = len(serverPricelists)
serverCount = int(activeCount)
}
}
}
@@ -126,10 +126,10 @@ func (s *Service) SyncPricelists() (int, error) {
// Create repository
pricelistRepo := repository.NewPricelistRepository(mariaDB)
// Get all active pricelists from server (up to 100)
serverPricelists, _, err := pricelistRepo.List(0, 100)
// Get active pricelists from server (up to 100)
serverPricelists, _, err := pricelistRepo.ListActive(0, 100)
if err != nil {
return 0, fmt.Errorf("getting server pricelists: %w", err)
return 0, fmt.Errorf("getting active server pricelists: %w", err)
}
synced := 0