Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   ввести переменную и сделать ее вывод. (https://javascript.ru/forum/jquery/63635-vvesti-peremennuyu-i-sdelat-ee-vyvod.html)

Meattale 20.06.2016 16:25

Дело все в том, что задать значение в строке товаров нужно потому, что ндс не всегда 18 процентов. И получается чтобы для каждого товара выводило инфу сколько ндс в процентах, следом сумму ндс от цены и далее ндс от цены + итого цена за товар.
Проблема именно в том, чтобы ввести переменную и заставить ее выводиться из строки
var priceList = {
	"001" : {"id" : "001", "subid" : {}, "name" : "IPhone 5", "subname" : {}, "nds" : "18", "price" : "100"},
	"002" : {"id" : "002", "subid" : {}, "name" : "IPad MINI", "subname" : {}, "price" : "200"}
	};

laimas 20.06.2016 17:33

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

Если надо, ну так у вас во-первых не строка, а объект, свойства которого вы получаете: 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;

Meattale 20.06.2016 18:46

laimas,
Вот это уже более похоже на то, что мне нужно.
Дело в том, я не совсем понимаю что куда в данном случае вставить или что где объявить. Если не сложно - можно "на пальцах"
Цитата:

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

там всего это именно за этот товар. Итого по счету подводится внизу.

laimas 21.06.2016 05:03

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

laimas 22.06.2016 12:41

Meattale,

исправлено, цена набранного товара должно быть:

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


Часовой пояс GMT +3, время: 12:17.