// 1 => LOADING // 2 => DONE // 3 => ERROR import * as api from "../api/order.js" export default { namespaced: true, state: { search_status: 0, search_error_message: '', query: '', orders: [], selected_order: {}, total_order: 0, total_order_page: 0, curr_order_page: 1, is_internal: "N", snackbar: false, selected_order: [], statuses: [{"val":"N", "label":"Belum Serah Terima"}, {"val":"Y", "label":"Sudah Serah Terima"}], selected_status: "N", samples: [], selected_sample: {}, couriers: [], selected_courier: {}, dialog_finish: false, dialog_print: false, rpt_url: '' }, mutations: { update_search_error_message(state, order) { state.search_error_message = order }, update_search_status(state, v) { state.search_status = v }, update_query(state, q) { state.query = q }, update_orders(state, d) { state.orders = d.records state.total_order = d.total state.total_order_page = d.total_page }, update_selected_order(state, d) { state.selected_order = d }, update_curr_order_page(state, d) { state.curr_order_page = d }, update_is_internal(state, d) { state.is_internal = d }, update_snackbar(state, d) { state.snackbar = d }, update_selected_order(state, d) { state.selected_order = d }, update_selected_status(state, d) { state.selected_status = d }, update_samples(state, d) { state.samples = d.records }, update_selected_sample(state, d) { state.selected_sample = d }, update_couriers(state, d) { state.couriers = d.records }, update_selected_courier(state, d) { state.selected_courier = d }, update_dialog_finish(state, d) { state.dialog_finish = d }, update_dialog_print(state, d) { state.dialog_print = d }, update_rpt_dialog(state, d) { state.rpt_url = d } }, actions: { async search(context) { try { let resp = await api.search(context.state.query, context.state.is_internal, context.state.selected_status) 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, total_page: resp.data.total_page } context.commit("update_orders", data) try { context.commit('update_selected_order', data.records[0]) context.commit('update_selected_courier', {M_CourierID:data.records[0].M_CourierID, M_StaffName:data.records[0].M_StaffName}) context.dispatch('search_sample') } catch (error) { context.commit('update_selected_order', {}) context.commit('update_samples', {records:[]}) context.commit('update_selected_courier', {}) } } } catch (e) { context.commit("update_search_status", 3) context.commit("update_search_error_message", e.message) } }, async search_sample(context) { try { let resp = await api.search_sample(context.state.selected_order.T_OrderRefOutHeaderID) 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, total_page: resp.data.total_page } context.commit("update_samples", data) } } catch (e) { context.commit("update_search_status", 3) context.commit("update_search_error_message", e.message) context.commit('update_samples', {records:[]}) } }, async search_courier(context) { try { let resp = await api.search_courier() 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_couriers", data) } } catch (e) { context.commit("update_search_status", 3) context.commit("update_search_error_message", e.message) } }, async send(context) { try { let samples = context.state.samples let x = [] for (let i in samples) if (samples[i].selected == "Y") x.push(samples[i].T_OrderRefOutSampleID) if (x.length < 1) { alert('Tidak ada sampel yang dikirim !') return } let resp = await api.send(one_token(), context.state.selected_order.T_OrderRefOutHeaderID, JSON.stringify(x), context.state.selected_courier.M_CourierID) 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_snackbar', true) context.commit('update_dialog_finish', true) // context.dispatch('search') } } catch (e) { context.commit("update_search_status", 3) context.commit("update_search_error_message", e.message) } } } }