Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/redux/actions/putaways.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export const SUBMIT_PUTAWAY_ITEM_BIN_LOCATION = 'SUBMIT_PUTAWAY_ITEM_BIN_LOCATIO
export const SUBMIT_PUTAWAY_ITEM_BIN_LOCATION_SUCCESS = 'SUBMIT_PUTAWAY_ITEM_BIN_LOCATION_SUCCESS';
export const PATCH_PUTAWAY_TASK_REQUEST = 'PATCH_PUTAWAY_TASK_REQUEST';
export const PATCH_PUTAWAY_TASK_REQUEST_SUCCESS = 'PATCH_PUTAWAY_TASK_REQUEST_SUCCESS';
export const PUTAWAY_CANDIDATE_PUT_AWAY = 'PUTAWAY_CANDIDATE_PUT_AWAY';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. PUT_AWAY should be one word - PUTAWAY,
  2. PUTAWAY_CANDIDATE_PUTAWAY should definitely be something else, but I don't see the context yet. What is it supposed to indicate? Start of a putaway task? Split of a putaway task?

export const GET_PUTAWAY_DETAILS_BY_CONTAINER_ID_REQUEST = 'GET_PUTAWAY_DETAILS_BY_CONTAINER_ID_REQUEST';
export const GET_PUTAWAY_DETAILS_BY_CONTAINER_ID_REQUEST_SUCCESS =
'GET_PUTAWAY_DETAILS_BY_CONTAINER_ID_REQUEST_SUCCESS';
Expand Down Expand Up @@ -66,6 +67,13 @@ export function patchPutawayTaskAction(
};
}

export function markCandidatePutAway(key: string, remainingQuantity: number) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be "markCandidatePutaway"

return {
type: PUTAWAY_CANDIDATE_PUT_AWAY,
payload: { key, remainingQuantity }
};
}

export function getPutawayDetailsByContainerId(containerId: string, callback?: (data: any) => void) {
return {
type: GET_PUTAWAY_DETAILS_BY_CONTAINER_ID_REQUEST,
Expand Down
25 changes: 23 additions & 2 deletions src/redux/reducers/putawayReducer.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { SortationTask } from '../../types/sortation';
import { putawayCandidateKey } from '../../utils/putawayCandidate';
import {
FETCH_PUTAWAY_FROM_ORDER_REQUEST_SUCCESS,
GET_PUTAWAY_CANDIDATES_REQUEST_SUCCESS,
GET_PUTAWAY_DETAILS_BY_CONTAINER_ID_REQUEST_SUCCESS,
PUTAWAY_CANDIDATE_PUT_AWAY,
SUBMIT_PUTAWAY_ITEM_BIN_LOCATION_SUCCESS
} from '../actions/putaways';

Expand All @@ -11,13 +13,15 @@ export interface State {
putAwayItem: any;
candidates: any;
putawayTasks: SortationTask[];
putAwayOverrides: { [key: string]: number };

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"putwayOverrides"

}

const initialState: State = {
putAway: null,
putAwayItem: null,
candidates: [],
putawayTasks: []
putawayTasks: [],
putAwayOverrides: {}
};

function reducer(state = initialState, action: any) {
Expand All @@ -28,10 +32,27 @@ function reducer(state = initialState, action: any) {
putAway: action.payload.data
};
}
case PUTAWAY_CANDIDATE_PUT_AWAY: {
const { key, remainingQuantity } = action.payload;
return {
...state,
putAwayOverrides: { ...state.putAwayOverrides, [key]: remainingQuantity }
};
}
case GET_PUTAWAY_CANDIDATES_REQUEST_SUCCESS: {
const candidates = action.payload || [];
// Drop overrides the server has caught up with, so they cannot go stale
const putAwayOverrides = { ...state.putAwayOverrides };
Object.keys(putAwayOverrides).forEach((key) => {
const match = candidates.find((candidate: any) => putawayCandidateKey(candidate) === key);
if (!match || Number(match.quantity) <= putAwayOverrides[key]) {
delete putAwayOverrides[key];
}
});
return {
...state,
candidates: action.payload
candidates,
putAwayOverrides
};
}
case SUBMIT_PUTAWAY_ITEM_BIN_LOCATION_SUCCESS: {
Expand Down
Loading