Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ PostgreSQL Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π½ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ
ΠΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π°ΡΠ΅Π½ΠΊΠΈ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π½Π΅ ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ ΡΠ΅Π½ ΠΈ Π½Π°ΡΠ΅Π½ΠΎΠΊ. ΠΠΊΡΡΠ³Π»ΡΠ΅Ρ Π΄ΠΎ 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