245 lines
9.9 KiB
JavaScript
245 lines
9.9 KiB
JavaScript
import * as api from '../api/api.js'
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state: {
|
|
snacbar: {
|
|
message: '',
|
|
color: 'success',
|
|
active: false
|
|
},
|
|
filter: {
|
|
startdate: moment(new Date()).format('YYYY-MM-DD'),
|
|
enddate: moment(new Date()).format('YYYY-MM-DD'),
|
|
typejournal_id: 0,
|
|
search: '',
|
|
periode_id: 0,
|
|
},
|
|
list_jurnaltype: [],
|
|
list_periode: [],
|
|
selected_periode: {},
|
|
listjournal: {
|
|
records: [],
|
|
total: 0
|
|
},
|
|
currpage: 1,
|
|
selected_jurnal: {},
|
|
selected_jurnal_detail: {},
|
|
summary_jurnal_detail: {
|
|
total_debit: 0,
|
|
total_kredit: 0,
|
|
balance: 0
|
|
},
|
|
dialog_verifikasi: false,
|
|
dialog_pick_periode: false,
|
|
dialog_edit_request: false
|
|
},
|
|
mutations: {
|
|
update_filter(state, val) {
|
|
state.filter = val
|
|
},
|
|
update_list_jurnaltype(state, val) {
|
|
state.list_jurnaltype = val
|
|
},
|
|
update_list_periode(state, val) {
|
|
state.list_periode = val
|
|
},
|
|
update_selected_periode(state, val) {
|
|
state.selected_periode = val
|
|
},
|
|
update_listjournal(state, val) {
|
|
state.listjournal = val
|
|
},
|
|
update_currpage(state, val) {
|
|
state.currpage = val
|
|
},
|
|
update_selected_jurnal(state, val) {
|
|
state.selected_jurnal = val
|
|
},
|
|
update_selected_jurnal_detail(state, val) {
|
|
state.selected_jurnal_detail = val
|
|
},
|
|
update_summary_jurnal_detail(state, val) {
|
|
state.summary_jurnal_detail = val
|
|
},
|
|
update_dialog_verifikasi(state, val) {
|
|
state.dialog_verifikasi = val
|
|
},
|
|
update_snacbar(state, val) {
|
|
state.snacbar = val
|
|
},
|
|
update_dialog_pick_periode(state, val) {
|
|
state.dialog_pick_periode = val
|
|
},
|
|
update_dialog_edit_request(state, val) {
|
|
state.dialog_edit_request = val
|
|
}
|
|
},
|
|
actions: {
|
|
async getListPeriode(context) {
|
|
try {
|
|
let snac = { color: 'error', message: '', active: false };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
var resp = await api.getListPeriode({token: one_token()});
|
|
if (resp.status != 'OK') {
|
|
let snac = { color: 'error', message: resp.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
} else {
|
|
context.commit("update_list_periode", resp.data);
|
|
|
|
// update to latest periode id in masterdata
|
|
let filter = context.state.filter
|
|
filter.periode_id = resp.data[0].periodeID
|
|
context.commit("update_filter", filter);
|
|
context.commit("update_selected_periode", resp.data[0]);
|
|
}
|
|
} catch (error) {
|
|
let snac = { color: 'error', message: error.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
}
|
|
},
|
|
async getListTypeJurnal(context) {
|
|
try {
|
|
let snac = { color: 'error', message: '', active: false };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
var resp = await api.getListTypeJurnal({token: one_token()});
|
|
if (resp.status != 'OK') {
|
|
let snac = { color: 'error', message: resp.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
} else {
|
|
context.commit("update_list_jurnaltype", resp.data);
|
|
}
|
|
} catch (error) {
|
|
let snac = { color: 'error', message: error.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
}
|
|
},
|
|
async getListJournalEdit(context) {
|
|
try {
|
|
let snac = { color: 'error', message: '', active: false };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
let param = {
|
|
periodeID: context.state.filter.periode_id,
|
|
typeJournalID: context.state.filter.typejournal_id,
|
|
search: context.state.filter.search,
|
|
startdate: context.state.filter.startdate,
|
|
enddate: context.state.filter.enddate,
|
|
page: context.state.currpage,
|
|
token: one_token()
|
|
}
|
|
var resp = await api.getListJournalEdit(param);
|
|
if (resp.status != "OK") {
|
|
let snac = { color: 'error', message: resp.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
} else {
|
|
context.commit("update_listjournal", resp.data);
|
|
}
|
|
} catch (error) {
|
|
let snac = { color: 'error', message: error.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
}
|
|
},
|
|
async getDetailJournalEdit(context, jurnalid) {
|
|
try {
|
|
let snac = { color: 'error', message: '', active: false };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
let param = {
|
|
jurnalID: jurnalid,
|
|
token: one_token()
|
|
}
|
|
var resp = await api.getDetailJournalEdit(param);
|
|
if (resp.status != "OK") {
|
|
let snac = { color: 'error', message: resp.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
} else {
|
|
const data = resp.data;
|
|
context.commit("update_selected_jurnal_detail", data);
|
|
|
|
// summary total kredit & debit jurnal
|
|
// changeAfter & changeBefore harusnya sama
|
|
const summary = data.changeAfter.reduce((acc, item) => {
|
|
const debit = Number(item.jurnalTxDebit) || 0;
|
|
const kredit = Number(item.jurnalTxCredit) || 0;
|
|
|
|
acc.total_debit += debit;
|
|
acc.total_kredit += kredit;
|
|
return acc;
|
|
}, {total_debit: 0, total_kredit: 0});
|
|
summary.balance = summary.total_debit - summary.total_kredit;
|
|
|
|
context.commit("update_summary_jurnal_detail", summary);
|
|
}
|
|
} catch (error) {
|
|
let snac = { color: 'error', message: error.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
}
|
|
},
|
|
async updateRequestEditStatus(context, status) {
|
|
try {
|
|
let snac = { color: 'error', message: '', active: false };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
let param = {
|
|
JurnalRequestEditID: context.state.selected_jurnal.JurnalRequestEditID,
|
|
jurnalID: context.state.selected_jurnal.jurnalID,
|
|
status: status.status,
|
|
token: one_token()
|
|
}
|
|
var resp = await api.updateRequestEditStatus(param);
|
|
if (resp.status != "OK") {
|
|
let snac = { color: 'error', message: resp.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
} else {
|
|
context.dispatch("getListJournalEdit");
|
|
let snac = { color: 'success', message: resp.data, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
context.commit("update_dialog_edit_request", false)
|
|
}
|
|
} catch (error) {
|
|
let snac = { color: 'error', message: error.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
}
|
|
},
|
|
async verifEditJurnal(context, status) {
|
|
try {
|
|
let snac = { color: 'error', message: '', active: false };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
let param = {
|
|
jurnalID: context.state.selected_jurnal.jurnalID,
|
|
newtrx: context.state.selected_jurnal_detail.changeAfter,
|
|
JurnalRequestEditID: context.state.selected_jurnal.JurnalRequestEditID,
|
|
status: status,
|
|
token: one_token()
|
|
}
|
|
var resp = await api.verifEditJurnal(param);
|
|
if (resp.status != "OK") {
|
|
let snac = { color: 'error', message: resp.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
} else {
|
|
context.dispatch("getListJournalEdit");
|
|
let snac = { color: 'success', message: resp.data, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
|
|
context.commit("update_summary_jurnal_detail", {
|
|
total_debit: 0,
|
|
total_kredit: 0,
|
|
balance: 0
|
|
});
|
|
context.commit("update_selected_jurnal_detail", {});
|
|
context.commit("update_selected_jurnal", {})
|
|
context.commit("update_dialog_verifikasi", false);
|
|
}
|
|
} catch (error) {
|
|
let snac = { color: 'error', message: error.message, active: true };
|
|
context.commit("update_snacbar", snac);
|
|
}
|
|
}
|
|
}
|
|
}
|