Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
RegulationPrice example
private
function
calculateRegulationPrice
(
QuantityPriceDefinition
$definition
, CashRoundingConfig
$config
)
: ?RegulationPrice
{
$regulationPrice
=
$definition
->
getRegulationPrice
(
)
;
if
(
!
$regulationPrice
)
{
return
null;
}
if
(
!
$definition
->
isCalculated
(
)
)
{
$regulationPrice
=
$this
->
round
(
$regulationPrice
,
$config
)
;
}
return
new
RegulationPrice
(
$regulationPrice
)
;
}
private
function
calculateReferencePrice
(
float
$price
, ?ReferencePriceDefinition
$definition
, CashRoundingConfig
$config
)
: ?ReferencePrice
{
if
(
!
$definition
)
{
return
null;
}
if
(
$definition
->
getPurchaseUnit
(
)
<= 0 ||
$definition
->
getReferenceUnit
(
)
<= 0
)
{
return
null;
}
public
static
function
regulationPriceCalculationProvider
(
)
: \Generator
{
yield
'test calculation without reference price' =>
[
null,
null,
]
;
yield
'test calculation with reference price' =>
[
100,
new
RegulationPrice
(
100
)
,
]
;
}
}
public
static
function
regulationPriceCalculationProvider
(
)
: \Generator
{
yield
'test calculation without reference price' =>
[
null,
null,
]
;
yield
'test calculation with reference price' =>
[
100,
new
RegulationPrice
(
100
)
,
]
;
}
}
if
(
!
$definition
->
isCalculated
(
)
)
{
$price
=
$this
->taxCalculator->
calculateGross
(
$price
,
$definition
->
getTaxRules
(
)
)
;
}
$regulationPrice
=
$this
->priceRounding->
cashRound
(
$price
,
$config
)
;
return
new
RegulationPrice
(
$regulationPrice
)
;
}
private
function
calculateReferencePrice
(
float
$price
, ?ReferencePriceDefinition
$definition
, CashRoundingConfig
$config
)
: ?ReferencePrice
{
if
(
!
$definition
)
{
return
null;
}
if
(
$definition
->
getPurchaseUnit
(
)
<= 0 ||
$definition
->
getReferenceUnit
(
)
<= 0
)
{
return
null;
}