Files
fe-accone/test/vuex/acc-one-item-usage-v3/modules/usage.js

290 lines
9.2 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: '',
},
loadingAutocomplete: false,
divisionOptions: [],
selectedDivision: {},
user: one_user(),
currentPage: 1,
loadingStatus: 1, // 1 => LOADING, 2 => DONE, 3 => ERROR
itemUsageList: [],
selectedItemUsage: {},
totalPage: 0,
dialogUsage: false,
unitList: [],
selectedItemUnit: {},
usedQty: 0,
errors: [],
last_id: -1,
xsearch: "",
dialogform: false,
itemRequestList: [],
emptycheck: [],
dialogUnit: false,
selectedUnit: {},
unitOptions: [],
loadingUnit: false,
},
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;
},
updateItemUsageList(state, val) {
state.itemUsageList = val;
},
updateSelectedItemUsage(state, val) {
state.selectedItemUsage = val;
},
updateTotalPage(state, val) {
state.totalPage = val;
},
updateDialogUsage(state, val) {
state.dialogUsage = val;
},
updateUnitList(state, val) {
state.unitList = val;
},
updateSelectedItemUnit(state, val) {
state.selectedItemUnit = val;
},
updateUsedQty(state, val) {
state.usedQty = val;
},
updateErrors(state, val) {
state.errors = val;
},
update_last_id(state, val) {
state.last_id = val
},
updateXsearch(state, val) {
state.xsearch = val
},
updateDialogform(state, val) {
state.dialogform = val
},
updateItemRequestList(state, val) {
state.itemRequestList = val
},
updateEmptycheck(state, val) {
state.emptycheck = val
},
updateLoadingUnit(state, val) {
state.loadingUnit = val;
},
updateDialogUnit(state, val) {
state.dialogUnit = val;
},
updateSelectedUnit(state, val) {
state.selectedUnit = val;
},
updateUnitOptions(state, val) {
state.unitOptions = val;
}
},
actions: {
async getDivisionByUser(context) {
context.commit("updateLoadingAutocomplete", true)
try {
let payload = {}
payload.token = one_token()
payload.userId = context.state.user.M_UserID
let response = await api.getDivisionByUser(payload);
if (response.status != "OK") {
context.commit("updateLoadingAutocomplete", false)
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingAutocomplete", false)
let data = {
records: response.data.records,
selected: response.data.selected
};
context.commit("updateDivisionOptions", data.records);
context.commit("updateSelectedDivision", data.selected[0]);
}
} catch (e) {
context.commit("updateLoadingAutocomplete", false)
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async search(context, payload) {
context.commit("updateLoadingStatus", 1);
try {
// var payload = {
// token: one_token(),
// currentPage: context.state.currentPage,
// divisionID: context.state.selectedDivision == undefined ? 0 : context.state.selectedDivision.DivisionID,
// search: context.state.xsearch,
// };
payload.token = one_token();
let response = await api.search(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("updateItemUsageList", data.records);
context.commit("updateTotalPage", data.total_page);
if (context.state.last_id == -1) {
if (response.data && response.data.records.length > 0) {
context.commit("updateSelectedItemUsage", response.data.records[0])
}
} else {
let idx = _.findIndex(response.data.records, function (o) {
return o.ItemUsageID == context.state.selectedItemUsage.ItemUsageID
});
if (idx >= 0) {
context.commit("updateSelectedItemUsage", response.data.records[idx]);
}
}
}
} catch (e) {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async getUnit(context, payload) {
context.commit("updateLoadingAutocomplete", 1);
try {
payload.token = one_token()
let response = await api.getUnit(payload);
if (response.status != "OK") {
context.commit("updateLoadingAutocomplete", 3);
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingAutocomplete", 2);
context.commit("updateErrMessage", "");
let data = {
records: response.data.records
};
context.commit("updateUnitList", data.records);
}
} catch (e) {
context.commit("updateLoadingAutocomplete", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async saveItemUsage(context, payload) {
context.commit("updateLoadingStatus", 1);
try {
payload.token = one_token();
let response = await api.saveItemUsage(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,
};
context.commit("updateDialogform", false);
context.commit("updateItemRequestList", []);
context.commit("update_last_id", payload.ItemUsageID)
context.commit("updateSnackbar", {
state: true,
type: 'success',
message: 'Item usage saved successfully.'
});
context.dispatch("search", {
currentPage: payload.currentPageUsage,
divisionID: payload.divisionID,
search: payload.searchUsage
});
context.dispatch("used/getItemUsed", {
itemUsageID: payload.ItemUsageID,
currentPage: payload.currentPage,
search: payload.search,
statusConfirm: payload.statusConfirm,
}, { root: true });
}
} catch (e) {
context.commit("updateLoadingStatus", 3);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
},
async getUnitByItemId(context, payload) {
context.commit("updateLoadingUnit", true)
context.commit("updateDialogUnit", true);
try {
payload.token = one_token();
let response = await api.getUnitByItemId(payload);
if (response.status != "OK") {
context.commit("updateLoadingUnit", false)
context.commit("updateDialogUnit", false);
context.commit("updateErrMessage", response.message);
context.commit("updateAlertError", true);
} else {
context.commit("updateLoadingUnit", false)
context.commit("updateErrMessage", "");
context.commit("updateUnitOptions", response.data.records);
context.commit("updateSelectedUnit", payload.selectedUnit);
}
} catch (e) {
context.commit("updateLoadingUnit", false)
context.commit("updateDialogUnit", false);
context.commit("updateErrMessage", e.message);
context.commit("updateAlertError", true);
}
}
}
};