Zaokrouhlení částky k úhradě objednávky

Zaokrouhlení částky k úhradě objednávky

Následující kapitola popisuje zaokrouhlení částky k úhradě objednávky.

Zkopírovat odkaz na sekciRoundingStrategy

Částku k zaokrouhlení zajišťuje com.fg.cps.eshop.order.service.RoundingStrategy#roundTotalToPay.

Výchozí implementace jsou dvě: default a skCash.

Zkopírovat odkaz na sekcidefault

Výchozí implementace, která zaokrouhluje částku k úhradě počet desetinných míst dle roundingScale, která je na vstupu.

Více viz com.fg.cps.eshop.order.service.DefaultRoundingStrategy.

Zkopírovat odkaz na sekciskCash

Strategie pro zaokrouhlení hotovostních plateb na Slovensku, více viz com.fg.cps.eshop.order.service.SkCashRoundingStrategy.

Zkopírovat odkaz na sekciRoundingScale

Jedná se o hodnotu, která se předává do RoundingStrategy#roundTotalToPay a určuje počet desetinných míst, na které se má částka k úhradě zaokrouhlit. Zda tuto hodnotu strategie využije, záleží na implementaci.

Hodnota roundingScale se vyhodnocuje v rámci metody com.fg.cps.eshop.order.service.AbstractOrderService#getRounding, která je ovlivněna konfigurací (viz roundingRules/roundingRule).

Zkopírovat odkaz na sekciRoundingStrategyResolver

O výběr strategie pro konkrétní objednávku se stará implementace com.fg.cps.eshop.order.service.RoundingStrategyResolver, která vrací kód strategie, která se má pro danou objednávku použít (viz RoundingStrategy#getCode()).

Výchozí implementace je com.fg.cps.eshop.order.service.DefaultRoundingStrategyResolver, který vrací pro hotovostní platby na Slovensku skCash a pro všechny ostatní default.

Zkopírovat odkaz na sekciProjektové rozšíření

Případě potřeby vlastní implementace zaokrouhlení částky k úhradě objednávky je možné vytvořit vlastní implementaci com.fg.cps.eshop.order.service.RoundingStrategy a com.fg.cps.eshop.order.service.RoundingStrategyResolver a následně je registrovat v kontejneru Springu.