// 1 => LOADING // 2 => DONE // 3 => ERROR import * as api from "../api/px.js" export default { namespaced: true, state: { search: '', search_status:0, search_error_message:'', tests: [], total_test: 0, selected_test: [], search_panel: '', search_panel_status:0, panels: [], total_panel: 0, selected_panel: [], requirement: [], cito: {test:[], panel:[]}, selected_px_tab: 'px', nat_test: [], req_status: "X", reqs: [], citos: [], selected_cito: null, is_cito: "N" }, mutations: { update_requirement(state,val) { state.requirement = val }, update_search_error_message(state,status) { state.search_error_message = status }, update_selected_test(state,val) { // if (state.cito.length > 0) { for (var i in val) { val[i]['T_TestIsCito'] = 'N' if (state.cito.test.indexOf(val[i]['T_TestID']) > -1) val[i]['T_TestIsCito'] = 'Y' } // } state.selected_test = val }, update_mouCompanyID(state,val) { state.mouCompanyID=val }, update_search(state,val) { state.search=val }, update_search_status(state,status) { state.search_status = status }, update_tests(state,data) { state.tests= data.records state.total_test= data.total }, update_search_panel(state,val) { state.search_panel=val }, update_search_panel_status(state,status) { state.search_panel_status = status }, update_panels(state,data) { console.log('--comit--',data) state.panels = data.records state.total_panel = data.total }, update_selected_panel(state,val) { state.selected_panel= val }, update_cito(state, val) { let test = state.selected_test let cito = state.cito // if (val.length > 0) { for (var i in test) { test[i]['T_TestIsCito'] = 'N' if (val.v.indexOf(test[i]['T_TestID']) > -1) test[i]['T_TestIsCito'] = 'Y' } // } cito[val.t] = val.v console.log(cito) state.cito = cito state.selected_test = test }, update_selected_px_tab(state, tab) { state.selected_px_tab = tab }, update_nat_test(state) { let px = state.selected_test let nt = [] for (let i in px) { for (let j in px[i].nat_test) { nt.push(px[i].nat_test[j]) } } state.nat_test = nt }, update_req_status(state, val) { state.req_status = val }, update_reqs(state, val) { state.reqs = val }, update_citos(state, val) { state.citos = val.records }, update_selected_cito(state, val) { state.selected_cito = val }, update_is_cito(state, val) { state.is_cito = val }, reset_px (state) { state.selected_test = [] state.search = "" } }, actions: { delete_px (context, test) { let sel = context.state.selected_test sel.forEach(function(t, idx) { if(t.T_TestID == test.T_TestID && t.px_type == test.px_type) { sel.splice(idx,1) } }); let cito = context.state.cito.test let cito_idx = cito.indexOf(test.T_TestID) if (cito_idx > -1) cito.splice(cito_idx, 1) context.commit("update_selected_test", sel) let tests = context.state.tests if (tests == undefined ) tests = [] tests.push(test) let dt = { records : tests, total: tests.length } context.commit("update_tests", dt) // context.dispatch("delete_req", test) // context.dispatch("update_req", null) // context.dispatch("appx_schedule") context.commit('update_nat_test') }, update_req(context, px) { let reqs = [] let tests = context.state.selected_test tests.forEach( function(t) { let label = t.T_TestRequirement if (_.indexOf(reqs,label) == -1 ) reqs.push(label) }) let panels = context.state.selected_panel panels.forEach( function(p) { let tests = p.test tests.forEach( function(t) { let label = t.T_TestRequirement if (_.indexOf(reqs,label) == -1 ) reqs.push(label) }) }) let requirement = context.state.requirement let flag_update_requirement = false if (reqs.length == 0 ) { requirement = [] flag_update_requirement = true } requirement.forEach(function(r,idx) { if ( _.indexOf(reqs,r.label) == -1) { flag_update_requirement = true requirement.splice(idx,1) } }) if (flag_update_requirement) { context.commit('update_requirement', requirement) } }, async search(context,prm) { context.commit("update_search_status",1) try { let mouCompanyID = context.rootState.conf.selected_conf.Conf_ClinicM_MouID let resp= await api.search(mouCompanyID, context.state.search) 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_tests",data) } } catch(e) { context.commit("update_search_status",3) context.commit("update_search_error_message",e.message ) console.log(e) } }, async panel(context,prm) { context.commit("update_search_panel_status",1) try { let mouCompanyID = 0 if (context.rootState.company.selected_mou.M_MouCompanyID) { mouCompanyID = context.rootState.company.selected_mou.M_MouCompanyID } let resp= await api.panel(mouCompanyID,context.state.search) if (resp.status != "OK") { context.commit("update_search_panel_status",3) context.commit("update_search_error_message",resp.message) } else { context.commit("update_search_panel_status",2) context.commit("update_search_error_message","") let data = { records : resp.data.records, total: resp.data.total } context.commit("update_panels",data) } } catch(e) { context.commit("update_search_panel_status",3) context.commit("update_search_error_message",e.message ) } }, async get_price(context, prm) { context.commit("update_search_status",1) try { let mou_id = context.rootState.company.selected_mou.M_MouID let resp = await api.get_price(prm.test_id, mou_id, prm.cito) 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 x = context.state.selected_test for (let i in x) { if (x[i].T_TestID == prm.test_id) { if (Math.round(resp.data.test_price) == 0) { x[i].T_TestIsCito = "N" let n = context.state.cito.test.indexOf(x[i].T_TestID) if (n > -1) context.state.cito.test.splice(n, 1) let tests = context.state.tests if (tests == undefined ) tests = [] tests.push(x[i]) let dt = { records : tests, total: tests.length } context.commit("update_tests", dt) x.splice(i, 1); } else { x[i].T_PriceAmount = resp.data.test_price x[i].T_PriceDisc = resp.data.test_disc x[i].T_PriceDiscRp = resp.data.test_discrp } } } context.commit("update_selected_test", x) } } catch(e) { context.commit("update_search_status",3) context.commit("update_search_error_message",e.message ) } }, } }