@open-tender/store 0.3.5 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/slices/kds.d.ts +21 -2
- package/dist/cjs/slices/kds.js +60 -2
- package/dist/cjs/types/api/config.d.ts +2 -1
- package/dist/cjs/types/api/index.d.ts +1 -0
- package/dist/cjs/types/api/index.js +1 -0
- package/dist/cjs/types/api/kds.d.ts +30 -0
- package/dist/cjs/types/api/kds.js +2 -0
- package/dist/cjs/types/api/order.d.ts +2 -1
- package/dist/cjs/types/global.d.ts +0 -7
- package/dist/cjs/utils/orders.d.ts +7 -1
- package/dist/cjs/utils/orders.js +64 -1
- package/dist/esm/slices/kds.d.ts +21 -2
- package/dist/esm/slices/kds.js +59 -2
- package/dist/esm/types/api/config.d.ts +2 -1
- package/dist/esm/types/api/index.d.ts +1 -0
- package/dist/esm/types/api/index.js +1 -0
- package/dist/esm/types/api/kds.d.ts +30 -0
- package/dist/esm/types/api/kds.js +1 -0
- package/dist/esm/types/api/order.d.ts +2 -1
- package/dist/esm/types/global.d.ts +0 -7
- package/dist/esm/utils/orders.d.ts +7 -1
- package/dist/esm/utils/orders.js +57 -0
- package/package.json +1 -1
package/dist/cjs/slices/kds.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { AppState } from '../app';
|
|
2
|
-
import { DateString, FetchOrdersArgs, ItemTypes, KdsFontSize, KdsView, OrderCounts, OrderKds, OrdersAndCounts, OrdersKds, OrderUpdate, RequestError, RequestErrorAPI, RequestStatus, TicketStatus, TicketStatusUpdate } from '../types';
|
|
2
|
+
import { DateString, FetchOrdersArgs, ItemTypes, KdsFontSize, KdsOrderType, KdsView, OrderCounts, OrderKds, OrdersAndCounts, OrdersKds, OrderUpdate, PrepStations, RequestError, RequestErrorAPI, RequestStatus, TicketStatus, TicketStatusUpdate } from '../types';
|
|
3
3
|
import { ReducerType } from './types';
|
|
4
4
|
export interface KdsState {
|
|
5
5
|
itemTypes: ItemTypes | null;
|
|
6
|
+
prepStations: PrepStations;
|
|
7
|
+
prepStationId: number | null;
|
|
8
|
+
orderType: KdsOrderType;
|
|
6
9
|
columns: number;
|
|
7
10
|
boxes: number;
|
|
8
11
|
cardWidth: number;
|
|
@@ -69,6 +72,18 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
69
72
|
payload: any;
|
|
70
73
|
type: string;
|
|
71
74
|
}) => void;
|
|
75
|
+
setKdsPrepStations: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
76
|
+
payload: any;
|
|
77
|
+
type: string;
|
|
78
|
+
}) => void;
|
|
79
|
+
setKdsPrepStationId: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
80
|
+
payload: any;
|
|
81
|
+
type: string;
|
|
82
|
+
}) => void;
|
|
83
|
+
setKdsOrderType: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
84
|
+
payload: any;
|
|
85
|
+
type: string;
|
|
86
|
+
}) => void;
|
|
72
87
|
setKdsColumns: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
73
88
|
payload: any;
|
|
74
89
|
type: string;
|
|
@@ -163,6 +178,9 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
163
178
|
qa: Record<string, number>;
|
|
164
179
|
};
|
|
165
180
|
itemTypes: import("immer/dist/internal").WritableDraft<import("../types").ItemType>[] | null;
|
|
181
|
+
prepStations: import("immer/dist/internal").WritableDraft<import("../types").PrepStation>[];
|
|
182
|
+
prepStationId: number | null;
|
|
183
|
+
orderType: KdsOrderType;
|
|
166
184
|
columns: number;
|
|
167
185
|
boxes: number;
|
|
168
186
|
cardWidth: number;
|
|
@@ -176,7 +194,7 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
176
194
|
error: import("immer/dist/internal").WritableDraft<RequestErrorAPI> | null | undefined;
|
|
177
195
|
};
|
|
178
196
|
}, ReducerType.Kds>;
|
|
179
|
-
export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
|
|
197
|
+
export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
|
|
180
198
|
export declare const selectKds: (state: AppState) => KdsState;
|
|
181
199
|
export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
|
|
182
200
|
export declare const selectKdsColumns: (state: AppState) => number;
|
|
@@ -206,6 +224,7 @@ export declare const selectKdsFutureOrders: (state: AppState) => {
|
|
|
206
224
|
error: RequestError;
|
|
207
225
|
};
|
|
208
226
|
export declare const selectKdsFutureCount: (state: AppState) => number;
|
|
227
|
+
export declare const selectKdsPrepStationOrders: (state: AppState) => OrdersKds;
|
|
209
228
|
export declare const selectKdsOrdersCounts: (state: AppState) => {
|
|
210
229
|
current: Record<string, number> | null;
|
|
211
230
|
future: Record<string, number> | null;
|
package/dist/cjs/slices/kds.js
CHANGED
|
@@ -1,14 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.kdsReducer = exports.selectKdsOrdersCounts = exports.selectKdsFutureCount = exports.selectKdsFutureOrders = exports.selectKdsCurrentCount = exports.selectKdsCurrentOrders = exports.selectKdsOrders = exports.selectKdsOrder = exports.selectKdsBusinessDate = exports.selectKdsView = exports.selectKdsPageIndex = exports.selectKdsPage = exports.selectKdsSummary = exports.selectKdsFontSize = exports.selectKdsCardWidth = exports.selectKdsBoxes = exports.selectKdsColumns = exports.selectKdsItemTypes = exports.selectKds = exports.replaceKdsOrder = exports.setKdsOrder = exports.toggleKdsSummary = exports.setKdsSearch = exports.setKdsBusinessDate = exports.setKdsView = exports.setKdsPage = exports.setKdsFontSize = exports.setKdsCardWidth = exports.setKdsBoxes = exports.setKdsColumns = exports.setKdsItemTypes = exports.resetkds = exports.kdsSlice = exports.updateTicket = exports.printTicket = exports.resetTickets = exports.printTickets = exports.printKdsOrder = exports.updateKdsOrder = exports.fetchKdsOrders = exports.KdsActionType = void 0;
|
|
4
|
+
exports.kdsReducer = exports.selectKdsOrdersCounts = exports.selectKdsPrepStationOrders = exports.selectKdsFutureCount = exports.selectKdsFutureOrders = exports.selectKdsCurrentCount = exports.selectKdsCurrentOrders = exports.selectKdsOrders = exports.selectKdsOrder = exports.selectKdsBusinessDate = exports.selectKdsView = exports.selectKdsPageIndex = exports.selectKdsPage = exports.selectKdsSummary = exports.selectKdsFontSize = exports.selectKdsCardWidth = exports.selectKdsBoxes = exports.selectKdsColumns = exports.selectKdsItemTypes = exports.selectKds = exports.replaceKdsOrder = exports.setKdsOrder = exports.toggleKdsSummary = exports.setKdsSearch = exports.setKdsBusinessDate = exports.setKdsView = exports.setKdsPage = exports.setKdsFontSize = exports.setKdsCardWidth = exports.setKdsBoxes = exports.setKdsColumns = exports.setKdsOrderType = exports.setKdsPrepStationId = exports.setKdsPrepStations = exports.setKdsItemTypes = exports.resetkds = exports.kdsSlice = exports.updateTicket = exports.printTicket = exports.resetTickets = exports.printTickets = exports.printKdsOrder = exports.updateKdsOrder = exports.fetchKdsOrders = exports.KdsActionType = void 0;
|
|
5
5
|
var tslib_1 = require("tslib");
|
|
6
6
|
var toolkit_1 = require("@reduxjs/toolkit");
|
|
7
7
|
var types_1 = require("./types");
|
|
8
8
|
var utils_1 = require("../utils");
|
|
9
9
|
var alerts_1 = require("./alerts");
|
|
10
|
+
var prepStations = [
|
|
11
|
+
{
|
|
12
|
+
prep_station_id: 1,
|
|
13
|
+
name: 'Entrees',
|
|
14
|
+
item_type_ids: [4],
|
|
15
|
+
prep_type: 'ASSEMBLY',
|
|
16
|
+
assembly_options: 'PRINT_DONE',
|
|
17
|
+
show_print: false,
|
|
18
|
+
show_reset: false
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
prep_station_id: 2,
|
|
22
|
+
name: 'Sides',
|
|
23
|
+
item_type_ids: [5],
|
|
24
|
+
prep_type: 'ASSEMBLY',
|
|
25
|
+
assembly_options: 'MARK_DONE',
|
|
26
|
+
show_print: false,
|
|
27
|
+
show_reset: false
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
prep_station_id: 3,
|
|
31
|
+
name: 'Drinks',
|
|
32
|
+
item_type_ids: [6],
|
|
33
|
+
prep_type: 'ASSEMBLY',
|
|
34
|
+
assembly_options: 'PRINT_AND_DONE',
|
|
35
|
+
show_print: false,
|
|
36
|
+
show_reset: false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
prep_station_id: 4,
|
|
40
|
+
name: 'Expo',
|
|
41
|
+
item_type_ids: [4, 5, 6],
|
|
42
|
+
prep_type: 'EXPO',
|
|
43
|
+
assembly_options: null,
|
|
44
|
+
show_print: false,
|
|
45
|
+
show_reset: false
|
|
46
|
+
}
|
|
47
|
+
];
|
|
10
48
|
var initialState = {
|
|
11
49
|
itemTypes: null,
|
|
50
|
+
prepStations: prepStations,
|
|
51
|
+
prepStationId: null,
|
|
52
|
+
orderType: 'CURRENT',
|
|
12
53
|
columns: 4,
|
|
13
54
|
boxes: 8,
|
|
14
55
|
cardWidth: 300,
|
|
@@ -216,6 +257,15 @@ exports.kdsSlice = (0, toolkit_1.createSlice)({
|
|
|
216
257
|
setKdsItemTypes: function (state, action) {
|
|
217
258
|
state.itemTypes = action.payload;
|
|
218
259
|
},
|
|
260
|
+
setKdsPrepStations: function (state, action) {
|
|
261
|
+
state.prepStations = action.payload;
|
|
262
|
+
},
|
|
263
|
+
setKdsPrepStationId: function (state, action) {
|
|
264
|
+
state.prepStationId = action.payload;
|
|
265
|
+
},
|
|
266
|
+
setKdsOrderType: function (state, action) {
|
|
267
|
+
state.orderType = action.payload;
|
|
268
|
+
},
|
|
219
269
|
setKdsColumns: function (state, action) {
|
|
220
270
|
state.columns = action.payload;
|
|
221
271
|
},
|
|
@@ -340,7 +390,7 @@ exports.kdsSlice = (0, toolkit_1.createSlice)({
|
|
|
340
390
|
});
|
|
341
391
|
}
|
|
342
392
|
});
|
|
343
|
-
exports.resetkds = (_a = exports.kdsSlice.actions, _a.resetkds), exports.setKdsItemTypes = _a.setKdsItemTypes, exports.setKdsColumns = _a.setKdsColumns, exports.setKdsBoxes = _a.setKdsBoxes, exports.setKdsCardWidth = _a.setKdsCardWidth, exports.setKdsFontSize = _a.setKdsFontSize, exports.setKdsPage = _a.setKdsPage, exports.setKdsView = _a.setKdsView, exports.setKdsBusinessDate = _a.setKdsBusinessDate, exports.setKdsSearch = _a.setKdsSearch, exports.toggleKdsSummary = _a.toggleKdsSummary, exports.setKdsOrder = _a.setKdsOrder, exports.replaceKdsOrder = _a.replaceKdsOrder;
|
|
393
|
+
exports.resetkds = (_a = exports.kdsSlice.actions, _a.resetkds), 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.setKdsPage = _a.setKdsPage, exports.setKdsView = _a.setKdsView, exports.setKdsBusinessDate = _a.setKdsBusinessDate, exports.setKdsSearch = _a.setKdsSearch, exports.toggleKdsSummary = _a.toggleKdsSummary, exports.setKdsOrder = _a.setKdsOrder, exports.replaceKdsOrder = _a.replaceKdsOrder;
|
|
344
394
|
var selectKds = function (state) { return state.kds; };
|
|
345
395
|
exports.selectKds = selectKds;
|
|
346
396
|
var selectKdsItemTypes = function (state) { return state.kds.itemTypes; };
|
|
@@ -402,6 +452,14 @@ var selectKdsFutureCount = function (state) {
|
|
|
402
452
|
return orders.length;
|
|
403
453
|
};
|
|
404
454
|
exports.selectKdsFutureCount = selectKdsFutureCount;
|
|
455
|
+
var selectKdsPrepStationOrders = function (state) {
|
|
456
|
+
var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orderType = _a.orderType, orders = _a.orders;
|
|
457
|
+
var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
|
|
458
|
+
if (!prepStation)
|
|
459
|
+
return [];
|
|
460
|
+
return (0, utils_1.makeOrdersForPrepStation)(orders, prepStation, orderType);
|
|
461
|
+
};
|
|
462
|
+
exports.selectKdsPrepStationOrders = selectKdsPrepStationOrders;
|
|
405
463
|
var selectKdsOrdersCounts = function (state) {
|
|
406
464
|
var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
|
|
407
465
|
return { current: current, future: future, qa: qa };
|
|
@@ -13,6 +13,7 @@ tslib_1.__exportStar(require("./employee"), exports);
|
|
|
13
13
|
tslib_1.__exportStar(require("./errorAlerts"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./favorite"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./giftCard"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./kds"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./menu"), exports);
|
|
17
18
|
tslib_1.__exportStar(require("./menuPages"), exports);
|
|
18
19
|
tslib_1.__exportStar(require("./messages"), exports);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare type PrepStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED' | 'FULFILLED';
|
|
2
|
+
export declare type PrepStatusMap = {
|
|
3
|
+
[Property in PrepStatus]: PrepStatus;
|
|
4
|
+
};
|
|
5
|
+
export declare type TicketStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED';
|
|
6
|
+
export declare type KdsView = 'column' | 'grid' | 'list' | 'tiles';
|
|
7
|
+
export declare type KdsFontSize = 'xsmall' | 'small' | 'medium' | 'large';
|
|
8
|
+
export declare type KdsPrepType = 'ASSEMBLY' | 'EXPO';
|
|
9
|
+
export declare type KdsOrderType = 'CURRENT' | 'FUTURE' | 'COMPLETED';
|
|
10
|
+
export declare type KdsAssemblyOptions = 'AUTO_PRINT' | 'PRINT_DONE' | 'MARK_DONE' | 'PRINT_AND_DONE' | null;
|
|
11
|
+
export interface PrepStation {
|
|
12
|
+
prep_station_id: number;
|
|
13
|
+
name: string;
|
|
14
|
+
item_type_ids: number[];
|
|
15
|
+
prep_type: KdsPrepType;
|
|
16
|
+
assembly_options: KdsAssemblyOptions;
|
|
17
|
+
show_print: boolean;
|
|
18
|
+
show_reset: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare type PrepStations = PrepStation[];
|
|
21
|
+
export interface KdsTerminal {
|
|
22
|
+
name: string;
|
|
23
|
+
ipAddress: string;
|
|
24
|
+
prepStations: PrepStations;
|
|
25
|
+
defaultView: KdsView;
|
|
26
|
+
columns: number;
|
|
27
|
+
boxes: number;
|
|
28
|
+
cardWidth: number;
|
|
29
|
+
fontSize: KdsFontSize;
|
|
30
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DateString, ISOStringOffset, TimezonePython } from '../datetimes';
|
|
2
|
-
import { CardType, ChannelType, Decimal, Money, NegativeMoney, OrderStatus, OrderType,
|
|
2
|
+
import { CardType, ChannelType, Decimal, Money, NegativeMoney, OrderStatus, OrderType, ReceiptType, ServiceType, SurchargeType, Temperature, TenderStatus, TenderType } from '../global';
|
|
3
3
|
import { Address, Customer } from './customer';
|
|
4
|
+
import { PrepStatus, TicketStatus } from './kds';
|
|
4
5
|
export interface OrderChannel {
|
|
5
6
|
ext_id?: string | null;
|
|
6
7
|
ext_name?: string | null;
|
|
@@ -25,16 +25,9 @@ export declare type TaxTypeInt = 1 | 2;
|
|
|
25
25
|
export declare type Temperature = 'Hot' | 'Cold';
|
|
26
26
|
export declare type ReceiptType = 'SALE' | 'REFUND';
|
|
27
27
|
export declare type ChannelType = 'POS' | 'ONLINE' | 'APP' | 'PHONE' | 'KIOSK' | 'PORTAL';
|
|
28
|
-
export declare type PrepStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED' | 'FULFILLED';
|
|
29
|
-
export declare type PrepStatusMap = {
|
|
30
|
-
[Property in PrepStatus]: PrepStatus;
|
|
31
|
-
};
|
|
32
|
-
export declare type TicketStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED';
|
|
33
28
|
export declare type OrderStatus = 'OPEN' | 'HELD' | 'CLOSED' | 'VOID';
|
|
34
29
|
export declare type TenderStatus = 'AUTHORIZED' | 'PAID' | 'REFUNDED' | 'VOID' | 'FAILED';
|
|
35
30
|
export declare type EntityType = 'TIME_PUNCH' | 'CASH_EVENT' | 'ORDER' | 'DEPARTMENT' | 'DEVICES' | 'DISCOUNT' | 'EMPLOYEE' | 'HOUSE_ACCOUNT' | 'LOCATION' | 'MENU' | 'MENU_PAGE' | 'SELECT_OPTION' | 'SURCHARGE' | 'TAX' | 'STORE' | 'REVENUE_CENTER' | 'ITEM_TYPE' | 'QRCODE';
|
|
36
|
-
export declare type KdsView = 'column' | 'grid' | 'list' | 'tiles';
|
|
37
|
-
export declare type KdsFontSize = 'xsmall' | 'small' | 'medium' | 'large';
|
|
38
31
|
export interface PicklistOption {
|
|
39
32
|
name: string;
|
|
40
33
|
value: string | number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
|
|
1
|
+
import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, KdsOrderType, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
|
|
2
2
|
export declare const prepStatus: PrepStatusMap;
|
|
3
3
|
export declare const makeFetchOrdersArgs: ({ businessDate, receiptType, channelType, prepStatus, search, sortBy, sortDirection, parentOrderId }: FetchOrdersArgs) => FetchOrdersAPIArgs;
|
|
4
4
|
export declare const notDone: (prep_status: PrepStatus) => boolean;
|
|
@@ -6,6 +6,12 @@ export declare const isDone: (prep_status: PrepStatus) => boolean;
|
|
|
6
6
|
export declare const notCompleted: (prep_status: PrepStatus) => boolean;
|
|
7
7
|
export declare const isCompleted: (prep_status: PrepStatus) => boolean;
|
|
8
8
|
export declare const makeKdsOrders: (orders: Orders) => OrdersKds;
|
|
9
|
+
export declare const makeCurrentOrders: (orders: OrdersKds) => OrdersKds;
|
|
10
|
+
export declare const makeFutureOrders: (orders: OrdersKds) => OrdersKds;
|
|
11
|
+
export declare const makeCompletedOrders: (orders: OrdersKds) => OrdersKds;
|
|
12
|
+
export declare const makeOrdersOfType: (orders: OrdersKds, orderType: KdsOrderType) => OrdersKds;
|
|
13
|
+
export declare const filterOrdersByItemType: (orders: OrdersKds, itemTypeIds: number[]) => OrdersKds;
|
|
14
|
+
export declare const makeOrdersForPrepStation: (orders: OrdersKds, prepStation: PrepStation, orderType: KdsOrderType) => OrdersKds;
|
|
9
15
|
export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: OrdersKds | null) => {
|
|
10
16
|
current: null;
|
|
11
17
|
future: null;
|
package/dist/cjs/utils/orders.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeOrderTimes = exports.makeBucketColor = exports.displayCounts = exports.makeDisplayCounts = exports.makeTicketGroups = exports.makeModifiersMetadataLookup = exports.makeCartLookup = exports.makeItemTypesMap = exports.makeItemTypeSettings = exports.makeTicketCounts = exports.makeOrderBucketsCounts = exports.makeOrderBuckets = exports.makeKdsCounts = exports.makeKdsOrders = exports.isCompleted = exports.notCompleted = exports.isDone = exports.notDone = exports.makeFetchOrdersArgs = exports.prepStatus = void 0;
|
|
3
|
+
exports.makeOrderTimes = exports.makeBucketColor = exports.displayCounts = exports.makeDisplayCounts = exports.makeTicketGroups = exports.makeModifiersMetadataLookup = exports.makeCartLookup = exports.makeItemTypesMap = exports.makeItemTypeSettings = exports.makeTicketCounts = exports.makeOrderBucketsCounts = exports.makeOrderBuckets = exports.makeKdsCounts = exports.makeOrdersForPrepStation = exports.filterOrdersByItemType = exports.makeOrdersOfType = exports.makeCompletedOrders = exports.makeFutureOrders = exports.makeCurrentOrders = exports.makeKdsOrders = exports.isCompleted = exports.notCompleted = exports.isDone = exports.notDone = exports.makeFetchOrdersArgs = exports.prepStatus = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var datetimes_1 = require("./datetimes");
|
|
6
6
|
exports.prepStatus = {
|
|
@@ -72,6 +72,69 @@ var makeKdsOrders = function (orders) {
|
|
|
72
72
|
return orders.filter(function (i) { return i.expected_at && i.fire_at && i.tickets; });
|
|
73
73
|
};
|
|
74
74
|
exports.makeKdsOrders = makeKdsOrders;
|
|
75
|
+
var makeCurrentOrders = function (orders) {
|
|
76
|
+
return orders.filter(function (i) {
|
|
77
|
+
var tz = datetimes_1.timezoneMap[i.timezone];
|
|
78
|
+
var fireDate = i.fire_at ? (0, datetimes_1.isoToDate)(i.fire_at, tz) : null;
|
|
79
|
+
var currentDate = (0, datetimes_1.currentLocalDate)(tz);
|
|
80
|
+
return (0, exports.notCompleted)(i.prep_status) && fireDate && fireDate < currentDate;
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
exports.makeCurrentOrders = makeCurrentOrders;
|
|
84
|
+
var makeFutureOrders = function (orders) {
|
|
85
|
+
return orders.filter(function (i) {
|
|
86
|
+
var tz = datetimes_1.timezoneMap[i.timezone];
|
|
87
|
+
var fireDate = i.fire_at ? (0, datetimes_1.isoToDate)(i.fire_at, tz) : null;
|
|
88
|
+
var currentDate = (0, datetimes_1.currentLocalDate)(tz);
|
|
89
|
+
return (0, exports.notCompleted)(i.prep_status) && fireDate && fireDate > currentDate;
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
exports.makeFutureOrders = makeFutureOrders;
|
|
93
|
+
var makeCompletedOrders = function (orders) {
|
|
94
|
+
return orders.filter(function (i) {
|
|
95
|
+
var tz = datetimes_1.timezoneMap[i.timezone];
|
|
96
|
+
var fireDate = i.fire_at ? (0, datetimes_1.isoToDate)(i.fire_at, tz) : null;
|
|
97
|
+
var fireDateStr = fireDate ? (0, datetimes_1.formatDate)(fireDate, 'yyyy-MM-dd') : null;
|
|
98
|
+
var currentDate = (0, datetimes_1.currentLocalDate)(tz);
|
|
99
|
+
var currentDateStr = (0, datetimes_1.formatDate)(currentDate, 'yyyy-MM-dd');
|
|
100
|
+
return ((0, exports.isCompleted)(i.prep_status) && fireDate && fireDateStr === currentDateStr);
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
exports.makeCompletedOrders = makeCompletedOrders;
|
|
104
|
+
var makeOrdersOfType = function (orders, orderType) {
|
|
105
|
+
switch (orderType) {
|
|
106
|
+
case 'FUTURE':
|
|
107
|
+
return (0, exports.makeFutureOrders)(orders);
|
|
108
|
+
case 'COMPLETED':
|
|
109
|
+
return (0, exports.makeCompletedOrders)(orders);
|
|
110
|
+
default:
|
|
111
|
+
return (0, exports.makeCurrentOrders)(orders);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
exports.makeOrdersOfType = makeOrdersOfType;
|
|
115
|
+
var filterOrdersByItemType = function (orders, itemTypeIds) {
|
|
116
|
+
return orders
|
|
117
|
+
.reduce(function (arr, i) {
|
|
118
|
+
var tickets = i.tickets.filter(function (t) {
|
|
119
|
+
return itemTypeIds.includes(t.item_type_id);
|
|
120
|
+
});
|
|
121
|
+
return tslib_1.__spreadArray(tslib_1.__spreadArray([], arr, true), [tslib_1.__assign(tslib_1.__assign({}, i), { tickets: tickets })], false);
|
|
122
|
+
}, [])
|
|
123
|
+
.filter(function (i) { return i.tickets.length; });
|
|
124
|
+
};
|
|
125
|
+
exports.filterOrdersByItemType = filterOrdersByItemType;
|
|
126
|
+
var makeOrdersForPrepStation = function (orders, prepStation, orderType) {
|
|
127
|
+
var item_type_ids = prepStation.item_type_ids, prep_type = prepStation.prep_type;
|
|
128
|
+
var ordersOfType = (0, exports.makeOrdersOfType)(orders, orderType);
|
|
129
|
+
if (orderType === 'COMPLETED') {
|
|
130
|
+
return (0, exports.filterOrdersByItemType)(ordersOfType, item_type_ids);
|
|
131
|
+
}
|
|
132
|
+
var filteredOrders = prep_type === 'ASSEMBLY'
|
|
133
|
+
? ordersOfType.filter(function (i) { return (0, exports.notDone)(i.prep_status); })
|
|
134
|
+
: ordersOfType.filter(function (i) { return i.prep_status === 'DONE'; });
|
|
135
|
+
return (0, exports.filterOrdersByItemType)(filteredOrders, item_type_ids);
|
|
136
|
+
};
|
|
137
|
+
exports.makeOrdersForPrepStation = makeOrdersForPrepStation;
|
|
75
138
|
var updateCounts = function (counts, ticketCounts) {
|
|
76
139
|
// console.log('BEFORE', counts, ticketCounts)
|
|
77
140
|
var updated = Object.entries(counts).reduce(function (obj, _a) {
|
package/dist/esm/slices/kds.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { AppState } from '../app';
|
|
2
|
-
import { DateString, FetchOrdersArgs, ItemTypes, KdsFontSize, KdsView, OrderCounts, OrderKds, OrdersAndCounts, OrdersKds, OrderUpdate, RequestError, RequestErrorAPI, RequestStatus, TicketStatus, TicketStatusUpdate } from '../types';
|
|
2
|
+
import { DateString, FetchOrdersArgs, ItemTypes, KdsFontSize, KdsOrderType, KdsView, OrderCounts, OrderKds, OrdersAndCounts, OrdersKds, OrderUpdate, PrepStations, RequestError, RequestErrorAPI, RequestStatus, TicketStatus, TicketStatusUpdate } from '../types';
|
|
3
3
|
import { ReducerType } from './types';
|
|
4
4
|
export interface KdsState {
|
|
5
5
|
itemTypes: ItemTypes | null;
|
|
6
|
+
prepStations: PrepStations;
|
|
7
|
+
prepStationId: number | null;
|
|
8
|
+
orderType: KdsOrderType;
|
|
6
9
|
columns: number;
|
|
7
10
|
boxes: number;
|
|
8
11
|
cardWidth: number;
|
|
@@ -69,6 +72,18 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
69
72
|
payload: any;
|
|
70
73
|
type: string;
|
|
71
74
|
}) => void;
|
|
75
|
+
setKdsPrepStations: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
76
|
+
payload: any;
|
|
77
|
+
type: string;
|
|
78
|
+
}) => void;
|
|
79
|
+
setKdsPrepStationId: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
80
|
+
payload: any;
|
|
81
|
+
type: string;
|
|
82
|
+
}) => void;
|
|
83
|
+
setKdsOrderType: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
84
|
+
payload: any;
|
|
85
|
+
type: string;
|
|
86
|
+
}) => void;
|
|
72
87
|
setKdsColumns: (state: import("immer/dist/internal").WritableDraft<KdsState>, action: {
|
|
73
88
|
payload: any;
|
|
74
89
|
type: string;
|
|
@@ -163,6 +178,9 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
163
178
|
qa: Record<string, number>;
|
|
164
179
|
};
|
|
165
180
|
itemTypes: import("immer/dist/internal").WritableDraft<import("../types").ItemType>[] | null;
|
|
181
|
+
prepStations: import("immer/dist/internal").WritableDraft<import("../types").PrepStation>[];
|
|
182
|
+
prepStationId: number | null;
|
|
183
|
+
orderType: KdsOrderType;
|
|
166
184
|
columns: number;
|
|
167
185
|
boxes: number;
|
|
168
186
|
cardWidth: number;
|
|
@@ -176,7 +194,7 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
176
194
|
error: import("immer/dist/internal").WritableDraft<RequestErrorAPI> | null | undefined;
|
|
177
195
|
};
|
|
178
196
|
}, ReducerType.Kds>;
|
|
179
|
-
export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
|
|
197
|
+
export declare const resetkds: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsItemTypes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPrepStationId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsColumns: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBoxes: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsCardWidth: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsFontSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsPage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsView: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsBusinessDate: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, setKdsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, toggleKdsSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, replaceKdsOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
|
|
180
198
|
export declare const selectKds: (state: AppState) => KdsState;
|
|
181
199
|
export declare const selectKdsItemTypes: (state: AppState) => ItemTypes | null;
|
|
182
200
|
export declare const selectKdsColumns: (state: AppState) => number;
|
|
@@ -206,6 +224,7 @@ export declare const selectKdsFutureOrders: (state: AppState) => {
|
|
|
206
224
|
error: RequestError;
|
|
207
225
|
};
|
|
208
226
|
export declare const selectKdsFutureCount: (state: AppState) => number;
|
|
227
|
+
export declare const selectKdsPrepStationOrders: (state: AppState) => OrdersKds;
|
|
209
228
|
export declare const selectKdsOrdersCounts: (state: AppState) => {
|
|
210
229
|
current: Record<string, number> | null;
|
|
211
230
|
future: Record<string, number> | null;
|
package/dist/esm/slices/kds.js
CHANGED
|
@@ -2,10 +2,51 @@ var _a;
|
|
|
2
2
|
import { __assign, __awaiter, __generator } from "tslib";
|
|
3
3
|
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
4
4
|
import { ReducerType } from './types';
|
|
5
|
-
import { currentLocalDate, isoToDate, makeFetchOrdersArgs, makeKdsCounts, makeKdsOrders, notDone, timezoneMap } from '../utils';
|
|
5
|
+
import { currentLocalDate, isoToDate, makeFetchOrdersArgs, makeKdsCounts, makeKdsOrders, makeOrdersForPrepStation, notDone, timezoneMap } from '../utils';
|
|
6
6
|
import { addAlert } from './alerts';
|
|
7
|
+
var prepStations = [
|
|
8
|
+
{
|
|
9
|
+
prep_station_id: 1,
|
|
10
|
+
name: 'Entrees',
|
|
11
|
+
item_type_ids: [4],
|
|
12
|
+
prep_type: 'ASSEMBLY',
|
|
13
|
+
assembly_options: 'PRINT_DONE',
|
|
14
|
+
show_print: false,
|
|
15
|
+
show_reset: false
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
prep_station_id: 2,
|
|
19
|
+
name: 'Sides',
|
|
20
|
+
item_type_ids: [5],
|
|
21
|
+
prep_type: 'ASSEMBLY',
|
|
22
|
+
assembly_options: 'MARK_DONE',
|
|
23
|
+
show_print: false,
|
|
24
|
+
show_reset: false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
prep_station_id: 3,
|
|
28
|
+
name: 'Drinks',
|
|
29
|
+
item_type_ids: [6],
|
|
30
|
+
prep_type: 'ASSEMBLY',
|
|
31
|
+
assembly_options: 'PRINT_AND_DONE',
|
|
32
|
+
show_print: false,
|
|
33
|
+
show_reset: false
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
prep_station_id: 4,
|
|
37
|
+
name: 'Expo',
|
|
38
|
+
item_type_ids: [4, 5, 6],
|
|
39
|
+
prep_type: 'EXPO',
|
|
40
|
+
assembly_options: null,
|
|
41
|
+
show_print: false,
|
|
42
|
+
show_reset: false
|
|
43
|
+
}
|
|
44
|
+
];
|
|
7
45
|
var initialState = {
|
|
8
46
|
itemTypes: null,
|
|
47
|
+
prepStations: prepStations,
|
|
48
|
+
prepStationId: null,
|
|
49
|
+
orderType: 'CURRENT',
|
|
9
50
|
columns: 4,
|
|
10
51
|
boxes: 8,
|
|
11
52
|
cardWidth: 300,
|
|
@@ -213,6 +254,15 @@ export var kdsSlice = createSlice({
|
|
|
213
254
|
setKdsItemTypes: function (state, action) {
|
|
214
255
|
state.itemTypes = action.payload;
|
|
215
256
|
},
|
|
257
|
+
setKdsPrepStations: function (state, action) {
|
|
258
|
+
state.prepStations = action.payload;
|
|
259
|
+
},
|
|
260
|
+
setKdsPrepStationId: function (state, action) {
|
|
261
|
+
state.prepStationId = action.payload;
|
|
262
|
+
},
|
|
263
|
+
setKdsOrderType: function (state, action) {
|
|
264
|
+
state.orderType = action.payload;
|
|
265
|
+
},
|
|
216
266
|
setKdsColumns: function (state, action) {
|
|
217
267
|
state.columns = action.payload;
|
|
218
268
|
},
|
|
@@ -337,7 +387,7 @@ export var kdsSlice = createSlice({
|
|
|
337
387
|
});
|
|
338
388
|
}
|
|
339
389
|
});
|
|
340
|
-
export var resetkds = (_a = kdsSlice.actions, _a.resetkds), setKdsItemTypes = _a.setKdsItemTypes, setKdsColumns = _a.setKdsColumns, setKdsBoxes = _a.setKdsBoxes, setKdsCardWidth = _a.setKdsCardWidth, setKdsFontSize = _a.setKdsFontSize, setKdsPage = _a.setKdsPage, setKdsView = _a.setKdsView, setKdsBusinessDate = _a.setKdsBusinessDate, setKdsSearch = _a.setKdsSearch, toggleKdsSummary = _a.toggleKdsSummary, setKdsOrder = _a.setKdsOrder, replaceKdsOrder = _a.replaceKdsOrder;
|
|
390
|
+
export var resetkds = (_a = kdsSlice.actions, _a.resetkds), setKdsItemTypes = _a.setKdsItemTypes, setKdsPrepStations = _a.setKdsPrepStations, setKdsPrepStationId = _a.setKdsPrepStationId, setKdsOrderType = _a.setKdsOrderType, setKdsColumns = _a.setKdsColumns, setKdsBoxes = _a.setKdsBoxes, setKdsCardWidth = _a.setKdsCardWidth, setKdsFontSize = _a.setKdsFontSize, setKdsPage = _a.setKdsPage, setKdsView = _a.setKdsView, setKdsBusinessDate = _a.setKdsBusinessDate, setKdsSearch = _a.setKdsSearch, toggleKdsSummary = _a.toggleKdsSummary, setKdsOrder = _a.setKdsOrder, replaceKdsOrder = _a.replaceKdsOrder;
|
|
341
391
|
export var selectKds = function (state) { return state.kds; };
|
|
342
392
|
export var selectKdsItemTypes = function (state) { return state.kds.itemTypes; };
|
|
343
393
|
export var selectKdsColumns = function (state) { return state.kds.columns; };
|
|
@@ -382,6 +432,13 @@ export var selectKdsFutureCount = function (state) {
|
|
|
382
432
|
var orders = selectKdsFutureOrders(state).orders;
|
|
383
433
|
return orders.length;
|
|
384
434
|
};
|
|
435
|
+
export var selectKdsPrepStationOrders = function (state) {
|
|
436
|
+
var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orderType = _a.orderType, orders = _a.orders;
|
|
437
|
+
var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
|
|
438
|
+
if (!prepStation)
|
|
439
|
+
return [];
|
|
440
|
+
return makeOrdersForPrepStation(orders, prepStation, orderType);
|
|
441
|
+
};
|
|
385
442
|
export var selectKdsOrdersCounts = function (state) {
|
|
386
443
|
var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
|
|
387
444
|
return { current: current, future: future, qa: qa };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare type PrepStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED' | 'FULFILLED';
|
|
2
|
+
export declare type PrepStatusMap = {
|
|
3
|
+
[Property in PrepStatus]: PrepStatus;
|
|
4
|
+
};
|
|
5
|
+
export declare type TicketStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED';
|
|
6
|
+
export declare type KdsView = 'column' | 'grid' | 'list' | 'tiles';
|
|
7
|
+
export declare type KdsFontSize = 'xsmall' | 'small' | 'medium' | 'large';
|
|
8
|
+
export declare type KdsPrepType = 'ASSEMBLY' | 'EXPO';
|
|
9
|
+
export declare type KdsOrderType = 'CURRENT' | 'FUTURE' | 'COMPLETED';
|
|
10
|
+
export declare type KdsAssemblyOptions = 'AUTO_PRINT' | 'PRINT_DONE' | 'MARK_DONE' | 'PRINT_AND_DONE' | null;
|
|
11
|
+
export interface PrepStation {
|
|
12
|
+
prep_station_id: number;
|
|
13
|
+
name: string;
|
|
14
|
+
item_type_ids: number[];
|
|
15
|
+
prep_type: KdsPrepType;
|
|
16
|
+
assembly_options: KdsAssemblyOptions;
|
|
17
|
+
show_print: boolean;
|
|
18
|
+
show_reset: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare type PrepStations = PrepStation[];
|
|
21
|
+
export interface KdsTerminal {
|
|
22
|
+
name: string;
|
|
23
|
+
ipAddress: string;
|
|
24
|
+
prepStations: PrepStations;
|
|
25
|
+
defaultView: KdsView;
|
|
26
|
+
columns: number;
|
|
27
|
+
boxes: number;
|
|
28
|
+
cardWidth: number;
|
|
29
|
+
fontSize: KdsFontSize;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DateString, ISOStringOffset, TimezonePython } from '../datetimes';
|
|
2
|
-
import { CardType, ChannelType, Decimal, Money, NegativeMoney, OrderStatus, OrderType,
|
|
2
|
+
import { CardType, ChannelType, Decimal, Money, NegativeMoney, OrderStatus, OrderType, ReceiptType, ServiceType, SurchargeType, Temperature, TenderStatus, TenderType } from '../global';
|
|
3
3
|
import { Address, Customer } from './customer';
|
|
4
|
+
import { PrepStatus, TicketStatus } from './kds';
|
|
4
5
|
export interface OrderChannel {
|
|
5
6
|
ext_id?: string | null;
|
|
6
7
|
ext_name?: string | null;
|
|
@@ -25,16 +25,9 @@ export declare type TaxTypeInt = 1 | 2;
|
|
|
25
25
|
export declare type Temperature = 'Hot' | 'Cold';
|
|
26
26
|
export declare type ReceiptType = 'SALE' | 'REFUND';
|
|
27
27
|
export declare type ChannelType = 'POS' | 'ONLINE' | 'APP' | 'PHONE' | 'KIOSK' | 'PORTAL';
|
|
28
|
-
export declare type PrepStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED' | 'FULFILLED';
|
|
29
|
-
export declare type PrepStatusMap = {
|
|
30
|
-
[Property in PrepStatus]: PrepStatus;
|
|
31
|
-
};
|
|
32
|
-
export declare type TicketStatus = 'TODO' | 'IN_PROGRESS' | 'DONE' | 'COMPLETED';
|
|
33
28
|
export declare type OrderStatus = 'OPEN' | 'HELD' | 'CLOSED' | 'VOID';
|
|
34
29
|
export declare type TenderStatus = 'AUTHORIZED' | 'PAID' | 'REFUNDED' | 'VOID' | 'FAILED';
|
|
35
30
|
export declare type EntityType = 'TIME_PUNCH' | 'CASH_EVENT' | 'ORDER' | 'DEPARTMENT' | 'DEVICES' | 'DISCOUNT' | 'EMPLOYEE' | 'HOUSE_ACCOUNT' | 'LOCATION' | 'MENU' | 'MENU_PAGE' | 'SELECT_OPTION' | 'SURCHARGE' | 'TAX' | 'STORE' | 'REVENUE_CENTER' | 'ITEM_TYPE' | 'QRCODE';
|
|
36
|
-
export declare type KdsView = 'column' | 'grid' | 'list' | 'tiles';
|
|
37
|
-
export declare type KdsFontSize = 'xsmall' | 'small' | 'medium' | 'large';
|
|
38
31
|
export interface PicklistOption {
|
|
39
32
|
name: string;
|
|
40
33
|
value: string | number;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
|
|
1
|
+
import { FetchOrdersAPIArgs, FetchOrdersArgs, ItemType, ItemTypes, KdsOrderType, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
|
|
2
2
|
export declare const prepStatus: PrepStatusMap;
|
|
3
3
|
export declare const makeFetchOrdersArgs: ({ businessDate, receiptType, channelType, prepStatus, search, sortBy, sortDirection, parentOrderId }: FetchOrdersArgs) => FetchOrdersAPIArgs;
|
|
4
4
|
export declare const notDone: (prep_status: PrepStatus) => boolean;
|
|
@@ -6,6 +6,12 @@ export declare const isDone: (prep_status: PrepStatus) => boolean;
|
|
|
6
6
|
export declare const notCompleted: (prep_status: PrepStatus) => boolean;
|
|
7
7
|
export declare const isCompleted: (prep_status: PrepStatus) => boolean;
|
|
8
8
|
export declare const makeKdsOrders: (orders: Orders) => OrdersKds;
|
|
9
|
+
export declare const makeCurrentOrders: (orders: OrdersKds) => OrdersKds;
|
|
10
|
+
export declare const makeFutureOrders: (orders: OrdersKds) => OrdersKds;
|
|
11
|
+
export declare const makeCompletedOrders: (orders: OrdersKds) => OrdersKds;
|
|
12
|
+
export declare const makeOrdersOfType: (orders: OrdersKds, orderType: KdsOrderType) => OrdersKds;
|
|
13
|
+
export declare const filterOrdersByItemType: (orders: OrdersKds, itemTypeIds: number[]) => OrdersKds;
|
|
14
|
+
export declare const makeOrdersForPrepStation: (orders: OrdersKds, prepStation: PrepStation, orderType: KdsOrderType) => OrdersKds;
|
|
9
15
|
export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: OrdersKds | null) => {
|
|
10
16
|
current: null;
|
|
11
17
|
future: null;
|
package/dist/esm/utils/orders.js
CHANGED
|
@@ -63,6 +63,63 @@ export var isCompleted = function (prep_status) {
|
|
|
63
63
|
export var makeKdsOrders = function (orders) {
|
|
64
64
|
return orders.filter(function (i) { return i.expected_at && i.fire_at && i.tickets; });
|
|
65
65
|
};
|
|
66
|
+
export var makeCurrentOrders = function (orders) {
|
|
67
|
+
return orders.filter(function (i) {
|
|
68
|
+
var tz = timezoneMap[i.timezone];
|
|
69
|
+
var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
|
|
70
|
+
var currentDate = currentLocalDate(tz);
|
|
71
|
+
return notCompleted(i.prep_status) && fireDate && fireDate < currentDate;
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
export var makeFutureOrders = function (orders) {
|
|
75
|
+
return orders.filter(function (i) {
|
|
76
|
+
var tz = timezoneMap[i.timezone];
|
|
77
|
+
var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
|
|
78
|
+
var currentDate = currentLocalDate(tz);
|
|
79
|
+
return notCompleted(i.prep_status) && fireDate && fireDate > currentDate;
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
export var makeCompletedOrders = function (orders) {
|
|
83
|
+
return orders.filter(function (i) {
|
|
84
|
+
var tz = timezoneMap[i.timezone];
|
|
85
|
+
var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
|
|
86
|
+
var fireDateStr = fireDate ? formatDate(fireDate, 'yyyy-MM-dd') : null;
|
|
87
|
+
var currentDate = currentLocalDate(tz);
|
|
88
|
+
var currentDateStr = formatDate(currentDate, 'yyyy-MM-dd');
|
|
89
|
+
return (isCompleted(i.prep_status) && fireDate && fireDateStr === currentDateStr);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
export var makeOrdersOfType = function (orders, orderType) {
|
|
93
|
+
switch (orderType) {
|
|
94
|
+
case 'FUTURE':
|
|
95
|
+
return makeFutureOrders(orders);
|
|
96
|
+
case 'COMPLETED':
|
|
97
|
+
return makeCompletedOrders(orders);
|
|
98
|
+
default:
|
|
99
|
+
return makeCurrentOrders(orders);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
export var filterOrdersByItemType = function (orders, itemTypeIds) {
|
|
103
|
+
return orders
|
|
104
|
+
.reduce(function (arr, i) {
|
|
105
|
+
var tickets = i.tickets.filter(function (t) {
|
|
106
|
+
return itemTypeIds.includes(t.item_type_id);
|
|
107
|
+
});
|
|
108
|
+
return __spreadArray(__spreadArray([], arr, true), [__assign(__assign({}, i), { tickets: tickets })], false);
|
|
109
|
+
}, [])
|
|
110
|
+
.filter(function (i) { return i.tickets.length; });
|
|
111
|
+
};
|
|
112
|
+
export var makeOrdersForPrepStation = function (orders, prepStation, orderType) {
|
|
113
|
+
var item_type_ids = prepStation.item_type_ids, prep_type = prepStation.prep_type;
|
|
114
|
+
var ordersOfType = makeOrdersOfType(orders, orderType);
|
|
115
|
+
if (orderType === 'COMPLETED') {
|
|
116
|
+
return filterOrdersByItemType(ordersOfType, item_type_ids);
|
|
117
|
+
}
|
|
118
|
+
var filteredOrders = prep_type === 'ASSEMBLY'
|
|
119
|
+
? ordersOfType.filter(function (i) { return notDone(i.prep_status); })
|
|
120
|
+
: ordersOfType.filter(function (i) { return i.prep_status === 'DONE'; });
|
|
121
|
+
return filterOrdersByItemType(filteredOrders, item_type_ids);
|
|
122
|
+
};
|
|
66
123
|
var updateCounts = function (counts, ticketCounts) {
|
|
67
124
|
// console.log('BEFORE', counts, ticketCounts)
|
|
68
125
|
var updated = Object.entries(counts).reduce(function (obj, _a) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@open-tender/store",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|