Files
api2/api/models/price_adjustments.py

35 lines
995 B
Python

# coding=UTF-8
from api.extensions import db
from api.lib.utils import lru_with_ttl
@lru_with_ttl(ttl_seconds=3600)
def get_adjustment_config():
sql = """
select
material, product_type, markets.name, price_adjustments.value
from
price_adjustments
join "product-materials" on material_id = materialid
join markets on market_id = markets.id
"""
result = db.session.execute(sql)
rows = result.fetchall()
config = {}
for row in rows:
[material, product_type, market, value] = row
if material not in config:
config[material] = {}
if product_type not in config[material]:
config[material][product_type] = {}
config[material][product_type][market] = float(value)
return config
def get_price_adjustment(market, material, product_type):
config = get_adjustment_config()
return config.get(material, {}).get(product_type, {}).get(market, 1.0)