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.