@open-tender/store 0.9.5 → 1.0.0

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.
Files changed (60) hide show
  1. package/dist/.DS_Store +0 -0
  2. package/dist/cjs/app/hooks.d.ts +0 -1
  3. package/dist/cjs/app/store.d.ts +0 -4
  4. package/dist/cjs/app/store.js +0 -1
  5. package/dist/cjs/services/api.d.ts +4 -3
  6. package/dist/cjs/slices/arrivals.d.ts +1 -1
  7. package/dist/cjs/slices/arrivals.js +1 -0
  8. package/dist/cjs/slices/checkout.d.ts +3 -3
  9. package/dist/cjs/slices/checkout.js +2 -8
  10. package/dist/cjs/slices/config.d.ts +2 -1
  11. package/dist/cjs/slices/index.d.ts +0 -1
  12. package/dist/cjs/slices/index.js +0 -1
  13. package/dist/cjs/slices/kds.d.ts +34 -14
  14. package/dist/cjs/slices/kds.js +23 -7
  15. package/dist/cjs/slices/kiosk.d.ts +0 -1
  16. package/dist/cjs/slices/menuPages.d.ts +0 -1
  17. package/dist/cjs/slices/pos.d.ts +2 -1
  18. package/dist/cjs/slices/refund.d.ts +2 -1
  19. package/dist/cjs/slices/refund.js +4 -1
  20. package/dist/cjs/types/api/index.d.ts +0 -2
  21. package/dist/cjs/types/api/index.js +0 -2
  22. package/dist/cjs/types/api/order.d.ts +2 -91
  23. package/dist/cjs/utils/orders.d.ts +26 -24
  24. package/dist/cjs/utils/orders.js +110 -69
  25. package/dist/esm/app/hooks.d.ts +0 -1
  26. package/dist/esm/app/store.d.ts +0 -4
  27. package/dist/esm/app/store.js +1 -2
  28. package/dist/esm/services/api.d.ts +4 -3
  29. package/dist/esm/slices/arrivals.d.ts +1 -1
  30. package/dist/esm/slices/arrivals.js +1 -0
  31. package/dist/esm/slices/checkout.d.ts +3 -3
  32. package/dist/esm/slices/checkout.js +2 -8
  33. package/dist/esm/slices/config.d.ts +2 -1
  34. package/dist/esm/slices/index.d.ts +0 -1
  35. package/dist/esm/slices/index.js +0 -1
  36. package/dist/esm/slices/kds.d.ts +34 -14
  37. package/dist/esm/slices/kds.js +24 -8
  38. package/dist/esm/slices/kiosk.d.ts +0 -1
  39. package/dist/esm/slices/menuPages.d.ts +0 -1
  40. package/dist/esm/slices/pos.d.ts +2 -1
  41. package/dist/esm/slices/refund.d.ts +2 -1
  42. package/dist/esm/slices/refund.js +4 -1
  43. package/dist/esm/types/api/index.d.ts +0 -2
  44. package/dist/esm/types/api/index.js +0 -2
  45. package/dist/esm/types/api/order.d.ts +2 -91
  46. package/dist/esm/utils/orders.d.ts +26 -24
  47. package/dist/esm/utils/orders.js +103 -62
  48. package/package.json +6 -5
  49. package/dist/cjs/slices/completedOrders.d.ts +0 -34
  50. package/dist/cjs/slices/completedOrders.js +0 -104
  51. package/dist/cjs/types/api/config.d.ts +0 -22
  52. package/dist/cjs/types/api/config.js +0 -2
  53. package/dist/cjs/types/api/kds.d.ts +0 -24
  54. package/dist/cjs/types/api/kds.js +0 -2
  55. package/dist/esm/slices/completedOrders.d.ts +0 -34
  56. package/dist/esm/slices/completedOrders.js +0 -100
  57. package/dist/esm/types/api/config.d.ts +0 -22
  58. package/dist/esm/types/api/config.js +0 -1
  59. package/dist/esm/types/api/kds.d.ts +0 -24
  60. package/dist/esm/types/api/kds.js +0 -1
@@ -2,8 +2,9 @@ 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, filterOrdersToday, isoToDate, makeFetchOrdersArgs, makeItemCounts, makeKdsOrder, makeKdsOrders, makeKdsStationCounts, makeOrdersForPrepStation, notDone, timezoneMap } from '../utils';
5
+ import { currentLocalDate, filterOrdersToday, makeItemCounts, makeKdsOrder, makeKdsOrders, makeKdsStationCounts, makeOrdersForPrepStation, makeOrdersParams, notDone, timezoneMap } from '../utils';
6
6
  import { addAlert } from './alerts';
