From 0fc0366bb14c8ef1e36beb0a4bf7311b241a6e34 Mon Sep 17 00:00:00 2001 From: Mikhail Chusavitin Date: Tue, 16 Jun 2026 17:09:14 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D1=81=D0=B8=D0=BD=D1=85=D1=80=D0=BE?= =?UTF-8?q?=D0=BD=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=B8=D0=B3=D0=B8=20=D0=BF=D0=B0=D1=80=D1=82=D0=BD?= =?UTF-8?q?=D0=BE=D0=BC=D0=B5=D1=80=D0=BE=D0=B2=20=D0=B2=D0=BC=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B5=20=D1=81=20=D0=BF=D1=80=D0=B0=D0=B9=D1=81=D0=BB?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PullPartnumberBooks вызывается автоматически после каждой синхронизации прайслистов — в фоновом воркере, при ручном триггере /api/sync/pricelists и при полной синхронизации /api/sync/all. Отдельная кнопка «Синхронизировать» на странице Партномера удалена. Co-Authored-By: Claude Sonnet 4.6 --- internal/handlers/sync.go | 8 ++++++++ internal/services/sync/worker.go | 5 +++++ web/templates/partnumber_books.html | 7 ++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/internal/handlers/sync.go b/internal/handlers/sync.go index 3c0366f..0bb7893 100644 --- a/internal/handlers/sync.go +++ b/internal/handlers/sync.go @@ -232,6 +232,10 @@ func (h *SyncHandler) SyncPricelists(c *gin.Context) { } h.localDB.AppendSyncLog("pricelists", "ok", "", synced, startTime, time.Since(startTime).Milliseconds()) + if _, err := h.syncService.PullPartnumberBooks(); err != nil { + slog.Warn("partnumber books pull failed after pricelist sync", "error", err) + } + c.JSON(http.StatusOK, SyncResultResponse{ Success: true, Message: "Pricelists synced successfully", @@ -352,6 +356,10 @@ func (h *SyncHandler) SyncAll(c *gin.Context) { } h.localDB.AppendSyncLog("pricelists", "ok", "", pricelistsSynced, plNow, time.Since(plNow).Milliseconds()) + if _, err := h.syncService.PullPartnumberBooks(); err != nil { + slog.Warn("partnumber books pull failed during full sync", "error", err) + } + projectsResult, err := h.syncService.ImportProjectsToLocal() if err != nil { slog.Error("project import failed during full sync", "error", err) diff --git a/internal/services/sync/worker.go b/internal/services/sync/worker.go index 7bc9957..1f6b1e4 100644 --- a/internal/services/sync/worker.go +++ b/internal/services/sync/worker.go @@ -100,5 +100,10 @@ func (w *Worker) runSync() { return } + // Pull partnumber books together with pricelists + if _, err := w.service.PullPartnumberBooks(); err != nil { + w.logger.Warn("background sync: failed to pull partnumber books", "error", err) + } + w.logger.Info("background sync cycle completed") } diff --git a/web/templates/partnumber_books.html b/web/templates/partnumber_books.html index 82c4fc2..0ebc2c8 100644 --- a/web/templates/partnumber_books.html +++ b/web/templates/partnumber_books.html @@ -22,20 +22,17 @@
-
+
-