@feedmepos/mf-order-setting 0.0.72-prod → 0.0.73-dev
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/.env +1 -1
- package/README.md +7 -23
- package/dist/{KioskDevicesView-DIiEVc0i.js → KioskDevicesView-Dztw-Q35.js} +1 -1
- package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-BD0Olm4_.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-Ol419NZh.js} +3 -3
- package/dist/{KioskSettingView-Csm9he9M.js → KioskSettingView-BUHmoxyO.js} +183 -202
- package/dist/{KioskView-Ho2ts0j6.js → KioskView-B8j77zMA.js} +4 -4
- package/dist/OrderSettingsView-C5PK8CKZ.js +60009 -0
- package/dist/{app-xl2InG-H.js → app-C2_s0fkK.js} +5066 -4942
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-BVqlMLNE.js → dayjs.min-B3nOmXcs.js} +1 -1
- package/dist/frontend/mf-order/src/api/menu/index.d.ts +1 -1
- package/dist/frontend/mf-order/src/api/remoteOrder/index.d.ts +10 -3
- package/dist/frontend/mf-order/src/app.d.ts +44 -8
- package/dist/frontend/mf-order/src/components/GoogleMap.vue.d.ts +1 -1
- package/dist/frontend/mf-order/src/composables/useQrOrderingEnabled.d.ts +2 -0
- package/dist/frontend/mf-order/src/helpers/menu.d.ts +1 -1
- package/dist/frontend/mf-order/src/main.d.ts +44 -8
- package/dist/frontend/mf-order/src/stores/kiosk/index.d.ts +21 -21
- package/dist/frontend/mf-order/src/stores/menu/menu.d.ts +906 -1044
- package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +36 -3
- package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +5 -2
- package/dist/frontend/mf-order/src/views/order-settings/delivery/DeliverySetting.vue.d.ts +2 -2
- package/dist/frontend/mf-order/src/views/order-settings/delivery/components/TaxInput.vue.d.ts +3 -8
- package/dist/frontend/mf-order/src/views/order-settings/delivery/delivery.d.ts +3 -1
- package/dist/frontend/mf-order/src/views/order-settings/delivery/delivery.data.d.ts +5 -1
- package/dist/frontend/mf-order/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue.d.ts +21 -0
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/ExternalSetting.vue.d.ts +2 -2
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/GrabfoodSetting.vue.d.ts +1 -1
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue.d.ts +28 -2
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/LinemanSetting.vue.d.ts +46 -0
- package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/TngSetting.vue.d.ts +57 -0
- package/dist/frontend/mf-order/src/views/order-settings/pickup/PickUpSettingDialogContent.vue.d.ts +23 -1
- package/dist/frontend/mf-order/src/views/order-settings/pickup/Preorder.vue.d.ts +27 -0
- package/dist/frontend/mf-order/src/views/order-settings/servicecharge/RateInput.vue.d.ts +8 -0
- package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
- package/dist/index-6PQJ07gD.js +665 -0
- package/dist/{index-B4qdL9W3.js → index-B4XxBqiV.js} +1 -1
- package/dist/lineman-settings.dto-DcYJFu0U.js +60394 -0
- package/dist/package/entity/_type-assert.d.ts +7 -0
- package/dist/package/entity/booking/booking.dto.d.ts +24 -24
- package/dist/package/entity/delivery/delivery.dto.d.ts +8 -8
- package/dist/package/entity/delivery/delivery.enum.d.ts +12 -0
- package/dist/package/entity/delivery/gateway/grab.dto.d.ts +2 -2
- package/dist/package/entity/delivery/gateway/kosmo.dto.d.ts +16 -16
- package/dist/package/entity/delivery/gateway/pandago.dto.d.ts +4 -4
- package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +282 -4591
- package/dist/package/entity/incoming-order/incoming-order.do.d.ts +32 -24
- package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +23 -11719
- package/dist/package/entity/incoming-order/incoming-order.enum.d.ts +2 -2
- package/dist/package/entity/index.d.ts +12 -0
- package/dist/package/entity/kiosk/kiosk.do.d.ts +140 -140
- package/dist/package/entity/kiosk/kiosk.dto.d.ts +168 -168
- package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +63 -7
- package/dist/package/entity/marketing/marketing.dto.d.ts +4 -4
- package/dist/package/entity/member/member.dto.d.ts +6 -0
- package/dist/package/entity/order/dine-in/dine-in.do.d.ts +8 -8
- package/dist/package/entity/order/effects/effect.dto.d.ts +68 -16
- package/dist/package/entity/order/menu/menu.dto.d.ts +45 -8
- package/dist/package/entity/order/order-item/order-item.dto.d.ts +358 -3853
- package/dist/package/entity/order/order.do.d.ts +239 -42
- package/dist/package/entity/order/order.dto.d.ts +6497 -2236
- package/dist/package/entity/order/payment/payment.dto.d.ts +52 -12
- package/dist/package/entity/order-platform/base-integration.do.d.ts +8 -0
- package/dist/package/entity/order-platform/deliveroo/deliveroo-dto.d.ts +2 -2
- package/dist/package/entity/order-platform/deliveroo/deliveroo-order.do.d.ts +524 -524
- package/dist/package/entity/order-platform/deliveroo/deliveroo-setting.do.d.ts +2 -2
- package/dist/package/entity/order-platform/deliveroo/deliveroo.menu.dto.d.ts +58 -58
- package/dist/package/entity/order-platform/external/menu/external-master-menu.do.d.ts +212 -284
- package/dist/package/entity/order-platform/external/menu/external-menu.do.d.ts +331 -589
- package/dist/package/entity/order-platform/external/menu/external-menu.dto.d.ts +1 -1
- package/dist/package/entity/order-platform/external/order/external-order.do.d.ts +12 -12
- package/dist/package/entity/order-platform/external/order/external-order.dto.d.ts +275 -275
- package/dist/package/entity/order-platform/external/setting/external-setting.do.d.ts +3 -3
- package/dist/package/entity/order-platform/external/setting/external-setting.dto.d.ts +3 -3
- package/dist/package/entity/order-platform/foodpanda/foodpanda-menu.dto.d.ts +284 -284
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.do.d.ts +40 -40
- package/dist/package/entity/order-platform/foodpanda/foodpanda-order.dto.d.ts +16 -16
- package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.do.d.ts +2 -2
- package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.dto.d.ts +2 -2
- package/dist/package/entity/order-platform/gofood/gofood-order.do.d.ts +18 -18
- package/dist/package/entity/order-platform/gofood/gofood-settings.do.d.ts +2 -2
- package/dist/package/entity/order-platform/gofood/gofood-settings.dto.d.ts +2 -2
- package/dist/package/entity/order-platform/gofood/gofood.dto.d.ts +32 -32
- package/dist/package/entity/order-platform/grabfood/grabfood-edit-order.do.d.ts +12 -12
- package/dist/package/entity/order-platform/grabfood/grabfood-omni.do.d.ts +134 -115
- package/dist/package/entity/order-platform/grabfood/grabfood-order.do.d.ts +187 -165
- package/dist/package/entity/order-platform/grabfood/grabfood-settings.do.d.ts +8 -2
- package/dist/package/entity/order-platform/grabfood/grabfood-webhook.dto.d.ts +49 -42
- package/dist/package/entity/order-platform/grabfood/grabfood.dto.d.ts +67 -54
- package/dist/package/entity/order-platform/grabfood/grabfood.enum.d.ts +1 -1
- package/dist/package/entity/order-platform/lineman/lineman-settings.do.d.ts +37 -0
- package/dist/package/entity/order-platform/lineman/lineman-settings.dto.d.ts +40 -0
- package/dist/package/entity/order-platform/menu.dto.d.ts +716 -13887
- package/dist/package/entity/order-platform/order-platform.dto.d.ts +136 -2
- package/dist/package/entity/order-platform/order-platform.enum.d.ts +1 -1
- package/dist/package/entity/order-platform/shopeefood/shopeefood-order.do.d.ts +176 -176
- package/dist/package/entity/order-platform/shopeefood/shopeefood-order.dto.d.ts +62 -62
- package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.do.d.ts +8 -2
- package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.dto.d.ts +8 -2
- package/dist/package/entity/order-platform/tng/tng-menu.do.d.ts +1061 -0
- package/dist/package/entity/order-platform/tng/tng-order.do.d.ts +1915 -0
- package/dist/package/entity/order-platform/tng/tng-settings.do.d.ts +379 -0
- package/dist/package/entity/order-platform/tng/tng-settings.dto.d.ts +301 -0
- package/dist/package/entity/order-platform/tng/tng.dto.d.ts +1162 -0
- package/dist/package/entity/order-platform/tng/tng.enum.d.ts +29 -0
- package/dist/package/entity/order-setting/delivery/inhouse-delivery.do.d.ts +12 -0
- package/dist/package/entity/order-setting/delivery/inhouse-delivery.dto.d.ts +12 -0
- package/dist/package/entity/order-setting/dine-in/dine-in.do.d.ts +11 -0
- package/dist/package/entity/order-setting/dine-in/dine-in.dto.d.ts +9 -0
- package/dist/package/entity/order-setting/kiosk/kiosk.do.d.ts +2 -2
- package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +2 -2
- package/dist/package/entity/order-setting/order-setting.do.d.ts +55 -4
- package/dist/package/entity/order-setting/order-setting.dto.d.ts +110 -8
- package/dist/package/entity/order-setting/pickup/pickup.do.d.ts +12 -0
- package/dist/package/entity/order-setting/pickup/pickup.dto.d.ts +12 -0
- package/dist/package/entity/payment/transaction.d.ts +80 -8
- package/dist/package/entity/printer/printer.do.d.ts +14 -14
- package/dist/package/entity/pubsub/ably/ably.enum.d.ts +1 -1
- package/dist/package/entity/queue/queue.do.d.ts +236 -1901
- package/dist/package/entity/queue/queue.dto.d.ts +743 -445
- package/dist/package/entity/restaurant/restaurant.dto.d.ts +27 -4
- package/dist/package/entity/websocket/websocket.dto.d.ts +10 -10
- package/dist/style.css +1 -0
- package/golar.config.ts +20 -0
- package/package.json +28 -22
- package/src/Entry.vue +2 -10
- package/src/api/menu/index.ts +1 -1
- package/src/api/remoteOrder/index.ts +176 -110
- package/src/composables/useQrOrderingEnabled.ts +66 -0
- package/src/helpers/menu.ts +1 -1
- package/src/locales/en-US.json +421 -412
- package/src/locales/ja-JP.json +1769 -1760
- package/src/locales/th-TH.json +409 -400
- package/src/locales/zh-CN.json +417 -408
- package/src/main.ts +4 -44
- package/src/router/index.ts +2 -2
- package/src/stores/menu/menu.ts +48 -27
- package/src/stores/restaurant/index.ts +24 -9
- package/src/utils/firebase-storage.ts +3 -13
- package/src/views/kiosk/settings/KioskSettingView.vue +3 -2
- package/src/views/order-settings/OrderSettingsView.vue +31 -11
- package/src/views/order-settings/delivery/DeliverySetting.vue +223 -11
- package/src/views/order-settings/delivery/components/TaxInput.vue +1 -1
- package/src/views/order-settings/delivery/delivery.data.ts +31 -10
- package/src/views/order-settings/delivery/delivery.ts +60 -28
- package/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue +40 -1
- package/src/views/order-settings/delivery/integrated-delivery/DeliverooSetting.vue +1 -1
- package/src/views/order-settings/delivery/integrated-delivery/GrabfoodSetting.vue +15 -7
- package/src/views/order-settings/delivery/integrated-delivery/IntegratedDelivery.vue +83 -27
- package/src/views/order-settings/delivery/integrated-delivery/LinemanSetting.vue +79 -0
- package/src/views/order-settings/delivery/integrated-delivery/ShopeefoodSetting.vue +2 -0
- package/src/views/order-settings/delivery/integrated-delivery/TngSetting.vue +749 -0
- package/src/views/order-settings/dine-in/DineInSetting.vue +54 -23
- package/src/views/order-settings/general/GeneralSetting.vue +15 -6
- package/src/views/order-settings/pickup/PickUpSettingDialog.vue +31 -3
- package/src/views/order-settings/pickup/PickUpSettingDialogContent.vue +34 -0
- package/src/views/order-settings/pickup/Preorder.vue +13 -12
- package/src/views/order-settings/queue/QueueSetting.vue +30 -1
- package/src/views/order-settings/servicecharge/RateInput.vue +9 -7
- package/vite.config.ts +16 -16
- package/dist/OrderSettingsView-C0G8kP3v.js +0 -32222
- package/dist/frontend/mf-order/src/api/auth/index.d.ts +0 -7
- package/dist/frontend/mf-order/src/stores/iframe/index.d.ts +0 -14
- package/dist/index-kCI8JdNP.js +0 -628
- package/dist/queue-transfer.dto-BLyCakS5.js +0 -45618
- package/src/api/auth/index.ts +0 -20
- package/src/stores/iframe/index.ts +0 -23
|
@@ -1,77 +1,109 @@
|
|
|
1
|
-
import { F_PAYMENT_NAME, FdoLinkedDelivery, F_COUNTRY } from
|
|
2
|
-
import { useCoreStore } from '@feedmepos/mf-common'
|
|
1
|
+
import { F_PAYMENT_NAME, FdoLinkedDelivery, F_COUNTRY } from '@feedmepos/core/entity'
|
|
2
|
+
import { useCoreStore } from '@feedmepos/mf-common'
|
|
3
3
|
|
|
4
|
-
export type LinkedDeliveryDoc = FdoLinkedDelivery & { _rev: string }
|
|
4
|
+
export type LinkedDeliveryDoc = FdoLinkedDelivery & { _rev: string }
|
|
5
5
|
|
|
6
6
|
export enum AUTO_INTEGRATION_CLIENT {
|
|
7
7
|
foodpanda = 'foodpanda',
|
|
8
8
|
grabfood = 'grabfood',
|
|
9
|
+
lineman = 'lineman',
|
|
9
10
|
shopeefood = 'shopeefood',
|
|
10
11
|
deliveroo = 'deliveroo',
|
|
12
|
+
tng = 'tng',
|
|
11
13
|
gofood = 'gofood',
|
|
12
14
|
external = 'external'
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export interface DeliveryCompany {
|
|
16
|
-
id: string
|
|
17
|
-
name: string
|
|
18
|
-
slotPrefix: string
|
|
19
|
-
paymentTypeKey: string
|
|
20
|
-
key: string
|
|
18
|
+
id: string
|
|
19
|
+
name: string
|
|
20
|
+
slotPrefix: string
|
|
21
|
+
paymentTypeKey: string
|
|
22
|
+
key: string
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
function formatDeliveryCompanyKey(key: string) {
|
|
24
|
-
return key.toLowerCase().replace('_', '').toLowerCase()
|
|
26
|
+
return key.toLowerCase().replace('_', '').toLowerCase()
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
export function useDelivery() {
|
|
28
30
|
function getLinkedDeliveryDoc(docs: LinkedDeliveryDoc[], key: string) {
|
|
29
|
-
return docs.find((doc) => formatDeliveryCompanyKey(doc.key) === formatDeliveryCompanyKey(key))
|
|
31
|
+
return docs.find((doc) => formatDeliveryCompanyKey(doc.key) === formatDeliveryCompanyKey(key))
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
function filterLocalDeliveryCompanies(companies: DeliveryCompany[]) {
|
|
33
|
-
return companies.filter(
|
|
35
|
+
return companies.filter(
|
|
36
|
+
({ key }) => !Object.keys(AUTO_INTEGRATION_CLIENT).includes(formatDeliveryCompanyKey(key))
|
|
37
|
+
)
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
function getPaymentType(paymentTypeKey?: string) {
|
|
37
|
-
return paymentTypeKey === F_PAYMENT_NAME.enum.CASH ? 'Cash' : 'Default'
|
|
41
|
+
return paymentTypeKey === F_PAYMENT_NAME.enum.CASH ? 'Cash' : 'Default'
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
function equalKey(key: string, targetKey: string) {
|
|
41
|
-
return formatDeliveryCompanyKey(key) === formatDeliveryCompanyKey(targetKey)
|
|
45
|
+
return formatDeliveryCompanyKey(key) === formatDeliveryCompanyKey(targetKey)
|
|
42
46
|
}
|
|
43
47
|
|
|
44
|
-
function isIntegratedPlatformSupported(
|
|
48
|
+
function isIntegratedPlatformSupported(
|
|
49
|
+
platform: AUTO_INTEGRATION_CLIENT,
|
|
50
|
+
country?: F_COUNTRY | null
|
|
51
|
+
): boolean {
|
|
45
52
|
country = country || useCoreStore().currentCountry.value || F_COUNTRY.enum.MY
|
|
46
|
-
const mySupported = [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
const mySupported = [
|
|
54
|
+
AUTO_INTEGRATION_CLIENT.foodpanda,
|
|
55
|
+
AUTO_INTEGRATION_CLIENT.grabfood,
|
|
56
|
+
AUTO_INTEGRATION_CLIENT.shopeefood,
|
|
57
|
+
AUTO_INTEGRATION_CLIENT.tng,
|
|
58
|
+
AUTO_INTEGRATION_CLIENT.external
|
|
59
|
+
]
|
|
60
|
+
const sgSupported = [
|
|
61
|
+
AUTO_INTEGRATION_CLIENT.foodpanda,
|
|
62
|
+
AUTO_INTEGRATION_CLIENT.grabfood,
|
|
63
|
+
AUTO_INTEGRATION_CLIENT.deliveroo,
|
|
64
|
+
AUTO_INTEGRATION_CLIENT.external
|
|
65
|
+
]
|
|
66
|
+
const thSupported = [
|
|
67
|
+
AUTO_INTEGRATION_CLIENT.grabfood,
|
|
68
|
+
AUTO_INTEGRATION_CLIENT.external,
|
|
69
|
+
AUTO_INTEGRATION_CLIENT.lineman
|
|
70
|
+
]
|
|
71
|
+
const pkSupported = [AUTO_INTEGRATION_CLIENT.foodpanda, AUTO_INTEGRATION_CLIENT.external]
|
|
72
|
+
const idSupported = [
|
|
73
|
+
AUTO_INTEGRATION_CLIENT.grabfood,
|
|
74
|
+
AUTO_INTEGRATION_CLIENT.gofood,
|
|
75
|
+
AUTO_INTEGRATION_CLIENT.external
|
|
76
|
+
]
|
|
51
77
|
|
|
52
|
-
let supportedPlatforms: AUTO_INTEGRATION_CLIENT[] = []
|
|
78
|
+
let supportedPlatforms: AUTO_INTEGRATION_CLIENT[] = []
|
|
53
79
|
switch (country) {
|
|
54
80
|
case F_COUNTRY.enum.MY:
|
|
55
81
|
supportedPlatforms = mySupported
|
|
56
|
-
break
|
|
82
|
+
break
|
|
57
83
|
case F_COUNTRY.enum.SG:
|
|
58
84
|
supportedPlatforms = sgSupported
|
|
59
|
-
break
|
|
85
|
+
break
|
|
60
86
|
case F_COUNTRY.enum.TH:
|
|
61
87
|
supportedPlatforms = thSupported
|
|
62
|
-
break
|
|
88
|
+
break
|
|
63
89
|
case F_COUNTRY.enum.PK:
|
|
64
90
|
supportedPlatforms = pkSupported
|
|
65
|
-
break
|
|
91
|
+
break
|
|
66
92
|
case F_COUNTRY.enum.ID:
|
|
67
93
|
supportedPlatforms = idSupported
|
|
68
|
-
break
|
|
94
|
+
break
|
|
69
95
|
default:
|
|
70
|
-
break
|
|
96
|
+
break
|
|
71
97
|
}
|
|
72
98
|
|
|
73
99
|
return supportedPlatforms.includes(platform)
|
|
74
100
|
}
|
|
75
101
|
|
|
76
|
-
return {
|
|
77
|
-
|
|
102
|
+
return {
|
|
103
|
+
getLinkedDeliveryDoc,
|
|
104
|
+
filterLocalDeliveryCompanies,
|
|
105
|
+
getPaymentType,
|
|
106
|
+
equalKey,
|
|
107
|
+
isIntegratedPlatformSupported
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -9,8 +9,9 @@ import type {
|
|
|
9
9
|
FdoOfflinePaymentMethod,
|
|
10
10
|
FdoRestaurantInHouseDelivery
|
|
11
11
|
} from '@feedmepos/core/entity'
|
|
12
|
+
import type { OrderInhouseDeliverySettingsDto } from '@entity'
|
|
12
13
|
import { F_FEATURE } from '@feedmepos/core/entity'
|
|
13
|
-
import { FdoProductTaxSetting } from '@feedmepos/
|
|
14
|
+
import { FdoProductTaxSetting } from '@feedmepos/entity'
|
|
14
15
|
import { computed, reactive, watch, type PropType } from 'vue'
|
|
15
16
|
import Preorder from '../../pickup/Preorder.vue'
|
|
16
17
|
import DeliveryTime from './DeliveryTime.vue'
|
|
@@ -73,9 +74,24 @@ const props = defineProps({
|
|
|
73
74
|
address: {
|
|
74
75
|
type: Object as PropType<Address | undefined>,
|
|
75
76
|
required: true
|
|
77
|
+
},
|
|
78
|
+
// Bill auto-close / receipt-print preferences live on
|
|
79
|
+
// `orderSetting.inhouseDeliverySettings`, a separate doc from the
|
|
80
|
+
// restaurant-level in-house delivery setting bound to `inhouse` below.
|
|
81
|
+
orderInhouseDeliverySettings: {
|
|
82
|
+
type: Object as PropType<OrderInhouseDeliverySettingsDto>,
|
|
83
|
+
default: () => ({})
|
|
76
84
|
}
|
|
77
85
|
})
|
|
78
86
|
|
|
87
|
+
function updateAutoCloseBill(autoCloseBill: boolean) {
|
|
88
|
+
emits('update:order-settings', { ...props.orderInhouseDeliverySettings, autoCloseBill })
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function updatePrintReceiptAfterClose(printReceiptAfterClose: boolean) {
|
|
92
|
+
emits('update:order-settings', { ...props.orderInhouseDeliverySettings, printReceiptAfterClose })
|
|
93
|
+
}
|
|
94
|
+
|
|
79
95
|
const inhouse = reactive<InhouseDialogData>(
|
|
80
96
|
props.initialValue
|
|
81
97
|
? clone(props.initialValue)
|
|
@@ -161,6 +177,7 @@ function updateTaxInclusive(taxOption: TaxOption): void {
|
|
|
161
177
|
|
|
162
178
|
const emits = defineEmits<{
|
|
163
179
|
(event: 'update:model-value', v: FdoRestaurantInHouseDelivery): void
|
|
180
|
+
(event: 'update:order-settings', v: OrderInhouseDeliverySettingsDto): void
|
|
164
181
|
}>()
|
|
165
182
|
|
|
166
183
|
function emitUpdatedValue() {
|
|
@@ -252,6 +269,28 @@ const actualDeliveryTime = computed({
|
|
|
252
269
|
/>
|
|
253
270
|
</div>
|
|
254
271
|
|
|
272
|
+
<div class="mb-5">
|
|
273
|
+
<FmSwitch
|
|
274
|
+
:model-value="orderInhouseDeliverySettings.autoCloseBill ?? false"
|
|
275
|
+
value="autoCloseBill"
|
|
276
|
+
:label="t('order.autoCloseBill')"
|
|
277
|
+
:sublabel="t('order.autoCloseBillSublabel')"
|
|
278
|
+
label-placement="right"
|
|
279
|
+
@update:model-value="updateAutoCloseBill"
|
|
280
|
+
/>
|
|
281
|
+
</div>
|
|
282
|
+
|
|
283
|
+
<div class="mb-5">
|
|
284
|
+
<FmSwitch
|
|
285
|
+
:model-value="orderInhouseDeliverySettings.printReceiptAfterClose ?? false"
|
|
286
|
+
value="printReceiptAfterClose"
|
|
287
|
+
:label="t('order.printReceiptAfterClose')"
|
|
288
|
+
:sublabel="t('order.printReceiptAfterCloseSublabel')"
|
|
289
|
+
label-placement="right"
|
|
290
|
+
@update:model-value="updatePrintReceiptAfterClose"
|
|
291
|
+
/>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
255
294
|
<div class="mb-5">
|
|
256
295
|
<FmSelect
|
|
257
296
|
:model-value="inhouse.catalogId"
|
|
@@ -78,7 +78,7 @@ async function syncMenu() {
|
|
|
78
78
|
const restaurantId = currentRestaurant.value?._id ?? ''
|
|
79
79
|
await startAsyncCallWithErr(async () => {
|
|
80
80
|
try {
|
|
81
|
-
const res = await remoteOrderApi.integratedDelivery.
|
|
81
|
+
const res = await remoteOrderApi.integratedDelivery.syncDeliverooMenu(restaurantId)
|
|
82
82
|
const temp = {
|
|
83
83
|
...modelValue.value.auto,
|
|
84
84
|
lastSynchronize: res?.lastSynchronize || modelValue.value.auto.lastSynchronize
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, type PropType, reactive } from 'vue'
|
|
3
3
|
|
|
4
|
-
import type
|
|
4
|
+
import { F_COUNTRY, type FdoLinkedDelivery } from '@feedmepos/core/entity'
|
|
5
5
|
import { FdoGrabfoodSettings } from '@entity'
|
|
6
6
|
import type { DeliveryCompany } from '../delivery'
|
|
7
7
|
import type { IntegratedDeliverySettingData } from './IntegratedDelivery.vue'
|
|
@@ -16,6 +16,12 @@ export interface GrabfoodDeliveryData {
|
|
|
16
16
|
integrated: FdoGrabfoodSettings
|
|
17
17
|
}
|
|
18
18
|
const { t } = useI18n()
|
|
19
|
+
const GRABFOOD_LEARN_MORE_URL_DEFAULT =
|
|
20
|
+
'https://scribehow.com/o/5CPW6fuHTOe954ExNOUUvw/viewer/How_To_Activate_GrabFood_Auto_Integration_For_Your_Restaurant__Premium_POS__-pyKp4jcTKGDihKX7pfFWg'
|
|
21
|
+
const GRABFOOD_LEARN_MORE_URL_BY_COUNTRY: Partial<Record<F_COUNTRY, string>> = {
|
|
22
|
+
[F_COUNTRY.enum.TH]:
|
|
23
|
+
'https://scribehow.com/o/5CPW6fuHTOe954ExNOUUvw/page/__Grab__FeedMe_POS__kLI64nZATuq4G_v0Z3ziKQ'
|
|
24
|
+
}
|
|
19
25
|
|
|
20
26
|
const props = defineProps({
|
|
21
27
|
initialValue: {
|
|
@@ -41,10 +47,12 @@ const modelValue = computed<IntegratedDeliverySettingData>(() => {
|
|
|
41
47
|
enable: auto.enable,
|
|
42
48
|
integrationId: auto.merchantID,
|
|
43
49
|
autoCloseBill: auto.autoCloseBill || false,
|
|
50
|
+
autoCloseOnDelivered: auto.autoCloseOnDelivered ?? false,
|
|
44
51
|
catalogId: auto?.catalogId || null,
|
|
45
52
|
commissionRate: auto.commissionRate,
|
|
46
53
|
printReceiptAfterClose: auto.printReceiptAfterClose ?? true,
|
|
47
54
|
lastSynchronize: auto.lastSynchronize,
|
|
55
|
+
ignoreDiscount: auto.ignoreDiscount ?? false,
|
|
48
56
|
status: auto.status,
|
|
49
57
|
updatedAt: auto.updatedAt,
|
|
50
58
|
menuSyncError: auto.menuSyncError
|
|
@@ -52,7 +60,11 @@ const modelValue = computed<IntegratedDeliverySettingData>(() => {
|
|
|
52
60
|
}
|
|
53
61
|
})
|
|
54
62
|
|
|
55
|
-
const { currentRestaurant } = useCoreStore()
|
|
63
|
+
const { currentRestaurant, currentCountry } = useCoreStore()
|
|
64
|
+
const learnMoreUrl = computed(() => {
|
|
65
|
+
const country = (currentCountry.value || F_COUNTRY.enum.MY) as F_COUNTRY
|
|
66
|
+
return GRABFOOD_LEARN_MORE_URL_BY_COUNTRY[country] || GRABFOOD_LEARN_MORE_URL_DEFAULT
|
|
67
|
+
})
|
|
56
68
|
|
|
57
69
|
function updateData({ manual, auto }: IntegratedDeliverySettingData) {
|
|
58
70
|
data.manual = manual
|
|
@@ -150,11 +162,7 @@ async function startSelfServeFlow() {
|
|
|
150
162
|
</div>
|
|
151
163
|
<div>
|
|
152
164
|
{{ t('order.selfServeActivation.subTitle') }}
|
|
153
|
-
<a
|
|
154
|
-
href="https://doc.clickup.com/25608366/d/h/rdg5e-52596/7d44e2bd89752e0"
|
|
155
|
-
target="_blank"
|
|
156
|
-
style="color: blue; text-decoration: underline"
|
|
157
|
-
>
|
|
165
|
+
<a :href="learnMoreUrl" target="_blank" style="color: blue; text-decoration: underline">
|
|
158
166
|
{{ t('order.selfServeActivation.learnMore') }}</a
|
|
159
167
|
>.
|
|
160
168
|
</div>
|
|
@@ -17,6 +17,8 @@ export interface AutoIntegrateData {
|
|
|
17
17
|
catalogId: string | null
|
|
18
18
|
autoAccept?: boolean | null
|
|
19
19
|
autoCloseBill: boolean
|
|
20
|
+
autoCloseOnDelivered?: boolean | null
|
|
21
|
+
canRemark?: boolean | null
|
|
20
22
|
commissionRate: number
|
|
21
23
|
lastSynchronize?: string | null
|
|
22
24
|
ignoreDiscount?: boolean
|
|
@@ -48,6 +50,10 @@ const props = defineProps({
|
|
|
48
50
|
alwaysShowMenuSyncError: {
|
|
49
51
|
type: Boolean,
|
|
50
52
|
default: false
|
|
53
|
+
},
|
|
54
|
+
showTestOrderActions: {
|
|
55
|
+
type: Boolean,
|
|
56
|
+
default: true
|
|
51
57
|
}
|
|
52
58
|
})
|
|
53
59
|
|
|
@@ -62,10 +68,15 @@ const menuStore = useMenuStore()
|
|
|
62
68
|
const CoreStore = useCoreStore()
|
|
63
69
|
const taxSystemCode = computed(() => ItemTax.taxSetting().systemCode)
|
|
64
70
|
|
|
65
|
-
// const canEdit = computed(() => CoreStore.sessionUser.value?.role.isAdmin ?? false)
|
|
66
71
|
// For now, allow all users to edit, but added detail logging in backend
|
|
67
72
|
const canEdit = computed(() => true)
|
|
68
73
|
|
|
74
|
+
// FeedMe-internal (staff/admin) only. Merchants/business owners must not edit
|
|
75
|
+
// the platform integration id or place test orders; both gated on this below.
|
|
76
|
+
const isInternal = computed(
|
|
77
|
+
() => (CoreStore.sessionUser.value?.role?.isStaff || CoreStore.sessionUser.value?.role?.isAdmin) ?? false
|
|
78
|
+
)
|
|
79
|
+
|
|
69
80
|
function updateManual(manual: FdoLinkedDelivery | null) {
|
|
70
81
|
emits('update:model-value', {
|
|
71
82
|
...props.modelValue,
|
|
@@ -95,10 +106,11 @@ function getValue<T>(value: InputModel, type: 'string' | 'number'): T {
|
|
|
95
106
|
case 'string':
|
|
96
107
|
result = (value || '').toString()
|
|
97
108
|
break
|
|
98
|
-
case 'number':
|
|
109
|
+
case 'number': {
|
|
99
110
|
const v = Number.parseFloat((value || '').toString())
|
|
100
111
|
result = Number.isNaN(v) ? 0 : v
|
|
101
112
|
break
|
|
113
|
+
}
|
|
102
114
|
}
|
|
103
115
|
return result as unknown as T
|
|
104
116
|
}
|
|
@@ -127,14 +139,23 @@ function updateMenuCatalog(catalogId: string | null) {
|
|
|
127
139
|
type OrderSettingKey =
|
|
128
140
|
| 'autoAcceptOrder'
|
|
129
141
|
| 'autoCloseBill'
|
|
142
|
+
| 'autoCloseOnDelivered'
|
|
130
143
|
| 'ignoreDiscount'
|
|
131
144
|
| 'sstInclusive'
|
|
132
145
|
| 'printReceiptAfterClose'
|
|
133
146
|
const orderSettingValue = computed(() => {
|
|
134
|
-
const {
|
|
135
|
-
|
|
147
|
+
const {
|
|
148
|
+
autoAccept,
|
|
149
|
+
autoCloseBill,
|
|
150
|
+
autoCloseOnDelivered,
|
|
151
|
+
ignoreDiscount,
|
|
152
|
+
sstInclusive,
|
|
153
|
+
printReceiptAfterClose
|
|
154
|
+
} = props.modelValue.auto
|
|
136
155
|
const value: OrderSettingKey[] = []
|
|
156
|
+
if (autoAccept !== undefined && autoAccept) value.push('autoAcceptOrder')
|
|
137
157
|
if (autoCloseBill) value.push('autoCloseBill')
|
|
158
|
+
if (autoCloseOnDelivered) value.push('autoCloseOnDelivered')
|
|
138
159
|
if (ignoreDiscount) value.push('ignoreDiscount')
|
|
139
160
|
if (sstInclusive) value.push('sstInclusive')
|
|
140
161
|
if (printReceiptAfterClose) value.push('printReceiptAfterClose')
|
|
@@ -151,6 +172,10 @@ const orderSettingOptions = computed<
|
|
|
151
172
|
label: string
|
|
152
173
|
value: OrderSettingKey
|
|
153
174
|
}[] = [
|
|
175
|
+
{
|
|
176
|
+
label: t('order.allowedAutoAcceptOrder'),
|
|
177
|
+
value: 'autoAcceptOrder'
|
|
178
|
+
},
|
|
154
179
|
{
|
|
155
180
|
label: t('order.allowedAutoCloseBill'),
|
|
156
181
|
value: 'autoCloseBill'
|
|
@@ -160,7 +185,10 @@ const orderSettingOptions = computed<
|
|
|
160
185
|
value: 'printReceiptAfterClose'
|
|
161
186
|
}
|
|
162
187
|
]
|
|
163
|
-
if (props.modelValue.auto.autoAccept
|
|
188
|
+
if (props.modelValue.auto.autoAccept === undefined) {
|
|
189
|
+
options.splice(0, 1)
|
|
190
|
+
}
|
|
191
|
+
if (props.modelValue.auto.ignoreDiscount !== undefined) {
|
|
164
192
|
options.push({
|
|
165
193
|
label: t('order.ignoreDiscount'),
|
|
166
194
|
value: 'ignoreDiscount'
|
|
@@ -172,14 +200,27 @@ const orderSettingOptions = computed<
|
|
|
172
200
|
value: 'sstInclusive'
|
|
173
201
|
})
|
|
174
202
|
}
|
|
203
|
+
// GrabFood/ShopeeFood only — presence-gated like the options above so it
|
|
204
|
+
// doesn't render for platforms whose mapper never sets the field.
|
|
205
|
+
if (props.modelValue.auto.autoCloseOnDelivered !== undefined) {
|
|
206
|
+
options.push({
|
|
207
|
+
label: t('order.allowedAutoCloseOnDelivered'),
|
|
208
|
+
value: 'autoCloseOnDelivered'
|
|
209
|
+
})
|
|
210
|
+
}
|
|
175
211
|
return options
|
|
176
212
|
})
|
|
177
213
|
|
|
178
214
|
function updateOrderSettings(orderSettingKeys: OrderSettingKey[]) {
|
|
179
215
|
updateAuto((oldV) => ({
|
|
180
216
|
...oldV,
|
|
181
|
-
autoAccept:
|
|
217
|
+
autoAccept:
|
|
218
|
+
oldV.autoAccept === undefined ? undefined : orderSettingKeys.includes('autoAcceptOrder'),
|
|
182
219
|
autoCloseBill: orderSettingKeys.includes('autoCloseBill'),
|
|
220
|
+
autoCloseOnDelivered:
|
|
221
|
+
oldV.autoCloseOnDelivered === undefined
|
|
222
|
+
? undefined
|
|
223
|
+
: orderSettingKeys.includes('autoCloseOnDelivered'),
|
|
183
224
|
printReceiptAfterClose: orderSettingKeys.includes('printReceiptAfterClose'),
|
|
184
225
|
ignoreDiscount: orderSettingKeys.includes('ignoreDiscount'),
|
|
185
226
|
sstInclusive: orderSettingKeys.includes('sstInclusive')
|
|
@@ -228,7 +269,7 @@ const formattedMenuSyncError = computed(() => {
|
|
|
228
269
|
:catalog-options="menuStore.catalogOptions"
|
|
229
270
|
@update:model-value="updateManual"
|
|
230
271
|
/> -->
|
|
231
|
-
<div v-if="canUseAutoDeliveryIntegration === true" class="
|
|
272
|
+
<div v-if="canUseAutoDeliveryIntegration === true" class="my-10">
|
|
232
273
|
<FmSwitch
|
|
233
274
|
:disabled="!canEdit"
|
|
234
275
|
:model-value="modelValue.auto.enable"
|
|
@@ -240,17 +281,17 @@ const formattedMenuSyncError = computed(() => {
|
|
|
240
281
|
<div v-if="modelValue.auto.enable">
|
|
241
282
|
<FmCard variant="outlined" class="mt-10 p-5">
|
|
242
283
|
<FmTextField
|
|
243
|
-
:disabled="!
|
|
284
|
+
:disabled="!isInternal"
|
|
244
285
|
:model-value="modelValue.auto.integrationId"
|
|
245
|
-
:label="t('order.
|
|
286
|
+
:label="t('order.integrationId')"
|
|
246
287
|
@update:model-value="updateIntegrateId"
|
|
247
288
|
/>
|
|
248
|
-
<div
|
|
289
|
+
<div>
|
|
249
290
|
<div class="flex-grow fm-typo-en-title-sm-600 mb-3 mt-7">
|
|
250
291
|
{{ t('order.orderSetting') }}
|
|
251
292
|
</div>
|
|
252
293
|
|
|
253
|
-
<div v-for="(item, index) in orderSettingOptions" :key="index" class="flex flex-col">
|
|
294
|
+
<div v-for="(item, index) in orderSettingOptions" :key="index" class="flex-1 flex-col">
|
|
254
295
|
<FmCheckbox
|
|
255
296
|
:model-value="orderSettingValue"
|
|
256
297
|
:label="item.label"
|
|
@@ -259,6 +300,8 @@ const formattedMenuSyncError = computed(() => {
|
|
|
259
300
|
:disabled="!canEdit"
|
|
260
301
|
/>
|
|
261
302
|
</div>
|
|
303
|
+
|
|
304
|
+
<slot name="order-setting" :editable="!canEdit" />
|
|
262
305
|
</div>
|
|
263
306
|
|
|
264
307
|
<!-- Commision rate not used yet -->
|
|
@@ -272,17 +315,25 @@ const formattedMenuSyncError = computed(() => {
|
|
|
272
315
|
<template #append>%</template>
|
|
273
316
|
</FmTextField>
|
|
274
317
|
</div> -->
|
|
275
|
-
<
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
318
|
+
<slot
|
|
319
|
+
name="sync-menu"
|
|
320
|
+
:editable="!canEdit"
|
|
321
|
+
:catalog-options="menuStore.catalogOptions"
|
|
322
|
+
:catalog-id="modelValue.auto.catalogId"
|
|
323
|
+
:update-catalog="updateMenuCatalog"
|
|
324
|
+
>
|
|
325
|
+
<div class="mb-3">
|
|
326
|
+
<div class="flex-grow fm-typo-en-title-sm-600 mb-3 mt-7">{{ t('order.syncMenu') }}</div>
|
|
327
|
+
<FmSelect
|
|
328
|
+
:placeholder="t('order.selectItem')"
|
|
329
|
+
:model-value="modelValue.auto.catalogId"
|
|
330
|
+
:label="t('order.catalog')"
|
|
331
|
+
:items="menuStore.catalogOptions"
|
|
332
|
+
@update:model-value="updateMenuCatalog"
|
|
333
|
+
:disabled="!canEdit"
|
|
334
|
+
/>
|
|
335
|
+
</div>
|
|
336
|
+
</slot>
|
|
286
337
|
|
|
287
338
|
<div class="text-fm-color-neutral-gray-400 fm-typo-cn-body-md-400 mb-5 mt-5">
|
|
288
339
|
<div class="flex flex-row">
|
|
@@ -290,7 +341,10 @@ const formattedMenuSyncError = computed(() => {
|
|
|
290
341
|
{{ t('order.status') }}: {{ convertStatusI18n(modelValue.auto.status) }}
|
|
291
342
|
</div>
|
|
292
343
|
<FmTooltip
|
|
293
|
-
v-if="
|
|
344
|
+
v-if="
|
|
345
|
+
(modelValue.auto.status === 'FAILED' || alwaysShowMenuSyncError) &&
|
|
346
|
+
formattedMenuSyncError !== null
|
|
347
|
+
"
|
|
294
348
|
:content="formattedMenuSyncError"
|
|
295
349
|
:zIndex="1000"
|
|
296
350
|
>
|
|
@@ -319,7 +373,6 @@ const formattedMenuSyncError = computed(() => {
|
|
|
319
373
|
{{ Day(modelValue.auto.lastSynchronize).format('DD/MM/YYYY hh:mm a') }}
|
|
320
374
|
</div>
|
|
321
375
|
</div>
|
|
322
|
-
|
|
323
376
|
<slot :editable="!canEdit" />
|
|
324
377
|
</FmCard>
|
|
325
378
|
</div>
|
|
@@ -331,8 +384,12 @@ const formattedMenuSyncError = computed(() => {
|
|
|
331
384
|
variant="warning"
|
|
332
385
|
/>
|
|
333
386
|
</div>
|
|
334
|
-
<!--
|
|
335
|
-
|
|
387
|
+
<!-- Test order (mock order → POS) for sales demo / training. FeedMe-internal only
|
|
388
|
+
(isInternal) so merchants can't self-serve mock orders that leave bills to void. -->
|
|
389
|
+
<div
|
|
390
|
+
class="flex flex-row mt-5"
|
|
391
|
+
v-if="canUseAutoDeliveryIntegration === true && isInternal && showTestOrderActions"
|
|
392
|
+
>
|
|
336
393
|
<div class="flex-grow fm-typo-en-title-sm-600 mb-3 mt-5">{{ t('order.createTestOrder') }}</div>
|
|
337
394
|
<FmButton
|
|
338
395
|
variant="primary"
|
|
@@ -347,5 +404,4 @@ const formattedMenuSyncError = computed(() => {
|
|
|
347
404
|
class="m-1"
|
|
348
405
|
/>
|
|
349
406
|
</div>
|
|
350
|
-
-->
|
|
351
407
|
</template>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { computed, type PropType, reactive } from 'vue'
|
|
3
|
+
|
|
4
|
+
import type { FdoLinkedDelivery } from '@feedmepos/core/entity'
|
|
5
|
+
import { type FdoLinemanSettings } from '@entity'
|
|
6
|
+
import type { DeliveryCompany } from '../delivery'
|
|
7
|
+
import type { IntegratedDeliverySettingData } from './IntegratedDelivery.vue'
|
|
8
|
+
import IntegratedDelivery from './IntegratedDelivery.vue'
|
|
9
|
+
import { clone } from '@/helpers/object'
|
|
10
|
+
|
|
11
|
+
export interface LinemanDeliveryData {
|
|
12
|
+
manual: FdoLinkedDelivery | null
|
|
13
|
+
integrated: FdoLinemanSettings
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const props = defineProps({
|
|
17
|
+
initialValue: {
|
|
18
|
+
type: Object as PropType<LinemanDeliveryData>,
|
|
19
|
+
required: true
|
|
20
|
+
},
|
|
21
|
+
company: {
|
|
22
|
+
type: Object as PropType<DeliveryCompany>,
|
|
23
|
+
required: true
|
|
24
|
+
},
|
|
25
|
+
canUseAutoDeliveryIntegration: {
|
|
26
|
+
type: [String, Boolean],
|
|
27
|
+
required: true
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const data = reactive(clone(props.initialValue))
|
|
32
|
+
const modelValue = computed<IntegratedDeliverySettingData>(() => {
|
|
33
|
+
const auto = data.integrated
|
|
34
|
+
return {
|
|
35
|
+
manual: data.manual,
|
|
36
|
+
auto: {
|
|
37
|
+
enable: auto.enable,
|
|
38
|
+
integrationId: auto.partnerID,
|
|
39
|
+
autoCloseBill: auto.autoCloseBill || false,
|
|
40
|
+
catalogId: auto?.catalogId || null,
|
|
41
|
+
commissionRate: 0,
|
|
42
|
+
printReceiptAfterClose: auto.printReceiptAfterClose ?? true
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
function updateData({ manual, auto }: IntegratedDeliverySettingData) {
|
|
48
|
+
data.manual = manual
|
|
49
|
+
data.integrated = {
|
|
50
|
+
...data.integrated,
|
|
51
|
+
enable: auto.enable,
|
|
52
|
+
autoCloseBill: auto.autoCloseBill,
|
|
53
|
+
catalogId: auto.catalogId,
|
|
54
|
+
printReceiptAfterClose: auto.printReceiptAfterClose,
|
|
55
|
+
partnerID: auto.integrationId
|
|
56
|
+
}
|
|
57
|
+
return { manual: data.manual, integrated: data.integrated }
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const emits = defineEmits<{
|
|
61
|
+
(e: 'update:model-value', payload: { manual: any; auto: any }): void
|
|
62
|
+
}>()
|
|
63
|
+
|
|
64
|
+
function updateDataPass({ manual, auto }: IntegratedDeliverySettingData) {
|
|
65
|
+
const updatedData = updateData({ manual, auto })
|
|
66
|
+
emits('update:model-value', { manual: updatedData.manual, auto: updatedData.integrated })
|
|
67
|
+
}
|
|
68
|
+
</script>
|
|
69
|
+
|
|
70
|
+
<template>
|
|
71
|
+
<IntegratedDelivery
|
|
72
|
+
:model-value="modelValue"
|
|
73
|
+
:company="company"
|
|
74
|
+
:can-use-auto-delivery-integration="canUseAutoDeliveryIntegration"
|
|
75
|
+
:show-menu-sync-actions="false"
|
|
76
|
+
:show-test-order-actions="false"
|
|
77
|
+
@update:model-value="updateDataPass"
|
|
78
|
+
/>
|
|
79
|
+
</template>
|
|
@@ -42,10 +42,12 @@ const modelValue = computed<IntegratedDeliverySettingData>(() => {
|
|
|
42
42
|
enable: auto.enable,
|
|
43
43
|
integrationId: auto.storeID,
|
|
44
44
|
autoCloseBill: auto.autoCloseBill || false,
|
|
45
|
+
autoCloseOnDelivered: auto.autoCloseOnDelivered ?? false,
|
|
45
46
|
catalogId: auto?.catalogId || null,
|
|
46
47
|
printReceiptAfterClose: auto.printReceiptAfterClose ?? true,
|
|
47
48
|
commissionRate: auto.reportConfig?.commissionRate || 0,
|
|
48
49
|
lastSynchronize: auto.lastSynchronize,
|
|
50
|
+
ignoreDiscount: auto.ignoreDiscount ?? false,
|
|
49
51
|
status: auto.status,
|
|
50
52
|
updatedAt: auto.updatedAt,
|
|
51
53
|
menuSyncError: auto.menuSyncError
|