Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / utils / priceSplitter.js
Size: Mime:
"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;