@open-tender/store
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API
640 lines (639 loc) • 31.2 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.selectKdsPageIndex = exports.selectKdsPage = exports.selectKdsAllDayMods = exports.selectKdsAllDay = exports.selectKdsSummary = exports.selectKdsColorScheme = exports.selectKdsFontSize = exports.selectKdsCardWidth = exports.selectKdsBoxes = exports.selectKdsColumns = exports.selectKdsOrderType = exports.selectKdsPrepType = exports.selectKdsPrepStation = exports.selectKdsPrepStationId = exports.selectKdsPrepStations = exports.selectKdsItemTypes = exports.selectKdsTerminal = exports.selectKds = exports.replaceKdsOrder = exports.setKdsOrder = exports.toggleKdsAllDayMods = exports.toggleKdsAllDay = exports.toggleKdsSummary = exports.setKdsSearch = exports.setKdsBusinessDate = exports.setKdsView = exports.setKdsPage = exports.setKdsColorScheme = exports.setKdsFontSize = exports.setKdsCardWidth = exports.setKdsBoxes = exports.setKdsColumns = exports.setKdsOrderType = exports.setKdsPrepStationId = exports.setKdsPrepStations = exports.setKdsItemTypes = exports.setKdsTerminalId = exports.resetkds = exports.completeTicket = exports.doneTicket = exports.resetTicket = exports.updateTicket = exports.printTicket = exports.resetTickets = exports.updateTickets = exports.printTickets = exports.printKdsOrder = exports.updateKdsOrder = exports.fetchKdsOrders = exports.KdsActionType = void 0;
exports.kdsReducer = exports.selectKdsOrdersCounts = exports.selectKdsPrepStationAllIncompleteToday = exports.selectKdsPrepStationAllIncomplete = exports.selectKdsPrepStationAllDay = exports.selectKdsPrepStationOrders = exports.selectKdsFutureCount = exports.selectKdsFutureOrders = exports.selectKdsCurrentCount = exports.selectKdsCurrentOrders = exports.selectKdsOrders = exports.selectKdsOrder = exports.selectKdsBusinessDate = exports.selectKdsView = void 0;
var tslib_1 = require("tslib");
var utils_1 = require("@open-tender/utils");
var toolkit_1 = require("@reduxjs/toolkit");
var utils_2 = require("../utils");
var alerts_1 = require("./alerts");
var types_1 = require("./types");
var initialState = {
terminalId: null,
itemTypes: null,
prepStations: [],
prepStationId: null,
orderType: 'CURRENT',
columns: 4,
boxes: 8,
cardWidth: 320,
fontSize: 'medium',
colorScheme: 'dark',
view: null,
page: 1,
search: null,
businessDate: null,
summary: true,
allDay: false,
allDayMods: false,
orders: [],
loading: 'idle',
error: null,
order: null,
counts: { current: null, future: null, qa: null },
stationCounts: null
};
var KdsActionType;
(function (KdsActionType) {
KdsActionType["FetchKdsOrders"] = "kds/fetchKdsOrders";
KdsActionType["UpdateKdsOrder"] = "kds/updateKdsOrder";
KdsActionType["PrintKdsOrder"] = "kds/printKdsOrder";
KdsActionType["PrintTickets"] = "kds/printTickets";
KdsActionType["ResetTickets"] = "kds/resetTickets";
KdsActionType["PrintTicket"] = "kds/printTicket";
KdsActionType["UpdateTicket"] = "kds/updateTicket";
KdsActionType["ResetTicket"] = "kds/resetTicket";
KdsActionType["DoneTicket"] = "kds/doneTicket";
KdsActionType["CompleteTicket"] = "kds/completeTicket";
})(KdsActionType || (exports.KdsActionType = KdsActionType = {}));
exports.fetchKdsOrders = (0, toolkit_1.createAsyncThunk)(KdsActionType.FetchKdsOrders, function (params_1, _a) { return tslib_1.__awaiter(void 0, [params_1, _a], void 0, function (params, _b) {
var api, args, orders, ordersKds, prepStations, stationCounts, err_1;
var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 2, , 3]);
api = getState().config.api;
args = (0, utils_2.makeOrdersParams)(params);
return [4 /*yield*/, api.getOrders(args)];
case 1:
orders = _c.sent();
ordersKds = (0, utils_2.makeKdsOrders)(orders);
prepStations = getState().kds.prepStations;
stationCounts = prepStations
? (0, utils_2.makeKdsStationCounts)(ordersKds, prepStations)
: null;
// const itemTypes = getState().kds.itemTypes
// const counts = makeKdsCounts(itemTypes, ordersKds)
return [2 /*return*/, { orders: ordersKds, stationCounts: stationCounts }];
case 2:
err_1 = _c.sent();
return [2 /*return*/, rejectWithValue(err_1)];
case 3: return [2 /*return*/];
}
});
}); });
exports.updateKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.UpdateKdsOrder, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, order, err_2, detail;
var orderId = _c.orderId, data = _c.data;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
return [4 /*yield*/, api.patchOrder(orderId, data)];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_2 = _e.sent();
detail = err_2.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.printKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.PrintKdsOrder, function (orderId_1, _a) { return tslib_1.__awaiter(void 0, [orderId_1, _a], void 0, function (orderId, _b) {
var api, order, err_3, detail;
var getState = _b.getState, dispatch = _b.dispatch;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 2, , 3]);
api = getState().config.api;
return [4 /*yield*/, api.postReceipt(orderId)];
case 1:
order = _c.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_3 = _c.sent();
detail = err_3.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.printTickets = (0, toolkit_1.createAsyncThunk)(KdsActionType.PrintTickets, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, statusUpdate, data, order, err_4, detail;
var orderId = _c.orderId, ticketNos = _c.ticketNos, status = _c.status;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
statusUpdate = status ? { ticket_status: status } : {};
data = ticketNos
? tslib_1.__assign(tslib_1.__assign({}, statusUpdate), { ticket_nos: ticketNos }) : statusUpdate;
return [4 /*yield*/, api.postTicketsPrint(orderId, data)];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_4 = _e.sent();
detail = err_4.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.updateTickets = (0, toolkit_1.createAsyncThunk)(KdsActionType.PrintTickets, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, statusUpdate, data, order, err_5, detail;
var orderId = _c.orderId, ticketNos = _c.ticketNos, status = _c.status;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
statusUpdate = { ticket_status: status };
data = ticketNos
? tslib_1.__assign(tslib_1.__assign({}, statusUpdate), { ticket_nos: ticketNos }) : statusUpdate;
return [4 /*yield*/, api.putTicketsStatus(orderId, data)];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_5 = _e.sent();
detail = err_5.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.resetTickets = (0, toolkit_1.createAsyncThunk)(KdsActionType.ResetTickets, function (orderId_1, _a) { return tslib_1.__awaiter(void 0, [orderId_1, _a], void 0, function (orderId, _b) {
var api, order, err_6, detail;
var getState = _b.getState, dispatch = _b.dispatch;
return tslib_1.__generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 2, , 3]);
api = getState().config.api;
return [4 /*yield*/, api.postTicketsReset(orderId)];
case 1:
order = _c.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_6 = _c.sent();
detail = err_6.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.printTicket = (0, toolkit_1.createAsyncThunk)(KdsActionType.PrintTicket, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, data, order, err_7, detail;
var orderId = _c.orderId, ticketNo = _c.ticketNo, status = _c.status;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
data = status ? { ticket_status: status } : undefined;
return [4 /*yield*/, api.postTicketPrint(orderId, ticketNo, data)];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_7 = _e.sent();
detail = err_7.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.updateTicket = (0, toolkit_1.createAsyncThunk)(KdsActionType.UpdateTicket, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, data, order, err_8, detail;
var orderId = _c.orderId, ticketNo = _c.ticketNo, status = _c.status;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
data = status ? { ticket_status: status } : undefined;
return [4 /*yield*/, api.putTicketStatus(orderId, ticketNo, data)];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_8 = _e.sent();
detail = err_8.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.resetTicket = (0, toolkit_1.createAsyncThunk)(KdsActionType.ResetTicket, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, order, err_9, detail;
var orderId = _c.orderId, ticketNo = _c.ticketNo;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
return [4 /*yield*/, api.postTicketStatus(orderId, ticketNo, 'reset')];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_9 = _e.sent();
detail = err_9.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.doneTicket = (0, toolkit_1.createAsyncThunk)(KdsActionType.DoneTicket, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, order, err_10, detail;
var orderId = _c.orderId, ticketNo = _c.ticketNo;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
return [4 /*yield*/, api.postTicketStatus(orderId, ticketNo, 'done')];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_10 = _e.sent();
detail = err_10.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
exports.completeTicket = (0, toolkit_1.createAsyncThunk)(KdsActionType.CompleteTicket, function (_a, _b) { return tslib_1.__awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
var api, order, err_11, detail;
var orderId = _c.orderId, ticketNo = _c.ticketNo;
var getState = _d.getState, dispatch = _d.dispatch;
return tslib_1.__generator(this, function (_e) {
switch (_e.label) {
case 0:
_e.trys.push([0, 2, , 3]);
api = getState().config.api;
return [4 /*yield*/, api.postTicketStatus(orderId, ticketNo, 'completed')];
case 1:
order = _e.sent();
dispatch((0, exports.replaceKdsOrder)((0, utils_2.makeKdsOrder)(order)));
return [3 /*break*/, 3];
case 2:
err_11 = _e.sent();
detail = err_11.detail;
dispatch((0, alerts_1.addAlert)(detail));
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); });
var kdsSlice = (0, toolkit_1.createSlice)({
name: types_1.ReducerType.Kds,
initialState: initialState,
reducers: {
resetkds: function () { return initialState; },
setKdsTerminalId: function (state, action) {
state.terminalId = action.payload;
},
setKdsItemTypes: function (state, action) {
state.itemTypes = action.payload;
},
setKdsPrepStations: function (state, action) {
state.prepStations = action.payload;
},
setKdsPrepStationId: function (state, action) {
state.prepStationId = action.payload;
},
setKdsOrderType: function (state, action) {
state.orderType = action.payload;
},
setKdsColumns: function (state, action) {
state.columns = action.payload;
},
setKdsBoxes: function (state, action) {
state.boxes = action.payload;
},
setKdsCardWidth: function (state, action) {
state.cardWidth = action.payload;
},
setKdsFontSize: function (state, action) {
state.fontSize = action.payload;
},
setKdsColorScheme: function (state, action) {
state.colorScheme = action.payload;
},
setKdsPage: function (state, action) {
state.page = action.payload;
},
setKdsView: function (state, action) {
state.view = action.payload;
},
setKdsBusinessDate: function (state, action) {
state.businessDate = action.payload;
},
setKdsSearch: function (state, action) {
state.search = action.payload;
},
toggleKdsSummary: function (state) {
state.summary = !state.summary;
},
toggleKdsAllDay: function (state) {
state.allDay = !state.allDay;
},
toggleKdsAllDayMods: function (state) {
state.allDayMods = !state.allDayMods;
},
setKdsOrder: function (state, action) {
state.order = action.payload;
},
replaceKdsOrder: function (state, action) {
var updated = action.payload;
var tz = utils_1.timezoneMap[updated.timezone];
var updatedOrders = state.orders
.map(function (i) {
return i.order_uuid === updated.order_uuid ? updated : i;
})
.filter(function (i) { var _a; return (_a = i.order_prep) === null || _a === void 0 ? void 0 : _a.fire_at; });
var orders = updatedOrders
.map(function (i) {
var _a;
return (tslib_1.__assign(tslib_1.__assign({}, i), { fireAt: ((_a = i.order_prep) === null || _a === void 0 ? void 0 : _a.fire_at)
? (0, utils_1.isoToDate)(i.order_prep.fire_at, tz)
: new Date() }));
})
.sort(function (a, b) { return a.fireAt.getTime() - b.fireAt.getTime(); });
// const counts = makeKdsCounts(state.itemTypes, orders)
var stationCounts = (0, utils_2.makeKdsStationCounts)(updatedOrders, state.prepStations || []);
var order = state.order ? updated : null;
return tslib_1.__assign(tslib_1.__assign({}, state), { orders: orders, order: order, stationCounts: stationCounts });
}
},
extraReducers: function (builder) {
builder
.addCase(exports.fetchKdsOrders.fulfilled, function (state, action) {
var _a = action.payload, orders = _a.orders, stationCounts = _a.stationCounts;
state.orders = orders;
state.stationCounts = stationCounts;
state.loading = 'idle';
state.error = null;
})
.addCase(exports.fetchKdsOrders.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.fetchKdsOrders.rejected, function (state, action) {
state.error = action.payload;
state.loading = 'idle';
})
.addCase(exports.updateKdsOrder.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.updateKdsOrder.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.updateKdsOrder.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.printKdsOrder.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.printKdsOrder.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.printKdsOrder.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.printTickets.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.printTickets.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.printTickets.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.resetTickets.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.resetTickets.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.resetTickets.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.printTicket.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.printTicket.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.printTicket.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.updateTicket.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.updateTicket.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.updateTicket.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.resetTicket.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.resetTicket.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.resetTicket.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.doneTicket.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.doneTicket.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.doneTicket.rejected, function (state) {
state.loading = 'idle';
})
.addCase(exports.completeTicket.fulfilled, function (state) {
state.loading = 'idle';
state.error = null;
})
.addCase(exports.completeTicket.pending, function (state) {
state.loading = 'pending';
})
.addCase(exports.completeTicket.rejected, function (state) {
state.loading = 'idle';
});
}
});
exports.resetkds = (_a = kdsSlice.actions, _a.resetkds), exports.setKdsTerminalId = _a.setKdsTerminalId, exports.setKdsItemTypes = _a.setKdsItemTypes, exports.setKdsPrepStations = _a.setKdsPrepStations, exports.setKdsPrepStationId = _a.setKdsPrepStationId, exports.setKdsOrderType = _a.setKdsOrderType, exports.setKdsColumns = _a.setKdsColumns, exports.setKdsBoxes = _a.setKdsBoxes, exports.setKdsCardWidth = _a.setKdsCardWidth, exports.setKdsFontSize = _a.setKdsFontSize, exports.setKdsColorScheme = _a.setKdsColorScheme, exports.setKdsPage = _a.setKdsPage, exports.setKdsView = _a.setKdsView, exports.setKdsBusinessDate = _a.setKdsBusinessDate, exports.setKdsSearch = _a.setKdsSearch, exports.toggleKdsSummary = _a.toggleKdsSummary, exports.toggleKdsAllDay = _a.toggleKdsAllDay, exports.toggleKdsAllDayMods = _a.toggleKdsAllDayMods, exports.setKdsOrder = _a.setKdsOrder, exports.replaceKdsOrder = _a.replaceKdsOrder;
var selectKds = function (state) { return state.kds; };
exports.selectKds = selectKds;
var selectKdsTerminal = function (state) {
var terminalId = state.kds.terminalId;
if (!terminalId || !state.config.devices)
return null;
var kds_terminals = state.config.devices.kds_terminals;
return kds_terminals.find(function (i) { return i.kds_terminal_id === terminalId; });
};
exports.selectKdsTerminal = selectKdsTerminal;
var selectKdsItemTypes = function (state) { return state.kds.itemTypes; };
exports.selectKdsItemTypes = selectKdsItemTypes;
var selectKdsPrepStations = function (state) { return state.kds.prepStations; };
exports.selectKdsPrepStations = selectKdsPrepStations;
var selectKdsPrepStationId = function (state) {
return state.kds.prepStationId;
};
exports.selectKdsPrepStationId = selectKdsPrepStationId;
var selectKdsPrepStation = function (state) {
var _a;
var _b = state.kds, prepStations = _b.prepStations, prepStationId = _b.prepStationId;
return (_a = prepStations === null || prepStations === void 0 ? void 0 : prepStations.find(function (i) { return i.prep_station_id === prepStationId; })) !== null && _a !== void 0 ? _a : null;
};
exports.selectKdsPrepStation = selectKdsPrepStation;
var selectKdsPrepType = function (state) {
var prepStation = (0, exports.selectKdsPrepStation)(state);
return prepStation ? prepStation.prep_type : null;
};
exports.selectKdsPrepType = selectKdsPrepType;
var selectKdsOrderType = function (state) { return state.kds.orderType; };
exports.selectKdsOrderType = selectKdsOrderType;
var selectKdsColumns = function (state) { return state.kds.columns; };
exports.selectKdsColumns = selectKdsColumns;
var selectKdsBoxes = function (state) { return state.kds.boxes; };
exports.selectKdsBoxes = selectKdsBoxes;
var selectKdsCardWidth = function (state) { return state.kds.cardWidth; };
exports.selectKdsCardWidth = selectKdsCardWidth;
var selectKdsFontSize = function (state) { return state.kds.fontSize; };
exports.selectKdsFontSize = selectKdsFontSize;
var selectKdsColorScheme = function (state) { return state.kds.colorScheme; };
exports.selectKdsColorScheme = selectKdsColorScheme;
var selectKdsSummary = function (state) { return state.kds.summary; };
exports.selectKdsSummary = selectKdsSummary;
var selectKdsAllDay = function (state) { return state.kds.allDay; };
exports.selectKdsAllDay = selectKdsAllDay;
var selectKdsAllDayMods = function (state) { return state.kds.allDayMods; };
exports.selectKdsAllDayMods = selectKdsAllDayMods;
var selectKdsPage = function (state) { return state.kds.page; };
exports.selectKdsPage = selectKdsPage;
var selectKdsPageIndex = function (state) { return state.kds.page - 1; };
exports.selectKdsPageIndex = selectKdsPageIndex;
var selectKdsView = function (state) { return state.kds.view; };
exports.selectKdsView = selectKdsView;
var selectKdsBusinessDate = function (state) { return state.kds.businessDate; };
exports.selectKdsBusinessDate = selectKdsBusinessDate;
var selectKdsOrder = function (state) { return state.kds.order; };
exports.selectKdsOrder = selectKdsOrder;
var selectKdsOrders = function (state) {
var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
return { orders: orders, loading: loading, error: error };
};
exports.selectKdsOrders = selectKdsOrders;
var selectKdsCurrentOrders = function (state) {
var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
var filtered = orders.filter(function (i) {
if (!i.order_prep)
return false;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
if (!fire_at)
return false;
var tz = utils_1.timezoneMap[i.timezone];
var fireDate = (0, utils_1.isoToDate)(fire_at, tz);
var currentDate = (0, utils_1.currentLocalDate)(tz);
return (0, utils_2.notDone)(prep_status) && fireDate < currentDate;
});
return { orders: filtered, loading: loading, error: error };
};
exports.selectKdsCurrentOrders = selectKdsCurrentOrders;
var selectKdsCurrentCount = function (state) {
var orders = (0, exports.selectKdsCurrentOrders)(state).orders;
return orders.length;
};
exports.selectKdsCurrentCount = selectKdsCurrentCount;
var selectKdsFutureOrders = function (state) {
var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
var filtered = orders.filter(function (i) {
if (!i.order_prep)
return false;
var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
if (!fire_at)
return false;
var tz = utils_1.timezoneMap[i.timezone];
var fireDate = (0, utils_1.isoToDate)(fire_at, tz);
var currentDate = (0, utils_1.currentLocalDate)(tz);
return (0, utils_2.notDone)(prep_status) && fireDate > currentDate;
});
return { orders: filtered, loading: loading, error: error };
};
exports.selectKdsFutureOrders = selectKdsFutureOrders;
var selectKdsFutureCount = function (state) {
var orders = (0, exports.selectKdsFutureOrders)(state).orders;
return orders.length;
};
exports.selectKdsFutureCount = selectKdsFutureCount;
var selectKdsPrepStationOrders = function (state) {
var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orderType = _a.orderType, orders = _a.orders;
var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
if (!prepStation)
return [];
return (0, utils_2.makeOrdersForPrepStation)(orders, prepStation, orderType);
};
exports.selectKdsPrepStationOrders = selectKdsPrepStationOrders;
var selectKdsPrepStationAllDay = function (state) {
var orders = (0, exports.selectKdsPrepStationOrders)(state);
var withMods = state.kds.allDayMods;
return (0, utils_2.makeItemCounts)(orders, withMods);
};
exports.selectKdsPrepStationAllDay = selectKdsPrepStationAllDay;
var selectKdsPrepStationAllIncomplete = function (state) {
var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orders = _a.orders;
var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
if (!prepStation)
return [];
return (0, utils_2.makeOrdersForPrepStation)(orders, prepStation, 'INCOMPLETE');
};
exports.selectKdsPrepStationAllIncomplete = selectKdsPrepStationAllIncomplete;
var selectKdsPrepStationAllIncompleteToday = function (state) {
var orders = (0, exports.selectKdsPrepStationAllIncomplete)(state);
return (0, utils_2.filterOrdersToday)(orders);
};
exports.selectKdsPrepStationAllIncompleteToday = selectKdsPrepStationAllIncompleteToday;
var selectKdsOrdersCounts = function (state) {
var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
return { current: current, future: future, qa: qa };
};
exports.selectKdsOrdersCounts = selectKdsOrdersCounts;
exports.kdsReducer = kdsSlice.reducer;