Показать сообщение отдельно
  #12 (permalink)  
Старый 20.06.2016, 17:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А сразу указывать с НДС цену товара что нельзя?

Если надо, ну так у вас во-первых не строка, а объект, свойства которого вы получаете: this.DATA[idkey].num, this.DATA[idkey].price и т.д., ну какие проблемы получить НДС - this.DATA[idkey].nds.

Во-вторых проценты НДС, это часть от 100, и 18% нужно записывать не как 18, а как .18 или 0.18. Коли прописываете этот объект руками, то записывать можно так (числа совсем не обязательно обрамлять кавычками, как и имена свойств объекта)

var priceList = {
    "001" : {id : "001", subid : {}, name : "IPhone 5", subname : {}, nds : .18, price : 100},
    "002" : {id : "002", subid : {}, name : "IPad MINI", subname : {}, nds : .14, price : 200}
    };


Но не зависимо от того с этого ли объекта берутся свойства или уже из локального хранилища после JSON.parse, parseInt и parseFloat не нужен в расчетах. Собственно и id : "001" в объекте тоже не нужен, он и так прописан как свойство объекта priceList.

Вот только на изображении корзины надо полагать Всего, это за каждый товар, а значит эта цена должна быть с НДС, а итоговая сумма, это не

sum += parseFloat(parseInt(this.DATA[idkey].num) * parseFloat(this.DATA[idkey].price));

а сумма всех "Всего" за каждый товар. То есть при выводе таблицы корзины считаем Всего для каждого товара:

var tot = this.DATA[idkey].price * this.DATA[idkey].num + this.DATA[idkey].price * this.DATA[idkey].nds;  

sum += tot;
Ответить с цитированием