meemup-library 1.1.64 → 1.1.65

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.
@@ -13,6 +13,8 @@ declare const _default: {
13
13
  dateToSecond(date: Date): number;
14
14
  calculateTravelTime(detail: IKitchenOrderDetail, times: IKitchenTimes, zones: IKitchenZone[]): number;
15
15
  calculateTik(detail: IKitchenOrderDetail, times: IKitchenTimes, zones: IKitchenZone[]): number;
16
+ calculateKitchenTime(detail: IKitchenOrderDetail, times: IKitchenTimes): number;
17
+ idAddvanceOrder(detail: IKitchenOrderDetail, times: IKitchenTimes, zones: IKitchenZone[]): boolean;
16
18
  sortOrders(orders: IKitchenOrderDetail[], setting: IKitchenScreenSetting): IKitchenOrderDetail[];
17
19
  listToMatrix(setting: IKitchenScreenSetting, orders: IKitchenOrderDetail[], page: number): IKitchenOrderDetail[][];
18
20
  calculateTotalPage(listLength: number, pageSize: number): number;
@@ -61,6 +61,8 @@ export default new class KitchenController {
61
61
  return parseInt((date.getTime() / 1000) + "");
62
62
  }
63
63
  calculateTravelTime(detail, times, zones) {
64
+ if (detail.type !== EnumOrderType.delivery)
65
+ return 0;
64
66
  let travelTime = 0;
65
67
  if ((detail === null || detail === void 0 ? void 0 : detail.deliveryLocation) && (detail === null || detail === void 0 ? void 0 : detail.storeLocation))
66
68
  travelTime = ZoneController.calculateDuration(detail === null || detail === void 0 ? void 0 : detail.deliveryLocation, detail === null || detail === void 0 ? void 0 : detail.storeLocation, times.transportType);
@@ -70,14 +72,24 @@ export default new class KitchenController {
70
72
  return travelTime;
71
73
  }
72
74
  calculateTik(detail, times, zones) {
73
- let kitchenTime = 0;
74
75
  let desiredDateTime = new Date(detail.desiredDateTime);
75
76
  let currentDateTime = new Date();
76
- let travelTime = 0;
77
+ //-----------------------------------------------------------------------------------------------
78
+ let estimatedTime = this.convertStrToMinute(detail.estimatedTime); //in minute
79
+ //-----------------------------------------------------------------------------------------------
80
+ let travelTime = this.calculateTravelTime(detail, times, zones); //in minute
81
+ desiredDateTime.setMinutes((desiredDateTime.getMinutes() + estimatedTime) - travelTime);
82
+ let tik = this.dateToSecond(desiredDateTime) - this.dateToSecond(currentDateTime);
83
+ if (tik > 0)
84
+ return tik;
85
+ return 0;
86
+ }
87
+ calculateKitchenTime(detail, times) {
88
+ let kitchenTime = 0; //in minute
89
+ let productMaxPreparationTime = 0;
77
90
  switch (detail.type) {
78
91
  case EnumOrderType.delivery:
79
92
  kitchenTime += times.deliveryMinimumTime;
80
- travelTime = this.calculateTravelTime(detail, times, zones);
81
93
  break;
82
94
  case EnumOrderType.pickup:
83
95
  kitchenTime += times.pickupMinimumTime;
@@ -91,12 +103,26 @@ export default new class KitchenController {
91
103
  }
92
104
  if (kitchenTime < times.minimumPreparationTime)
93
105
  kitchenTime = times.minimumPreparationTime;
94
- kitchenTime += this.convertStrToMinute(detail.estimatedTime);
95
- desiredDateTime.setMinutes(desiredDateTime.getMinutes() - travelTime);
106
+ const list = detail.items.map(i => this.convertStrToMinute(i.preparationTime));
107
+ if (list.length > 1)
108
+ productMaxPreparationTime = Math.max(...list);
109
+ else if (list.length === 1)
110
+ productMaxPreparationTime = list[0];
111
+ if (kitchenTime < productMaxPreparationTime)
112
+ kitchenTime = productMaxPreparationTime;
113
+ return kitchenTime + this.convertStrToMinute(detail.estimatedTime);
114
+ }
115
+ idAddvanceOrder(detail, times, zones) {
116
+ let desiredDateTime = new Date(detail.desiredDateTime);
117
+ let currentDateTime = new Date();
118
+ //-----------------------------------------------------------------------------------------------
119
+ let kitchenTime = this.calculateKitchenTime(detail, times); //in minute
120
+ let travelTime = this.calculateTravelTime(detail, times, zones); //in minute
121
+ let estimatedTime = this.convertStrToMinute(detail.estimatedTime); //in minute
122
+ //-----------------------------------------------------------------------------------------------
123
+ desiredDateTime.setMinutes(desiredDateTime.getMinutes() + estimatedTime);
96
124
  let tik = this.dateToSecond(desiredDateTime) - this.dateToSecond(currentDateTime);
97
- if (tik > 0)
98
- return tik;
99
- return 0;
125
+ return tik - ((kitchenTime + travelTime) * 60) > 0;
100
126
  }
101
127
  sortOrders(orders, setting) {
102
128
  if (setting.sortAscending) {
@@ -13,4 +13,5 @@ export default interface IKitchenOrderDetailItems {
13
13
  text: string;
14
14
  extrasNames: string;
15
15
  extras: IKitchenOrderDetailItemsExtras[];
16
+ preparationTime: string;
16
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meemup-library",
3
- "version": "1.1.64",
3
+ "version": "1.1.65",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",