commerce_api-8.x-1.x-dev/src/Plugin/DataType/Adjustment.php
src/Plugin/DataType/Adjustment.php
<?php
declare(strict_types=1);
namespace Drupal\commerce_api\Plugin\DataType;
use Drupal\commerce_price\Price as PriceValueObject;
use Drupal\Core\TypedData\Plugin\DataType\Map;
/**
* @DataType(
* id = "adjustment",
* label = @Translation("Adjustment"),
* description = @Translation("Adjustment."),
* definition_class = "\Drupal\commerce_api\TypedData\AdjustmentDataDefinition"
* )
*/
final class Adjustment extends Map {
/**
* The value.
*
* @var array
*
* @note ::getValue() assumes the `value` property, but it doesn't exist.
*/
protected $value = [];
/**
* {@inheritdoc}
*/
public function setValue($values, $notify = TRUE) {
foreach ($values as $key => $value) {
if ($value instanceof PriceValueObject) {
$values[$key] = $value->toArray();
}
}
if (!isset($values['total'])) {
$values['total'] = $values['amount'];
}
parent::setValue($values, $notify);
}
}
