diff --git a/src/components/ArchivedRoutingModal.vue b/src/components/ArchivedRoutingModal.vue
index a0f2508..2731943 100644
--- a/src/components/ArchivedRoutingModal.vue
+++ b/src/components/ArchivedRoutingModal.vue
@@ -24,7 +24,6 @@
diff --git a/src/services/RoutingService.ts b/src/services/RoutingService.ts
index 0a25fd8..db4998e 100644
--- a/src/services/RoutingService.ts
+++ b/src/services/RoutingService.ts
@@ -8,7 +8,7 @@ const fetchRoutingGroups = async (payload: any): Promise => {
});
}
-const fetchRoutingGroup = async (routingGroupId: string): Promise => {
+const fetchRoutingGroupInformation = async (routingGroupId: string): Promise => {
return api({
url: `groups/${routingGroupId}`,
method: "GET"
@@ -31,14 +31,6 @@ const updateRoutingGroup = async (payload: any): Promise => {
})
}
-const fetchOrderRoutings = async (payload: any): Promise => {
- return api({
- url: `groups/${payload.routingGroupId}/routings`,
- method: "GET",
- query: payload
- });
-}
-
const fetchOrderRouting = async (orderRoutingId: string): Promise => {
return api({
url: `routings/${orderRoutingId}`,
@@ -150,9 +142,8 @@ export const OrderRoutingService = {
deleteRoutingFilter,
deleteRuleCondition,
fetchOrderRouting,
- fetchOrderRoutings,
fetchRoutingFilters,
- fetchRoutingGroup,
+ fetchRoutingGroupInformation,
fetchRoutingGroups,
fetchRoutingRules,
fetchRuleActions,
diff --git a/src/store/modules/orderRouting/actions.ts b/src/store/modules/orderRouting/actions.ts
index 550346d..9f4d34a 100644
--- a/src/store/modules/orderRouting/actions.ts
+++ b/src/store/modules/orderRouting/actions.ts
@@ -5,7 +5,8 @@ import { OrderRoutingService } from "@/services/RoutingService"
import { hasError, showToast, sortSequence } from "@/utils"
import * as types from './mutation-types'
import logger from "@/logger"
-import { Route, RouteFilter } from "@/types"
+import { RouteFilter } from "@/types"
+import { DateTime } from "luxon"
const actions: ActionTree = {
async fetchOrderRoutingGroups({ commit }) {
@@ -35,7 +36,8 @@ const actions: ActionTree = {
async createRoutingGroup({ dispatch }, groupName) {
const payload = {
groupName,
- productStoreId: "STORE"
+ productStoreId: "STORE",
+ createdDate: DateTime.now().toMillis()
}
try {
const resp = await OrderRoutingService.createRoutingGroup(payload)
@@ -50,40 +52,11 @@ const actions: ActionTree = {
}
},
- async updateRoutingGroup({ commit, state }, payload) {
- const current = JSON.parse(JSON.stringify(state.currentGroup))
-
- const params = {
- routingGroupId: payload.routingGroupId,
- [payload.fieldToUpdate]: payload.value
- }
+ async fetchCurrentRoutingGroup({ commit }, routingGroupId) {
+ let currentGroup = {} as any
try {
- const resp = await OrderRoutingService.updateRoutingGroup(params);
-
- if(!hasError(resp) && resp.data.routingGroupId) {
- current[payload.fieldToUpdate] = payload.value
- showToast("Rounting group information updated")
- } else {
- throw resp.data
- }
- } catch(err) {
- logger.error(err);
- }
- commit(types.ORDER_ROUTING_CURRENT_GROUP_UPDATED, current)
- },
-
- async fetchCurrentRoutingGroup({ dispatch, state }, routingGroupId) {
- const current = state.currentGroup
- if(current.routingGroupId && current.routingGroupId === routingGroupId) {
- dispatch("setCurrentRoutingGroup", current)
- return;
- }
-
- let currentGroup = {}
-
- try {
- const resp = await OrderRoutingService.fetchRoutingGroup(routingGroupId);
+ const resp = await OrderRoutingService.fetchRoutingGroupInformation(routingGroupId);
if(!hasError(resp) && resp.data) {
currentGroup = resp.data
@@ -94,41 +67,15 @@ const actions: ActionTree = {
logger.error(err);
}
- dispatch("setCurrentRoutingGroup", currentGroup)
- },
-
- async setCurrentRoutingGroup({ commit }, payload) {
- commit(types.ORDER_ROUTING_CURRENT_GROUP_UPDATED, payload)
- },
-
- async fetchOrderRoutings({ commit }, routingGroupId) {
- let orderRoutings = [] as any;
- // filter groups on the basis of productStoreId
- const payload = {
- routingGroupId
+ if(currentGroup.routings.length) {
+ currentGroup.routings = sortSequence(currentGroup.routings)
}
- try {
- const resp = await OrderRoutingService.fetchOrderRoutings(payload);
-
- if(!hasError(resp) && resp.data.length) {
- orderRoutings = resp.data
- } else {
- throw resp.data
- }
- } catch(err) {
- logger.error(err);
- }
-
- if(orderRoutings.length) {
- orderRoutings = sortSequence(orderRoutings)
- }
-
- commit(types.ORDER_ROUTINGS_UPDATED, orderRoutings)
+ commit(types.ORDER_ROUTING_CURRENT_GROUP_UPDATED, currentGroup)
},
- async createOrderRouting({ commit, state }, payload) {
- let orderRoutings = JSON.parse(JSON.stringify(state.routes))
+ async createOrderRouting({ dispatch, state }, payload) {
+ const currentGroup = JSON.parse(JSON.stringify(state.currentGroup))
let orderRoutingId = ''
try {
@@ -136,19 +83,18 @@ const actions: ActionTree = {
if(!hasError(resp) && resp?.data.orderRoutingId) {
orderRoutingId = resp.data.orderRoutingId
- orderRoutings.push({
+ currentGroup["routings"].push({
...payload,
orderRoutingId
})
- showToast('New Order Routing Created')
+ showToast('New routing created')
}
- // Sort the routings and update the state only on success
- if(orderRoutings.length) {
- orderRoutings = sortSequence(orderRoutings)
+ if(currentGroup["routings"].length) {
+ currentGroup["routings"] = sortSequence(currentGroup["routings"])
}
- commit(types.ORDER_ROUTINGS_UPDATED, orderRoutings)
+ await dispatch("setCurrentGroup", currentGroup)
} catch(err) {
showToast("Failed to create order routing")
logger.error('err', err)
@@ -157,41 +103,8 @@ const actions: ActionTree = {
return orderRoutingId;
},
- async updateOrderRouting({ commit, state }, payload) {
- let orderRoutings = JSON.parse(JSON.stringify(state.routes))
- const field: Route[keyof Route] = payload.fieldToUpdate
- let orderRoutingId = ''
-
- const params = {
- orderRoutingId: payload.orderRoutingId,
- [field]: payload.value // only one field can be updated once for orderRouting
- }
-
- try {
- const resp = await OrderRoutingService.updateOrderRouting(params);
-
- if(!hasError(resp) && resp.data.orderRoutingId) {
- orderRoutingId = resp.data.orderRoutingId
- orderRoutings.map((routing: Route) => {
- if(routing.orderRoutingId === orderRoutingId) {
- routing[field] = payload.value
- }
- })
- showToast("Order routing information updated")
- } else {
- throw resp.data
- }
- } catch(err) {
- showToast("Failed to update order routing")
- logger.error(err);
- }
-
- if(orderRoutings.length) {
- orderRoutings = sortSequence(orderRoutings)
- }
-
- commit(types.ORDER_ROUTINGS_UPDATED, orderRoutings)
- return orderRoutingId;
+ async setCurrentGroup({ commit }, currentGroup) {
+ commit(types.ORDER_ROUTING_CURRENT_GROUP_UPDATED, currentGroup)
},
async fetchCurrentOrderRouting({ dispatch, state }, orderRoutingId) {
diff --git a/src/store/modules/orderRouting/getters.ts b/src/store/modules/orderRouting/getters.ts
index a95480f..b38bfd2 100644
--- a/src/store/modules/orderRouting/getters.ts
+++ b/src/store/modules/orderRouting/getters.ts
@@ -6,9 +6,6 @@ const getters: GetterTree = {
getRoutingGroups(state) {
return state.groups
},
- getOrderRoutings(state) {
- return state.routes
- },
getRoutingRules(state) {
return JSON.parse(JSON.stringify(state.rules))
},
diff --git a/src/utils/index.ts b/src/utils/index.ts
index 52856be..acfd9fd 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -119,6 +119,8 @@ const jsonToCsv = (file: any, options: JsonToCsvOption = {}) => {
}
const sortSequence = (sequence: Array) => {
+ // Currently, sorting is only performed on sequenceNum, so if two seqence have same seqNum then they will be arranged in FCFS basis
+ // TODO: Need to check that if for the above case we need to define the sorting on name as well, when seqNum is same
return sequence.sort((a, b) => a.sequenceNum - b.sequenceNum)
}
diff --git a/src/views/BrokeringRoute.vue b/src/views/BrokeringRoute.vue
index 3dd0f26..17fb80a 100644
--- a/src/views/BrokeringRoute.vue
+++ b/src/views/BrokeringRoute.vue
@@ -96,7 +96,7 @@
-
+
@@ -107,16 +107,15 @@