UNPKG

wholesale-vuex

Version:
262 lines (255 loc) 12.4 kB
import { snakeCase } from 'lodash' import humps from 'lodash-humps' import createHumps from 'lodash-humps/lib/createHumps' import { getField, updateField } from 'vuex-map-fields' import wholesalePackingListService from './wholesale_packing_list.service' const { doPostPackingListItems, doFetchPackingItemsList, doDeleteSelectedPackingListItems } = wholesalePackingListService const snakes = createHumps(snakeCase) const _ = require('lodash') export default { namespaced: true, state: { one: null, inProgress: true, packingItemsList: [], orderItemVariantsList: [], originalOrderItemVariants: [], exceedQuantitySku: [] }, getters: { getField, }, mutations: { updateField, setOne(state, one) { state.one = one; }, inProgress(state, yesOrNo) { state.inProgress = yesOrNo }, setPackingListItems(state, list) { state.packingItemsList = [] state.packingItemsList = list }, // setOrderItemsVariantList(state, data) { // state.orderItemVariantsList = [] // if (data.salesOrderItemList && data.salesOrderItemList.length) { // const dataList = [] // data.salesOrderItemList.map((item) => { // for (let i = 0; i < item.variants.length; i++) { // item.variants[i].id = item.id // item.variants[i].name = item.name // dataList.push(item.variants[i]) // } // }) // state.originalOrderItemVariants = _.cloneDeep(dataList) // state.orderItemVariantsList = _.cloneDeep(dataList) // } // }, // setItemListAsPerQuantity(state, data) { // state.originalOrderItemVariants.filter((originalVrnt) => { // let editedItem = _.cloneDeep(data.item) // if (originalVrnt.sku === editedItem.sku) { // let qty = 0 // data.variantsItemList.filter((variant) => { // if (variant.sku === editedItem.sku) // qty += Number(variant.qty) // }) // if (Number(originalVrnt.qty) > Number(qty)) { // editedItem.qty = Number(originalVrnt.qty) - Number(qty) // data.variantsItemList.push(editedItem) // } // if (Number(originalVrnt.qty) >= Number(qty)) { // if(state.exceedQuantitySku.length){ // let newSkus = [] // newSkus = state.exceedQuantitySku.filter((item)=>{ // return item != originalVrnt.sku; // }); // state.exceedQuantitySku = [] // state.exceedQuantitySku = newSkus // } // } // // edited qty is greater then delete that record from list // if (Number(originalVrnt.qty) < Number(qty)) { // state.exceedQuantitySku.push(originalVrnt.sku) // // let cnt = 0 // // let newList = data.variantsItemList.filter((variant) => { // // if (variant.sku === editedItem.sku) { // // cnt++ // // if (cnt === 1) { // // return variant // // } // // } // // else // // return variant // // }) // // state.orderItemVariantsList = [] // // state.orderItemVariantsList = newList // } // } // }) // }, // checkExceedQuantity(state, data) { // state.originalOrderItemVariants.filter((originalVrnt) => { // let editedItem = _.cloneDeep(data.item) // if (originalVrnt.sku === editedItem.sku) { // let qty = 0 // data.variantsItemList.filter((variant) => { // if (variant.sku === editedItem.sku) // qty += Number(variant.qty) // }) // if (Number(originalVrnt.qty) >= Number(qty)) { // if(state.exceedQuantitySku.length){ // let newSkus = [] // newSkus = state.exceedQuantitySku.filter((item)=>{ // return item != originalVrnt.sku; // }); // state.exceedQuantitySku = [] // state.exceedQuantitySku = newSkus // } // } // // edited qty is greater then delete that record from list // if (Number(originalVrnt.qty) < Number(qty)) { // state.exceedQuantitySku.push(originalVrnt.sku) // } // } // }) // if(state.exceedQuantitySku && state.exceedQuantitySku.length){ // state.exceedQuantitySku = [...new Set(state.exceedQuantitySku)] // } // }, modifyPackingListItems(state, data) { state.packingItemsList = [] if (data.packingList && data.dataList && data.dataList.length) { let orderItemIds = [] // storing unique ids data.dataList.filter((item) => { if (!orderItemIds.includes(item.id)) { orderItemIds.push(item.id) } }) // storing same ids data in variants orderItemIds.filter((uniqueId) => { let packedItem = { appId: data.packingList.appId, providerBusinessEntityId: data.packingList.providerBusinessEntityId, salesteamServiceId: data.packingList.salesteamServiceId, purchaserBusinessEntityId: data.packingList.purchaserBusinessEntityId, packingListId: data.packingList.id } let variants = [] data.dataList.filter((item) => { if (uniqueId === item.id) { if (!item.notIncluded || item.notIncluded === null) { if (data.itemsFormat === 'variant_size_color') { variants.push({ sku: item.sku, name: item.name, size: item.size, color: item.color, qty: item.qty, boxNumber: item.boxNumber, hsCode: item.hsCode, unitPrice: item.wholesalePrice, totalPrice: Number(item.qty) * Number(item.wholesalePrice) }) } else if (data.itemsFormat === 'sku') { //for (let i = 0; i < item.variants.length; i++) { variants.push({ sku: item.sku, name: item.name, size: item.size, color: item.color, qty: item.qty, boxNumber: item.boxNumber, hsCode: item.hsCode, unitPrice: item.wholesalePrice, totalPrice: Number(item.qty) * Number(item.wholesalePrice) }) //} } } } }) //assinging a varinats to new record packedItem.variants = variants // collecting records for unique ids as per api requirement state.packingItemsList.push(packedItem) }) state.exceedQuantitySku = [] } }, }, actions: { // New packing list changes savePackingListItems: async ({ commit, state }, { packingList, dataList, itemsFormat }) => { commit('modifyPackingListItems', { dataList, packingList: humps(packingList), itemsFormat }); if (state.packingItemsList.length) { let packingItemList = await doPostPackingListItems(snakes(Object.assign([], state.packingItemsList))) commit('inProgress', false) return ({ new: true, packingItemList: packingItemList }) } }, // new({ commit }, { salesOrderOne }) { // commit('inProgress', false); // commit('setOne', { // appId: salesOrderOne.appId, // providerBusinessEntityId: salesOrderOne.providerBusinessEntityId, // purchaserBusinessEntityId: salesOrderOne.purchaserBusinessEntityId, // salesteamServiceId : salesOrderOne.salesteamServiceId, // packingListId: '', // variants: [], // }); // }, // fetchVariantsList: async ({ commit }, { salesOrderItemList }) => { // commit('setOrderItemsVariantList', { salesOrderItemList }); // }, // modifyListAsPerQuantity: async ({ commit }, { item, variantsItemList }) => { // commit('setItemListAsPerQuantity', { item, variantsItemList }); // }, // checkExceedQuantity: async ({ commit }, { item, variantsItemList }) => { // commit('checkExceedQuantity', { item, variantsItemList }); // }, // savePackingItemList: async ({ commit, state }, { packingList, dataList, itemsFormat }) => { // commit('modifyPackingListItems', { dataList, packingList: humps(packingList), itemsFormat }); // if (state.packingItemsList.length) { // let packingItemList = await doPostPackingListItems(snakes(Object.assign([], state.packingItemsList))) // commit('inProgress', false) // return ({ new: true, packingItemList: packingItemList }) // } // }, // fetchList: async ({ commit }, { appId, packingListId }) => { // commit('inProgress', true); // try { // const list = await doFetchPackingItemsList({ appId, packingListId }); // if (list) { // commit('setPackingListItems', humps((list))); // commit('inProgress', false); // return { packingItemList: humps(list) } // } else { // commit('setPackingListItems', []); // commit('inProgress', false); // } // } // // eslint-disable-next-line no-useless-catch // catch (err) { // throw err // } // finally { // commit('inProgress', false) // } // }, // deletePackingListItems: async ({ commit }, { packingListId }) => { // commit('inProgress', true); // try { // await doDeleteSelectedPackingListItems({ packingListId }); // return ({ deleteSelected: true }) // } catch (err) { // return ({ deleteSelected: false }) // } // finally { // commit('inProgress', false); // } // }, }, }