Files
fe-accone/test/vuex/acc-one-po-asset/modules/common.js
2026-07-20 13:14:28 +07:00

166 lines
5.5 KiB
JavaScript

import * as api from '../api/api.js';
export default {
namespaced: true,
state: {
/* common */
snackbar: {
color: 'success',
msg: '',
state: false
},
loading_process: false,
selected_orderaset: {},
viewonlymode: false,
/* main layout */
filterpo: {
startdate: moment(new Date()).format('YYYY-MM-DD'),
enddate: moment(new Date()).format('YYYY-MM-DD'),
status: 'All',
search: ''
},
list_status: ['All', 'Draft', 'Pending', 'Approved', 'Rejected', 'Completed'],
list_asetpo: {
records: [],
total: 0
},
currpage: 1,
/* delete order */
dialog_deleteorder: false,
/* attachment */
dialog_attachment: false,
assets_attachment: []
},
mutations: {
/* common */
update_snackbar(state, val) {
state.snackbar = val
},
update_loading_process(state, val) {
state.loading_process = val
},
update_selected_orderaset(state, val) {
state.selected_orderaset = val
},
update_viewonlymode(state, val) {
state.viewonlymode = val
},
/* main layout */
update_filterpo(state, val) {
state.filterpo = val
},
update_list_status(state, val) {
state.list_status = val
},
update_list_asetpo(state, val) {
state.list_asetpo = val
},
update_currpage(state, val) {
state.currpage = val
},
/* delete order */
update_dialog_deleteorder(state, val) {
state.dialog_deleteorder = val
},
/* attachment */
update_dialog_attachment(state, val) {
state.dialog_attachment = val
},
update_assets_attachment(state, val) {
state.assets_attachment = val
}
},
actions: {
async getListingPOAsset(context) {
try {
const params = {
token: one_token(),
currpage: context.state.currpage,
...context.state.filterpo
};
const resp = await api.getDaftarPoAset(params);
if (resp.status != 'OK') {
throw new Error(resp.message);
}
context.commit('update_list_asetpo', resp.data);
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async getAssetAttachment(context, param) {
try {
const params = {
token: one_token(),
contractID: param.contractID,
poID: param.poID
};
const resp = await api.getDaftarAttachment(params);
if (resp.status != 'OK') {
throw new Error(resp.message);
}
context.commit('update_assets_attachment', resp.data);
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async uploadAttachment(context, params) {
try {
context.state.loading_process = true;
const resp = await api.uploadAttachment(params);
if (resp.status != 'OK') {
throw new Error(resp.message);
}
const snac = { color: 'success', msg: resp.data, state: true };
context.commit("update_snackbar", snac);
context.dispatch('getListingPOAsset');
context.state.loading_process = false;
context.state.dialog_attachment = false;
} catch (e) {
context.state.loading_process = false;
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async deleteOrderAsset(context) {
try {
context.state.loading_process = true;
const order = context.state.selected_orderaset;
const params = {
token: one_token(),
poID: order.PurchaseOrderID,
contractID: order.contractID,
ponumber: order.PurchaseOrderNumber,
SupplierDownpaymentID: order.SupplierDownpaymentID
};
const resp = await api.deletePoAsset(params);
if (resp.status != 'OK') {
throw new Error(resp.message);
}
const snac = { color: 'success', msg: resp.data, state: true };
context.commit("update_snackbar", snac);
context.dispatch('getListingPOAsset');
context.state.loading_process = false;
context.state.dialog_deleteorder = false;
} catch (e) {
context.state.loading_process = false;
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
}
}
}