@open-tender/store 0.7.3 → 0.7.5

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/.DS_Store ADDED
Binary file
@@ -36,12 +36,11 @@ var getAmountDue = function (check) {
36
36
  return check && check.totals ? check.totals.amount_due : null;
37
37
  };
38
38
  var prepareOrder = function (order, checkout) {
39
- var order_uuid = order.orderId, requested_at = order.requestedAt, service_type = order.serviceType, order_type = order.orderType, revenueCenter = order.revenueCenter;
39
+ var order_uuid = order.orderId, requested_at = order.requestedAt, service_type = order.serviceType, order_type = order.orderType, revenue_center_id = order.revenueCenterId;
40
40
  if (!order_uuid)
41
41
  return null;
42
42
  var simpleCart = (0, order_1.makeSimpleCart)(order.cart);
43
43
  var cart = simpleCart.filter(function (item) { return item; });
44
- var revenue_center_id = revenueCenter === null || revenueCenter === void 0 ? void 0 : revenueCenter.revenue_center_id;
45
44
  if (!revenue_center_id || !order_type || !service_type) {
46
45
  return null;
47
46
  }
@@ -10,7 +10,6 @@ export interface ConfigState {
10
10
  version?: string | null;
11
11
  devices: Devices | null;
12
12
  store: Store | null;
13
- revenueCenterId: number | null;
14
13
  selectOptions: SelectOptions | null;
15
14
  menuColors: MenuColors | null;
16
15
  name: string | null;
@@ -42,10 +41,9 @@ export declare const selectApi: (state: AppState) => PosAPI;
42
41
  export declare const selectVersion: (state: AppState) => string | null | undefined;
43
42
  export declare const selectDevices: (state: AppState) => Devices | null;
44
43
  export declare const selectStore: (state: AppState) => Store | null;
45
- export declare const selectRevenueCenterId: (state: AppState) => number | null;
46
44
  export declare const selectSelectOptions: (state: AppState) => SelectOptions;
47
45
  export declare const selectMenuColors: (state: AppState) => MenuColors;
48
- export declare const selectTimezone: (state: AppState) => Timezone;
46
+ export declare const selectTimezone: () => Timezone;
49
47
  export declare const selectLoyalty: (state: AppState) => boolean;
50
48
  export declare const selectPinpad: (state: AppState) => boolean;
51
49
  export declare const selectCashDrawer: (state: AppState) => boolean;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.configReducer = exports.selectCashDrawer = exports.selectPinpad = exports.selectLoyalty = exports.selectTimezone = exports.selectMenuColors = exports.selectSelectOptions = exports.selectRevenueCenterId = exports.selectStore = exports.selectDevices = exports.selectVersion = exports.selectApi = exports.selectConfig = exports.setApi = exports.setVersion = exports.incrementRetries = exports.resetRetries = exports.resetConfig = exports.fetchConfig = exports.ConfigActionType = void 0;
4
+ exports.configReducer = exports.selectCashDrawer = exports.selectPinpad = exports.selectLoyalty = exports.selectTimezone = exports.selectMenuColors = exports.selectSelectOptions = exports.selectStore = exports.selectDevices = exports.selectVersion = exports.selectApi = exports.selectConfig = exports.setApi = exports.setVersion = exports.incrementRetries = exports.resetRetries = exports.resetConfig = exports.fetchConfig = exports.ConfigActionType = void 0;
5
5
  var tslib_1 = require("tslib");
6
6
  var toolkit_1 = require("@reduxjs/toolkit");
7
7
  var services_1 = require("../services");
@@ -10,6 +10,7 @@ var utils_1 = require("../utils");
10
10
  var errors_1 = require("../services/errors");
11
11
  var pos_1 = require("./pos");
12
12
  var kds_1 = require("./kds");
13
+ var order_1 = require("./order");
13
14
  var defaultApiUrl = "http://".concat(window.location.hostname, ":5001/pos-api");
14
15
  var initialState = {
15
16
  api: new services_1.PosAPI({ apiUrl: defaultApiUrl }),
@@ -17,7 +18,6 @@ var initialState = {
17
18
  version: null,
18
19
  devices: null,
19
20
  store: null,
20
- revenueCenterId: null,
21
21
  selectOptions: null,
22
22
  menuColors: null,
23
23
  name: null,
@@ -38,7 +38,7 @@ exports.fetchConfig = (0, toolkit_1.createAsyncThunk)(ConfigActionType.FetchConf
38
38
  return tslib_1.__awaiter(void 0, void 0, void 0, function () {
39
39
  var app, api, _c, _d,
40
40
  // config,
41
- devicesList, _e, stores, _f, selectOptions, _g, itemTypes, store, devices, err, cashier, employee, tz, businessDate, err_1, revenueCenterId, menuColors, err_2;
41
+ devicesList, _e, stores, _f, selectOptions, _g, itemTypes, store, devices, err, cashier, employee, tz, businessDate, err_1, menuColors, err_2;
42
42
  return tslib_1.__generator(this, function (_h) {
43
43
  switch (_h.label) {
44
44
  case 0:
@@ -66,10 +66,13 @@ exports.fetchConfig = (0, toolkit_1.createAsyncThunk)(ConfigActionType.FetchConf
66
66
  _h.label = 2;
67
67
  case 2:
68
68
  _h.trys.push([2, 4, , 5]);
69
- return [4 /*yield*/, api.getCashier()];
69
+ return [4 /*yield*/, api.getCashier()
70
+ // TODO: figure out how to get the timezone from BE
71
+ // const tz = timezoneMap[store.timezone]
72
+ ];
70
73
  case 3:
71
74
  employee = _h.sent();
72
- tz = utils_1.timezoneMap[store.timezone];
75
+ tz = (0, utils_1.getUserTimezone)();
73
76
  businessDate = (0, utils_1.currentLocalDateStr)(tz);
74
77
  dispatch((0, pos_1.setCashier)(tslib_1.__assign(tslib_1.__assign({}, employee), { businessDate: businessDate })));
75
78
  return [3 /*break*/, 5];
@@ -77,7 +80,7 @@ exports.fetchConfig = (0, toolkit_1.createAsyncThunk)(ConfigActionType.FetchConf
77
80
  err_1 = _h.sent();
78
81
  return [3 /*break*/, 5];
79
82
  case 5:
80
- revenueCenterId = store.revenue_center_id;
83
+ dispatch((0, order_1.setRevenueCenterId)(store.revenue_center_id));
81
84
  dispatch((0, kds_1.setKdsItemTypes)(itemTypes));
82
85
  dispatch((0, kds_1.setKdsPrepStations)(devices.prep_stations));
83
86
  menuColors = [];
@@ -86,7 +89,6 @@ exports.fetchConfig = (0, toolkit_1.createAsyncThunk)(ConfigActionType.FetchConf
86
89
  app: app,
87
90
  devices: devices,
88
91
  store: store,
89
- revenueCenterId: revenueCenterId,
90
92
  selectOptions: selectOptions,
91
93
  menuColors: menuColors,
92
94
  name: 'Name',
@@ -129,12 +131,11 @@ var configSlice = (0, toolkit_1.createSlice)({
129
131
  state.loading = 'pending';
130
132
  })
131
133
  .addCase(exports.fetchConfig.fulfilled, function (state, action) {
132
- var _a = action.payload, api = _a.api, app = _a.app, devices = _a.devices, store = _a.store, revenueCenterId = _a.revenueCenterId, selectOptions = _a.selectOptions, menuColors = _a.menuColors;
134
+ var _a = action.payload, api = _a.api, app = _a.app, devices = _a.devices, store = _a.store, selectOptions = _a.selectOptions, menuColors = _a.menuColors;
133
135
  state.api = api;
134
136
  state.app = app;
135
137
  state.store = store;
136
138
  state.devices = devices;
137
- state.revenueCenterId = revenueCenterId;
138
139
  state.selectOptions = selectOptions;
139
140
  state.menuColors = menuColors;
140
141
  state.loading = 'idle';
@@ -158,10 +159,6 @@ var selectDevices = function (state) { return state.config.devices; };
158
159
  exports.selectDevices = selectDevices;
159
160
  var selectStore = function (state) { return state.config.store; };
160
161
  exports.selectStore = selectStore;
161
- var selectRevenueCenterId = function (state) {
162
- return state.config.revenueCenterId;
163
- };
164
- exports.selectRevenueCenterId = selectRevenueCenterId;
165
162
  var selectSelectOptions = function (state) {
166
163
  return state.config.selectOptions || [];
167
164
  };
@@ -170,11 +167,11 @@ var selectMenuColors = function (state) {
170
167
  return state.config.menuColors || [];
171
168
  };
172
169
  exports.selectMenuColors = selectMenuColors;
173
- var selectTimezone = function (state) {
174
- return state.config.store
175
- ? utils_1.timezoneMap[state.config.store.timezone]
176
- : (0, utils_1.getUserTimezone)();
177
- };
170
+ // export const selectTimezone = (state: AppState): Timezone =>
171
+ // state.config.store
172
+ // ? timezoneMap[state.config.store.timezone as TimezonePython]
173
+ // : (getUserTimezone() as Timezone)
174
+ var selectTimezone = function () { return (0, utils_1.getUserTimezone)(); };
178
175
  exports.selectTimezone = selectTimezone;
179
176
  var selectLoyalty = function (state) {
180
177
  return state.config.store ? state.config.store.has_loyalty : false;
@@ -1,10 +1,10 @@
1
- import { Cart, CartCounts, CartItem, MenuCategory, MenuVendor, Messages, OrderType, RequestedAt, RequestError, RequestStatus, RevenueCenter, ServiceType } from '../types';
1
+ import { Cart, CartCounts, CartItem, MenuCategory, MenuVendor, Messages, OrderType, RequestedAt, RequestError, RequestStatus, ServiceType } from '../types';
2
2
  import { AppState } from '../app';
3
3
  export interface OrderState {
4
4
  orderId: string | null;
5
5
  orderType: OrderType | null;
6
6
  serviceType: ServiceType | null;
7
- revenueCenter: RevenueCenter | null;
7
+ revenueCenterId: number | null;
8
8
  table: string | null;
9
9
  prepType: 'EAT_HERE' | 'TAKE_OUT' | null;
10
10
  requestedAt: RequestedAt;
@@ -21,17 +21,7 @@ export interface OrderState {
21
21
  export declare enum OrderActionType {
22
22
  FetchRevenueCenter = "orders/fetchRevenueCenter"
23
23
  }
24
- export declare const fetchRevenueCenter: import("@reduxjs/toolkit").AsyncThunk<RevenueCenter, number, {
25
- state: AppState;
26
- rejectValue: RequestError;
27
- dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
28
- extra?: unknown;
29
- serializedErrorType?: unknown;
30
- pendingMeta?: unknown;
31
- fulfilledMeta?: unknown;
32
- rejectedMeta?: unknown;
33
- }>;
34
- export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenter">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">;
24
+ export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenterId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenterId">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">;
35
25
  export declare const selectAlert: (state: AppState) => string | null;
36
26
  export declare const selectMessages: (state: AppState) => Messages;
37
27
  export declare const selectOrder: (state: AppState) => OrderState;
@@ -40,15 +30,10 @@ export declare const selectOrderTypeName: (state: AppState) => string;
40
30
  export declare const selectServiceType: (state: AppState) => ServiceType | null;
41
31
  export declare const selectServiceTypeName: (state: AppState) => string;
42
32
  export declare const selectRequestedAt: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | "ASAP";
43
- export declare const selectRevenueCenter: (state: AppState) => RevenueCenter | null;
44
- export declare const selectRevenueCenterName: (state: AppState) => string | null;
33
+ export declare const selectRevenueCenterId: (state: AppState) => number | null;
45
34
  export declare const selectMenuSlug: (state: AppState) => string;
46
35
  export declare const selectMenuVars: (state: AppState) => {
47
- revenueCenterId?: undefined;
48
- serviceType?: undefined;
49
- requestedAt?: undefined;
50
- } | {
51
- revenueCenterId: number;
36
+ revenueCenterId: number | null;
52
37
  serviceType: ServiceType | null;
53
38
  requestedAt: RequestedAt;
54
39
  };
@@ -60,11 +45,11 @@ export declare const selectCartIds: (state: AppState) => number[];
60
45
  export declare const selectCartQuantity: (state: AppState) => number;
61
46
  export declare const selectCartTotal: (state: AppState) => number;
62
47
  export declare const selectCartCounts: (state: AppState) => CartCounts;
63
- export declare const selectCanOrder: (state: AppState) => RequestedAt | null;
48
+ export declare const selectCanOrder: (state: AppState) => 0 | RequestedAt | null;
64
49
  export declare const selectCartValidate: (state: AppState) => {
65
- revenueCenterId: number;
50
+ revenueCenterId: number | null;
66
51
  serviceType: ServiceType | null;
67
52
  requestedAt: RequestedAt;
68
53
  cart: Cart;
69
- } | null;
54
+ };
70
55
  export declare const orderReducer: import("redux").Reducer<OrderState>;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.selectCanOrder = exports.selectCartCounts = exports.selectCartTotal = exports.selectCartQuantity = exports.selectCartIds = exports.selectCart = exports.selectCurrentItem = exports.selectCurrentCategory = exports.selectCurrentVendor = exports.selectMenuVars = exports.selectMenuSlug = exports.selectRevenueCenterName = exports.selectRevenueCenter = exports.selectRequestedAt = exports.selectServiceTypeName = exports.selectServiceType = exports.selectOrderTypeName = exports.selectOrderType = exports.selectOrder = exports.selectMessages = exports.selectAlert = exports.removeMessage = exports.addMessage = exports.decrementItemInCart = exports.incrementItemInCart = exports.removeItemFromCart = exports.addItemToCart = exports.setCurrentItem = exports.setCurrentCategory = exports.setCurrentVendor = exports.setCart = exports.setMenuVars = exports.setOrderServiceType = exports.setPrepType = exports.setTable = exports.setRevenueCenter = exports.setRequestedAt = exports.setServiceType = exports.setOrderType = exports.setOrderId = exports.setAlert = exports.resetAlert = exports.resetMessages = exports.resetCart = exports.resetLocation = exports.resetRevenueCenter = exports.resetOrderType = exports.resetOrder = exports.fetchRevenueCenter = exports.OrderActionType = void 0;
5
- exports.orderReducer = exports.selectCartValidate = void 0;
4
+ exports.orderReducer = exports.selectCartValidate = exports.selectCanOrder = exports.selectCartCounts = exports.selectCartTotal = exports.selectCartQuantity = exports.selectCartIds = exports.selectCart = exports.selectCurrentItem = exports.selectCurrentCategory = exports.selectCurrentVendor = exports.selectMenuVars = exports.selectMenuSlug = exports.selectRevenueCenterId = exports.selectRequestedAt = exports.selectServiceTypeName = exports.selectServiceType = exports.selectOrderTypeName = exports.selectOrderType = exports.selectOrder = exports.selectMessages = exports.selectAlert = exports.removeMessage = exports.addMessage = exports.decrementItemInCart = exports.incrementItemInCart = exports.removeItemFromCart = exports.addItemToCart = exports.setCurrentItem = exports.setCurrentCategory = exports.setCurrentVendor = exports.setCart = exports.setMenuVars = exports.setOrderServiceType = exports.setPrepType = exports.setTable = exports.setRevenueCenterId = exports.setRequestedAt = exports.setServiceType = exports.setOrderType = exports.setOrderId = exports.setAlert = exports.resetAlert = exports.resetMessages = exports.resetCart = exports.resetLocation = exports.resetRevenueCenter = exports.resetOrderType = exports.resetOrder = exports.OrderActionType = void 0;
6
5
  var tslib_1 = require("tslib");
7
6
  var toolkit_1 = require("@reduxjs/toolkit");
8
7
  var utils_1 = require("../utils");
@@ -11,7 +10,7 @@ var initialState = {
11
10
  orderId: null,
12
11
  orderType: null,
13
12
  serviceType: null,
14
- revenueCenter: null,
13
+ revenueCenterId: null,
15
14
  table: null,
16
15
  prepType: null,
17
16
  requestedAt: 'asap',
@@ -29,25 +28,6 @@ var OrderActionType;
29
28
  (function (OrderActionType) {
30
29
  OrderActionType["FetchRevenueCenter"] = "orders/fetchRevenueCenter";
31
30
  })(OrderActionType || (exports.OrderActionType = OrderActionType = {}));
32
- exports.fetchRevenueCenter = (0, toolkit_1.createAsyncThunk)(OrderActionType.FetchRevenueCenter, function (revenueCenterId, _a) {
33
- var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
34
- return tslib_1.__awaiter(void 0, void 0, void 0, function () {
35
- var api, err_1;
36
- return tslib_1.__generator(this, function (_b) {
37
- switch (_b.label) {
38
- case 0:
39
- _b.trys.push([0, 2, , 3]);
40
- api = getState().config.api;
41
- return [4 /*yield*/, api.getRevenueCenter(revenueCenterId)];
42
- case 1: return [2 /*return*/, _b.sent()];
43
- case 2:
44
- err_1 = _b.sent();
45
- return [2 /*return*/, rejectWithValue(err_1)];
46
- case 3: return [2 /*return*/];
47
- }
48
- });
49
- });
50
- });
51
31
  var orderSlice = (0, toolkit_1.createSlice)({
52
32
  name: types_1.ReducerType.Orders,
53
33
  initialState: initialState,
@@ -58,15 +38,15 @@ var orderSlice = (0, toolkit_1.createSlice)({
58
38
  state.orderType = null;
59
39
  state.serviceType = null;
60
40
  state.prepType = null;
61
- state.revenueCenter = null;
41
+ state.revenueCenterId = null;
62
42
  state.table = null;
63
43
  state.requestedAt = 'asap';
64
44
  },
65
45
  resetRevenueCenter: function (state) {
66
- state.revenueCenter = null;
46
+ state.revenueCenterId = null;
67
47
  },
68
48
  resetLocation: function (state) {
69
- state.revenueCenter = null;
49
+ state.revenueCenterId = null;
70
50
  },
71
51
  resetCart: function (state) {
72
52
  state.cart = [];
@@ -93,8 +73,8 @@ var orderSlice = (0, toolkit_1.createSlice)({
93
73
  setRequestedAt: function (state, action) {
94
74
  state.requestedAt = action.payload;
95
75
  },
96
- setRevenueCenter: function (state, action) {
97
- state.revenueCenter = action.payload;
76
+ setRevenueCenterId: function (state, action) {
77
+ state.revenueCenterId = action.payload;
98
78
  },
99
79
  setTable: function (state, action) {
100
80
  state.table = action.payload;
@@ -108,8 +88,8 @@ var orderSlice = (0, toolkit_1.createSlice)({
108
88
  state.serviceType = serviceType;
109
89
  },
110
90
  setMenuVars: function (state, action) {
111
- var _a = action.payload, revenueCenter = _a.revenueCenter, serviceType = _a.serviceType, requestedAt = _a.requestedAt;
112
- state.revenueCenter = revenueCenter;
91
+ var _a = action.payload, revenueCenterId = _a.revenueCenterId, serviceType = _a.serviceType, requestedAt = _a.requestedAt;
92
+ state.revenueCenterId = revenueCenterId;
113
93
  state.serviceType = serviceType;
114
94
  state.requestedAt = requestedAt;
115
95
  },
@@ -163,24 +143,9 @@ var orderSlice = (0, toolkit_1.createSlice)({
163
143
  removeMessage: function (state, action) {
164
144
  state.messages = state.messages.filter(function (i) { return i.id !== action.payload; });
165
145
  }
166
- },
167
- extraReducers: function (builder) {
168
- builder
169
- .addCase(exports.fetchRevenueCenter.fulfilled, function (state, action) {
170
- state.revenueCenter = action.payload;
171
- state.loading = 'idle';
172
- state.error = null;
173
- })
174
- .addCase(exports.fetchRevenueCenter.pending, function (state) {
175
- state.loading = 'pending';
176
- })
177
- .addCase(exports.fetchRevenueCenter.rejected, function (state, action) {
178
- state.error = action.payload;
179
- state.loading = 'idle';
180
- });
181
146
  }
182
147
  });
183
- exports.resetOrder = (_a = orderSlice.actions, _a.resetOrder), exports.resetOrderType = _a.resetOrderType, exports.resetRevenueCenter = _a.resetRevenueCenter, exports.resetLocation = _a.resetLocation, exports.resetCart = _a.resetCart, exports.resetMessages = _a.resetMessages, exports.resetAlert = _a.resetAlert, exports.setAlert = _a.setAlert, exports.setOrderId = _a.setOrderId, exports.setOrderType = _a.setOrderType, exports.setServiceType = _a.setServiceType, exports.setRequestedAt = _a.setRequestedAt, exports.setRevenueCenter = _a.setRevenueCenter, exports.setTable = _a.setTable, exports.setPrepType = _a.setPrepType, exports.setOrderServiceType = _a.setOrderServiceType, exports.setMenuVars = _a.setMenuVars, exports.setCart = _a.setCart, exports.setCurrentVendor = _a.setCurrentVendor, exports.setCurrentCategory = _a.setCurrentCategory, exports.setCurrentItem = _a.setCurrentItem, exports.addItemToCart = _a.addItemToCart, exports.removeItemFromCart = _a.removeItemFromCart, exports.incrementItemInCart = _a.incrementItemInCart, exports.decrementItemInCart = _a.decrementItemInCart, exports.addMessage = _a.addMessage, exports.removeMessage = _a.removeMessage;
148
+ exports.resetOrder = (_a = orderSlice.actions, _a.resetOrder), exports.resetOrderType = _a.resetOrderType, exports.resetRevenueCenter = _a.resetRevenueCenter, exports.resetLocation = _a.resetLocation, exports.resetCart = _a.resetCart, exports.resetMessages = _a.resetMessages, exports.resetAlert = _a.resetAlert, exports.setAlert = _a.setAlert, exports.setOrderId = _a.setOrderId, exports.setOrderType = _a.setOrderType, exports.setServiceType = _a.setServiceType, exports.setRequestedAt = _a.setRequestedAt, exports.setRevenueCenterId = _a.setRevenueCenterId, exports.setTable = _a.setTable, exports.setPrepType = _a.setPrepType, exports.setOrderServiceType = _a.setOrderServiceType, exports.setMenuVars = _a.setMenuVars, exports.setCart = _a.setCart, exports.setCurrentVendor = _a.setCurrentVendor, exports.setCurrentCategory = _a.setCurrentCategory, exports.setCurrentItem = _a.setCurrentItem, exports.addItemToCart = _a.addItemToCart, exports.removeItemFromCart = _a.removeItemFromCart, exports.incrementItemInCart = _a.incrementItemInCart, exports.decrementItemInCart = _a.decrementItemInCart, exports.addMessage = _a.addMessage, exports.removeMessage = _a.removeMessage;
184
149
  var selectAlert = function (state) { return state.order.alert; };
185
150
  exports.selectAlert = selectAlert;
186
151
  var selectMessages = function (state) { return state.order.messages; };
@@ -203,38 +168,18 @@ var selectRequestedAt = function (state) {
203
168
  return state.order.requestedAt === 'asap' ? 'ASAP' : state.order.requestedAt;
204
169
  };
205
170
  exports.selectRequestedAt = selectRequestedAt;
206
- var selectRevenueCenter = function (state) {
207
- return state.order.revenueCenter;
208
- };
209
- exports.selectRevenueCenter = selectRevenueCenter;
210
- var selectRevenueCenterName = function (state) {
211
- return state.order.revenueCenter ? state.order.revenueCenter.name : null;
171
+ var selectRevenueCenterId = function (state) {
172
+ return state.order.revenueCenterId;
212
173
  };
213
- exports.selectRevenueCenterName = selectRevenueCenterName;
214
- // export const selectOrderLimits = (state: AppState) => {
215
- // const { revenueCenter, serviceType } = state.order
216
- // if (!revenueCenter || !serviceType) {
217
- // return { orderMinimum: null, orderMaximum: null }
218
- // }
219
- // const { order_maximum, order_minimum } = revenueCenter
220
- // const orderMax = order_maximum[serviceType]
221
- // const orderMaximum = parseFloat(orderMax)
222
- // const orderMinimum = parseFloat(order_minimum[serviceType])
223
- // return {
224
- // orderMinimum: orderMinimum > 0 ? orderMinimum : null,
225
- // orderMaximum: orderMaximum > 0 ? orderMaximum : null
226
- // }
227
- // }
174
+ exports.selectRevenueCenterId = selectRevenueCenterId;
228
175
  var selectMenuSlug = function (state) {
229
- var revenueCenter = state.order.revenueCenter;
230
- return revenueCenter ? "/menu/".concat(revenueCenter.slug) : '/';
176
+ var slug = (state.config.store || {}).slug;
177
+ return slug ? "/menu/".concat(slug) : '/';
231
178
  };
232
179
  exports.selectMenuSlug = selectMenuSlug;
233
180
  var selectMenuVars = function (state) {
234
- if (!state.order.revenueCenter)
235
- return {};
236
181
  return {
237
- revenueCenterId: state.order.revenueCenter.revenue_center_id,
182
+ revenueCenterId: state.order.revenueCenterId,
238
183
  serviceType: state.order.serviceType,
239
184
  requestedAt: state.order.requestedAt
240
185
  };
@@ -273,16 +218,13 @@ var selectCartCounts = function (state) {
273
218
  };
274
219
  exports.selectCartCounts = selectCartCounts;
275
220
  var selectCanOrder = function (state) {
276
- return state.order.revenueCenter &&
221
+ return state.order.revenueCenterId &&
277
222
  state.order.serviceType &&
278
223
  state.order.requestedAt;
279
224
  };
280
225
  exports.selectCanOrder = selectCanOrder;
281
226
  var selectCartValidate = function (state) {
282
- var _a = state.order || {}, revenueCenter = _a.revenueCenter, serviceType = _a.serviceType, requestedAt = _a.requestedAt, cart = _a.cart;
283
- if (!revenueCenter)
284
- return null;
285
- var revenueCenterId = revenueCenter.revenue_center_id;
227
+ var _a = state.order || {}, revenueCenterId = _a.revenueCenterId, serviceType = _a.serviceType, requestedAt = _a.requestedAt, cart = _a.cart;
286
228
  return {
287
229
  revenueCenterId: revenueCenterId,
288
230
  serviceType: serviceType,
@@ -197,7 +197,7 @@ var selectCashier = function (state) {
197
197
  var cashier = state.pos.cashier;
198
198
  if (!cashier)
199
199
  return { cashier: null, isExpired: false };
200
- var tz = (0, config_1.selectTimezone)(state);
200
+ var tz = (0, config_1.selectTimezone)();
201
201
  var businessDate = (0, utils_1.currentLocalDateStr)(tz);
202
202
  var isExpired = businessDate !== cashier.businessDate;
203
203
  if (isExpired)
@@ -1,5 +1,5 @@
1
- import { TimeString, TimezonePython } from '../datetimes';
2
- import { Decimal, Money, ServiceType, TenderType, Url, Weekday } from '../global';
1
+ import { TimeString } from '../datetimes';
2
+ import { Decimal, Money, ServiceTypes, TenderTypes, Weekday } from '../global';
3
3
  export type PaymentProcessor = 'NONE' | 'CARDCONNECT' | 'VANTIV' | 'CLOVER' | 'NMI';
4
4
  export interface PaymentProcessing {
5
5
  integration: PaymentProcessor;
@@ -22,10 +22,11 @@ export interface StoreTax {
22
22
  tax_id: number;
23
23
  tax_type: number;
24
24
  }
25
+ export type StoreTaxes = StoreTax[];
25
26
  export interface StoreTenderTypes {
26
- DELIVERY: Array<TenderType>;
27
- PICKUP: Array<TenderType>;
28
- WALKIN: Array<TenderType>;
27
+ DELIVERY: TenderTypes;
28
+ PICKUP: TenderTypes;
29
+ WALKIN: TenderTypes;
29
30
  }
30
31
  export interface StoreAddress {
31
32
  city: string;
@@ -57,9 +58,8 @@ export interface StoreMessage {
57
58
  export type StorePunchType = 'PIN' | 'CARD';
58
59
  export interface Store {
59
60
  address: StoreAddress;
60
- auth_type: 'PIN' | 'CARD';
61
61
  alert_minutes: number;
62
- closed: boolean;
62
+ auth_type: 'PIN' | 'CARD';
63
63
  credit: PaymentProcessing;
64
64
  delivery_minutes: number;
65
65
  dine_in_prompt: boolean;
@@ -74,16 +74,11 @@ export interface Store {
74
74
  has_loyalty: boolean;
75
75
  hide_default_mods: boolean;
76
76
  hide_delay: boolean;
77
- is_closed: boolean;
78
77
  is_outpost: boolean;
79
- is_temporarily_closed: boolean;
80
78
  item_discount_approval: boolean;
81
- levelup?: LevelUp;
82
- messages: Array<StoreMessage> | null;
83
79
  name: string;
84
80
  number: string;
85
81
  order_page_swipe: boolean;
86
- origin: Url | null;
87
82
  overtime_threshold: number;
88
83
  overtime_threshold_daily: number;
89
84
  page_timeout: number;
@@ -95,16 +90,14 @@ export interface Store {
95
90
  receipt_header: string;
96
91
  receipt_phone: boolean;
97
92
  revenue_center_id: number;
98
- revenue_center_type: 'POS' | 'OLO' | 'CATERING';
99
- service_types: Array<ServiceType>;
93
+ service_types: ServiceTypes;
100
94
  short_name: string;
101
95
  slug: string;
102
96
  starting_cash: Decimal;
103
97
  store_id: number;
104
98
  tax_exempt_approval: boolean;
105
- taxes: Array<StoreTax>;
99
+ taxes: StoreTaxes;
106
100
  tender_types: StoreTenderTypes;
107
- timezone: TimezonePython;
108
101
  walkin_minutes: number;
109
102
  walkin_prep_minutes: number;
110
103
  warning_minutes: number;
@@ -10,11 +10,13 @@ export type FullOrderType = OrderType | 'MAIN_MENU' | 'ECOMMERCE';
10
10
  export type OrderTypeMap = {
11
11
  [Property in OrderType]: string;
12
12
  };
13
- export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY' | 'PORTAL';
13
+ export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY';
14
+ export type ServiceTypes = ServiceType[];
14
15
  export type ServiceTypeMap = {
15
16
  [Property in ServiceType]: string;
16
17
  };
17
18
  export type TenderType = 'CASH' | 'CREDIT' | 'HOUSE_ACCOUNT' | 'GIFT_CARD' | 'COMP';
19
+ export type TenderTypes = TenderType[];
18
20
  export type TenderTypeMap = {
19
21
  [Property in TenderType]: string;
20
22
  };
@@ -6,7 +6,7 @@ export declare const HUMAN_TIME = "h:mma";
6
6
  export declare const HUMAN_DATETIME = "MMM d, h:mma";
7
7
  export declare const ISO_STRING = "yyyy-MM-dd'T'HH:mm:ssXXX";
8
8
  export declare const timezoneMap: TimezoneMap;
9
- export declare const getUserTimezone: () => string;
9
+ export declare const getUserTimezone: () => Timezone;
10
10
  export declare const currentLocalDate: (tz: Timezone) => Date;
11
11
  export declare const currentLocalDateStr: (tz: Timezone, fmt?: string) => string;
12
12
  export declare const currentLocalIso: (tz: Timezone) => string;
@@ -23,7 +23,6 @@ exports.serviceTypeNamesMap = {
23
23
  WALKIN: 'Dine-In',
24
24
  PICKUP: 'Pickup',
25
25
  DELIVERY: 'Delivery',
26
- PORTAL: '3rd Party'
27
26
  };
28
27
  exports.tenderTypeNamesMap = {
29
28
  CASH: 'Cash',
@@ -33,12 +33,11 @@ var getAmountDue = function (check) {
33
33
  return check && check.totals ? check.totals.amount_due : null;
34
34
  };
35
35
  var prepareOrder = function (order, checkout) {
36
- var order_uuid = order.orderId, requested_at = order.requestedAt, service_type = order.serviceType, order_type = order.orderType, revenueCenter = order.revenueCenter;
36
+ var order_uuid = order.orderId, requested_at = order.requestedAt, service_type = order.serviceType, order_type = order.orderType, revenue_center_id = order.revenueCenterId;
37
37
  if (!order_uuid)
38
38
  return null;
39
39
  var simpleCart = makeSimpleCart(order.cart);
40
40
  var cart = simpleCart.filter(function (item) { return item; });
41
- var revenue_center_id = revenueCenter === null || revenueCenter === void 0 ? void 0 : revenueCenter.revenue_center_id;
42
41
  if (!revenue_center_id || !order_type || !service_type) {
43
42
  return null;
44
43
  }
@@ -10,7 +10,6 @@ export interface ConfigState {
10
10
  version?: string | null;
11
11
  devices: Devices | null;
12
12
  store: Store | null;
13
- revenueCenterId: number | null;
14
13
  selectOptions: SelectOptions | null;
15
14
  menuColors: MenuColors | null;
16
15
  name: string | null;
@@ -42,10 +41,9 @@ export declare const selectApi: (state: AppState) => PosAPI;
42
41
  export declare const selectVersion: (state: AppState) => string | null | undefined;
43
42
  export declare const selectDevices: (state: AppState) => Devices | null;
44
43
  export declare const selectStore: (state: AppState) => Store | null;
45
- export declare const selectRevenueCenterId: (state: AppState) => number | null;
46
44
  export declare const selectSelectOptions: (state: AppState) => SelectOptions;
47
45
  export declare const selectMenuColors: (state: AppState) => MenuColors;
48
- export declare const selectTimezone: (state: AppState) => Timezone;
46
+ export declare const selectTimezone: () => Timezone;
49
47
  export declare const selectLoyalty: (state: AppState) => boolean;
50
48
  export declare const selectPinpad: (state: AppState) => boolean;
51
49
  export declare const selectCashDrawer: (state: AppState) => boolean;
@@ -3,10 +3,11 @@ import { __assign, __awaiter, __generator } from "tslib";
3
3
  import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';
4
4
  import { PosAPI } from '../services';
5
5
  import { ReducerType } from './types';
6
- import { timezoneMap, getUserTimezone, currentLocalDateStr } from '../utils';
6
+ import { getUserTimezone, currentLocalDateStr } from '../utils';
7
7
  import { errorsApi } from '../services/errors';
8
8
  import { setCashier } from './pos';
9
9
  import { setKdsItemTypes, setKdsPrepStations } from './kds';
10
+ import { setRevenueCenterId } from './order';
10
11
  var defaultApiUrl = "http://".concat(window.location.hostname, ":5001/pos-api");
11
12
  var initialState = {
12
13
  api: new PosAPI({ apiUrl: defaultApiUrl }),
@@ -14,7 +15,6 @@ var initialState = {
14
15
  version: null,
15
16
  devices: null,
16
17
  store: null,
17
- revenueCenterId: null,
18
18
  selectOptions: null,
19
19
  menuColors: null,
20
20
  name: null,
@@ -35,7 +35,7 @@ export var fetchConfig = createAsyncThunk(ConfigActionType.FetchConfig, function
35
35
  return __awaiter(void 0, void 0, void 0, function () {
36
36
  var app, api, _c, _d,
37
37
  // config,
38
- devicesList, _e, stores, _f, selectOptions, _g, itemTypes, store, devices, err, cashier, employee, tz, businessDate, err_1, revenueCenterId, menuColors, err_2;
38
+ devicesList, _e, stores, _f, selectOptions, _g, itemTypes, store, devices, err, cashier, employee, tz, businessDate, err_1, menuColors, err_2;
39
39
  return __generator(this, function (_h) {
40
40
  switch (_h.label) {
41
41
  case 0:
@@ -63,10 +63,13 @@ export var fetchConfig = createAsyncThunk(ConfigActionType.FetchConfig, function
63
63
  _h.label = 2;
64
64
  case 2:
65
65
  _h.trys.push([2, 4, , 5]);
66
- return [4 /*yield*/, api.getCashier()];
66
+ return [4 /*yield*/, api.getCashier()
67
+ // TODO: figure out how to get the timezone from BE
68
+ // const tz = timezoneMap[store.timezone]
69
+ ];
67
70
  case 3:
68
71
  employee = _h.sent();
69
- tz = timezoneMap[store.timezone];
72
+ tz = getUserTimezone();
70
73
  businessDate = currentLocalDateStr(tz);
71
74
  dispatch(setCashier(__assign(__assign({}, employee), { businessDate: businessDate })));
72
75
  return [3 /*break*/, 5];
@@ -74,7 +77,7 @@ export var fetchConfig = createAsyncThunk(ConfigActionType.FetchConfig, function
74
77
  err_1 = _h.sent();
75
78
  return [3 /*break*/, 5];
76
79
  case 5:
77
- revenueCenterId = store.revenue_center_id;
80
+ dispatch(setRevenueCenterId(store.revenue_center_id));
78
81
  dispatch(setKdsItemTypes(itemTypes));
79
82
  dispatch(setKdsPrepStations(devices.prep_stations));
80
83
  menuColors = [];
@@ -83,7 +86,6 @@ export var fetchConfig = createAsyncThunk(ConfigActionType.FetchConfig, function
83
86
  app: app,
84
87
  devices: devices,
85
88
  store: store,
86
- revenueCenterId: revenueCenterId,
87
89
  selectOptions: selectOptions,
88
90
  menuColors: menuColors,
89
91
  name: 'Name',
@@ -126,12 +128,11 @@ var configSlice = createSlice({
126
128
  state.loading = 'pending';
127
129
  })
128
130
  .addCase(fetchConfig.fulfilled, function (state, action) {
129
- var _a = action.payload, api = _a.api, app = _a.app, devices = _a.devices, store = _a.store, revenueCenterId = _a.revenueCenterId, selectOptions = _a.selectOptions, menuColors = _a.menuColors;
131
+ var _a = action.payload, api = _a.api, app = _a.app, devices = _a.devices, store = _a.store, selectOptions = _a.selectOptions, menuColors = _a.menuColors;
130
132
  state.api = api;
131
133
  state.app = app;
132
134
  state.store = store;
133
135
  state.devices = devices;
134
- state.revenueCenterId = revenueCenterId;
135
136
  state.selectOptions = selectOptions;
136
137
  state.menuColors = menuColors;
137
138
  state.loading = 'idle';
@@ -150,20 +151,17 @@ export var selectApi = function (state) { return state.config.api; };
150
151
  export var selectVersion = function (state) { return state.config.version; };
151
152
  export var selectDevices = function (state) { return state.config.devices; };
152
153
  export var selectStore = function (state) { return state.config.store; };
153
- export var selectRevenueCenterId = function (state) {
154
- return state.config.revenueCenterId;
155
- };
156
154
  export var selectSelectOptions = function (state) {
157
155
  return state.config.selectOptions || [];
158
156
  };
159
157
  export var selectMenuColors = function (state) {
160
158
  return state.config.menuColors || [];
161
159
  };
162
- export var selectTimezone = function (state) {
163
- return state.config.store
164
- ? timezoneMap[state.config.store.timezone]
165
- : getUserTimezone();
166
- };
160
+ // export const selectTimezone = (state: AppState): Timezone =>
161
+ // state.config.store
162
+ // ? timezoneMap[state.config.store.timezone as TimezonePython]
163
+ // : (getUserTimezone() as Timezone)
164
+ export var selectTimezone = function () { return getUserTimezone(); };
167
165
  export var selectLoyalty = function (state) {
168
166
  return state.config.store ? state.config.store.has_loyalty : false;
169
167
  };
@@ -1,10 +1,10 @@
1
- import { Cart, CartCounts, CartItem, MenuCategory, MenuVendor, Messages, OrderType, RequestedAt, RequestError, RequestStatus, RevenueCenter, ServiceType } from '../types';
1
+ import { Cart, CartCounts, CartItem, MenuCategory, MenuVendor, Messages, OrderType, RequestedAt, RequestError, RequestStatus, ServiceType } from '../types';
2
2
  import { AppState } from '../app';
3
3
  export interface OrderState {
4
4
  orderId: string | null;
5
5
  orderType: OrderType | null;
6
6
  serviceType: ServiceType | null;
7
- revenueCenter: RevenueCenter | null;
7
+ revenueCenterId: number | null;
8
8
  table: string | null;
9
9
  prepType: 'EAT_HERE' | 'TAKE_OUT' | null;
10
10
  requestedAt: RequestedAt;
@@ -21,17 +21,7 @@ export interface OrderState {
21
21
  export declare enum OrderActionType {
22
22
  FetchRevenueCenter = "orders/fetchRevenueCenter"
23
23
  }
24
- export declare const fetchRevenueCenter: import("@reduxjs/toolkit").AsyncThunk<RevenueCenter, number, {
25
- state: AppState;
26
- rejectValue: RequestError;
27
- dispatch?: import("redux").Dispatch<import("redux").UnknownAction> | undefined;
28
- extra?: unknown;
29
- serializedErrorType?: unknown;
30
- pendingMeta?: unknown;
31
- fulfilledMeta?: unknown;
32
- rejectedMeta?: unknown;
33
- }>;
34
- export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenter">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">;
24
+ export declare const resetOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrder">, resetOrderType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetOrderType">, resetRevenueCenter: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetRevenueCenter">, resetLocation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetLocation">, resetCart: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetCart">, resetMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetMessages">, resetAlert: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"orders/resetAlert">, setAlert: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setAlert">, setOrderId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderId">, setOrderType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderType">, setServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setServiceType">, setRequestedAt: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRequestedAt">, setRevenueCenterId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setRevenueCenterId">, setTable: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setTable">, setPrepType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setPrepType">, setOrderServiceType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setOrderServiceType">, setMenuVars: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setMenuVars">, setCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCart">, setCurrentVendor: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentVendor">, setCurrentCategory: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentCategory">, setCurrentItem: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/setCurrentItem">, addItemToCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addItemToCart">, removeItemFromCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeItemFromCart">, incrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/incrementItemInCart">, decrementItemInCart: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/decrementItemInCart">, addMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/addMessage">, removeMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "orders/removeMessage">;
35
25
  export declare const selectAlert: (state: AppState) => string | null;
36
26
  export declare const selectMessages: (state: AppState) => Messages;
37
27
  export declare const selectOrder: (state: AppState) => OrderState;
@@ -40,15 +30,10 @@ export declare const selectOrderTypeName: (state: AppState) => string;
40
30
  export declare const selectServiceType: (state: AppState) => ServiceType | null;
41
31
  export declare const selectServiceTypeName: (state: AppState) => string;
42
32
  export declare const selectRequestedAt: (state: AppState) => `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | "ASAP";
43
- export declare const selectRevenueCenter: (state: AppState) => RevenueCenter | null;
44
- export declare const selectRevenueCenterName: (state: AppState) => string | null;
33
+ export declare const selectRevenueCenterId: (state: AppState) => number | null;
45
34
  export declare const selectMenuSlug: (state: AppState) => string;
46
35
  export declare const selectMenuVars: (state: AppState) => {
47
- revenueCenterId?: undefined;
48
- serviceType?: undefined;
49
- requestedAt?: undefined;
50
- } | {
51
- revenueCenterId: number;
36
+ revenueCenterId: number | null;
52
37
  serviceType: ServiceType | null;
53
38
  requestedAt: RequestedAt;
54
39
  };
@@ -60,11 +45,11 @@ export declare const selectCartIds: (state: AppState) => number[];
60
45
  export declare const selectCartQuantity: (state: AppState) => number;
61
46
  export declare const selectCartTotal: (state: AppState) => number;
62
47
  export declare const selectCartCounts: (state: AppState) => CartCounts;
63
- export declare const selectCanOrder: (state: AppState) => RequestedAt | null;
48
+ export declare const selectCanOrder: (state: AppState) => 0 | RequestedAt | null;
64
49
  export declare const selectCartValidate: (state: AppState) => {
65
- revenueCenterId: number;
50
+ revenueCenterId: number | null;
66
51
  serviceType: ServiceType | null;
67
52
  requestedAt: RequestedAt;
68
53
  cart: Cart;
69
- } | null;
54
+ };
70
55
  export declare const orderReducer: import("redux").Reducer<OrderState>;
@@ -1,13 +1,13 @@
1
1
  var _a;
2
- import { __awaiter, __generator, __spreadArray } from "tslib";
3
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
2
+ import { __spreadArray } from "tslib";
3
+ import { createSlice } from '@reduxjs/toolkit';
4
4
  import { addItem, calcCartCounts, decrementItem, incrementItem, makeRandomNumberString, orderTypeNamesMap, removeItem, serviceTypeNamesMap } from '../utils';
5
5
  import { ReducerType } from './types';
6
6
  var initialState = {
7
7
  orderId: null,
8
8
  orderType: null,
9
9
  serviceType: null,
10
- revenueCenter: null,
10
+ revenueCenterId: null,
11
11
  table: null,
12
12
  prepType: null,
13
13
  requestedAt: 'asap',
@@ -25,25 +25,6 @@ export var OrderActionType;
25
25
  (function (OrderActionType) {
26
26
  OrderActionType["FetchRevenueCenter"] = "orders/fetchRevenueCenter";
27
27
  })(OrderActionType || (OrderActionType = {}));
28
- export var fetchRevenueCenter = createAsyncThunk(OrderActionType.FetchRevenueCenter, function (revenueCenterId, _a) {
29
- var getState = _a.getState, rejectWithValue = _a.rejectWithValue;
30
- return __awaiter(void 0, void 0, void 0, function () {
31
- var api, err_1;
32
- return __generator(this, function (_b) {
33
- switch (_b.label) {
34
- case 0:
35
- _b.trys.push([0, 2, , 3]);
36
- api = getState().config.api;
37
- return [4 /*yield*/, api.getRevenueCenter(revenueCenterId)];
38
- case 1: return [2 /*return*/, _b.sent()];
39
- case 2:
40
- err_1 = _b.sent();
41
- return [2 /*return*/, rejectWithValue(err_1)];
42
- case 3: return [2 /*return*/];
43
- }
44
- });
45
- });
46
- });
47
28
  var orderSlice = createSlice({
48
29
  name: ReducerType.Orders,
49
30
  initialState: initialState,
@@ -54,15 +35,15 @@ var orderSlice = createSlice({
54
35
  state.orderType = null;
55
36
  state.serviceType = null;
56
37
  state.prepType = null;
57
- state.revenueCenter = null;
38
+ state.revenueCenterId = null;
58
39
  state.table = null;
59
40
  state.requestedAt = 'asap';
60
41
  },
61
42
  resetRevenueCenter: function (state) {
62
- state.revenueCenter = null;
43
+ state.revenueCenterId = null;
63
44
  },
64
45
  resetLocation: function (state) {
65
- state.revenueCenter = null;
46
+ state.revenueCenterId = null;
66
47
  },
67
48
  resetCart: function (state) {
68
49
  state.cart = [];
@@ -89,8 +70,8 @@ var orderSlice = createSlice({
89
70
  setRequestedAt: function (state, action) {
90
71
  state.requestedAt = action.payload;
91
72
  },
92
- setRevenueCenter: function (state, action) {
93
- state.revenueCenter = action.payload;
73
+ setRevenueCenterId: function (state, action) {
74
+ state.revenueCenterId = action.payload;
94
75
  },
95
76
  setTable: function (state, action) {
96
77
  state.table = action.payload;
@@ -104,8 +85,8 @@ var orderSlice = createSlice({
104
85
  state.serviceType = serviceType;
105
86
  },
106
87
  setMenuVars: function (state, action) {
107
- var _a = action.payload, revenueCenter = _a.revenueCenter, serviceType = _a.serviceType, requestedAt = _a.requestedAt;
108
- state.revenueCenter = revenueCenter;
88
+ var _a = action.payload, revenueCenterId = _a.revenueCenterId, serviceType = _a.serviceType, requestedAt = _a.requestedAt;
89
+ state.revenueCenterId = revenueCenterId;
109
90
  state.serviceType = serviceType;
110
91
  state.requestedAt = requestedAt;
111
92
  },
@@ -159,24 +140,9 @@ var orderSlice = createSlice({
159
140
  removeMessage: function (state, action) {
160
141
  state.messages = state.messages.filter(function (i) { return i.id !== action.payload; });
161
142
  }
162
- },
163
- extraReducers: function (builder) {
164
- builder
165
- .addCase(fetchRevenueCenter.fulfilled, function (state, action) {
166
- state.revenueCenter = action.payload;
167
- state.loading = 'idle';
168
- state.error = null;
169
- })
170
- .addCase(fetchRevenueCenter.pending, function (state) {
171
- state.loading = 'pending';
172
- })
173
- .addCase(fetchRevenueCenter.rejected, function (state, action) {
174
- state.error = action.payload;
175
- state.loading = 'idle';
176
- });
177
143
  }
178
144
  });
179
- export var resetOrder = (_a = orderSlice.actions, _a.resetOrder), resetOrderType = _a.resetOrderType, resetRevenueCenter = _a.resetRevenueCenter, resetLocation = _a.resetLocation, resetCart = _a.resetCart, resetMessages = _a.resetMessages, resetAlert = _a.resetAlert, setAlert = _a.setAlert, setOrderId = _a.setOrderId, setOrderType = _a.setOrderType, setServiceType = _a.setServiceType, setRequestedAt = _a.setRequestedAt, setRevenueCenter = _a.setRevenueCenter, setTable = _a.setTable, setPrepType = _a.setPrepType, setOrderServiceType = _a.setOrderServiceType, setMenuVars = _a.setMenuVars, setCart = _a.setCart, setCurrentVendor = _a.setCurrentVendor, setCurrentCategory = _a.setCurrentCategory, setCurrentItem = _a.setCurrentItem, addItemToCart = _a.addItemToCart, removeItemFromCart = _a.removeItemFromCart, incrementItemInCart = _a.incrementItemInCart, decrementItemInCart = _a.decrementItemInCart, addMessage = _a.addMessage, removeMessage = _a.removeMessage;
145
+ export var resetOrder = (_a = orderSlice.actions, _a.resetOrder), resetOrderType = _a.resetOrderType, resetRevenueCenter = _a.resetRevenueCenter, resetLocation = _a.resetLocation, resetCart = _a.resetCart, resetMessages = _a.resetMessages, resetAlert = _a.resetAlert, setAlert = _a.setAlert, setOrderId = _a.setOrderId, setOrderType = _a.setOrderType, setServiceType = _a.setServiceType, setRequestedAt = _a.setRequestedAt, setRevenueCenterId = _a.setRevenueCenterId, setTable = _a.setTable, setPrepType = _a.setPrepType, setOrderServiceType = _a.setOrderServiceType, setMenuVars = _a.setMenuVars, setCart = _a.setCart, setCurrentVendor = _a.setCurrentVendor, setCurrentCategory = _a.setCurrentCategory, setCurrentItem = _a.setCurrentItem, addItemToCart = _a.addItemToCart, removeItemFromCart = _a.removeItemFromCart, incrementItemInCart = _a.incrementItemInCart, decrementItemInCart = _a.decrementItemInCart, addMessage = _a.addMessage, removeMessage = _a.removeMessage;
180
146
  export var selectAlert = function (state) { return state.order.alert; };
181
147
  export var selectMessages = function (state) { return state.order.messages; };
182
148
  export var selectOrder = function (state) { return state.order; };
@@ -191,35 +157,16 @@ export var selectServiceTypeName = function (state) {
191
157
  export var selectRequestedAt = function (state) {
192
158
  return state.order.requestedAt === 'asap' ? 'ASAP' : state.order.requestedAt;
193
159
  };
194
- export var selectRevenueCenter = function (state) {
195
- return state.order.revenueCenter;
196
- };
197
- export var selectRevenueCenterName = function (state) {
198
- return state.order.revenueCenter ? state.order.revenueCenter.name : null;
160
+ export var selectRevenueCenterId = function (state) {
161
+ return state.order.revenueCenterId;
199
162
  };
200
- // export const selectOrderLimits = (state: AppState) => {
201
- // const { revenueCenter, serviceType } = state.order
202
- // if (!revenueCenter || !serviceType) {
203
- // return { orderMinimum: null, orderMaximum: null }
204
- // }
205
- // const { order_maximum, order_minimum } = revenueCenter
206
- // const orderMax = order_maximum[serviceType]
207
- // const orderMaximum = parseFloat(orderMax)
208
- // const orderMinimum = parseFloat(order_minimum[serviceType])
209
- // return {
210
- // orderMinimum: orderMinimum > 0 ? orderMinimum : null,
211
- // orderMaximum: orderMaximum > 0 ? orderMaximum : null
212
- // }
213
- // }
214
163
  export var selectMenuSlug = function (state) {
215
- var revenueCenter = state.order.revenueCenter;
216
- return revenueCenter ? "/menu/".concat(revenueCenter.slug) : '/';
164
+ var slug = (state.config.store || {}).slug;
165
+ return slug ? "/menu/".concat(slug) : '/';
217
166
  };
218
167
  export var selectMenuVars = function (state) {
219
- if (!state.order.revenueCenter)
220
- return {};
221
168
  return {
222
- revenueCenterId: state.order.revenueCenter.revenue_center_id,
169
+ revenueCenterId: state.order.revenueCenterId,
223
170
  serviceType: state.order.serviceType,
224
171
  requestedAt: state.order.requestedAt
225
172
  };
@@ -249,15 +196,12 @@ export var selectCartCounts = function (state) {
249
196
  return state.order.cartCounts || {};
250
197
  };
251
198
  export var selectCanOrder = function (state) {
252
- return state.order.revenueCenter &&
199
+ return state.order.revenueCenterId &&
253
200
  state.order.serviceType &&
254
201
  state.order.requestedAt;
255
202
  };
256
203
  export var selectCartValidate = function (state) {
257
- var _a = state.order || {}, revenueCenter = _a.revenueCenter, serviceType = _a.serviceType, requestedAt = _a.requestedAt, cart = _a.cart;
258
- if (!revenueCenter)
259
- return null;
260
- var revenueCenterId = revenueCenter.revenue_center_id;
204
+ var _a = state.order || {}, revenueCenterId = _a.revenueCenterId, serviceType = _a.serviceType, requestedAt = _a.requestedAt, cart = _a.cart;
261
205
  return {
262
206
  revenueCenterId: revenueCenterId,
263
207
  serviceType: serviceType,
@@ -188,7 +188,7 @@ export var selectCashier = function (state) {
188
188
  var cashier = state.pos.cashier;
189
189
  if (!cashier)
190
190
  return { cashier: null, isExpired: false };
191
- var tz = selectTimezone(state);
191
+ var tz = selectTimezone();
192
192
  var businessDate = currentLocalDateStr(tz);
193
193
  var isExpired = businessDate !== cashier.businessDate;
194
194
  if (isExpired)
@@ -1,5 +1,5 @@
1
- import { TimeString, TimezonePython } from '../datetimes';
2
- import { Decimal, Money, ServiceType, TenderType, Url, Weekday } from '../global';
1
+ import { TimeString } from '../datetimes';
2
+ import { Decimal, Money, ServiceTypes, TenderTypes, Weekday } from '../global';
3
3
  export type PaymentProcessor = 'NONE' | 'CARDCONNECT' | 'VANTIV' | 'CLOVER' | 'NMI';
4
4
  export interface PaymentProcessing {
5
5
  integration: PaymentProcessor;
@@ -22,10 +22,11 @@ export interface StoreTax {
22
22
  tax_id: number;
23
23
  tax_type: number;
24
24
  }
25
+ export type StoreTaxes = StoreTax[];
25
26
  export interface StoreTenderTypes {
26
- DELIVERY: Array<TenderType>;
27
- PICKUP: Array<TenderType>;
28
- WALKIN: Array<TenderType>;
27
+ DELIVERY: TenderTypes;
28
+ PICKUP: TenderTypes;
29
+ WALKIN: TenderTypes;
29
30
  }
30
31
  export interface StoreAddress {
31
32
  city: string;
@@ -57,9 +58,8 @@ export interface StoreMessage {
57
58
  export type StorePunchType = 'PIN' | 'CARD';
58
59
  export interface Store {
59
60
  address: StoreAddress;
60
- auth_type: 'PIN' | 'CARD';
61
61
  alert_minutes: number;
62
- closed: boolean;
62
+ auth_type: 'PIN' | 'CARD';
63
63
  credit: PaymentProcessing;
64
64
  delivery_minutes: number;
65
65
  dine_in_prompt: boolean;
@@ -74,16 +74,11 @@ export interface Store {
74
74
  has_loyalty: boolean;
75
75
  hide_default_mods: boolean;
76
76
  hide_delay: boolean;
77
- is_closed: boolean;
78
77
  is_outpost: boolean;
79
- is_temporarily_closed: boolean;
80
78
  item_discount_approval: boolean;
81
- levelup?: LevelUp;
82
- messages: Array<StoreMessage> | null;
83
79
  name: string;
84
80
  number: string;
85
81
  order_page_swipe: boolean;
86
- origin: Url | null;
87
82
  overtime_threshold: number;
88
83
  overtime_threshold_daily: number;
89
84
  page_timeout: number;
@@ -95,16 +90,14 @@ export interface Store {
95
90
  receipt_header: string;
96
91
  receipt_phone: boolean;
97
92
  revenue_center_id: number;
98
- revenue_center_type: 'POS' | 'OLO' | 'CATERING';
99
- service_types: Array<ServiceType>;
93
+ service_types: ServiceTypes;
100
94
  short_name: string;
101
95
  slug: string;
102
96
  starting_cash: Decimal;
103
97
  store_id: number;
104
98
  tax_exempt_approval: boolean;
105
- taxes: Array<StoreTax>;
99
+ taxes: StoreTaxes;
106
100
  tender_types: StoreTenderTypes;
107
- timezone: TimezonePython;
108
101
  walkin_minutes: number;
109
102
  walkin_prep_minutes: number;
110
103
  warning_minutes: number;
@@ -10,11 +10,13 @@ export type FullOrderType = OrderType | 'MAIN_MENU' | 'ECOMMERCE';
10
10
  export type OrderTypeMap = {
11
11
  [Property in OrderType]: string;
12
12
  };
13
- export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY' | 'PORTAL';
13
+ export type ServiceType = 'WALKIN' | 'PICKUP' | 'DELIVERY';
14
+ export type ServiceTypes = ServiceType[];
14
15
  export type ServiceTypeMap = {
15
16
  [Property in ServiceType]: string;
16
17
  };
17
18
  export type TenderType = 'CASH' | 'CREDIT' | 'HOUSE_ACCOUNT' | 'GIFT_CARD' | 'COMP';
19
+ export type TenderTypes = TenderType[];
18
20
  export type TenderTypeMap = {
19
21
  [Property in TenderType]: string;
20
22
  };
@@ -6,7 +6,7 @@ export declare const HUMAN_TIME = "h:mma";
6
6
  export declare const HUMAN_DATETIME = "MMM d, h:mma";
7
7
  export declare const ISO_STRING = "yyyy-MM-dd'T'HH:mm:ssXXX";
8
8
  export declare const timezoneMap: TimezoneMap;
9
- export declare const getUserTimezone: () => string;
9
+ export declare const getUserTimezone: () => Timezone;
10
10
  export declare const currentLocalDate: (tz: Timezone) => Date;
11
11
  export declare const currentLocalDateStr: (tz: Timezone, fmt?: string) => string;
12
12
  export declare const currentLocalIso: (tz: Timezone) => string;
@@ -19,7 +19,6 @@ export var serviceTypeNamesMap = {
19
19
  WALKIN: 'Dine-In',
20
20
  PICKUP: 'Pickup',
21
21
  DELIVERY: 'Delivery',
22
- PORTAL: '3rd Party'
23
22
  };
24
23
  export var tenderTypeNamesMap = {
25
24
  CASH: 'Cash',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/store",
3
- "version": "0.7.3",
3
+ "version": "0.7.5",
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",