@feedmepos/mf-order-setting 0.0.33 → 0.0.35

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 (56) hide show
  1. package/dist/{KioskDevicesView-CxZI99me.js → KioskDevicesView-wPKewwAS.js} +1 -1
  2. package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-EGj4fxeN.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-BCJPU2la.js} +2 -2
  3. package/dist/KioskSettingView-CV54HpY2.js +843 -0
  4. package/dist/{KioskView-IUQTvUF8.js → KioskView-B4mggCt0.js} +41 -34
  5. package/dist/OrderSettingsView-Cp3aV3Ps.js +50624 -0
  6. package/dist/{app-cd45Ryph.js → app-DlQj6ZP0.js} +26 -15
  7. package/dist/app.js +1 -1
  8. package/dist/{dayjs.min-CRAlrjJy.js → dayjs.min-C_sCJHuD.js} +1 -1
  9. package/dist/frontend/mf-order/src/app.d.ts +11 -0
  10. package/dist/frontend/mf-order/src/main.d.ts +11 -0
  11. package/dist/frontend/mf-order/src/stores/menu/menu.d.ts +393 -393
  12. package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +12 -0
  13. package/dist/frontend/mf-order/src/stores/order-setting/mapper.d.ts +3 -3
  14. package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +75 -75
  15. package/dist/frontend/mf-order/src/stores/table-settings.d.ts +2 -0
  16. package/dist/frontend/mf-order/src/views/all-orders/ReflowOrder.vue.d.ts +50 -50
  17. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskPaymentTypeSection.vue.d.ts +8 -0
  18. package/dist/frontend/mf-order/src/views/order-settings/delivery/components/ManualIntegratedDeliverySetting.vue.d.ts +5 -0
  19. package/dist/frontend/mf-order/src/views/order-settings/servicecharge/ServiceChargeRule.vue.d.ts +2 -0
  20. package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
  21. package/dist/{index-DLWAy-3K.js → index-Cvhc_ltu.js} +2 -2
  22. package/dist/menu.dto-CeUdKgTW.js +103445 -0
  23. package/dist/package/entity/booking/booking.do.d.ts +502 -502
  24. package/dist/package/entity/delivery/delivery.dto.d.ts +100 -100
  25. package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +17 -0
  26. package/dist/package/entity/incoming-order/incoming-order.do.d.ts +1973 -836
  27. package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +32 -0
  28. package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +555 -555
  29. package/dist/package/entity/order/order-item/order-item.dto.d.ts +15 -0
  30. package/dist/package/entity/order/order.do.d.ts +5 -0
  31. package/dist/package/entity/order/order.dto.d.ts +208 -200
  32. package/dist/package/entity/order/order.enum.d.ts +1 -1
  33. package/dist/package/entity/order-platform/external/menu/external-master-menu.do.d.ts +4 -4
  34. package/dist/package/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +100 -100
  35. package/dist/package/entity/order-platform/grabfood/grabfood-order.do.d.ts +100 -100
  36. package/dist/package/entity/order-platform/menu.dto.d.ts +410 -410
  37. package/dist/package/entity/order-platform/shopeefood/shopeefood-order.do.d.ts +100 -100
  38. package/dist/package/entity/order-setting/kiosk/kiosk.do.d.ts +42 -0
  39. package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +32 -0
  40. package/dist/package/entity/order-setting/order-setting.do.d.ts +22 -0
  41. package/dist/package/entity/order-setting/order-setting.dto.d.ts +44 -0
  42. package/dist/package/entity/queue/queue.do.d.ts +34 -34
  43. package/dist/package/entity/restaurant/restaurant.dto.d.ts +22 -0
  44. package/dist/package/entity/websocket/websocket.dto.d.ts +48 -0
  45. package/package.json +3 -3
  46. package/src/locales/en-US.json +4 -0
  47. package/src/locales/th-TH.json +4 -0
  48. package/src/locales/zh-CN.json +3 -0
  49. package/src/stores/order-setting/mapper.ts +230 -168
  50. package/src/views/kiosk/settings/KioskPaymentTypeSection.vue +42 -2
  51. package/src/views/order-settings/delivery/DeliverySetting.vue +11 -16
  52. package/src/views/order-settings/delivery/components/ManualIntegratedDeliverySetting.vue +26 -9
  53. package/src/views/order-settings/delivery/integrated-delivery/DeliverooSetting.vue +12 -1
  54. package/dist/KioskSettingView-CTDY8__s.js +0 -821
  55. package/dist/OrderSettingsView-VLE9yxNt.js +0 -74796
  56. package/dist/menu.dto-DGDI6XwH.js +0 -126424
