UNPKG

procurement-vuex

Version:
272 lines (259 loc) 8.37 kB
import purchaseOrderItemService from "./purchase_order_item.service"; const { doFetchList, doFetchStyleRefItems, doSearchByStyleRef } = purchaseOrderItemService; import humps from "lodash-humps"; export default { namespaced: true, state: { list: [], dateWiseiList: [], selected: [], recordsCount: 0, inProgress: false, error: null, styleRefList: [], styleRefListItems: [], searchItemInList: [], originalItemsList: [] }, mutations: { inProgress(state, yesOrNo) { state.inProgress = yesOrNo; }, setStyleRefItems(state, list) { if (list.length > 0) { let arrayMap = list .map((obj) => obj.variantsRefCode) .filter((obj) => obj); state.styleRefListItems = [...new Set(arrayMap)]; } else { state.styleRefListItems = []; } }, setList(state, list) { /* state.selected = []; for (let i in state.list) { state.selected.push(false); state.selected[i] = false; }*/ state.list = list; /* let newData=[...list]; state.dateWiseiList=[]; for(var i=0 ; i < newData.length ;i++) { if (newData && newData[i].shipmentStartDate) { var newObj={}; newObj['shipmentStartDate']=newData[i].shipmentStartDate; newObj['shipmentCancelDate']=newData[i].shipmentCancelDate; newObj['list']=[]; (newObj.list).push(newData[i]); state.dateWiseiList.push(newObj); for(var j= i+1 ; j < newData.length ;j++) { if(state.dateWiseiList[i] && state.dateWiseiList[i].shipmentStartDate === newData[j].shipmentStartDate && state.dateWiseiList[i].shipmentCancelDate ===newData[j].shipmentCancelDate) { (state.dateWiseiList[i].list).push(newData[j]); newData[j]={}; } } } }*/ // console.log('newarry',JSON.stringify(newarry)); if (list.length > 0) { let arrayMap = state.list.map((obj) => obj.variantsRefCode); state.styleRefList = [...new Set(arrayMap)]; } else { state.styleRefList = []; } }, setItemsVariantsList(state) { if (state.list && state.list.length) { let itemsFormat = state.list[0].format; if (itemsFormat === "variant_size_color") { const dataList = []; state.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; if (item.variants[i].qty > 0) { dataList.push(item.variants[i]); } const checkVariantsQty = item.variants.filter( (val) => val.qty > 0 ); if (checkVariantsQty.length === 0) { if (dataList.length > 0) { for (let j = 0; j < dataList.length; j++) { const checkDataExist = dataList .map((val) => val.id) .includes(item.variants[i].id); if ( dataList[j].id !== item.variants[i].id && item.variants[i].qty === "0" && !checkDataExist ) { dataList.push(item.variants[i]); } } } else { dataList.push(item.variants[i]); } } } } }); state.searchItemInList = dataList; state.originalItemsList = dataList; } else { state.searchItemInList = state.list; state.originalItemsList = state.list; } state.recordsCount = state.searchItemInList.length; } }, setListCount(state, number) { state.recordsCount = number; }, setSearchItemInList(state, searchParams) { state.searchItemInList = state.originalItemsList; if (searchParams.name || searchParams.color) { if (searchParams.name) { let items = []; state.searchItemInList.filter((variant) => { if ( variant.name && variant.name .toLowerCase() .search(searchParams.name.toLowerCase()) !== -1 ) items.push(variant); }); state.searchItemInList = items; } if (searchParams.color) { let items = []; state.searchItemInList.filter((variant) => { if ( variant.color && variant.color .toLowerCase() .search(searchParams.color.toLowerCase()) !== -1 ) items.push(variant); }); state.searchItemInList = items; } state.recordsCount = state.searchItemInList.length; } }, }, actions: { fetchList: async ( { commit }, { nameLike, purchaseOrderId, appId, pageNumber, limit, date, styleRef } ) => { commit("inProgress", true); try { const offset = (pageNumber - 1) * limit; const response = await doFetchList({ nameLike, purchaseOrderId, appId, limit, offset, date, styleRef, }); if (response.range !== null) { const recordsCount = response.range.split("/"); commit("setListCount", Number(recordsCount[1])); const list = await response.data; if (list) { commit("setList", humps(list)); commit("inProgress", false); return humps(list); } else commit("setList", []); commit("inProgress", false); return []; } } catch (err) { // eslint-disable-next-line no-useless-catch throw err; } finally { commit("inProgress", false); } }, searchInItemList: async ({ commit }, { name, color }) => { commit("setSearchItemInList", { name, color }); }, setItemsVariantsList: async ({ commit }) =>{ commit("setItemsVariantsList"); }, fetchStyleRefItems: async ( { commit }, { nameLike, purchaseOrderId, appId, styleRefItems } ) => { commit("inProgress", true); try { const response = await doFetchStyleRefItems({ nameLike, purchaseOrderId, appId, styleRefItems, }); if (response) { const list = await response; if (list) { commit("setStyleRefItems", humps(list)); commit("inProgress", false); return humps(list); } else commit("setStyleRefItems", []); commit("inProgress", false); return []; } } catch (err) { // eslint-disable-next-line no-useless-catch throw err; } finally { commit("inProgress", false); } }, searchByStyleRef: async ( { commit }, { nameLike, purchaseOrderId, appId, pageNumber, limit, date, styleRef } ) => { commit("inProgress", true); try { const offset = (pageNumber - 1) * limit; const response = await doSearchByStyleRef({ nameLike, purchaseOrderId, appId, limit, offset, date, styleRef, }); if (response.range !== null) { const recordsCount = response.range.split("/"); commit("setListCount", Number(recordsCount[1])); const list = await response.data; if (list) { commit("setList", humps(list)); commit("inProgress", false); return humps(list); } else commit("setList", []); commit("inProgress", false); return []; } } catch (err) { // eslint-disable-next-line no-useless-catch throw err; } finally { commit("inProgress", false); } }, }, };