From 15b991798c3f8d73c7a67ab389d2113e5d95a630 Mon Sep 17 00:00:00 2001 From: Loretta Date: Wed, 10 Jun 2026 16:24:58 +0200 Subject: [PATCH 1/6] Add EkaerHistory support: controller, DI, and DbTable - Added SignalR endpoints for EkaerHistory CRUD in FruitBankDataController. - Introduced EkaerHistoryDbTable with ordering and query helpers. - Registered EkaerHistoryDbTable in DI and DbContext. - Updated appsettings.json to comment out NopLogWriter config with explanation. --- Presentation/Nop.Web/appsettings.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Presentation/Nop.Web/appsettings.json b/Presentation/Nop.Web/appsettings.json index 7312bd25..277a9791 100644 --- a/Presentation/Nop.Web/appsettings.json +++ b/Presentation/Nop.Web/appsettings.json @@ -21,11 +21,13 @@ { "LogLevel": "Detail", "LogWriterType": "FruitBank.Common.Server.Services.Loggers.ConsoleLogWriter, FruitBank.Common.Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" - }, - { - "LogLevel": "Detail", - "LogWriterType": "Mango.Nop.Services.Loggers.NopLogWriter, Mango.Nop.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" } + //A NopLogWriter DI-only writer (5 szolgáltatás-függőség) — a config-úton nincs (AppType, LogLevel, string) ctor-a, MissingMethodException-t okozott. + //A DI-regisztrációja (PluginNopStartup: AddScoped) változatlanul él. + //,{ + // "LogLevel": "Detail", + // "LogWriterType": "Mango.Nop.Services.Loggers.NopLogWriter, Mango.Nop.Services, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" + //} ] } } From 3809f536455d0d73f110fca653bf7ea276710a01 Mon Sep 17 00:00:00 2001 From: Loretta Date: Thu, 11 Jun 2026 17:40:42 +0200 Subject: [PATCH 2/6] =?UTF-8?q?Update=20EK=C3=81ER=20config,=20thresholds,?= =?UTF-8?q?=20and=20value=20logic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Switched DB connection to FruitBank_PROD in appsettings.json - Added Ekaer config section: company info, thresholds, exchange rate - Refactored CreateMissingEkaerHistories to use new settings, load related data, and apply exemption/threshold logic - Updated controller DI to use EkaerSettings - Centralized EKÁER config binding in PluginNopStartup - Documented currency source issue and new value/category logic in EKAER_ISSUES.md and EKAER_TODO.md --- .../Nop.Web/App_Data/appsettings.json | 2 +- Presentation/Nop.Web/appsettings.json | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Presentation/Nop.Web/App_Data/appsettings.json b/Presentation/Nop.Web/App_Data/appsettings.json index 1682296c..ebb97bd3 100644 --- a/Presentation/Nop.Web/App_Data/appsettings.json +++ b/Presentation/Nop.Web/App_Data/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_DEV;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", + "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", "DataProvider": "sqlserver", "SQLCommandTimeout": null, "WithNoLock": false diff --git a/Presentation/Nop.Web/appsettings.json b/Presentation/Nop.Web/appsettings.json index 277a9791..e63794d1 100644 --- a/Presentation/Nop.Web/appsettings.json +++ b/Presentation/Nop.Web/appsettings.json @@ -30,5 +30,25 @@ //} ] } + }, + + "Ekaer": { + "Company": { + "Name": "FruitBank Kft.", + "TaxId": "14902170-2-13", + "CountryCode": "HU", + "PostalCode": "1068", + "City": "Budapest", + "Street": "Rippl-Rónai u. 18.", + "Phone": "301111111", + "Email": "info@fruitbank.hu" + }, + "Thresholds": { + "WeightKg": 200, + "ValueHuf": 250000 + }, + "ExchangeRate": { + "EurHuf": 356 + } } } \ No newline at end of file From 8e201d1c302a64004e8a580edb4ca095bad80b8f Mon Sep 17 00:00:00 2001 From: Loretta Date: Fri, 12 Jun 2026 07:54:33 +0200 Subject: [PATCH 3/6] EKAER: add site config, outgoing support, refactor settings - Added "Site" section to appsettings.json for company location. - Increased EKAER threshold values; updated phone format. - Refactored to use IEkaerSettings DI and registered in startup. - GenerateEkaerXmlDocument now supports both incoming and outgoing (order) documents. - Updated EKAER_TODO.md to reflect config and outgoing mapping changes. --- Presentation/Nop.Web/appsettings.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Presentation/Nop.Web/appsettings.json b/Presentation/Nop.Web/appsettings.json index e63794d1..b779b902 100644 --- a/Presentation/Nop.Web/appsettings.json +++ b/Presentation/Nop.Web/appsettings.json @@ -40,12 +40,17 @@ "PostalCode": "1068", "City": "Budapest", "Street": "Rippl-Rónai u. 18.", - "Phone": "301111111", - "Email": "info@fruitbank.hu" + "Phone": "+36301111111", + "Email": "info@fruitbank.hu", + "Site": { + "PostalCode": "1239", + "City": "Budapest", + "Street": "Nagykőrösi út 353." + } }, "Thresholds": { - "WeightKg": 200, - "ValueHuf": 250000 + "WeightKg": 500, + "ValueHuf": 1000000 }, "ExchangeRate": { "EurHuf": 356 From a2e43cb9621f80b5a0d1a76f26a1a6b2c7aee2d4 Mon Sep 17 00:00:00 2001 From: Loretta Date: Mon, 15 Jun 2026 18:01:48 +0200 Subject: [PATCH 4/6] =?UTF-8?q?EK=C3=81ER=20docs:=20VTSZ=20grouping,=20arc?= =?UTF-8?q?hive=20rules,=20reopened=20issue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Clarified docs-archive skill to use year-month buckets and archive only Closed entries. - Reopened and updated the Product.Gtin/VTSZ separation issue in EKAER_ISSUES.md. - Added new TODO (T-V9G3) for grouping tradeCardItems by VTSZ and resolving group names from Category, with requirements and affected code. - Updated README to reflect VTSZ-based grouping and productName resolution. --- .github/copilot-instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4279b4c9..55ce08c4 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -136,7 +136,7 @@ Skills defined in other repos. **Two reactive skills are pre-loaded at session s Location: `AyCode.Core/.github/skills/adr-author/SKILL.md` **Invoke on explicit user request** ("let's plan X", "decide Y vs Z", "design the W module") **or proactively flag** when the conversation looks ADR-worthy (user must confirm — never auto-invoke). -- **docs-archive** — Rotate closed entries (Status: Fixed/Resolved/Won't fix/Superseded by X) from active `_ISSUES.md`, `_TODO.md`, and `LLM_PROTOCOL_DECISIONS.md` into year-bucketed archive companions (`*_.md`). Year of the Status update determines destination file. Active files retain only Open/Partially Fixed entries plus a pointer to the archives. Archive files are NOT auto-loaded — agents read them on-demand when historical context becomes relevant. +- **docs-archive** — Rotate entries from active `_ISSUES.md`, `_TODO.md`, and `LLM_PROTOCOL_DECISIONS.md` into **year-month bucket** archive companions (`*__.md`). Two rules: **(A)** `_ISSUES.md` / `_TODO.md` — only `Status: Closed` entries are archive-eligible (per `TOPIC_CODES.md` 3-value vocabulary: `Open` / `InProgress` / `Closed`); **(B)** `LLM_PROTOCOL_DECISIONS.md` — last-15-active rolling window (LLMP-DEC-67), older entries rotate by entry date. Bucket derived from a date in the entry body. Active files retain `Open` / `InProgress` entries plus a pointer to the archives. Archive files are NOT auto-loaded — agents read them on-demand when historical context becomes relevant. Location: `AyCode.Core/.github/skills/docs-archive/SKILL.md` **Invoke on explicit user request** ("archive ISSUES", "rotate logs") **or proactively flag** when an active artifact file has many closed prior entries (user must confirm — never auto-invoke). From 9944ce96deaf10389df4f98cf6668cd6e9ebb84b Mon Sep 17 00:00:00 2001 From: Loretta Date: Tue, 16 Jun 2026 12:02:19 +0200 Subject: [PATCH 5/6] =?UTF-8?q?Update=20DB=20connection,=20EK=C3=81ER=20ma?= =?UTF-8?q?pping,=20and=20partner=20loading?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Switched appsettings.json connection string to FruitBank_DEV. - FruitBankDataController: GetPartners now loads PartnerDepots; GetPartnerById uses new overload. - Clarified in EKAER_TODO.md and README.md that carrierText is optional and left empty for outgoing shipments (customer is the carrier). --- Presentation/Nop.Web/App_Data/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation/Nop.Web/App_Data/appsettings.json b/Presentation/Nop.Web/App_Data/appsettings.json index ebb97bd3..1682296c 100644 --- a/Presentation/Nop.Web/App_Data/appsettings.json +++ b/Presentation/Nop.Web/App_Data/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", + "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_DEV;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", "DataProvider": "sqlserver", "SQLCommandTimeout": null, "WithNoLock": false From 3bc282ebf4d0aae73957635fa7ccfbb8ee80e131 Mon Sep 17 00:00:00 2001 From: Loretta Date: Wed, 17 Jun 2026 13:54:52 +0200 Subject: [PATCH 6/6] Set EkaerHistory summary fields and update dev DB config Updated the connection string to use the FruitBank_DEV database. Ensured EkaerHistory summary fields (ShippingDate, Partner/Customer) are consistently set via fruitBankEkaerService.SetSummary when creating or updating records, improving data consistency for both inbound and outbound cases. --- Presentation/Nop.Web/App_Data/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Presentation/Nop.Web/App_Data/appsettings.json b/Presentation/Nop.Web/App_Data/appsettings.json index ebb97bd3..1682296c 100644 --- a/Presentation/Nop.Web/App_Data/appsettings.json +++ b/Presentation/Nop.Web/App_Data/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_PROD;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", + "ConnectionString": "Data Source=100.73.220.50;Initial Catalog=FruitBank_DEV;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=v6f_?xNfg9N1;Trust Server Certificate=True", "DataProvider": "sqlserver", "SQLCommandTimeout": null, "WithNoLock": false