From d2fadaa136113f0c2a48ff3aa3664c09143ffb76 Mon Sep 17 00:00:00 2001 From: Loretta Date: Wed, 10 Jun 2026 16:24:53 +0200 Subject: [PATCH] =?UTF-8?q?Add=20EK=C3=81ER=20history=20grid,=20detail=20v?= =?UTF-8?q?iew,=20and=20entity=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Introduced `EkaerHistory` entity with status enum and new properties for EKÁER declaration lifecycle tracking. - Added CRUD methods for `EkaerHistory` in controller interface and SignalR client. - Implemented `GridEkaerHistory` and `GridEkaerDetail` components for displaying EKÁER records and trade card details. - Enhanced `TradeCardItemType` with `IId` for grid compatibility. - Improved AcSignalRDataSource to skip server refresh for tagless/local data sources. - Updated settings to include .NET 9 runtime install commands. --- .../Ekaer/Models/TradeCardItemType.Partial.cs | 21 +++++++++++++++++++ .../SignalRs/AcSignalRDataSource.cs | 8 +++++-- 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 AyCode.Services/Nav/Ekaer/Models/TradeCardItemType.Partial.cs diff --git a/AyCode.Services/Nav/Ekaer/Models/TradeCardItemType.Partial.cs b/AyCode.Services/Nav/Ekaer/Models/TradeCardItemType.Partial.cs new file mode 100644 index 0000000..7f4d0e9 --- /dev/null +++ b/AyCode.Services/Nav/Ekaer/Models/TradeCardItemType.Partial.cs @@ -0,0 +1,21 @@ +using AyCode.Core.Interfaces; + +namespace AyCode.Services.Nav.Ekaer.Models; + +/// +/// KÉZZEL ÍRT partial-kiegészítés a generált -hoz — a generált fájlhoz NEM nyúlunk, +/// az xscgen-újrageneráláskor ez a fájl megmarad. +/// Az implementáció grid-megjelenítéshez kell (IId<int>-megkötésű grid-bázisok +/// readonly DataSource-aként). EXPLICIT implementáció, mert a NAV-séma saját Id-t definiál, ami +/// string ([XmlAttribute("id")], csak modify-kérésnél töltött) — a grid viszont int-et vár. +/// SZÁMÍTOTT érték: az ItemExternalId-ból jön (a mapper oda a ShippingItem.Id-t írja), +/// így betöltéskor nincs teendő. Az explicit tagot az XmlSerializer nem szerializálja — a NAV-wire érintetlen. +/// +public partial class TradeCardItemType : IId +{ + int IId.Id + { + get => int.TryParse(ItemExternalId, out var id) ? id : 0; + set => ItemExternalId = value.ToString(); + } +} diff --git a/AyCode.Services/SignalRs/AcSignalRDataSource.cs b/AyCode.Services/SignalRs/AcSignalRDataSource.cs index e497f0b..3f89c7a 100644 --- a/AyCode.Services/SignalRs/AcSignalRDataSource.cs +++ b/AyCode.Services/SignalRs/AcSignalRDataSource.cs @@ -477,7 +477,9 @@ namespace AyCode.Services.SignalRs if (clearChangeTracking) TrackingItems.Clear(); - if (refreshDataFromDbAsync) + // Tag nélküli (lokális/readonly) datasource: nincs honnan frissíteni — a szerver-refresh kimarad. + // (Az explicit LoadDataSourceAsync hívás tag nélkül továbbra is dob — az valódi konfigurációs hiba.) + if (refreshDataFromDbAsync && SignalRCrudTags.GetAllMessageTag != AcSignalRTags.None) { LoadDataSourceAsync(false).Forget(); return; @@ -512,7 +514,9 @@ namespace AyCode.Services.SignalRs } else if (clearChangeTracking) TrackingItems.Clear(); - if (refreshDataFromDbAsync) + // Tag nélküli (lokális/readonly) datasource: nincs honnan frissíteni — a szerver-refresh kimarad. + // (Az explicit LoadDataSourceAsync hívás tag nélkül továbbra is dob — az valódi konfigurációs hiba.) + if (refreshDataFromDbAsync && SignalRCrudTags.GetAllMessageTag != AcSignalRTags.None) { LoadDataSourceAsync(false).Forget(); return;