カスタマイズにより、マイナス伝票を作成していたプロジェクトで発生
通常の消費税計算へマイナス値を渡すと、切り捨て処理が反転する
こんにちは!@vVv_kenshi_vVvです!
消費税取得処理へ負数を使用すると端数処理が反転する。
対象コードを一部抜粋
ファイルパス:src/Eccube/Service/PurchaseFlow/Processor/TaxProcessor.php
PHP
<?php
// 税込表示の場合は, priceが税込金額のため割り戻す.
if ($item->getTaxDisplayType()->getId() == TaxDisplayType::INCLUDED) {
$tax = $this->taxRuleService->calcTaxIncluded(
$item->getPrice(), $item->getTaxRate(), $item->getRoundingType()->getId(),
$item->getTaxAdjust());
} else {
$tax = $this->taxRuleService->calcTax(
$item->getPrice(), $item->getTaxRate(), $item->getRoundingType()->getId(),
$item->getTaxAdjust());
}
端数を切り捨てにしている場合は、第三引数をnullにして繰切り上げにすれば良い
PHP
<?php
// 税込表示の場合は, priceが税込金額のため割り戻す.
if ($item->getTaxDisplayType()->getId() == TaxDisplayType::INCLUDED) {
$tax = $this->taxRuleService->calcTaxIncluded(
$item->getPrice(), $item->getTaxRate(), null,
$item->getTaxAdjust());
} else {
$tax = $this->taxRuleService->calcTax(
$item->getPrice(), $item->getTaxRate(), null,
$item->getTaxAdjust());
}