Repository URL to install this package:
|
Version:
1.2.8 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.transformPrice = transformPrice;
exports.regPrice = regPrice;
exports.salePrice = salePrice;
exports.setPriceData = setPriceData;
exports.default = void 0;
var _exotic = require("../exotic");
/**
* @deprecated - use Money
*/
/**
* @version -1 named "initprice"
*/
function transformPrice(pricing) {
if (!(0, _exotic.isObj)(pricing)) {
pricing = _exotic.EMPTY_OBJ;
}
let salePrices = {};
let regPrices = {};
const currencyCode = pricing.currencyCode || '$';
if (pricing.prices) {
for (let job = 0; job < pricing.prices.length; job++) {
let priceData = pricing.prices[job];
if (priceData.type === 'Sale') {
salePrices = Object.assign(salePrices, salePrice(priceData));
} else if (priceData.type === 'Reg') {
regPrices = Object.assign(regPrices, regPrice(priceData));
}
}
}
return setPriceData(salePrices, regPrices, currencyCode);
} // @TODO use indexBy('label', 'value') to access in this remap
// @see catalog/product/index get regPrice()
function regPrice(priceData) {
if (!priceData) {
return '@todo';
}
const price = {};
priceData.value = parseFloat(priceData.value);
priceData.value = priceData.value.toFixed(2);
if (priceData.ismin === 'true') {
price.minReg = priceData.value;
} else if (priceData.ismax === 'true') {
price.maxReg = priceData.value;
}
price.reg = priceData.value;
return price;
} // @see catalog/product/index get salePrice()
function salePrice(priceData) {
if (!priceData) {
return '@todo';
}
const price = {};
priceData.value = parseFloat(priceData.value);
priceData.value = priceData.value.toFixed(2);
if (priceData.ismin === 'true') {
price.minSale = priceData.value;
} else if (priceData.ismax === 'true') {
price.maxSale = priceData.value;
}
price.sale = priceData.value;
return price;
}
function setPriceData(salePrices, regPrices, currencyCode) {
let price = {};
if (salePrices) {
if (salePrices.minSale && salePrices.maxSale) {
price.sale = currencyCode + salePrices.maxSale + ' - ' + currencyCode + salePrices.minSale;
} else if (salePrices.sale) {
price.sale = currencyCode + salePrices.sale;
}
}
if (regPrices) {
if (regPrices.minReg && regPrices.maxReg) {
price.reg = currencyCode + regPrices.maxReg + ' - ' + currencyCode + regPrices.minReg;
} else if (regPrices.reg) {
price.reg = currencyCode + regPrices.reg;
}
}
price.reg = price.sale === price.reg ? null : price.reg;
price.sale = price.sale ? price.sale : price.reg;
price.reg = price.sale ? price.reg : null;
return price;
}
var _default = transformPrice;
exports.default = _default;