Files
fe-accone/test/vuex/acc-one-jurnal/modules/terimaBarang.js

382 lines
14 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/terimaBarang.js"
export default {
namespaced: true,
state: {
user: one_user(),
dialogJurnalTerimaBarang: false,
selectedJurnalType: {},
jurnalTypeList: [],
defaultJurnalType: {},
selectedDate: moment(new Date()).format('YYYY-MM-DD'),
searchPeriode: '',
selectedPeriode: {},
periodeList: [],
loadingAutocomplete: false,
searchSupplier: '',
supplierList: [],
selectedSupplier: {},
jurnalTitle: '',
grniValue: '',
invoiceValue: '',
jurnalDescription: '',
searchCoa: '',
selectedCoa: {},
coaList: [],
kreditValue: 0,
debitValue: 0,
errorsAddDetail: [],
errorsAddJurnal: [],
detailsJurnalTerimaBarang: [],
detailSum: { debit: 0, credit: 0, balance: 0 },
loadingSave: false,
dialogForm: false,
snackbar: {
state: false,
color: 'success',
msg: ''
},
act: "",
// Untuk Edit Dialog
companyInfo: {},
isPosted: false,
selectedJurnal: {},
last_id: -1,
loading: false,
startDate: moment(new Date()).format('YYYY-MM-DD'),
endDate: moment(new Date()).format('YYYY-MM-DD'),
loading: false,
sallary: 0,
description: '',
branchPercentList: [],
selectedBranchPercent: {},
},
mutations: {
update_dialogJurnalTerimaBarang(state, val) {
state.dialogJurnalTerimaBarang = val
},
update_selectedJurnalType(state, val) {
state.selectedJurnalType = val
},
update_jurnalTypeList(state, val) {
state.jurnalTypeList = val
},
update_defaultJurnalType(state, val) {
state.defaultJurnalType = val
},
update_selectedDate(state, val) {
state.selectedDate = val
},
update_searchPeriode(state, val) {
state.searchPeriode = val
},
update_selectedPeriode(state, val) {
state.selectedPeriode = val
},
update_periodeList(state, val) {
state.periodeList = val
},
update_loadingAutocomplete(state, val) {
state.loadingAutocomplete = val
},
update_searchSupplier(state, val) {
state.searchSupplier = val
},
update_selectedSupplier(state, val) {
state.selectedSupplier = val
},
update_supplierList(state, val) {
state.supplierList = val
},
update_jurnalTitle(state, val) {
state.jurnalTitle = val
},
update_grniValue(state, val) {
state.grniValue = val
},
update_invoiceValue(state, val) {
state.invoiceValue = val
},
update_debitValue(state, val) {
state.debitValue = val
},
update_jurnalDescription(state, val) {
state.jurnalDescription = val
},
update_kreditValue(state, val) {
state.kreditValue = val
},
update_coaList(state, val) {
state.coaList = val
},
update_searchCoa(state, val) {
state.searchCoa = val
},
update_selectedCoa(state, val) {
state.selectedCoa = val
},
update_errorsAddDetail(state, val) {
state.errorsAddDetail = val
},
update_errorsAddJurnal(state, val) {
state.errorsAddJurnal = val
},
update_detailsJurnalTerimaBarang(state, val) {
state.detailsJurnalTerimaBarang = val
},
update_detailSum(state, val) {
state.detailSum = val
},
update_loadingSave(state, val) {
state.loadingSave = val
},
update_snackbar(state, val) {
state.snackbar = val
},
update_actForm(state, val) {
state.act = val
},
update_companyInfo(state, val) {
state.companyInfo = val
},
update_isPosted(state, val) {
state.isPosted = val
},
update_selectedJurnal(state, val) {
state.selectedJurnal = val
},
/* NOT USED YET */
update_defaultBranch(state, val) {
state.defaultBranch = val
},
update_branchPercentList(state, val) {
state.branchPercentList = val
},
update_selectedBranchPercent(state, val) {
state.selectedBranchPercent = val
},
update_loading(state, val) {
state.loading = val
},
update_dialogForm(state, val) {
state.dialogForm = val
},
update_startDate(state, val) {
state.startDate = val
},
update_endDate(state, val) {
state.endDate = val
},
update_sallary(state, val) {
state.sallary = val
},
},
actions: {
async getJurnalType(context) {
context.commit("update_loadingAutocomplete", true)
try {
let prm = {};
prm.token = one_token()
let resp = await api.getJurnalType(prm)
if (resp.status != "OK") {
context.commit("update_loadingAutocomplete", false)
} else {
context.commit("update_loadingAutocomplete", false)
context.commit("update_jurnalTypeList", resp.data.records)
context.commit("update_selectedJurnalType", resp.data.default)
context.commit("update_defaultJurnalType", resp.data.default)
}
} catch (e) {
context.commit("update_loadingAutocomplete", false)
console.log(e)
}
},
async getPeriode(context) {
context.commit("update_loadingAutocomplete", true)
try {
let prm = {};
prm.search = context.state.searchPeriode;
prm.token = one_token()
let resp = await api.searchPeriode(prm)
if (resp.status != "OK") {
context.commit("update_loadingAutocomplete", false)
} else {
context.commit("update_loadingAutocomplete", false)
context.commit("update_periodeList", resp.data)
}
} catch (e) {
context.commit("update_loadingAutocomplete", false)
console.log(e)
}
},
async getSupplier(context) {
context.commit("update_loadingAutocomplete", true)
try {
let prm = {};
prm.search = context.state.searchSupplier;
prm.token = one_token()
let resp = await api.searchSupplier(prm)
if (resp.status != "OK") {
context.commit("update_loadingAutocomplete", false)
} else {
context.commit("update_loadingAutocomplete", false)
context.commit("update_supplierList", resp.data)
}
} catch (e) {
context.commit("update_loadingAutocomplete", false)
console.log(e)
}
},
async getCoa(context) {
context.commit("update_loadingAutocomplete", true)
try {
let prm = {};
prm.search = context.state.searchCoa;
prm.token = one_token()
let resp = await api.searchCoa(prm)
if (resp.status != "OK") {
context.commit("update_loadingAutocomplete", false)
} else {
context.commit("update_loadingAutocomplete", false)
context.commit("update_coaList", resp.data.records)
}
} catch (e) {
context.commit("update_loadingAutocomplete", false)
console.log(e)
}
},
async saveJurnal(context, prm) {
context.commit("update_loadingSave", true)
try {
prm.token = one_token()
let resp = await api.saveJurnal(prm)
if (resp.status != "OK") {
context.commit("update_loadingSave", false)
context.commit("jurnalumum/update_save_error_message", resp.message, { root: true })
context.commit("jurnalumum/update_alert_error", true, { root: true })
console.log(resp);
} else {
context.commit("jurnalumum/update_alert_success", true, { root: true })
var msg = " Journal " + prm.jurnalTitle + " berhasil disimpan"
context.commit("jurnalumum/update_msg_success", msg, { root: true })
context.dispatch('jurnalumum/search', {
current_page: context.rootState.jurnalumum.current_page,
search: context.rootState.jurnalumum.x_search,
startdate: context.rootState.jurnalumum.start_date,
enddate: context.rootState.jurnalumum.end_date,
regionalid: context.rootState.jurnalumum.user.S_RegionalID,
branchid: context.rootState.jurnalumum.user.M_BranchID,
last_id: -1
}, { root: true })
context.commit("update_dialogForm", false)
}
} catch (e) {
context.commit("update_loadingSave", false)
console.log(e)
}
},
async loadEditDialog(context, prm) {
context.commit("update_loadingSave", true)
try {
prm.token = one_token()
let resp = await api.loadEditDialog(prm)
if (resp.status != "OK") {
context.commit("update_loadingSave", false)
let snackbar = {
state: true,
color: 'error',
msg: resp.message
}
context.commit("update_snackbar", snackbar)
console.log(resp)
} else {
context.commit("update_loadingSave", false)
context.commit("update_selectedJurnal", resp.data.jurnalHead)
context.commit("update_selectedJurnalType", {
JurnalTypeID: resp.data.jurnalHead.JurnalTypeID,
JurnalTypeName: resp.data.jurnalHead.JurnalTypeName
})
context.commit("update_selectedDate", resp.data.jurnalHead.jurnalDate)
context.commit("update_jurnalTitle", resp.data.jurnalHead.jurnalTitle)
context.commit("update_jurnalDescription", resp.data.jurnalHead.jurnalDescription)
context.commit("update_grniValue", resp.data.jurnalHead.GRNIGR ? resp.data.jurnalHead.GRNIGR : '')
context.commit("update_invoiceValue", resp.data.jurnalHead.INVGR ? resp.data.jurnalHead.INVGR : '')
context.commit("update_isPosted", resp.data.jurnalHead.jurnalIsPosted)
context.commit("update_selectedSupplier", resp.data.supplier)
context.commit("update_selectedPeriode", resp.data.periode)
context.commit("update_detailsJurnalTerimaBarang", resp.data.details)
// Hitung sum
let totalDebit = 0, totalCredit = 0
resp.data.details.forEach((item) => {
totalDebit += parseFloat(item.jurnalTxDebit)
totalCredit += parseFloat(item.jurnalTxCredit)
})
let totalBalance = totalDebit - totalCredit
context.commit("update_detailSum", {
debit: totalDebit,
credit: totalCredit,
balance: totalBalance
})
context.commit("update_dialogJurnalTerimaBarang", true)
context.commit("update_actForm", 'edit')
console.log(resp.data);
}
} catch (e) {
context.commit("update_loadingSave", false)
console.log(e)
}
},
async updateJurnal(context, prm) {
context.commit("update_loadingSave", true)
try {
prm.token = one_token()
let resp = await api.updateJurnal(prm)
if (resp.status != "OK") {
context.commit("update_loadingSave", false)
context.commit("jurnalumum/update_save_error_message", resp.message, { root: true })
context.commit("jurnalumum/update_alert_error", true, { root: true })
console.log(resp)
} else {
context.commit("update_loadingSave", false)
context.commit("jurnalumum/update_alert_success", true, { root: true })
var msg = " Journal " + prm.jurnalTitle + " berhasil diupdate"
context.commit("jurnalumum/update_msg_success", msg, { root: true })
context.dispatch('jurnalumum/search', {
current_page: context.rootState.jurnalumum.current_page,
search: context.rootState.jurnalumum.x_search,
startdate: context.rootState.jurnalumum.start_date,
enddate: context.rootState.jurnalumum.end_date,
regionalid: context.rootState.jurnalumum.user.S_RegionalID,
branchid: context.rootState.jurnalumum.user.M_BranchID,
last_id: -1
}, { root: true })
console.log(resp)
}
} catch (e) {
context.commit("update_loadingSave", false)
console.log(e)
}
},
}
}