Files

138 lines
4.8 KiB
JavaScript

import * as api from '../api/api.js';
export default {
namespaced: true,
state: {
snackbar: { state: false, color: 'error', message: "" },
userinfo: {},
filterpay: {
startdate: moment(new Date()).format('YYYY-MM-DD'),
enddate: moment(new Date()).format('YYYY-MM-DD'),
status: "All",
search: ""
},
list_status: ['All', 'Draft', 'Verified', 'Approved', 'Rejected', 'Completed'],
list_payment: { records: [], total: 1 },
currentpage: 1,
selected_payment: {},
payment_items: {},
dialog_detail: false,
operation_mode: 'view',
operation_loading: false
},
mutations: {
update_userinfo(state, val) {
state.userinfo = val
},
update_snackbar(state, val) {
state.snackbar = val
},
update_filterpay(state, val) {
state.filterpay = val
},
update_list_status(state, val) {
state.list_status = val
},
update_list_payment(state, val) {
state.list_payment = val
},
update_currentpage(state, val) {
state.currentpage = val
},
update_selected_payment(state, val) {
state.selected_payment = val
},
update_payment_items(state, val) {
state.payment_items = val
},
update_dialog_detail(state, val) {
state.dialog_detail = val
},
update_operation_mode(state, val) {
state.operation_mode = val
},
update_operation_loading(state, val) {
state.operation_loading = val
}
},
actions: {
async lookupUserApproveLevel(context) {
try {
const resp = await api.getUserApproveLevel({token: one_token()});
if (resp.status != 'OK') {
throw new Error(resp.message);
} else {
context.commit('update_userinfo', resp.data);
}
} catch (error) {
const snack = { state: true, color: 'error', message: error.message }
context.commit("update_snackbar", snack)
}
},
async lookupPayment(context) {
try {
let param = {
...context.state.filterpay,
currentpage: context.state.currentpage,
token: one_token()
}
const resp = await api.search(param)
if (resp.status != 'OK') {
throw new Error(resp.message);
} else {
context.commit("update_list_payment", resp.data)
}
} catch (error) {
const snack = { state: true, color: 'error', message: error.message }
context.commit("update_snackbar", snack)
}
},
async lookupPaymentItem(context) {
try {
let param = {
token: one_token(),
paymentID: context.state.selected_payment.SupplierPaymentID
};
const resp = await api.searchDetail(param);
if (resp.status != 'OK') {
throw new Error(resp.message);
} else {
context.commit("update_payment_items", resp.data);
}
} catch (error) {
const snack = { state: true, color: 'error', message: error.message }
context.commit("update_snackbar", snack)
}
},
async updateStatus(context) {
try {
context.state.operation_loading = true
let param = {
token: one_token(),
userlevel: context.state.userinfo.level ?? "0",
paymentID: context.state.selected_payment.SupplierPaymentID
}
const resp = await api.updateStatusPayment(param)
if (resp.status != 'OK') {
throw new Error(resp.message);
} else {
const snack = { state: true, color: 'success', message: resp.data }
context.commit("update_snackbar", snack)
context.dispatch("lookupPayment")
context.state.operation_loading = false
context.state.dialog_detail = false
}
} catch (error) {
const snack = { state: true, color: 'error', message: error.message }
context.commit("update_snackbar", snack)
}
}
}
}