commerce-vuex
Version:
Commerce vuex module
234 lines (220 loc) • 8.27 kB
JavaScript
export const isoStringToNormalDate = (date) => {
const newDateTime = Date.parse(date)
return new Date(newDateTime)
}
export const dateTimeFormate = (date) => {
if (typeof date === 'string') {
let newDateTime = Date.parse(date);
let dateTime = new Date(newDateTime);
let timeString = dateTime.getHours().toString().padStart(2, '0') + ':' +
dateTime.getMinutes().toString().padStart(2, '0');
return [timeString, dateTime.toISOString().substr(0, 10)]
} else {
return []
}
}
export const setSizesRangeGroups = (sizeRange, sizes) => {
if (sizes.length > 0) {
let regexp = /^\d+$/;
let list = []
for (let i = 0; i < sizes.length; i++) {
let name = regexp.test(sizes[i]) || !isNaN(sizes[i]) ? parseFloat(sizes[i]) : sizes[i]
list.push({ name: name, group: sizeRange })
}
return list
}
}
export const addressesFormate = (obj, flag) => {
if (flag === 'billing' && obj)
return { 'line': obj.bLine, 'postcode': obj.bPostcode, 'city': obj.bCity, 'country': obj.bCountry, 'countryIso3': obj.bCountryIso3 }
if (flag === 'shipping'&& obj)
return { 'line': obj.sLine, 'postcode': obj.sPostcode, 'city': obj.sCity, 'country': obj.sCountry, 'countryIso3': obj.sCountryIso3 }
}
export const customAddressesFormate = (obj, flag) => {
if (flag === 'billing' && obj)
return { 'bLine': obj.line, 'bPostcode': obj.postcode, 'bCity': obj.city, 'bCountry': obj.country, 'bCountryIso3': obj.countryIso3 }
if (flag === 'shipping'&& obj)
return { 'sLine': obj.line, 'sPostcode': obj.postcode, 'sCity': obj.city, 'sCountry': obj.country, 'sCountryIso3': obj.countryIso3 }
}
export const billingAsShippingAddress = (obj, flag) => {
if(flag ==='shipping' && obj)
return {"sLine": obj.bLine, "sPostcode": obj.bPostcode, "sCity": obj.bCity, "sCountry": obj.bCountry, "sCountryIso3": obj.bCountryIso3 }
}
export const setPriceMap = (priceArray) => {
if(priceArray && priceArray.length){
const pricerMap = {}
for (let i = 0; i < priceArray.length; i++) {
const obj = priceArray[i]
if(obj.orderCcy && obj.price)
pricerMap[obj.orderCcy.toUpperCase()] = Number(obj.price)
}
return pricerMap
}
return null
}
export const retrievedPriceMap = (priceMap) => {
if(priceMap && Object.keys(priceMap).length){
const priceMapInArray = []
Object.keys(priceMap).filter((key) => {
priceMapInArray.push({
orderCcy: key.toUpperCase(),
price: priceMap[key]
})
})
return priceMapInArray
}
return [{ orderCcy: '', price: '' }]
}
export const JSONToURLEncoded = (element,key,mainList) => {
let list = mainList || [];
if(typeof(element)=='object'){
for (let idx in element)
JSONToURLEncoded(element[idx],key?key+'['+idx+']':idx,list);
} else {
list.push(key+'='+encodeURIComponent(element));
}
return list.join('&');
}
export const otherPaymentTermsList = [
'Payment on order confirmation',
'Payment before first delivery',
'Payment after last delivery'
]
export const updateTermsList=(paymentTermsList)=>{
let copyList=paymentTermsList
for (let i=0; i< paymentTermsList.length;i++ ){
if(paymentTermsList[i] && paymentTermsList[i].termsList){
paymentTermsList[i].termsList=[]
}
// if(paymentTermsList.length === 1){
// let termsList=otherPaymentTermsList
// paymentTermsList[i]["termsList"]=termsList
// }else if(paymentTermsList.length === 2){
for(let j=0; j< copyList.length;j++){
if(paymentTermsList[i].type !== copyList[j].type && paymentTermsList.length !== otherPaymentTermsList.length){
let termsList=otherPaymentTermsList.filter((item)=> item !== copyList[j].type)
paymentTermsList[i]["termsList"]=termsList
}else if((paymentTermsList[i].termsList === undefined || paymentTermsList[i].termsList.length === 0 )&& paymentTermsList.length !== otherPaymentTermsList.length){
paymentTermsList[i]["termsList"]=otherPaymentTermsList
}else if(paymentTermsList.length === otherPaymentTermsList.length){
let termsList=[paymentTermsList[i].type]
paymentTermsList[i]["termsList"]=termsList
}
}
// }else{
// let termsList=[paymentTermsList[i].type]
// paymentTermsList[i]["termsList"]=termsList
// }
}
return paymentTermsList
}
export const getPaymentTypesInObj = (data) => {
let obj = {
};
for (let i = 0; i < data.length; i++) {
if (data[i].type === "Payment on order confirmation" && data[i].paid) {
obj["on_order_confirmation"]={}
obj["on_order_confirmation"]["percentage"] = data[i].paid;
//obj.on_order_confirmation.net_payment_days = data[i].days;
}
if (data[i].type === "Payment before first delivery" && data[i].paid) {
obj["before_first_delivery"]={}
obj["before_first_delivery"]["percentage"] = data[i].paid;
obj["before_first_delivery"]["net_payment_days"] = data[i].days;
}
if (data[i].type === "Payment after last delivery" && data[i].paid) {
obj["after_last_delivery"]={}
obj["after_last_delivery"]["percentage"] = data[i].paid;
obj["after_last_delivery"]["net_payment_days"] = data[i].days;
}
}
return obj;
};
export const getPaymentTypesInArray = (pmtObjs) => {
let paymentOptions = [];
//to sort payment terms as per required - confrimation, before, after
let data = {};
let sortedKeys = Object.keys(pmtObjs).sort().reverse();
sortedKeys.filter((key) => {
data[key] = pmtObjs[key];
});
Object.keys(data).forEach((key) => {
let paymentObj = { type: "", paid: 0, days: 0 };
let flag = false;
if (data[key]) {
Object.keys(data[key]).forEach((v) => {
let val = data[key][v];
if (key === "afterLastDelivery" && val !== null) {
flag = true;
paymentObj.type = "Payment after last delivery";
if (v === "percentage") {
paymentObj.paid = data[key][v];
} else {
paymentObj.days = data[key][v];
}
}
// if (key === "afterFirstDelivery" && val !== null) {
// flag = true;
// paymentObj.type = "Payment after first delivery";
// if (v === "percentage") {
// paymentObj.paid = data[key][v];
// } else {
// paymentObj.days = data[key][v];
// }
// }
// if (key === "afterEachDelivery" && val !== null) {
// flag = true;
// paymentObj.type = "Payment after each delivery";
// if (v === "percentage") {
// paymentObj.paid = data[key][v];
// } else {
// paymentObj.days = data[key][v];
// }
// }
if (key === "beforeFirstDelivery" && val !== null) {
flag = true;
paymentObj.type = "Payment before first delivery";
if (v === "percentage") {
paymentObj.paid = data[key][v];
} else {
paymentObj.days = data[key][v];
}
}
// if (key === "beforeEachDelivery" && val !== null) {
// flag = true;
// paymentObj.type = "Payment before each delivery";
// if (v === "percentage") {
// paymentObj.paid = data[key][v];
// } else {
// paymentObj.days = data[key][v];
// }
// }
// if (key === "beforeLastDelivery" && val !== null) {
// flag = true;
// paymentObj.type = "Payment before last delivery";
// if (v === "percentage") {
// paymentObj.paid = data[key][v];
// } else {
// paymentObj.days = data[key][v];
// }
// }
if (key === "onOrderConfirmation" && val !== null) {
flag = true;
paymentObj.type = "Payment on order confirmation";
if (v === "percentage") {
paymentObj.paid = data[key][v];
} else {
paymentObj.days = data[key][v];
}
}
});
}
if (flag) {
paymentOptions.push(paymentObj);
}
if(paymentOptions.length === 0){
paymentOptions = [{ type: 'Payment on order confirmation', paid: 30},{ type: 'Payment after last delivery', paid: 70,days: 0 }]
}
});
return paymentOptions;
};