Files

160 lines
5.8 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/api-periode.js"
export default {
namespaced: true,
state: {
periode: [],
total_list: 0,
status_get: 0,
selected: {},
snackbar: false,
message_snack: ""
},
mutations: {
update_selected(state, data) {
state.selected = data
},
update_total_list(state, data) {
state.total_list = data
},
update_list(state, data) {
state.periode = data
},
update_status_get(state, data) {
state.status_get = data
},
open_snackbar(state, bool) {
state.snackbar = bool
},
update_message_snack(state, data) {
state.message_snack = data
}
},
actions: {
async getList(context) {
context.commit("update_status_get", 1);
try {
var params = {token: one_token()};
let resp = await api.getListing(params);
if (resp.status != "OK") {
context.commit("update_status_get", 3);
context.commit("update_message_snack", resp.message);
context.commit("open_snackbar", true);
} else {
context.commit("update_status_get", 2);
let data = {
records: resp.data.records,
total: resp.data.total
}
// console.log(data.total);
// console.log(data.records);
context.commit("update_list", data.records);
context.commit("update_total_list", data.total);
}
} catch (error) {
context.commit("update_status_get", 3);
context.commit("update_message_snack", error.message);
context.commit("open_snackbar", true);
}
},
async deletePeriode(context) {
try {
var params = {
token: one_token(),
id: context.state.selected.periodeID
}
console.log(params);
let resp = await api.p_delete(params);
if (resp.status != "OK") {
// console.log(resp.message);
context.commit("open_snackbar", true);
context.commit("update_message_snack", resp.message);
} else {
context.commit("open_snackbar", true);
var msg = "Berhasil menghapus data periode";
context.commit("update_message_snack", msg);
context.commit("update_selected", {});
context.dispatch("getList");
}
} catch (error) {
context.commit("update_message_snack", error.message);
context.commit("open_snackbar", true);
}
},
async addPeriode(context) {
try {
var params = {
token: one_token(),
...context.state.selected
};
console.log(params);
let resp = await api.p_add(params);
if (resp.status != "OK") {
context.commit("open_snackbar", true);
context.commit("update_message_snack", resp.message);
} else {
context.commit("open_snackbar", true);
var msg = "Berhasil menyimpan data periode";
context.commit("update_message_snack", msg);
context.commit("update_selected", {});
context.dispatch("getList");
}
} catch (error) {
context.commit("update_message_snack", error.message);
context.commit("open_snackbar", true);
}
},
async editPeriode(context) {
try {
var params = {
token: one_token(),
...context.state.selected
};
console.log(params);
let resp = await api.p_edit(params);
if (resp.status != "OK") {
context.commit("open_snackbar", true);
context.commit("update_message_snack", resp.message);
} else {
context.commit("open_snackbar", true);
var msg = "Berhasil menyimpan data periode";
context.commit("update_message_snack", msg);
context.commit("update_selected", {});
context.dispatch("getList");
}
} catch (error) {
context.commit("update_message_snack", error.message);
context.commit("open_snackbar", true);
}
},
async checkNewOrEdit(context) {
if (!checkIsEmpty(context.state.selected)) {
var msg = "Form masih ada yang kosong";
context.commit("update_message_snack", msg);
context.commit("open_snackbar", true);
return;
}
if (!context.state.selected.periodeID) {
context.dispatch("addPeriode");
} else {
context.dispatch("editPeriode");
}
}
}
};
function checkIsEmpty(obj) {
if (Object.keys(obj).length === 0) {
return false;
}
return obj.periodeYear && obj.periodeMonth && obj.periodeName && obj.periodeStartDate && obj.periodeEndDate;
}