251 lines
7.9 KiB
JavaScript
251 lines
7.9 KiB
JavaScript
// 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 )
|
|
|
|
}
|
|
},
|
|
}
|
|
}
|