Files

229 lines
7.6 KiB
JavaScript

import * as api from "../api/api.js";
export default {
namespaced: true,
state: {
user: one_user(),
snackbar: {
color: "success",
msg: "",
state: false
},
// left side
filter_listreg: [],
filter_listcab: [],
filter_listing: {
regional: "",
cabang: 0,
keyword: ""
},
list_ruangan: {
total: 0,
records: []
},
list_pagination: 1,
// right side
form_status: "BARU",
form_listreg: [],
form_listcab: [],
form_detail: {
id: 0,
nama: "",
kode: "",
cabang: "",
regional: ""
}
},
mutations: {
update_snackbar(state, val) {
state.snackbar = val;
},
// left side
update_filter_listreg(state, val) {
state.filter_listreg = val;
},
update_filter_listcab(state, val) {
state.filter_listcab = val;
},
update_filter_listing(state, val) {
state.filter_listing = val;
},
update_list_ruangan(state, val) {
state.list_ruangan = val;
},
update_list_pagination(state, val) {
state.list_pagination = val;
},
// right side
update_form_status(state, val) {
state.form_status = val
},
update_form_listreg(state, val) {
state.form_listreg = val;
},
update_form_listcab(state, val) {
state.form_listcab = val;
},
update_form_detail(state, val) {
state.form_detail = val
}
},
actions: {
async listingRegional(context, side) {
try {
const param = { token: one_token() }
const resp = await api.listingRegional(param);
if (resp.status != "OK") {
throw new Error(resp.message);
}
const datas = resp.data.records;
const users = context.state.user;
if (side == 'left') {
const sel_reg = datas.find((reg) => reg.S_RegionalID == users.S_RegionalID);
let filter = context.state.filter_listing;
filter.regional = sel_reg.S_RegionalID;
context.commit("update_filter_listing", filter);
context.commit("update_filter_listreg", datas);
} else {
let reg = users.loginlevel == 'pusat'
? datas
: datas.filter((r) => r.S_RegionalID == users.S_RegionalID);
context.commit("update_form_listreg", reg);
}
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async listingCabang(context, side) {
try {
let param = {
token: one_token(),
regionalID: side == "left"
? context.state.filter_listing.regional
: context.state.form_detail.regional
}
const resp = await api.listingCabang(param);
if (resp.status != "OK") {
throw new Error(resp.message);
}
const users = context.state.user;
if (side == "left") {
let datas = [{ M_BranchID: 0, M_BranchName: "SEMUA" }, ...resp.data.records]
const usr_cab = datas.find((cab) => cab.M_BranchID == users.M_BranchID);
let filter = context.state.filter_listing;
filter.cabang = usr_cab.M_BranchID;
context.commit("update_filter_listing", filter);
context.commit("update_filter_listcab", datas);
} else {
context.commit("update_form_listcab", resp.data.records);
}
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async searchRuangan(context) {
try {
const param = {
token: one_token(),
latestPage: context.state.list_pagination,
regionalID: context.state.filter_listing.regional,
branchID: context.state.filter_listing.cabang ?? 0
}
const resp = await api.searchRuangan(param);
if (resp.status != "OK") {
throw new Error(resp.message);
}
context.commit("update_list_ruangan", resp.data);
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async insertRuangan(context) {
try {
const param = {
token: one_token(),
regionalID: context.state.form_detail.regional,
branchID: context.state.form_detail.cabang,
ruanganName: context.state.form_detail.nama,
ruanganCode: context.state.form_detail.kode
}
const resp = await api.insertRuangan(param);
if (resp.status != "OK") {
throw new Error(resp.message);
}
const snac = { color: 'success', msg: "sukses insert data ruangan", state: true };
context.commit("update_snackbar", snac);
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async updateRuangan(context, id) {
try {
const param = {
token: one_token(),
ruanganID: id,
regionalID: context.state.form_detail.regional,
branchID: context.state.form_detail.cabang,
ruanganName: context.state.form_detail.nama,
ruanganCode: context.state.form_detail.kode
}
console.log(param);
const resp = await api.updateRuangan(param);
if (resp.status != "OK") {
throw new Error(resp.message);
}
const snac = { color: 'success', msg: "sukses update data ruangan", state: true };
context.commit("update_snackbar", snac);
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
async deleteRuangan(context, id) {
try {
const param = {
token: one_token(),
ruanganID: id
}
const resp = await api.deleteRuangan(param);
if (resp.status != "OK") {
throw new Error(resp.message);
}
const snac = { color: 'success', msg: "sukses delete data ruangan", state: true };
context.commit("update_snackbar", snac);
} catch (e) {
const snac = { color: 'error', msg: e.message, state: true };
context.commit("update_snackbar", snac);
}
},
}
}