ProductDto: add Gtin column as the EKÁER VTSZ source

- Map nopCommerce Product.Gtin onto ProductDto.Gtin; used as the EKÁER
  trade-card productVtsz in NAV road-freight reporting.
- Interim solution: GTIN != VTSZ, to be separated long-term (tracked as plugin
  issue MGFBANKPLUG-EKAER-I-T3X8).
This commit is contained in:
Loretta 2026-06-01 15:40:47 +02:00
parent 254ef5ef4c
commit b541405640
3 changed files with 43 additions and 2 deletions

View File

@ -12,7 +12,37 @@
"Bash(do sed -i '1a using AyCode.Core.Serializers.Toons;\\\\n' \"$f\")",
"Bash(done)",
"Bash(rm \"C:/Users/Fullepi/.claude/projects/H--Applications-Mango-Source-FruitBankHybridApp/memory/feedback_framework_docs_no_consumer_types.md\")",
"Bash(cd \"H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services.Server/bin/FruitBank\" && ls -la --time-style=full-iso Debug/net9.0/AyCode.Core.dll Release/net9.0/AyCode.Core.dll 2>&1)"
"Bash(cd \"H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services.Server/bin/FruitBank\" && ls -la --time-style=full-iso Debug/net9.0/AyCode.Core.dll Release/net9.0/AyCode.Core.dll 2>&1)",
"WebSearch",
"Bash(dotnet --version)",
"Bash(curl -sI -m 8 https://ekaer.nav.gov.hu/)",
"Bash(echo \"---curl-exit:$?\")",
"Bash(dotnet tool *)",
"Read(//c/Users/Fullepi/Downloads/ekaer/Generated/AyCode.Services.Nav.Ekaer.Models//**)",
"WebFetch(domain:github.com)",
"Bash(curl -s -m 15 https://raw.githubusercontent.com/nav-gov-hu/Common/master/README.md)",
"Bash(curl -s -m 15 \"https://api.github.com/repos/nav-gov-hu/Common/git/trees/master?recursive=1\")",
"Bash(curl -s -m 15 \"https://api.github.com/repos/nav-gov-hu/Common\")",
"Bash(curl -s -m 15 \"https://api.github.com/repos/nav-gov-hu/Common/git/trees/main?recursive=1\")",
"Bash(sed -E 's/\"path\": *\"//;s/\"$//')",
"Bash(curl -s -m 15 https://raw.githubusercontent.com/nav-gov-hu/Common/main/README_en.adoc)",
"WebFetch(domain:ekaer.nav.gov.hu)",
"Bash(curl -s -m 15 https://raw.githubusercontent.com/nav-gov-hu/Common/main/schemas/src/main/resources/xsd/hu/gov/nav/schemas/NTCA/2.0/common/authservice.xsd)",
"Bash(echo \"=== Nav/docs \\(amit a user bemásolt\\) ===\" *)",
"Bash(cp \"C:/Users/Fullepi/Downloads/ekaer/ekaermanagement.xsd\" \"H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/docs/\")",
"Bash(cp \"C:/Users/Fullepi/Downloads/ekaer/common.xsd\" \"H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/docs/\")",
"Bash(pdftotext -layout \"H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/docs/eKAERManagementService_2.2.pdf\" \"C:/Users/Fullepi/Downloads/ekaer/ekaer_2.2.txt\")",
"Bash(sed -n '1,70p' \"C:/Users/Fullepi/Downloads/ekaer/ekaer_2.2.txt\")",
"Bash(pdftotext -layout -enc UTF-8 H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/docs/eKAERManagementService_2.2.pdf C:/Users/Fullepi/Downloads/ekaer/ekaer_2.2.txt)",
"Bash(cp C:/Users/Fullepi/Downloads/ekaer/Generated/AyCode.Services.Nav.Ekaer.Models/*.cs H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/Ekaer/Models/)",
"Bash(echo '=== bemásolva: __CMDSUB_OUTPUT__')",
"Bash(cp C:/Users/Fullepi/Downloads/ekaer/Generated2/AyCode.Services.Nav.Ekaer.Models/*.cs H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/Ekaer/Models/)",
"Bash(cp C:/Users/Fullepi/Downloads/ekaer/Generated2/AyCode.Services.Nav.Ekaer.Models.Common/*.cs H:/Applications/Aycode/Source/AyCode.Core/AyCode.Services/Nav/Ekaer/Models/Common/)",
"Bash(sha512sum)",
"Bash(awk '{print toupper\\($1\\)}')",
"Bash(git -C \"H:/Applications/Aycode/Source/AyCode.Core\" status --short)",
"Bash(git -C \"H:/Applications/Mango/Source/FruitBankHybridApp\" status --short)",
"Bash(git -C \"H:/Applications/Mango/Source/NopCommerce.Common\" status --short)"
]
}
}

View File

@ -30,6 +30,16 @@ public class ProductDto : MgProductDto, IProductDto
[Association(ThisKey = nameof(Id), OtherKey = nameof(GenericAttributeDto.EntityId), ExpressionPredicate = nameof(RelationWithGenericAttribute), CanBeNull = false)]
public List<GenericAttributeDto> GenericAttributes { get; set; }
/// <summary>
/// A nopCommerce <c>Product.Gtin</c> oszlopa. <b>Átmenetileg az EKÁER VTSZ-t (vámtarifaszámot) tárolja</b> —
/// a jövőbeli <c>ShippingToEkaerMapper</c> innen olvassa a <c>tradeCardItem.productVtsz</c> értékét.
/// ⚠️ A GTIN ≠ VTSZ (a GTIN globális kereskedelmi cikkszám, a VTSZ vámtarifaszám). Külön mezőbe választandó —
/// lásd <c>Nop.Plugin.Misc.AIPlugin/docs/EKAER/EKAER_ISSUES.md#mgfbankplug-ekaer-i-t3x8</c>.
/// </summary>
[LinqToDB.Mapping.Column(nameof(Product.Gtin))]
[ToonDescription(Purpose = "nopCommerce Gtin column — holds the EKÁER VTSZ (customs tariff number) used as the trade-card item productVtsz in NAV road-freight reporting.")]
public string? Gtin { get; set; }
public ProductDto() :base()
{ }
public ProductDto(int productId) : base(productId)

View File

@ -35,11 +35,12 @@ public sealed class OrderClientTests
[TestMethod]
public async Task GetAllStockTakings()
{
var stockTakings = await _signalRClient.GetStockTakings(false);
var stockTakings = await _signalRClient.GetStockTakings(true);
Assert.IsNotNull(stockTakings);
Assert.IsTrue(stockTakings.Count != 0);
Assert.IsTrue(stockTakings.All(o => o.StockTakingItems != null));
Assert.IsTrue(stockTakings.All(o => o.StockTakingItems.All(oi => oi.Product != null && oi.Product.Id == oi.ProductId)));
}