PHP

Вычисления с ценами на PHP

В статье представлены некоторые операции над ценами.

1

Наценки и скидки

10% от цены

$price = 1000;
echo $price * 10 / 100;

Результат:

100

Увеличение цены на 10%

$price = 1000;

// Вариант 1
echo $price * 1.10;

// Вариант 2
echo $price + ($price * 10 / 100);

Результат:

1100

Уменьшение цены на 10%

$price = 1000;

// Вариант 1
echo $price * 0.90;

// Вариант 2
echo $price - ($price * 10 / 100);

Результат:

900

Для удобства можно использовать функции:

// Наценка
function markup($price, $percent)
{
    return $price + ($price * $percent / 100);
}

// Скидка
function sale($price, $percent)
{
    return $price - ($price * $percent / 100);
}
2

Средняя закупочная или продажная цена

Если речь идет о закупках/продажах одного товара по разным ценам и разным количеством подойдет средняя арифметическая взвешенная величина.

В примере имеется массив $prods с количеством и ценами за единицу товара, вычеслим среднюю арифметическую сумму всех поступлений, потом среднюю арифметическую по каждому приходу и разделим на общее количество товаров.

$prods = array(
    array(
        'price' => 58.4,
        'count' => 10
    ),
    array(
        'price' => 59,
        'count' => 5
    ),
    array(
        'price' => 56,
        'count' => 3
    ),
);

$p = $c = 0;
foreach ($prods as $row) {
    $p += $row['price'] * $row['count'];
    $c += $row['count'];
}

echo $p / $c;

Результат:

58.16
3

Прибыльность за одну единицу товара

Имеем два массива $coming - поступление товара на склад, $sales - продажи. Из них вычислим средние цены закупки и продажи. Разность этих цен и будет прибыльность за единицу товара.

// Поступление на склад:
$coming = array(
    array(
        'price' => 100,
        'count' => 5
    ),
    array(
        'price' => 110,
        'count' => 2
    ),
    array(
        'price' => 105,
        'count' => 3
    ),
);

// Продажи:
$sales = array(
    array(
        'price' => 120,
        'count' => 3
    ),
    array(
        'price' => 121,
        'count' => 2
    ),
    array(
        'price' => 130,
        'count' => 1
    ),
);

// Средняя арифметическая поступлений.
$p = $c = 0;
foreach ($coming as $row) {
    $p += $row['count'] * $row['price']; 
    $c += $row['count'];
}
$coming_price = $p / $c;

// Средняя арифметическая продаж.
$p = $c = 0;
foreach ($sales as $row) {
    $p += $row['count'] * $row['price']; 
    $c += $row['count'];
}
$sales_price = $p / $c;

// Прибыльность товара:
$total = $sales_price - $coming_price;
echo $total;

Результат:

18.5
15 марта 2018