# EKÁER — Műveletek és életciklus

> **Forrás:** [`eKAERManagementService_2.2.pdf`](eKAERManagementService_2.2.pdf) §2.3.1 + `common.xsd` `TradeCardStatusType`.
> Kivonat — a PDF/XSD a hiteles. Payload: [`EKAER_TRADECARD.md`](EKAER_TRADECARD.md). Auth/transport: [`EKAER_INTERFACE.md`](EKAER_INTERFACE.md).

## `tradeCardOperation` — egy művelet

| Mező | Köt. | Megjegyzés |
|---|---|---|
| `index` | igen | sorszám a listában (a kérésen belül azonosítja a műveletet) |
| `operation` | igen | `create` / `modify` / `delete` / `finalize` / `correction` |
| `tradeCard` **vagy** `tcn` | igen | `create`/`modify`/`correction` → **`tradeCard`** kell; `delete`/`finalize` → **`tcn`** elég |
| `arrivalDate` / `arrivalDateOnly` | finalize-nál | 2.0-tól a lerakodás idejét **itt** kell megadni |
| `statusChangeModReasonText` | delete-nél | a törlés szöveges indoka |

Egy `manageTradeCards` kérésben több művelet lehet — a válasz `operationResult` listája ugyanannyi elemű (index szerint).

## A műveletek

### `create` — rögzítés
A `tradeCard`-ot teljesen fel kell építeni. **A `tcn`-t el kell hagyni**, és a `tradeCardItem` / `deliveryPlan` `id` attribútumát is.

### `modify` — módosítás
A `tradeCard`-ot küldeni kell. Csak a **fejrész egy része** módosítható (aktív bejelentésnél): `orderNumber`, `plateNumber`+`country`, `modByCarrierEnabled`, `carrier`, `carrierText`; import + kockázatos termék esetén `unloadLocation.vatNumber/name` is.
Tétel-mezők módosíthatók: `value`, `weight`, `productVtsz`, `productName`.

**Tétel-kezelés 1.9-től (`itemOperation` kötelező MODIFY-nál):**
- meglévő tétel `id`-ját mindig küldeni kell
- `create` → új tétel · `modify` → meglévő (akkor is, ha nem változik) · `delete` → törlendő (a requestben szerepeltetve)
- új tétel / törlés esetén **módosítási indok kötelező**

### `delete` — törlés
Csak a `tcn` kell. Csak **aktív** bejelentés törölhető.

### `finalize` — véglegesítés
Csak a `tcn` kell. Előfeltételek (lásd `TC_FINALIZE_*` hibák): a `vehicle`-nek **valós rendszámot**, az `arrivalDate`-nek a **lerakodás idejét** kell tartalmaznia. **2.0-tól** az `arrivalDate`-et a finalize operation `arrivalDate`/`arrivalDateOnly` mezőjében adjuk meg (nem a tradeCard-ban). Véglegesítés után az adatok már nem módosíthatók (kivéve `correction`).

### `correction` — lezárt bejelentés utólagos módosítása
Csak **2.0-tól**, és **export-ra nem** alkalmazható. Törvényben meghatározott munkanapig / alkalommal. Módosítható: `plateNumber` (a honosság csak a plateNumber-rel együtt), `weight`, `value`. **Minden módosítás pótlékot von maga után** (mezőtípusonként) — a pótlék-adatok a válasz `tradeCardInfo` / `AllowanceListType` mezőiben jönnek. A pótlék befizetése az adózó kötelessége.

## Státusz-életciklus (`TradeCardStatusType`)

```
P (Prepare, létrehozva)
  ├──► S (Start, úton — felpakolva, elindult)
  │      └──► F (Finalized, lerakva — VÉGÁLLAPOT, nincs tovább)
  ├──► D (Deleted)   — csak P-ből
  └──► I (Inactive)  — ha időben nem véglegesedik (P/S-ből)
```

| Státusz | Jelentés |
|---|---|
| `P` | Prepare — létrehozás után; még tervezés |
| `S` | Start — úton, kiszállítás alatt |
| `F` | Finalized — lerakva, lezárt végállapot |
| `I` | Inactive — nem véglegesedett időben |
| `D` | Deleted — törölt (csak P-ből) |

## Tipikus folyamat (create → finalize)

1. `create` — bejelentés rögzítése (P), eKÁER-szám (`tcn`) visszajön a válaszban.
2. (`modify` — szükség szerint, amíg aktív.)
3. `finalize` — a `tcn` + `arrivalDate` + (előzőleg) `vehicle/plateNumber` megadásával → F.
4. (`correction` — lezárás után, törvényi kereten belül, pótlékkal.)
