UNPKG

@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
"use strict"; 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;