Skip to content

Latest commit

 

History

History
37 lines (31 loc) · 1.44 KB

README.md

File metadata and controls

37 lines (31 loc) · 1.44 KB

Расширение PostgreSQL с функцией вычисления наценки методом линейной интерполяции

price_modifiers._calculate_markup(price numeric, markups numeric[])

Вычисляет процент наценки по заданной цене и заданной схеме цен и наценок. Округляет до 2 знаков результат.

  • price - цена, на которую нужно вычислить наценку
  • markups - наценки, отсортированные в порядке убывания price. Как массив из пар (цена;наценка)

Способ установки

make
make install
make installcheck
psql -c 'create extension calculate_markup'

Примеры

цена находится между первым и вторым элементом:

SELECT price_modifiers._calculate_markup(75000, '{{100000,7.0},{50000,8.0},{10000,10.0},{1000,12.0},{100,22.0},{0,22.0}}'::numeric[]);
--
7.50

цена находится на 4-м элементе:

SELECT price_modifiers.c_calculate_markup(1000, '{{100000,7.0},{50000,8.0},{10000,10.0},{1000,12.0},{100,22.0},{0,22.0}}'::numeric[]);
--
12.0

цена выше, чем у первого элемента:

SELECT price_modifiers.c_calculate_markup(150000, '{{100000,7.0},{50000,8.0},{10000,10.0},{1000,12.0},{100,22.0},{0,22.0}}'::numeric[]);
--
7.0