@@ -1,206 +1,268 @@
1
- import { OrderSettingsDto, OrderKioskDineIn, OrderKioskDineInSequenceDto, FdoOrderKioskDineInSequence, FdoEPaymentMethod } from "@entity";
2
- import type { MfKioskOrderSetting, MfKioskDineInSetting, MfDisplayStandSetting, KioskTakeawaySettingForm, MfKioskOrderSettingForm, MfKioskPaymentSetting, MfKioskSubmitOrderInstruction, KioskPickAtCounterSettingForm } from '@/modules/order-setting/kiosk/interface';
3
- import type { MfOrderSetting } from "@/modules/order-setting/interface";
4
- import type { OrderKioskSettings, OrderKioskPaymentSetting } from "@entity";
1
+ import {
2
+ OrderSettingsDto,
3
+ OrderKioskDineIn,
4
+ OrderKioskDineInSequenceDto,
5
+ FdoOrderKioskDineInSequence,
6
+ FdoEPaymentMethod
7
+ } from '@entity'
8
+ import type {
9
+ MfKioskOrderSetting,
10
+ MfKioskDineInSetting,
11
+ MfDisplayStandSetting,
12
+ KioskTakeawaySettingForm,
13
+ MfKioskOrderSettingForm,
14
+ MfKioskPaymentSetting,
15
+ MfKioskSubmitOrderInstruction,
16
+ KioskPickAtCounterSettingForm
17
+ } from '@/modules/order-setting/kiosk/interface'
18
+ import type { MfOrderSetting } from '@/modules/order-setting/interface'
19
+ import type { OrderKioskSettings, OrderKioskPaymentSetting } from '@entity'
5
20
 
6
21
  export const defaultDisplayStand: MfDisplayStandSetting = {
7
- enabled: false,
8
- prefix: null,
9
- padDigit: 0,
10
- standSlotRange: {
11
- min: 1,
12
- max: 10,
13
- },
14
- enablePaxDialog: false,
15
- submitOrderInstruction: {
16
- payAtCounter: null,
17
- paid: null,
18
- },
22
+ enabled: false,
23
+ prefix: null,
24
+ padDigit: 0,
25
+ standSlotRange: {
26
+ min: 1,
27
+ max: 10
28
+ },
29
+ enablePaxDialog: false,
30
+ submitOrderInstruction: {
31
+ payAtCounter: null,
32
+ paid: null
33
+ }
19
34
  }
20
35
 
21
36
  export const defaultTakeaway: KioskTakeawaySettingForm = {
22
- enabled: false,
23
- submitOrderInstruction: {
24
- payAtCounter: null,
25
- paid: null,
26
- },
37
+ enabled: false,
38
+ submitOrderInstruction: {
39
+ payAtCounter: null,
40
+ paid: null
41
+ }
27
42
  }
28
43
 
29
44
  export const defaultPickUp: KioskPickAtCounterSettingForm = {
30
- enabled: false,
31
- submitOrderInstruction: {
32
- payAtCounter: null,
33
- paid: null,
34
- },
35
- enablePaxDialog: false,
45
+ enabled: false,
46
+ submitOrderInstruction: {
47
+ payAtCounter: null,
48
+ paid: null
49
+ },
50
+ enablePaxDialog: false
36
51
  }
37
52
 
