carget
Version:
optimization js code for carget website
109 lines (90 loc) • 3.48 kB
JavaScript
// ОБНОВЛЕНИЕ ЧЕКА
async function updateCheck() {
totalSaleCheck() // Предполагается, что totalSaleCheck() возвращает числовое значение скидки
checkDopOtionShow()
checkDopOptions()
if (saleAll && saleAll !== 0) {
;(discountCheck.style.display = 'flex'),
(priceItemDiscount.style.display = 'flex')
} else {
;(discountCheck.style.display = 'none'),
(priceItemDiscount.style.display = 'none')
}
await sumCarPrices(updatedCarState, myPriceModels)
totalpriceElements.forEach((e) => {
e.innerHTML = numberWithSpaces(sumCarPrices(carState, myPriceModels))
})
// Вставляем выбранные цвета, диски и салон В ЧЕК
colorKuzovaElements.forEach((element) => {
element.textContent = carState.options.color[1]
})
colorSalonaElements.forEach((element) => {
element.textContent = carState.options.interiorColor[1]
})
diskElements.forEach((element) => {
element.textContent = `${carState.options.wheels[1]}`
})
priceColorElements.forEach((element) => {
element.textContent = ` ${numberWithSpaces(carState.options.color[0])} руб.`
})
priceColorSalonElements.forEach((element) => {
element.textContent = `${numberWithSpaces(
carState.options.interiorColor[0]
)} руб.`
})
priceDiskElements.forEach((element) => {
element.textContent = ` ${numberWithSpaces(
carState.options.wheels[0]
)} руб.`
})
// Вычисляем и вставляем общую скидку
totalSaleCarElements.forEach((element) => {
element.innerHTML =
saleAll === 0 || saleAll === null || saleAll === undefined
? 'Нет'
: `${saleAll} руб.`
})
// Вычисляем и вставляем общую стоимость
totalPriceCarElements.forEach((element) => {
element.textContent = `${numberWithSpaces(
sumCarPrices(carState, myPriceModels)
)} руб.`
})
}
const totalSaleCheck = () => {
// Сумма скидок для выбранной модели
const model = carState.models.find((model) => model[carState.model[1]])?.[
carState.model[1]
]
const modelDiscount = model && model.hasOwnProperty('sale') ? model.sale : 0
// Сумма скидок для выбранного цвета
const colorDiscount =
carState.options.color[2].find(
(option) =>
option.color === carState.options.color[1] &&
option.hasOwnProperty('sale')
)?.sale || 0
// Сумма скидок для выбранных колес
const wheelDiscount =
carState.options.wheels[2].find(
(wheel) => wheel.color === carState.options.wheels[1]
)?.sale || 0
// Сумма скидок для выбранного цвета салона
const interiorColorDiscount =
carState.options.interiorColor[2].find(
(option) => option.color === carState.options.interiorColor[1]
)?.sale || 0
const runningBoardsDiscount = carState.options.runningBoards[0]
.filter((option) => option.show && option.hasOwnProperty('sale'))
.reduce((totalDiscount, option) => totalDiscount + (option.sale || 0), 0)
// Общая сумма всех скидок
const totalDiscount =
modelDiscount +
colorDiscount +
wheelDiscount +
interiorColorDiscount +
runningBoardsDiscount
saleAll = totalDiscount
return totalDiscount
}
export { updateCheck, totalSaleCheck }