procurement-vuex
Version:
Commerce vuex module
128 lines (126 loc) • 4.7 kB
JavaScript
import humps from 'lodash-humps';
import paymentService from './payment.service';
const { doFetchList, doPaymentLookupList, doGetPaymentReport } = paymentService
export default {
namespaced: true,
state: {
list: [],
selected: [],
recordsCount: 0,
inProgress: false,
error: null,
pendingCount: 0,
paidCount: 0,
pendingPaymentList: [],
paidPaymentList: []
},
mutations: {
inProgress(state, yesOrNo) {
state.inProgress = yesOrNo
},
setList(state, list) {
state.selected = [];
for (let i in state.list) {
state.selected.push(false);
state.selected[i] = false;
}
state.list = list;
},
setListCount(state, number) {
state.recordsCount = number;
},
setPaymentList(state, response){
if(response.items){
state.paidPaymentList = []
state.pendingPaymentList = []
response.items.filter((item)=>{
if(item.paid)
state.paidPaymentList.push(item)
else
state.pendingPaymentList.push(item)
})
state.pendingCount = response.pendingCount;
state.paidCount = response.paidCount;
}else{
state.paidPaymentList = []
state.pendingPaymentList = []
state.pendingCount = 0;
state.paidCount = 0;
}
}
},
actions: {
fetchList: async ({ commit}, { appId, giverId,pageNumber, limit }) => {
commit('inProgress', true);
try {
let offset = (pageNumber - 1) * limit;
const response = await doFetchList({ appId, giverId, limit, offset });
if (response.range != null) {
let 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);
}
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
// paymentLookupList: async ({ commit}, { filter }) => {
// commit('inProgress', true);
// try {
// const response = await doPaymentLookupList({ filter});
// commit('setPaymentList', humps(response));
// commit('setList', humps((response.items ? response.items : [])));
// commit('setListCount', Number(response.items? response.items.length : 0));
// commit('inProgress', false);
// return humps((response.items))
// }
// // eslint-disable-next-line no-useless-catch
// catch (err) {
// throw err
// }
// finally {
// commit('inProgress', false)
// }
// },
fetchPaymentReportList: async ({ commit}, { purchaseOrderId }) => {
commit('inProgress', true);
try {
// debugger
// let offset = (pageNumber - 1) * limit;
const response = await doGetPaymentReport({ purchaseOrderId, specs: {} });
if (response.range != null) {
// debugger
let 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);
}
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
}
}