UNPKG

wholesale-vuex

Version:
1,069 lines (1,002 loc) 39.7 kB
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) } }