5.2 KiB
EKÁER — TODO / nyitott döntések
Companion to
README.md. TopicEKAER, prefixMGFBANKPLUG→ entry IDsMGFBANKPLUG-EKAER-T-<RAND>. ID format, Status vocabulary, type codes, archival →../../.github/TOPIC_CODES.md(→ framework registry).
Scope: a Shipping / ShippingDocument → NAV tradeCard leképezés (ShippingToEkaerMapper, FruitBank.Common/Services/Ekaer/) nyitott üzleti/technikai döntései. A tisztázott megfeleltetést lásd README.md.
Active entries
MGFBANKPLUG-EKAER-T-K7Q2: Shipping → tradeCard mapping — nyitott döntések
Status: Open · Priority: P2 · Type: T (mapping-tervezés)
A ShippingToEkaerMapper megírása előtt tisztázandó pontok. Minden sor a jelenlegi (alapértelmezett) feltételezést és a nyitott kérdést rögzíti.
| # | Téma | Jelenlegi feltételezés | Nyitott kérdés |
|---|---|---|---|
| 1 | tradeType (E/I/D irány) |
Bejövő = beszerzés. HU feladó → D (belföldi), egyébként → I (import). A feladó országát a ShippingDocument.Partner / Country adja. |
Automatikusan az országból dőljön el, vagy kézzel (UI) állítható? A kimenő (E, export) egyelőre hatókörön kívül (lásd #7). |
| 2 | Célhely (destination) | Hardcode-olt FruitBank-telephely (cím). | Ne hardcode legyen — konfigból/beállításból jöjjön. Honnan (plugin settings / nopCommerce warehouse)? |
| 3 | Érték (value, HUF) |
✅ Megoldva: UnitPriceOnDocument × QuantityOnDocument × árfolyam (EkaerValueCalculator). Pénznem a Partner.Currency-ből; EUR-HUF árfolyam configból (Ekaer:ExchangeRate:EurHuf, MNB középárfolyam). |
Árfolyam dinamizálása (jelenleg „drót" config-érték) — későbbi. |
| 4 | Tömeg (weight) |
ShippingItem.MeasuredGrossWeight (bruttó). |
Az EKÁER bruttó tömeget vár — megerősíteni, hogy ez bruttó és nem nettó. |
| 5 | Granularitás | 1 ShippingDocument → 1 tradeCard; 1 Shipping → több művelet (több dokumentum). |
Megerősíteni: tényleg dokumentumonként egy tradeCard? |
| 6 | Eladó (seller*) mezők |
ShippingDocument.Partner-ből: Name, TaxId (első 8 jegy = adószám-törzs), CountryCode, City, Street, PostalCode. |
A Partner (PartnerBase) pontos mezőnevei/forrásai — megerősíteni. |
| 7 | Kimenő irány (Order → EKÁER) |
Egyelőre nincs. A vevő gyakran maga viszi el (saját fuvar) → nem mi jelentünk. | Mikor kell mégis nekünk export/kimenő (E) tradeCard-ot küldeni? |
| 8 | productVtsz forrás |
ProductDto.Gtin (átmeneti). |
GTIN ≠ VTSZ — lásd MGFBANKPLUG-EKAER-I-T3X8. Hosszú távon külön Vtsz mező. |
| 9 | tétel tradeReason |
A (beszerzés) — a mapper ezt használja bejövő árura. |
Korábban tévesen S-nek feltételezve; az enum valójában S=értékesítés, A=beszerzés. Üzletileg megerősítendő. |
| 10 | value mező |
✅ Megoldva: a value most töltve (lásd #3); 0 / ismeretlen ár esetén null marad. |
A NAV 2021-től value > 0-t vár — a validátorban a value > 0 üzleti szabály még hozzáadandó. |
Affected:
ShippingToEkaerMapper(FruitBank.Common/Services/Ekaer/) — a leképezésEkaerTradeCardValidator/EkaerSubmitService/EkaerManageService(AyCode.Services/Nav/Ekaer/) — validáció + beküldés + HTTP (általános NAV-réteg)FruitBankEkaerService(FruitBank.Common.Server/Services/Ekaer/) — a szerver-oldali fogyasztó (map → submit)- Forrás-entitások (
FruitBank.Common):Shipping,ShippingDocument,ShippingItem,ProductDto.Gtin
MGFBANKPLUG-EKAER-T-W3R8: EKÁER küszöb-kategória a terméknél (enum, DB-ben tárolva)
Status: Open · Priority: P2 · Type: T (adatmodell + mapping)
Az EKÁER bejelentés-kötelezettség küszöbe termékfüggő — a VTSZ kockázati besorolása dönti el, melyik értékhatár vonatkozik rá:
| Kategória | Tömeg | Érték (nettó) |
|---|---|---|
| Kockázatos élelmiszer | 200 kg | 250 000 Ft |
| Kockázatos egyéb (nem élelmiszer) | 500 kg | 1 000 000 Ft |
| Nem kockázatos | 2500 kg | 5 000 000 Ft |
Jelenlegi (átmeneti): a CreateMissingEkaerHistories egyetlen, globális küszöböt használ az EkaerSettings-ből (config: 200 kg / 250 000 Ft — a legszigorúbb, hogy ne legyen aluljelentés).
Cél: a terméknél (Product) kézzel megadható küszöb-KATEGÓRIA (nem a konkrét érték!) — egy enum (pl. EkaerThresholdCategory { RiskyFood, RiskyOther, NonRisky }) —, DB-ben tárolva (Product oszlop / GenericAttribute). A konkrét kg/Ft értékeket a kód rendeli a kategóriához → értékhatár-változáskor egy helyen módosul. A küszöb-kapu dokumentumonként a tételek kategóriái szerint alkalmazza a megfelelő határt. (Későbbi lépés: a kategória automatikus levezetése a NAV kockázatos-VTSZ-listákból.)
Affected:
FruitBank.Common/Dtos/ProductDto.cs— küszöb-kategória mező (enum, DB-ben)EkaerSettings/EkaerValueCalculator(FruitBank.Common/Services/Ekaer/) — kategória → küszöbérték leképezésFruitBankDataController.CreateMissingEkaerHistories— a kapu a tételek kategóriái szerint