Files
fe-accone/test/vuex/acc-one-jurnal-payment-voucher/modules/journal.js

606 lines
23 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/journal.js"
export default {
namespaced: true,
state: {
search_status: 0,
current_page: 1,
x_search: "",
search_error_message: "",
last_id: -1,
coas: [],
total_coas: 0,
selected_coa: {},
dialog_form_coa: false,
act: 'new',
save_status: 0,
save_error_message: '',
errors: [],
alert_success: false,
msg_success: "",
alert_error: false,
dialog_error: false,
open_print: false,
// ----
xdate: moment(new Date()).format('YYYY-MM-DD'),
end_date: moment(new Date()).format('YYYY-MM-DD'),
journals: [
// {
// "journalID": "1",
// "journalNo": "JM002/08",
// "date": "31-08-2024",
// "name": "budhi/budhi",
// "account": "508501001",
// "title": "MS BESIN, SOLAR, PARKIR, TOL, TRANSPORT",
// "description": "ACCRUED PARKIR AGST 24",
// "debit": "275000",
// "credit": "0",
// "posted": "Y"
// },
// {
// "journalID": "2",
// "journalNo": "JM002/08",
// "date": "31-08-2024",
// "name": "budhi/budhi",
// "account": "2004009",
// "title": "ACCRUED EXP OTHERS",
// "description": "ACCRUED PARKIR AGST 24",
// "debit": "0",
// "credit": "275000",
// "posted": "Y"
// }
],
selected_journal: {},
summary: {"debit": 0, "credit": 0, "balance": 0},
dialog_form_detail: false,
periodeList: [],
selected_periode: {},
loading: false,
dialog_form_periode: false,
autocomplete_status: 0,
search_status: 0,
total_journal: 0,
user: one_user(),
jurnaldetails: [],
dialog_error_jurnal: false,
msgerrjurnallist: [],
regionals: [],
selected_regional: {},
branchs: [],
selected_branch: {},
xsearch: "",
open_dialog_info: false,
msg_info: "",
// --
dialog_edit_journal: false,
user_level: {},
list_coa: [],
journal_edit: [],
dialog_confirm_posting: false,
total_jurnal_not_posted: [],
dialog_request_edit: false,
// ---
dialog_close_jurnal: false,
jurnal_to_close: []
},
mutations: {
update_search_status(state, val) {
state.search_status = val
},
update_current_page(state, val) {
state.current_page = val
},
update_x_search(state, val) {
state.x_search = val
state.current_page = 1
},
update_search_error_message(state, val) {
state.search_error_message = val
},
update_last_id(state, val) {
state.last_id = val
},
update_coas(state, val) {
state.coas = val
},
update_total_coas(state, val) {
state.total_coas = val
},
update_selected_coa(state, val) {
state.selected_coa = val
},
update_dialog_form_coa(state, val) {
state.dialog_form_coa = val
},
update_act(state, val) {
state.act = val
},
update_save_status(state, val) {
state.save_status = val
},
update_save_error_message(state, val) {
state.save_error_message = val
},
update_errors(state, val) {
state.errors = val
},
update_alert_success(state, val) {
state.alert_success = val
},
update_msg_success(state, val) {
state.msg_success = val
},
update_alert_error(state, val) {
state.alert_error = val
},
update_dialog_error(state, val) {
state.dialog_error = val
},
update_open_print(state, value) {
state.open_print = value
},
// ---
update_xdate(state, val) {
state.xdate = val
},
update_end_date(state, val) {
state.end_date = val
},
update_journals(state, val) {
state.journals = val
},
update_selected_journal(state, val) {
state.selected_journal = val
},
update_summary(state, val) {
state.summary = val
},
update_dialog_form_detail(state, val) {
state.dialog_form_detail = val
},
update_periodeList(state, val) {
state.periodeList = val
},
update_selected_periode(state, val) {
state.selected_periode = val
},
update_loading(state, val) {
state.loading = val
},
update_dialog_form_periode(state, val) {
state.dialog_form_periode = val
},
update_autocomplete_status(state, val) {
state.autocomplete_status = val
},
update_search_status(state, val) {
state.search_status = val
},
update_total_journal(state, val) {
state.total_journal = val
},
update_user(state, val) {
state.user = val
},
update_jurnaldetails(state, val) {
state.jurnaldetails = val
},
update_dialog_error_jurnal(state, val) {
state.dialog_error_jurnal = val
},
update_msgerrjurnallist(state, val) {
state.msgerrjurnallist = val
},
update_regionals(state, val) {
state.regionals = val
},
update_selected_regional(state, val) {
state.selected_regional = val
},
update_branchs(state, val) {
state.branchs = val
},
update_selected_branch(state, val) {
state.selected_branch = val
},
update_xsearch(state, val) {
state.xsearch = val
state.current_page = 1
},
update_open_dialog_info(state, val) {
state.open_dialog_info = val
},
update_msg_info(state, val) {
state.msg_info = val
},
update_dialog_edit_journal(state, val) {
state.dialog_edit_journal = val
},
update_user_level(state, val) {
state.user_level = val
},
update_list_coa(state, val) {
state.list_coa = val
},
update_journal_edit(state, val) {
state.journal_edit = val
},
update_dialog_confirm_posting(state, val) {
state.dialog_confirm_posting = val
},
update_total_jurnal_not_posted(state, val) {
state.total_jurnal_not_posted = val
},
update_dialog_request_edit(state, val) {
state.dialog_request_edit = val
},
update_dialog_close_jurnal(state, val) {
state.dialog_close_jurnal = val
},
update_jurnal_to_close(state, val) {
state.jurnal_to_close = val
},
},
actions: {
async getPeriode(context) {
context.commit("update_autocomplete_status", 1)
try {
let prm = {}
prm.token = one_token()
let resp = await api.getPeriode(prm)
if (resp.status != "OK") {
context.commit("update_autocomplete_status", 3)
} else {
context.commit("update_autocomplete_status", 2)
let data = resp.data
context.commit("update_periodeList", data)
// Ambil bulan dan tahun sekarang
let now = new Date();
let currentMonth = now.getMonth() + 1; // getMonth() dimulai dari 0 (Jan = 0)
let currentYear = now.getFullYear().toString(); // Ambil tahun dalam bentuk string
// Cari data dengan periodeMonth dan periodeYear yang cocok
let selectedPeriode = data.find(p => p.periodeMonth == currentMonth.toString() && p.periodeYear == currentYear);
// Jika tidak ditemukan, gunakan data pertama sebagai default
if (!selectedPeriode) {
selectedPeriode = data[0];
}
context.commit("update_selected_periode", selectedPeriode)
}
} catch (e) {
context.commit("update_autocomplete_status", 3)
}
},
async search(context, prm) {
context.commit("update_search_status", 1)
try {
let resp = await api.search(
one_token(),
prm.xdate,
prm.periodeid,
prm.current_page,
prm.search,
prm.branchCode,
prm.regionalId
)
if (resp.status != "OK") {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", resp.message)
} else {
context.commit("update_search_status", 2)
context.commit("update_search_error_message", "")
let data = {
records: resp.data.records,
total: resp.data.total
}
context.commit("update_journals", data.records)
context.commit("update_total_journal", data.total)
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
},
async insertSales(context, prm) {
context.commit("update_save_status", 1)
try {
let branchCode = prm.branchCode;
let date = prm.date;
let jurnalno = prm.jurnalno
let resp = await api.insertSales(branchCode, date, jurnalno)
if (resp.status != "OK") {
context.commit("update_save_status", 3)
context.commit("update_save_error_message", resp.message)
context.commit("update_alert_error", true)
} else {
context.commit("update_save_status", 2)
context.commit("update_save_error_message", resp.message)
let data = {
total: resp.data.total
}
context.commit("update_alert_success", true)
var msg = resp.data.msg
context.commit("update_msg_success", msg)
context.dispatch("search", {
branchCode: prm.branchCode,
regionalId: context.state.selected_regional.S_RegionalID,
search: context.state.x_search,
current_page: context.state.current_page,
xdate: context.state.xdate,
periodeid: context.state.selected_periode.id
})
}
} catch (e) {
context.commit("update_save_status", 3)
context.commit("update_save_error_message", e.message)
context.commit("update_alert_error", true)
}
},
async getRegional(context) {
context.commit("update_autocomplete_status", 1)
try {
let resp = await api.getRegional({ token: one_token(), regionalId: context.state.user.S_RegionalID });
if (resp.status != "OK") {
context.commit("update_search_error_message", resp.message)
context.commit("update_autocomplete_status", 3)
} else {
context.commit("update_search_error_message", "")
context.commit("update_autocomplete_status", 2)
let data = {
records: resp.data.records,
selected: resp.data.selected
};
context.commit("update_regionals", data.records);
context.commit("update_selected_regional", data.selected)
}
} catch (e) {
context.commit("update_search_error_message", e.message)
context.commit("update_autocomplete_status", 3)
}
},
async getBranch(context) {
context.commit("update_autocomplete_status", 1)
try {
let resp = await api.getBranch({
token: one_token(),
regionalId: context.state.selected_regional.S_RegionalID,
branchCode: context.state.user.M_BranchCode
});
if (resp.status != "OK") {
context.commit("update_search_error_message", resp.message)
context.commit("update_autocomplete_status", 3)
} else {
context.commit("update_search_error_message", "")
context.commit("update_autocomplete_status", 2)
let data = {
records: resp.data.records,
selected: resp.data.selected
};
context.commit("update_branchs", data.records);
context.commit("update_selected_branch", data.selected);
}
} catch (e) {
context.commit("update_search_error_message", e.message)
context.commit("update_autocomplete_status", 3)
}
},
// edit jurnal section
async postingJurnal(context, typeid) {
try {
let param = {
token: one_token(),
jurnalTypeID: typeid,
periodeID: context.state.selected_periode.id
}
const resp = await api.changeJurnalToPosted(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_msg_success", resp.data)
context.commit("update_alert_success", true)
context.dispatch("search", {
branchCode: context.state.selected_branch.M_BranchCode ?? "",
regionalId: context.state.selected_regional.S_RegionalID,
search: context.state.x_search,
current_page: context.state.current_page,
xdate: context.state.xdate,
periodeid: context.state.selected_periode.id
})
context.commit("update_total_jurnal_not_posted", []);
context.commit("update_dialog_confirm_posting", false);
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async getUserApprovalLevel(context) {
try {
let param = { token: one_token() }
const resp = await api.getUserApproveLevel(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_user_level", resp.data);
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async getListingCOA(context) {
try {
let param = {
token: one_token(),
keyword: ""
}
const resp = await api.getListingCOA(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_list_coa", resp.data);
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async requestEditJurnal(context) {
try {
let param = {
token: one_token(),
jurnalID: context.state.selected_journal.jurnalID,
staffID: context.state.user.M_UserID,
staffName: context.state.user.M_UserUsername
}
const resp = await api.requestEditJurnal(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_msg_success", resp.data)
context.commit("update_alert_success", true)
context.commit("update_dialog_request_edit", false)
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async saveEditJurnal(context, newdetail) {
try {
let param = {
token: one_token(),
jurnalID: context.state.selected_journal.jurnalID,
jurnalRequestEditID: context.state.selected_journal.JurnalRequestEditID,
oldjurnaltx: context.state.selected_journal.detailtx,
newjurnaltx: newdetail
}
const resp = await api.saveEditJurnal(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.dispatch("search", {
branchCode: context.state.selected_branch.M_BranchCode ?? "",
regionalId: context.state.selected_regional.S_RegionalID,
search: context.state.x_search,
current_page: context.state.current_page,
xdate: context.state.xdate,
periodeid: context.state.selected_periode.id
})
context.commit("update_dialog_edit_journal", false);
context.commit("update_msg_success", resp.data);
context.commit("update_alert_success", true);
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async totalJurnalNotPostedPerPeriod(context) {
try {
let param = {
token: one_token(),
periodeID: context.state.selected_periode.id
}
const resp = await api.getTotalJurnalNotPostedPerPeriod(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_total_jurnal_not_posted", resp.data ?? [])
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async getDataJurnalNotClosedPerPeriod(context) {
try {
let param = {
token: one_token(),
periodeID: context.state.selected_periode.id
}
const resp = await api.getDataJurnalNotClosedPerPeriod(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_jurnal_to_close", resp.data ?? [])
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
},
async closeJurnalPerPeriode(context, typeid) {
try {
let param = {
token: one_token(),
jurnalTypeID: typeid,
periodeID: context.state.selected_periode.id
}
const resp = await api.closeJurnalPerPeriode(param)
if (resp.status != 'OK') {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", resp.message)
} else {
context.commit("update_msg_success", resp.data)
context.commit("update_alert_success", true)
context.dispatch("search", {
branchCode: context.state.selected_branch.M_BranchCode ?? "",
regionalId: context.state.selected_regional.S_RegionalID,
search: context.state.x_search,
current_page: context.state.current_page,
xdate: context.state.xdate,
periodeid: context.state.selected_periode.id
})
context.commit("update_jurnal_to_close", []);
context.commit("update_dialog_close_jurnal", false);
}
} catch (error) {
context.commit("update_alert_error", true);
context.commit("update_save_error_message", error.message)
}
}
}
}