Автоматический расчет цены со скидкой

Задача простая, вводить в TV ресурса цену только розницы, а при сохранении ресурса, в соответствующие TV должны проставляться цены со скидкой. В данном случае поля называются price10, price20 и price30

<?php
switch ($modx->event->name) {
//Проверяем событие
    case 'OnDocFormSave':{
        $price = array();
//Получаем текущий ресурс
        $res = $modx->getObject('modResource', $id);
//Получаем цену розницы из TV с именем "Price", заодно убираем все пробелы из числа.
        $price = str_replace(" ", "", $res->getTVValue('Price'));
//Создаем массив со скидками и округляем цены
        $prices[10] = ceil($price*0.9); //-10%
        $prices[20] = ceil($price*0.8); //-20%
        $prices[30] = ceil($price*0.7); //-30%
        //Назначаем TV полям цены со скидками
        foreach ($prices as $key=>$price){
            (empty($res->getTVValue("Price".$key))) ? $res->setTVValue("Price".$key, $price) : '';
        }
    break;
    }
}