@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.
@@ -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;
@@ -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 };
@@ -1,4 +1,5 @@
1
- import { IpAddress, PrepStatus } from '../global';
1
+ import { IpAddress } from '../global';
2
+ import { PrepStatus } from './kds';
2
3
  export interface Config {
3
4
  backup_printer_ip_address: IpAddress | null;
4
5
  backup_printer_use_beeper: boolean;
@@ -10,6 +10,7 @@ export * from './employee';
10
10
  export * from './errorAlerts';
11
11
  export * from './favorite';
12
12
  export * from './giftCard';
13
+ export * from './kds';
13
14
  export * from './menu';
14
15
  export * from './menuPages';
15
16
  export * from './messages';
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,7 @@
1
1
  import { DateString, ISOStringOffset, TimezonePython } from '../datetimes';
2
- import { CardType, ChannelType, Decimal, Money, NegativeMoney, OrderStatus, OrderType, PrepStatus, ReceiptType, ServiceType, SurchargeType, Temperature, TenderStatus, TenderType, TicketStatus } from '../global';
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;
@@ -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) {
@@ -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;
@@ -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 };
@@ -1,4 +1,5 @@
1
- import { IpAddress, PrepStatus } from '../global';
1
+ import { IpAddress } from '../global';
2
+ import { PrepStatus } from './kds';
2
3
  export interface Config {
3
4
  backup_printer_ip_address: IpAddress | null;
4
5
  backup_printer_use_beeper: boolean;
@@ -10,6 +10,7 @@ export * from './employee';
10
10
  export * from './errorAlerts';
11
11
  export * from './favorite';
12
12
  export * from './giftCard';
13
+ export * from './kds';
13
14
  export * from './menu';
14
15
  export * from './menuPages';
15
16
  export * from './messages';
@@ -10,6 +10,7 @@ export * from './employee';
10
10
  export * from './errorAlerts';
11
11
  export * from './favorite';
12
12
  export * from './giftCard';
13
+ export * from './kds';
13
14
  export * from './menu';
14
15
  export * from './menuPages';
15
16
  export * from './messages';
@@ -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, PrepStatus, ReceiptType, ServiceType, SurchargeType, Temperature, TenderStatus, TenderType, TicketStatus } from '../global';
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;
@@ -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.5",
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",