# -*- coding: utf-8 -*- from decimal import Decimal from . import consts def get_nds(key): """Берет значение НДС по ключу key.""" return consts.NDS_VALUE_NUMERIC.get(key, Decimal(0)) def extract_nds(obj): """Если НДС содержится в цене, извлекает и возвращает его.""" nds = Decimal('0.00') return nds def calc_clean_price(obj): """Считает цену без НДС.""" return obj.price - extract_nds(obj) def calc_clean_total_price(obj): """Считает стоимость без налога.""" return calc_clean_price(obj) * obj.qty def calc_total_nds(obj): """Считает сумму налога.""" total_price = obj.price * obj.qty nds_rate = get_nds(obj.parent.nds_value)/100 total_nds = total_price * nds_rate return total_nds def calc_full_total_price(obj): """Считает стоимость с налогом.""" return calc_total_nds(obj) + calc_clean_total_price(obj)