// 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:[]} }, 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 // 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' } // } state.cito[val.t] = val.v state.selected_test = test } }, actions: { delete_px (context, test) { let sel = context.state.selected_test sel.forEach(function(t, idx) { if(t.T_PriceID == test.T_PriceID) { sel.splice(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("update_req", null) }, 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 = 0 if (context.rootState.company.selected_mou.M_MouID) { mouCompanyID = context.rootState.company.selected_mou.M_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 ) } }, } }