Files

280 lines
8.9 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/api.js";
export default {
namespaced: true,
state: {
errMessage: "",
alertError: false,
snackbar: {
state: false,
type: 'success',
message: '',
},
user: one_user(),
currentPage: 1,
loadingStatus: 1, // 1 => LOADING, 2 => DONE, 3 => ERROR
itemUsedList: [],
selectedItemUsed: {},
totalPageUsed: 0,
selectedUsedQty: 0,
dialogUsed: false,
errors: [],
dialogDelete: false,
dialogConfirmation: false,
search: "",
statusConfirmOptions: [
{ value: "X", text: "Semua" },
{ value: "N", text: "Belum Dikonfirmasi" },
{ value: "Y", text: "Sudah Dikonfirmasi" },
],
statusConfirm: "X",
menuStartDate: false,
menuEndDate: false,
fStartDate: moment(new Date()).format("YYYY-MM-DD"),
fEndDate: moment(new Date()).format("YYYY-MM-DD"),
dStartDate: new Date().toISOString().substring(0, 10),
dEndDate: new Date().toISOString().substring(0, 10)
},
mutations: {
updateErrMessage(state, val) {
state.errMessage = val;
},
updateAlertError(state, val) {
state.alertError = val;
},
updateSnackbar(state, val) {
state.snackbar = val;
},
updateLoadingAutocomplete(state, val) {
state.loadingAutocomplete = val;
},
updateDivisionOptions(state, val) {
state.divisionOptions = val;
},
updateSelectedDivision(state, val) {
state.selectedDivision = val;
},
updateUser(state, val) {
state.user = val;
},
updateCurrentPage(state, val) {
state.currentPage = val;
},
updateLoadingStatus(state, val) {
state.loadingStatus = val;
},
updateItemUsedList(state, val) {
state.itemUsedList = val;
},
updateSelectedItemUsed(state, val) {
state.selectedItemUsed = val;
},
updateTotalPageUsed(state, val) {
state.totalPageUsed = val;
},
updateSelectedUsedQty(state, val) {
state.selectedUsedQty = val;
},
updateDialogUsed(state, val) {
state.dialogUsed = val;
},
updateErrors(state, val) {
state.errors = val;
},
updateDialogDelete(state, val) {
state.dialogDelete = val;
},
updateDialogConfirmation(state, val) {
state.dialogConfirmation = val;
},
updateSearch(state, val) {
state.search = val;
state.currentPage = 1; // Reset to first page on new search
},
updateStatusConfirm(state, val) {
state.statusConfirm = val;
},
updateStatusConfirmOptions(state, val) {
state.statusConfirmOptions = val;
},
updateMenuStartDate(state, val) {
state.menuStartDate = val;
},
updateMenuEndDate(state, val) {
state.menuEndDate = val;
},
updateFStartDate(state, val) {
state.fStartDate = val;
},
updateFEndDate(state, val) {
state.fEndDate = val;
},
updateDStartDate(state, val) {
state.dStartDate = val;
},
updateDEndDate(state, val) {
state.dEndDate = val;
}
},
actions: {
async getItemUsed(context, payload) {
context.commit("updateLoadingStatus", 1);
try {
payload.token = one_token();
// var payload = {
// itemUsageID: context.state.usage.selectedItemUsage.ItemUsageID,
// currentPage: context.state.currentPage,
// search: context.state.search,
// statusConfirm: context.state.statusConfirm,
// token: one_token()
// };
let response = await api.getItemUsed(payload);
if (response.status != "OK") {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingStatus", 2);
context.commit("updateErrMessage", "");
let data = {
records: response.data.records,
total_page: response.data.total_page,
};
context.commit("updateItemUsedList", data.records);
context.commit("updateTotalPageUsed", data.total_page);
}
} catch (e) {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async updateItemUsed(context, payload) {
context.commit("updateLoadingStatus", 1);
try {
payload.token = one_token();
let response = await api.updateItemUsed(payload);
if (response.status != "OK") {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingStatus", 2);
context.commit("updateErrMessage", "");
context.commit("updateDialogUsed", false);
context.commit("updateSelectedItemUsed", {});
context.commit("updateSelectedUsedQty", 0);
context.commit("usage/update_last_id", payload.itemUsageID, { root: true });
context.commit("updateSnackbar", {
state: true,
type: 'success',
message: 'Item used berhasil diupdate.'
});
context.dispatch("usage/search",{}, { root: true });
context.dispatch("getItemUsed", {
itemUsageID: payload.itemUsageID,
currentPage: payload.currentPage,
search: payload.search,
statusConfirm: payload.statusConfirm,
startdate: payload.startdate,
enddate: payload.enddate
});
}
} catch (e) {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async deleteItemUsed(context, payload) {
context.commit("updateLoadingStatus", 1);
try {
payload.token = one_token();
let response = await api.deleteItemUsed(payload);
if (response.status != "OK") {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingStatus", 2);
context.commit("updateErrMessage", "");
context.commit("updateDialogDelete", false);
context.commit("updateSelectedItemUsed", {});
context.commit("usage/update_last_id", payload.itemUsageID, { root: true });
context.commit("updateSnackbar", {
state: true,
type: 'success',
message: 'Item used berhasil dihapus.'
});
context.dispatch("usage/search",{}, { root: true });
context.dispatch("getItemUsed", {
itemUsageID: payload.itemUsageID,
currentPage: payload.currentPage,
search: payload.search,
statusConfirm: payload.statusConfirm,
startdate: payload.startdate,
enddate: payload.enddate
});
}
} catch (e) {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async confirmItemUsed(context, payload) {
context.commit("updateLoadingStatus", 1);
try {
payload.token = one_token();
let response = await api.confirmItemUsed(payload);
if (response.status != "OK") {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingStatus", 2);
context.commit("updateErrMessage", "");
context.commit("updateSelectedItemUsed", {});
context.commit("updateDialogConfirmation", false);
context.commit("usage/update_last_id", payload.itemUsageID, { root: true });
context.commit("updateSnackbar", {
state: true,
type: 'success',
message: 'Item used berhasil dikonfirmasi.'
});
context.dispatch("getItemUsed", {
itemUsageID: payload.itemUsageID,
currentPage: payload.currentPage,
search: payload.search,
statusConfirm: payload.statusConfirm,
startdate: payload.startdate,
enddate: payload.enddate
});
}
} catch (e) {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
}
}
};