From d1d37d058a36481750da961232cd5b3b995a4766 Mon Sep 17 00:00:00 2001 From: Loretta Date: Tue, 14 Jul 2026 18:35:03 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20EK=C3=81ER=20mapping=20doc:=20clarify=20o?= =?UTF-8?q?utgoing=20gross=20weight?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clarifies that outgoing EKÁER mapping now correctly sums gross weight from `OrderItemDto.GrossWeight` (fixing a prior net weight bug). Documents that non-measurable items have zero pallet weight, which may cause under-reporting, and references ADR-0001 for the proposed derived weight solution. Improves documentation accuracy for EKÁER reporting logic. --- Nop.Plugin.Misc.AIPlugin/docs/EKAER/EKAER_TODO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Nop.Plugin.Misc.AIPlugin/docs/EKAER/EKAER_TODO.md b/Nop.Plugin.Misc.AIPlugin/docs/EKAER/EKAER_TODO.md index 3a89b78..2239111 100644 --- a/Nop.Plugin.Misc.AIPlugin/docs/EKAER/EKAER_TODO.md +++ b/Nop.Plugin.Misc.AIPlugin/docs/EKAER/EKAER_TODO.md @@ -21,7 +21,7 @@ A `ShippingToEkaerMapper` megírása előtt tisztázandó pontok. Minden sor a j | 4 | Tömeg (`weight`) | ✅ **Frissítve (2026-07):** `GrossWeightOnDocument` — a **szállítólevélen szereplő** bruttó (a value-hoz hasonlóan minden adat a kísérő dokumentumról; a bejelentés nem függ a későbbi mérlegeléstől). Korábban: `MeasuredGrossWeight`. | ✅ **Megoldva (2026-07):** a validátor tételenként blokkoló `weight > 0` szabályt kényszerít (0 = a doksiról hiányzó súly → ValidationError). A **kapu** tételenkénti súly-előfeltétele külön teendő: **#12**. | | 5 | Granularitás | ✅ **Frissítve (2026-06/07):** a kézi út CSOPORT-alapú — bejövő: a `(Shipping, Partner, PartnerDepot)` csoport ÖSSZES dokumentuma = **1 tradeCard** (1 `EkaerHistory` + N mapping); kimenő: 1 rendelés = 1 tradeCard. | ⚠️ A `MapShipping` (automata `SubmitShippingAsync`-út) még **dokumentumonként** gyárt tradeCard-ot — a granularitás ELTÉR a kézi úttól; az automata beadás bekötése ELŐTT a kézi (csoport-alapú) granularitásra egységesítendő. | | 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. Továbbá: a NAV **magyar** felrakodási helynél `phone`/`email` mezőt is kér — a `Partner`/`PartnerDepot` entitásban nincs ilyen (entitás+DB bővítés kell; importnál — külföldi feladó — nem játszik). | -| 7 | Kimenő irány (`Order` → EKÁER) | ✅ **Implementálva** (`ToConsignment(OrderDto)`): mi=eladó, vevő=címzett; tömeg `OrderItemDto.GrossWeight`, érték nettó (UnitPriceExclTax × qty), jelenleg minden HUF (rate 1). **`carrierText` kimenőnél NEM töltve** (üres) — a vevő maga viszi el, ő már a címzett; a carrierText opcionális (2026-06). | **Nyitott:** a vonó jármű (**rendszám**) forrása — a `Customer`-hez még nincs bekötve (üres → warning, a felrakodás megkezdéséig pótolandó). Külföldi deviza + `Customer.CountryId` ISO-feloldás (export `E`): későbbi. | +| 7 | Kimenő irány (`Order` → EKÁER) | ✅ **Implementálva** (`ToConsignment(OrderDto)`): mi=eladó, vevő=címzett; tömeg `OrderItemDto.GrossWeight` (2026-07: a nettót summázó copy-paste bug javítva — most valós bruttó), érték nettó (UnitPriceExclTax × qty), jelenleg minden HUF (rate 1). **`carrierText` kimenőnél NEM töltve** (üres) — a vevő maga viszi el, ő már a címzett; a carrierText opcionális (2026-06). | **Nyitott:** a vonó jármű (**rendszám**) forrása — a `Customer`-hez még nincs bekötve (üres → warning, a felrakodás megkezdéséig pótolandó). Külföldi deviza + `Customer.CountryId` ISO-feloldás (export `E`): későbbi. **Nem mérendő tétel súlya 0** (a pallet-súly 0) → alul-jelentés; a megoldás (perzisztált derivált súly a termék átlagsúlyából + tárából) az **ADR-0001** (`FruitBankHybridApp/docs/adr/0001-non-measurable-item-derived-weight.md`, `Proposed`). | | 8 | `productVtsz` forrás | `ProductDto.Gtin` (átmeneti). | GTIN ≠ VTSZ — lásd [`MGFBANKPLUG-EKAER-I-T3X8`](EKAER_ISSUES.md); hosszú távon külön `Vtsz` mező. A VTSZ-**csoportosítás** + `productName` **külön** kérdés: **T-V9G3**. | | 9 | tétel `tradeReason` | ✅ **Megoldva (2026-07-10, common.xsd-ből ellenőrizve):** MINDKÉT irány **`S`**-t küld (= „Termék értékesítés / beszerzés" — egy kód). A korábbi bejövő `A` HIBÁS volt: az `A` = „Saját tulajdonú termék — törvényváltozás miatt KIVEZETVE" (nem „beszerzés"!), és belföldön (`D`) csak `S` adható. Lásd AyCode `EKAER_TRADECARD.md` → tradeReason. | — | | 10 | `value` mező | ✅ **Megoldva:** a value most töltve (lásd #3); 0 / ismeretlen ár esetén `null` marad. | ✅ **Megoldva (2026-07):** a validátor tételenként blokkoló `value > 0` szabályt kényszerít (hiányzó/0 érték → ValidationError). |