wholesale-vuex
Version:
Commerce vuex module
286 lines (272 loc) • 11.5 kB
JavaScript
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 { doPostPackingBoxes, doFetchPackingBoxList, doDeleteSelectedPackingListBoxes } = wholesalePackingListService
const snakes = createHumps(snakeCase)
export default {
namespaced: true,
state: {
// one: null,
inProgress: true,
itemsPacked: 'box',
// itemsPackedTypeList: [],
// selectedItemId : null,
// packingBoxList: [],
// new ui changes
list: [],
oneObj: null,
isBoxBtnActive: false,
isPalletBtnActive: false,
itemsPackedInBoxes: [],
itemsPackedInPallet: []
},
getters: {
getField,
},
mutations: {
updateField,
// setOne(state, one) {
// state.one = one;
// },
inProgress(state, yesOrNo) {
state.inProgress = yesOrNo
},
// removeBusinessEntity(state) {
// if (state.one.businessEntity)
// delete state.one.businessEntity
// },
// setList(state, list) {
// state.packingBoxList = list;
// },
// setItemsTypeList(state, list) {
// state.itemsPackedTypeList = list;
// },
// setItemsPacked(state, data){
// state.itemsPacked = data.packedType
// state.itemsPackedTypeList = []
// },
// addNewPackedTypeItem(state){
// let newitem = {
// dimLength: state.one.dimLength,
// dimWidth : state.one.dimWidth,
// dimHeight : state.one.dimHeight,
// dimUnit: state.one.dimUnit,
// weightNet: state.one.weightNet,
// weightUnit: state.one.weightUnit,
// weightGross: state.one.weightGross
// }
// if(state.itemsPackedTypeList.length == 0)
// newitem.id = 1
// else
// newitem.id = state.itemsPackedTypeList.length + 1
// state.itemsPackedTypeList.push(newitem)
// //setting to default for box / pallet properties
// state.one.dimLength = '',
// state.one.dimWidth = '',
// state.one.dimHeight = '',
// state.one.dimUnit = ''
// state.one.weightNet = ''
// state.one.weightUnit = ''
// state.one.weightGross = ''
// },
// editPackedItemType (state, data){
// //setting to ONE for box / pallet properties edit operation
// state.selectedItemId = data.selectedItem.id
// state.one.dimLength = data.selectedItem.dimLength,
// state.one.dimWidth = data.selectedItem.dimWidth,
// state.one.dimHeight = data.selectedItem.dimHeight,
// state.one.dimUnit = data.selectedItem.dimUnit
// state.one.weightNet = data.selectedItem.weightNet
// state.one.weightUnit = data.selectedItem.weightUnit
// state.one.weightGross = data.selectedItem.weightGross
// },
// updatePackedItemType (state){
// let newitem = {
// id: state.selectedItemId,
// dimLength: state.one.dimLength,
// dimWidth : state.one.dimWidth,
// dimHeight : state.one.dimHeight,
// dimUnit: state.one.dimUnit,
// weightNet: state.one.weightNet,
// weightUnit: state.one.weightUnit,
// weightGross: state.one.weightGross
// }
// // box / pallet properties update operation
// let oldList = state.itemsPackedTypeList;
// oldList[state.selectedItemId-1] = newitem
// //to refresh a list in ui
// state.itemsPackedTypeList = []
// state.itemsPackedTypeList = oldList
// //setting to default for box / pallet properties
// state.one.dimLength = '',
// state.one.dimWidth = '',
// state.one.dimHeight = '',
// state.one.dimUnit = ''
// state.one.weightNet = ''
// state.one.weightUnit = ''
// state.one.weightGross = ''
// state.selectedItemId = null
// },
// modifyPackingListBox(state, data){
// if(state.itemsPackedTypeList && state.itemsPackedTypeList.length && data.packingList.id){
// let newBoxes = []
// // modifying a itemsPackedTypeList as per API requirement
// state.itemsPackedTypeList.filter((box)=>{
// newBoxes.push({
// appId: data.packingList.appId,
// providerBusinessEntityId : data.packingList.providerBusinessEntityId,
// salesteamServiceId: data.packingList.salesteamServiceId,
// purchaserBusinessEntityId: data.packingList.purchaserBusinessEntityId,
// packingListId : data.packingList.id,
// number : 0,
// dimUnit: box.dimUnit,
// dimLength: box.dimLength,
// dimWidth: box.dimWidth,
// dimHeight: box.dimHeight,
// weightUnit: box.weightUnit,
// weightNet: box.weightNet,
// weightGross: box.weightGross
// })
// })
// state.itemsPackedTypeList = []
// state.itemsPackedTypeList = newBoxes
// }
// },
// new ui changes
setOneObj(state, oneObj) {
state.oneObj = oneObj;
},
setList(state, boxList) {
state.list = boxList
}
},
actions: {
savePackingBoxAndPallet : async ({ commit, state }, { packingList }) => {
// commit('modifyPackingListBox', { packingList });
if(packingList && state.itemsPackedInBoxes.length)
{
for (let i = 0; i < state.itemsPackedInBoxes.length; i++) {
state.itemsPackedInBoxes[i] ={
...state.itemsPackedInBoxes[i],
appId: packingList.appId,
providerBusinessEntityId : packingList.providerBusinessEntityId,
purchaserBusinessEntityId: packingList.purchaserBusinessEntityId,
packingListId : packingList.id,
shippingAddress : packingList.shippingAddress,
billingAddress : packingList.billingAddress,
number : 0,
metadata: { type: state.itemsPacked}
}
}
let packingBoxList = await doPostPackingBoxes(snakes(state.itemsPackedInBoxes))
commit('inProgress', false)
return ({ new: true, packingBoxList: packingBoxList })
}
else if(packingList && state.itemsPackedInPallet.length) {
for (let i = 0; i < state.itemsPackedInPallet.length; i++) {
state.itemsPackedInPallet[i] ={
...state.itemsPackedInPallet[i],
appId: packingList.appId,
providerBusinessEntityId : packingList.providerBusinessEntityId,
purchaserBusinessEntityId: packingList.purchaserBusinessEntityId,
packingListId : packingList.id,
shippingAddress : packingList.shippingAddress,
billingAddress : packingList.billingAddress,
number : 0,
metadata: { type: state.itemsPacked}
}
}
let packingBoxList = await doPostPackingBoxes(snakes(state.itemsPackedInPallet))
commit('inProgress', false)
return ({ new: true, packingBoxList: packingBoxList })
}
else {
commit('inProgress', false)
return ({ new: false, packingBoxList: [] })
}
},
fetchList: async ({ commit}, { appId, packingListId }) => {
commit('inProgress', true);
try {
const list = await doFetchPackingBoxList({ appId, packingListId });
if (list) {
commit('setList', humps((list)));
commit('inProgress', false);
return humps(list)
} else {
commit('setList', []);
commit('inProgress', false);
}
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
// new({ commit }, { salesOrderOne }) {
// commit('inProgress', false);
// commit('setOneObj', {
// appId: salesOrderOne.appId,
// providerBusinessEntityId : salesOrderOne.providerBusinessEntityId,
// purchaserBusinessEntityId: salesOrderOne.purchaserBusinessEntityId,
// salesteamServiceId: salesOrderOne.salesteamServiceId,
// packingListId : '',
// number : '',
// dimUnit: '',
// dimLength: '',
// dimWidth: '',
// dimHeight: '',
// weightUnit: '',
// weightNet: '',
// weightGross: ''
// });
// commit('setItemsTypeList', []);
// },
// savePackingBoxes : async ({ commit, state }, { packingList }) => {
// commit('modifyPackingListBox', { packingList });
// if(state.itemsPackedTypeList.length)
// {
// let packingBoxList = await doPostPackingBoxes(snakes(state.itemsPackedTypeList))
// commit('inProgress', false)
// return ({ new: true, packingBoxList: packingBoxList })
// }
// },
// setItemsPacked: async ({ commit }, { packedType }) => {
// commit('setItemsPacked', { packedType });
// },
// addNewPackedTypeItem: async ({ commit }) => {
// commit('addNewPackedTypeItem');
// },
// editPackedItemType: async ({ commit }, { selectedItem }) => {
// commit('editPackedItemType', { selectedItem });
// },
// updatePackedItemType: async ({ commit }) => {
// commit('updatePackedItemType');
// },
// saveEditedItem: async ({ commit }, { editedColumn, item }) => {
// // commit('updatePackedItemType');
// },
// deletePackingListBox: async ({ commit }, { packingListId }) => {
// commit('inProgress', true);
// try {
// await doDeleteSelectedPackingListBoxes({ packingListId });
// commit('setItemsTypeList', []);
// return ({ deleteSelected: true })
// } catch (err) {
// return ({ deleteSelected: false })
// }
// finally {
// commit('inProgress', false);
// }
// },
// new ui changes
// updateBoxList : async ({ commit }, { boxList }) => {
// commit('setOneObj', { boxList });
// },
},
}