wholesale-vuex
Version:
Commerce vuex module
1,069 lines (1,002 loc) • 39.7 kB
JavaScript
export const getPaymentTypesInObj = (data) => {
let obj = {
on_order_confirmation: { },
before_delivery: { },
after_delivery: { }
}
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;
}
// if (data[i].type === 'Payment on order confirmation' && data[i].paid ) {
// obj.on_order_confirmation.percentage = data[i].paid
// obj.on_order_confirmation.net_payment_days = data[i].days
// }
// if (data[i].type === 'Payment before delivery' && data[i].paid ) {
// obj.before_delivery.percentage = data[i].paid
// obj.before_delivery.net_payment_days = data[i].days
// }
// if (data[i].type === 'Payment after delivery' && data[i].paid ) {
// obj.after_delivery.percentage = data[i].paid
// obj.after_delivery.net_payment_days = data[i].days
// }
}
// Object.keys(obj.on_order_confirmation).length === 0 ? obj.on_order_confirmation=null : obj.on_order_confirmation
// Object.keys(obj.before_delivery).length === 0 ? obj.before_delivery=null : obj.before_delivery
// Object.keys(obj.after_delivery).length === 0 ? obj.after_delivery=null : obj.after_delivery
return obj
}
/*export const getPaymentTypesInArray = (data) => {
let paymentOptions = []
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 === "afterDelivery" && val !== null) {
flag = true
paymentObj.type = 'Payment after delivery'
if (v === "percentage") {
paymentObj.paid = data[key][v]
} else {
paymentObj.days = data[key][v]
}
}
if (key === "beforeDelivery" && val !== null) {
flag = true
paymentObj.type = 'Payment before 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)
})
return paymentOptions
}*/
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 === "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 === "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 (key === "afterDelivery" && 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 === "beforeDelivery" && 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 === "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);
}
});
return paymentOptions;
};
export const checkExistOrNot = ({ oneVariantsObj, variantsList, type }) => {
let newArray = [];
if(oneVariantsObj){
oneVariantsObj.filter((item) => {
let checkExist = false;
variantsList.filter((variant) => {
if (item == variant[type]) {
checkExist = true;
}
});
if (!checkExist) {
newArray.push(item);
}
});
}
return newArray;
};
export const questionsList =[
{
'stepName': 'verify_order_details',
'userId': '',
'createdAt': '',
'modifyedAt': '',
'list': [
{
"app_id": "asht",
"wholesale_order_id": "",
"io_context": "{}",
"io_name": "order_shipping_address",
"io_input": {'order_has_shipping_address':null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
"sub_question":[
{
"app_id": "asht",
"wholesale_order_id": "",
"io_context": "{}",
"io_name": "order_shipping_address_matches",
"io_input": {shipping_address:{line:null, city:null, postcode:null,country: null,countryIso3: null}},
"io_output": {'match':false,value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
}
]
},
{
"app_id": "asht",
"wholesale_order_id": "",
"io_context": "{}",
"io_name": "order_billing_address",
"io_input": {'order_has_billing_address':null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
"sub_question":[
{
"app_id": "asht",
"wholesale_order_id": "",
"io_context": "{}",
"io_name": "order_billing_address_matches",
"io_input": {billing_address:{line:null, city:null, postcode:null,country: null,countryIso3 : null}},
"io_output": {'match':false,value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
}
]
},
{
"app_id": "asht",
"io_name": "po_number",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'po_number': null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
{
"app_id": "asht",
"io_name": "order_currency",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'currency': null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
{
"app_id": "asht",
"io_name": "shipping_cost",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'shipping_cost': null,'currency': null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
{
"app_id": "asht",
"io_name": "order_discount",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'total_amount':0,'discount_amount': 0,'discount_percentage': 0},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
{
"app_id": "asht",
"io_name": "order_detailed_data",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'order_detailed_data_by_sku': false,'order_detailed_data_by_vairants': false},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
{
"app_id": "asht",
"io_name": "info_on_order_documents",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'sku_stock_keeping': null,'sku_quantity_ordered': null,'sku_item_unit_price': null,'item_code': null,'item_name': null,'item_unit_price': null,'size_color': null,'quantity_ordered': null},
"io_output": {'order_detailed_data_by_sku': false,'order_detailed_data_by_vairants': false,'info_on_order_documents':null,value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
/* {
"app_id": "asht",
"io_name": "order_items_list",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'order_items_list':null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},*/
/*{
"app_id": "asht",
"io_name": "order_detailed_data",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'sku_stock_keeping': false,'sku_quantity_ordered': false,'sku_item_wholesale': false,'item_code': false,'item_name': false,'unite_price': false,'size_color': false,'quantity_ordered': false},
"io_output": {'order_detailed_data_by_sku': false,'order_detailed_data_by_vairants': false,value:{'sku_stock_keeping': false,'sku_quantity_ordered': false,'sku_item_wholesale': false,'item_code': false,'item_name': false,'unite_price': false,'size_color': false,'quantity_ordered': false}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},*/
/*{
'question': 'Does the document have an invoice number ?',
'name': 'invoice_number',
'oldAns': {
'invoiceNumber': null
},
'newAns': {
'invoiceNumber': null
},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Are there any shipping costs ?',
'name': 'shipping_cost',
'oldAns': {
'shippingCost': null,
'currency': null
},
'newAns': {
'shippingCost': null,
'currency': null
},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Is there any discount on the total value of the order ?',
'name': 'discount',
'total_amount':0,
'oldAns': {
'discountValue': 77,
'discountPercentage': 10
},
'newAns': {
'discountValue': 0,
'discountPercentage': 0
},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Are there any currency specified on the order?',
'name': 'currency',
'oldAns': {
'currency': null
},
'newAns': {
'currency': null
},
'type': 'yesNo',
'isModify': false
},
{
'question': 'How detailed is the data on the order ?',
'name':'detailed_data',
'oldAns':'SKU by SKU',
'newAns': '',
'type': '', //sku / variants
'button1Text': 'We have SKUs (Stock Keeping Unit)',
'button2Text': 'We have items codes with variants (like size & color)',
'isModify': false
},
{
'question': 'Are the below information available on the document?',
'name': 'info_on_documents',
'oldAns': {},
'newAns': {},
'type': 'option',
'isModify': false,
'subQuestion': [
{
'question': 'SKU (Stock Keeping Unit)',
'name':'sku_stock_keeping',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Quantity ordered',
'name':'sku_quantity_ordered',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Item wholesale (or unit) price',
'name':'sku_item_wholesale',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Item reference or item code',
'name':'item_code',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Item name',
'name':'item_name',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Item wholesale (or unit) price',
'name':'wholesale_price',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Item size range and / or color',
'name':'size_color',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
},
{
'question': 'Quantity ordered',
'name':'quantity_ordered',
'oldAns': {},
'newAns': {},
'type': 'yesNo',
'isModify': false
}
]
}*/
]
}
]
export const questionsListTest =[
{
'stepName': 'verify_order_details',
'userId': '',
'createdAt': '',
'modifyedAt': '',
'list': [
{
"app_id": "asht",
"io_name": "wholesale_order_brand",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'wholesale_order_brand_match_Confirmation': null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
{
"app_id": "asht",
"io_name": "wholesale_order_shipping_delivery_window",
"wholesale_order_id": "",
"io_context": "",
"io_input": {'wholesale_order_shipping_delivery_window_match_Confirmation': null},
"io_output": {value:{}},
"author_user_id": "",
"is_modify":false,
"user_response":null,
"session_id": "",
},
]
}
]
export const generateDiscrepancyOrderSkuItem = ({ changedItem }) => {
try
{
let orderItemSku = [];
if (changedItem) {
// changedItem.filter((item) => {
let item = changedItem
let newOrderItems = item.changeValues.new;
let oldOrderItems = item.changeValues.old;
if (newOrderItems && oldOrderItems){
if (newOrderItems.format == "sku") {
for (let i = 0; i < newOrderItems.variants.length; i++) {
let skuItem = newOrderItems.variants[i];
Object.keys(skuItem).forEach((key) => {
if (
[
"qty",
"color",
"retailPrice",
"eanCode",
"qtyPacked",
"size",
"sku",
"wholesalePrice",
].includes(key)
) {
// showing only differences in report
if (skuItem[key] !== oldOrderItems.variants[i][key]) {
let change = key == "qty" ? "quantity" : key == "qtyPacked" ? "quantity packed" : key == 'eanCode' ? ' EAN Code' : key;
orderItemSku.push({
change,
new: skuItem[key],
old: oldOrderItems.variants[i][key],
});
}
}
});
}
if (
newOrderItems.shipmentCancelDate !== oldOrderItems.shipmentCancelDate
)
orderItemSku.push({
change: "shipment_cancel_date",
new: newOrderItems.shipmentCancelDate,
old: oldOrderItems.shipmentCancelDate,
});
if (newOrderItems.shipmentStartDate !== oldOrderItems.shipmentStartDate)
orderItemSku.push({
change: "shipment_start_date",
new: newOrderItems.shipmentStartDate,
old: oldOrderItems.shipmentStartDate,
});
}
}
//});
}
return orderItemSku;
} catch (err){
console.log(err)
}
};
// item variants in new and old are present => item-changed
export const generateDiscrepancyOrderItemVarinats = ({ changedItem, newCurrency, oldCurrency }) => {
try
{
let orderItemVariantsSummary = [];
let itemVariants = []
let variantsRefCode = null
let oldVariantsRefCode = null
let changeId = null
let itemId = null;
let itemDetailsDiscrepancy = []
if (changedItem) {
changeId = changedItem.id
// changedItem.filter((item) => {
let item = changedItem
let newOrderItems = item.changeValues.new;
let oldOrderItems = item.changeValues.old;
// for item-changed
if(newOrderItems && oldOrderItems) {
variantsRefCode = newOrderItems.variantsRefCode
oldVariantsRefCode = oldOrderItems.variantsRefCode
itemId = newOrderItems.id
if(newOrderItems.shipmentStartDate !== oldOrderItems.shipmentStartDate){
itemDetailsDiscrepancy.push({
label: 'Shipment start date',
submitted: oldOrderItems.shipmentStartDate,
confirmation: newOrderItems.shipmentStartDate
})
}
if(newOrderItems.shipmentCancelDate !== oldOrderItems.shipmentCancelDate){
itemDetailsDiscrepancy.push({
label: 'Shipment cancel date',
submitted: oldOrderItems.shipmentCancelDate,
confirmation: newOrderItems.shipmentCancelDate
})
}
if(newOrderItems.hsCode !== oldOrderItems.hsCode){
itemDetailsDiscrepancy.push({
label: 'HS Code',
submitted: oldOrderItems.hsCode,
confirmation: newOrderItems.hsCode
})
}
// generating item summary report
// let variantsSummaryArray = {
// total_quantity: {
// new: newOrderItems.quantity,
// old: oldOrderItems.quantity,
// },
// total_wholesale_price: {
// new: newOrderItems.wholesaleValue,
// old: oldOrderItems.wholesaleValue,
// },
// total_retail_price: {
// new: newOrderItems.retailValue,
// old: oldOrderItems.retailValue,
// },
// total_number_of_colors: { new: [], old: [] },
// total_number_of_sizes: { new: [], old: [] },
// shipment_start_date: {
// new: newOrderItems.shipmentStartDate,
// old: oldOrderItems.shipmentStartDate,
// },
// shipment_cancel_date: {
// new: newOrderItems.shipmentCancelDate,
// old: oldOrderItems.shipmentCancelDate,
// },
// };
// generateLablesArray(variantsSummaryArray, newOrderItems, "new");
// generateLablesArray(variantsSummaryArray, oldOrderItems, "old");
// Object.keys(variantsSummaryArray).forEach((key) => {
// // showing only differences in report
// // if(variantsSummaryArray[key]['new'] !== variantsSummaryArray[key]['old']){
// if (["total_number_of_colors", "total_number_of_sizes"].includes(key)) {
// let type = key == "total_number_of_colors" ? "color" : "size";
// let labelForNew = checkIsSame(type, key, variantsSummaryArray);
// orderItemVariantsSummary.push({
// change: key,
// new: labelForNew,
// old: variantsSummaryArray[key]["old"].length,
// });
// } else {
// if (variantsSummaryArray[key]["new"] !== variantsSummaryArray[key]["old"])
// orderItemVariantsSummary.push({
// change: key,
// new: variantsSummaryArray[key]["new"],
// old: variantsSummaryArray[key]["old"],
// });
// }
// // }
// });
// end of generating item summary report
// generating item variants table
let { variants, eanCodeCnt } = generateItemVariants(newOrderItems.variants, oldOrderItems.variants, itemVariants, newCurrency, oldCurrency, { submitted:0, confirmation:0 }, variantsRefCode, oldVariantsRefCode) // new vs. old
let addedVariants = []
if(variants.length && newOrderItems.variants && newOrderItems.variants.length){
for(let o = 0; o < newOrderItems.variants.length; o++ ){
let newItem = newOrderItems.variants[o]
let flag = false
for(let n=0; n < variants.length; n++ ){
let vrnt = variants[n]
// checking duplicate items in filtered array
//newItem.sku == newItem.sku
if(vrnt.category == newItem.category && vrnt.size == newItem.size && vrnt.color == newItem.color){
flag = true
break;
}
}
if(!flag){
if(newItem.eanCode)
eanCodeCnt.confirmation = eanCodeCnt.confirmation + 1
// .toLocaleString('en-US') + ' '+ oldCurrency
addedVariants.push({ sku: variantsRefCode, quantity: { new: newItem.qty, old: 0 }, wholesalePrice: { new: priceFormatter(newItem.wholesalePrice ? newItem.wholesalePrice : 0.00), old: 0 }, retailPrice: { new: priceFormatter(newItem.retailPrice ? newItem.retailPrice : 0.00), old: 0 }, category: newItem.category, size: newItem.size, color: newItem.color, isChanged: true })
}
}
}
// itemVariants = variants
itemVariants.push(variants)
itemVariants.push(addedVariants) // if there are new sku / category, size, color added
if(eanCodeCnt.confirmation > 0 ){
itemDetailsDiscrepancy.push({
label: 'EAN Codes',
submitted: eanCodeCnt.submitted > 0 ? eanCodeCnt.submitted +' EAN codes': '',
confirmation: eanCodeCnt.confirmation > 0 ? eanCodeCnt.confirmation +' new EAN codes added to the ordered items': ''
})
}
// if(variants && variants.length && oldOrderItems.variants && oldOrderItems.variants.length){
// for(let o = 0; o < oldOrderItems.variants.length; o++ ){
// let old = oldOrderItems.variants[o]
// let flag = false
// for(let n=0; n < variants.length; n++ ){
// let newItem = variants[n]
// // checking duplicate items in filtered array
// if(newItem.category == old.category && newItem.size == old.size && newItem.color == old.color){
// flag = true
// break;
// }
// }
// if(!flag){
// variants.push({ sku: old.sku, size: old.size, color: old.color, quantity: { new: 0, old: old.qty }, wholesalePrice: { new: 0, old: priceFormatter(old.wholesalePrice ? old.wholesalePrice : 0.00) }, retailPrice: { new: 0, old: priceFormatter(old.retailPrice ? old.retailPrice : 0.00) },isChanged: true })
// }
// }
// }
// itemVariants = variants
}
// });
}
return { summary: orderItemVariantsSummary, variants: itemVariants, variantsRefCode, changeId, changeItem : changedItem, itemId, itemDetailsDiscrepancy };
} catch (err){
console.log(err)
}
};
export const generateDiscrepancyOrderItemAddedAndRemoved = ({ addedItem, newCurrency, oldCurrency }) => {
try{
let variantsRefCode = null
// let itemAddedForVariants = []
let variants = []
let itemId = null;
let changeId = null
if (addedItem) {
changeId = addedItem.id
// addedItem.filter((item) => {
let item = addedItem
let newOrderItems = item.changeValues.new;
let oldOrderItems = item.changeValues.old;
if(newOrderItems){
variantsRefCode = newOrderItems.variantsRefCode
variants = generateNewItems(newOrderItems.variants, newCurrency, oldCurrency, 'new', variantsRefCode)
itemId = newOrderItems.id
}
//for item-removed
if(oldOrderItems){
variantsRefCode = oldOrderItems.variantsRefCode
variants = generateNewItems(oldOrderItems.variants, newCurrency, oldCurrency, 'old', variantsRefCode)
itemId = oldOrderItems.id
}
// });
}
return { variants: [variants], variantsRefCode, changeId, changeItem : addedItem, itemId }
} catch (err){
console.log(err)
}
}
export const returnOriginalSkuQtyBySku = (variants, type, category , size ,color) =>{
try{
let val = 0
if(variants && variants.length){
variants.filter(item => {
if(category == item.category && size == item.size && color == item.color){
val = item[type]
// val = type == 'qty' ? item.qty : type == 'eanCode' ? item.eanCode : item.qtyPacked
}
})
return val
}
} catch(err){
console.log(err)
}
}
function generateNewItems(items, newCurrency, oldCurrency, type, variantsRefCode){
try{
let variants = []
if(items && items.length){
for(let i=0; i<items.length; i++){
if(type == 'old'){
let old = items[i]
variants.push({ sku: variantsRefCode, size: old.size, color: old.color, quantity: { new: 0, old: old.qty }, wholesalePrice: { new: 0, old: priceFormatter(old.wholesalePrice ? old.wholesalePrice : 0.00) }, retailPrice: { new: 0, old: priceFormatter(old.retailPrice ? old.retailPrice : 0.00) },isChanged: true })
// Object.keys(items[i]).forEach((key) => {
// let lable = key=='qty' ? 'Quantity' : key=='qtyPacked' ? 'Quantity packed' : key=='wholesalePrice' ? 'wholesale Price' : key=='retailPrice' ? ' retail Price' : key=='eanCode' ? ' EAN Code' : key
// let val = ['wholesalePrice', 'retailPrice'].includes(key) ? priceFormatter(items[i][key] ? items[i][key] : 0.00) : items[i][key]
// if(items[i][key]){
// arrayForItems.push({
// change: lable,
// new: '-',
// old: val,
// });
// }
// })
} else {
let newVal = items[i]
variants.push({ sku: variantsRefCode, size: newVal.size, color: newVal.color, quantity: { old: 0, new: newVal.qty }, wholesalePrice: { old: 0, new: priceFormatter(newVal.wholesalePrice ? newVal.wholesalePrice : 0.00) }, retailPrice: { new: 0, new: priceFormatter(newVal.retailPrice ? newVal.retailPrice : 0.00) },isChanged: true })
// Object.keys(items[i]).forEach((key) => {
// let lable = key=='qty' ? 'Quantity' : key=='qtyPacked' ? 'Quantity packed' : key=='wholesalePrice' ? 'wholesale Price' : key=='retailPrice' ? ' retail Price' : key=='eanCode' ? ' EAN Code' : key
// let val = ['wholesalePrice', 'retailPrice'].includes(key) ? priceFormatter(items[i][key]? items[i][key] : 0.00) : items[i][key]
// if(items[i][key]){
// arrayForItems.push({
// change: lable,
// new: val,
// old: '-',
// });
// }
// })
}
}
}
return variants
} catch (err){
console.log(err)
}
}
function generateItemVariants(newItems, oldItems, variants, newCurrency, oldCurrency, eanCodeCnt, variantsRefCode, oldVariantsRefCode) {
try{
variants = JSON.stringify(variants)
variants = JSON.parse(variants)
if(newItems && oldItems){
for(let o = 0; o < oldItems.length; o++ ){
let old = oldItems[o]
let variant = { sku: '', quantity: { new: 0, old: 0 }, wholesalePrice: { new:0, old: 0 }, retailPrice: { new:0, old: 0 } }
let skuPresentFlag = false
for(let n=0; n < newItems.length; n++ ){
let newItem = newItems[n]
// if new item is present in old items
// if(!variants.length){
//(newItem.sku == old.sku)
if(newItem.category == old.category && newItem.size == old.size && newItem.color == old.color){
skuPresentFlag = true
let label = null
let newQty = newItem.qty
let oldQty = old.qty
let isChanged = false
if(Number(newQty) !== Number(oldQty) || Number(newItem.wholesalePrice) !== Number(old.wholesalePrice) || Number(newItem.retailPrice) !== Number(old.retailPrice)){
isChanged = true
// label = '<span class="red--text comfortaa-bold-font fontsize-12">'+newQty+'</span>';
label = newQty
}
else
label = newQty
// .toLocaleString('en-US') + ' '+ newCurrency
// .toLocaleString('en-US') + ' '+ oldCurrency
if(newItem.eanCode !== old.eanCode) {
if(old.eanCode) eanCodeCnt.submitted = eanCodeCnt.submitted + 1
if(newItem.eanCode) eanCodeCnt.confirmation = eanCodeCnt.confirmation +1
}
variant = { sku: variantsRefCode, quantity: { new: label, old: oldQty }, wholesalePrice: { new: priceFormatter(newItem.wholesalePrice ? newItem.wholesalePrice : 0.00), old: priceFormatter(old.wholesalePrice ? old.wholesalePrice : 0.00) }, retailPrice: { new: priceFormatter(newItem.retailPrice ? newItem.retailPrice : 0.00), old: priceFormatter(old.retailPrice ? old.retailPrice : 0.00) }, category: newItem.category, size: newItem.size, color: newItem.color, isChanged }
break;
}
// }
}
// if old item is not present in new items
if(!skuPresentFlag){
skuPresentFlag = true
// old item is removed so ean code is changed
if(old.eanCode)
eanCodeCnt.submitted = eanCodeCnt.submitted + 1
// let label = '<span class="red--text comfortaa-bold-font fontsize-12"> ( new ) </span>';
// .toLocaleString('en-US') + ' '+ newCurrency
variant = { sku: oldVariantsRefCode, quantity: { new: 0, old: old.qty }, wholesalePrice: { new: 0, old: priceFormatter(old.wholesalePrice ? old.wholesalePrice : 0.00) }, retailPrice: { new: 0, old: priceFormatter(old.retailPrice ? old.retailPrice : 0.00) },isChanged: true, category: old.category, size: old.size, color: old.color }
}
if(skuPresentFlag)
variants.push(variant)
}
// for(let n=0; n < newItems.length; n++ ){
// let newItem = newItems[n]
// let variant = { sku: '', quantity: { new: 0, old: 0 }, wholesalePrice: { new:0, old: 0 }, retailPrice: { new:0, old: 0 } }
// let skuPresentFlag = false
// for(let o = 0; o < oldItems.length; o++ ){
// let old = oldItems[o]
// // if new item is present in old items
// // if(!variants.length){
// if(newItem.category == old.category && newItem.size == old.size && newItem.color == old.color){
// skuPresentFlag = true
// let newQty = newItem.qty
// let oldQty = old.qty
// let isChanged = false
// let label = null
// if(Number(newQty) !== Number(oldQty) || Number(newItem.wholesalePrice) !== Number(old.wholesalePrice) || Number(newItem.retailPrice) !== Number(old.retailPrice)){
// isChanged = true
// // label = '<span class="red--text comfortaa-bold-font fontsize-12">'+newQty+'</span>';
// label = newQty
// }
// else
// label = newQty
// variant = { sku: newItem.sku, category: newItem.category, size: newItem.size, color: newItem.color, quantity: { new: label, old: old.qty }, wholesalePrice: { new: priceFormatter(newItem.wholesalePrice ? newItem.wholesalePrice : 0.00) , old: priceFormatter(old.wholesalePrice ? old.wholesalePrice : 0.00) }, retailPrice: { new: priceFormatter(newItem.retailPrice ? newItem.retailPrice : 0.00) , old: priceFormatter(old.retailPrice ? old.retailPrice : 0.00) }, isChanged }
// break;
// }
// // }
// }
// // if new item is not present in old items
// if(!skuPresentFlag){
// skuPresentFlag = true
// let isChanged = true
// // let label = '<span class="red--text comfortaa-bold-font fontsize-12"> ( new ) </span>';
// variant = { sku: newItem.sku, size: newItem.size, category: newItem.category, color: newItem.color, quantity: { new: newItem.qty, old: 0 }, wholesalePrice: { new: priceFormatter(newItem.wholesalePrice ? newItem.wholesalePrice : 0.00) , old: 0 }, retailPrice: { new: priceFormatter(newItem.retailPrice ? newItem.retailPrice : 0.00) , old: 0 }, isChanged }
// }
// if(skuPresentFlag)
// variants.push(variant)
// }
}
// let newVarnts = JSON.stringify(variants)
return {variants: variants, eanCodeCnt}
} catch (err){
console.log(err)
}
}
function checkIsSame(type, key, variantsSummaryArray) {
let isSame =
variantsSummaryArray[key]["new"].length == variantsSummaryArray[key]["old"].length &&
variantsSummaryArray[key]["new"].every((element) =>
variantsSummaryArray[key]["old"].includes(element)
);
let labelClass = "red--text comfortaa-bold-font fontsize-12";
let labelForNew =
variantsSummaryArray[key]["new"].length +
(isSame
? ""
: type == "color"
? '<span class="' + labelClass + '"> ( new colors ) </span>'
: '<span class="' + labelClass + '"> ( new sizes ) </span>');
return labelForNew;
}
function generateLablesArray(variantsSummaryArray, orderItems, type) {
for (let i = 0; i < orderItems.variants.length; i++) {
let currentItem = orderItems.variants[i];
if (
!variantsSummaryArray["total_number_of_colors"][type].includes(currentItem.color)
)
variantsSummaryArray["total_number_of_colors"][type].push(currentItem.color);
if (!variantsSummaryArray["total_number_of_sizes"][type].includes(currentItem.size))
variantsSummaryArray["total_number_of_sizes"][type].push(currentItem.size);
}
}
export const priceFormatter = (price, pdp) => {
if (price != undefined) {
price = price.toString();
let decimals = (price.split("."))[1];
if ((!Number(decimals) || isNaN(decimals)) || decimals.length == 1) //if 2 or 2.1
return Number(price).toFixed(2);
if (decimals.length == 2 && pdp) //if 2 or 2.1
return price;
else if (decimals.length > 1) // if 2.34 or 2.56565
return Number(price.match(/^-?\d+(?:\.\d{0,2})?/)[0]);
}
}
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 createVariantsListFromItemsList = (list) =>{
try{
const dataList = [];
if(list && list.length){
list.map((item) => {
if (item.variants) {
for (let i = 0; i < item.variants.length; i++) {
item.variants[i].id = item.id;
item.variants[i].name = item.name;
item.variants[i].boxNumber = item.variants[i].boxNumber ? item.variants[i].boxNumber : 0;
item.variants[i].indexKey = item.name +
"_" +
item.variants[i].color +
"_" +
item.variants[i].size +
"_" +
item.variants[i].category +
"_" +
i;
item.variants[i].shipmentStartDate = item.shipmentStartDate ? item.shipmentStartDate : null;
item.variants[i].shipmentCancelDate = item.shipmentCancelDate ? item.shipmentCancelDate : null;
dataList.push(item.variants[i]);
}
}
});
}
return dataList
} catch(err){
console.log(err)
}
}