UNPKG

procurement-vuex

Version:
83 lines (77 loc) 2.58 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 paymentRecordService from './purchase_order_payment_record.service' const { doPostOne, doPatchOne } = paymentRecordService const snakes = createHumps(snakeCase) export default { namespaced: true, state: { one: null, inProgress: true, paymentReport: [], currentPaymentItem: null }, getters: { getField, }, mutations: { updateField, setOne(state, one) { state.one = one; }, setCurrentPaymentItem(state, item) { state.currentPaymentItem = item; }, inProgress(state, yesOrNo) { state.inProgress = yesOrNo }, }, actions: { new({ commit }, { appId, purchaseOrderId, paymentTerm, currencyIso3, recordDate, purchaseOrderPaymentTermId, amount }) { commit('inProgress', false); // debugger commit('setOne', { "appId": appId, "purchaseOrderId": purchaseOrderId, "paymentTerm": paymentTerm, "currencyIso3": currencyIso3, "recordDate": recordDate, "purchaseOrderPaymentTermId": purchaseOrderPaymentTermId, "amount": amount }); }, save: async({ commit, state }, { referenceId, referenceType }) => { commit('inProgress', true) // debugger try { // debugger if (undefined === state.one.id) { let postParams = snakes(Object.assign({}, state.one, { referenceId: referenceId, referenceType: referenceType })) let payment= await doPostOne(postParams) commit('inProgress', false) return ({ new: true,payment:payment }) } else { let payment=await doPatchOne(snakes(state.one)) commit('inProgress', false) return ({ update: true,payment:payment }) } } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, setCurrentPaymentItem({ commit }, { currentItem }) { commit('setCurrentPaymentItem', currentItem); }, setPaymentOne({ commit }, { item }) { commit('setOne', item); }, }, }