@open-tender/store 0.3.4 → 0.3.6
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 +15 -6
- package/dist/cjs/slices/kds.js +65 -8
- 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 +15 -6
- package/dist/esm/slices/kds.js +62 -8
- 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,14 +1,17 @@
|
|
|
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;
|
|
9
12
|
fontSize: KdsFontSize;
|
|
10
13
|
view: KdsView | null;
|
|
11
|
-
page: number
|
|
14
|
+
page: number;
|
|
12
15
|
search: string | null;
|
|
13
16
|
businessDate: DateString | null;
|
|
14
17
|
summary: boolean;
|
|
@@ -20,10 +23,10 @@ export interface KdsState {
|
|
|
20
23
|
}
|
|
21
24
|
export declare enum KdsActionType {
|
|
22
25
|
FetchKdsOrders = "kds/fetchKdsOrders",
|
|
23
|
-
|
|
26
|
+
UpdateKdsOrder = "kds/updateKdsOrder",
|
|
27
|
+
PrintKdsOrder = "kds/printKdsOrder",
|
|
24
28
|
PrintTickets = "kds/printTickets",
|
|
25
29
|
ResetTickets = "kds/resetTickets",
|
|
26
|
-
PrintReceipt = "kds/printKdsOrder",
|
|
27
30
|
PrintTicket = "kds/printTicket",
|
|
28
31
|
UpdateTicket = "kds/updateTicket"
|
|
29
32
|
}
|
|
@@ -163,12 +166,15 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
163
166
|
qa: Record<string, number>;
|
|
164
167
|
};
|
|
165
168
|
itemTypes: import("immer/dist/internal").WritableDraft<import("../types").ItemType>[] | null;
|
|
169
|
+
prepStations: import("immer/dist/internal").WritableDraft<import("../types").PrepStation>[];
|
|
170
|
+
prepStationId: number | null;
|
|
171
|
+
orderType: KdsOrderType;
|
|
166
172
|
columns: number;
|
|
167
173
|
boxes: number;
|
|
168
174
|
cardWidth: number;
|
|
169
175
|
fontSize: KdsFontSize;
|
|
170
176
|
view: KdsView | null;
|
|
171
|
-
page: number
|
|
177
|
+
page: number;
|
|
172
178
|
search: string | null;
|
|
173
179
|
businessDate: DateString | null;
|
|
174
180
|
summary: boolean;
|
|
@@ -184,7 +190,7 @@ export declare const selectKdsBoxes: (state: AppState) => number;
|
|
|
184
190
|
export declare const selectKdsCardWidth: (state: AppState) => number;
|
|
185
191
|
export declare const selectKdsFontSize: (state: AppState) => KdsFontSize;
|
|
186
192
|
export declare const selectKdsSummary: (state: AppState) => boolean;
|
|
187
|
-
export declare const selectKdsPage: (state: AppState) => number
|
|
193
|
+
export declare const selectKdsPage: (state: AppState) => number;
|
|
188
194
|
export declare const selectKdsPageIndex: (state: AppState) => number;
|
|
189
195
|
export declare const selectKdsView: (state: AppState) => KdsView | null;
|
|
190
196
|
export declare const selectKdsBusinessDate: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}` | null;
|
|
@@ -199,11 +205,14 @@ export declare const selectKdsCurrentOrders: (state: AppState) => {
|
|
|
199
205
|
loading: RequestStatus;
|
|
200
206
|
error: RequestError;
|
|
201
207
|
};
|
|
208
|
+
export declare const selectKdsCurrentCount: (state: AppState) => number;
|
|
202
209
|
export declare const selectKdsFutureOrders: (state: AppState) => {
|
|
203
210
|
orders: OrderKds[];
|
|
204
211
|
loading: RequestStatus;
|
|
205
212
|
error: RequestError;
|
|
206
213
|
};
|
|
214
|
+
export declare const selectKdsFutureCount: (state: AppState) => number;
|
|
215
|
+
export declare const selectKdsPrepStationOrders: (state: AppState) => OrdersKds;
|
|
207
216
|
export declare const selectKdsOrdersCounts: (state: AppState) => {
|
|
208
217
|
current: Record<string, number> | null;
|
|
209
218
|
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.selectKdsFutureOrders = 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.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,
|
|
@@ -27,10 +68,10 @@ var initialState = {
|
|
|
27
68
|
var KdsActionType;
|
|
28
69
|
(function (KdsActionType) {
|
|
29
70
|
KdsActionType["FetchKdsOrders"] = "kds/fetchKdsOrders";
|
|
30
|
-
KdsActionType["
|
|
71
|
+
KdsActionType["UpdateKdsOrder"] = "kds/updateKdsOrder";
|
|
72
|
+
KdsActionType["PrintKdsOrder"] = "kds/printKdsOrder";
|
|
31
73
|
KdsActionType["PrintTickets"] = "kds/printTickets";
|
|
32
74
|
KdsActionType["ResetTickets"] = "kds/resetTickets";
|
|
33
|
-
KdsActionType["PrintReceipt"] = "kds/printKdsOrder";
|
|
34
75
|
KdsActionType["PrintTicket"] = "kds/printTicket";
|
|
35
76
|
KdsActionType["UpdateTicket"] = "kds/updateTicket";
|
|
36
77
|
})(KdsActionType = exports.KdsActionType || (exports.KdsActionType = {}));
|
|
@@ -59,7 +100,7 @@ exports.fetchKdsOrders = (0, toolkit_1.createAsyncThunk)(KdsActionType.FetchKdsO
|
|
|
59
100
|
});
|
|
60
101
|
});
|
|
61
102
|
});
|
|
62
|
-
exports.updateKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.
|
|
103
|
+
exports.updateKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.UpdateKdsOrder, function (_a, _b) {
|
|
63
104
|
var orderId = _a.orderId, data = _a.data;
|
|
64
105
|
var getState = _b.getState, dispatch = _b.dispatch;
|
|
65
106
|
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
@@ -84,7 +125,7 @@ exports.updateKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.UpdateOrd
|
|
|
84
125
|
});
|
|
85
126
|
});
|
|
86
127
|
});
|
|
87
|
-
exports.printKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.
|
|
128
|
+
exports.printKdsOrder = (0, toolkit_1.createAsyncThunk)(KdsActionType.PrintKdsOrder, function (orderId, _a) {
|
|
88
129
|
var getState = _a.getState, dispatch = _a.dispatch;
|
|
89
130
|
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
90
131
|
var api, order, err_3, detail;
|
|
@@ -357,9 +398,7 @@ var selectKdsSummary = function (state) { return state.kds.summary; };
|
|
|
357
398
|
exports.selectKdsSummary = selectKdsSummary;
|
|
358
399
|
var selectKdsPage = function (state) { return state.kds.page; };
|
|
359
400
|
exports.selectKdsPage = selectKdsPage;
|
|
360
|
-
var selectKdsPageIndex = function (state) {
|
|
361
|
-
return state.kds.page ? state.kds.page - 1 : 0;
|
|
362
|
-
};
|
|
401
|
+
var selectKdsPageIndex = function (state) { return state.kds.page - 1; };
|
|
363
402
|
exports.selectKdsPageIndex = selectKdsPageIndex;
|
|
364
403
|
var selectKdsView = function (state) { return state.kds.view; };
|
|
365
404
|
exports.selectKdsView = selectKdsView;
|
|
@@ -383,6 +422,11 @@ var selectKdsCurrentOrders = function (state) {
|
|
|
383
422
|
return { orders: filtered, loading: loading, error: error };
|
|
384
423
|
};
|
|
385
424
|
exports.selectKdsCurrentOrders = selectKdsCurrentOrders;
|
|
425
|
+
var selectKdsCurrentCount = function (state) {
|
|
426
|
+
var orders = (0, exports.selectKdsCurrentOrders)(state).orders;
|
|
427
|
+
return orders.length;
|
|
428
|
+
};
|
|
429
|
+
exports.selectKdsCurrentCount = selectKdsCurrentCount;
|
|
386
430
|
var selectKdsFutureOrders = function (state) {
|
|
387
431
|
var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
|
|
388
432
|
var filtered = orders.filter(function (i) {
|
|
@@ -394,6 +438,19 @@ var selectKdsFutureOrders = function (state) {
|
|
|
394
438
|
return { orders: filtered, loading: loading, error: error };
|
|
395
439
|
};
|
|
396
440
|
exports.selectKdsFutureOrders = selectKdsFutureOrders;
|
|
441
|
+
var selectKdsFutureCount = function (state) {
|
|
442
|
+
var orders = (0, exports.selectKdsFutureOrders)(state).orders;
|
|
443
|
+
return orders.length;
|
|
444
|
+
};
|
|
445
|
+
exports.selectKdsFutureCount = selectKdsFutureCount;
|
|
446
|
+
var selectKdsPrepStationOrders = function (state) {
|
|
447
|
+
var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orderType = _a.orderType, orders = _a.orders;
|
|
448
|
+
var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
|
|
449
|
+
if (!prepStation)
|
|
450
|
+
return [];
|
|
451
|
+
return (0, utils_1.makeOrdersForPrepStation)(orders, prepStation, orderType);
|
|
452
|
+
};
|
|
453
|
+
exports.selectKdsPrepStationOrders = selectKdsPrepStationOrders;
|
|
397
454
|
var selectKdsOrdersCounts = function (state) {
|
|
398
455
|
var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
|
|
399
456
|
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,14 +1,17 @@
|
|
|
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;
|
|
9
12
|
fontSize: KdsFontSize;
|
|
10
13
|
view: KdsView | null;
|
|
11
|
-
page: number
|
|
14
|
+
page: number;
|
|
12
15
|
search: string | null;
|
|
13
16
|
businessDate: DateString | null;
|
|
14
17
|
summary: boolean;
|
|
@@ -20,10 +23,10 @@ export interface KdsState {
|
|
|
20
23
|
}
|
|
21
24
|
export declare enum KdsActionType {
|
|
22
25
|
FetchKdsOrders = "kds/fetchKdsOrders",
|
|
23
|
-
|
|
26
|
+
UpdateKdsOrder = "kds/updateKdsOrder",
|
|
27
|
+
PrintKdsOrder = "kds/printKdsOrder",
|
|
24
28
|
PrintTickets = "kds/printTickets",
|
|
25
29
|
ResetTickets = "kds/resetTickets",
|
|
26
|
-
PrintReceipt = "kds/printKdsOrder",
|
|
27
30
|
PrintTicket = "kds/printTicket",
|
|
28
31
|
UpdateTicket = "kds/updateTicket"
|
|
29
32
|
}
|
|
@@ -163,12 +166,15 @@ export declare const kdsSlice: import("@reduxjs/toolkit").Slice<KdsState, {
|
|
|
163
166
|
qa: Record<string, number>;
|
|
164
167
|
};
|
|
165
168
|
itemTypes: import("immer/dist/internal").WritableDraft<import("../types").ItemType>[] | null;
|
|
169
|
+
prepStations: import("immer/dist/internal").WritableDraft<import("../types").PrepStation>[];
|
|
170
|
+
prepStationId: number | null;
|
|
171
|
+
orderType: KdsOrderType;
|
|
166
172
|
columns: number;
|
|
167
173
|
boxes: number;
|
|
168
174
|
cardWidth: number;
|
|
169
175
|
fontSize: KdsFontSize;
|
|
170
176
|
view: KdsView | null;
|
|
171
|
-
page: number
|
|
177
|
+
page: number;
|
|
172
178
|
search: string | null;
|
|
173
179
|
businessDate: DateString | null;
|
|
174
180
|
summary: boolean;
|
|
@@ -184,7 +190,7 @@ export declare const selectKdsBoxes: (state: AppState) => number;
|
|
|
184
190
|
export declare const selectKdsCardWidth: (state: AppState) => number;
|
|
185
191
|
export declare const selectKdsFontSize: (state: AppState) => KdsFontSize;
|
|
186
192
|
export declare const selectKdsSummary: (state: AppState) => boolean;
|
|
187
|
-
export declare const selectKdsPage: (state: AppState) => number
|
|
193
|
+
export declare const selectKdsPage: (state: AppState) => number;
|
|
188
194
|
export declare const selectKdsPageIndex: (state: AppState) => number;
|
|
189
195
|
export declare const selectKdsView: (state: AppState) => KdsView | null;
|
|
190
196
|
export declare const selectKdsBusinessDate: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}` | null;
|
|
@@ -199,11 +205,14 @@ export declare const selectKdsCurrentOrders: (state: AppState) => {
|
|
|
199
205
|
loading: RequestStatus;
|
|
200
206
|
error: RequestError;
|
|
201
207
|
};
|
|
208
|
+
export declare const selectKdsCurrentCount: (state: AppState) => number;
|
|
202
209
|
export declare const selectKdsFutureOrders: (state: AppState) => {
|
|
203
210
|
orders: OrderKds[];
|
|
204
211
|
loading: RequestStatus;
|
|
205
212
|
error: RequestError;
|
|
206
213
|
};
|
|
214
|
+
export declare const selectKdsFutureCount: (state: AppState) => number;
|
|
215
|
+
export declare const selectKdsPrepStationOrders: (state: AppState) => OrdersKds;
|
|
207
216
|
export declare const selectKdsOrdersCounts: (state: AppState) => {
|
|
208
217
|
current: Record<string, number> | null;
|
|
209
218
|
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,
|
|
@@ -24,10 +65,10 @@ var initialState = {
|
|
|
24
65
|
export var KdsActionType;
|
|
25
66
|
(function (KdsActionType) {
|
|
26
67
|
KdsActionType["FetchKdsOrders"] = "kds/fetchKdsOrders";
|
|
27
|
-
KdsActionType["
|
|
68
|
+
KdsActionType["UpdateKdsOrder"] = "kds/updateKdsOrder";
|
|
69
|
+
KdsActionType["PrintKdsOrder"] = "kds/printKdsOrder";
|
|
28
70
|
KdsActionType["PrintTickets"] = "kds/printTickets";
|
|
29
71
|
KdsActionType["ResetTickets"] = "kds/resetTickets";
|
|
30
|
-
KdsActionType["PrintReceipt"] = "kds/printKdsOrder";
|
|
31
72
|
KdsActionType["PrintTicket"] = "kds/printTicket";
|
|
32
73
|
KdsActionType["UpdateTicket"] = "kds/updateTicket";
|
|
33
74
|
})(KdsActionType || (KdsActionType = {}));
|
|
@@ -56,7 +97,7 @@ export var fetchKdsOrders = createAsyncThunk(KdsActionType.FetchKdsOrders, funct
|
|
|
56
97
|
});
|
|
57
98
|
});
|
|
58
99
|
});
|
|
59
|
-
export var updateKdsOrder = createAsyncThunk(KdsActionType.
|
|
100
|
+
export var updateKdsOrder = createAsyncThunk(KdsActionType.UpdateKdsOrder, function (_a, _b) {
|
|
60
101
|
var orderId = _a.orderId, data = _a.data;
|
|
61
102
|
var getState = _b.getState, dispatch = _b.dispatch;
|
|
62
103
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -81,7 +122,7 @@ export var updateKdsOrder = createAsyncThunk(KdsActionType.UpdateOrder, function
|
|
|
81
122
|
});
|
|
82
123
|
});
|
|
83
124
|
});
|
|
84
|
-
export var printKdsOrder = createAsyncThunk(KdsActionType.
|
|
125
|
+
export var printKdsOrder = createAsyncThunk(KdsActionType.PrintKdsOrder, function (orderId, _a) {
|
|
85
126
|
var getState = _a.getState, dispatch = _a.dispatch;
|
|
86
127
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
87
128
|
var api, order, err_3, detail;
|
|
@@ -346,9 +387,7 @@ export var selectKdsCardWidth = function (state) { return state.kds.cardWidth; }
|
|
|
346
387
|
export var selectKdsFontSize = function (state) { return state.kds.fontSize; };
|
|
347
388
|
export var selectKdsSummary = function (state) { return state.kds.summary; };
|
|
348
389
|
export var selectKdsPage = function (state) { return state.kds.page; };
|
|
349
|
-
export var selectKdsPageIndex = function (state) {
|
|
350
|
-
return state.kds.page ? state.kds.page - 1 : 0;
|
|
351
|
-
};
|
|
390
|
+
export var selectKdsPageIndex = function (state) { return state.kds.page - 1; };
|
|
352
391
|
export var selectKdsView = function (state) { return state.kds.view; };
|
|
353
392
|
export var selectKdsBusinessDate = function (state) { return state.kds.businessDate; };
|
|
354
393
|
export var selectKdsOrder = function (state) { return state.kds.order; };
|
|
@@ -366,6 +405,10 @@ export var selectKdsCurrentOrders = function (state) {
|
|
|
366
405
|
});
|
|
367
406
|
return { orders: filtered, loading: loading, error: error };
|
|
368
407
|
};
|
|
408
|
+
export var selectKdsCurrentCount = function (state) {
|
|
409
|
+
var orders = selectKdsCurrentOrders(state).orders;
|
|
410
|
+
return orders.length;
|
|
411
|
+
};
|
|
369
412
|
export var selectKdsFutureOrders = function (state) {
|
|
370
413
|
var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
|
|
371
414
|
var filtered = orders.filter(function (i) {
|
|
@@ -376,6 +419,17 @@ export var selectKdsFutureOrders = function (state) {
|
|
|
376
419
|
});
|
|
377
420
|
return { orders: filtered, loading: loading, error: error };
|
|
378
421
|
};
|
|
422
|
+
export var selectKdsFutureCount = function (state) {
|
|
423
|
+
var orders = selectKdsFutureOrders(state).orders;
|
|
424
|
+
return orders.length;
|
|
425
|
+
};
|
|
426
|
+
export var selectKdsPrepStationOrders = function (state) {
|
|
427
|
+
var _a = state.kds, prepStations = _a.prepStations, prepStationId = _a.prepStationId, orderType = _a.orderType, orders = _a.orders;
|
|
428
|
+
var prepStation = prepStations.find(function (i) { return i.prep_station_id === prepStationId; });
|
|
429
|
+
if (!prepStation)
|
|
430
|
+
return [];
|
|
431
|
+
return makeOrdersForPrepStation(orders, prepStation, orderType);
|
|
432
|
+
};
|
|
379
433
|
export var selectKdsOrdersCounts = function (state) {
|
|
380
434
|
var _a = state.kds.counts, current = _a.current, future = _a.future, qa = _a.qa;
|
|
381
435
|
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.6",
|
|
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",
|