33 lines
1.8 KiB
C#
33 lines
1.8 KiB
C#
using AyCode.Services.Nav.Ekaer;
|
|
using AyCode.Services.Nav.Ekaer.Models;
|
|
using FruitBank.Common.Entities;
|
|
|
|
namespace FruitBank.Common.Services.Ekaer;
|
|
|
|
/// <summary>
|
|
/// FruitBank domain → NAV EKÁER tradeCard leképezés. Egy bejövő <see cref="Shipping"/>-ből
|
|
/// EKÁER tradeCard műveleteket állít elő (dokumentumonként egyet).
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// A NAV-protokollt és az authentikációt NEM kezeli — az az <c>AyCode.Services.Nav</c> réteg felelőssége.
|
|
/// A feladót (beszállító <c>Partner</c>) és a saját céget (<see cref="EkaerCompanyInfo"/>) egységesen,
|
|
/// <see cref="AyCode.Entities.ICompanyInfoBase"/>-ként kezeli.
|
|
/// </remarks>
|
|
public interface IShippingToEkaerMapper
|
|
{
|
|
/// <summary>
|
|
/// Leképezi a <paramref name="shipping"/> minden <c>ShippingDocument</c>-jét egy-egy EKÁER tradeCard műveletre.
|
|
/// </summary>
|
|
/// <param name="shipping">A bejövő szállítmány (fuvarozó/jármű a Shipping szintjén, eladó/tételek a dokumentum szintjén).</param>
|
|
/// <param name="company">A bejelentő saját cégadatai (címzett bejövő relációban) + a lerakodási hely.</param>
|
|
/// <param name="operation">A tradeCard művelet típusa. Alapértelmezés: <see cref="OperationType.Create"/>.</param>
|
|
IReadOnlyList<TradeCardOperationType> MapShipping(Shipping shipping, EkaerCompanyInfo company, OperationType operation = OperationType.Create);
|
|
|
|
/// <summary>
|
|
/// EGY szállítólevelet (<see cref="ShippingDocument"/>) képez le egy tradeCard-dá — a dokumentum-szintű
|
|
/// EKÁER-granularitás egysége (1 dokumentum = 1 tradeCard = 1 TCN). A jármű/fuvarozó adatok a
|
|
/// <c>document.Shipping</c>-ből jönnek; ha az nincs betöltve, ezek üresen maradnak (a validátor jelzi).
|
|
/// </summary>
|
|
TradeCardType MapDocument(ShippingDocument document, EkaerCompanyInfo company);
|
|
}
|