Files

361 lines
13 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,
dialog_form_confirm: false,
autocomplete_status: 0,
search_status: 0,
search_error_message: "",
total_journal: 0,
user: one_user(),
jurnaldetails: [],
dialog_error_jurnal: false,
msgerrjurnallist: [],
user: one_user(),
ishide: 'Y',
branchlists: []
},
mutations: {
update_ishide(state, val) {
state.ishide = val
},
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_branchlists(state, val) {
state.branchlists = 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_dialog_form_confirm(state, val) {
state.dialog_form_confirm = val
},
update_autocomplete_status(state, val) {
state.autocomplete_status = val
},
update_search_status(state, val) {
state.search_status = val
},
update_search_error_message(state, val) {
state.search_error_message = 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_user(state, val) {
state.user = 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 {
// var prm = {
// token: one_token(),
// periodeid: context.state.selected_periode.id
// }
// var prm = {}
// prm.one_token()
let resp = await api.search(one_token(), prm.xdate, prm.periodeid, prm.branchid, 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_ishide", data.records[0].ishide)
context.commit("update_total_journal", data.total)
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
},
async getdetail(context, prm) {
context.commit("update_search_status", 1)
try {
// var prm = {
// token: one_token(),
// periodeid: context.state.selected_periode.id
// }
// var prm = {}
prm.token = one_token()
let resp = await api.getdetail(prm)
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_branchlists", data.records)
}
} 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", {
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 addConfirm(context, prm) {
context.commit("update_save_status", 1)
try {
prm.token = one_token()
let resp = await api.addConfirm(prm)
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 = " Fixed aset periode " + context.state.selected_periode.periode + " berhasil dikonfirmasi"
context.commit("update_msg_success", msg)
context.dispatch("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)
}
},
}
}