Files
FE_CPONE/test/vuex/one-md-test-ref/modules/testrefnew.js
2026-04-27 10:13:31 +07:00

185 lines
5.8 KiB
JavaScript

// 1 => LOADING
// 2 => DONE
// 3 => ERROR
import * as api from "../api/testref.js"
export default {
namespaced: true,
state: {
search_status: 0,
search_error_message: '',
// cOMPANY
companies: [],
selected_company: {},
query_company: '',
// BRANCH
branches: [],
selected_branch: {},
// SAMPLE TYPE
sample_types: [],
selected_sample_type: {},
// DATA
is_internal: "N",
dialog_new: false,
edit: false
},
mutations: {
update_search_error_message(state, patient) {
state.search_error_message = patient
},
update_search_status(state, v) {
state.search_status = v
},
update_companies(state, d) {
state.companies = d.records
},
update_selected_company(state, d) {
state.selected_company = d
},
update_query_company(state, v) {
state.query_company = v
},
update_branches(state, d) {
state.branches = d.records
},
update_selected_branch(state, d) {
state.selected_branch = d
},
update_dialog_new(state, d) {
state.dialog_new = d
},
update_is_internal(state, d) {
state.is_internal = d
},
update_edit(state, d) {
state.edit = d
},
update_sample_types(state, d) {
state.sample_types = d.records
},
update_selected_sample_type(state, d) {
state.selected_sample_type = d
}
},
actions: {
async search_company(context) {
try {
let resp = await api.search_company_all(context.state.query_company)
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
}
context.commit("update_companies", data)
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
},
async search_branch(context) {
try {
let resp = await api.search_branch_all()
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
}
context.commit("update_branches", data)
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
},
async save(context) {
try {
let data = {
is_internal:context.state.is_internal,
nattest_id:context.rootState.testref.selected_px.Nat_TestID,
sampletype_id:context.state.selected_sample_type.T_SampleTypeID
}
if (data.is_internal == 'Y')
data.branch_id = context.state.selected_branch.M_BranchID
else
data.company_id = context.state.selected_company.M_CompanyID
// IF EDIT
if (context.state.edit) {
data.testref_id = context.rootState.testref.selected_px.T_TestRefID
}
let resp = await api.save(data)
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", "")
context.commit("update_dialog_new", false)
context.dispatch('testref/search', null, {root:true})
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
},
async search_sampletype(context) {
try {
let resp = await api.search_sampletype()
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
}
context.commit("update_sample_types", data)
}
} catch (e) {
context.commit("update_search_status", 3)
context.commit("update_search_error_message", e.message)
}
}
}
}