38
53
  export const defaultKioskOrderSetting: MfKioskOrderSettingForm = {
39
- dineIn: {
40
- enabled: false,
41
- pickUp: defaultPickUp,
42
- sequenceNumber: FdoOrderKioskDineInSequence.parse({}),
43
- displayStand: defaultDisplayStand,
44
- },
45
- takeaway: defaultTakeaway,
46
- paymentSetting: {
47
- paymentTypes: [],
48
- offlinePaymentTypes: [],
49
- ePaymentTypes: {
50
- card: {
51
- terminal: false,
52
- nfc: false
53
- },
54
- eWallet: {
55
- qrPay: false,
56
- scanPay: false
57
- }
58
- },
59
- },
60
- menuItem: {
61
- showAllOnly: false,
54
+ dineIn: {
55
+ enabled: false,
56
+ pickUp: defaultPickUp,
57
+ sequenceNumber: FdoOrderKioskDineInSequence.parse({}),
58
+ displayStand: defaultDisplayStand
59
+ },
60
+ takeaway: defaultTakeaway,
61
+ paymentSetting: {
62
+ paymentTypes: [],
63
+ offlinePaymentTypes: [],
64
+ ePaymentTypes: {
65
+ card: {
66
+ terminal: false,
67
+ nfc: false
68
+ },
69
+ eWallet: {
70
+ qrPay: false,
71
+ scanPay: false,
72
+ terminalScanPay: false,
73
+ terminalQrPay: false
74
+ }
62
75
  }
76
+ },
77
+ menuItem: {
78
+ showAllOnly: false
79
+ }
63
80
  }
64
81
 
65
82
  export const defaultSubmitOrderInstruction: MfKioskSubmitOrderInstruction = {
66
- payAtCounter: null,
67
- paid: null,
83
+ payAtCounter: null,
84
+ paid: null
68
85
  }
69
86
 
70
87
  const convertOrderSettingDto = (dto: OrderSettingsDto): MfOrderSetting => {
71
- return {
72
- kiosk: toKiosk(dto.kioskSettings, dto.sequenceSettings?.kioskDineIn),
73
- };
88
+ return {
89
+ kiosk: toKiosk(dto.kioskSettings, dto.sequenceSettings?.kioskDineIn)
90
+ }
74
91
  }
75
92
 
76
- const toKiosk = (kioskOrderSettings: OrderKioskSettings, kioskDineInSeq?: OrderKioskDineInSequenceDto): MfKioskOrderSetting => {
77
- return {
78
- dineIn: toKioskDineInSetting(kioskDineInSeq ?? {
79
- current: 0,
80
- prefix: '#K',
81
- }, kioskOrderSettings.dineIn ?? undefined),
82
- takeaway: {
83
- enabled: kioskOrderSettings?.canTakeaway ?? false,
84
- submitOrderInstruction: kioskOrderSettings?.takeaway?.submitOrderInstruction ? {
85
- payAtCounter: kioskOrderSettings.takeaway.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
86
- paid: kioskOrderSettings.takeaway.submitOrderInstruction?.paid?.['en'] ?? null,
87
- } : defaultSubmitOrderInstruction,
88
- },
89
- paymentSetting: {
90
- paymentTypes: kioskOrderSettings?.paymentSetting?.paymentTypes ?? [],
91
- offlinePaymentTypes: kioskOrderSettings?.paymentSetting?.offlinePaymentTypes ?? [],
92
- ePaymentTypes: kioskOrderSettings?.paymentSetting?.ePaymentTypes ?? FdoEPaymentMethod.parse({
93
- card: {
94
- terminal: false,
95
- nfc: false
96
- },
97
- eWallet: {
98
- qrPay: false,
99
- scanPay: false
100
- }
101
- }),
102
- },
103
- menuItem: {
104
- showAllOnly: kioskOrderSettings.menuItem?.showAllOnly ?? false,
105
- }
93
+ const toKiosk = (
94
+ kioskOrderSettings: OrderKioskSettings,
95
+ kioskDineInSeq?: OrderKioskDineInSequenceDto
96
+ ): MfKioskOrderSetting => {
97
+ return {
98
+ dineIn: toKioskDineInSetting(
99
+ kioskDineInSeq ?? {
100
+ current: 0,
101
+ prefix: '#K'
102
+ },
103
+ kioskOrderSettings.dineIn ?? undefined
104
+ ),
105
+ takeaway: {
106
+ enabled: kioskOrderSettings?.canTakeaway ?? false,
107
+ submitOrderInstruction: kioskOrderSettings?.takeaway?.submitOrderInstruction
108
+ ? {
109
+ payAtCounter:
110
+ kioskOrderSettings.takeaway.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
111
+ paid: kioskOrderSettings.takeaway.submitOrderInstruction?.paid?.['en'] ?? null
112
+ }
113
+ : defaultSubmitOrderInstruction
114
+ },
115
+ paymentSetting: {
116
+ paymentTypes: kioskOrderSettings?.paymentSetting?.paymentTypes ?? [],
117
+ offlinePaymentTypes: kioskOrderSettings?.paymentSetting?.offlinePaymentTypes ?? [],
118
+ ePaymentTypes:
119
+ kioskOrderSettings?.paymentSetting?.ePaymentTypes ??
120
+ FdoEPaymentMethod.parse({
121
+ card: {
122
+ terminal: false,
123
+ nfc: false
124
+ },
125
+ eWallet: {
126
+ qrPay: false,
127
+ scanPay: false,
128
+ terminalScanPay: false,
129
+ terminalQrPay: false
130
+ }
131
+ })
132
+ },
133
+ menuItem: {
134
+ showAllOnly: kioskOrderSettings.menuItem?.showAllOnly ?? false
106
135
  }
136
+ }
107
137
  }
108
138
 
109
- const toKioskDineInSetting = (kioskDineInSeq: OrderKioskDineInSequenceDto, kioskDineInSetting?: OrderKioskDineIn): MfKioskDineInSetting => {
110
- return {
111
- enabled: !!kioskDineInSetting,
112
- sequenceNumber: kioskDineInSeq,
113
- pickUp: kioskDineInSetting?.pickUp ? {
114
- ...kioskDineInSetting.pickUp,
115
- submitOrderInstruction: kioskDineInSetting.pickUp.submitOrderInstruction ? {
116
- payAtCounter: kioskDineInSetting.pickUp.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
117
- paid: kioskDineInSetting.pickUp.submitOrderInstruction?.paid?.['en'] ?? null,
118
- } : defaultSubmitOrderInstruction,
119
- enablePaxDialog: kioskDineInSetting.pickUp.enablePaxDialog ? kioskDineInSetting.pickUp.enablePaxDialog : false,
120
- } : defaultPickUp,
121
- displayStand: kioskDineInSetting?.displayStand ? {
122
- enabled: kioskDineInSetting.displayStand.enabled,
123
- standSlotRange: kioskDineInSetting.displayStand.standSlotRange,
124
- prefix: kioskDineInSetting.displayStand.prefix,
125
- padDigit: kioskDineInSetting.displayStand.padDigit,
126
- enablePaxDialog: kioskDineInSetting.displayStand.enablePaxDialog ?? false,
127
- submitOrderInstruction: kioskDineInSetting.displayStand.submitOrderInstruction ? {
128
- payAtCounter: kioskDineInSetting.displayStand.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
129
- paid: kioskDineInSetting.displayStand.submitOrderInstruction?.paid?.['en'] ?? null,
130
- } : defaultSubmitOrderInstruction,
131
- } : defaultDisplayStand
132
- }
139
+ const toKioskDineInSetting = (
140
+ kioskDineInSeq: OrderKioskDineInSequenceDto,
141
+ kioskDineInSetting?: OrderKioskDineIn
142
+ ): MfKioskDineInSetting => {
143
+ return {
144
+ enabled: !!kioskDineInSetting,
145
+ sequenceNumber: kioskDineInSeq,
146
+ pickUp: kioskDineInSetting?.pickUp
147
+ ? {
148
+ ...kioskDineInSetting.pickUp,
149
+ submitOrderInstruction: kioskDineInSetting.pickUp.submitOrderInstruction
150
+ ? {
151
+ payAtCounter:
152
+ kioskDineInSetting.pickUp.submitOrderInstruction?.payAtCounter?.['en'] ?? null,
153
+ paid: kioskDineInSetting.pickUp.submitOrderInstruction?.paid?.['en'] ?? null
154
+ }
155
+ : defaultSubmitOrderInstruction,
156
+ enablePaxDialog: kioskDineInSetting.pickUp.enablePaxDialog
157
+ ? kioskDineInSetting.pickUp.enablePaxDialog
158
+ : false
159
+ }
160
+ : defaultPickUp,
161
+ displayStand: kioskDineInSetting?.displayStand
162
+ ? {
163
+ enabled: kioskDineInSetting.displayStand.enabled,
164
+ standSlotRange: kioskDineInSetting.displayStand.standSlotRange,
165
+ prefix: kioskDineInSetting.displayStand.prefix,
166
+ padDigit: kioskDineInSetting.displayStand.padDigit,
167
+ enablePaxDialog: kioskDineInSetting.displayStand.enablePaxDialog ?? false,
168
+ submitOrderInstruction: kioskDineInSetting.displayStand.submitOrderInstruction
169
+ ? {
170
+ payAtCounter:
171
+ kioskDineInSetting.displayStand.submitOrderInstruction?.payAtCounter?.['en'] ??
172
+ null,
173
+ paid: kioskDineInSetting.displayStand.submitOrderInstruction?.paid?.['en'] ?? null
174
+ }
175
+ : defaultSubmitOrderInstruction
176
+ }
177
+ : defaultDisplayStand
178
+ }
133
179
  }
134
- const toOrderKioskSettingsDto = (kioskSetting: MfKioskOrderSetting): {
135
- kioskSettings: OrderKioskSettings,
136
- kioskDineIn?: OrderKioskDineInSequenceDto
180
+ const toOrderKioskSettingsDto = (
181
+ kioskSetting: MfKioskOrderSetting
182
+ ): {
183
+ kioskSettings: OrderKioskSettings
184
+ kioskDineIn?: OrderKioskDineInSequenceDto
137
185
  } => {
138
- const createDineInSettings = (dineInSetting: MfKioskDineInSetting): OrderKioskDineIn => ({
139
- requiredSlot: !!dineInSetting.displayStand,
140
- displayStand: {
141
- ...dineInSetting.displayStand,
142
- submitOrderInstruction: {
143
- payAtCounter: dineInSetting.displayStand.submitOrderInstruction?.payAtCounter ? {
144
- en: dineInSetting.displayStand.submitOrderInstruction.payAtCounter,
145
- } : null,
146
- paid: dineInSetting.displayStand.submitOrderInstruction?.paid ? {
147
- en: dineInSetting.displayStand.submitOrderInstruction.paid,
148
- } : null,
186
+ const createDineInSettings = (dineInSetting: MfKioskDineInSetting): OrderKioskDineIn => ({
187
+ requiredSlot: !!dineInSetting.displayStand,
188
+ displayStand: {
189
+ ...dineInSetting.displayStand,
190
+ submitOrderInstruction: {
191
+ payAtCounter: dineInSetting.displayStand.submitOrderInstruction?.payAtCounter
192
+ ? {
193
+ en: dineInSetting.displayStand.submitOrderInstruction.payAtCounter
149
194
  }
150
- },
151
- pickUp: {
152
- ...dineInSetting.pickUp,
153
- submitOrderInstruction: {
154
- payAtCounter: dineInSetting.pickUp.submitOrderInstruction?.payAtCounter ? {
155
- en: dineInSetting.pickUp.submitOrderInstruction.payAtCounter,
156
- } : null,
157
- paid: dineInSetting.pickUp.submitOrderInstruction?.paid ? {
158
- en: dineInSetting.pickUp.submitOrderInstruction.paid,
159
- } : null,
195
+ : null,
196
+ paid: dineInSetting.displayStand.submitOrderInstruction?.paid
197
+ ? {
198
+ en: dineInSetting.displayStand.submitOrderInstruction.paid
160
199
  }
161
- }
162
- })
163
-
164
- const createKioskSettings = (dineIn?: OrderKioskDineIn): OrderKioskSettings => ({
165
- canTakeaway: kioskSetting.takeaway.enabled,
166
- dineIn,
167
- menuItem: kioskSetting.menuItem,
168
- paymentSetting: createPaymentSettings(kioskSetting.paymentSetting),
169
- takeaway: kioskSetting.takeaway.submitOrderInstruction ? {
170
- submitOrderInstruction: {
171
- payAtCounter: kioskSetting.takeaway.submitOrderInstruction.payAtCounter ? {
172
- en: kioskSetting.takeaway.submitOrderInstruction.payAtCounter,
173
- } : null,
174
- paid: kioskSetting.takeaway.submitOrderInstruction.paid ? {
175
- en: kioskSetting.takeaway.submitOrderInstruction.paid,
176
- } : null,
200
+ : null
201
+ }
202
+ },
203
+ pickUp: {
204
+ ...dineInSetting.pickUp,
205
+ submitOrderInstruction: {
206
+ payAtCounter: dineInSetting.pickUp.submitOrderInstruction?.payAtCounter
207
+ ? {
208
+ en: dineInSetting.pickUp.submitOrderInstruction.payAtCounter
177
209
  }
178
- } : undefined
179
- })
180
-
181
- const createPaymentSettings = (paymentSetting: MfKioskPaymentSetting): OrderKioskPaymentSetting | undefined => {
182
- return {
183
- paymentTypes: paymentSetting.paymentTypes,
184
- offlinePaymentTypes: paymentSetting.offlinePaymentTypes,
185
- ePaymentTypes: paymentSetting.ePaymentTypes,
186
- }
210
+ : null,
211
+ paid: dineInSetting.pickUp.submitOrderInstruction?.paid
212
+ ? {
213
+ en: dineInSetting.pickUp.submitOrderInstruction.paid
214
+ }
215
+ : null
216
+ }
187
217
  }
218
+ })
188
219
 
189
- if (!kioskSetting.dineIn.enabled) {
190
- return {
191
- kioskSettings: createKioskSettings()
220
+ const createKioskSettings = (dineIn?: OrderKioskDineIn): OrderKioskSettings => ({
221
+ canTakeaway: kioskSetting.takeaway.enabled,
222
+ dineIn,
223
+ menuItem: kioskSetting.menuItem,
224
+ paymentSetting: createPaymentSettings(kioskSetting.paymentSetting),
225
+ takeaway: kioskSetting.takeaway.submitOrderInstruction
226
+ ? {
227
+ submitOrderInstruction: {
228
+ payAtCounter: kioskSetting.takeaway.submitOrderInstruction.payAtCounter
229
+ ? {
230
+ en: kioskSetting.takeaway.submitOrderInstruction.payAtCounter
231
+ }
232
+ : null,
233
+ paid: kioskSetting.takeaway.submitOrderInstruction.paid
234
+ ? {
235
+ en: kioskSetting.takeaway.submitOrderInstruction.paid
236
+ }
237
+ : null
238
+ }
192
239
  }
193
- }
240
+ : undefined
241
+ })
194
242
 
243
+ const createPaymentSettings = (
244
+ paymentSetting: MfKioskPaymentSetting
245
+ ): OrderKioskPaymentSetting | undefined => {
195
246
  return {
196
- kioskSettings: createKioskSettings(createDineInSettings(kioskSetting.dineIn)),
197
- kioskDineIn: kioskSetting.dineIn.sequenceNumber,
247
+ paymentTypes: paymentSetting.paymentTypes,
248
+ offlinePaymentTypes: paymentSetting.offlinePaymentTypes,
249
+ ePaymentTypes: paymentSetting.ePaymentTypes
198
250
  }
199
- }
251
+ }
200
252
 
253
+ if (!kioskSetting.dineIn.enabled) {
254
+ return {
255
+ kioskSettings: createKioskSettings()
256
+ }
257
+ }
201
258
 
259
+ return {
260
+ kioskSettings: createKioskSettings(createDineInSettings(kioskSetting.dineIn)),
261
+ kioskDineIn: kioskSetting.dineIn.sequenceNumber
262
+ }
263
+ }
202
264
 
203
265
  export const OrderSettingMapper = {
204
- convertOrderSettingDto,
205
- toOrderKioskSettingsDto,
206
- };
266
+ convertOrderSettingDto,
267
+ toOrderKioskSettingsDto
268
+ }
@@ -87,6 +87,16 @@ const initializeCheckboxes = () => {
87
87
  eWalletPaymentCheckboxVal.value.push(F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY)
88
88
  useEwallet.value = true
89
89
  }
90
+
91
+ if (props.ePaymentTypes.eWallet.terminalScanPay) {
92
+ eWalletPaymentCheckboxVal.value.push(F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_SCAN_PAY)
93
+ useEwallet.value = true
94
+ }
95
+
96
+ if (props.ePaymentTypes.eWallet.terminalQrPay) {
97
+ eWalletPaymentCheckboxVal.value.push(F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_QR_PAY)
98
+ useEwallet.value = true
99
+ }
90
100
  }
91
101
  }
92
102
 
@@ -148,7 +158,9 @@ const handleEPaymentCardUpdate = (ev: string) => {
148
158
  },
149
159
  eWallet: {
150
160
  qrPay: false,
151
- scanPay: false
161
+ scanPay: false,
162
+ terminalScanPay: false,
163
+ terminalQrPay: false,
152
164
  }
153
165
  } as FdoEPaymentMethod
154
166
 
@@ -169,6 +181,12 @@ const handleEPaymentCardUpdate = (ev: string) => {
169
181
  if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY)) {
170
182
  ePaymentObj.eWallet.scanPay = true
171
183
  }
184
+ if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_SCAN_PAY)) {
185
+ ePaymentObj.eWallet.terminalScanPay = true
186
+ }
187
+ if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_QR_PAY)) {
188
+ ePaymentObj.eWallet.terminalQrPay = true
189
+ }
172
190
  }