7
+ import { isoToDate } from '@open-tender/utils';
7
8
  var initialState = {
8
9
  terminalId: null,
9
10
  itemTypes: null,
@@ -51,7 +52,7 @@ export var fetchKdsOrders = createAsyncThunk(KdsActionType.FetchKdsOrders, funct
51
52
  case 0:
52
53
  _b.trys.push([0, 2, , 3]);
53
54
  api = getState().config.api;
54
- args = makeFetchOrdersArgs(params);
55
+ args = makeOrdersParams(params);
55
56
  return [4 /*yield*/, api.getOrders(args)];
56
57
  case 1:
57
58
  orders = _b.sent();
@@ -393,9 +394,14 @@ var kdsSlice = createSlice({
393
394
  .map(function (i) {
394
395
  return i.order_uuid === updated.order_uuid ? updated : i;
395
396
  })
396
- .filter(function (i) { return i.fire_at; });
397
+ .filter(function (i) { var _a; return (_a = i.order_prep) === null || _a === void 0 ? void 0 : _a.fire_at; });
397
398
  var orders = updatedOrders
398
- .map(function (i) { return (__assign(__assign({}, i), { fireAt: isoToDate(i.fire_at, tz) })); })
399
+ .map(function (i) {
400
+ var _a;
401
+ return (__assign(__assign({}, i), { fireAt: ((_a = i.order_prep) === null || _a === void 0 ? void 0 : _a.fire_at)
402
+ ? isoToDate(i.order_prep.fire_at, tz)
403
+ : new Date() }));
404
+ })
399
405
  .sort(function (a, b) { return a.fireAt.getTime() - b.fireAt.getTime(); });
400
406
  // const counts = makeKdsCounts(state.itemTypes, orders)
401
407
  var stationCounts = makeKdsStationCounts(updatedOrders, state.prepStations || []);
@@ -555,10 +561,15 @@ export var selectKdsOrders = function (state) {
555
561
  export var selectKdsCurrentOrders = function (state) {
556
562
  var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
557
563
  var filtered = orders.filter(function (i) {
564
+ if (!i.order_prep)
565
+ return false;
566
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
567
+ if (!fire_at)
568
+ return false;
558
569
  var tz = timezoneMap[i.timezone];
559
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
570
+ var fireDate = isoToDate(fire_at, tz);
560
571
  var currentDate = currentLocalDate(tz);
561
- return notDone(i.prep_status) && fireDate && fireDate < currentDate;
572
+ return notDone(prep_status) && fireDate < currentDate;
562
573
  });
563
574
  return { orders: filtered, loading: loading, error: error };
564
575
  };
@@ -569,10 +580,15 @@ export var selectKdsCurrentCount = function (state) {
569
580
  export var selectKdsFutureOrders = function (state) {
570
581
  var _a = state.kds, orders = _a.orders, loading = _a.loading, error = _a.error;
571
582
  var filtered = orders.filter(function (i) {
583
+ if (!i.order_prep)
584
+ return false;
585
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
586
+ if (!fire_at)
587
+ return false;
572
588
  var tz = timezoneMap[i.timezone];
573
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
589
+ var fireDate = isoToDate(fire_at, tz);
574
590
  var currentDate = currentLocalDate(tz);
575
- return notDone(i.prep_status) && fireDate && fireDate > currentDate;
591
+ return notDone(prep_status) && fireDate > currentDate;
576
592
  });
577
593
  return { orders: filtered, loading: loading, error: error };
578
594
  };
@@ -47,7 +47,6 @@ export declare const selectKioskConfigScreen: (screen: string) => ((state: {
47
47
  arrivals: import("./arrivals").ArrivalsState;
48
48
  cartSummary: import("./cartSummary").CartSummaryState;
49
49
  checkout: import("./checkout").CheckoutState;
50
- completedOrders: import("./completedOrders").CompletedOrdersState;
51
50
  config: import("./config").ConfigState;
52
51
  discounts: import("./discounts").DiscountsState;
53
52
  errorAlerts: import("./errorAlerts").ErrorAlertsState;
@@ -25,7 +25,6 @@ export declare const selectMenuPagesFiltered: ((state: {
25
25
  arrivals: import("./arrivals").ArrivalsState;
26
26
  cartSummary: import("./cartSummary").CartSummaryState;
27
27
  checkout: import("./checkout").CheckoutState;
28
- completedOrders: import("./completedOrders").CompletedOrdersState;
29
28
  config: import("./config").ConfigState;
30
29
  discounts: import("./discounts").DiscountsState;
31
30
  errorAlerts: import("./errorAlerts").ErrorAlertsState;
@@ -1,4 +1,5 @@
1
- import { Cashier, DeviceColorScheme, DeviceFontSize, Employee, Order, RequestError } from '../types';
1
+ import { DeviceColorScheme, DeviceFontSize, Order, RequestError } from '@open-tender/types';
2
+ import { Cashier, Employee } from '../types';
2
3
  import { AppState } from '../app';
3
4
  export interface PosState {
4
5
  terminalId: number | null;
@@ -1,4 +1,5 @@
1
- import { Order, Orders, RefundArgs, RequestError, RequestStatus } from '../types';
1
+ import { Order, Orders, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { RefundArgs } from '../types';
2
3
  import { AppState } from '../app';
3
4
  export interface RefundState {
4
5
  previous: Orders | null;
@@ -23,7 +23,10 @@ export var fetchPreviousRefunds = createAsyncThunk(RefundActionType.FetchPreviou
23
23
  case 0:
24
24
  _b.trys.push([0, 2, , 3]);
25
25
  api = getState().config.api;
26
- args = { receipt_type: 'REFUND', parent_receipt_uuid: orderId };
26
+ args = {
27
+ receipt_type: 'REFUND',
28
+ parent_receipt_uuid: orderId
29
+ };
27
30
  return [4 /*yield*/, api.getOrders(args)];
28
31
  case 1: return [2 /*return*/, _b.sent()];
29
32
  case 2:
@@ -2,7 +2,6 @@ export * from './alerts';
2
2
  export * from './arrivals';
3
3
  export * from './cart';
4
4
  export * from './checkout';
5
- export * from './config';
6
5
  export * from './customer';
7
6
  export * from './device';
8
7
  export * from './devices';
@@ -11,7 +10,6 @@ export * from './employee';
11
10
  export * from './errorAlerts';
12
11
  export * from './favorite';
13
12
  export * from './giftCard';
14
- export * from './kds';
15
13
  export * from './kiosk';
16
14
  export * from './menu';
17
15
  export * from './menuPages';
@@ -2,7 +2,6 @@ export * from './alerts';
2
2
  export * from './arrivals';
3
3
  export * from './cart';
4
4
  export * from './checkout';
5
- export * from './config';
6
5
  export * from './customer';
7
6
  export * from './device';
8
7
  export * from './devices';
@@ -11,7 +10,6 @@ export * from './employee';
11
10
  export * from './errorAlerts';
12
11
  export * from './favorite';
13
12
  export * from './giftCard';
14
- export * from './kds';
15
13
  export * from './kiosk';
16
14
  export * from './menu';
17
15
  export * from './menuPages';
@@ -1,7 +1,7 @@
1
- import { DateString, ISOStringOffset, TimezonePython } from '../datetimes';
1
+ import { PrepStatus } from '@open-tender/types';
2
+ import { ISOStringOffset, TimezonePython } from '../datetimes';
2
3
  import { CardType, ChannelType, Decimal, Money, NegativeMoney, OrderStatus, OrderType, ReceiptType, ServiceType, SurchargeType, Temperature, TenderStatus, TenderType } from '../global';
3
4
  import { Address, Customer } from './customer';
4
- import { PrepStatus, TicketStatus } from './kds';
5
5
  export interface OrderChannel {
6
6
  ext_id?: string | null;
7
7
  ext_name?: string | null;
@@ -329,92 +329,3 @@ export interface Order {
329
329
  totals: OrderTotals;
330
330
  }
331
331
  export type Orders = Array<Order>;
332
- export interface OrderKds extends Omit<Order, 'fire_at' | 'tickets' | 'expected_at'> {
333
- expected_at: ISOStringOffset;
334
- fire_at: ISOStringOffset;
335
- tickets: OrderTickets;
336
- }
337
- export type OrdersKds = Array<OrderKds>;
338
- export interface FetchOrdersArgs {
339
- businessDate?: DateString | null;
340
- receiptType?: ReceiptType | 'BOTH';
341
- channelType?: Array<ChannelType> | null;
342
- prepStatus?: Array<PrepStatus> | null;
343
- search?: string | null;
344
- sortBy?: 'requested_at' | 'expected_at' | 'fire_at';
345
- sortDirection?: 'ASC' | 'DESC';
346
- parentOrderId?: string;
347
- }
348
- export interface FetchOrdersAPIArgs {
349
- business_date?: DateString;
350
- receipt_type?: ReceiptType | 'BOTH';
351
- channel_type?: string;
352
- prep_status?: string;
353
- search?: string;
354
- sort_by?: 'requested_at' | 'expected_at' | 'fire_at';
355
- sort_direction?: 'ASC' | 'DESC';
356
- parent_receipt_uuid?: string;
357
- }
358
- export interface OrderCounts {
359
- current: Record<string, number> | null;
360
- future: Record<string, number> | null;
361
- qa: Record<string, number> | null;
362
- }
363
- export interface OrdersAndCounts {
364
- orders: OrdersKds;
365
- counts: OrderCounts;
366
- }
367
- export interface OrderUpdate {
368
- expected_at?: string;
369
- prep_status?: PrepStatus;
370
- }
371
- export interface OrderBucket {
372
- orders: OrdersKds;
373
- start: Date;
374
- end: Date;
375
- }
376
- export type OrderBuckets = Array<OrderBucket>;
377
- export interface OrderTimes {
378
- delayed: number;
379
- requested: Date;
380
- requestedTime: string;
381
- expected: Date;
382
- expectedDate: string;
383
- expectedTime: string;
384
- readyBy: Date;
385
- readyTime: string;
386
- dateStr: string;
387
- status: string;
388
- }
389
- export interface TicketUpdate {
390
- ticket_status: TicketStatus;
391
- }
392
- export interface TicketsUpdate {
393
- ticket_status?: TicketStatus;
394
- ticket_nos?: number[];
395
- }
396
- export type TicketStatusUpdate = 'done' | 'completed' | 'reset';
397
- export interface Ticket {
398
- item_nos: number[];
399
- item_type_id: number;
400
- item_type_name: string;
401
- ticket_no: number;
402
- ticket_status: TicketStatus;
403
- items: OrderCart;
404
- is_default: boolean;
405
- is_grouped: boolean;
406
- is_hidden_assembly: boolean;
407
- is_hidden_qa: boolean;
408
- print_on_completed: boolean;
409
- }
410
- export type TicketGroup = Ticket[];
411
- export type TicketGroups = TicketGroup[];
412
- export interface OrderKdsStatus {
413
- NOT_DONE: boolean;
414
- DONE: boolean;
415
- COMPLETED: boolean;
416
- }
417
- export interface OrderItemCount {
418
- item: OrderItem;
419
- count: number;
420
- }
@@ -1,25 +1,27 @@
1
- import { FetchOrdersAPIArgs, FetchOrdersArgs, HeaderColors, ItemType, ItemTypes, KdsOrderType, PrepStationPrepType, KdsStationCounts, KdsStationOrderTypeCount, ModifiersMetadata, Order, OrderBuckets, OrderCart, OrderItem, OrderItemCount, OrderKds, Orders, OrdersKds, OrderTickets, OrderTimes, PrepStation, PrepStations, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '../types';
1
+ import { Order, Orders } from '@open-tender/types';
2
+ import { HeaderColors, ItemType, ItemTypes, KdsOrderType, PrepStationPrepType, KdsStationCounts, KdsStationOrderTypeCount, ModifiersMetadata, OrderBuckets, OrderCart, OrderItem, OrderItemCount, OrderTickets, OrderPrepTimes, PrepStation, PrepStations, PrepStatus, PrepStatusMap, Store, TicketGroups, Timezone } from '@open-tender/types';
3
+ import { OrdersArgs, OrdersParams } from '../slices';
2
4
  export declare const prepStatus: PrepStatusMap;
3
- export declare const makeFetchOrdersArgs: ({ businessDate, receiptType, channelType, prepStatus, search, sortBy, sortDirection, parentOrderId }: FetchOrdersArgs) => FetchOrdersAPIArgs;
5
+ export declare const makeOrdersParams: ({ businessDate, receiptType, channelType, prepStatus, search, sortBy, sortDirection, parentOrderId }: OrdersArgs) => OrdersParams;
4
6
  export declare const notDone: (prep_status: PrepStatus) => boolean;
5
7
  export declare const isDone: (prep_status: PrepStatus) => boolean;
6
8
  export declare const notCompleted: (prep_status: PrepStatus) => boolean;
7
9
  export declare const isCompleted: (prep_status: PrepStatus) => boolean;
8
- export declare const isFutureOrder: (order: OrderKds) => boolean | null;
9
- export declare const makeKdsOrder: (order: Order) => OrderKds;
10
- export declare const makeKdsOrders: (orders: Orders) => OrdersKds;
11
- export declare const makeCurrentOrders: (orders: OrdersKds) => OrdersKds;
12
- export declare const makeFutureOrders: (orders: OrdersKds) => OrdersKds;
13
- export declare const makeIncompleteOrders: (orders: OrdersKds) => OrdersKds;
14
- export declare const makeCompletedOrders: (orders: OrdersKds) => OrdersKds;
15
- export declare const makeOrdersOfType: (orders: OrdersKds, orderType: KdsOrderType) => OrdersKds;
16
- export declare const filterOrdersByItemType: (orders: OrdersKds, itemTypeIds: number[] | null) => OrdersKds;
17
- export declare const filterOrdersByPrepType: (orders: OrdersKds, prepType: PrepStationPrepType) => OrdersKds;
18
- export declare const filterOrdersToday: (orders: OrdersKds) => OrdersKds;
19
- export declare const makeOrdersForPrepStation: (orders: OrdersKds, prepStation: PrepStation, orderType: KdsOrderType) => OrdersKds;
10
+ export declare const isFutureOrder: (order: Order) => boolean | null;
11
+ export declare const makeKdsOrder: (order: Order) => Order;
12
+ export declare const makeKdsOrders: (orders: Orders) => Orders;
13
+ export declare const makeCurrentOrders: (orders: Orders) => Orders;
14
+ export declare const makeFutureOrders: (orders: Orders) => Orders;
15
+ export declare const makeIncompleteOrders: (orders: Orders) => Orders;
16
+ export declare const makeCompletedOrders: (orders: Orders) => Orders;
17
+ export declare const makeOrdersOfType: (orders: Orders, orderType: KdsOrderType) => Orders;
18
+ export declare const filterOrdersByItemType: (orders: Orders, itemTypeIds: number[] | null) => Orders;
19
+ export declare const filterOrdersByPrepType: (orders: Orders, prepType: PrepStationPrepType) => Orders;
20
+ export declare const filterOrdersToday: (orders: Orders) => Orders;
21
+ export declare const makeOrdersForPrepStation: (orders: Orders, prepStation: PrepStation, orderType: KdsOrderType) => Orders;
20
22
  export declare const makeOrderItemSignature: (item: OrderItem, withNotes?: boolean) => string;
21
- export declare const makeItemCounts: (orders: OrdersKds, withMods?: boolean) => Record<string, OrderItemCount>;
22
- export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: OrdersKds | null) => {
23
+ export declare const makeItemCounts: (orders: Orders, withMods?: boolean) => Record<string, OrderItemCount>;
24
+ export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: Orders | null) => {
23
25
  current: null;
24
26
  future: null;
25
27
  qa: null;
@@ -28,14 +30,14 @@ export declare const makeKdsCounts: (itemTypes: ItemTypes | null, orders: Orders
28
30
  future: Record<string, number>;
29
31
  qa: Record<string, number>;
30
32
  };
31
- export declare const makeCurrentAndFutureOrders: (orders: OrdersKds) => {
32
- current: OrdersKds;
33
- future: OrdersKds;
33
+ export declare const makeCurrentAndFutureOrders: (orders: Orders) => {
34
+ current: Orders;
35
+ future: Orders;
34
36
  };
35
- export declare const makeKdsStationCount: (orders: OrdersKds, itemTypeIds: number[] | null, prepType: PrepStationPrepType) => KdsStationOrderTypeCount;
36
- export declare const makeKdsStationCounts: (orders: OrdersKds, prepStations: PrepStations) => KdsStationCounts;
37
- export declare const makeOrderBuckets: (orders: OrdersKds, tz: Timezone) => OrderBuckets;
38
- export declare const makeOrderBucketsCounts: (itemTypes?: ItemTypes, orders?: OrdersKds) => Record<string, number>;
37
+ export declare const makeKdsStationCount: (orders: Orders, itemTypeIds: number[] | null, prepType: PrepStationPrepType) => KdsStationOrderTypeCount;
38
+ export declare const makeKdsStationCounts: (orders: Orders, prepStations: PrepStations) => KdsStationCounts;
39
+ export declare const makeOrderBuckets: (orders: Orders, tz: Timezone) => OrderBuckets;
40
+ export declare const makeOrderBucketsCounts: (itemTypes?: ItemTypes, orders?: Orders) => Record<string, number>;
39
41
  export declare const makeTicketCounts: (tickets: OrderTickets) => Record<string, number>;
40
42
  export declare const makeItemTypeSettings: (itemType: ItemType) => {
41
43
  is_default: boolean;
@@ -51,5 +53,5 @@ export declare const makeTicketGroups: (tickets: OrderTickets, itemTypes: ItemTy
51
53
  export declare const makeDisplayCounts: (counts: Record<string, number>) => number[] | "";
52
54
  export declare const displayCounts: (counts: Record<string, number>) => string;
53
55
  export declare const makeBucketColor: (settings: Store, minutes: number) => "" | "error" | "alert" | "text";
54
- export declare const makeOrderTimes: (order: OrderKds, amPm?: boolean, warningMinutes?: number, alertMinutes?: number) => OrderTimes;
56
+ export declare const makeOrderPrepTimes: (order: Order, amPm?: boolean, warningMinutes?: number, alertMinutes?: number) => OrderPrepTimes | null;
55
57
  export declare const makeHeaderStatusColor: (status: string) => keyof HeaderColors;
@@ -1,6 +1,6 @@
1
1
  import { __assign, __spreadArray } from "tslib";
2
- import { currentLocalDate, currentLocalDateStr, DATE, formatDate, isoToDate, isoToDateStr, makeIntervals, minutesLeft, timezoneMap } from './datetimes';
3
- import { normalizeOrderType } from './order';
2
+ import { currentLocalDate, currentLocalDateStr, DATE, formatDate, makeIntervals, minutesLeft, timezoneMap } from './datetimes';
3
+ import { isoToDate, isoToDateStr } from '@open-tender/utils';
4
4
  export var prepStatus = {
5
5
  TODO: 'TODO',
6
6
  IN_PROGRESS: 'IN_PROGRESS',
@@ -8,7 +8,7 @@ export var prepStatus = {
8
8
  COMPLETED: 'COMPLETED',
9
9
  FULFILLED: 'FULFILLED'
10
10
  };
11
- export var makeFetchOrdersArgs = function (_a) {
11
+ export var makeOrdersParams = function (_a) {
12
12
  var businessDate = _a.businessDate, receiptType = _a.receiptType, channelType = _a.channelType, prepStatus = _a.prepStatus, search = _a.search, sortBy = _a.sortBy, sortDirection = _a.sortDirection, parentOrderId = _a.parentOrderId;
13
13
  var args = {};
14
14
  if (businessDate) {
@@ -62,50 +62,72 @@ export var isCompleted = function (prep_status) {
62
62
  return completeStates.includes(prep_status);
63
63
  };
64
64
  export var isFutureOrder = function (order) {
65
- var timezone = order.timezone, fire_at = order.fire_at, prep_status = order.prep_status;
65
+ var timezone = order.timezone, order_prep = order.order_prep;
66
+ if (!order_prep)
67
+ return false;
68
+ var fire_at = order_prep.fire_at, prep_status = order_prep.prep_status;
66
69
  var tz = timezoneMap[timezone];
67
70
  var fireDate = fire_at ? isoToDate(fire_at, tz) : null;
68
71
  var currentDate = currentLocalDate(tz);
69
72
  return notDone(prep_status) && fireDate && fireDate > currentDate;
70
73
  };
71
74
  export var makeKdsOrder = function (order) {
72
- return __assign(__assign({}, order), { order_type: normalizeOrderType(order.order_type) });
75
+ return order;
73
76
  };
74
77
  export var makeKdsOrders = function (orders) {
75
- var filtered = orders.filter(function (i) { return i.expected_at && i.fire_at && i.tickets; });
76
- return filtered.map(function (i) { return (__assign(__assign({}, i), { order_type: normalizeOrderType(i.order_type) })); });
78
+ return orders.filter(function (i) { var _a; return ((_a = i.order_prep) === null || _a === void 0 ? void 0 : _a.expected_at) && i.order_prep.fire_at && i.tickets; });
77
79
  };
78
80
  export var makeCurrentOrders = function (orders) {
79
81
  return orders.filter(function (i) {
80
82
  var tz = timezoneMap[i.timezone];
81
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
83
+ if (!i.order_prep)
84
+ return false;
85
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
86
+ if (!fire_at)
87
+ return false;
88
+ var fireDate = isoToDate(fire_at, tz);
82
89
  var currentDate = currentLocalDate(tz);
83
- return notCompleted(i.prep_status) && fireDate && fireDate < currentDate;
90
+ return notCompleted(prep_status) && fireDate < currentDate;
84
91
  });
85
92
  };
86
93
  export var makeFutureOrders = function (orders) {
87
94
  return orders.filter(function (i) {
88
95
  var tz = timezoneMap[i.timezone];
89
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
96
+ if (!i.order_prep)
97
+ return false;
98
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
99
+ if (!fire_at)
100
+ return false;
101
+ var fireDate = isoToDate(fire_at, tz);
90
102
  var currentDate = currentLocalDate(tz);
91
- return notCompleted(i.prep_status) && fireDate && fireDate > currentDate;
103
+ return notDone(prep_status) && fireDate > currentDate;
92
104
  });
93
105
  };
94
106
  export var makeIncompleteOrders = function (orders) {
95
107
  return orders.filter(function (i) {
96
108
  var tz = timezoneMap[i.timezone];
97
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
98
- return notCompleted(i.prep_status) && fireDate;
109
+ if (!i.order_prep)
110
+ return false;
111
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
112
+ if (!fire_at)
113
+ return false;
114
+ var fireDate = isoToDate(fire_at, tz);
115
+ return notCompleted(prep_status) && fireDate;
99
116
  });
100
117
  };
101
118
  export var makeCompletedOrders = function (orders) {
102
119
  return orders.filter(function (i) {
103
120
  var tz = timezoneMap[i.timezone];
104
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
105
- var fireDateStr = fireDate ? formatDate(fireDate, 'yyyy-MM-dd') : null;
121
+ if (!i.order_prep)
122
+ return false;
123
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
124
+ if (!fire_at)
125
+ return false;
126
+ var fireDate = isoToDate(fire_at, tz);
127
+ var fireDateStr = formatDate(fireDate, 'yyyy-MM-dd');
106
128
  var currentDate = currentLocalDate(tz);
107
129
  var currentDateStr = formatDate(currentDate, 'yyyy-MM-dd');
108
- return (isCompleted(i.prep_status) && fireDate && fireDateStr === currentDateStr);
130
+ return isCompleted(prep_status) && fireDateStr === currentDateStr;
109
131
  });
110
132
  };
111
133
  export var makeOrdersOfType = function (orders, orderType) {
@@ -125,21 +147,23 @@ export var filterOrdersByItemType = function (orders, itemTypeIds) {
125
147
  return orders;
126
148
  return orders
127
149
  .reduce(function (arr, i) {
128
- var tickets = i.tickets.filter(function (t) {
150
+ var _a;
151
+ var tickets = (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.filter(function (t) {
129
152
  return itemTypeIds.includes(t.item_type_id);
130
153
  });
131
154
  return __spreadArray(__spreadArray([], arr, true), [__assign(__assign({}, i), { tickets: tickets })], false);
132
155
  }, [])
133
- .filter(function (i) { return i.tickets.length; });
156
+ .filter(function (i) { var _a; return (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.length; });
134
157
  };
135
158
  export var filterOrdersByPrepType = function (orders, prepType) {
136
159
  var statusFunc = prepType === 'ASSEMBLY' ? notDone : notCompleted;
137
160
  return orders
138
161
  .reduce(function (arr, i) {
139
- var tickets = i.tickets.filter(function (t) { return statusFunc(t.ticket_status); });
162
+ var _a;
163
+ var tickets = (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.filter(function (t) { return statusFunc(t.ticket_status); });
140
164
  return __spreadArray(__spreadArray([], arr, true), [__assign(__assign({}, i), { tickets: tickets })], false);
141
165
  }, [])
142
- .filter(function (i) { return i.tickets.length; });
166
+ .filter(function (i) { var _a; return (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.length; });
143
167
  };
144
168
  export var filterOrdersToday = function (orders) {
145
169
  if (!orders.length)
@@ -147,6 +171,8 @@ export var filterOrdersToday = function (orders) {
147
171
  var tz = timezoneMap[orders[0].timezone];
148
172
  var today = currentLocalDateStr(tz);
149
173
  return orders.filter(function (i) {
174
+ if (i.requested_at === 'asap')
175
+ return true;
150
176
  var requesteDateStr = isoToDateStr(i.requested_at, tz, DATE);
151
177
  return today === requesteDateStr;
152
178
  });
@@ -158,16 +184,20 @@ export var makeOrdersForPrepStation = function (orders, prepStation, orderType)
158
184
  return filterOrdersByItemType(ordersOfType, item_type_ids);
159
185
  }
160
186
  var filteredOrders = prep_type === 'ASSEMBLY'
161
- ? ordersOfType.filter(function (i) { return notDone(i.prep_status); })
187
+ ? ordersOfType.filter(function (i) {
188
+ return i.order_prep ? notDone(i.order_prep.prep_status) : false;
189
+ })
162
190
  : ordersOfType.filter(function (i) {
163
- return expo_done_only
164
- ? i.prep_status === 'DONE'
165
- : notCompleted(i.prep_status);
191
+ return !i.order_prep
192
+ ? false
193
+ : expo_done_only
194
+ ? i.order_prep.prep_status === 'DONE'
195
+ : notCompleted(i.order_prep.prep_status);
166
196
  });
167
197
  var filtered = filterOrdersByItemType(filteredOrders, item_type_ids);
168
198
  return prep_type === 'EXPO'
169
199
  ? filtered
170
- : filtered.filter(function (i) { return i.tickets.filter(function (t) { return notDone(t.ticket_status); }).length; });
200
+ : filtered.filter(function (i) { var _a; return (_a = i.tickets) === null || _a === void 0 ? void 0 : _a.filter(function (t) { return notDone(t.ticket_status); }).length; });
171
201
  };
172
202
  export var makeOrderItemSignature = function (item, withNotes) {
173
203
  if (withNotes === void 0) { withNotes = false; }
@@ -225,14 +255,15 @@ export var makeKdsCounts = function (itemTypes, orders) {
225
255
  var current = __assign({ Orders: 0 }, itemTypeCounts);
226
256
  var qa = __assign({ Orders: 0 }, itemTypeCounts);
227
257
  var future = __assign({ Orders: 0 }, itemTypeCounts);
228
- var openOrders = orders.filter(function (i) { return notCompleted(i.prep_status); });
258
+ var openOrders = orders.filter(function (i) { return i.order_prep && notCompleted(i.order_prep.prep_status); });
229
259
  openOrders.forEach(function (order) {
230
- if (!order.fire_at || !order.tickets)
260
+ if (!order.order_prep || !order.tickets)
231
261
  return;
262
+ var _a = order.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
232
263
  var tz = timezoneMap[order.timezone];
233
- var fireDate = isoToDate(order.fire_at, tz);
264
+ var fireDate = fire_at ? isoToDate(fire_at, tz) : null;
234
265
  var currentDate = currentLocalDate(tz);
235
- var isDone = order.prep_status === prepStatus.DONE;
266
+ var isDone = prep_status === prepStatus.DONE;
236
267
  var isCurrent = fireDate ? fireDate < currentDate : false;
237
268
  var ticketCounts = order.tickets.reduce(function (obj, ticket) {
238
269
  var _a;
@@ -257,8 +288,11 @@ export var makeCurrentAndFutureOrders = function (orders) {
257
288
  var future = [];
258
289
  orders.forEach(function (i) {
259
290
  var tz = timezoneMap[i.timezone];
260
- var fireDate = i.fire_at ? isoToDate(i.fire_at, tz) : null;
261
- if (isCompleted(i.prep_status) || !fireDate)
291
+ if (!i.order_prep)
292
+ return;
293
+ var _a = i.order_prep, fire_at = _a.fire_at, prep_status = _a.prep_status;
294
+ var fireDate = fire_at ? isoToDate(fire_at, tz) : null;
295
+ if (isCompleted(prep_status) || !fireDate)
262
296
  return;
263
297
  var currentDate = currentLocalDate(tz);
264
298
  if (fireDate < currentDate) {
@@ -273,17 +307,29 @@ export var makeCurrentAndFutureOrders = function (orders) {
273
307
  export var makeKdsStationCount = function (orders, itemTypeIds, prepType) {
274
308
  var byItemType = filterOrdersByItemType(orders, itemTypeIds);
275
309
  var filtered = filterOrdersByPrepType(byItemType, prepType);
276
- var tickets = filtered.reduce(function (arr, i) { return __spreadArray(__spreadArray([], arr, true), i.tickets, true); }, []);
310
+ var tickets = filtered.reduce(function (arr, i) { return __spreadArray(__spreadArray([], arr, true), (i.tickets || []), true); }, []);
277
311
  return { orders: filtered.length, tickets: tickets.length };
278
312
  };
279
313
  export var makeKdsStationCounts = function (orders, prepStations) {
280
314
  var _a = makeCurrentAndFutureOrders(orders), currentOrders = _a.current, futureOrders = _a.future;
281
- var currentAssembly = currentOrders.filter(function (i) { return notDone(i.prep_status); });
282
- var futureAssembly = futureOrders.filter(function (i) { return notDone(i.prep_status); });
283
- var currentExpoDone = currentOrders.filter(function (i) { return i.prep_status === 'DONE'; });
284
- var currentExpo = currentOrders.filter(function (i) { return notCompleted(i.prep_status); });
285
- var futureExpoDone = futureOrders.filter(function (i) { return i.prep_status === 'DONE'; });
286
- var futureExpo = futureOrders.filter(function (i) { return notCompleted(i.prep_status); });
315
+ var currentAssembly = currentOrders.filter(function (i) {
316
+ return i.order_prep ? notDone(i.order_prep.prep_status) : false;
317
+ });
318
+ var futureAssembly = futureOrders.filter(function (i) {
319
+ return i.order_prep ? notDone(i.order_prep.prep_status) : false;
320
+ });
321
+ var currentExpoDone = currentOrders.filter(function (i) {
322
+ return i.order_prep ? i.order_prep.prep_status === 'DONE' : false;
323
+ });
324
+ var currentExpo = currentOrders.filter(function (i) {
325
+ return i.order_prep ? notCompleted(i.order_prep.prep_status) : false;
326
+ });
327
+ var futureExpoDone = futureOrders.filter(function (i) {
328
+ return i.order_prep ? i.order_prep.prep_status === 'DONE' : false;
329
+ });
330
+ var futureExpo = futureOrders.filter(function (i) {
331
+ return i.order_prep ? notCompleted(i.order_prep.prep_status) : false;
332
+ });
287
333
  return prepStations.reduce(function (obj, i) {
288
334
  var _a;
289
335
  var currentFiltered = i.prep_type === 'ASSEMBLY'
@@ -301,30 +347,16 @@ export var makeKdsStationCounts = function (orders, prepStations) {
301
347
  return __assign(__assign({}, obj), (_a = {}, _a[i.prep_station_id] = { CURRENT: current, FUTURE: future }, _a));
302
348
  }, {});
303
349
  };
304
- // export const makeOrderBuckets = (
305
- // orders: OrdersKds,
306
- // tz: Timezone,
307
- // prepStates: Array<PrepStatus> = []
308
- // ): OrderBuckets => {
309
- // const intervals = makeIntervals(tz)
310
- // const withOrders = intervals.map(i => {
311
- // const inBucket = orders.filter(order => {
312
- // if (!order.ready_at || !prepStates.length) return
313
- // const incomplete = prepStates.includes(order.prep_status)
314
- // const readyAt = isoToDate(order.ready_at, tz)
315
- // return incomplete && i.start < readyAt && readyAt <= i.end
316
- // })
317
- // return { ...i, orders: inBucket }
318
- // })
319
- // return withOrders
320
- // }
321
350
  export var makeOrderBuckets = function (orders, tz) {
322
351
  var intervals = makeIntervals(tz);
323
352
  var withOrders = intervals.map(function (interval) {
324
353
  var inBucket = orders.filter(function (order) {
325
- if (!order.ready_at)
354
+ if (!order.order_prep)
355
+ return false;
356
+ var ready_at = order.order_prep.ready_at;
357
+ if (!ready_at)
326
358
  return false;
327
- var readyAt = isoToDate(order.ready_at, tz);
359
+ var readyAt = isoToDate(ready_at, tz);
328
360
  return readyAt > interval.start && readyAt <= interval.end;
329
361
  });
330
362
  return __assign(__assign({}, interval), { orders: inBucket });
@@ -342,12 +374,14 @@ export var makeOrderBucketsCounts = function (itemTypes, orders) {
342
374
  }, {});
343
375
  var counts = __assign({ Orders: 0 }, itemTypeCounts);
344
376
  orders.forEach(function (order) {
345
- var ticketCounts = order.tickets.reduce(function (obj, ticket) {
377
+ var _a;
378
+ var ticketCounts = (_a = order.tickets) === null || _a === void 0 ? void 0 : _a.reduce(function (obj, ticket) {
346
379
  var _a;
347
380
  var count = obj[ticket.item_type_name] || 0;
348
381
  return __assign(__assign({}, obj), (_a = {}, _a[ticket.item_type_name] = count + ticket.item_nos.length, _a));
349
382
  }, {});
350
- counts = updateCounts(counts, ticketCounts);
383
+ if (ticketCounts)
384
+ counts = updateCounts(counts, ticketCounts);
351
385
  });
352
386
  return counts;
353
387
  };
@@ -377,7 +411,9 @@ export var makeItemTypesMap = function (itemTypes) {
377
411
  export var makeCartLookup = function (cart) {
378
412
  return cart.reduce(function (obj, i) {
379
413
  var _a;
380
- return (__assign(__assign({}, obj), (_a = {}, _a[i.item_no.toString()] = i, _a)));
414
+ if (!i.item_no)
415
+ return obj;
416
+ return __assign(__assign({}, obj), (_a = {}, _a[i.item_no.toString()] = i, _a));
381
417
  }, {});
382
418
  };
383
419
  export var makeModifiersMetadataLookup = function (cart) {
@@ -436,11 +472,16 @@ export var makeBucketColor = function (settings, minutes) {
436
472
  ? 'alert'
437
473
  : 'text';
438
474
  };
439
- export var makeOrderTimes = function (order, amPm, warningMinutes, alertMinutes) {
475
+ export var makeOrderPrepTimes = function (order, amPm, warningMinutes, alertMinutes) {
440
476
  if (amPm === void 0) { amPm = false; }
441
477
  if (warningMinutes === void 0) { warningMinutes = 5; }
442
478
  if (alertMinutes === void 0) { alertMinutes = 10; }
443
- var timezone = order.timezone, ready_at = order.ready_at, requested_at = order.requested_at, expected_at = order.expected_at, prep_status = order.prep_status;
479
+ var order_prep = order.order_prep, timezone = order.timezone, requested_at = order.requested_at;
480
+ if (!order_prep)
481
+ return null;
482
+ var ready_at = order_prep.ready_at, expected_at = order_prep.expected_at, prep_status = order_prep.prep_status;
483
+ if (!ready_at || !expected_at || requested_at === 'asap')
484
+ return null;
444
485
  var tz = timezoneMap[timezone];
445
486
  var current = currentLocalDate(tz);
446
487
  var readyBy = isoToDate(ready_at || expected_at, tz);