Files
FE_CPONE/test/vuex/cpone-queue-ticket/modules/price.js
2026-04-27 10:13:31 +07:00

476 lines
20 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/price.js"
export default {
namespaced: true,
state: {
lookup_status: 0,
searchPrice: "",
priceHeaderList: [],
loading: false,
page: 1,
totalPageHeader: 0,
errorMsg: '',
snackbarSuccess: false,
snackbarError: false,
successMsg: '',
selectedPriceHeader: {
"headerID": "0",
"headerName": "",
"headerStartDate": "",
"headerEndDate": "",
"headerCode": "CODE"
},
dialogPriceHeader: false,
dialogDeleteHeader: false,
startDateHeader: moment(new Date()).format('YYYY-MM-DD'),
endDateHeader: moment(new Date()).format('YYYY-MM-DD'),
nameHeader: "",
filterName: "",
filterSubGroup: [],
filterStatus: [],
selectedFilterSubGroup: {
"id": "0",
'name': 'Semua'
},
selectedFilterStatus: {
"id": "A",
'name': 'Semua'
},
priceTestList: [],
priceTestPageTotal: 0,
priceTestPage: 1,
priceHeaderCopyList: [],
selectedPriceHeaderCopy: {},
dialogCopyHarga: false,
copyPacket: false,
dialogValidasi: false,
},
mutations: {
update_lookup_status(state, val) {
state.lookup_status = val
},
update_searchPrice(state, val) {
state.searchPrice = val
},
update_priceHeaderList(state, val) {
state.priceHeaderList = val
},
update_loading(state, val) {
state.loading = val
},
update_page(state, val) {
state.page = val
},
update_totalPageHeader(state, val) {
state.totalPageHeader = val
},
update_errorMsg(state, val) {
state.errorMsg = val
},
update_snackbarSuccess(state, val) {
state.snackbarSuccess = val
},
update_snackbarError(state, val) {
state.snackbarError = val
},
update_successMsg(state, val) {
state.successMsg = val
},
update_selectedPriceHeader(state, val) {
state.selectedPriceHeader = val
},
update_dialogPriceHeader(state, val) {
state.dialogPriceHeader = val
},
update_startDateHeader(state, val) {
state.startDateHeader = val
},
update_endDateHeader(state, val) {
state.endDateHeader = val
},
update_nameHeader(state, val) {
state.nameHeader = val
},
update_dialogDeleteHeader(state, val) {
state.dialogDeleteHeader = val
},
update_filterName(state, val) {
state.filterName = val
},
update_filterStatus(state, val) {
state.filterStatus = val
},
update_filterSubGroup(state, val) {
state.filterSubGroup = val
},
update_selectedFilterStatus(state, val) {
state.selectedFilterStatus = val
},
update_selectedFilterSubGroup(state, val) {
state.selectedFilterSubGroup = val
},
update_priceTestList(state, val) {
state.priceTestList = val
},
update_priceTestPageTotal(state, val) {
state.priceTestPageTotal = val
},
update_priceTestPage(state, val) {
state.priceTestPage = val
},
update_priceHeaderCopyList(state, val) {
state.priceHeaderCopyList = val
},
update_selectedPriceHeaderCopy(state, val) {
state.selectedPriceHeaderCopy = val
},
update_dialogCopyHarga(state, val) {
state.dialogCopyHarga = val
},
update_copyPacket(state, val) {
state.copyPacket = val
},
update_dialogValidasi(state, val) {
state.dialogValidasi = val
},
},
actions: {
async searchPriceHeader(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
token: one_token(),
page: context.state.page,
search: context.state.searchPrice
}
let resp = await api.search(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", resp.message)
context.commit("update_snackbarError", false)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_loading", false)
let data = {
records: resp.data.records,
total: resp.data.total
}
context.commit("update_priceHeaderList", resp.data.records)
if (resp.data.records.length > 0 && context.state.selectedPriceHeader.headerID === "0") {
context.commit("update_selectedPriceHeader", resp.data.records[0])
context.dispatch("searchpricetest")
// this.$store.dispatch("price/searchpricetest");
} else if (resp.data.records.length > 0 && context.state.selectedPriceHeader.headerID !== "0") {
for (let i = 0; i < resp.data.records.length; i++) {
const e = resp.data.records[i];
if (e.headerID === context.state.selectedPriceHeader.headerID) {
context.commit("update_selectedPriceHeader", e)
}
}
}
context.commit("update_totalPageHeader", resp.data.total)
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", e)
context.commit("update_snackbarError", false)
}
},
async insertPriceHeader(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
token: one_token(),
name: context.state.nameHeader,
sd: context.state.startDateHeader,
ed: context.state.endDateHeader
}
let resp = await api.insertheader(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", true)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_successMsg", 'Berhasil Membuat Harga ' + context.state.nameHeader)
context.commit("update_loading", false)
context.commit("update_snackbarSuccess", true)
context.commit("update_dialogPriceHeader", false)
context.commit("update_nameHeader", '')
context.dispatch("searchPriceHeader")
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", true)
context.commit("update_errorMsg", e)
}
},
async editPriceHeader(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
id: context.state.selectedPriceHeader.headerID,
token: one_token(),
name: context.state.nameHeader,
sd: context.state.startDateHeader,
ed: context.state.endDateHeader
}
let resp = await api.editheader(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", true)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_successMsg", 'Berhasil Edit Harga ' + context.state.nameHeader)
context.commit("update_loading", false)
context.commit("update_snackbarSuccess", true)
context.commit("update_dialogPriceHeader", false)
context.commit("update_nameHeader", '')
context.dispatch("searchPriceHeader")
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", true)
context.commit("update_errorMsg", e)
}
},
async deletePriceHeader(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
id: context.state.selectedPriceHeader.headerID,
token: one_token(),
}
let resp = await api.deleteheader(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", true)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_successMsg", 'Berhasil Hapus Harga ' + context.state.nameHeader)
context.commit("update_loading", false)
context.commit("update_snackbarSuccess", true)
context.commit("update_dialogDeleteHeader", false)
context.commit("update_nameHeader", '')
context.dispatch("searchPriceHeader")
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", true)
context.commit("update_errorMsg", e)
}
},
async getpricefilter(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
token: one_token(),
}
let resp = await api.getfilterprice(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_loading", false)
context.commit("update_filterStatus", resp.data.status)
context.commit("update_filterSubGroup", resp.data.subgroup)
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", e)
}
},
async searchpricetest(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
token: one_token(),
search: context.state.filterName,
subgroup: context.state.selectedFilterSubGroup.id,
status: context.state.selectedFilterStatus.id,
headerid: context.state.selectedPriceHeader.headerID,
page: context.state.priceTestPage,
}
let resp = await api.searchpricetest(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_loading", false)
context.commit("update_priceTestList", resp.data.records)
context.commit("update_priceTestPageTotal", resp.data.total)
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", e)
}
},
async savetest(context, prm) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
prm.token = one_token();
prm.headerid = context.state.selectedPriceHeader.headerID
let resp = await api.savetest(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_snackbarError", false)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_successMsg", 'Berhasil simpan harga')
context.commit("update_snackbarSuccess", false)
context.commit("update_loading", false)
context.dispatch("searchpricetest");
context.dispatch("searchPriceHeader");
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", e)
}
},
async copyharga(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
token: one_token(),
headerid: context.state.selectedPriceHeaderCopy.headerID,
name: context.state.nameHeader,
copypacket: context.state.copyPacket
}
let resp = await api.copyharga(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", resp.message)
context.commit("update_snackbarError", false)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_loading", false)
context.commit("update_successMsg", 'Berhasil copy harga')
context.commit("update_snackbarSuccess", false)
context.dispatch("searchPriceHeader");
context.commit("update_dialogCopyHarga", false)
context.commit("update_nameHeader", '')
context.commit("update_selectedPriceHeaderCopy", {})
context.commit("update_copyPacket", false)
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", e)
}
},
async validateheader(context) {
context.commit("update_lookup_status", 1)
context.commit("update_loading", true)
try {
let prm = {
token: one_token(),
id: context.state.selectedPriceHeader.headerID,
}
let resp = await api.validateheader(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_successMsg", 'Berhasil validasi price header')
context.commit("update_snackbarSuccess", false)
context.commit("update_loading", false)
context.commit("update_dialogValidasi", false)
context.dispatch("searchPriceHeader");
context.dispatch("searchpricetest");
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_loading", false)
context.commit("update_errorMsg", e)
}
},
async searchPriceHeaderAutocomplete(context, prm) {
context.commit("update_lookup_status", 1)
try {
prm.token = one_token();
prm.headerid = context.state.selectedPriceHeader.headerID
let resp = await api.searchpricetestautocomplete(prm)
if (resp.status != "OK") {
context.commit("update_lookup_status", 3)
context.commit("update_errorMsg", resp.message)
} else {
context.commit("update_lookup_status", 2)
context.commit("update_errorMsg", '')
context.commit("update_priceHeaderCopyList", resp.data.records)
}
} catch (e) {
console.log(e)
context.commit("update_lookup_status", 3)
context.commit("update_errorMsg", e)
}
},
}
}