173
191
  }
174
192
 
@@ -183,7 +201,9 @@ const handleEPaymentEWalletUpdate = () => {
183
201
  },
184
202
  eWallet: {
185
203
  qrPay: false,
186
- scanPay: false
204
+ scanPay: false,
205
+ terminalScanPay: false,
206
+ terminalQrPay: false,
187
207
  }
188
208
  } as FdoEPaymentMethod
189
209
 
@@ -205,6 +225,14 @@ const handleEPaymentEWalletUpdate = () => {
205
225
  if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY)) {
206
226
  ePaymentObj.eWallet.scanPay = true
207
227
  }
228
+
229
+ if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_SCAN_PAY)) {
230
+ ePaymentObj.eWallet.terminalScanPay = true
231
+ }
232
+
233
+ if (eWalletPaymentCheckboxVal.value.includes(F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_QR_PAY)) {
234
+ ePaymentObj.eWallet.terminalQrPay = true
235
+ }
208
236
  }
209
237
 
210
238
  emits('update:ePaymentTypes', ePaymentObj)
@@ -342,6 +370,18 @@ onMounted(() => {
342
370
  :value="F_ORDER_E_PAYMENT_TYPE.enum.SCANPAY"
343
371
  @update:model-value="handleEPaymentEWalletUpdate"
344
372
  />
373
+ <FmCheckbox
374
+ v-model="eWalletPaymentCheckboxVal"
375
+ :label="t('order.terminalScanPay')"
376
+ :value="F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_SCAN_PAY"
377
+ @update:model-value="handleEPaymentEWalletUpdate"
378
+ />
379
+ <FmCheckbox
380
+ v-model="eWalletPaymentCheckboxVal"
381
+ :label="t('order.terminalQrPay')"
382
+ :value="F_ORDER_E_PAYMENT_TYPE.enum.TERMINAL_QR_PAY"
383
+ @update:model-value="handleEPaymentEWalletUpdate"
384
+ />
345
385
  </div>
346
386
  </div>
347
387
  </FmCardSection>
@@ -89,7 +89,7 @@
89
89
  @update:model-value="handleModelValueUpdateExternal"
90
90
  />
91
91
 
92
- <template #side-sheet-footer v-if="feedmeValidate !== false">
92
+ <template #side-sheet-footer v-if="canSave">
93
93
  <div class="flex gap-8 items-center justify-start">
94
94
  <FmButton
95
95
  variant="primary"
@@ -555,18 +555,7 @@ function hasPurchaseFeature(deliveryType: string) {
555
555
 
556
556
  const canUseAutoDeliveryIntegration = (client: string) => {
557
557
  const hasFeature = hasPurchaseFeature(client)
558
- if (typeof hasFeature === 'string') {
559
- return hasFeature
560
- }
561
- switch (client) {
562
- case 'deliveroo':
563
- return (
564
- currentCountry.value === F_COUNTRY.enum.SG ||
565
- `${t('order.autoIntegrationCountryNotSupport')}`
566
- )
567
- default:
568
- return true
569
- }
558
+ return hasFeature
570
559
  }
571
560
 
572
561
  const integratedCompanies = computed<IntegratedDeliveryRow[]>(() => {
@@ -818,7 +807,7 @@ async function createOrUpdateManualDeliveryDoc({
818
807
  company: DeliveryCompany
819
808
  data: FdoLinkedDelivery
820
809
  }): Promise<LinkedDeliveryDoc | undefined> {
821
- const { paymentTypeKey, catalogId, rounding } = data
810
+ const { paymentTypeKey, catalogId, rounding, useCustomOrderNumber } = data
822
811
  let newDoc: LinkedDeliveryDoc
823
812
 
824
813
  if (doc) {
@@ -826,14 +815,16 @@ async function createOrUpdateManualDeliveryDoc({
826
815
  ...doc,
827
816
  paymentTypeKey,
828
817
  catalogId,
829
- rounding
818
+ rounding,
819
+ useCustomOrderNumber
830
820
  })
831
821
  } else {
832
822
  newDoc = await remoteOrderApi.createDeliveryCompany({
833
823
  ...company,
834
824
  paymentTypeKey,
835
825
  catalogId,
836
- rounding
826
+ rounding,
827
+ useCustomOrderNumber
837
828
  })
838
829
  }
839
830
 
@@ -986,6 +977,10 @@ function handleModelValueUpdateExternal(v: any) {
986
977
  }
987
978
 
988
979
  const feedmeValidate = ref<boolean | null>(null)
980
+ const canSave = computed(() => {
981
+ return !feedMeComponentProps.value?.key || feedmeValidate.value !== false
982
+ })
983
+
989
984
  function handleValidationResult(v: boolean) {
990
985
  feedmeValidate.value = v
991
986
  }
@@ -4,7 +4,7 @@ import type { DeliveryCompany } from '../delivery'
4
4
  import { F_PAYMENT_NAME, type FdoLinkedDelivery } from '@feedmepos/core/entity'
5
5
  import { useI18n } from '@feedmepos/mf-common'
6
6
 
7
- const { t } = useI18n()
7
+ const { t } = useI18n()
8
8
 
9
9
  interface LocalDeliverySettingData extends FdoLinkedDelivery {
10
10
  active: boolean
@@ -107,6 +107,13 @@ function updateRounding(rounding: boolean) {
107
107
  }))
108
108
  }
109
109
 
110
+ function updateCustomOrderNumber(useCustomOrderNumber: boolean) {
111
+ emitChange((oldV) => ({
112
+ ...oldV,
113
+ useCustomOrderNumber
114
+ }))
115
+ }
116
+
110
117
  function updateCatalog(catalogId: string | null) {
111
118
  emitChange((oldV) => ({
112
119
  ...oldV,
@@ -120,9 +127,9 @@ function updateCatalog(catalogId: string | null) {
120
127
  <FmSwitch
121
128
  :model-value="data.active"
122
129
  value="first"
123
- :label="t('order.activateIntegration', {integrationType: t('order.manual')})"
130
+ :label="t('order.activateIntegration', { integrationType: t('order.manual') })"
124
131
  label-placement="right"
125
- :sublabel="t('order.integrationDescription', {name: data.name})"
132
+ :sublabel="t('order.integrationDescription', { name: data.name })"
126
133
  @update:model-value="updateActive"
127
134
  />
128
135
  </div>
@@ -147,12 +154,22 @@ function updateCatalog(catalogId: string | null) {
147
154
  </div>
148
155
 
149
156
  <div class="flex-grow fm-typo-en-title-sm-600 mb-3 mt-7">{{ t('order.orderSetting') }}</div>
150
- <FmCheckbox
151
- :model-value="data.rounding as boolean"
152
- value=""
153
- :label="t('order.billRounding')"
154
- @update:model-value="updateRounding"
155
- />
157
+ <div>
158
+ <FmCheckbox
159
+ :model-value="data.rounding as boolean"
160
+ value=""
161
+ :label="t('order.billRounding')"
162
+ @update:model-value="updateRounding"
163
+ />
164
+ </div>
165
+ <div>
166
+ <FmCheckbox
167
+ :model-value="data.useCustomOrderNumber ?? false"
168
+ value=""
169
+ :label="t('order.customOrderNumber')"
170
+ @update:model-value="updateCustomOrderNumber"
171
+ />
172
+ </div>
156
173
  </FmCard>
157
174
  </div>
158
175
  </template>