protected function createPercentAdjustment(
        Model\AdjustmentInterface $data,
        float $base,
        string $currency
    ): Adjustment {
        $this->assertAdjustmentMode($data, Model\AdjustmentModes::MODE_PERCENT);

        $rate = (float)$data->getAmount();

        if ($data->getType() === Model\AdjustmentTypes::TYPE_TAXATION) {
            // Calculate taxation as ATI - NET
            $amount = Money::round($base * (1 + $rate / 100), $currency) - Money::round($base, $currency);
        } else {
            $amount = Money::round($base * $rate / 100, $currency);
        }

        return new Adjustment((string)$data->getDesignation(), $amount, $rate);
    }
protected function createPercentAdjustment(
        Model\AdjustmentInterface $data,
        float $base,
        string $currency
    ): Adjustment {
        $this->assertAdjustmentMode($data, Model\AdjustmentModes::MODE_PERCENT);

        $rate = (float)$data->getAmount();

        if ($data->getType() === Model\AdjustmentTypes::TYPE_TAXATION) {
            // Calculate taxation as ATI - NET
            $amount = Money::round($base * (1 + $rate / 100), $currency) - Money::round($base, $currency);
        } else {
            $amount = Money::round($base * $rate / 100, $currency);
        }

        return new Adjustment((string)$data->getDesignation(), $amount, $rate);
    }
protected function createPercentAdjustment ( Model \ AdjustmentInterface $ data , float $ base , string $ currency ) : Adjustment { $ this -> assertAdjustmentMode ( $ data , Model \ AdjustmentModes :: MODE_PERCENT ) ; $ rate = ( float ) $ data -> getAmount ( ) ; if ( $ data -> getType ( ) === Model \ AdjustmentTypes :: TYPE_TAXATION ) { // Calculate taxation as ATI - NET $ amount = Money :: round ( $ base * ( 1 + $ rate / 100 ) , $ currency ) - Money :: round ( $ base , $ currency ) ; } else { $ amount = Money :: round ( $ base * $ rate / 100 , $ currency ) ; } return new Adjustment ( ( string ) $ data -> getDesignation ( ) , $ amount , $ rate ) ; }
Creates a new result adjustment.

@param Model\AdjustmentInterface $data
@param float                     $base
@param string                    $currency

@return Adjustment
Creates a new result adjustment .