@feedmepos/mf-inventory-portal 1.7.9-dev.0 → 1.7.9
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/App-wSwzHKiz.js +311 -0
- package/dist/{ApprovalView-Bc6xo-gg.js → ApprovalView-DRT6Qd2e.js} +9 -9
- package/dist/{BindingsDialog-BbTkoM05.js → BindingsDialog-CdAUadBI.js} +2 -2
- package/dist/{BindingsPicker-CkK79U9V.js → BindingsPicker-BN_wX0N8.js} +2 -2
- package/dist/{BindingsTable-CmdCc1mG.js → BindingsTable-CK6m-C2K.js} +4 -4
- package/dist/BulkReceiveRequestView-BXs22T-g.js +2584 -0
- package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-YMRGpkS4.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-CFX666Wz.js} +1 -1
- package/dist/{ClosingDraftView-Dec1xuFQ.js → ClosingDraftView-IffpT50J.js} +19 -19
- package/dist/{ClosingHistoryView-DuX0UpLC.js → ClosingHistoryView-DrI5Qo6C.js} +5 -5
- package/dist/{ClosingTemplateView-DBPGxWt2.js → ClosingTemplateView-DilRh_vH.js} +16 -16
- package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DWfblvtV.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-Dzaimy8_.js} +1 -1
- package/dist/{DefaultView-D_XfvHrs.js → DefaultView-DAud5FWQ.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-DfAAAfCJ.js → DeliveryOrderPrintPreview-V-x1xvBl.js} +2 -2
- package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-CdcBrUHW.js → EmailDialog.vue_vue_type_script_setup_true_lang-KUJLmR7a.js} +3432 -3437
- package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-lge1DZ4v.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-BStqqCMn.js} +6 -6
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DjYAwlg9.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BnHM1BX1.js} +2 -2
- package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-vwp2n9KL.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-BPyrxPpe.js} +2 -2
- package/dist/{FmMultiselectDialog-BTVaIESZ.js → FmMultiselectDialog-BniqAG4j.js} +1 -1
- package/dist/{FmMultiselectDialog-C-kDJtv_.js → FmMultiselectDialog-C2PspPWe.js} +2 -2
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-Mo-hF_cA.js → FmUnitInput.vue_vue_type_script_setup_true_lang-Bf3SW_Cs.js} +6 -6
- package/dist/{ImportView-CRAFZVSk.js → ImportView-DWRmu0QT.js} +6 -6
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-CuEDzJ0s.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DY0kkryN.js} +1 -1
- package/dist/{IngredientGroupView-OeeBfJau.js → IngredientGroupView-C6VVdwdq.js} +5 -5
- package/dist/{IngredientsView-BHX3xUDm.js → IngredientsView-DuEBYiLy.js} +16 -16
- package/dist/{IntegrationExplorerView-BwxSGD2N.js → IntegrationExplorerView-DJh7dTAl.js} +4 -4
- package/dist/{IntegrationView-CevJNVqG.js → IntegrationView-DsH2Hs1K.js} +925 -912
- package/dist/{InventoryBindingForm-wE--IP2D.js → InventoryBindingForm-BACENuFH.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-O5IbSGWu.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-BlxNT4bV.js} +5 -5
- package/dist/{InventoryBindingSummary-BQ-U7tHs.js → InventoryBindingSummary-BncS50eD.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-jnXbX2lS.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-LzXw3Flm.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-BNMCbrIo.js → PremiumBadge.vue_vue_type_script_setup_true_lang-Dra4APix.js} +1 -1
- package/dist/{ProductionView-CvU9N_mb.js → ProductionView-CJ6Oi2ae.js} +7 -7
- package/dist/{PublishView-BNnxGtEQ.js → PublishView-30yz5vFX.js} +3 -3
- package/dist/{PurchaseOrderPrintPreview-Bq9kMWdx.js → PurchaseOrderPrintPreview-CclxLcCT.js} +2 -2
- package/dist/{ReceiveRequestView-zUSU0Uvq.js → ReceiveRequestView-DIQeDhuy.js} +14 -14
- package/dist/{RecipeView-DkXOK1Iy.js → RecipeView-D8DyqwP-.js} +90 -90
- package/dist/{SettingsView-CPgsU8Kr.js → SettingsView-Bfp1K782.js} +4 -4
- package/dist/{StockView-D-TJzHhP.js → StockView-BNqzu1Rt.js} +21 -21
- package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-B6ez4H3Z.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DFI2fuD0.js} +1 -1
- package/dist/{SupplierView-D-rODe-B.js → SupplierView-Bnw_eUE1.js} +12 -12
- package/dist/{SurchargeView-C88KTCML.js → SurchargeView-B0VoAU4k.js} +6 -6
- package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-CFIK8eEl.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-Cymvi3zl.js} +2 -2
- package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-BNjjTYtk.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-DBQx6RAo.js} +1 -1
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-E0FeDPFB.js → TransferDetails.vue_vue_type_script_setup_true_lang-BMpUm52g.js} +20 -20
- package/dist/{TransferTemplateView-f9A4-wEL.js → TransferTemplateView-BjfxrwzR.js} +20 -20
- package/dist/{UnitCostHistoryView-D26St5yl.js → UnitCostHistoryView-C3ffDyKS.js} +4 -4
- package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-D2z5vabu.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-VG2ecWER.js} +4 -4
- package/dist/{UnitView-algS_4rD.js → UnitView-BaR_a9Kw.js} +8 -8
- package/dist/{WarehouseView-BRM-euG4.js → WarehouseView-RQjCcteZ.js} +5 -5
- package/dist/{WastageTemplateView-BWPYvTMC.js → WastageTemplateView-D4z8zpwb.js} +14 -14
- package/dist/api/codemax.d.ts +5 -1
- package/dist/api/purchase-order.d.ts +0 -2
- package/dist/{app-BI1fLJ8H.js → app-CyTU8N3H.js} +18885 -19653
- package/dist/app.d.ts +9 -878
- package/dist/app.js +1 -1
- package/dist/{closing-template-DRQ-A04S.js → closing-template-B2tB7sQC.js} +1 -1
- package/dist/{date2-paxg81i_.js → date2-DQH6DhKn.js} +5 -5
- package/dist/{dayjs.min-CqWwbKI1.js → dayjs.min-BOciSc8b.js} +1 -1
- package/dist/{decimal-tY0JrFld.js → decimal-yQvd_IOl.js} +2 -2
- package/dist/{defineDeepModel-CaP78Goh.js → defineDeepModel-DXNMJH2I.js} +1 -1
- package/dist/{duplicate-template-pTXXQ0VS.js → duplicate-template-DO7WYSTm.js} +1 -1
- package/dist/{feature-B2r32qOO.js → feature-v0qFoj-w.js} +2 -2
- package/dist/{format-time-from-id-DXMYus4N.js → format-time-from-id-BuBtGQBF.js} +1 -1
- package/dist/{format-unit-display-5hlsZBY2.js → format-unit-display-sljdJGi2.js} +27 -27
- package/dist/{import-export.helper-BiC2Ghbl.js → import-export.helper-B72QRGIw.js} +6 -6
- package/dist/{index-KP2-U9x_.js → index-BCGkKprE.js} +33 -27
- package/dist/{index-B7eouqPa.js → index-CU4Kuswf.js} +1 -1
- package/dist/{index-rqdAWR69.js → index-TQcHaMrv.js} +1 -1
- package/dist/{inventory-core-dart.default-ClRRaGtG.js → inventory-core-dart.default-BgoK1eTS.js} +1 -1
- package/dist/{lz-string-CAl-OrXa.js → lz-string-BjdS2wyT.js} +1 -1
- package/dist/{netsuite-cH4OybGV.js → netsuite-z7vVdCsZ.js} +2 -2
- package/dist/{number-BzmDQm_s.js → number-CPj4E2k6.js} +3 -3
- package/dist/{predefined-templates-Baz8GEGx.js → predefined-templates-Bhig3JBF.js} +1 -1
- package/dist/{purchase-order-template-0So3c2iS.js → purchase-order-template-CNDfnM86.js} +1 -1
- package/dist/{recalculationUtils-DJlz5mJL.js → recalculationUtils-CQNmwxc2.js} +1 -1
- package/dist/{rules-BKdtla9-.js → rules-9N5HIcET.js} +2 -2
- package/dist/{stock-HCSCwSH0.js → stock-B7QJYZif.js} +3 -3
- package/dist/{stock-D8M5e53w.js → stock-uZA1to9T.js} +1 -1
- package/dist/stores/bulk-job.d.ts +0 -13
- package/dist/style.css +1 -1
- package/dist/{supplier-1mbcQSiQ.js → supplier-B8DQBfvr.js} +2 -2
- package/dist/{surcharge-DuxYBaWV.js → surcharge-DHf5QM_k.js} +8 -8
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{uom-rules-Dkbgtow8.js → uom-rules-IHu3f_dQ.js} +1 -1
- package/dist/{use-ingredient-select-dialog-BXvBvELI.js → use-ingredient-select-dialog-Cd3IeQRi.js} +2 -2
- package/dist/{use-inventory-binding-dialog-2lrzHWdQ.js → use-inventory-binding-dialog-BG0l9YPD.js} +2 -2
- package/dist/{use-template-enabled-locations-CrDuAaCj.js → use-template-enabled-locations-b39RUsFB.js} +2 -2
- package/dist/{use-transfer-locations-C4oTuW_f.js → use-transfer-locations-BPzNKZEi.js} +2 -2
- package/dist/{useHrmPermission-CxeYlUgA.js → useHrmPermission-BpoNpgJ-.js} +1 -1
- package/dist/{useNavigationMenu-BWgwgA4U.js → useNavigationMenu-CaG9YOud.js} +2 -2
- package/dist/{useSseClient-DPA1zg96.js → useSseClient-B2KhM-LZ.js} +1 -1
- package/dist/views/receive-request/components/email-dialog/EmailDialogProps.d.ts +9 -23
- package/dist/{vue-i18n-BSfpVmaF.js → vue-i18n-DgJpgCMa.js} +178 -178
- package/dist/{xlsx.util-DSA9o0Zu.js → xlsx.util-Bkd2A_If.js} +2 -2
- package/package.json +2 -2
- package/dist/App-DvBMEcuJ.js +0 -1155
- package/dist/BulkReceiveRequestView-BOt07CYr.js +0 -2646
- package/dist/api/changelog.d.ts +0 -64
- package/dist/views/changelog/components/ChangelogDialog.vue.d.ts +0 -19
- package/dist/views/changelog/components/ChangelogFloatingButton.vue.d.ts +0 -2
- package/dist/views/changelog/components/ChangelogPanel.vue.d.ts +0 -18
- package/dist/views/changelog/composables/change-path.d.ts +0 -10
- package/dist/views/changelog/composables/commit-message.d.ts +0 -9
- package/dist/views/changelog/composables/commit-message.spec.d.ts +0 -1
- package/dist/views/changelog/composables/json-line-diff.d.ts +0 -10
- package/dist/views/changelog/composables/json-line-diff.spec.d.ts +0 -1
- package/dist/views/changelog/composables/use-changelog.d.ts +0 -36
- package/dist/views/receive-request/components/email-dialog/EmailDialog.spec.d.ts +0 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { defineComponent as W, mergeModels as
|
|
2
|
-
import { _ as
|
|
3
|
-
import { y as
|
|
4
|
-
import { useDialogChild as
|
|
5
|
-
import { _ as
|
|
1
|
+
import { defineComponent as W, mergeModels as gn, useModel as Nt, onMounted as Le, ref as O, computed as z, resolveComponent as L, createElementBlock as V, openBlock as A, createElementVNode as n, createBlock as H, toDisplayString as B, unref as F, createVNode as I, withCtx as M, Fragment as J, renderList as se, normalizeClass as ae, normalizeStyle as Dt, createSlots as Se, createCommentVNode as j, withModifiers as yn, reactive as it, watch as _e, isRef as Fe, h as N, Teleport as Te, createTextVNode as le, watchEffect as bn, withDirectives as ot, vShow as st, onUnmounted as xn } from "vue";
|
|
2
|
+
import { _ as Lt } from "./empty-placeholder-B0QU467o.js";
|
|
3
|
+
import { y as An, z as hn, c as pe, u as ye, A as In, a as je, N as Ze, B as rt, C as ve, D, w as Ae, E as Tt, G as Rt, s as Ye } from "./app-CyTU8N3H.js";
|
|
4
|
+
import { useDialogChild as Mt, useDialog as Re, useProxiedModel as Ee, useSnackbar as ue, useBreakpoints as ut, components as te } from "@feedmepos/ui-library";
|
|
5
|
+
import { _ as Sn } from "./SingleColumnLayout.vue_vue_type_script_setup_true_lang-DwrLsWX_.js";
|
|
6
6
|
import { useI18n as ie, useCoreStore as be } from "@feedmepos/mf-common";
|
|
7
|
-
import { _ as
|
|
8
|
-
import { u as
|
|
9
|
-
import { b as
|
|
10
|
-
import { F as
|
|
11
|
-
import { f as
|
|
12
|
-
import { u as xe, a as
|
|
13
|
-
import { b as
|
|
14
|
-
import { R as
|
|
15
|
-
import { P as
|
|
16
|
-
import { u as
|
|
17
|
-
import { u as
|
|
18
|
-
import { _ as
|
|
19
|
-
import { a as
|
|
20
|
-
import { F as
|
|
21
|
-
import { i as
|
|
22
|
-
import { _ as
|
|
7
|
+
import { _ as wn } from "./FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-BPyrxPpe.js";
|
|
8
|
+
import { u as Cn, a as kn, b as _n, c as Fn, d as En, e as Bn } from "./index-BCGkKprE.js";
|
|
9
|
+
import { b as Vn, d as Nn, s as Dn, r as Ln, c as Ot, u as Ut } from "./xlsx.util-Bkd2A_If.js";
|
|
10
|
+
import { F as dt } from "./FmDroppableField-J0tG_U3w.js";
|
|
11
|
+
import { f as ct, a as mt } from "./date2-DQH6DhKn.js";
|
|
12
|
+
import { u as xe, a as Pe } from "./netsuite-z7vVdCsZ.js";
|
|
13
|
+
import { b as Tn, a as Rn } from "./FmMultiselectDialog-C2PspPWe.js";
|
|
14
|
+
import { R as Mn } from "./rules-9N5HIcET.js";
|
|
15
|
+
import { P as zt, J as jt, D as Pt } from "./app-C39bYJmq.js";
|
|
16
|
+
import { u as On } from "./supplier-B8DQBfvr.js";
|
|
17
|
+
import { u as Qe } from "./vue-i18n-DgJpgCMa.js";
|
|
18
|
+
import { _ as Un, a as zn } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-Bf3SW_Cs.js";
|
|
19
|
+
import { a as jn } from "./number-CPj4E2k6.js";
|
|
20
|
+
import { F as pt } from "./FmAdminBadge-DlplQOHb.js";
|
|
21
|
+
import { i as kt, _ as Pn } from "./FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-BStqqCMn.js";
|
|
22
|
+
import { _ as We } from "./JsonViewer.vue_vue_type_script_setup_true_lang-ig2zSXAB.js";
|
|
23
23
|
import "./dinero-DMLEtkS9.js";
|
|
24
|
-
import { u as
|
|
25
|
-
const
|
|
26
|
-
var
|
|
24
|
+
import { u as $t } from "./feature-v0qFoj-w.js";
|
|
25
|
+
const $n = "data:image/svg+xml,%3csvg%20width='200'%20height='101'%20viewBox='0%200%20200%20101'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M98.9161%2038.4456V24.1772H108.527V27.1988H102.12V30.2202H107.347V32.7382H102.12V38.4456H98.9161Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.382%2031.2276C110.382%2027.5345%20113.249%2024.1772%20117.127%2024.1772C121.174%2024.1772%20123.872%2027.7024%20123.872%2031.3953C123.872%2035.0884%20121.005%2038.6133%20117.127%2038.6133C113.08%2038.4456%20110.382%2034.9204%20110.382%2031.2276ZM117.127%2035.5919C119.487%2035.5919%20120.499%2033.4096%20120.499%2031.2276C120.499%2029.0452%20119.319%2027.0309%20117.127%2027.0309C114.935%2027.0309%20113.754%2029.213%20113.754%2031.2276C113.754%2033.5776%20114.935%2035.5919%20117.127%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M126.232%2031.2276C126.232%2027.5345%20129.099%2024.1772%20132.977%2024.1772C137.024%2024.1772%20139.722%2027.7024%20139.722%2031.3953C139.722%2035.0884%20136.855%2038.6133%20132.977%2038.6133C128.93%2038.4456%20126.232%2034.9204%20126.232%2031.2276ZM132.977%2035.5919C135.337%2035.5919%20136.349%2033.4096%20136.349%2031.2276C136.349%2029.0452%20135.169%2027.0309%20132.977%2027.0309C130.785%2027.0309%20129.604%2029.213%20129.604%2031.2276C129.604%2033.5776%20130.785%2035.5919%20132.977%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M142.926%2038.4455V24.345H148.153C152.874%2024.345%20155.235%2027.5343%20155.235%2031.3952C155.235%2035.5918%20152.368%2038.4455%20148.153%2038.4455H142.926ZM148.153%2027.0308H146.129V35.4238H148.153C150.513%2035.4238%20151.862%2033.5775%20151.862%2031.2272C151.862%2028.8773%20150.513%2027.0308%20148.153%2027.0308Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.045%2057.5607V49.1676L107.009%2055.2107H105.324L102.12%2049.1676V57.5607H98.9161V43.4604H102.457L106.167%2050.8465L109.876%2043.4604H113.417V57.5607H110.045Z'%20fill='%235D5359'/%3e%3cpath%20d='M115.947%2057.5607L121.342%2043.4604H124.04L129.436%2057.5607H125.895L124.715%2054.3716H120.331L119.319%2057.5607H115.947ZM122.691%2046.9856L121.005%2052.1893H124.378L122.691%2046.9856Z'%20fill='%235D5359'/%3e%3cpath%20d='M131.965%2057.5607V43.4604H138.373C141.07%2043.4604%20142.925%2045.8105%20142.925%2048.1605C142.925%2049.8393%20142.082%2051.5179%20140.565%2052.1893L143.768%2057.393H140.059L137.192%2052.8607H135V57.393H131.965V57.5607ZM135.169%2050.175H138.204C139.047%2050.175%20139.553%2049.3356%20139.553%2048.1605C139.553%2046.9856%20138.71%2046.3142%20138.035%2046.3142H135.169V50.175Z'%20fill='%235D5359'/%3e%3cpath%20d='M146.635%2057.5607V43.4604H150.007V49.8393L155.403%2043.4604H158.776L153.548%2049.6713L159.281%2057.5607H155.74L151.693%2051.5179L150.007%2053.3642V57.5607H146.635Z'%20fill='%235D5359'/%3e%3cpath%20d='M171.422%2054.7073V57.5607H161.474V43.4604H171.253V46.3142H164.677V48.9999H170.242V51.6856H164.677V54.7073H171.422Z'%20fill='%235D5359'/%3e%3cpath%20d='M185.417%2046.3142H181.202V57.5607H177.829V46.3142H173.614V43.4604H185.417V46.3142Z'%20fill='%235D5359'/%3e%3cpath%20d='M111.057%2062.5967V76.6973H107.853V70.9898H102.12V76.6973H98.9161V62.5967H102.12V68.1361H107.853V62.5967H111.057Z'%20fill='%235D5359'/%3e%3cpath%20d='M124.04%2069.815V62.5967H127.244V69.815C127.244%2073.6758%20125.389%2076.865%20121.005%2076.865C116.453%2076.865%20114.766%2073.5078%20114.766%2069.815V62.5967H117.97V69.815C117.97%2071.997%20118.813%2074.0115%20121.005%2074.0115C123.366%2074.0115%20124.04%2071.997%20124.04%2069.815Z'%20fill='%235D5359'/%3e%3cpath%20d='M138.036%2076.6973H131.122V62.5967H139.047C141.071%2062.5967%20142.251%2064.4433%20142.251%2066.2898C142.251%2067.6327%20141.576%2068.9755%20140.228%2069.4793C141.914%2069.9827%20142.926%2071.1578%20142.926%2073.1721C142.757%2075.5221%20140.733%2076.6973%20138.036%2076.6973ZM134.326%2065.4504V68.3041H137.53C138.204%2068.3041%20138.879%2067.8004%20138.879%2066.7933C138.879%2065.7861%20138.373%2065.2827%20137.698%2065.2827H134.326V65.4504ZM138.204%2070.8221H134.494V73.8435H138.204C139.047%2073.8435%20139.722%2073.1721%20139.722%2072.3327C139.553%2071.6613%20138.879%2070.8221%20138.204%2070.8221Z'%20fill='%235D5359'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M73.4753%2051.4994C78.7281%2050.5396%2082.8911%2046.4891%2083.9954%2041.3137L84.1232%2040.7134L83.9445%2040.1256C80.5804%2029.066%2071.9945%2020.2704%2061.0373%2016.5726C57.4%2015.3451%2053.5046%2014.6804%2049.458%2014.6804C45.4112%2014.6804%2041.5158%2015.3451%2037.8784%2016.5726C26.9214%2020.2704%2018.3354%2029.066%2014.9712%2040.1256L14.7924%2040.7134L14.9206%2041.3137C16.0247%2046.4891%2020.1875%2050.5396%2025.4405%2051.4994V58.8839H14.4183C14.6758%2059.9557%2014.9818%2061.0088%2015.3337%2062.0411C20.1553%2076.1811%2033.6083%2086.3619%2049.458%2086.3619C65.3074%2086.3619%2078.7606%2076.1811%2083.5822%2062.0411C83.9342%2061.0088%2084.2399%2059.9557%2084.4974%2058.8839H73.4753V51.4994ZM41.0517%2020.5973V38.5742C41.0517%2043.1931%2044.8155%2046.9371%2049.458%2046.9371C54.1005%2046.9371%2057.8641%2043.1931%2057.8641%2038.5742V20.5973C55.1919%2019.856%2052.3732%2019.4592%2049.458%2019.4592C46.5428%2019.4592%2043.7241%2019.856%2041.0517%2020.5973ZM62.6675%2022.3673V38.5742C62.6675%2043.1931%2066.431%2046.9371%2071.0735%2046.9371C74.9051%2046.9371%2078.1425%2044.3848%2079.1528%2040.8942C76.4672%2032.6902%2070.4379%2025.9824%2062.6675%2022.3673ZM60.2658%2046.1322C57.8753%2049.5094%2053.9255%2051.7159%2049.458%2051.7159C44.9902%2051.7159%2041.0408%2049.5094%2038.65%2046.1322C36.6982%2048.8894%2033.7074%2050.8662%2030.2439%2051.4994V58.8839H68.6718V51.4994C65.2083%2050.8662%2062.2175%2048.8894%2060.2658%2046.1322ZM21.1583%2063.6628C26.1349%2074.2514%2036.9382%2081.5834%2049.458%2081.5834C61.9776%2081.5834%2072.781%2074.2514%2077.7574%2063.6628H21.1583ZM36.2482%2038.5742V22.3673C28.4779%2025.9824%2022.4486%2032.6902%2019.7631%2040.8942C20.7733%2044.3848%2024.0106%2046.9371%2027.8422%2046.9371C32.4847%2046.9371%2036.2482%2043.1931%2036.2482%2038.5742Z'%20fill='%23FFC35D'/%3e%3c/svg%3e";
|
|
26
|
+
var Kt = { exports: {} };
|
|
27
27
|
(function(S, c) {
|
|
28
28
|
(function() {
|
|
29
29
|
var e = {};
|
|
@@ -57,13 +57,13 @@ var jt = { exports: {} };
|
|
|
57
57
|
}));
|
|
58
58
|
};
|
|
59
59
|
})();
|
|
60
|
-
})(
|
|
61
|
-
var
|
|
62
|
-
const
|
|
63
|
-
function
|
|
64
|
-
return
|
|
60
|
+
})(Kt);
|
|
61
|
+
var Kn = Kt.exports;
|
|
62
|
+
const Ht = /* @__PURE__ */ An(Kn);
|
|
63
|
+
function _t(S, c) {
|
|
64
|
+
return Ht.filter(S, c).length > 0;
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function Hn(S, c) {
|
|
67
67
|
if (!S)
|
|
68
68
|
return {
|
|
69
69
|
label: c,
|
|
@@ -75,7 +75,7 @@ function jn(S, c) {
|
|
|
75
75
|
],
|
|
76
76
|
matched: !1
|
|
77
77
|
};
|
|
78
|
-
const [e] =
|
|
78
|
+
const [e] = Ht.filter(S.toLocaleLowerCase(), [c], {
|
|
79
79
|
pre: "|",
|
|
80
80
|
post: "|"
|
|
81
81
|
});
|
|
@@ -96,21 +96,21 @@ function jn(S, c) {
|
|
|
96
96
|
matched: !0
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
|
-
function
|
|
99
|
+
function me(S) {
|
|
100
100
|
return Object.prototype.hasOwnProperty.call(S, "children");
|
|
101
101
|
}
|
|
102
|
-
const
|
|
102
|
+
const qn = { class: "flex flex-col gap-12 h-[350px]" }, Xn = { class: "flex items-center" }, Yn = {
|
|
103
103
|
class: "flex-1",
|
|
104
104
|
"data-cy": "items-selected"
|
|
105
|
-
},
|
|
105
|
+
}, Qn = {
|
|
106
106
|
class: "flex-1",
|
|
107
107
|
"data-cy": "filter-field"
|
|
108
|
-
},
|
|
108
|
+
}, Gn = ["data-cy"], Jn = { class: "flex flex-col" }, Zn = { class: "fm-typo-en-body-md-400" }, Wn = {
|
|
109
109
|
key: 1,
|
|
110
110
|
class: "w-full py-16 text-fm-color-typo-disabled fm-typo-en-body-md-400 text-center"
|
|
111
|
-
},
|
|
111
|
+
}, ft = /* @__PURE__ */ W({
|
|
112
112
|
__name: "FmNestedMultiselectDialog",
|
|
113
|
-
props: /* @__PURE__ */
|
|
113
|
+
props: /* @__PURE__ */ gn({
|
|
114
114
|
modelValue: {}
|
|
115
115
|
}, {
|
|
116
116
|
modelValue: {},
|
|
@@ -118,19 +118,19 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
118
118
|
}),
|
|
119
119
|
emits: ["update:modelValue"],
|
|
120
120
|
setup(S) {
|
|
121
|
-
const c =
|
|
122
|
-
|
|
121
|
+
const c = Nt(S, "modelValue"), e = Mt();
|
|
122
|
+
Le(() => {
|
|
123
123
|
e.emitData(c.value);
|
|
124
124
|
});
|
|
125
125
|
const f = O(""), { t } = ie();
|
|
126
126
|
function u(o) {
|
|
127
|
-
return
|
|
127
|
+
return _t(
|
|
128
128
|
f.value,
|
|
129
129
|
o.sublabel ? [o.label, o.sublabel] : [o.label]
|
|
130
130
|
);
|
|
131
131
|
}
|
|
132
132
|
function l(o) {
|
|
133
|
-
return u(o) ? !0 :
|
|
133
|
+
return u(o) ? !0 : me(o) ? o.children.some(l) : !1;
|
|
134
134
|
}
|
|
135
135
|
function a(o, i) {
|
|
136
136
|
if (!f.value)
|
|
@@ -139,13 +139,13 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
139
139
|
if (typeof w != "number")
|
|
140
140
|
return !1;
|
|
141
141
|
const $ = i[w];
|
|
142
|
-
return
|
|
142
|
+
return _t(
|
|
143
143
|
f.value,
|
|
144
144
|
$.sublabel ? [$.label, $.sublabel] : [$.label]
|
|
145
|
-
) ? !0 : R.length === 0 ? l($) :
|
|
145
|
+
) ? !0 : R.length === 0 ? l($) : me($) ? a(R, $.children) : !1;
|
|
146
146
|
}
|
|
147
147
|
function p(o, i, w = 0, R = !1) {
|
|
148
|
-
if (
|
|
148
|
+
if (me(o) && o.children.length) {
|
|
149
149
|
const { children: $, ...X } = o, U = $.flatMap(
|
|
150
150
|
(P, Y) => p(P, [...i, Y], w + 1, R || o.disabled)
|
|
151
151
|
);
|
|
@@ -174,7 +174,7 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
174
174
|
(o, i) => p(o, [i]).filter((w) => a(w.keys, c.value))
|
|
175
175
|
));
|
|
176
176
|
function m(o) {
|
|
177
|
-
if (
|
|
177
|
+
if (me(o)) {
|
|
178
178
|
if (l(o)) {
|
|
179
179
|
const i = u(o) ? o.children : o.children.filter(l);
|
|
180
180
|
return i.length === 0 ? !1 : i.every(m);
|
|
@@ -188,10 +188,10 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
188
188
|
if (typeof w != "number")
|
|
189
189
|
return !1;
|
|
190
190
|
const $ = i[w];
|
|
191
|
-
return R.length === 0 ? m($ ?? []) :
|
|
191
|
+
return R.length === 0 ? m($ ?? []) : me($) ? v(R, $.children ?? []) : !1;
|
|
192
192
|
}
|
|
193
193
|
function h(o) {
|
|
194
|
-
if (
|
|
194
|
+
if (me(o)) {
|
|
195
195
|
if (l(o)) {
|
|
196
196
|
const i = u(o) ? o.children : o.children.filter(l);
|
|
197
197
|
return i.length === 0 ? !1 : i.some(m) && !i.every(m);
|
|
@@ -205,17 +205,17 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
205
205
|
if (typeof w != "number")
|
|
206
206
|
return !1;
|
|
207
207
|
const $ = i[w];
|
|
208
|
-
return R.length === 0 ? h($ ?? []) :
|
|
208
|
+
return R.length === 0 ? h($ ?? []) : me($) ? g(R, ($ == null ? void 0 : $.children) ?? []) : !1;
|
|
209
209
|
}
|
|
210
210
|
function C(o, i) {
|
|
211
211
|
if (o.disabled)
|
|
212
212
|
return o;
|
|
213
|
-
if (
|
|
213
|
+
if (me(o)) {
|
|
214
214
|
if (l(o)) {
|
|
215
215
|
const w = u(o) ? o.children : o.children.filter(l);
|
|
216
216
|
return {
|
|
217
217
|
...o,
|
|
218
|
-
children: o.children.map((R) => w.find((X) =>
|
|
218
|
+
children: o.children.map((R) => w.find((X) => hn(X.value, R.value)) ? C(R, i) : R)
|
|
219
219
|
};
|
|
220
220
|
}
|
|
221
221
|
return {
|
|
@@ -231,7 +231,7 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
231
231
|
function E(o, i, w) {
|
|
232
232
|
const [R, ...$] = o;
|
|
233
233
|
return typeof R != "number" ? i : $.length === 0 ? i.map((X, U) => R !== U ? X : C(X, w)) : i.map(
|
|
234
|
-
(X, U) => R === U &&
|
|
234
|
+
(X, U) => R === U && me(X) ? {
|
|
235
235
|
...X,
|
|
236
236
|
children: E($, X.children, w)
|
|
237
237
|
} : X
|
|
@@ -258,10 +258,10 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
258
258
|
}
|
|
259
259
|
return (o, i) => {
|
|
260
260
|
const w = L("FmSearch"), R = L("FmCheckbox"), $ = L("FmButton"), X = L("FmListItem"), U = L("FmList");
|
|
261
|
-
return A(), V("div",
|
|
262
|
-
n("div",
|
|
263
|
-
n("div",
|
|
264
|
-
n("div",
|
|
261
|
+
return A(), V("div", qn, [
|
|
262
|
+
n("div", Xn, [
|
|
263
|
+
n("div", Yn, B(F(t)("inventory.formField.itemsSelected", { count: x.value })), 1),
|
|
264
|
+
n("div", Qn, [
|
|
265
265
|
I(w, {
|
|
266
266
|
modelValue: f.value,
|
|
267
267
|
"onUpdate:modelValue": i[0] || (i[0] = (P) => f.value = P),
|
|
@@ -274,9 +274,9 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
274
274
|
class: "flex-1 overflow-y-auto"
|
|
275
275
|
}, {
|
|
276
276
|
default: M(() => [
|
|
277
|
-
(A(!0), V(
|
|
277
|
+
(A(!0), V(J, null, se(y.value, (P) => (A(), V("div", {
|
|
278
278
|
key: P.keys.join(),
|
|
279
|
-
class:
|
|
279
|
+
class: ae([
|
|
280
280
|
"transition-all overflow-y-clip",
|
|
281
281
|
b(P.keys) ? "max-h-0 opacity-0" : "max-h-[50px] opacity-100"
|
|
282
282
|
]),
|
|
@@ -285,7 +285,7 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
285
285
|
I(X, {
|
|
286
286
|
clickable: P.selectable !== !1,
|
|
287
287
|
onClick: () => P.selectable === !1 || P.disabled || d(P.keys, c.value, !v(P.keys, c.value)),
|
|
288
|
-
style:
|
|
288
|
+
style: Dt({
|
|
289
289
|
paddingLeft: `${16 + P.indent * 16}px`,
|
|
290
290
|
paddingTop: "4px",
|
|
291
291
|
paddingBottom: "4px"
|
|
@@ -293,18 +293,18 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
293
293
|
disabled: P.selectable !== !1 && P.disabled
|
|
294
294
|
}, Se({
|
|
295
295
|
default: M(() => [
|
|
296
|
-
n("div",
|
|
297
|
-
n("div",
|
|
298
|
-
(A(!0), V(
|
|
299
|
-
key:
|
|
300
|
-
class:
|
|
296
|
+
n("div", Jn, [
|
|
297
|
+
n("div", Zn, [
|
|
298
|
+
(A(!0), V(J, null, se(F(Hn)(f.value, P.label).segments, (Y, we) => (A(), V("span", {
|
|
299
|
+
key: we,
|
|
300
|
+
class: ae({
|
|
301
301
|
"font-bold": Y.isMatch
|
|
302
302
|
})
|
|
303
303
|
}, B(Y.segment), 3))), 128))
|
|
304
304
|
]),
|
|
305
305
|
P.sublabel ? (A(), V("div", {
|
|
306
306
|
key: 0,
|
|
307
|
-
class:
|
|
307
|
+
class: ae([
|
|
308
308
|
"fm-typo-en-body-sm-400",
|
|
309
309
|
P.disabled ? "" : "text-fm-color-typo-secondary"
|
|
310
310
|
])
|
|
@@ -332,26 +332,26 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
332
332
|
"prepend-icon": s(P.keys) ? "expand_less" : "expand_more",
|
|
333
333
|
size: "md",
|
|
334
334
|
variant: "tertiary",
|
|
335
|
-
onClick:
|
|
335
|
+
onClick: yn(() => r(P.keys), ["stop"])
|
|
336
336
|
}, null, 8, ["prepend-icon", "onClick"])
|
|
337
337
|
]),
|
|
338
338
|
key: "1"
|
|
339
339
|
} : void 0
|
|
340
340
|
]), 1032, ["clickable", "onClick", "style", "disabled"])
|
|
341
|
-
], 10,
|
|
341
|
+
], 10, Gn))), 128))
|
|
342
342
|
]),
|
|
343
343
|
_: 1
|
|
344
|
-
})) : (A(), V("div",
|
|
344
|
+
})) : (A(), V("div", Wn, B(F(t)("inventory.formField.noItemsFound")), 1))
|
|
345
345
|
]);
|
|
346
346
|
};
|
|
347
347
|
}
|
|
348
|
-
}),
|
|
348
|
+
}), eo = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5" }, to = { class: "flex items-center" }, no = { class: "text-lg font-bold flex-grow" }, oo = {
|
|
349
349
|
key: 0,
|
|
350
350
|
class: "table-auto w-full"
|
|
351
|
-
},
|
|
351
|
+
}, so = { class: "text-left" }, ao = { class: "min-w-64" }, lo = { class: "flex flex-col" }, io = { class: "fm-typo-en-body-md-400" }, ro = {
|
|
352
352
|
key: 0,
|
|
353
353
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
354
|
-
},
|
|
354
|
+
}, uo = { class: "w-1" }, co = /* @__PURE__ */ W({
|
|
355
355
|
__name: "ApplyAddon",
|
|
356
356
|
props: {
|
|
357
357
|
groups: {
|
|
@@ -372,7 +372,7 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
372
372
|
},
|
|
373
373
|
emits: ["update:modifiers"],
|
|
374
374
|
setup(S, { emit: c }) {
|
|
375
|
-
const e = S, f = c, t =
|
|
375
|
+
const e = S, f = c, t = Re(), u = z(() => {
|
|
376
376
|
const v = e.groups.flatMap((h) => h.items.map((g) => {
|
|
377
377
|
const C = e.items.find((E) => E._id === g._id);
|
|
378
378
|
return {
|
|
@@ -431,17 +431,17 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
431
431
|
};
|
|
432
432
|
t.open({
|
|
433
433
|
title: "Select Addons",
|
|
434
|
-
contentComponent:
|
|
434
|
+
contentComponent: ft,
|
|
435
435
|
contentComponentProps: h,
|
|
436
436
|
primaryActions: {
|
|
437
437
|
text: "Confirm",
|
|
438
438
|
close: !0
|
|
439
439
|
}
|
|
440
440
|
}).onPrimary((g) => {
|
|
441
|
-
const C =
|
|
441
|
+
const C = pe(e.modifiers);
|
|
442
442
|
let E = [];
|
|
443
443
|
function k(s, r) {
|
|
444
|
-
if (r(s),
|
|
444
|
+
if (r(s), me(s))
|
|
445
445
|
for (let b of s.children)
|
|
446
446
|
k(b, r);
|
|
447
447
|
}
|
|
@@ -450,7 +450,7 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
450
450
|
var o;
|
|
451
451
|
if (e.groups.find(({ _id: i }) => i === r.value)) return;
|
|
452
452
|
const x = l.value.find(({ selection: i }) => i === r.value), d = E.find(({ selection: i }) => r.value === i);
|
|
453
|
-
!
|
|
453
|
+
!me(r) && r.active && d === void 0 && E.push({
|
|
454
454
|
addonGroupId: (x == null ? void 0 : x.groupId) ?? "",
|
|
455
455
|
selection: r.value,
|
|
456
456
|
code: ((o = C.find(({ selection: i }) => r.value === i)) == null ? void 0 : o.code) ?? ""
|
|
@@ -462,9 +462,9 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
462
462
|
const { t: m } = ie();
|
|
463
463
|
return (v, h) => {
|
|
464
464
|
const g = L("FmButton"), C = L("FmTextField");
|
|
465
|
-
return A(), V("div",
|
|
466
|
-
n("div",
|
|
467
|
-
n("div",
|
|
465
|
+
return A(), V("div", eo, [
|
|
466
|
+
n("div", to, [
|
|
467
|
+
n("div", no, B(F(m)("inventory.integration.apply.addons")), 1),
|
|
468
468
|
I(g, {
|
|
469
469
|
type: "button",
|
|
470
470
|
variant: "plain",
|
|
@@ -475,19 +475,19 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
475
475
|
}, null, 8, ["label"])
|
|
476
476
|
]),
|
|
477
477
|
n("div", null, [
|
|
478
|
-
u.value.length > 0 ? (A(), V("table",
|
|
479
|
-
n("tr",
|
|
480
|
-
n("th",
|
|
478
|
+
u.value.length > 0 ? (A(), V("table", oo, [
|
|
479
|
+
n("tr", so, [
|
|
480
|
+
n("th", ao, B(F(m)("inventory.integration.apply.name")), 1),
|
|
481
481
|
n("th", null, B(F(m)("inventory.integration.apply.code")), 1),
|
|
482
482
|
h[1] || (h[1] = n("th", { class: "w-1" }, " ", -1))
|
|
483
483
|
]),
|
|
484
|
-
(A(!0), V(
|
|
484
|
+
(A(!0), V(J, null, se(u.value, (E, k) => (A(), V(J, { key: k }, [
|
|
485
485
|
h[2] || (h[2] = n("tr", { class: "block h-8" }, null, -1)),
|
|
486
486
|
n("tr", null, [
|
|
487
487
|
n("td", null, [
|
|
488
|
-
n("div",
|
|
489
|
-
n("div",
|
|
490
|
-
E.groupName ? (A(), V("div",
|
|
488
|
+
n("div", lo, [
|
|
489
|
+
n("div", io, B(E.name), 1),
|
|
490
|
+
E.groupName ? (A(), V("div", ro, B(E.groupName), 1)) : j("", !0)
|
|
491
491
|
])
|
|
492
492
|
]),
|
|
493
493
|
n("td", null, [
|
|
@@ -502,7 +502,7 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
502
502
|
]
|
|
503
503
|
}, null, 8, ["disabled", "model-value", "onUpdate:modelValue", "rules"])
|
|
504
504
|
]),
|
|
505
|
-
n("td",
|
|
505
|
+
n("td", uo, [
|
|
506
506
|
I(g, {
|
|
507
507
|
disabled: S.loading,
|
|
508
508
|
type: "button",
|
|
@@ -521,14 +521,14 @@ const Pn = { class: "flex flex-col gap-12 h-[350px]" }, $n = { class: "flex item
|
|
|
521
521
|
};
|
|
522
522
|
}
|
|
523
523
|
});
|
|
524
|
-
function
|
|
524
|
+
function vt(S, c = []) {
|
|
525
525
|
const e = c.map((t) => S.find((u) => u._id === t)).filter((t) => !!t);
|
|
526
|
-
return
|
|
526
|
+
return mo(e).reduce((t, u) => (t[u.combinationKey] = u.selectionName.join(", "), t), {});
|
|
527
527
|
}
|
|
528
|
-
function
|
|
528
|
+
function qt(S, c, e) {
|
|
529
529
|
const f = e.reduce((u, l) => {
|
|
530
530
|
var m, v, h;
|
|
531
|
-
const a = l.category || "", p =
|
|
531
|
+
const a = l.category || "", p = vt(c, (m = l.variant) == null ? void 0 : m.variantGroupIds), y = {
|
|
532
532
|
...l,
|
|
533
533
|
codeName: [l.code, l.name].filter((g) => !!g).join(" "),
|
|
534
534
|
variant: {
|
|
@@ -554,13 +554,13 @@ function $t(S, c, e) {
|
|
|
554
554
|
items: f[u._id || ""] || []
|
|
555
555
|
}));
|
|
556
556
|
}
|
|
557
|
-
function
|
|
557
|
+
function Xt(S, c) {
|
|
558
558
|
if (S.length == 1)
|
|
559
559
|
return S[0];
|
|
560
|
-
const e = S[0], f = S.slice(1, S.length), t =
|
|
560
|
+
const e = S[0], f = S.slice(1, S.length), t = Xt(f, c);
|
|
561
561
|
return e.reduce((l, a) => [...l, ...t.map((p) => c(a, p))], new Array());
|
|
562
562
|
}
|
|
563
|
-
function
|
|
563
|
+
function mo(S) {
|
|
564
564
|
if (S.length === 0) return [];
|
|
565
565
|
const c = S.map(
|
|
566
566
|
(f) => (f.options ?? []).map(
|
|
@@ -570,7 +570,7 @@ function io(S) {
|
|
|
570
570
|
})
|
|
571
571
|
)
|
|
572
572
|
);
|
|
573
|
-
return
|
|
573
|
+
return Xt(c, (f, t) => ({
|
|
574
574
|
combinationKey: [...f.combinationKey, ...t.combinationKey],
|
|
575
575
|
selectionName: [...f.selectionName, ...t.selectionName]
|
|
576
576
|
})).map((f) => {
|
|
@@ -582,13 +582,13 @@ function io(S) {
|
|
|
582
582
|
};
|
|
583
583
|
});
|
|
584
584
|
}
|
|
585
|
-
const
|
|
585
|
+
const po = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5 mb-3" }, fo = { class: "flex items-center" }, vo = { class: "text-lg font-bold flex-grow" }, go = {
|
|
586
586
|
key: 0,
|
|
587
587
|
class: "table-auto w-full"
|
|
588
|
-
},
|
|
588
|
+
}, yo = { class: "text-left" }, bo = { class: "min-w-64" }, xo = { class: "flex flex-col" }, Ao = { class: "fm-typo-en-body-md-400" }, ho = {
|
|
589
589
|
key: 0,
|
|
590
590
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
591
|
-
},
|
|
591
|
+
}, Io = { class: "w-1" }, at = /* @__PURE__ */ W({
|
|
592
592
|
__name: "ApplyProduct",
|
|
593
593
|
props: {
|
|
594
594
|
isAddon: {
|
|
@@ -614,8 +614,8 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
614
614
|
},
|
|
615
615
|
emits: ["update:bindings"],
|
|
616
616
|
setup(S, { emit: c }) {
|
|
617
|
-
const e = S, f = c, t =
|
|
618
|
-
() =>
|
|
617
|
+
const e = S, f = c, t = Re(), u = z(() => e.isAddon ? "Addons" : "Products"), l = z(() => e.isAddon ? [] : e.categories), a = z(
|
|
618
|
+
() => qt(l.value, e.variants, e.menus)
|
|
619
619
|
), p = z(() => {
|
|
620
620
|
if (e.isAddon)
|
|
621
621
|
return e.bindings.map((r) => {
|
|
@@ -716,10 +716,10 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
716
716
|
}));
|
|
717
717
|
}
|
|
718
718
|
function g(s) {
|
|
719
|
-
const r =
|
|
719
|
+
const r = pe(e.bindings);
|
|
720
720
|
return s.flatMap((b) => b.children.flatMap((x) => {
|
|
721
721
|
var o;
|
|
722
|
-
if (
|
|
722
|
+
if (me(x))
|
|
723
723
|
return x.children.filter((i) => i.active).map((i) => {
|
|
724
724
|
var $, X;
|
|
725
725
|
const { productId: w, combinationKey: R } = i.value;
|
|
@@ -746,7 +746,7 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
746
746
|
}));
|
|
747
747
|
}
|
|
748
748
|
function C(s) {
|
|
749
|
-
const r =
|
|
749
|
+
const r = pe(e.bindings);
|
|
750
750
|
return s.filter((b) => b.active).map(
|
|
751
751
|
(b) => {
|
|
752
752
|
var x;
|
|
@@ -765,7 +765,7 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
765
765
|
};
|
|
766
766
|
t.open({
|
|
767
767
|
title: `Select ${u.value}`,
|
|
768
|
-
contentComponent:
|
|
768
|
+
contentComponent: ft,
|
|
769
769
|
contentComponentProps: r,
|
|
770
770
|
primaryActions: {
|
|
771
771
|
text: "Confirm",
|
|
@@ -779,9 +779,9 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
779
779
|
const { t: k } = ie();
|
|
780
780
|
return (s, r) => {
|
|
781
781
|
const b = L("FmButton"), x = L("FmTextField");
|
|
782
|
-
return A(), V("div",
|
|
783
|
-
n("div",
|
|
784
|
-
n("div",
|
|
782
|
+
return A(), V("div", po, [
|
|
783
|
+
n("div", fo, [
|
|
784
|
+
n("div", vo, B(S.isAddon ? F(k)("inventory.integration.apply.addons") : F(k)("inventory.integration.apply.products")), 1),
|
|
785
785
|
I(b, {
|
|
786
786
|
type: "button",
|
|
787
787
|
variant: "plain",
|
|
@@ -792,22 +792,22 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
792
792
|
}, null, 8, ["label"])
|
|
793
793
|
]),
|
|
794
794
|
n("div", null, [
|
|
795
|
-
p.value.length > 0 ? (A(), V("table",
|
|
795
|
+
p.value.length > 0 ? (A(), V("table", go, [
|
|
796
796
|
n("thead", null, [
|
|
797
|
-
n("tr",
|
|
798
|
-
n("th",
|
|
797
|
+
n("tr", yo, [
|
|
798
|
+
n("th", bo, B(F(k)("inventory.integration.apply.name")), 1),
|
|
799
799
|
n("th", null, B(F(k)("inventory.integration.apply.code")), 1),
|
|
800
800
|
r[1] || (r[1] = n("th", { class: "w-1" }, " ", -1))
|
|
801
801
|
])
|
|
802
802
|
]),
|
|
803
803
|
n("tbody", null, [
|
|
804
|
-
(A(!0), V(
|
|
804
|
+
(A(!0), V(J, null, se(p.value, (d, o) => (A(), V(J, { key: o }, [
|
|
805
805
|
r[2] || (r[2] = n("tr", { class: "block h-8" }, null, -1)),
|
|
806
806
|
n("tr", null, [
|
|
807
807
|
n("td", null, [
|
|
808
|
-
n("div",
|
|
809
|
-
n("div",
|
|
810
|
-
d.variantName ? (A(), V("div",
|
|
808
|
+
n("div", xo, [
|
|
809
|
+
n("div", Ao, B(d.itemCode) + " " + B(d.name), 1),
|
|
810
|
+
d.variantName ? (A(), V("div", ho, B(d.variantName), 1)) : j("", !0)
|
|
811
811
|
])
|
|
812
812
|
]),
|
|
813
813
|
n("td", null, [
|
|
@@ -821,7 +821,7 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
821
821
|
]
|
|
822
822
|
}, null, 8, ["model-value", "onUpdate:modelValue", "rules"])
|
|
823
823
|
]),
|
|
824
|
-
n("td",
|
|
824
|
+
n("td", Io, [
|
|
825
825
|
I(b, {
|
|
826
826
|
type: "button",
|
|
827
827
|
variant: "tertiary",
|
|
@@ -839,7 +839,7 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
839
839
|
]);
|
|
840
840
|
};
|
|
841
841
|
}
|
|
842
|
-
}),
|
|
842
|
+
}), So = { class: "flex flex-col gap-8 w-full" }, wo = /* @__PURE__ */ W({
|
|
843
843
|
__name: "ApplyProductDialog",
|
|
844
844
|
props: {
|
|
845
845
|
categories: { default: () => [] },
|
|
@@ -852,33 +852,33 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
852
852
|
},
|
|
853
853
|
emits: ["update:setting", "update:show", "submit"],
|
|
854
854
|
setup(S, { emit: c }) {
|
|
855
|
-
const e = S, f = c, t =
|
|
856
|
-
|
|
855
|
+
const e = S, f = c, t = it(pe(e.setting));
|
|
856
|
+
_e([() => e.show], ([m]) => {
|
|
857
857
|
if (m)
|
|
858
858
|
for (const v of Object.keys(e.setting))
|
|
859
859
|
t[v] = e.setting[v];
|
|
860
860
|
});
|
|
861
|
-
const u = O(), l =
|
|
861
|
+
const u = O(), l = Ee(e, "show");
|
|
862
862
|
function a() {
|
|
863
863
|
var m, v;
|
|
864
864
|
(v = (m = u.value) == null ? void 0 : m.validateInputs) == null || v.call(m);
|
|
865
865
|
}
|
|
866
866
|
function p() {
|
|
867
|
-
f("update:setting",
|
|
867
|
+
f("update:setting", pe(t)), f("submit");
|
|
868
868
|
}
|
|
869
869
|
const { t: y } = ie();
|
|
870
870
|
return (m, v) => {
|
|
871
871
|
const h = L("FmChip"), g = L("FmForm"), C = L("FmButton"), E = L("FmSideSheet");
|
|
872
872
|
return A(), H(E, {
|
|
873
873
|
modelValue: F(l),
|
|
874
|
-
"onUpdate:modelValue": v[4] || (v[4] = (k) =>
|
|
874
|
+
"onUpdate:modelValue": v[4] || (v[4] = (k) => Fe(l) ? l.value = k : null),
|
|
875
875
|
header: F(y)("inventory.integration.apply.title"),
|
|
876
876
|
"dismiss-away": "",
|
|
877
877
|
"close-button": "",
|
|
878
878
|
"max-width": 500
|
|
879
879
|
}, {
|
|
880
880
|
default: M(() => [
|
|
881
|
-
n("div",
|
|
881
|
+
n("div", So, [
|
|
882
882
|
n("div", null, [
|
|
883
883
|
I(h, { label: "Menu v3" })
|
|
884
884
|
]),
|
|
@@ -888,14 +888,14 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
888
888
|
onValidationSuccess: v[2] || (v[2] = (k) => p())
|
|
889
889
|
}, {
|
|
890
890
|
default: M(() => [
|
|
891
|
-
I(
|
|
891
|
+
I(at, {
|
|
892
892
|
bindings: t.bindings,
|
|
893
893
|
categories: m.categories,
|
|
894
894
|
variants: m.variants,
|
|
895
895
|
menus: m.menus,
|
|
896
896
|
"onUpdate:bindings": v[0] || (v[0] = (k) => t.bindings = k)
|
|
897
897
|
}, null, 8, ["bindings", "categories", "variants", "menus"]),
|
|
898
|
-
I(
|
|
898
|
+
I(co, {
|
|
899
899
|
form: u.value,
|
|
900
900
|
modifiers: t.modifiers ?? [],
|
|
901
901
|
groups: m.groups ?? [],
|
|
@@ -919,7 +919,7 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
919
919
|
}, 8, ["modelValue", "header"]);
|
|
920
920
|
};
|
|
921
921
|
}
|
|
922
|
-
}),
|
|
922
|
+
}), Co = ["Product ID", "Menu Item Code", "Name", "Category"], ko = ["Variant Name", "Variant Key"], he = {
|
|
923
923
|
productId: ["productid"],
|
|
924
924
|
menuItemCode: ["menuitemcode", "ordercode"],
|
|
925
925
|
// header is now "Name"; keep "menuitemname" for older sheets
|
|
@@ -928,17 +928,17 @@ const ro = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
928
928
|
variantName: ["variantname"],
|
|
929
929
|
variantKey: ["variantkey", "variant", "combinationkey"]
|
|
930
930
|
};
|
|
931
|
-
function
|
|
931
|
+
function Ft(S) {
|
|
932
932
|
return (S ?? "").replace(/^\uFEFF/, "").toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
933
933
|
}
|
|
934
|
-
function
|
|
934
|
+
function lt(S) {
|
|
935
935
|
return (S ?? "").replace(/^\uFEFF/, "").trim().replace(/\s+/g, " ");
|
|
936
936
|
}
|
|
937
|
-
function
|
|
937
|
+
function Ne(S, c) {
|
|
938
938
|
return `${S}::${c ?? ""}`;
|
|
939
939
|
}
|
|
940
|
-
function
|
|
941
|
-
const e =
|
|
940
|
+
function _o(S, c) {
|
|
941
|
+
const e = Dn(S);
|
|
942
942
|
if (!e.length)
|
|
943
943
|
throw new Error("The file is empty.");
|
|
944
944
|
const f = [
|
|
@@ -946,13 +946,13 @@ function So(S, c) {
|
|
|
946
946
|
...he.menuItemCode,
|
|
947
947
|
...he.menuItemName
|
|
948
948
|
], t = e.findIndex(
|
|
949
|
-
(v) => v.some((h) => f.includes(
|
|
949
|
+
(v) => v.some((h) => f.includes(Ft(h)))
|
|
950
950
|
);
|
|
951
951
|
if (t < 0)
|
|
952
952
|
throw new Error(
|
|
953
953
|
'Missing required headers. Could not find a "Product ID", "Menu Item Code" or "Name" column.'
|
|
954
954
|
);
|
|
955
|
-
const u = e[t].map(
|
|
955
|
+
const u = e[t].map(Ft), l = (v) => u.findIndex((h) => v.includes(h)), a = {
|
|
956
956
|
productId: l(he.productId),
|
|
957
957
|
menuItemCode: l(he.menuItemCode),
|
|
958
958
|
menuItemName: l(he.menuItemName),
|
|
@@ -986,7 +986,7 @@ function So(S, c) {
|
|
|
986
986
|
(v) => v.productId || v.menuItemCode || v.menuItemName || Object.values(v.values).some((h) => h)
|
|
987
987
|
);
|
|
988
988
|
}
|
|
989
|
-
function
|
|
989
|
+
function Fo(S, c = []) {
|
|
990
990
|
var a, p;
|
|
991
991
|
const e = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), u = (y, m, v) => {
|
|
992
992
|
const h = y.get(m) ?? [];
|
|
@@ -996,7 +996,7 @@ function wo(S, c = []) {
|
|
|
996
996
|
v && u(f, v, m);
|
|
997
997
|
};
|
|
998
998
|
for (const y of S) {
|
|
999
|
-
const m = !y.category, v = ((a = y.variant) == null ? void 0 : a.variantCombinations) ?? [], h =
|
|
999
|
+
const m = !y.category, v = ((a = y.variant) == null ? void 0 : a.variantCombinations) ?? [], h = vt(c, (p = y.variant) == null ? void 0 : p.variantGroupIds), g = /* @__PURE__ */ new Set(), C = /* @__PURE__ */ new Map();
|
|
1000
1000
|
for (const s of v) {
|
|
1001
1001
|
const r = s.combinationKey ?? "";
|
|
1002
1002
|
r && (g.add(r), C.set(r, (s.name || h[r] || "").trim()));
|
|
@@ -1009,17 +1009,17 @@ function wo(S, c = []) {
|
|
|
1009
1009
|
combinationNames: C
|
|
1010
1010
|
};
|
|
1011
1011
|
e.set(y._id, E), l(y.code, E);
|
|
1012
|
-
const k =
|
|
1012
|
+
const k = lt(y.name);
|
|
1013
1013
|
k && u(t, k, E);
|
|
1014
1014
|
}
|
|
1015
1015
|
return { byProductId: e, byCode: f, byName: t };
|
|
1016
1016
|
}
|
|
1017
|
-
function
|
|
1018
|
-
const t = (m) => m.productId || m.menuItemCode ||
|
|
1017
|
+
function Eo(S, c, e, f) {
|
|
1018
|
+
const t = (m) => m.productId || m.menuItemCode || lt(m.menuItemName), u = (m) => `${t(m)}::${m.variantKey}`, l = /* @__PURE__ */ new Map();
|
|
1019
1019
|
for (const m of S)
|
|
1020
1020
|
t(m) && l.set(u(m), (l.get(u(m)) ?? 0) + 1);
|
|
1021
1021
|
const a = new Set(
|
|
1022
|
-
e.map((m) =>
|
|
1022
|
+
e.map((m) => Ne(m.productId, m.combinationKey))
|
|
1023
1023
|
), p = f.valueColumns.filter((m) => m.required);
|
|
1024
1024
|
return { invalidExcel: !1, rows: S.map((m, v) => {
|
|
1025
1025
|
var i, w;
|
|
@@ -1047,7 +1047,7 @@ function Co(S, c, e, f) {
|
|
|
1047
1047
|
if (m.productId) {
|
|
1048
1048
|
const R = c.byProductId.get(m.productId);
|
|
1049
1049
|
g = R ? [R] : [], C = `Product ID "${m.productId}"`;
|
|
1050
|
-
} else m.menuItemCode ? (g = c.byCode.get(m.menuItemCode) ?? [], C = `code "${m.menuItemCode}"`) : (g = c.byName.get(
|
|
1050
|
+
} else m.menuItemCode ? (g = c.byCode.get(m.menuItemCode) ?? [], C = `code "${m.menuItemCode}"`) : (g = c.byName.get(lt(m.menuItemName)) ?? [], C = `name "${m.menuItemName}"`);
|
|
1051
1051
|
if (g.length === 0)
|
|
1052
1052
|
return { ...h, status: "NOT_FOUND", errors: [`No menu item found for ${C}.`] };
|
|
1053
1053
|
let E, k;
|
|
@@ -1080,25 +1080,25 @@ function Co(S, c, e, f) {
|
|
|
1080
1080
|
productId: s.productId,
|
|
1081
1081
|
combinationKey: E,
|
|
1082
1082
|
values: m.values
|
|
1083
|
-
}), o = a.has(
|
|
1083
|
+
}), o = a.has(Ne(s.productId, E)) ? "OVERRIDE" : "NEW";
|
|
1084
1084
|
return { ...h, status: o, binding: d, ...b };
|
|
1085
1085
|
}) };
|
|
1086
1086
|
}
|
|
1087
|
-
function
|
|
1087
|
+
function Bo(S, c, e, f, t) {
|
|
1088
1088
|
let u;
|
|
1089
1089
|
try {
|
|
1090
|
-
u =
|
|
1090
|
+
u = _o(S, t);
|
|
1091
1091
|
} catch (l) {
|
|
1092
1092
|
return { invalidExcel: !0, invalidExcelMessage: (l == null ? void 0 : l.message) ?? "Invalid file.", rows: [] };
|
|
1093
1093
|
}
|
|
1094
|
-
return
|
|
1094
|
+
return Eo(u, Fo(c, f), e, t);
|
|
1095
1095
|
}
|
|
1096
|
-
function
|
|
1096
|
+
function ze(S) {
|
|
1097
1097
|
return S.rows.filter(
|
|
1098
1098
|
(c) => (c.status === "NEW" || c.status === "OVERRIDE") && !c.errors.length && !!c.binding
|
|
1099
1099
|
).map((c) => c.binding);
|
|
1100
1100
|
}
|
|
1101
|
-
function
|
|
1101
|
+
function Yt(S) {
|
|
1102
1102
|
const c = (e) => S.rows.filter((f) => f.status === e).length;
|
|
1103
1103
|
return {
|
|
1104
1104
|
new: c("NEW"),
|
|
@@ -1110,23 +1110,23 @@ function Ht(S) {
|
|
|
1110
1110
|
withErrors: S.rows.filter((e) => e.errors.length).length
|
|
1111
1111
|
};
|
|
1112
1112
|
}
|
|
1113
|
-
function
|
|
1114
|
-
const e = new Set(c.map((t) =>
|
|
1115
|
-
return [...S.filter((t) => !e.has(
|
|
1113
|
+
function Qt(S, c) {
|
|
1114
|
+
const e = new Set(c.map((t) => Ne(t.productId, t.combinationKey)));
|
|
1115
|
+
return [...S.filter((t) => !e.has(Ne(t.productId, t.combinationKey))), ...c];
|
|
1116
1116
|
}
|
|
1117
|
-
function
|
|
1118
|
-
return [...
|
|
1117
|
+
function Vo(S) {
|
|
1118
|
+
return [...Co, ...S.valueColumns.map((c) => c.header), ...ko];
|
|
1119
1119
|
}
|
|
1120
|
-
function
|
|
1120
|
+
function No(S, c, e, f, t) {
|
|
1121
1121
|
var v, h;
|
|
1122
1122
|
const u = /* @__PURE__ */ new Map();
|
|
1123
1123
|
for (const g of c)
|
|
1124
1124
|
g._id && u.set(g._id, g.name ?? "");
|
|
1125
1125
|
const l = /* @__PURE__ */ new Map();
|
|
1126
1126
|
for (const g of e)
|
|
1127
|
-
l.set(
|
|
1127
|
+
l.set(Ne(g.productId, g.combinationKey), g);
|
|
1128
1128
|
const a = /* @__PURE__ */ new Set(), p = [], y = (g) => {
|
|
1129
|
-
const C =
|
|
1129
|
+
const C = Ne(g.productId, g.combinationKey);
|
|
1130
1130
|
if (a.has(C)) return;
|
|
1131
1131
|
a.add(C);
|
|
1132
1132
|
const E = l.get(C), k = E ? t.readValues(E) : {};
|
|
@@ -1153,7 +1153,7 @@ function Fo(S, c, e, f, t) {
|
|
|
1153
1153
|
categoryLabel: E,
|
|
1154
1154
|
variantName: ""
|
|
1155
1155
|
});
|
|
1156
|
-
const s =
|
|
1156
|
+
const s = vt(f, (h = g.variant) == null ? void 0 : h.variantGroupIds);
|
|
1157
1157
|
for (const r of k) {
|
|
1158
1158
|
const b = (r.name || s[r.combinationKey ?? ""] || "").trim();
|
|
1159
1159
|
y({
|
|
@@ -1174,18 +1174,18 @@ function Fo(S, c, e, f, t) {
|
|
|
1174
1174
|
variantName: ""
|
|
1175
1175
|
});
|
|
1176
1176
|
}
|
|
1177
|
-
return { rows: [
|
|
1177
|
+
return { rows: [Vo(t), ...p] };
|
|
1178
1178
|
}
|
|
1179
|
-
function
|
|
1180
|
-
const { rows: l } =
|
|
1179
|
+
function Gt(S, c, e, f, t, u) {
|
|
1180
|
+
const { rows: l } = No(S, c, e, f, t), [a, ...p] = l, y = Vn(p, a, `${t.key} Bindings`), m = y.Sheets[y.SheetNames[0]];
|
|
1181
1181
|
delete m["!cols"];
|
|
1182
|
-
const h = `${u ? `${u} ` : ""}${t.key}-bindings-template (${
|
|
1183
|
-
return
|
|
1182
|
+
const h = `${u ? `${u} ` : ""}${t.key}-bindings-template (${ct(/* @__PURE__ */ new Date())}).xlsx`;
|
|
1183
|
+
return Nn(y, h), { filename: h, itemCount: p.length };
|
|
1184
1184
|
}
|
|
1185
|
-
const
|
|
1185
|
+
const Do = { class: "flex flex-col gap-24" }, Lo = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, To = { class: "flex flex-col flex-1 gap-4" }, Ro = { class: "fm-typo-en-body-md-600" }, Mo = {
|
|
1186
1186
|
key: 0,
|
|
1187
1187
|
class: "flex flex-wrap gap-x-16 gap-y-4 fm-typo-en-body-sm-400"
|
|
1188
|
-
},
|
|
1188
|
+
}, Oo = { class: "text-fm-color-system-success-400" }, Uo = { class: "text-fm-color-system-warning-400" }, zo = { class: "text-fm-color-typo-secondary" }, jo = { class: "text-fm-color-typo-secondary" }, Po = { class: "text-fm-color-system-error-300" }, $o = { class: "text-fm-color-system-error-300" }, Jt = /* @__PURE__ */ W({
|
|
1189
1189
|
__name: "ImportBindings",
|
|
1190
1190
|
props: {
|
|
1191
1191
|
config: {
|
|
@@ -1206,19 +1206,19 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1206
1206
|
}
|
|
1207
1207
|
},
|
|
1208
1208
|
setup(S) {
|
|
1209
|
-
const c = S, e =
|
|
1209
|
+
const c = S, e = Mt(), { t: f } = ie(), t = O(null), u = O(!1), l = O(null), a = O(null), p = z(() => a.value ? Yt(a.value) : null), y = z(() => a.value ? ze(a.value).length : 0), m = z(() => !l.value && y.value > 0);
|
|
1210
1210
|
function v() {
|
|
1211
1211
|
e.emitData(m.value ? a.value : null);
|
|
1212
1212
|
}
|
|
1213
1213
|
async function h(g) {
|
|
1214
1214
|
l.value = null, a.value = null, u.value = !0;
|
|
1215
1215
|
try {
|
|
1216
|
-
const C = await
|
|
1216
|
+
const C = await Ln(g), E = C.SheetNames.find((s) => s);
|
|
1217
1217
|
if (!E) {
|
|
1218
1218
|
l.value = "The file has no sheets.", v();
|
|
1219
1219
|
return;
|
|
1220
1220
|
}
|
|
1221
|
-
const k =
|
|
1221
|
+
const k = Bo(
|
|
1222
1222
|
C.Sheets[E],
|
|
1223
1223
|
c.menus,
|
|
1224
1224
|
c.bindings,
|
|
@@ -1236,14 +1236,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1236
1236
|
u.value = !1;
|
|
1237
1237
|
}
|
|
1238
1238
|
}
|
|
1239
|
-
return
|
|
1239
|
+
return _e(t, (g) => {
|
|
1240
1240
|
g && h(g);
|
|
1241
1241
|
}), (g, C) => {
|
|
1242
1242
|
const E = L("FmCircularProgress"), k = L("FmIcon"), s = L("FmButton");
|
|
1243
|
-
return A(), V("div",
|
|
1244
|
-
n("div",
|
|
1245
|
-
I(
|
|
1246
|
-
class:
|
|
1243
|
+
return A(), V("div", Do, [
|
|
1244
|
+
n("div", Lo, B(F(f)("inventory.integration.bindingImport.description")), 1),
|
|
1245
|
+
I(dt, {
|
|
1246
|
+
class: ae({ "w-full": !0, "h-[200px]": !t.value }),
|
|
1247
1247
|
accept: ".xlsx,.xls,.csv",
|
|
1248
1248
|
label: "Drop the Excel/CSV file here",
|
|
1249
1249
|
"button-label": "Select file",
|
|
@@ -1253,7 +1253,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1253
1253
|
name: "default",
|
|
1254
1254
|
fn: M(({ openFileDialog: r }) => [
|
|
1255
1255
|
n("div", {
|
|
1256
|
-
class:
|
|
1256
|
+
class: ae([
|
|
1257
1257
|
"fm-corner-radius-md p-16 flex items-center gap-16",
|
|
1258
1258
|
{
|
|
1259
1259
|
"border border-fm-color-neutral-gray-100": u.value,
|
|
@@ -1272,10 +1272,10 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1272
1272
|
color: l.value ? "system-error-300" : "system-success-400",
|
|
1273
1273
|
size: "lg"
|
|
1274
1274
|
}, null, 8, ["name", "color"])),
|
|
1275
|
-
n("div",
|
|
1276
|
-
n("div",
|
|
1275
|
+
n("div", To, [
|
|
1276
|
+
n("div", Ro, B(t.value.name), 1),
|
|
1277
1277
|
n("div", {
|
|
1278
|
-
class:
|
|
1278
|
+
class: ae([
|
|
1279
1279
|
"fm-typo-en-body-sm-400",
|
|
1280
1280
|
l.value ? "text-fm-color-system-error-300" : "text-fm-color-typo-secondary"
|
|
1281
1281
|
])
|
|
@@ -1293,18 +1293,18 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1293
1293
|
key: "0"
|
|
1294
1294
|
} : void 0
|
|
1295
1295
|
]), 1032, ["class"]),
|
|
1296
|
-
p.value ? (A(), V("div",
|
|
1297
|
-
n("span",
|
|
1298
|
-
n("span",
|
|
1299
|
-
n("span",
|
|
1300
|
-
n("span",
|
|
1301
|
-
n("span",
|
|
1302
|
-
n("span",
|
|
1296
|
+
p.value ? (A(), V("div", Mo, [
|
|
1297
|
+
n("span", Oo, B(F(f)("inventory.integration.bindingImport.status.new")) + ": " + B(p.value.new), 1),
|
|
1298
|
+
n("span", Uo, B(F(f)("inventory.integration.bindingImport.status.overriding")) + ": " + B(p.value.override), 1),
|
|
1299
|
+
n("span", zo, B(F(f)("inventory.integration.bindingImport.status.skipped")) + ": " + B(p.value.skipped), 1),
|
|
1300
|
+
n("span", jo, B(F(f)("inventory.integration.bindingImport.status.duplicate")) + ": " + B(p.value.duplicate), 1),
|
|
1301
|
+
n("span", Po, B(F(f)("inventory.integration.bindingImport.status.notFound")) + ": " + B(p.value.notFound), 1),
|
|
1302
|
+
n("span", $o, B(F(f)("inventory.integration.bindingImport.status.ambiguous")) + ": " + B(p.value.ambiguous), 1)
|
|
1303
1303
|
])) : j("", !0)
|
|
1304
1304
|
]);
|
|
1305
1305
|
};
|
|
1306
1306
|
}
|
|
1307
|
-
}),
|
|
1307
|
+
}), Ko = { class: "flex flex-col gap-16" }, Ho = { class: "flex flex-wrap gap-x-16 gap-y-4 fm-typo-en-body-sm-400" }, qo = { class: "text-fm-color-system-success-400" }, Xo = { class: "text-fm-color-system-warning-400" }, Yo = { class: "text-fm-color-typo-secondary" }, Qo = { class: "text-fm-color-typo-secondary" }, Go = { class: "text-fm-color-system-error-300" }, Jo = { class: "text-fm-color-system-error-300" }, Zt = /* @__PURE__ */ W({
|
|
1308
1308
|
__name: "BindingImportPreview",
|
|
1309
1309
|
props: {
|
|
1310
1310
|
config: {
|
|
@@ -1317,7 +1317,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1317
1317
|
}
|
|
1318
1318
|
},
|
|
1319
1319
|
setup(S) {
|
|
1320
|
-
const c = S, { t: e } = ie(), f = O(""), t = z(() =>
|
|
1320
|
+
const c = S, { t: e } = ie(), f = O(""), t = z(() => Yt(c.result)), u = z(
|
|
1321
1321
|
() => ({
|
|
1322
1322
|
NEW: e("inventory.integration.bindingImport.status.new"),
|
|
1323
1323
|
OVERRIDE: e("inventory.integration.bindingImport.status.overriding"),
|
|
@@ -1390,14 +1390,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1390
1390
|
});
|
|
1391
1391
|
return (p, y) => {
|
|
1392
1392
|
const m = L("FmTextField"), v = L("FmTable");
|
|
1393
|
-
return A(), V("div",
|
|
1394
|
-
n("div",
|
|
1395
|
-
n("span",
|
|
1396
|
-
n("span",
|
|
1397
|
-
n("span",
|
|
1398
|
-
n("span",
|
|
1399
|
-
n("span",
|
|
1400
|
-
n("span",
|
|
1393
|
+
return A(), V("div", Ko, [
|
|
1394
|
+
n("div", Ho, [
|
|
1395
|
+
n("span", qo, B(F(e)("inventory.integration.bindingImport.status.new")) + ": " + B(t.value.new), 1),
|
|
1396
|
+
n("span", Xo, B(F(e)("inventory.integration.bindingImport.status.overriding")) + ": " + B(t.value.override), 1),
|
|
1397
|
+
n("span", Yo, B(F(e)("inventory.integration.bindingImport.status.skipped")) + ": " + B(t.value.skipped), 1),
|
|
1398
|
+
n("span", Qo, B(F(e)("inventory.integration.bindingImport.status.duplicate")) + ": " + B(t.value.duplicate), 1),
|
|
1399
|
+
n("span", Go, B(F(e)("inventory.integration.bindingImport.status.notFound")) + ": " + B(t.value.notFound), 1),
|
|
1400
|
+
n("span", Jo, B(F(e)("inventory.integration.bindingImport.status.ambiguous")) + ": " + B(t.value.ambiguous), 1)
|
|
1401
1401
|
]),
|
|
1402
1402
|
I(m, {
|
|
1403
1403
|
"model-value": f.value,
|
|
@@ -1416,7 +1416,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1416
1416
|
]);
|
|
1417
1417
|
};
|
|
1418
1418
|
}
|
|
1419
|
-
}),
|
|
1419
|
+
}), et = {
|
|
1420
1420
|
key: "foodMarketHub",
|
|
1421
1421
|
valueColumns: [{ field: "code", header: "FMH Code", aliases: ["fmhcode", "code"], required: !0 }],
|
|
1422
1422
|
buildBinding: ({ productId: S, combinationKey: c, values: e }) => ({
|
|
@@ -1425,7 +1425,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1425
1425
|
code: e.code ?? ""
|
|
1426
1426
|
}),
|
|
1427
1427
|
readValues: (S) => ({ code: S.code })
|
|
1428
|
-
},
|
|
1428
|
+
}, Zo = { class: "flex flex-col gap-8 w-full" }, Wo = { class: "flex items-center" }, es = /* @__PURE__ */ W({
|
|
1429
1429
|
__name: "ApplyProductDialogV4",
|
|
1430
1430
|
props: {
|
|
1431
1431
|
categories: { default: () => [] },
|
|
@@ -1438,8 +1438,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1438
1438
|
},
|
|
1439
1439
|
emits: ["update:setting", "update:show", "submit"],
|
|
1440
1440
|
setup(S, { emit: c }) {
|
|
1441
|
-
const e = S, f = c, t =
|
|
1442
|
-
|
|
1441
|
+
const e = S, f = c, t = it(pe(e.setting));
|
|
1442
|
+
_e([() => e.show], ([o]) => {
|
|
1443
1443
|
if (o)
|
|
1444
1444
|
for (const i of Object.keys(e.setting))
|
|
1445
1445
|
t[i] = e.setting[i];
|
|
@@ -1457,15 +1457,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1457
1457
|
function m(o) {
|
|
1458
1458
|
t.bindings = [...p.value, ...o];
|
|
1459
1459
|
}
|
|
1460
|
-
const v = O(), h =
|
|
1460
|
+
const v = O(), h = Re(), g = ue(), C = be();
|
|
1461
1461
|
function E() {
|
|
1462
1462
|
var i;
|
|
1463
|
-
const { filename: o } =
|
|
1463
|
+
const { filename: o } = Gt(
|
|
1464
1464
|
e.menus,
|
|
1465
1465
|
e.categories,
|
|
1466
1466
|
t.bindings,
|
|
1467
1467
|
e.variants,
|
|
1468
|
-
|
|
1468
|
+
et,
|
|
1469
1469
|
(i = C.currentBusiness.value) == null ? void 0 : i.name
|
|
1470
1470
|
);
|
|
1471
1471
|
g.open({
|
|
@@ -1477,12 +1477,12 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1477
1477
|
function k() {
|
|
1478
1478
|
h.open({
|
|
1479
1479
|
title: d("inventory.integration.bindingImport.dialogTitle"),
|
|
1480
|
-
contentComponent:
|
|
1480
|
+
contentComponent: Jt,
|
|
1481
1481
|
contentComponentProps: {
|
|
1482
|
-
config:
|
|
1482
|
+
config: et,
|
|
1483
1483
|
menus: e.menus,
|
|
1484
1484
|
variants: e.variants,
|
|
1485
|
-
bindings:
|
|
1485
|
+
bindings: pe(t.bindings)
|
|
1486
1486
|
},
|
|
1487
1487
|
overlay: !0,
|
|
1488
1488
|
closeButton: !0,
|
|
@@ -1500,7 +1500,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1500
1500
|
variant: "plain"
|
|
1501
1501
|
}
|
|
1502
1502
|
}).onPrimary((o) => {
|
|
1503
|
-
if (!o || !
|
|
1503
|
+
if (!o || !ze(o).length) {
|
|
1504
1504
|
g.open({
|
|
1505
1505
|
title: d("inventory.integration.bindingImport.nothingToImport.title"),
|
|
1506
1506
|
message: d("inventory.integration.bindingImport.nothingToImport.message"),
|
|
@@ -1514,8 +1514,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1514
1514
|
function s(o) {
|
|
1515
1515
|
h.open({
|
|
1516
1516
|
title: d("inventory.integration.bindingImport.previewTitle"),
|
|
1517
|
-
contentComponent:
|
|
1518
|
-
contentComponentProps: { config:
|
|
1517
|
+
contentComponent: Zt,
|
|
1518
|
+
contentComponentProps: { config: et, result: o },
|
|
1519
1519
|
overlay: !0,
|
|
1520
1520
|
closeButton: !0,
|
|
1521
1521
|
minWidth: 900,
|
|
@@ -1529,36 +1529,36 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1529
1529
|
close: !0
|
|
1530
1530
|
}
|
|
1531
1531
|
}).onPrimary(() => {
|
|
1532
|
-
const i =
|
|
1533
|
-
t.bindings =
|
|
1532
|
+
const i = ze(o);
|
|
1533
|
+
t.bindings = Qt(t.bindings, i), g.open({
|
|
1534
1534
|
title: d("inventory.integration.bindingImport.importSuccess.title"),
|
|
1535
1535
|
message: d("inventory.integration.bindingImport.importSuccess.message", { count: i.length }),
|
|
1536
1536
|
type: "success"
|
|
1537
1537
|
});
|
|
1538
1538
|
});
|
|
1539
1539
|
}
|
|
1540
|
-
const r =
|
|
1540
|
+
const r = Ee(e, "show");
|
|
1541
1541
|
function b() {
|
|
1542
1542
|
var o, i;
|
|
1543
1543
|
(i = (o = v.value) == null ? void 0 : o.validateInputs) == null || i.call(o);
|
|
1544
1544
|
}
|
|
1545
1545
|
function x() {
|
|
1546
|
-
f("update:setting",
|
|
1546
|
+
f("update:setting", pe(t)), f("submit");
|
|
1547
1547
|
}
|
|
1548
1548
|
const { t: d } = ie();
|
|
1549
1549
|
return (o, i) => {
|
|
1550
1550
|
const w = L("FmChip"), R = L("FmButton"), $ = L("FmForm"), X = L("FmSideSheet");
|
|
1551
1551
|
return A(), H(X, {
|
|
1552
1552
|
modelValue: F(r),
|
|
1553
|
-
"onUpdate:modelValue": i[5] || (i[5] = (U) =>
|
|
1553
|
+
"onUpdate:modelValue": i[5] || (i[5] = (U) => Fe(r) ? r.value = U : null),
|
|
1554
1554
|
header: F(d)("inventory.integration.apply.title"),
|
|
1555
1555
|
"dismiss-away": "",
|
|
1556
1556
|
"close-button": "",
|
|
1557
1557
|
"max-width": 500
|
|
1558
1558
|
}, {
|
|
1559
1559
|
default: M(() => [
|
|
1560
|
-
n("div",
|
|
1561
|
-
n("div",
|
|
1560
|
+
n("div", Zo, [
|
|
1561
|
+
n("div", Wo, [
|
|
1562
1562
|
I(w, { label: "Menu v4" }),
|
|
1563
1563
|
i[6] || (i[6] = n("div", { class: "flex-grow" }, null, -1)),
|
|
1564
1564
|
I(R, {
|
|
@@ -1576,14 +1576,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1576
1576
|
onValidationSuccess: i[3] || (i[3] = (U) => x())
|
|
1577
1577
|
}, {
|
|
1578
1578
|
default: M(() => [
|
|
1579
|
-
I(
|
|
1579
|
+
I(at, {
|
|
1580
1580
|
categories: o.categories,
|
|
1581
1581
|
variants: o.variants,
|
|
1582
1582
|
bindings: p.value,
|
|
1583
1583
|
menus: a.value,
|
|
1584
1584
|
"onUpdate:bindings": i[1] || (i[1] = (U) => y(U))
|
|
1585
1585
|
}, null, 8, ["categories", "variants", "bindings", "menus"]),
|
|
1586
|
-
I(
|
|
1586
|
+
I(at, {
|
|
1587
1587
|
"is-addon": !0,
|
|
1588
1588
|
categories: [],
|
|
1589
1589
|
variants: o.variants,
|
|
@@ -1608,10 +1608,10 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1608
1608
|
}, 8, ["modelValue", "header"]);
|
|
1609
1609
|
};
|
|
1610
1610
|
}
|
|
1611
|
-
}),
|
|
1611
|
+
}), ts = { key: 0 }, ns = { class: "flex justify-center" }, os = ["src"], ss = { class: "flex flex-col items-center gap-2" }, as = { class: "text-lg font-bold" }, ls = { class: "text-fm-color-neutral-gray-300" }, is = { key: 0 }, rs = /* @__PURE__ */ W({
|
|
1612
1612
|
__name: "FoodMarketHub",
|
|
1613
1613
|
setup(S) {
|
|
1614
|
-
const c = be(), e = ue(), f = ye(), t = O(!1), u =
|
|
1614
|
+
const c = be(), e = ue(), f = ye(), t = O(!1), u = Cn(), l = z(() => u.state.menu ?? []), a = z(() => u.state.group ?? []), p = z(() => u.state.variants ?? []), y = z(() => u.state.categories ?? []), m = In(), v = z(() => {
|
|
1615
1615
|
var b;
|
|
1616
1616
|
return (b = c.currentBusiness.value) == null ? void 0 : b.menuVersion;
|
|
1617
1617
|
});
|
|
@@ -1620,7 +1620,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1620
1620
|
async function g() {
|
|
1621
1621
|
h.value = !0;
|
|
1622
1622
|
}
|
|
1623
|
-
const { breakpoints: C } =
|
|
1623
|
+
const { breakpoints: C } = ut(), E = z(() => C.value.xs || C.value.sm), k = z(() => E.value);
|
|
1624
1624
|
async function s() {
|
|
1625
1625
|
const b = u.state.setting;
|
|
1626
1626
|
if (b) {
|
|
@@ -1646,9 +1646,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1646
1646
|
const { t: r } = ie();
|
|
1647
1647
|
return (b, x) => {
|
|
1648
1648
|
const d = L("FmCardSection"), o = L("FmCard");
|
|
1649
|
-
return F(u).isEnabled && !F(u).isBusinessLocation ? (A(), V("div",
|
|
1649
|
+
return F(u).isEnabled && !F(u).isBusinessLocation ? (A(), V("div", ts, [
|
|
1650
1650
|
I(o, {
|
|
1651
|
-
class:
|
|
1651
|
+
class: ae({
|
|
1652
1652
|
"w-full": k.value,
|
|
1653
1653
|
"w-1/2": !k.value,
|
|
1654
1654
|
border: !0,
|
|
@@ -1661,15 +1661,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1661
1661
|
default: M(() => [
|
|
1662
1662
|
I(d, null, {
|
|
1663
1663
|
default: M(() => [
|
|
1664
|
-
n("div",
|
|
1664
|
+
n("div", ns, [
|
|
1665
1665
|
n("img", {
|
|
1666
|
-
src: F(
|
|
1666
|
+
src: F($n),
|
|
1667
1667
|
alt: "Food Market Hub"
|
|
1668
|
-
}, null, 8,
|
|
1668
|
+
}, null, 8, os)
|
|
1669
1669
|
]),
|
|
1670
|
-
n("div",
|
|
1671
|
-
n("div",
|
|
1672
|
-
n("div",
|
|
1670
|
+
n("div", ss, [
|
|
1671
|
+
n("div", as, B(F(r)("inventory.integration.fmh.title")), 1),
|
|
1672
|
+
n("div", ls, B(F(r)("inventory.integration.fmh.description")), 1)
|
|
1673
1673
|
])
|
|
1674
1674
|
]),
|
|
1675
1675
|
_: 1
|
|
@@ -1677,9 +1677,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1677
1677
|
]),
|
|
1678
1678
|
_: 1
|
|
1679
1679
|
}, 8, ["class"]),
|
|
1680
|
-
F(u).state.setting ? (A(), V("div",
|
|
1681
|
-
(A(), H(
|
|
1682
|
-
v.value === "v3" ? (A(), H(
|
|
1680
|
+
F(u).state.setting ? (A(), V("div", is, [
|
|
1681
|
+
(A(), H(Te, { to: "body" }, [
|
|
1682
|
+
v.value === "v3" ? (A(), H(wo, {
|
|
1683
1683
|
key: 0,
|
|
1684
1684
|
menus: l.value,
|
|
1685
1685
|
variants: p.value,
|
|
@@ -1691,7 +1691,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1691
1691
|
groups: a.value,
|
|
1692
1692
|
loading: t.value,
|
|
1693
1693
|
onSubmit: x[3] || (x[3] = (i) => s())
|
|
1694
|
-
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (A(), H(
|
|
1694
|
+
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (A(), H(es, {
|
|
1695
1695
|
key: 1,
|
|
1696
1696
|
menus: l.value,
|
|
1697
1697
|
variants: p.value,
|
|
@@ -1709,13 +1709,13 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1709
1709
|
])) : j("", !0);
|
|
1710
1710
|
};
|
|
1711
1711
|
}
|
|
1712
|
-
}), as = "data:image/svg+xml,%3csvg%20width='200'%20height='100'%20viewBox='0%200%20200%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='200'%20height='100'%20fill='url(%23pattern0_1500_58879)'/%3e%3cdefs%3e%3cpattern%20id='pattern0_1500_58879'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1500_58879'%20transform='matrix(0.002%200%200%200.004%200%200.046)'/%3e%3c/pattern%3e%3cimage%20id='image0_1500_58879'%20width='500'%20height='227'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADjCAYAAABzcuYdAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB9KADAAQAAAABAAAA4wAAAABu8la3AABAAElEQVR4Ae2dCYAcVZnH61V191w5yDU5CDAkIXN0z0wC7C4uAorKpeyysugiuLqKooKIBwsCcguCFwoogqwrIHhzLIKigDeIQDLT3XMlmYSQBHKQhITM1V319v+6p/qorup+1VPd0z3zFXSm6r3vvfe9X1W9792lKHQQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIgMKIAREgApVLoKmp6aCGhoZZqrp/fzi8eU/lakqaEQEiMNkEpqNBZ8Fg00JVr13AfcpizrX5uAlLVVVlhmHwybohSF/lnA/jtwU6bIcu24eHh3du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ASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/onAgQgWwCra2th6mqulBTlEWKYjRyVZ2nKspcnHPO1bjCjW0IsVvhbKvO2OvDw8NbBwcH38iOha6IABEgAqUnULUGvb390DlcmXEbMrCQK8wwUWncPEv9DegKvycS6bk/5eLRSbC99VKmqKcgujEzSpv0GVd4zFD0qyOR/hdMOae/HStWLGW1tfcoijUjukMQmBoXB5TJOrjNE8AZV3Ujfnk0OvD3LGFctLW1BX2qcgtTmB+Xltis0t5f5+pvkwEFDwRjXwyHwy+61SAYDAY0wzhS0dT3KIwfh3wuRxww5ooM6L1AspVz5WXG2J+4zp8Z1fWe/v7+/UXocaimql9HuIMY56nnG9cBQH+4OxL5lts43cqvWLGipq6u5ivg0AEV4iK8eL7xzPjwT7/Oey+ORtPPvlP8TU1NtbNmNIh42g2FJeIRsoxxHzdYH3h9NhqNpt4hazzt7cGPI9mz4T5m835Zxct2DZ1qUKG7vzva+/18iXaEgncj78sYT+c9n7xXfniPxX0a3LV7z2e2bds25FW8FE/lEvBVrmr5NTOMmTWqppwEqQW2RXpGcJUrHe3tK18Ihwf6MpwnfArjciRTlbcVighGAf+pdxSSS/hrWgNKOuQLxUXWUSiXWcKOF9ZY7Ay60NbHVFuDgQdmLozVaY4JlNgjV3+rS1IBZhjfcKmK1hEM/pui8ovA/1iGGwaT4zIK5SCEOQhhgwh4GtOYUqv6utqDbU/AkN0Ho9UjGyGa/zMheyo0EM9DVjBcbcpyKNHF0NCQBoN+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzR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dyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", ls = {
|
|
1712
|
+
}), us = "data:image/svg+xml,%3csvg%20width='200'%20height='100'%20viewBox='0%200%20200%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='200'%20height='100'%20fill='url(%23pattern0_1500_58879)'/%3e%3cdefs%3e%3cpattern%20id='pattern0_1500_58879'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1500_58879'%20transform='matrix(0.002%200%200%200.004%200%200.046)'/%3e%3c/pattern%3e%3cimage%20id='image0_1500_58879'%20width='500'%20height='227'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADjCAYAAABzcuYdAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB9KADAAQAAAABAAAA4wAAAABu8la3AABAAElEQVR4Ae2dCYAcVZnH61V191w5yDU5CDAkIXN0z0wC7C4uAorKpeyysugiuLqKooKIBwsCcguCFwoogqwrIHhzLIKigDeIQDLT3XMlmYSQBHKQhITM1V319v+6p/qorup+1VPd0z3zFXSm6r3vvfe9X1W9792lKHQQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIgMKIAREgApVLoKmp6aCGhoZZqrp/fzi8eU/lakqaEQEiMNkEpqNBZ8Fg00JVr13AfcpizrX5uAlLVVVlhmHwybohSF/lnA/jtwU6bIcu24eHh3du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ASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/onAgQgWwCra2th6mqulBTlEWKYjRyVZ2nKspcnHPO1bjCjW0IsVvhbKvO2OvDw8NbBwcH38iOha6IABEgAqUnULUGvb390DlcmXEbMrCQK8wwUWncPEv9DegKvycS6bk/5eLRSbC99VKmqKcgujEzSpv0GVd4zFD0qyOR/hdMOae/HStWLGW1tfcoijUjukMQmBoXB5TJOrjNE8AZV3Ujfnk0OvD3LGFctLW1BX2qcgtTmB+Xltis0t5f5+pvkwEFDwRjXwyHwy+61SAYDAY0wzhS0dT3KIwfh3wuRxww5ooM6L1AspVz5WXG2J+4zp8Z1fWe/v7+/UXocaimql9HuIMY56nnG9cBQH+4OxL5lts43cqvWLGipq6u5ivg0AEV4iK8eL7xzPjwT7/Oey+ORtPPvlP8TU1NtbNmNIh42g2FJeIRsoxxHzdYH3h9NhqNpt4hazzt7cGPI9mz4T5m835Zxct2DZ1qUKG7vzva+/18iXaEgncj78sYT+c9n7xXfniPxX0a3LV7z2e2bds25FW8FE/lEvBVrmr5NTOMmTWqppwEqQW2RXpGcJUrHe3tK18Ihwf6MpwnfArjciRTlbcVighGAf+pdxSSS/hrWgNKOuQLxUXWUSiXWcKOF9ZY7Ay60NbHVFuDgQdmLozVaY4JlNgjV3+rS1IBZhjfcKmK1hEM/pui8ovA/1iGGwaT4zIK5SCEOQhhgwh4GtOYUqv6utqDbU/AkN0Ho9UjGyGa/zMheyo0EM9DVjBcbcpyKNHF0NCQBoN+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzR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dyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", ds = {
|
|
1713
1713
|
key: 0,
|
|
1714
1714
|
class: "line-clamp-1 text-ellipsis"
|
|
1715
|
-
},
|
|
1715
|
+
}, cs = {
|
|
1716
1716
|
key: 1,
|
|
1717
1717
|
class: "line-clamp-1 text-ellipsis text-fm-color-typo-tertiary"
|
|
1718
|
-
},
|
|
1718
|
+
}, ms = { class: "flex flex-col gap-5" }, ps = { class: "overflow-x-hidden overflow-y-auto max-h-[300px]" }, Wt = /* @__PURE__ */ W({
|
|
1719
1719
|
__name: "FmEnhancedSelect",
|
|
1720
1720
|
props: {
|
|
1721
1721
|
placeholder: {},
|
|
@@ -1728,7 +1728,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1728
1728
|
emits: ["update:modelValue"],
|
|
1729
1729
|
setup(S, { emit: c }) {
|
|
1730
1730
|
const e = S, f = c, t = O(""), u = z(
|
|
1731
|
-
() => new
|
|
1731
|
+
() => new Tn(
|
|
1732
1732
|
e.items,
|
|
1733
1733
|
(a) => [a.label ?? "", a.sublabel ?? "", ...a.value[e.searchTarget]].filter((p) => p)
|
|
1734
1734
|
)
|
|
@@ -1737,14 +1737,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1737
1737
|
const y = L("FmLabel"), m = L("FmField"), v = L("FmIcon"), h = L("FmTextField"), g = L("FmMenuItem"), C = L("FmMenu"), E = L("FmFormGroup");
|
|
1738
1738
|
return A(), H(E, {
|
|
1739
1739
|
"model-value": a.modelValue,
|
|
1740
|
-
rules: [F(
|
|
1740
|
+
rules: [F(Mn)()],
|
|
1741
1741
|
"label-mark": "required"
|
|
1742
1742
|
}, Se({
|
|
1743
1743
|
default: M(({ invalid: k }) => [
|
|
1744
1744
|
I(C, null, {
|
|
1745
1745
|
"menu-button": M(() => [
|
|
1746
1746
|
I(m, {
|
|
1747
|
-
class:
|
|
1747
|
+
class: ae([
|
|
1748
1748
|
"fm-typo-en-body-lg-400",
|
|
1749
1749
|
{
|
|
1750
1750
|
"text-fm-color-typo-primary": !a.disabled,
|
|
@@ -1755,13 +1755,13 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1755
1755
|
"append-icon": "expand_more"
|
|
1756
1756
|
}, {
|
|
1757
1757
|
default: M(() => [
|
|
1758
|
-
a.modelValue[e.searchTarget] ? (A(), V("span",
|
|
1758
|
+
a.modelValue[e.searchTarget] ? (A(), V("span", ds, B(a.modelValue[e.searchTarget]), 1)) : (A(), V("span", cs, B(a.placeholder || "Select an option"), 1))
|
|
1759
1759
|
]),
|
|
1760
1760
|
_: 2
|
|
1761
1761
|
}, 1032, ["class", "invalid"])
|
|
1762
1762
|
]),
|
|
1763
1763
|
default: M(() => [
|
|
1764
|
-
n("div",
|
|
1764
|
+
n("div", ms, [
|
|
1765
1765
|
I(h, {
|
|
1766
1766
|
modelValue: t.value,
|
|
1767
1767
|
"onUpdate:modelValue": p[1] || (p[1] = (s) => t.value = s),
|
|
@@ -1784,8 +1784,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1784
1784
|
key: "0"
|
|
1785
1785
|
} : void 0
|
|
1786
1786
|
]), 1032, ["modelValue"]),
|
|
1787
|
-
n("div",
|
|
1788
|
-
(A(!0), V(
|
|
1787
|
+
n("div", ps, [
|
|
1788
|
+
(A(!0), V(J, null, se(l.value, (s, r) => {
|
|
1789
1789
|
var b, x;
|
|
1790
1790
|
return A(), H(g, {
|
|
1791
1791
|
key: r,
|
|
@@ -1813,13 +1813,13 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1813
1813
|
]), 1032, ["model-value", "rules"]);
|
|
1814
1814
|
};
|
|
1815
1815
|
}
|
|
1816
|
-
}),
|
|
1816
|
+
}), fs = { class: "flex-col items-center" }, vs = { class: "flex gap-2" }, gs = {
|
|
1817
1817
|
key: 0,
|
|
1818
1818
|
class: "text-xs text-red-500 mt-2"
|
|
1819
|
-
},
|
|
1819
|
+
}, ys = {
|
|
1820
1820
|
key: 1,
|
|
1821
1821
|
class: "flex items-center mt-2"
|
|
1822
|
-
},
|
|
1822
|
+
}, bs = { class: "flex flex-col" }, xs = { class: "font-medium" }, As = { class: "text-xs text-gray-400" }, hs = { class: "text-xs text-gray-400" }, Is = { class: "text-xs text-gray-400" }, Ss = /* @__PURE__ */ W({
|
|
1823
1823
|
__name: "NetSuiteLocationField",
|
|
1824
1824
|
props: {
|
|
1825
1825
|
isDuplicate: { type: Boolean, default: !1 },
|
|
@@ -1838,9 +1838,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1838
1838
|
const e = S, f = z(() => e.modelValue), t = c;
|
|
1839
1839
|
return (u, l) => {
|
|
1840
1840
|
const a = L("FmButton"), p = L("FmIcon");
|
|
1841
|
-
return A(), V("div",
|
|
1842
|
-
n("div",
|
|
1843
|
-
I(
|
|
1841
|
+
return A(), V("div", fs, [
|
|
1842
|
+
n("div", vs, [
|
|
1843
|
+
I(Wt, {
|
|
1844
1844
|
placeholder: "Select NetSuite Location",
|
|
1845
1845
|
items: u.nsLocationOptions,
|
|
1846
1846
|
searchTarget: "name",
|
|
@@ -1859,8 +1859,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1859
1859
|
}))
|
|
1860
1860
|
})) : j("", !0)
|
|
1861
1861
|
]),
|
|
1862
|
-
u.isDuplicate ? (A(), V("div",
|
|
1863
|
-
f.value.netsuiteId ? (A(), V("div",
|
|
1862
|
+
u.isDuplicate ? (A(), V("div", gs, " NetSuite location being used by another FeedMe location. ")) : j("", !0),
|
|
1863
|
+
f.value.netsuiteId ? (A(), V("div", ys, [
|
|
1864
1864
|
I(p, {
|
|
1865
1865
|
name: "cloud",
|
|
1866
1866
|
color: "neutral-gray-400",
|
|
@@ -1868,17 +1868,17 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1868
1868
|
class: "mr-2",
|
|
1869
1869
|
outline: ""
|
|
1870
1870
|
}),
|
|
1871
|
-
n("div",
|
|
1872
|
-
n("span",
|
|
1873
|
-
n("span",
|
|
1874
|
-
n("span",
|
|
1875
|
-
n("span",
|
|
1871
|
+
n("div", bs, [
|
|
1872
|
+
n("span", xs, B(f.value.name), 1),
|
|
1873
|
+
n("span", As, "ID: " + B(f.value.netsuiteId), 1),
|
|
1874
|
+
n("span", hs, "Subsidiary: " + B(f.value.subsidiaryName), 1),
|
|
1875
|
+
n("span", Is, "Inactive: " + B(f.value.isinactive ? "Yes" : "No"), 1)
|
|
1876
1876
|
])
|
|
1877
1877
|
])) : j("", !0)
|
|
1878
1878
|
]);
|
|
1879
1879
|
};
|
|
1880
1880
|
}
|
|
1881
|
-
}),
|
|
1881
|
+
}), ws = /* @__PURE__ */ W({
|
|
1882
1882
|
__name: "AddLocationDialog",
|
|
1883
1883
|
props: {
|
|
1884
1884
|
showDialog: {
|
|
@@ -1905,7 +1905,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1905
1905
|
id: "fmLocation",
|
|
1906
1906
|
header: "FeedMe Location",
|
|
1907
1907
|
cell(g) {
|
|
1908
|
-
const C = g.row.original, E = N(
|
|
1908
|
+
const C = g.row.original, E = N(te.FmIcon, {
|
|
1909
1909
|
name: C.type,
|
|
1910
1910
|
color: "neutral-gray-400",
|
|
1911
1911
|
size: "md",
|
|
@@ -1928,7 +1928,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
1928
1928
|
const C = g.row.original, E = a.value[C.dbName], k = Object.entries(a.value).some(
|
|
1929
1929
|
([s, r]) => s !== C.dbName && r.netsuiteId === (E == null ? void 0 : E.netsuiteId)
|
|
1930
1930
|
);
|
|
1931
|
-
return N(
|
|
1931
|
+
return N(Ss, {
|
|
1932
1932
|
isDuplicate: k,
|
|
1933
1933
|
nsLocationOptions: m.value,
|
|
1934
1934
|
modelValue: E,
|
|
@@ -2013,7 +2013,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2013
2013
|
}, 8, ["modelValue"]);
|
|
2014
2014
|
};
|
|
2015
2015
|
}
|
|
2016
|
-
}),
|
|
2016
|
+
}), Cs = { class: "p-8 flex items-center justify-between" }, ks = { class: "flex gap-4" }, _s = /* @__PURE__ */ W({
|
|
2017
2017
|
__name: "LocationsTab",
|
|
2018
2018
|
setup(S) {
|
|
2019
2019
|
const c = ye(), e = xe(), f = ue(), t = O(!1), u = O(), l = O(""), a = O(null), p = O([]), y = O(null), m = [
|
|
@@ -2024,7 +2024,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2024
2024
|
values: ["warehouse", "restaurant"]
|
|
2025
2025
|
}
|
|
2026
2026
|
];
|
|
2027
|
-
|
|
2027
|
+
Le(async () => {
|
|
2028
2028
|
if (e.isReady && e.isEnabled)
|
|
2029
2029
|
try {
|
|
2030
2030
|
p.value = await e.getNetSuiteLocationOptions();
|
|
@@ -2036,9 +2036,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2036
2036
|
let k = e.state.setting.locations;
|
|
2037
2037
|
if (!a.value)
|
|
2038
2038
|
return k;
|
|
2039
|
-
const s =
|
|
2039
|
+
const s = zt.build(a.value);
|
|
2040
2040
|
return k.filter(
|
|
2041
|
-
(r) =>
|
|
2041
|
+
(r) => jt(
|
|
2042
2042
|
{
|
|
2043
2043
|
type: r.type
|
|
2044
2044
|
},
|
|
@@ -2061,7 +2061,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2061
2061
|
);
|
|
2062
2062
|
if (!r)
|
|
2063
2063
|
return N("div", "Unknown Location");
|
|
2064
|
-
const b = N(
|
|
2064
|
+
const b = N(te.FmIcon, {
|
|
2065
2065
|
name: r.type,
|
|
2066
2066
|
color: "neutral-gray-400",
|
|
2067
2067
|
size: "md",
|
|
@@ -2091,7 +2091,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2091
2091
|
var x;
|
|
2092
2092
|
const s = k.row.original, r = (x = p.value.find(
|
|
2093
2093
|
(d) => d.netsuiteId === s.netSuiteId
|
|
2094
|
-
)) == null ? void 0 : x.subsidiaryName, b = N(
|
|
2094
|
+
)) == null ? void 0 : x.subsidiaryName, b = N(te.FmIcon, {
|
|
2095
2095
|
name: "cloud",
|
|
2096
2096
|
color: "neutral-gray-400",
|
|
2097
2097
|
size: "md",
|
|
@@ -2122,15 +2122,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2122
2122
|
return (k, s) => {
|
|
2123
2123
|
const r = L("FmSearch"), b = L("FmButton"), x = L("FmTable");
|
|
2124
2124
|
return A(), V("div", null, [
|
|
2125
|
-
n("div",
|
|
2126
|
-
n("div",
|
|
2125
|
+
n("div", Cs, [
|
|
2126
|
+
n("div", ks, [
|
|
2127
2127
|
I(r, {
|
|
2128
2128
|
placeholder: "Search by Location",
|
|
2129
2129
|
class: "w-[300px]",
|
|
2130
2130
|
modelValue: l.value,
|
|
2131
2131
|
"onUpdate:modelValue": s[0] || (s[0] = (d) => l.value = d)
|
|
2132
2132
|
}, null, 8, ["modelValue"]),
|
|
2133
|
-
I(F(
|
|
2133
|
+
I(F(Pt), {
|
|
2134
2134
|
modelValue: a.value,
|
|
2135
2135
|
"onUpdate:modelValue": s[1] || (s[1] = (d) => a.value = d),
|
|
2136
2136
|
attributes: m
|
|
@@ -2150,7 +2150,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2150
2150
|
"search-value": l.value,
|
|
2151
2151
|
autoResetPageIndex: !0
|
|
2152
2152
|
}, null, 8, ["modelValue", "row-data", "search-value"]),
|
|
2153
|
-
I(
|
|
2153
|
+
I(ws, {
|
|
2154
2154
|
"show-dialog": t.value,
|
|
2155
2155
|
"onUpdate:showDialog": [
|
|
2156
2156
|
s[3] || (s[3] = (d) => t.value = d),
|
|
@@ -2163,13 +2163,13 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2163
2163
|
]);
|
|
2164
2164
|
};
|
|
2165
2165
|
}
|
|
2166
|
-
}),
|
|
2166
|
+
}), Fs = { class: "flex-col items-center" }, Es = { class: "flex gap-2" }, Bs = {
|
|
2167
2167
|
key: 0,
|
|
2168
2168
|
class: "text-xs text-red-500 mt-2"
|
|
2169
|
-
},
|
|
2169
|
+
}, Vs = {
|
|
2170
2170
|
key: 1,
|
|
2171
2171
|
class: "flex items-center mt-2"
|
|
2172
|
-
},
|
|
2172
|
+
}, Ns = { class: "flex flex-col" }, Ds = { class: "font-medium" }, Ls = { class: "text-xs text-gray-400" }, Ts = { class: "text-xs text-gray-400" }, Rs = /* @__PURE__ */ W({
|
|
2173
2173
|
__name: "NetSuiteVendorField",
|
|
2174
2174
|
props: {
|
|
2175
2175
|
isDuplicate: { type: Boolean, default: !1 },
|
|
@@ -2187,9 +2187,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2187
2187
|
const e = S, f = z(() => e.modelValue), t = c;
|
|
2188
2188
|
return (u, l) => {
|
|
2189
2189
|
const a = L("FmButton"), p = L("FmIcon");
|
|
2190
|
-
return A(), V("div",
|
|
2191
|
-
n("div",
|
|
2192
|
-
I(
|
|
2190
|
+
return A(), V("div", Fs, [
|
|
2191
|
+
n("div", Es, [
|
|
2192
|
+
I(Wt, {
|
|
2193
2193
|
placeholder: "Select NetSuite Vendor",
|
|
2194
2194
|
items: u.nsVendorOptions,
|
|
2195
2195
|
searchTarget: "name",
|
|
@@ -2208,8 +2208,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2208
2208
|
}))
|
|
2209
2209
|
})) : j("", !0)
|
|
2210
2210
|
]),
|
|
2211
|
-
u.isDuplicate ? (A(), V("div",
|
|
2212
|
-
f.value.netsuiteId ? (A(), V("div",
|
|
2211
|
+
u.isDuplicate ? (A(), V("div", Bs, " NetSuite vendor being used by another FeedMe supplier. ")) : j("", !0),
|
|
2212
|
+
f.value.netsuiteId ? (A(), V("div", Vs, [
|
|
2213
2213
|
I(p, {
|
|
2214
2214
|
name: "cloud",
|
|
2215
2215
|
color: "neutral-gray-400",
|
|
@@ -2217,19 +2217,19 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2217
2217
|
class: "mr-2",
|
|
2218
2218
|
outline: ""
|
|
2219
2219
|
}),
|
|
2220
|
-
n("div",
|
|
2221
|
-
n("span",
|
|
2222
|
-
n("span",
|
|
2223
|
-
n("span",
|
|
2220
|
+
n("div", Ns, [
|
|
2221
|
+
n("span", Ds, B(f.value.name), 1),
|
|
2222
|
+
n("span", Ls, "ID: " + B(f.value.netsuiteId), 1),
|
|
2223
|
+
n("span", Ts, "Subsidiary: " + B(f.value.subsidiaryName), 1)
|
|
2224
2224
|
])
|
|
2225
2225
|
])) : j("", !0)
|
|
2226
2226
|
]);
|
|
2227
2227
|
};
|
|
2228
2228
|
}
|
|
2229
|
-
}),
|
|
2229
|
+
}), Ms = {
|
|
2230
2230
|
key: 0,
|
|
2231
2231
|
class: "flex items-center justify-center py-12"
|
|
2232
|
-
},
|
|
2232
|
+
}, Os = /* @__PURE__ */ W({
|
|
2233
2233
|
__name: "AddVendorDialog",
|
|
2234
2234
|
props: {
|
|
2235
2235
|
showDialog: {
|
|
@@ -2260,7 +2260,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2260
2260
|
id: "fmSupplier",
|
|
2261
2261
|
header: "FeedMe Supplier",
|
|
2262
2262
|
cell(g) {
|
|
2263
|
-
const C = g.row.original, E = N(
|
|
2263
|
+
const C = g.row.original, E = N(te.FmIcon, {
|
|
2264
2264
|
name: "apartment",
|
|
2265
2265
|
color: "neutral-gray-400",
|
|
2266
2266
|
size: "md",
|
|
@@ -2283,7 +2283,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2283
2283
|
const C = g.row.original, E = a.value[C._id], k = Object.entries(a.value).some(
|
|
2284
2284
|
([s, r]) => s !== C._id && r.netsuiteId === (E == null ? void 0 : E.netsuiteId)
|
|
2285
2285
|
);
|
|
2286
|
-
return N(
|
|
2286
|
+
return N(Rs, {
|
|
2287
2287
|
isDuplicate: k,
|
|
2288
2288
|
nsVendorOptions: m.value,
|
|
2289
2289
|
modelValue: E,
|
|
@@ -2345,7 +2345,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2345
2345
|
}, null, 8, ["disabled"])
|
|
2346
2346
|
]),
|
|
2347
2347
|
default: M(() => [
|
|
2348
|
-
u.nsVendorsLoading ? (A(), V("div",
|
|
2348
|
+
u.nsVendorsLoading ? (A(), V("div", Ms, [
|
|
2349
2349
|
I(E, { size: "lg" }),
|
|
2350
2350
|
C[4] || (C[4] = n("span", { class: "ml-3 text-gray-500" }, "Loading NetSuite vendors...", -1))
|
|
2351
2351
|
])) : (A(), H(s, {
|
|
@@ -2372,17 +2372,17 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2372
2372
|
}, 8, ["modelValue"]);
|
|
2373
2373
|
};
|
|
2374
2374
|
}
|
|
2375
|
-
}),
|
|
2375
|
+
}), Us = { class: "p-8 flex items-center justify-between" }, zs = { class: "flex items-center gap-2" }, js = {
|
|
2376
2376
|
key: 0,
|
|
2377
2377
|
class: "text-sm text-gray-500"
|
|
2378
|
-
},
|
|
2378
|
+
}, Ps = {
|
|
2379
2379
|
key: 1,
|
|
2380
2380
|
class: "text-sm text-red-500"
|
|
2381
|
-
},
|
|
2381
|
+
}, $s = /* @__PURE__ */ W({
|
|
2382
2382
|
__name: "VendorsTab",
|
|
2383
2383
|
setup(S) {
|
|
2384
|
-
const c =
|
|
2385
|
-
|
|
2384
|
+
const c = On(), e = xe(), f = ue(), t = O(""), u = O(!1), l = O([]), a = O(!1), p = O(null), y = O(null);
|
|
2385
|
+
Le(async () => {
|
|
2386
2386
|
if (c.suppliers.length === 0)
|
|
2387
2387
|
try {
|
|
2388
2388
|
await c.readSuppliers();
|
|
@@ -2414,7 +2414,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2414
2414
|
);
|
|
2415
2415
|
if (!r)
|
|
2416
2416
|
return N("div", "Unknown Supplier");
|
|
2417
|
-
const b = N(
|
|
2417
|
+
const b = N(te.FmIcon, {
|
|
2418
2418
|
name: "apartment",
|
|
2419
2419
|
color: "neutral-gray-400",
|
|
2420
2420
|
size: "md",
|
|
@@ -2444,7 +2444,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2444
2444
|
var x;
|
|
2445
2445
|
const s = k.row.original, r = (x = l.value.find(
|
|
2446
2446
|
(d) => d.subsidiaryId === s.subsidiaryId
|
|
2447
|
-
)) == null ? void 0 : x.subsidiaryName, b = N(
|
|
2447
|
+
)) == null ? void 0 : x.subsidiaryName, b = N(te.FmIcon, {
|
|
2448
2448
|
name: "cloud",
|
|
2449
2449
|
color: "neutral-gray-400",
|
|
2450
2450
|
size: "md",
|
|
@@ -2473,15 +2473,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2473
2473
|
return (k, s) => {
|
|
2474
2474
|
const r = L("FmSearch"), b = L("FmButton"), x = L("FmTable");
|
|
2475
2475
|
return A(), V("div", null, [
|
|
2476
|
-
n("div",
|
|
2476
|
+
n("div", Us, [
|
|
2477
2477
|
I(r, {
|
|
2478
2478
|
placeholder: "Search by Vendor",
|
|
2479
2479
|
class: "w-[300px]",
|
|
2480
2480
|
modelValue: t.value,
|
|
2481
2481
|
"onUpdate:modelValue": s[0] || (s[0] = (d) => t.value = d)
|
|
2482
2482
|
}, null, 8, ["modelValue"]),
|
|
2483
|
-
n("div",
|
|
2484
|
-
a.value ? (A(), V("span",
|
|
2483
|
+
n("div", zs, [
|
|
2484
|
+
a.value ? (A(), V("span", js, "Loading vendors...")) : p.value ? (A(), V("span", Ps, B(p.value), 1)) : j("", !0),
|
|
2485
2485
|
I(b, {
|
|
2486
2486
|
label: "Add vendor",
|
|
2487
2487
|
onClick: C,
|
|
@@ -2496,7 +2496,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2496
2496
|
"shrink-at": !1,
|
|
2497
2497
|
"search-value": t.value
|
|
2498
2498
|
}, null, 8, ["row-data", "search-value"]),
|
|
2499
|
-
I(
|
|
2499
|
+
I(Os, {
|
|
2500
2500
|
"show-dialog": u.value,
|
|
2501
2501
|
"onUpdate:showDialog": [
|
|
2502
2502
|
s[1] || (s[1] = (d) => u.value = d),
|
|
@@ -2510,11 +2510,11 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2510
2510
|
]);
|
|
2511
2511
|
};
|
|
2512
2512
|
}
|
|
2513
|
-
}),
|
|
2513
|
+
}), Ks = { class: "p-8 flex flex-col gap-4" }, Hs = { class: "flex gap-4 items-center" }, qs = /* @__PURE__ */ W({
|
|
2514
2514
|
__name: "ItemsTab",
|
|
2515
2515
|
setup(S) {
|
|
2516
|
-
const c =
|
|
2517
|
-
|
|
2516
|
+
const c = je(), e = xe(), f = Pe(), t = ue(), { t: u } = ie();
|
|
2517
|
+
Le(async () => {
|
|
2518
2518
|
e.state.isReady && e.state.itemReplicas.length === 0 && await e.getAllItemReplicas();
|
|
2519
2519
|
});
|
|
2520
2520
|
const l = (s) => {
|
|
@@ -2549,7 +2549,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2549
2549
|
key: "itemType",
|
|
2550
2550
|
type: "string",
|
|
2551
2551
|
entity: "item",
|
|
2552
|
-
values: Object.values(
|
|
2552
|
+
values: Object.values(Ze.Values)
|
|
2553
2553
|
},
|
|
2554
2554
|
{
|
|
2555
2555
|
key: "isParent",
|
|
@@ -2561,11 +2561,11 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2561
2561
|
let s = e.state.itemReplicas;
|
|
2562
2562
|
if (!g.value)
|
|
2563
2563
|
return s;
|
|
2564
|
-
const r =
|
|
2564
|
+
const r = zt.build(g.value);
|
|
2565
2565
|
return s.filter(
|
|
2566
|
-
(b) =>
|
|
2566
|
+
(b) => jt(
|
|
2567
2567
|
{
|
|
2568
|
-
itemType: b.itemType ||
|
|
2568
|
+
itemType: b.itemType || Ze.Enum.InvtPart,
|
|
2569
2569
|
isParent: b.parentNetSuiteId ? "false" : "true"
|
|
2570
2570
|
},
|
|
2571
2571
|
r
|
|
@@ -2605,7 +2605,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2605
2605
|
const b = r.skuCache;
|
|
2606
2606
|
if (!b)
|
|
2607
2607
|
return N("div", "Unknown Ingredient");
|
|
2608
|
-
const x = N(
|
|
2608
|
+
const x = N(te.FmIcon, {
|
|
2609
2609
|
name: "grocery",
|
|
2610
2610
|
color: "neutral-gray-400",
|
|
2611
2611
|
size: "md",
|
|
@@ -2634,7 +2634,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2634
2634
|
cell(s) {
|
|
2635
2635
|
const r = s.row.original, b = e.state.setting.units.find(
|
|
2636
2636
|
(d) => d.netSuiteId === r.unitTypeId
|
|
2637
|
-
), x = N(
|
|
2637
|
+
), x = N(te.FmIcon, {
|
|
2638
2638
|
name: "cloud",
|
|
2639
2639
|
color: "neutral-gray-400",
|
|
2640
2640
|
size: "md",
|
|
@@ -2659,7 +2659,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2659
2659
|
N(
|
|
2660
2660
|
"span",
|
|
2661
2661
|
{ class: "text-xs text-gray-400" },
|
|
2662
|
-
`Type: ${r.itemType ||
|
|
2662
|
+
`Type: ${r.itemType || Ze.Enum.InvtPart}`
|
|
2663
2663
|
)
|
|
2664
2664
|
])
|
|
2665
2665
|
]);
|
|
@@ -2673,10 +2673,10 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2673
2673
|
const b = s.row.original.syncedAt, x = l(b);
|
|
2674
2674
|
return b ? N("div", { class: "flex items-center gap-2" }, [
|
|
2675
2675
|
N("span", new Date(b).toLocaleString()),
|
|
2676
|
-
x ? N(
|
|
2676
|
+
x ? N(te.FmIcon, { name: "warning", color: "warning", size: "md" }) : null
|
|
2677
2677
|
]) : N("div", { class: "flex items-center gap-2" }, [
|
|
2678
2678
|
N("span", { class: "text-gray-400" }, "Never"),
|
|
2679
|
-
N(
|
|
2679
|
+
N(te.FmIcon, { name: "warning", color: "warning", size: "md" })
|
|
2680
2680
|
]);
|
|
2681
2681
|
}
|
|
2682
2682
|
}
|
|
@@ -2684,15 +2684,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2684
2684
|
return (s, r) => {
|
|
2685
2685
|
const b = L("FmSearch"), x = L("FmButton"), d = L("FmTable");
|
|
2686
2686
|
return A(), V("div", null, [
|
|
2687
|
-
n("div",
|
|
2688
|
-
n("div",
|
|
2687
|
+
n("div", Ks, [
|
|
2688
|
+
n("div", Hs, [
|
|
2689
2689
|
I(b, {
|
|
2690
2690
|
placeholder: "Search by Item",
|
|
2691
2691
|
class: "w-[300px]",
|
|
2692
2692
|
modelValue: h.value,
|
|
2693
2693
|
"onUpdate:modelValue": r[0] || (r[0] = (o) => h.value = o)
|
|
2694
2694
|
}, null, 8, ["modelValue"]),
|
|
2695
|
-
I(F(
|
|
2695
|
+
I(F(Pt), {
|
|
2696
2696
|
modelValue: g.value,
|
|
2697
2697
|
"onUpdate:modelValue": r[1] || (r[1] = (o) => g.value = o),
|
|
2698
2698
|
attributes: C
|
|
@@ -2718,10 +2718,10 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2718
2718
|
]);
|
|
2719
2719
|
};
|
|
2720
2720
|
}
|
|
2721
|
-
}),
|
|
2721
|
+
}), Xs = { class: "p-8" }, Ys = /* @__PURE__ */ W({
|
|
2722
2722
|
__name: "UnitTypesTab",
|
|
2723
2723
|
setup(S) {
|
|
2724
|
-
const c =
|
|
2724
|
+
const c = je(), e = xe(), f = O(), t = O(""), u = z(() => e.state.setting.units), l = [
|
|
2725
2725
|
{
|
|
2726
2726
|
id: "unit",
|
|
2727
2727
|
header: () => "FeedMe Unit",
|
|
@@ -2734,7 +2734,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2734
2734
|
const p = a.row.original, y = c.units.find((h) => h._id === p.id);
|
|
2735
2735
|
if (!y)
|
|
2736
2736
|
return N("div", "Unknown Unit");
|
|
2737
|
-
const m = N(
|
|
2737
|
+
const m = N(te.FmIcon, {
|
|
2738
2738
|
name: "measuring_tape",
|
|
2739
2739
|
color: "neutral-gray-400",
|
|
2740
2740
|
size: "md",
|
|
@@ -2761,7 +2761,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2761
2761
|
header: () => "NetSuite Unit Type",
|
|
2762
2762
|
accessorFn: (a) => `${a.netSuiteId} ${a.baseUnitUnitOfMeasureId || ""}`,
|
|
2763
2763
|
cell(a) {
|
|
2764
|
-
const p = a.row.original, y = N(
|
|
2764
|
+
const p = a.row.original, y = N(te.FmIcon, {
|
|
2765
2765
|
name: "cloud",
|
|
2766
2766
|
color: "neutral-gray-400",
|
|
2767
2767
|
size: "md",
|
|
@@ -2790,7 +2790,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2790
2790
|
return (a, p) => {
|
|
2791
2791
|
const y = L("FmSearch"), m = L("FmTable");
|
|
2792
2792
|
return A(), V("div", null, [
|
|
2793
|
-
n("div",
|
|
2793
|
+
n("div", Xs, [
|
|
2794
2794
|
I(y, {
|
|
2795
2795
|
placeholder: "Search by Unit Type",
|
|
2796
2796
|
class: "w-[300px]",
|
|
@@ -2810,10 +2810,10 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2810
2810
|
]);
|
|
2811
2811
|
};
|
|
2812
2812
|
}
|
|
2813
|
-
}),
|
|
2813
|
+
}), Qs = { key: 0 }, Gs = {
|
|
2814
2814
|
key: 1,
|
|
2815
2815
|
class: "flex flex-col gap-8 w-full"
|
|
2816
|
-
},
|
|
2816
|
+
}, Js = { class: "flex gap-2 flex-wrap" }, Zs = { class: "flex items-center gap-2 text-sm text-gray-500" }, Ws = { class: "font-medium" }, ea = { class: "flex gap-8 items-center justify-start" }, ta = /* @__PURE__ */ W({
|
|
2817
2817
|
__name: "BusinessNetSuiteSideSheet",
|
|
2818
2818
|
props: {
|
|
2819
2819
|
show: { type: Boolean },
|
|
@@ -2821,7 +2821,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2821
2821
|
},
|
|
2822
2822
|
emits: ["update:show", "update:loading"],
|
|
2823
2823
|
setup(S, { emit: c }) {
|
|
2824
|
-
const e = be(), f = xe(), t = S, u = c, l =
|
|
2824
|
+
const e = be(), f = xe(), t = S, u = c, l = Ee(t, "show"), a = O(
|
|
2825
2825
|
"locations"
|
|
2826
2826
|
/* LOCATIONS */
|
|
2827
2827
|
), p = [
|
|
@@ -2846,7 +2846,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2846
2846
|
const C = L("FmChip"), E = L("FmTabs"), k = L("FmButton"), s = L("FmSideSheet");
|
|
2847
2847
|
return A(), H(s, {
|
|
2848
2848
|
modelValue: F(l),
|
|
2849
|
-
"onUpdate:modelValue": g[2] || (g[2] = (r) =>
|
|
2849
|
+
"onUpdate:modelValue": g[2] || (g[2] = (r) => Fe(l) ? l.value = r : null),
|
|
2850
2850
|
header: F(y)("inventory.integration.netsuite.title"),
|
|
2851
2851
|
"dismiss-away": "",
|
|
2852
2852
|
"close-button": "",
|
|
@@ -2855,19 +2855,19 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2855
2855
|
default: M(() => {
|
|
2856
2856
|
var r;
|
|
2857
2857
|
return [
|
|
2858
|
-
(r = F(e).sessionUser.value) != null && r.role.isAdmin ? (A(), V("div",
|
|
2858
|
+
(r = F(e).sessionUser.value) != null && r.role.isAdmin ? (A(), V("div", Gs, [
|
|
2859
2859
|
g[4] || (g[4] = n("div", { class: "text-sm" }, " This integration keeps your FeedMe system and NetSuite in sync for the following modules: ", -1)),
|
|
2860
|
-
n("div",
|
|
2861
|
-
(A(), V(
|
|
2860
|
+
n("div", Js, [
|
|
2861
|
+
(A(), V(J, null, se(v, (b) => I(C, {
|
|
2862
2862
|
key: b,
|
|
2863
2863
|
label: b,
|
|
2864
2864
|
compact: ""
|
|
2865
2865
|
}, null, 8, ["label"])), 64))
|
|
2866
2866
|
]),
|
|
2867
2867
|
g[5] || (g[5] = n("div", { class: "text-xs mt-2" }, " Changes made in FeedMe or NetSuite will be reflected in both systems, ensuring data consistency and streamlined operations. ", -1)),
|
|
2868
|
-
n("div",
|
|
2868
|
+
n("div", Zs, [
|
|
2869
2869
|
g[3] || (g[3] = n("span", null, "NetSuite Last Sync:", -1)),
|
|
2870
|
-
n("span",
|
|
2870
|
+
n("span", Ws, B(m.value), 1)
|
|
2871
2871
|
]),
|
|
2872
2872
|
g[6] || (g[6] = n("hr", { class: "my-3" }, null, -1)),
|
|
2873
2873
|
I(E, {
|
|
@@ -2875,15 +2875,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2875
2875
|
"onUpdate:modelValue": g[0] || (g[0] = (b) => a.value = b),
|
|
2876
2876
|
items: p
|
|
2877
2877
|
}, null, 8, ["model-value"]),
|
|
2878
|
-
a.value === "locations" ? (A(), H(
|
|
2879
|
-
a.value === "vendors" ? (A(), H(
|
|
2880
|
-
a.value === "items" ? (A(), H(
|
|
2881
|
-
a.value === "unitTypes" ? (A(), H(
|
|
2882
|
-
])) : (A(), V("div",
|
|
2878
|
+
a.value === "locations" ? (A(), H(_s, { key: 0 })) : j("", !0),
|
|
2879
|
+
a.value === "vendors" ? (A(), H($s, { key: 1 })) : j("", !0),
|
|
2880
|
+
a.value === "items" ? (A(), H(qs, { key: 2 })) : j("", !0),
|
|
2881
|
+
a.value === "unitTypes" ? (A(), H(Ys, { key: 3 })) : j("", !0)
|
|
2882
|
+
])) : (A(), V("div", Qs, " Please contact your administrator to apply the changes. "))
|
|
2883
2883
|
];
|
|
2884
2884
|
}),
|
|
2885
2885
|
"side-sheet-footer": M(() => [
|
|
2886
|
-
n("div",
|
|
2886
|
+
n("div", ea, [
|
|
2887
2887
|
I(k, {
|
|
2888
2888
|
variant: "tertiary",
|
|
2889
2889
|
label: F(y)("common.close"),
|
|
@@ -2895,7 +2895,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2895
2895
|
}, 8, ["modelValue", "header"]);
|
|
2896
2896
|
};
|
|
2897
2897
|
}
|
|
2898
|
-
}),
|
|
2898
|
+
}), na = /* @__PURE__ */ W({
|
|
2899
2899
|
__name: "InventoryTransferIngredientTable",
|
|
2900
2900
|
props: {
|
|
2901
2901
|
modelValue: { default: [] },
|
|
@@ -2903,7 +2903,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2903
2903
|
},
|
|
2904
2904
|
emits: ["update:modelValue"],
|
|
2905
2905
|
setup(S) {
|
|
2906
|
-
const { t: c } =
|
|
2906
|
+
const { t: c } = Qe(), e = Nt(S, "modelValue"), f = [
|
|
2907
2907
|
{
|
|
2908
2908
|
id: "Code",
|
|
2909
2909
|
header: () => c("inventory.transfer.form.items.table.Code"),
|
|
@@ -2912,7 +2912,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2912
2912
|
cell(t) {
|
|
2913
2913
|
const u = t.row.original;
|
|
2914
2914
|
return N(
|
|
2915
|
-
|
|
2915
|
+
te.FmTooltip,
|
|
2916
2916
|
{
|
|
2917
2917
|
content: u.code,
|
|
2918
2918
|
placement: "top",
|
|
@@ -2937,7 +2937,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2937
2937
|
cell(t) {
|
|
2938
2938
|
const u = t.row.original;
|
|
2939
2939
|
return N(
|
|
2940
|
-
|
|
2940
|
+
te.FmTooltip,
|
|
2941
2941
|
{
|
|
2942
2942
|
content: u.name,
|
|
2943
2943
|
placement: "top",
|
|
@@ -2961,7 +2961,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2961
2961
|
minSize: 200,
|
|
2962
2962
|
cell(t) {
|
|
2963
2963
|
const u = t.row.original, l = t.row.index;
|
|
2964
|
-
return N(
|
|
2964
|
+
return N(Un, {
|
|
2965
2965
|
style: {
|
|
2966
2966
|
flex: "1 1 0%"
|
|
2967
2967
|
},
|
|
@@ -2984,7 +2984,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2984
2984
|
...e.value.slice(l + 1)
|
|
2985
2985
|
];
|
|
2986
2986
|
},
|
|
2987
|
-
rules: [
|
|
2987
|
+
rules: [zn(+jn({ amount: 1, precision: 0 }))],
|
|
2988
2988
|
applyDefaultRules: !0
|
|
2989
2989
|
});
|
|
2990
2990
|
},
|
|
@@ -2996,7 +2996,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
2996
2996
|
cell(t) {
|
|
2997
2997
|
const u = t.row.original, l = t.row.index;
|
|
2998
2998
|
return N("div", { class: "flex justify-end" }, [
|
|
2999
|
-
N(
|
|
2999
|
+
N(te.FmButton, {
|
|
3000
3000
|
key: u.sku._id,
|
|
3001
3001
|
class: "delete-button",
|
|
3002
3002
|
type: "button",
|
|
@@ -3029,11 +3029,11 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3029
3029
|
}, null, 8, ["row-data", "row-key", "empty-text"]);
|
|
3030
3030
|
};
|
|
3031
3031
|
}
|
|
3032
|
-
}),
|
|
3032
|
+
}), oa = { class: "flex items-center gap-8 mb-8" }, sa = /* @__PURE__ */ W({
|
|
3033
3033
|
__name: "InventoryTransferOutTable",
|
|
3034
3034
|
setup(S) {
|
|
3035
|
-
const c = O([]), e =
|
|
3036
|
-
|
|
3035
|
+
const c = O([]), e = Pe(), f = O(!1), t = O(!1), u = ue(), l = ye();
|
|
3036
|
+
Le(async () => {
|
|
3037
3037
|
const m = /* @__PURE__ */ new Date(), v = /* @__PURE__ */ new Date();
|
|
3038
3038
|
v.setDate(v.getDate() - 30), f.value = !0;
|
|
3039
3039
|
try {
|
|
@@ -3080,7 +3080,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3080
3080
|
cell: (m) => {
|
|
3081
3081
|
const v = m.row.original.destinationLocation.netSuiteName;
|
|
3082
3082
|
return v ? N(
|
|
3083
|
-
|
|
3083
|
+
te.FmTooltip,
|
|
3084
3084
|
{ zIndex: 51 },
|
|
3085
3085
|
{
|
|
3086
3086
|
content() {
|
|
@@ -3126,7 +3126,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3126
3126
|
N(
|
|
3127
3127
|
"span",
|
|
3128
3128
|
{ class: "fm-typo-en-body-sm-400" },
|
|
3129
|
-
`Date: ${v ?
|
|
3129
|
+
`Date: ${v ? mt(rt(v)) : "N/A"}`
|
|
3130
3130
|
)
|
|
3131
3131
|
]);
|
|
3132
3132
|
}
|
|
@@ -3155,8 +3155,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3155
3155
|
], y = O();
|
|
3156
3156
|
return (m, v) => {
|
|
3157
3157
|
const h = L("FmButton"), g = L("FmTable");
|
|
3158
|
-
return A(), V(
|
|
3159
|
-
n("div",
|
|
3158
|
+
return A(), V(J, null, [
|
|
3159
|
+
n("div", oa, [
|
|
3160
3160
|
v[1] || (v[1] = n("span", null, "Last 30 Days:", -1)),
|
|
3161
3161
|
I(h, {
|
|
3162
3162
|
"prepend-icon": "sync",
|
|
@@ -3179,19 +3179,19 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3179
3179
|
], 64);
|
|
3180
3180
|
};
|
|
3181
3181
|
}
|
|
3182
|
-
}),
|
|
3182
|
+
}), aa = { class: "flex flex-col gap-8" }, la = {
|
|
3183
3183
|
key: 0,
|
|
3184
3184
|
class: "flex flex-col gap-4"
|
|
3185
|
-
},
|
|
3185
|
+
}, ia = { class: "flex gap-2" }, ra = {
|
|
3186
3186
|
key: 1,
|
|
3187
3187
|
class: "flex items-center my-2 border rounded-lg p-2"
|
|
3188
|
-
},
|
|
3188
|
+
}, ua = { class: "flex flex-col" }, da = { class: "font-medium" }, ca = { class: "text-xs text-gray-400" }, ma = { class: "text-xs text-gray-400" }, pa = { class: "flex my-4" }, fa = { class: "flex" }, va = {
|
|
3189
3189
|
key: 1,
|
|
3190
3190
|
class: "flex flex-col"
|
|
3191
|
-
},
|
|
3191
|
+
}, ga = {
|
|
3192
3192
|
key: 1,
|
|
3193
3193
|
class: "flex flex-col"
|
|
3194
|
-
},
|
|
3194
|
+
}, ya = /* @__PURE__ */ W({
|
|
3195
3195
|
__name: "InventoryTransfer",
|
|
3196
3196
|
props: {
|
|
3197
3197
|
nsLocations: {},
|
|
@@ -3199,7 +3199,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3199
3199
|
currentLocationSubsidiary: {}
|
|
3200
3200
|
},
|
|
3201
3201
|
setup(S) {
|
|
3202
|
-
const c =
|
|
3202
|
+
const c = Re(), e = xe(), f = je(), t = Pe(), u = ue(), { t: l } = Qe(), a = O([]), p = [{ label: "Transfer Out" }, { label: "History" }], y = O(p[0]), m = O(!1), v = O(null), h = O(null), g = S, C = z(() => {
|
|
3203
3203
|
const x = e.currentLocationSetting, d = e.configuredLocations;
|
|
3204
3204
|
return g.nsLocations.map((o) => ({
|
|
3205
3205
|
label: o.name,
|
|
@@ -3276,7 +3276,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3276
3276
|
c.open({
|
|
3277
3277
|
title: l("inventory.transfer.form.items.selectItem"),
|
|
3278
3278
|
closeButton: !0,
|
|
3279
|
-
contentComponent:
|
|
3279
|
+
contentComponent: Rn,
|
|
3280
3280
|
contentComponentProps: {
|
|
3281
3281
|
modelValue: w,
|
|
3282
3282
|
items: i,
|
|
@@ -3293,7 +3293,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3293
3293
|
}
|
|
3294
3294
|
}).onPrimary((R) => {
|
|
3295
3295
|
const $ = a.value, X = R.map((U) => {
|
|
3296
|
-
const P = $.find((
|
|
3296
|
+
const P = $.find((we) => we.sku._id === U._id);
|
|
3297
3297
|
return P || {
|
|
3298
3298
|
sku: U,
|
|
3299
3299
|
code: U.code,
|
|
@@ -3309,14 +3309,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3309
3309
|
}
|
|
3310
3310
|
return (x, d) => {
|
|
3311
3311
|
const o = L("FmButtonGroup"), i = L("FmLabel"), w = L("FmField"), R = L("FmSimpleDatePicker"), $ = L("FmTimePicker"), X = L("FmSelect"), U = L("FmIcon"), P = L("FmButton");
|
|
3312
|
-
return A(), V("div",
|
|
3312
|
+
return A(), V("div", aa, [
|
|
3313
3313
|
I(o, {
|
|
3314
3314
|
modelValue: y.value,
|
|
3315
3315
|
"onUpdate:modelValue": d[0] || (d[0] = (Y) => y.value = Y),
|
|
3316
3316
|
items: p
|
|
3317
3317
|
}, null, 8, ["modelValue"]),
|
|
3318
|
-
y.value.label === "Transfer Out" ? (A(), V(
|
|
3319
|
-
F(e).inventoryTransferOutEnabled ? (A(), V("div",
|
|
3318
|
+
y.value.label === "Transfer Out" ? (A(), V(J, { key: 0 }, [
|
|
3319
|
+
F(e).inventoryTransferOutEnabled ? (A(), V("div", la, [
|
|
3320
3320
|
I(i, { class: "fm-typo-en-body-md-600" }, {
|
|
3321
3321
|
default: M(() => d[6] || (d[6] = [
|
|
3322
3322
|
le("Type")
|
|
@@ -3375,7 +3375,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3375
3375
|
])),
|
|
3376
3376
|
_: 1
|
|
3377
3377
|
}),
|
|
3378
|
-
n("div",
|
|
3378
|
+
n("div", ia, [
|
|
3379
3379
|
h.value ? j("", !0) : (A(), H(X, {
|
|
3380
3380
|
key: 0,
|
|
3381
3381
|
class: "my-4 w-full",
|
|
@@ -3385,7 +3385,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3385
3385
|
searchTarget: "label",
|
|
3386
3386
|
items: C.value
|
|
3387
3387
|
}, null, 8, ["modelValue", "items"])),
|
|
3388
|
-
h.value ? (A(), V("div",
|
|
3388
|
+
h.value ? (A(), V("div", ra, [
|
|
3389
3389
|
I(U, {
|
|
3390
3390
|
name: "cloud",
|
|
3391
3391
|
color: "neutral-gray-400",
|
|
@@ -3393,10 +3393,10 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3393
3393
|
class: "mr-2",
|
|
3394
3394
|
outline: ""
|
|
3395
3395
|
}),
|
|
3396
|
-
n("div",
|
|
3397
|
-
n("span",
|
|
3398
|
-
n("span",
|
|
3399
|
-
n("span",
|
|
3396
|
+
n("div", ua, [
|
|
3397
|
+
n("span", da, B(h.value.name), 1),
|
|
3398
|
+
n("span", ca, "ID: " + B(h.value.netsuiteId), 1),
|
|
3399
|
+
n("span", ma, "Subsidiary: " + B(h.value.subsidiaryName), 1)
|
|
3400
3400
|
]),
|
|
3401
3401
|
I(P, {
|
|
3402
3402
|
class: "ml-2",
|
|
@@ -3406,7 +3406,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3406
3406
|
})
|
|
3407
3407
|
])) : j("", !0)
|
|
3408
3408
|
]),
|
|
3409
|
-
n("div",
|
|
3409
|
+
n("div", pa, [
|
|
3410
3410
|
I(P, {
|
|
3411
3411
|
class: "ml-auto",
|
|
3412
3412
|
variant: "secondary",
|
|
@@ -3415,11 +3415,11 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3415
3415
|
onClick: b
|
|
3416
3416
|
})
|
|
3417
3417
|
]),
|
|
3418
|
-
I(
|
|
3418
|
+
I(na, {
|
|
3419
3419
|
modelValue: a.value,
|
|
3420
3420
|
"onUpdate:modelValue": d[5] || (d[5] = (Y) => a.value = Y)
|
|
3421
3421
|
}, null, 8, ["modelValue"]),
|
|
3422
|
-
n("div",
|
|
3422
|
+
n("div", fa, [
|
|
3423
3423
|
I(P, {
|
|
3424
3424
|
class: "ml-auto mt-4",
|
|
3425
3425
|
variant: "primary",
|
|
@@ -3430,7 +3430,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3430
3430
|
onClick: r
|
|
3431
3431
|
}, null, 8, ["disabled", "loading"])
|
|
3432
3432
|
])
|
|
3433
|
-
])) : (A(), V("div",
|
|
3433
|
+
])) : (A(), V("div", va, [
|
|
3434
3434
|
I(i, { class: "fm-typo-en-body-md-600" }, {
|
|
3435
3435
|
default: M(() => d[12] || (d[12] = [
|
|
3436
3436
|
le(" Feature is not enabled. Please contact your administrator. ")
|
|
@@ -3439,22 +3439,22 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3439
3439
|
})
|
|
3440
3440
|
]))
|
|
3441
3441
|
], 64)) : j("", !0),
|
|
3442
|
-
y.value.label === "History" ? (A(), V("div",
|
|
3443
|
-
I(
|
|
3442
|
+
y.value.label === "History" ? (A(), V("div", ga, [
|
|
3443
|
+
I(sa)
|
|
3444
3444
|
])) : j("", !0)
|
|
3445
3445
|
]);
|
|
3446
3446
|
};
|
|
3447
3447
|
}
|
|
3448
|
-
}),
|
|
3448
|
+
}), ba = { class: "flex flex-col gap-8" }, xa = {
|
|
3449
3449
|
key: 0,
|
|
3450
3450
|
class: "flex flex-col gap-4"
|
|
3451
|
-
},
|
|
3451
|
+
}, Aa = { class: "flex flex-col gap-2" }, ha = { class: "flex flex-col gap-2 pl-6" }, Ia = { key: 1 }, Sa = { class: "flex justify-end" }, wa = { class: "flex flex-col gap-4" }, Ca = { class: "ml-auto flex gap-4" }, ka = /* @__PURE__ */ W({
|
|
3452
3452
|
__name: "TransferOrder",
|
|
3453
3453
|
props: {
|
|
3454
3454
|
currentLocationSetting: {}
|
|
3455
3455
|
},
|
|
3456
3456
|
setup(S) {
|
|
3457
|
-
const c = be(), e =
|
|
3457
|
+
const c = be(), e = Pe(), f = ue(), t = O(!1), u = S, l = O([]), a = O(/* @__PURE__ */ new Set()), p = O(!1), y = O(ve.enum[1]), m = [
|
|
3458
3458
|
{ value: ve.enum[1], label: "Version 1" },
|
|
3459
3459
|
{
|
|
3460
3460
|
value: ve.enum[2],
|
|
@@ -3524,7 +3524,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3524
3524
|
return (x, d) => {
|
|
3525
3525
|
var X;
|
|
3526
3526
|
const o = L("FmButton"), i = L("FmCheckbox"), w = L("FmRadio"), R = L("FmRadioGroup"), $ = L("FmDialog");
|
|
3527
|
-
return A(), V("div",
|
|
3527
|
+
return A(), V("div", ba, [
|
|
3528
3528
|
n("span", null, "Current date and time: " + B((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
3529
3529
|
I(o, {
|
|
3530
3530
|
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
@@ -3533,9 +3533,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3533
3533
|
disabled: t.value,
|
|
3534
3534
|
loading: t.value
|
|
3535
3535
|
}, null, 8, ["disabled", "loading"]),
|
|
3536
|
-
l.value.length > 0 ? (A(), V("div",
|
|
3536
|
+
l.value.length > 0 ? (A(), V("div", xa, [
|
|
3537
3537
|
d[3] || (d[3] = n("p", null, "Transfer Order NetSuite ID not match with existing orders", -1)),
|
|
3538
|
-
n("div",
|
|
3538
|
+
n("div", Aa, [
|
|
3539
3539
|
(X = F(c).sessionUser.value) != null && X.role.isAdmin ? (A(), H(i, {
|
|
3540
3540
|
key: 0,
|
|
3541
3541
|
label: "Select All",
|
|
@@ -3545,8 +3545,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3545
3545
|
disabled: t.value,
|
|
3546
3546
|
"onUpdate:modelValue": g
|
|
3547
3547
|
}, null, 8, ["modelValue", "indeterminate", "disabled"])) : j("", !0),
|
|
3548
|
-
n("ul",
|
|
3549
|
-
(A(!0), V(
|
|
3548
|
+
n("ul", ha, [
|
|
3549
|
+
(A(!0), V(J, null, se(l.value, (U) => {
|
|
3550
3550
|
var P;
|
|
3551
3551
|
return A(), V("li", {
|
|
3552
3552
|
key: U.id,
|
|
@@ -3559,13 +3559,13 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3559
3559
|
modelValue: E(U.id),
|
|
3560
3560
|
disabled: t.value,
|
|
3561
3561
|
"onUpdate:modelValue": (Y) => C(U.id, Y)
|
|
3562
|
-
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (A(), V("span",
|
|
3562
|
+
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (A(), V("span", Ia, B(U.id) + " (" + B(U.tranid) + ")", 1))
|
|
3563
3563
|
]);
|
|
3564
3564
|
}), 128))
|
|
3565
3565
|
])
|
|
3566
3566
|
]),
|
|
3567
|
-
n("div",
|
|
3568
|
-
I(
|
|
3567
|
+
n("div", Sa, [
|
|
3568
|
+
I(pt, null, {
|
|
3569
3569
|
default: M(() => [
|
|
3570
3570
|
l.value.length > 0 ? (A(), H(o, {
|
|
3571
3571
|
key: 0,
|
|
@@ -3589,7 +3589,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3589
3589
|
n("span", { class: "fm-typo-en-heading-lg-700" }, "Select Sync Version", -1)
|
|
3590
3590
|
])),
|
|
3591
3591
|
"dialog-footer": M(() => [
|
|
3592
|
-
n("div",
|
|
3592
|
+
n("div", Ca, [
|
|
3593
3593
|
I(o, {
|
|
3594
3594
|
label: "Not now",
|
|
3595
3595
|
variant: "secondary",
|
|
@@ -3603,14 +3603,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3603
3603
|
])
|
|
3604
3604
|
]),
|
|
3605
3605
|
default: M(() => [
|
|
3606
|
-
n("div",
|
|
3606
|
+
n("div", wa, [
|
|
3607
3607
|
n("p", null, " Choose which order version to use for syncing " + B(a.value.size) + " selected transfer orders: ", 1),
|
|
3608
3608
|
I(R, {
|
|
3609
3609
|
modelValue: y.value,
|
|
3610
3610
|
"onUpdate:modelValue": d[0] || (d[0] = (U) => y.value = U)
|
|
3611
3611
|
}, {
|
|
3612
3612
|
default: M(() => [
|
|
3613
|
-
(A(), V(
|
|
3613
|
+
(A(), V(J, null, se(m, (U) => I(w, {
|
|
3614
3614
|
key: U.value,
|
|
3615
3615
|
value: U.value,
|
|
3616
3616
|
label: U.label,
|
|
@@ -3626,16 +3626,16 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3626
3626
|
]);
|
|
3627
3627
|
};
|
|
3628
3628
|
}
|
|
3629
|
-
}),
|
|
3629
|
+
}), _a = { class: "flex flex-col gap-8" }, Fa = {
|
|
3630
3630
|
key: 0,
|
|
3631
3631
|
class: "flex flex-col gap-4"
|
|
3632
|
-
},
|
|
3632
|
+
}, Ea = { class: "flex flex-col gap-2" }, Ba = { class: "flex flex-col gap-2 pl-6" }, Va = { key: 1 }, Na = { class: "flex justify-end" }, Da = { class: "flex flex-col gap-4" }, La = { class: "ml-auto flex gap-4" }, Ta = /* @__PURE__ */ W({
|
|
3633
3633
|
__name: "PurchaseOrder",
|
|
3634
3634
|
props: {
|
|
3635
3635
|
currentLocationSetting: {}
|
|
3636
3636
|
},
|
|
3637
3637
|
setup(S) {
|
|
3638
|
-
const c = be(), e =
|
|
3638
|
+
const c = be(), e = Pe(), f = ue(), t = O(!1), u = S, l = O([]), a = O(/* @__PURE__ */ new Set()), p = O(!1), y = O(ve.enum[1]), m = [
|
|
3639
3639
|
{ value: ve.enum[1], label: "Version 1" },
|
|
3640
3640
|
{
|
|
3641
3641
|
value: ve.enum[2],
|
|
@@ -3705,7 +3705,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3705
3705
|
return (x, d) => {
|
|
3706
3706
|
var X;
|
|
3707
3707
|
const o = L("FmButton"), i = L("FmCheckbox"), w = L("FmRadio"), R = L("FmRadioGroup"), $ = L("FmDialog");
|
|
3708
|
-
return A(), V("div",
|
|
3708
|
+
return A(), V("div", _a, [
|
|
3709
3709
|
n("span", null, "Current date and time: " + B((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
3710
3710
|
I(o, {
|
|
3711
3711
|
label: "Check Unsync Purchase Order (Last 2 months)",
|
|
@@ -3714,9 +3714,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3714
3714
|
disabled: t.value,
|
|
3715
3715
|
loading: t.value
|
|
3716
3716
|
}, null, 8, ["disabled", "loading"]),
|
|
3717
|
-
l.value.length > 0 ? (A(), V("div",
|
|
3717
|
+
l.value.length > 0 ? (A(), V("div", Fa, [
|
|
3718
3718
|
d[3] || (d[3] = n("p", null, "Purchase Order NetSuite ID not match with existing orders", -1)),
|
|
3719
|
-
n("div",
|
|
3719
|
+
n("div", Ea, [
|
|
3720
3720
|
(X = F(c).sessionUser.value) != null && X.role.isAdmin ? (A(), H(i, {
|
|
3721
3721
|
key: 0,
|
|
3722
3722
|
label: "Select All",
|
|
@@ -3726,8 +3726,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3726
3726
|
disabled: t.value,
|
|
3727
3727
|
"onUpdate:modelValue": g
|
|
3728
3728
|
}, null, 8, ["modelValue", "indeterminate", "disabled"])) : j("", !0),
|
|
3729
|
-
n("ul",
|
|
3730
|
-
(A(!0), V(
|
|
3729
|
+
n("ul", Ba, [
|
|
3730
|
+
(A(!0), V(J, null, se(l.value, (U) => {
|
|
3731
3731
|
var P;
|
|
3732
3732
|
return A(), V("li", {
|
|
3733
3733
|
key: U.id,
|
|
@@ -3740,15 +3740,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3740
3740
|
modelValue: E(U.id),
|
|
3741
3741
|
disabled: t.value,
|
|
3742
3742
|
"onUpdate:modelValue": (Y) => C(U.id, Y)
|
|
3743
|
-
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (A(), V("div",
|
|
3743
|
+
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (A(), V("div", Va, [
|
|
3744
3744
|
n("span", null, B(U.id) + " (" + B(U.tranid) + ") [" + B(U.entity.id) + " (" + B(U.entity.name) + ")] ", 1)
|
|
3745
3745
|
]))
|
|
3746
3746
|
]);
|
|
3747
3747
|
}), 128))
|
|
3748
3748
|
])
|
|
3749
3749
|
]),
|
|
3750
|
-
n("div",
|
|
3751
|
-
I(
|
|
3750
|
+
n("div", Na, [
|
|
3751
|
+
I(pt, null, {
|
|
3752
3752
|
default: M(() => [
|
|
3753
3753
|
l.value.length > 0 ? (A(), H(o, {
|
|
3754
3754
|
key: 0,
|
|
@@ -3772,7 +3772,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3772
3772
|
n("span", { class: "fm-typo-en-heading-lg-700" }, "Select Sync Version", -1)
|
|
3773
3773
|
])),
|
|
3774
3774
|
"dialog-footer": M(() => [
|
|
3775
|
-
n("div",
|
|
3775
|
+
n("div", La, [
|
|
3776
3776
|
I(o, {
|
|
3777
3777
|
label: "Not now",
|
|
3778
3778
|
variant: "secondary",
|
|
@@ -3786,14 +3786,14 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3786
3786
|
])
|
|
3787
3787
|
]),
|
|
3788
3788
|
default: M(() => [
|
|
3789
|
-
n("div",
|
|
3789
|
+
n("div", Da, [
|
|
3790
3790
|
n("p", null, " Choose which order version to use for syncing " + B(a.value.size) + " selected purchase orders: ", 1),
|
|
3791
3791
|
I(R, {
|
|
3792
3792
|
modelValue: y.value,
|
|
3793
3793
|
"onUpdate:modelValue": d[0] || (d[0] = (U) => y.value = U)
|
|
3794
3794
|
}, {
|
|
3795
3795
|
default: M(() => [
|
|
3796
|
-
(A(), V(
|
|
3796
|
+
(A(), V(J, null, se(m, (U) => I(w, {
|
|
3797
3797
|
key: U.value,
|
|
3798
3798
|
value: U.value,
|
|
3799
3799
|
label: U.label,
|
|
@@ -3809,7 +3809,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3809
3809
|
]);
|
|
3810
3810
|
};
|
|
3811
3811
|
}
|
|
3812
|
-
}),
|
|
3812
|
+
}), Ra = { class: "flex flex-col gap-8 w-full" }, Ma = { class: "flex gap-4 justify-between" }, Oa = { class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 bg-fm-color-neutral-gray-100 text-fm-color-neutral-gray-400" }, Ua = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, za = { key: 0 }, ja = { class: "flex gap-8 items-center justify-start" }, Pa = /* @__PURE__ */ W({
|
|
3813
3813
|
__name: "NetSuiteSideSheet",
|
|
3814
3814
|
props: {
|
|
3815
3815
|
nsLocations: {},
|
|
@@ -3819,7 +3819,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3819
3819
|
emits: ["update:show"],
|
|
3820
3820
|
setup(S, { emit: c }) {
|
|
3821
3821
|
var E;
|
|
3822
|
-
const e = be(), f = xe(), t = S, u =
|
|
3822
|
+
const e = be(), f = xe(), t = S, u = Ee(t, "show"), { t: l } = ie(), a = c, p = ye(), y = ((E = p._currentLocation) == null ? void 0 : E.type) || "", m = [
|
|
3823
3823
|
{
|
|
3824
3824
|
label: "Inventory Transfer (Out)",
|
|
3825
3825
|
value: "inventoryTransfer"
|
|
@@ -3843,32 +3843,32 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3843
3843
|
const r = L("FmIcon"), b = L("FmTabs"), x = L("FmButton"), d = L("FmSideSheet");
|
|
3844
3844
|
return A(), H(d, {
|
|
3845
3845
|
modelValue: F(u),
|
|
3846
|
-
"onUpdate:modelValue": s[2] || (s[2] = (i) =>
|
|
3846
|
+
"onUpdate:modelValue": s[2] || (s[2] = (i) => Fe(u) ? u.value = i : null),
|
|
3847
3847
|
header: "Data migration (Xilnex)",
|
|
3848
3848
|
"dismiss-away": "",
|
|
3849
3849
|
"close-button": "",
|
|
3850
3850
|
"max-width": 800
|
|
3851
3851
|
}, Se({
|
|
3852
3852
|
default: M(() => [
|
|
3853
|
-
F(f).isCurrentLocationBindedToNetSuite ? (A(), V(
|
|
3854
|
-
v.value === "inventoryTransfer" ? (A(), H(
|
|
3853
|
+
F(f).isCurrentLocationBindedToNetSuite ? (A(), V(J, { key: 1 }, [
|
|
3854
|
+
v.value === "inventoryTransfer" ? (A(), H(ya, {
|
|
3855
3855
|
key: 0,
|
|
3856
3856
|
currentLocationSetting: g.value,
|
|
3857
3857
|
nsLocations: C.value,
|
|
3858
3858
|
currentLocationSubsidiary: h.value
|
|
3859
3859
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : j("", !0),
|
|
3860
|
-
v.value === "transferOrder" ? (A(), H(
|
|
3860
|
+
v.value === "transferOrder" ? (A(), H(ka, {
|
|
3861
3861
|
key: 1,
|
|
3862
3862
|
currentLocationSetting: g.value
|
|
3863
3863
|
}, null, 8, ["currentLocationSetting"])) : j("", !0),
|
|
3864
|
-
v.value === "purchaseOrder" ? (A(), H(
|
|
3864
|
+
v.value === "purchaseOrder" ? (A(), H(Ta, {
|
|
3865
3865
|
key: 2,
|
|
3866
3866
|
currentLocationSetting: g.value
|
|
3867
3867
|
}, null, 8, ["currentLocationSetting"])) : j("", !0)
|
|
3868
|
-
], 64)) : (A(), V("div",
|
|
3868
|
+
], 64)) : (A(), V("div", za, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
3869
3869
|
]),
|
|
3870
3870
|
"side-sheet-footer": M(() => [
|
|
3871
|
-
n("div",
|
|
3871
|
+
n("div", ja, [
|
|
3872
3872
|
I(x, {
|
|
3873
3873
|
variant: "tertiary",
|
|
3874
3874
|
label: F(l)("common.close"),
|
|
@@ -3883,15 +3883,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3883
3883
|
fn: M(() => {
|
|
3884
3884
|
var i;
|
|
3885
3885
|
return [
|
|
3886
|
-
n("div",
|
|
3887
|
-
n("div",
|
|
3886
|
+
n("div", Ra, [
|
|
3887
|
+
n("div", Ma, [
|
|
3888
3888
|
s[3] || (s[3] = n("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
3889
|
-
n("div",
|
|
3889
|
+
n("div", Oa, [
|
|
3890
3890
|
I(r, {
|
|
3891
3891
|
name: F(y),
|
|
3892
3892
|
size: "sm"
|
|
3893
3893
|
}, null, 8, ["name"]),
|
|
3894
|
-
n("div",
|
|
3894
|
+
n("div", Ua, B((i = F(p)._currentLocation) == null ? void 0 : i.name), 1)
|
|
3895
3895
|
])
|
|
3896
3896
|
]),
|
|
3897
3897
|
I(b, {
|
|
@@ -3907,7 +3907,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3907
3907
|
]), 1032, ["modelValue"]);
|
|
3908
3908
|
};
|
|
3909
3909
|
}
|
|
3910
|
-
}),
|
|
3910
|
+
}), $a = { class: "flex justify-center" }, Ka = ["src"], Ha = { class: "flex flex-col items-center gap-2" }, qa = { class: "text-lg font-bold" }, Xa = { class: "text-fm-color-neutral-gray-300" }, Ya = /* @__PURE__ */ W({
|
|
3911
3911
|
__name: "NetSuite",
|
|
3912
3912
|
setup(S) {
|
|
3913
3913
|
const c = xe(), e = ue(), f = O(!1), t = O(!1);
|
|
@@ -3915,7 +3915,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3915
3915
|
t.value = !0;
|
|
3916
3916
|
}
|
|
3917
3917
|
const l = O([]);
|
|
3918
|
-
|
|
3918
|
+
bn(async () => {
|
|
3919
3919
|
if (c.isReady && c.isEnabled && !c.isBusinessLocation) {
|
|
3920
3920
|
f.value = !0;
|
|
3921
3921
|
try {
|
|
@@ -3934,9 +3934,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3934
3934
|
const { t: a } = ie();
|
|
3935
3935
|
return (p, y) => {
|
|
3936
3936
|
const m = L("FmCardSection"), v = L("FmCard");
|
|
3937
|
-
return F(c).isEnabled ? (A(), V(
|
|
3937
|
+
return F(c).isEnabled ? (A(), V(J, { key: 0 }, [
|
|
3938
3938
|
I(v, {
|
|
3939
|
-
class:
|
|
3939
|
+
class: ae({
|
|
3940
3940
|
"w-full": !0,
|
|
3941
3941
|
border: !0,
|
|
3942
3942
|
"border-fm-color-neutral-gray-100": !0,
|
|
@@ -3948,15 +3948,15 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3948
3948
|
default: M(() => [
|
|
3949
3949
|
I(m, null, {
|
|
3950
3950
|
default: M(() => [
|
|
3951
|
-
n("div",
|
|
3951
|
+
n("div", $a, [
|
|
3952
3952
|
n("img", {
|
|
3953
|
-
src: F(
|
|
3953
|
+
src: F(us),
|
|
3954
3954
|
alt: "NetSuite"
|
|
3955
|
-
}, null, 8,
|
|
3955
|
+
}, null, 8, Ka)
|
|
3956
3956
|
]),
|
|
3957
|
-
n("div",
|
|
3958
|
-
n("div",
|
|
3959
|
-
n("div",
|
|
3957
|
+
n("div", Ha, [
|
|
3958
|
+
n("div", qa, B(F(a)("inventory.integration.netsuite.title")), 1),
|
|
3959
|
+
n("div", Xa, B(F(a)("inventory.integration.netsuite.description")), 1)
|
|
3960
3960
|
])
|
|
3961
3961
|
]),
|
|
3962
3962
|
_: 1
|
|
@@ -3964,11 +3964,11 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3964
3964
|
]),
|
|
3965
3965
|
_: 1
|
|
3966
3966
|
}),
|
|
3967
|
-
F(c).state.setting ? (A(), H(
|
|
3967
|
+
F(c).state.setting ? (A(), H(Te, {
|
|
3968
3968
|
key: 0,
|
|
3969
3969
|
to: "body"
|
|
3970
3970
|
}, [
|
|
3971
|
-
F(c).isBusinessLocation ? (A(), H(
|
|
3971
|
+
F(c).isBusinessLocation ? (A(), H(ta, {
|
|
3972
3972
|
key: 0,
|
|
3973
3973
|
show: t.value,
|
|
3974
3974
|
"onUpdate:show": [
|
|
@@ -3977,7 +3977,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3977
3977
|
],
|
|
3978
3978
|
loading: f.value,
|
|
3979
3979
|
"onUpdate:loading": y[3] || (y[3] = (h) => f.value = h)
|
|
3980
|
-
}, null, 8, ["show", "loading"])) : (A(), H(
|
|
3980
|
+
}, null, 8, ["show", "loading"])) : (A(), H(Pa, {
|
|
3981
3981
|
key: 1,
|
|
3982
3982
|
setting: F(c).state.setting,
|
|
3983
3983
|
"onUpdate:setting": y[4] || (y[4] = (h) => F(c).state.setting = h),
|
|
@@ -3995,13 +3995,13 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
3995
3995
|
], 64)) : j("", !0);
|
|
3996
3996
|
};
|
|
3997
3997
|
}
|
|
3998
|
-
}),
|
|
3998
|
+
}), Qa = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5 mb-3" }, Ga = { class: "flex items-center" }, Ja = { class: "text-lg font-bold flex-grow" }, Za = {
|
|
3999
3999
|
key: 0,
|
|
4000
4000
|
class: "table-auto w-full"
|
|
4001
|
-
},
|
|
4001
|
+
}, Wa = { class: "text-left" }, el = { class: "min-w-64" }, tl = { class: "flex flex-col" }, nl = { class: "fm-typo-en-body-md-400" }, ol = {
|
|
4002
4002
|
key: 0,
|
|
4003
4003
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
4004
|
-
},
|
|
4004
|
+
}, sl = { class: "w-1" }, Et = /* @__PURE__ */ W({
|
|
4005
4005
|
__name: "ApplyProductCodemax",
|
|
4006
4006
|
props: {
|
|
4007
4007
|
isAddon: {
|
|
@@ -4027,8 +4027,8 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4027
4027
|
},
|
|
4028
4028
|
emits: ["update:bindings"],
|
|
4029
4029
|
setup(S, { emit: c }) {
|
|
4030
|
-
const e = S, f = c, t =
|
|
4031
|
-
() =>
|
|
4030
|
+
const e = S, f = c, t = Re(), u = z(() => e.isAddon ? "Addons" : "Products"), l = z(() => e.isAddon ? [] : e.categories), a = z(
|
|
4031
|
+
() => qt(l.value, e.variants, e.menus)
|
|
4032
4032
|
), p = z(() => {
|
|
4033
4033
|
if (e.isAddon)
|
|
4034
4034
|
return e.bindings.map((b) => {
|
|
@@ -4135,9 +4135,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4135
4135
|
}));
|
|
4136
4136
|
}
|
|
4137
4137
|
function C(r) {
|
|
4138
|
-
const b =
|
|
4138
|
+
const b = pe(e.bindings);
|
|
4139
4139
|
return r.flatMap((x) => x.children.flatMap((d) => {
|
|
4140
|
-
if (
|
|
4140
|
+
if (me(d))
|
|
4141
4141
|
return d.children.filter((w) => w.active).map((w) => {
|
|
4142
4142
|
const { productId: R, combinationKey: $ } = w.value, X = b.find(
|
|
4143
4143
|
({ productId: P, combinationKey: Y }) => R === P && $ === Y
|
|
@@ -4176,7 +4176,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4176
4176
|
}));
|
|
4177
4177
|
}
|
|
4178
4178
|
function E(r) {
|
|
4179
|
-
const b =
|
|
4179
|
+
const b = pe(e.bindings);
|
|
4180
4180
|
return r.filter((x) => x.active).map((x) => {
|
|
4181
4181
|
const d = b.find(({ productId: o }) => o === x.value.productId);
|
|
4182
4182
|
return {
|
|
@@ -4195,7 +4195,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4195
4195
|
};
|
|
4196
4196
|
t.open({
|
|
4197
4197
|
title: `Select ${u.value}`,
|
|
4198
|
-
contentComponent:
|
|
4198
|
+
contentComponent: ft,
|
|
4199
4199
|
contentComponentProps: b,
|
|
4200
4200
|
primaryActions: {
|
|
4201
4201
|
text: "Confirm",
|
|
@@ -4209,9 +4209,9 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4209
4209
|
const { t: s } = ie();
|
|
4210
4210
|
return (r, b) => {
|
|
4211
4211
|
const x = L("FmButton"), d = L("FmTextField");
|
|
4212
|
-
return A(), V("div",
|
|
4213
|
-
n("div",
|
|
4214
|
-
n("div",
|
|
4212
|
+
return A(), V("div", Qa, [
|
|
4213
|
+
n("div", Ga, [
|
|
4214
|
+
n("div", Ja, B(S.isAddon ? F(s)("inventory.integration.apply.addons") : F(s)("inventory.integration.apply.products")), 1),
|
|
4215
4215
|
I(x, {
|
|
4216
4216
|
type: "button",
|
|
4217
4217
|
variant: "plain",
|
|
@@ -4222,23 +4222,23 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4222
4222
|
}, null, 8, ["label"])
|
|
4223
4223
|
]),
|
|
4224
4224
|
n("div", null, [
|
|
4225
|
-
p.value.length > 0 ? (A(), V("table",
|
|
4225
|
+
p.value.length > 0 ? (A(), V("table", Za, [
|
|
4226
4226
|
n("thead", null, [
|
|
4227
|
-
n("tr",
|
|
4228
|
-
n("th",
|
|
4227
|
+
n("tr", Wa, [
|
|
4228
|
+
n("th", el, B(F(s)("inventory.integration.apply.name")), 1),
|
|
4229
4229
|
n("th", null, B(F(s)("inventory.integration.apply.code")), 1),
|
|
4230
4230
|
n("th", null, B(F(s)("inventory.common.unit")), 1),
|
|
4231
4231
|
b[1] || (b[1] = n("th", { class: "w-1" }, " ", -1))
|
|
4232
4232
|
])
|
|
4233
4233
|
]),
|
|
4234
4234
|
n("tbody", null, [
|
|
4235
|
-
(A(!0), V(
|
|
4235
|
+
(A(!0), V(J, null, se(p.value, (o, i) => (A(), V(J, { key: i }, [
|
|
4236
4236
|
b[2] || (b[2] = n("tr", { class: "block h-8" }, null, -1)),
|
|
4237
4237
|
n("tr", null, [
|
|
4238
4238
|
n("td", null, [
|
|
4239
|
-
n("div",
|
|
4240
|
-
n("div",
|
|
4241
|
-
o.variantName ? (A(), V("div",
|
|
4239
|
+
n("div", tl, [
|
|
4240
|
+
n("div", nl, B(o.menuCode) + " " + B(o.name), 1),
|
|
4241
|
+
o.variantName ? (A(), V("div", ol, B(o.variantName), 1)) : j("", !0)
|
|
4242
4242
|
])
|
|
4243
4243
|
]),
|
|
4244
4244
|
n("td", null, [
|
|
@@ -4263,7 +4263,7 @@ const Eo = { class: "flex flex-col gap-24" }, Bo = { class: "fm-typo-en-body-md-
|
|
|
4263
4263
|
]
|
|
4264
4264
|
}, null, 8, ["model-value", "onUpdate:modelValue", "rules"])
|
|
4265
4265
|
]),
|
|
4266
|
-
n("td",
|
|
4266
|
+
n("td", sl, [
|
|
4267
4267
|
I(x, {
|
|
4268
4268
|
type: "button",
|
|
4269
4269
|
variant: "tertiary",
|
|
@@ -4289,22 +4289,22 @@ function de(S) {
|
|
|
4289
4289
|
function Ie(S) {
|
|
4290
4290
|
return typeof S == "string" ? S : S == null ? "" : String(S);
|
|
4291
4291
|
}
|
|
4292
|
-
function
|
|
4292
|
+
function Ue(S) {
|
|
4293
4293
|
return Array.isArray(S) ? S.filter((c) => c !== null && typeof c == "object") : [];
|
|
4294
4294
|
}
|
|
4295
|
-
function
|
|
4295
|
+
function en(S, c) {
|
|
4296
4296
|
const e = c > 0 && c < 1 ? c * 100 : c;
|
|
4297
4297
|
return e ? `${S} (${Number(e.toFixed(2))}%)` : S;
|
|
4298
4298
|
}
|
|
4299
|
-
function
|
|
4299
|
+
function tn(S, c) {
|
|
4300
4300
|
const e = Ie(c.taxCode), f = Ie(c.taxName), t = `${e}|${f}`, u = S.get(t);
|
|
4301
4301
|
u ? u.amount += de(c.taxAmount) : S.set(t, {
|
|
4302
|
-
label:
|
|
4302
|
+
label: en(f, de(c.taxPercentage)),
|
|
4303
4303
|
amount: de(c.taxAmount)
|
|
4304
4304
|
});
|
|
4305
4305
|
}
|
|
4306
|
-
function
|
|
4307
|
-
const l =
|
|
4306
|
+
function nn(S, c, e, f, t, u) {
|
|
4307
|
+
const l = Ue(S.taxDetails), a = de(S.totalNetPrice), p = l.reduce((y, m) => y + de(m.taxAmount), 0);
|
|
4308
4308
|
e.push({
|
|
4309
4309
|
depth: c,
|
|
4310
4310
|
code: Ie(c === 0 ? S.itemCode : S.modifierCode),
|
|
@@ -4314,35 +4314,35 @@ function Wt(S, c, e, f, t, u) {
|
|
|
4314
4314
|
tax: p,
|
|
4315
4315
|
total: Number((a + p).toFixed(2)),
|
|
4316
4316
|
taxDetails: l.map((y) => ({
|
|
4317
|
-
label:
|
|
4317
|
+
label: en(Ie(y.taxName), de(y.taxPercentage)),
|
|
4318
4318
|
amount: de(y.taxAmount),
|
|
4319
4319
|
percentage: de(y.taxPercentage)
|
|
4320
4320
|
}))
|
|
4321
4321
|
}), t.value += de(S.totalPrice), u.value += de(S.discountAmount);
|
|
4322
4322
|
for (const y of l)
|
|
4323
|
-
|
|
4324
|
-
for (const y of
|
|
4325
|
-
|
|
4323
|
+
tn(f, y);
|
|
4324
|
+
for (const y of Ue(S.invoiceModifiers))
|
|
4325
|
+
nn(y, c + 1, e, f, t, u);
|
|
4326
4326
|
}
|
|
4327
|
-
function
|
|
4327
|
+
function al(S) {
|
|
4328
4328
|
return Math.round(S * 100) / 100;
|
|
4329
4329
|
}
|
|
4330
|
-
function
|
|
4330
|
+
function ll(S) {
|
|
4331
4331
|
return S.tax <= 0 ? null : [
|
|
4332
4332
|
{ label: "Net", amount: S.amount.toFixed(2) },
|
|
4333
4333
|
...S.taxDetails.map((c) => ({ label: c.label, amount: `+${c.amount.toFixed(2)}` }))
|
|
4334
4334
|
];
|
|
4335
4335
|
}
|
|
4336
|
-
function
|
|
4336
|
+
function il(S, c) {
|
|
4337
4337
|
if (S === null || typeof S != "object" || !Array.isArray(S.invoiceItems))
|
|
4338
4338
|
return null;
|
|
4339
4339
|
const e = S, f = [], t = /* @__PURE__ */ new Map(), u = { value: 0 }, l = { value: 0 };
|
|
4340
|
-
for (const C of
|
|
4341
|
-
|
|
4340
|
+
for (const C of Ue(e.invoiceItems))
|
|
4341
|
+
nn(C, 0, f, t, u, l);
|
|
4342
4342
|
l.value += de(e.invoiceDiscountAmount);
|
|
4343
|
-
for (const C of
|
|
4344
|
-
|
|
4345
|
-
const a = [...t.values()], p = de(e.roundingAdj), y = de(e.grandTotal), m = c == null ? 0 :
|
|
4343
|
+
for (const C of Ue(e.taxDetails))
|
|
4344
|
+
tn(t, C);
|
|
4345
|
+
const a = [...t.values()], p = de(e.roundingAdj), y = de(e.grandTotal), m = c == null ? 0 : al(p - c), v = c != null && m !== 0 ? [
|
|
4346
4346
|
{ label: "Rounding (bill)", amount: c },
|
|
4347
4347
|
{ label: "Tax rounding", amount: m }
|
|
4348
4348
|
] : [{ label: "Rounding", amount: p }], h = [
|
|
@@ -4352,51 +4352,51 @@ function ol(S, c) {
|
|
|
4352
4352
|
...a,
|
|
4353
4353
|
...v,
|
|
4354
4354
|
{ label: "Total", amount: y, strong: !0 }
|
|
4355
|
-
], g =
|
|
4355
|
+
], g = Ue(e.invoicePayments).map((C) => ({
|
|
4356
4356
|
label: `${Ie(C.paymentName)} (${Ie(C.paymentCode)})`,
|
|
4357
4357
|
amount: de(C.AmountPaid)
|
|
4358
4358
|
}));
|
|
4359
4359
|
return { lines: f, totals: h, payments: g, taxes: a };
|
|
4360
4360
|
}
|
|
4361
|
-
const
|
|
4361
|
+
const rl = {
|
|
4362
4362
|
key: 0,
|
|
4363
4363
|
class: "text-xs flex flex-col gap-4"
|
|
4364
|
-
},
|
|
4364
|
+
}, ul = { class: "w-[24px] shrink-0 text-right" }, dl = { class: "grow break-words" }, cl = { key: 0 }, ml = {
|
|
4365
4365
|
key: 1,
|
|
4366
4366
|
class: "text-fm-color-neutral-gray-300"
|
|
4367
|
-
},
|
|
4367
|
+
}, pl = { key: 2 }, fl = { class: "shrink-0 flex items-center gap-4" }, vl = { class: "flex flex-col gap-4 border-t border-fm-color-neutral-gray-100 pt-8 mt-4" }, gl = { class: "flex items-center gap-4" }, yl = {
|
|
4368
4368
|
key: 0,
|
|
4369
4369
|
class: "flex flex-col gap-4 border-t border-fm-color-neutral-gray-100 pt-8 mt-4"
|
|
4370
|
-
},
|
|
4370
|
+
}, bl = /* @__PURE__ */ W({
|
|
4371
4371
|
__name: "CodemaxInvoiceReceipt",
|
|
4372
4372
|
props: {
|
|
4373
4373
|
payload: {},
|
|
4374
4374
|
billRounding: {}
|
|
4375
4375
|
},
|
|
4376
4376
|
setup(S) {
|
|
4377
|
-
const c = S, e = z(() =>
|
|
4377
|
+
const c = S, e = z(() => il(c.payload, c.billRounding));
|
|
4378
4378
|
function f(t) {
|
|
4379
4379
|
return t.toFixed(2);
|
|
4380
4380
|
}
|
|
4381
4381
|
return (t, u) => {
|
|
4382
4382
|
const l = L("FmIcon"), a = L("FmTooltip");
|
|
4383
|
-
return e.value ? (A(), V("div",
|
|
4384
|
-
(A(!0), V(
|
|
4383
|
+
return e.value ? (A(), V("div", rl, [
|
|
4384
|
+
(A(!0), V(J, null, se(e.value.lines, (p, y) => (A(), V("div", {
|
|
4385
4385
|
key: y,
|
|
4386
4386
|
class: "flex items-start gap-8",
|
|
4387
|
-
style:
|
|
4387
|
+
style: Dt({ paddingLeft: `${p.depth * 16}px` })
|
|
4388
4388
|
}, [
|
|
4389
|
-
n("div",
|
|
4390
|
-
n("div",
|
|
4391
|
-
p.depth > 1 ? (A(), V("span",
|
|
4392
|
-
p.code ? (A(), V("span",
|
|
4389
|
+
n("div", ul, B(p.depth === 0 ? p.quantity : ""), 1),
|
|
4390
|
+
n("div", dl, [
|
|
4391
|
+
p.depth > 1 ? (A(), V("span", cl, "- ")) : j("", !0),
|
|
4392
|
+
p.code ? (A(), V("span", ml, B(p.code), 1)) : j("", !0),
|
|
4393
4393
|
le(" " + B(p.name) + " ", 1),
|
|
4394
|
-
p.depth > 0 && p.quantity !== 1 ? (A(), V("span",
|
|
4394
|
+
p.depth > 0 && p.quantity !== 1 ? (A(), V("span", pl, " ×" + B(p.quantity), 1)) : j("", !0)
|
|
4395
4395
|
]),
|
|
4396
|
-
n("div",
|
|
4397
|
-
p.depth === 0 ? (A(), V(
|
|
4396
|
+
n("div", fl, [
|
|
4397
|
+
p.depth === 0 ? (A(), V(J, { key: 0 }, [
|
|
4398
4398
|
le(B(f(p.tax > 0 ? p.total : p.amount)), 1)
|
|
4399
|
-
], 64)) : p.amount !== 0 || p.tax > 0 ? (A(), V(
|
|
4399
|
+
], 64)) : p.amount !== 0 || p.tax > 0 ? (A(), V(J, { key: 1 }, [
|
|
4400
4400
|
le("+ " + B(f(p.tax > 0 ? p.total : p.amount)), 1)
|
|
4401
4401
|
], 64)) : j("", !0),
|
|
4402
4402
|
p.tax > 0 ? (A(), H(a, {
|
|
@@ -4406,7 +4406,7 @@ const sl = {
|
|
|
4406
4406
|
"z-index": 60
|
|
4407
4407
|
}, {
|
|
4408
4408
|
content: M(() => [
|
|
4409
|
-
(A(!0), V(
|
|
4409
|
+
(A(!0), V(J, null, se(F(ll)(p), (m) => (A(), V("div", {
|
|
4410
4410
|
key: m.label,
|
|
4411
4411
|
class: "flex justify-between gap-8"
|
|
4412
4412
|
}, [
|
|
@@ -4425,17 +4425,17 @@ const sl = {
|
|
|
4425
4425
|
}, 1024)) : j("", !0)
|
|
4426
4426
|
])
|
|
4427
4427
|
], 4))), 128)),
|
|
4428
|
-
n("div",
|
|
4429
|
-
(A(!0), V(
|
|
4428
|
+
n("div", vl, [
|
|
4429
|
+
(A(!0), V(J, null, se(e.value.totals, (p) => (A(), V("div", {
|
|
4430
4430
|
key: p.label,
|
|
4431
|
-
class:
|
|
4431
|
+
class: ae(["flex items-center justify-between gap-8", p.strong ? "font-bold" : ""])
|
|
4432
4432
|
}, [
|
|
4433
|
-
n("div",
|
|
4433
|
+
n("div", gl, B(p.label), 1),
|
|
4434
4434
|
n("div", null, B(f(p.amount)), 1)
|
|
4435
4435
|
], 2))), 128))
|
|
4436
4436
|
]),
|
|
4437
|
-
e.value.payments.length ? (A(), V("div",
|
|
4438
|
-
(A(!0), V(
|
|
4437
|
+
e.value.payments.length ? (A(), V("div", yl, [
|
|
4438
|
+
(A(!0), V(J, null, se(e.value.payments, (p, y) => (A(), V("div", {
|
|
4439
4439
|
key: y,
|
|
4440
4440
|
class: "flex items-center justify-between gap-8"
|
|
4441
4441
|
}, [
|
|
@@ -4447,7 +4447,7 @@ const sl = {
|
|
|
4447
4447
|
};
|
|
4448
4448
|
}
|
|
4449
4449
|
});
|
|
4450
|
-
var
|
|
4450
|
+
var xl = D.enum([
|
|
4451
4451
|
"401",
|
|
4452
4452
|
"701",
|
|
4453
4453
|
"702",
|
|
@@ -4484,7 +4484,7 @@ var vl = D.enum([
|
|
|
4484
4484
|
"9500",
|
|
4485
4485
|
"9501",
|
|
4486
4486
|
"9502"
|
|
4487
|
-
]),
|
|
4487
|
+
]), Al = {
|
|
4488
4488
|
401: "Unauthorized access",
|
|
4489
4489
|
701: "Access token does not match with server record",
|
|
4490
4490
|
702: "Access token has expired",
|
|
@@ -4522,24 +4522,24 @@ var vl = D.enum([
|
|
|
4522
4522
|
9501: "'modifierName' in 'invoiceModifiers' list (Tier 3) is a mandatory field.",
|
|
4523
4523
|
9502: "'quantity' in 'invoiceModifiers' list (Tier 3) is a mandatory field and cannot be 0."
|
|
4524
4524
|
};
|
|
4525
|
-
function
|
|
4526
|
-
const c =
|
|
4527
|
-
return c.success ?
|
|
4525
|
+
function hl(S) {
|
|
4526
|
+
const c = xl.safeParse(S);
|
|
4527
|
+
return c.success ? Al[c.data] : void 0;
|
|
4528
4528
|
}
|
|
4529
|
-
var
|
|
4529
|
+
var Il = {
|
|
4530
4530
|
PERCENTAGE: 0,
|
|
4531
4531
|
MONETARY: 1
|
|
4532
|
-
},
|
|
4532
|
+
}, Sl = {
|
|
4533
4533
|
ITEM: 0,
|
|
4534
4534
|
COMBO_HEADER: 1,
|
|
4535
4535
|
COMBO_ITEM: 2,
|
|
4536
4536
|
MODIFIER: 3
|
|
4537
|
-
},
|
|
4537
|
+
}, wl = D.enum([
|
|
4538
4538
|
"NEW",
|
|
4539
4539
|
"VOID",
|
|
4540
4540
|
"SUPERSEDE",
|
|
4541
4541
|
"REFUND"
|
|
4542
|
-
]),
|
|
4542
|
+
]), gt = D.nativeEnum(Il), on = D.nativeEnum(Sl), yt = D.object({
|
|
4543
4543
|
/** M, string(100) — Tax Code */
|
|
4544
4544
|
taxCode: D.string(),
|
|
4545
4545
|
/** M, string(200) — Tax Name */
|
|
@@ -4548,7 +4548,7 @@ var bl = {
|
|
|
4548
4548
|
taxAmount: D.number(),
|
|
4549
4549
|
/** M, decimal(10,2) — Tax percentage */
|
|
4550
4550
|
taxPercentage: D.number()
|
|
4551
|
-
}),
|
|
4551
|
+
}), sn = D.lazy(
|
|
4552
4552
|
() => D.object({
|
|
4553
4553
|
modifierParentCode: D.string().optional(),
|
|
4554
4554
|
modifierCode: D.string(),
|
|
@@ -4558,17 +4558,17 @@ var bl = {
|
|
|
4558
4558
|
unitPrice: D.number(),
|
|
4559
4559
|
totalPrice: D.number(),
|
|
4560
4560
|
discountAmount: D.number(),
|
|
4561
|
-
discountType:
|
|
4561
|
+
discountType: gt,
|
|
4562
4562
|
discountValue: D.number(),
|
|
4563
4563
|
unitNetPrice: D.number(),
|
|
4564
4564
|
totalNetPrice: D.number(),
|
|
4565
4565
|
orderLine: D.number(),
|
|
4566
4566
|
parentLine: D.number(),
|
|
4567
|
-
lineMode:
|
|
4568
|
-
taxDetails: D.array(
|
|
4569
|
-
invoiceModifiers: D.array(
|
|
4567
|
+
lineMode: on,
|
|
4568
|
+
taxDetails: D.array(yt),
|
|
4569
|
+
invoiceModifiers: D.array(sn)
|
|
4570
4570
|
})
|
|
4571
|
-
),
|
|
4571
|
+
), Cl = D.object({
|
|
4572
4572
|
/** O, string(100) — Item Parent Code; the transform does not send it today */
|
|
4573
4573
|
itemParentCode: D.string().optional(),
|
|
4574
4574
|
/** M, string(100) — Item Code */
|
|
@@ -4586,7 +4586,7 @@ var bl = {
|
|
|
4586
4586
|
/** M, decimal(10,2) — Item discount amount */
|
|
4587
4587
|
discountAmount: D.number(),
|
|
4588
4588
|
/** M, int(1) — '0' for percentage discount, '1' for monetary discount */
|
|
4589
|
-
discountType:
|
|
4589
|
+
discountType: gt,
|
|
4590
4590
|
/** M, decimal(10,2) — Item discount value. Either in percentage or monetary based on DiscountType */
|
|
4591
4591
|
discountValue: D.number(),
|
|
4592
4592
|
/** M, decimal(10,2) — Unit net price (after discount) */
|
|
@@ -4598,12 +4598,12 @@ var bl = {
|
|
|
4598
4598
|
/** M, int(5) — The index of the item in the invoice */
|
|
4599
4599
|
orderLine: D.number(),
|
|
4600
4600
|
/** M, int(5) — Item type indicator: 0 = Item, 1 = Combo Header, 2 = Combo Item, 3 = Modifier */
|
|
4601
|
-
lineMode:
|
|
4601
|
+
lineMode: on,
|
|
4602
4602
|
/** M, List — Tax/Service Charge */
|
|
4603
|
-
taxDetails: D.array(
|
|
4603
|
+
taxDetails: D.array(yt),
|
|
4604
4604
|
/** M, List — Tier 1 Modifier(s) of item */
|
|
4605
|
-
invoiceModifiers: D.array(
|
|
4606
|
-
}),
|
|
4605
|
+
invoiceModifiers: D.array(sn)
|
|
4606
|
+
}), kl = D.object({
|
|
4607
4607
|
/** M, string(100) — Payment code */
|
|
4608
4608
|
paymentCode: D.string(),
|
|
4609
4609
|
/** M, string(200) — Payment Name */
|
|
@@ -4617,7 +4617,7 @@ D.object({
|
|
|
4617
4617
|
/** O, string(50) — Receipt number/Queue number displayed on the receipt (sent as "" except refunds, which carry the original bill id) */
|
|
4618
4618
|
refNo: D.string().optional(),
|
|
4619
4619
|
/** M, string(50) — 'NEW' for new invoice, 'VOID' to void existing invoice, 'SUPERSEDE' to supersede existing invoice, 'REFUND' to refund item with new invoice number */
|
|
4620
|
-
invoiceStatus:
|
|
4620
|
+
invoiceStatus: wl,
|
|
4621
4621
|
/** O, string(50) — Table number */
|
|
4622
4622
|
tableNo: D.string().optional(),
|
|
4623
4623
|
/** O, int(10) — Total of pax; omitted when the bill's person count is not numeric */
|
|
@@ -4635,7 +4635,7 @@ D.object({
|
|
|
4635
4635
|
/** M, decimal(10,2) — Bill Discount Amount (always 0 here: bill-level discounts are allocated onto item lines) */
|
|
4636
4636
|
invoiceDiscountAmount: D.number(),
|
|
4637
4637
|
/** M, int(1) — '0' for percentage discount, '1' for monetary discount */
|
|
4638
|
-
invoiceDiscountType:
|
|
4638
|
+
invoiceDiscountType: gt,
|
|
4639
4639
|
/** M, decimal(10,2) — The value of the discount. Either in percentage or monetary based on InvoiceDiscountType */
|
|
4640
4640
|
invoiceDiscountValue: D.number(),
|
|
4641
4641
|
/** M, decimal(10,2) — Rounding adjustment */
|
|
@@ -4643,11 +4643,11 @@ D.object({
|
|
|
4643
4643
|
/** M, decimal(10,2) — Grand total */
|
|
4644
4644
|
grandTotal: D.number(),
|
|
4645
4645
|
/** M, List — Tax/Service Charge */
|
|
4646
|
-
taxDetails: D.array(
|
|
4646
|
+
taxDetails: D.array(yt),
|
|
4647
4647
|
/** M, List — Item(s) of invoice */
|
|
4648
|
-
invoiceItems: D.array(
|
|
4648
|
+
invoiceItems: D.array(Cl),
|
|
4649
4649
|
/** M, List — Payment(s) of invoice */
|
|
4650
|
-
invoicePayments: D.array(
|
|
4650
|
+
invoicePayments: D.array(kl)
|
|
4651
4651
|
});
|
|
4652
4652
|
D.object({
|
|
4653
4653
|
billId: D.string(),
|
|
@@ -4706,41 +4706,41 @@ D.enum([
|
|
|
4706
4706
|
"status_not_syncable",
|
|
4707
4707
|
"no_active_items"
|
|
4708
4708
|
]);
|
|
4709
|
-
var
|
|
4709
|
+
var De = D.object({
|
|
4710
4710
|
amount: D.number(),
|
|
4711
4711
|
precision: D.number()
|
|
4712
4712
|
});
|
|
4713
4713
|
D.object({
|
|
4714
4714
|
reason: D.string().nullable().optional(),
|
|
4715
|
-
total:
|
|
4715
|
+
total: De.nullable().optional(),
|
|
4716
4716
|
adjustment: D.object({
|
|
4717
4717
|
type: D.string().nullable().optional(),
|
|
4718
|
-
amount:
|
|
4718
|
+
amount: De.nullable().optional()
|
|
4719
4719
|
}).nullable().optional()
|
|
4720
4720
|
});
|
|
4721
|
-
var
|
|
4721
|
+
var an = D.lazy(
|
|
4722
4722
|
() => D.object({
|
|
4723
4723
|
productId: D.string().nullable().optional(),
|
|
4724
4724
|
variantSelected: D.object({ combinationKey: D.string() }).nullable().optional(),
|
|
4725
4725
|
product: D.object({
|
|
4726
4726
|
name: D.string(),
|
|
4727
4727
|
categoryName: D.string().nullable().optional(),
|
|
4728
|
-
price:
|
|
4728
|
+
price: De.nullable().optional()
|
|
4729
4729
|
}).nullable().optional(),
|
|
4730
4730
|
// a sold line always has a positive quantity — 0 makes no sense on a bill
|
|
4731
4731
|
quantity: D.number().positive(),
|
|
4732
|
-
subItems: D.array(
|
|
4732
|
+
subItems: D.array(an).nullable().optional(),
|
|
4733
4733
|
name: D.string().nullable().optional(),
|
|
4734
4734
|
selection: D.string().nullable().optional(),
|
|
4735
|
-
price:
|
|
4735
|
+
price: De.nullable().optional()
|
|
4736
4736
|
})
|
|
4737
4737
|
);
|
|
4738
|
-
D.array(
|
|
4738
|
+
D.array(an).nullable().optional();
|
|
4739
4739
|
D.object({
|
|
4740
4740
|
/** Optional on the entity; the invoice line sends "" when absent. */
|
|
4741
4741
|
taxCode: D.string().nullable().optional(),
|
|
4742
4742
|
name: D.string(),
|
|
4743
|
-
total:
|
|
4743
|
+
total: De.nullable().optional(),
|
|
4744
4744
|
/** true = the item price already contains this tax. POS writes it HERE, on
|
|
4745
4745
|
* the tax entry — `adjustment.inclusive` is a different (discount) notion
|
|
4746
4746
|
* and is null on real bills, so never read it for tax inclusivity. */
|
|
@@ -4751,51 +4751,51 @@ D.object({
|
|
|
4751
4751
|
level: D.number().nullable().optional(),
|
|
4752
4752
|
adjustment: D.object({
|
|
4753
4753
|
type: D.string().nullable().optional(),
|
|
4754
|
-
amount:
|
|
4754
|
+
amount: De.nullable().optional()
|
|
4755
4755
|
}).nullable().optional()
|
|
4756
4756
|
});
|
|
4757
|
-
const
|
|
4757
|
+
const _l = { class: "flex items-center gap-2 mb-3" }, Fl = {
|
|
4758
4758
|
key: 0,
|
|
4759
4759
|
class: "mb-3"
|
|
4760
|
-
},
|
|
4760
|
+
}, El = { class: "max-h-[240px] overflow-y-auto flex flex-col gap-4" }, Bl = { class: "whitespace-nowrap" }, Vl = {
|
|
4761
4761
|
key: 0,
|
|
4762
4762
|
class: "whitespace-nowrap text-fm-color-neutral-gray-300"
|
|
4763
|
-
},
|
|
4763
|
+
}, Nl = { class: "flex flex-col gap-8" }, Dl = { class: "mb-8" }, Ll = { class: "max-h-[60vh] overflow-auto" }, Tl = {
|
|
4764
4764
|
key: 1,
|
|
4765
4765
|
class: "text-fm-color-neutral-gray-300"
|
|
4766
|
-
},
|
|
4766
|
+
}, Rl = { class: "flex flex-col gap-4" }, Ml = { class: "flex items-center gap-4" }, Ol = { class: "flex items-center gap-4" }, Ul = { class: "max-h-[60vh] overflow-auto" }, zl = { class: "text-xs text-fm-color-neutral-gray-300 mb-8" }, jl = { class: "flex items-center gap-4" }, Pl = { class: "text-xs" }, $l = {
|
|
4767
4767
|
key: 0,
|
|
4768
4768
|
class: "text-xs text-fm-color-neutral-gray-300 py-8"
|
|
4769
|
-
},
|
|
4769
|
+
}, Kl = { class: "max-h-[60vh] overflow-auto flex flex-col gap-8" }, Hl = {
|
|
4770
4770
|
key: 0,
|
|
4771
4771
|
class: "text-xs text-fm-color-neutral-gray-300"
|
|
4772
|
-
},
|
|
4772
|
+
}, ql = { key: 1 }, Xl = { key: 2 }, Yl = { class: "font-bold text-xs" }, Ql = {
|
|
4773
4773
|
key: 0,
|
|
4774
4774
|
class: "font-normal text-fm-color-neutral-gray-300"
|
|
4775
|
-
},
|
|
4775
|
+
}, Gl = { class: "text-xs font-mono break-all text-red-500" }, Jl = { class: "text-xs font-mono break-all text-green-600" }, Zl = {
|
|
4776
4776
|
key: 0,
|
|
4777
4777
|
class: "flex flex-col gap-8 max-h-[60vh] overflow-auto"
|
|
4778
|
-
},
|
|
4778
|
+
}, Wl = { class: "border border-fm-color-neutral-gray-100 rounded-md" }, ei = { class: "flex items-center gap-8 min-w-0" }, ti = { class: "text-xs font-mono truncate" }, ni = { class: "flex flex-col gap-8 px-12 pb-12" }, oi = {
|
|
4779
4779
|
key: 1,
|
|
4780
4780
|
class: "text-xs text-fm-color-neutral-gray-300"
|
|
4781
|
-
},
|
|
4781
|
+
}, si = {
|
|
4782
4782
|
key: 1,
|
|
4783
4783
|
class: "text-xs text-fm-color-neutral-gray-300"
|
|
4784
|
-
},
|
|
4784
|
+
}, ai = { class: "border border-fm-color-neutral-gray-100 rounded-md" }, li = { class: "px-12 pb-12" }, tt = 3, ii = /* @__PURE__ */ W({
|
|
4785
4785
|
__name: "CodemaxSyncStatusDialog",
|
|
4786
4786
|
props: {
|
|
4787
4787
|
show: { type: Boolean }
|
|
4788
4788
|
},
|
|
4789
4789
|
emits: ["update:show"],
|
|
4790
4790
|
setup(S, { emit: c }) {
|
|
4791
|
-
const e = S, f = c, t = ue(), u =
|
|
4791
|
+
const e = S, f = c, t = ue(), u = kn(), l = be(), a = z(() => {
|
|
4792
4792
|
var T;
|
|
4793
4793
|
return ((T = l.sessionUser.value) == null ? void 0 : T.role.isAdmin) ?? !1;
|
|
4794
4794
|
}), p = O(!1), y = O([]), m = O([]), v = O(!1), h = z(
|
|
4795
|
-
() => v.value ? m.value : m.value.slice(0,
|
|
4795
|
+
() => v.value ? m.value : m.value.slice(0, tt)
|
|
4796
4796
|
), g = z(
|
|
4797
|
-
() => v.value ? 0 : m.value.slice(
|
|
4798
|
-
), C = O(""), E = O(
|
|
4797
|
+
() => v.value ? 0 : m.value.slice(tt).filter((T) => T.status === "failed").length
|
|
4798
|
+
), C = O(""), E = O(kt()), k = O(/* @__PURE__ */ new Set());
|
|
4799
4799
|
async function s() {
|
|
4800
4800
|
p.value = !0;
|
|
4801
4801
|
try {
|
|
@@ -4809,8 +4809,8 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4809
4809
|
m.value = q;
|
|
4810
4810
|
const Q = /* @__PURE__ */ new Map();
|
|
4811
4811
|
for (const G of _) {
|
|
4812
|
-
const
|
|
4813
|
-
|
|
4812
|
+
const oe = Q.get(G.billId);
|
|
4813
|
+
oe ? oe.push(G) : Q.set(G.billId, [G]);
|
|
4814
4814
|
}
|
|
4815
4815
|
y.value = T.map((G) => ({
|
|
4816
4816
|
billId: G.billId,
|
|
@@ -4819,25 +4819,25 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4819
4819
|
completedAt: G.completedAt,
|
|
4820
4820
|
rounding: G.rounding,
|
|
4821
4821
|
logs: Q.get(G.billId) ?? []
|
|
4822
|
-
})).sort((G,
|
|
4822
|
+
})).sort((G, oe) => oe.billId.localeCompare(G.billId));
|
|
4823
4823
|
} catch (T) {
|
|
4824
4824
|
y.value = [], m.value = [], t.open({ title: "Something went wrong", message: "Failed to load sync status for date range.", type: "error" }), console.error("Error at fetching Codemax bills and sync status", T);
|
|
4825
4825
|
} finally {
|
|
4826
4826
|
p.value = !1;
|
|
4827
4827
|
}
|
|
4828
4828
|
}
|
|
4829
|
-
|
|
4829
|
+
_e(E, s), _e(
|
|
4830
4830
|
() => e.show,
|
|
4831
4831
|
(T) => {
|
|
4832
|
-
T && (C.value = "", k.value = /* @__PURE__ */ new Set(), v.value = !1, E.value =
|
|
4832
|
+
T && (C.value = "", k.value = /* @__PURE__ */ new Set(), v.value = !1, E.value = kt());
|
|
4833
4833
|
}
|
|
4834
4834
|
);
|
|
4835
4835
|
function r(T) {
|
|
4836
4836
|
return k.value.has(T);
|
|
4837
4837
|
}
|
|
4838
4838
|
function b(T) {
|
|
4839
|
-
const { resultCode: _, errorMessage: q } = T, Q = /^Request failed with status code (\d+)$/.exec(q ?? ""), G = _ ?? (Q == null ? void 0 : Q[1]) ?? null,
|
|
4840
|
-
return { code: G, message: re
|
|
4839
|
+
const { resultCode: _, errorMessage: q } = T, Q = /^Request failed with status code (\d+)$/.exec(q ?? ""), G = _ ?? (Q == null ? void 0 : Q[1]) ?? null, oe = hl(G), re = (Q ? null : q) ?? oe ?? T.message;
|
|
4840
|
+
return { code: G, message: re };
|
|
4841
4841
|
}
|
|
4842
4842
|
const x = {
|
|
4843
4843
|
completed: "success",
|
|
@@ -4883,15 +4883,15 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4883
4883
|
_ ? q.add(Q.billId) : q.delete(Q.billId);
|
|
4884
4884
|
k.value = q;
|
|
4885
4885
|
}
|
|
4886
|
-
function
|
|
4886
|
+
function we(T, _) {
|
|
4887
4887
|
_ ? k.value.add(T) : k.value.delete(T), k.value = new Set(k.value);
|
|
4888
4888
|
}
|
|
4889
|
-
const
|
|
4889
|
+
const $e = [
|
|
4890
4890
|
{
|
|
4891
4891
|
id: "select",
|
|
4892
4892
|
header: ({ table: T }) => {
|
|
4893
4893
|
const _ = T.getFilteredRowModel().rows.map((G) => G.original).filter($), q = _.length > 0 && _.every((G) => r(G.billId)), Q = !q && _.some((G) => r(G.billId));
|
|
4894
|
-
return N(
|
|
4894
|
+
return N(te.FmCheckbox, {
|
|
4895
4895
|
modelValue: q,
|
|
4896
4896
|
indeterminate: Q,
|
|
4897
4897
|
disabled: _.length === 0,
|
|
@@ -4899,10 +4899,10 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4899
4899
|
"onUpdate:modelValue": (G) => Y(_, G)
|
|
4900
4900
|
});
|
|
4901
4901
|
},
|
|
4902
|
-
cell: ({ row: T }) => $(T.original) ? N(
|
|
4902
|
+
cell: ({ row: T }) => $(T.original) ? N(te.FmCheckbox, {
|
|
4903
4903
|
modelValue: r(T.original.billId),
|
|
4904
4904
|
value: T.original.billId,
|
|
4905
|
-
"onUpdate:modelValue": (_) =>
|
|
4905
|
+
"onUpdate:modelValue": (_) => we(T.original.billId, _)
|
|
4906
4906
|
}) : null,
|
|
4907
4907
|
size: 40
|
|
4908
4908
|
},
|
|
@@ -4915,7 +4915,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4915
4915
|
return N("div", { class: "flex flex-col items-start gap-4 py-8" }, [
|
|
4916
4916
|
N("div", { class: "flex items-center gap-4" }, [
|
|
4917
4917
|
N("div", _.billSeq ?? "-"),
|
|
4918
|
-
N(
|
|
4918
|
+
N(te.FmChip, { label: _.billStatus, compact: !0 })
|
|
4919
4919
|
]),
|
|
4920
4920
|
N("div", { class: "text-xs" }, _.billId),
|
|
4921
4921
|
_.completedAt ? N(
|
|
@@ -4933,40 +4933,39 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4933
4933
|
// live in the History dialog
|
|
4934
4934
|
accessorFn: (T) => {
|
|
4935
4935
|
const _ = T.logs[0], q = w(T) ? `changed ${R(w(T))}` : "";
|
|
4936
|
-
return _ ? `${_.createdAt} ${_.status} ${_.message} ${_.resultCode ?? ""} ${_.errorMessage ?? ""} ${q}` : "
|
|
4936
|
+
return _ ? `${_.createdAt} ${_.status} ${_.message} ${_.resultCode ?? ""} ${_.errorMessage ?? ""} ${q}` : "no sync attempt";
|
|
4937
4937
|
},
|
|
4938
4938
|
cell: ({ row: T }) => {
|
|
4939
4939
|
const _ = T.original, q = _.logs[0];
|
|
4940
4940
|
if (!q)
|
|
4941
|
-
return N("div", { class: "text-fm-color-neutral-gray-300" }, "
|
|
4942
|
-
const { code: Q, message: G
|
|
4941
|
+
return N("div", { class: "text-fm-color-neutral-gray-300" }, "No sync attempt");
|
|
4942
|
+
const { code: Q, message: G } = b(q), oe = q.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300", re = o(q), fe = w(_), Ve = fe === q ? void 0 : fe;
|
|
4943
4943
|
return N("div", { class: "flex flex-col gap-4 py-8" }, [
|
|
4944
4944
|
N("div", { class: "text-xs" }, new Date(q.createdAt).toLocaleString()),
|
|
4945
4945
|
N("div", { class: "flex items-center gap-4" }, [
|
|
4946
|
-
N(
|
|
4946
|
+
N(te.FmChip, {
|
|
4947
4947
|
label: q.status,
|
|
4948
4948
|
variant: d(q.status),
|
|
4949
4949
|
compact: !0
|
|
4950
4950
|
}),
|
|
4951
|
-
|
|
4952
|
-
label:
|
|
4951
|
+
re ? N(te.FmChip, {
|
|
4952
|
+
label: re,
|
|
4953
4953
|
variant: "plain",
|
|
4954
4954
|
icon: "receipt_long",
|
|
4955
4955
|
compact: !0
|
|
4956
4956
|
}) : null,
|
|
4957
|
-
|
|
4957
|
+
Ve ? N(te.FmChip, {
|
|
4958
4958
|
label: "changed",
|
|
4959
4959
|
variant: "warning",
|
|
4960
4960
|
icon: "edit_note",
|
|
4961
4961
|
compact: !0
|
|
4962
4962
|
}) : null
|
|
4963
4963
|
]),
|
|
4964
|
-
G ? N("div", { class: `text-xs ${
|
|
4965
|
-
|
|
4966
|
-
_e ? N(
|
|
4964
|
+
G ? N("div", { class: `text-xs ${oe}` }, Q ? `${Q} — ${G}` : G) : null,
|
|
4965
|
+
Ve ? N(
|
|
4967
4966
|
"div",
|
|
4968
4967
|
{ class: "text-xs text-amber-700" },
|
|
4969
|
-
`Changed after sync${R(
|
|
4968
|
+
`Changed after sync${R(Ve) ? ` (${R(Ve)})` : ""} — Codemax still holds the old invoice, supersede to overwrite`
|
|
4970
4969
|
) : null
|
|
4971
4970
|
]);
|
|
4972
4971
|
}
|
|
@@ -4977,15 +4976,15 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4977
4976
|
cell: ({ row: T }) => {
|
|
4978
4977
|
const _ = T.original;
|
|
4979
4978
|
return N("div", { class: "flex items-center gap-8" }, [
|
|
4980
|
-
$(_) ? N(
|
|
4979
|
+
$(_) ? N(te.FmButton, {
|
|
4981
4980
|
label: "Resync",
|
|
4982
4981
|
size: "md",
|
|
4983
4982
|
variant: "plain",
|
|
4984
4983
|
icon: "sync",
|
|
4985
4984
|
disabled: ke.value,
|
|
4986
|
-
onClick: () =>
|
|
4985
|
+
onClick: () => Je([_.billId])
|
|
4987
4986
|
}) : null,
|
|
4988
|
-
X(_) ? N(
|
|
4987
|
+
X(_) ? N(te.FmButton, {
|
|
4989
4988
|
label: "Supersede",
|
|
4990
4989
|
size: "md",
|
|
4991
4990
|
variant: "plain",
|
|
@@ -4993,35 +4992,44 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
4993
4992
|
disabled: ke.value,
|
|
4994
4993
|
onClick: () => U.value = [_.billId]
|
|
4995
4994
|
}) : null,
|
|
4996
|
-
|
|
4995
|
+
// always offered: a bill with no attempt rows can still have skips,
|
|
4996
|
+
// which the history dialog can be asked to include
|
|
4997
|
+
N(te.FmButton, {
|
|
4997
4998
|
label: "History",
|
|
4998
4999
|
size: "md",
|
|
4999
5000
|
variant: "plain",
|
|
5000
5001
|
icon: "history",
|
|
5001
|
-
onClick: () =>
|
|
5002
|
-
})
|
|
5002
|
+
onClick: () => ln(_)
|
|
5003
|
+
})
|
|
5003
5004
|
]);
|
|
5004
5005
|
},
|
|
5005
5006
|
size: 300
|
|
5006
5007
|
}
|
|
5007
|
-
], ee = O(null),
|
|
5008
|
-
async function
|
|
5009
|
-
|
|
5008
|
+
], ee = O(null), Be = O([]), Ke = O(!1), Me = O(!1);
|
|
5009
|
+
async function bt(T) {
|
|
5010
|
+
Ke.value = !0;
|
|
5010
5011
|
try {
|
|
5011
5012
|
const _ = await u.readSyncLog({
|
|
5012
|
-
billId: T
|
|
5013
|
-
includePayload: a.value
|
|
5013
|
+
billId: T,
|
|
5014
|
+
includePayload: a.value,
|
|
5015
|
+
includeSkipped: Me.value
|
|
5014
5016
|
});
|
|
5015
|
-
|
|
5017
|
+
Be.value = _.reverse();
|
|
5016
5018
|
} catch (_) {
|
|
5017
5019
|
t.open({ title: "Something went wrong", message: "Failed to load sync history.", type: "error" }), console.error("Error at fetching Codemax sync history", _);
|
|
5018
5020
|
} finally {
|
|
5019
|
-
|
|
5021
|
+
Ke.value = !1;
|
|
5020
5022
|
}
|
|
5021
5023
|
}
|
|
5022
|
-
|
|
5024
|
+
async function ln(T) {
|
|
5025
|
+
ee.value = T, Be.value = [], Ce.value = /* @__PURE__ */ new Set(), Me.value = !1, await bt(T.billId);
|
|
5026
|
+
}
|
|
5027
|
+
async function rn(T) {
|
|
5028
|
+
Me.value = T, Ce.value = /* @__PURE__ */ new Set(), ee.value && await bt(ee.value.billId);
|
|
5029
|
+
}
|
|
5030
|
+
const Ce = O(/* @__PURE__ */ new Set()), un = z(() => {
|
|
5023
5031
|
const T = [], _ = /* @__PURE__ */ new Map();
|
|
5024
|
-
for (const q of
|
|
5032
|
+
for (const q of Be.value) {
|
|
5025
5033
|
if (!q.runId) {
|
|
5026
5034
|
T.push({ key: `row-${T.length}`, logs: [q] });
|
|
5027
5035
|
continue;
|
|
@@ -5036,30 +5044,30 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5036
5044
|
}
|
|
5037
5045
|
return T;
|
|
5038
5046
|
});
|
|
5039
|
-
function
|
|
5040
|
-
const _ = new Set(
|
|
5041
|
-
_.has(T) ? _.delete(T) : _.add(T),
|
|
5047
|
+
function dn(T) {
|
|
5048
|
+
const _ = new Set(Ce.value);
|
|
5049
|
+
_.has(T) ? _.delete(T) : _.add(T), Ce.value = _;
|
|
5042
5050
|
}
|
|
5043
|
-
const ge = O(null),
|
|
5051
|
+
const ge = O(null), He = z(
|
|
5044
5052
|
() => {
|
|
5045
5053
|
var T, _;
|
|
5046
5054
|
return ((_ = (T = ge.value) == null ? void 0 : T.metadata) == null ? void 0 : _.bills) ?? [];
|
|
5047
5055
|
}
|
|
5048
|
-
),
|
|
5056
|
+
), xt = z(
|
|
5049
5057
|
() => {
|
|
5050
5058
|
var T, _;
|
|
5051
|
-
return Number(((_ = (T = ge.value) == null ? void 0 : T.metadata) == null ? void 0 : _.billsTotal) ??
|
|
5059
|
+
return Number(((_ = (T = ge.value) == null ? void 0 : T.metadata) == null ? void 0 : _.billsTotal) ?? He.value.length);
|
|
5052
5060
|
}
|
|
5053
5061
|
);
|
|
5054
|
-
function
|
|
5062
|
+
function cn(T) {
|
|
5055
5063
|
var _;
|
|
5056
5064
|
return Number(((_ = T.metadata) == null ? void 0 : _.billsTotal) ?? 0);
|
|
5057
5065
|
}
|
|
5058
|
-
function
|
|
5066
|
+
function qe(T) {
|
|
5059
5067
|
var _;
|
|
5060
5068
|
return ((_ = T == null ? void 0 : T.metadata) == null ? void 0 : _.triggeredBy) ?? null;
|
|
5061
5069
|
}
|
|
5062
|
-
function
|
|
5070
|
+
function At(T) {
|
|
5063
5071
|
const { code: _, message: q } = b({
|
|
5064
5072
|
resultCode: T.resultCode,
|
|
5065
5073
|
errorMessage: T.detail,
|
|
@@ -5067,54 +5075,54 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5067
5075
|
});
|
|
5068
5076
|
return q ? _ ? `${_} — ${q}` : q : null;
|
|
5069
5077
|
}
|
|
5070
|
-
const
|
|
5071
|
-
|
|
5078
|
+
const ne = O(null);
|
|
5079
|
+
_e(ne, () => {
|
|
5072
5080
|
i.value = { exchange: !0, log: !1 };
|
|
5073
5081
|
});
|
|
5074
5082
|
const ce = O(null);
|
|
5075
|
-
function
|
|
5076
|
-
const _ =
|
|
5083
|
+
function ht(T) {
|
|
5084
|
+
const _ = Be.value.indexOf(T);
|
|
5077
5085
|
if (!(_ < 0))
|
|
5078
|
-
return
|
|
5086
|
+
return Be.value.slice(_ + 1).find((q) => q.payload != null);
|
|
5079
5087
|
}
|
|
5080
|
-
function
|
|
5081
|
-
const _ =
|
|
5088
|
+
function mn(T) {
|
|
5089
|
+
const _ = ht(T);
|
|
5082
5090
|
_ && (ce.value = { current: T, previous: _ });
|
|
5083
5091
|
}
|
|
5084
|
-
function
|
|
5092
|
+
function It(T, _, q = "") {
|
|
5085
5093
|
if (T === _)
|
|
5086
5094
|
return [];
|
|
5087
5095
|
const Q = (G) => G !== null && typeof G == "object";
|
|
5088
5096
|
return Q(T) && Q(_) && Array.isArray(T) === Array.isArray(_) ? [.../* @__PURE__ */ new Set([...Object.keys(T), ...Object.keys(_)])].flatMap(
|
|
5089
|
-
(
|
|
5097
|
+
(oe) => It(T[oe], _[oe], q ? `${q}.${oe}` : oe)
|
|
5090
5098
|
) : [{ path: q, previous: T, current: _ }];
|
|
5091
5099
|
}
|
|
5092
|
-
const
|
|
5093
|
-
() => ce.value ?
|
|
5100
|
+
const Ge = z(
|
|
5101
|
+
() => ce.value ? It(ce.value.previous.payload, ce.value.current.payload) : []
|
|
5094
5102
|
);
|
|
5095
|
-
function
|
|
5103
|
+
function St(T) {
|
|
5096
5104
|
const _ = (q) => q === "NEW" || q === "SUPERSEDE";
|
|
5097
5105
|
return T.path === "invoiceStatus" && _(T.previous) && _(T.current);
|
|
5098
5106
|
}
|
|
5099
|
-
const
|
|
5100
|
-
function
|
|
5107
|
+
const pn = z(() => Ge.value.filter((T) => !St(T)));
|
|
5108
|
+
function wt(T) {
|
|
5101
5109
|
return T === void 0 ? "(absent)" : JSON.stringify(T);
|
|
5102
5110
|
}
|
|
5103
5111
|
const ke = O(!1);
|
|
5104
|
-
async function
|
|
5112
|
+
async function fn() {
|
|
5105
5113
|
const T = U.value;
|
|
5106
|
-
U.value = null, T != null && T.length && await
|
|
5114
|
+
U.value = null, T != null && T.length && await Je(T, { supersede: !0 });
|
|
5107
5115
|
}
|
|
5108
|
-
async function
|
|
5116
|
+
async function Je(T, _ = {}) {
|
|
5109
5117
|
const q = _.supersede ? "Supersede" : "Resync", Q = _.supersede ? "superseded" : "resynced";
|
|
5110
5118
|
ke.value = !0;
|
|
5111
5119
|
try {
|
|
5112
|
-
const G = _.supersede ? await u.supersedeBills(T) : await u.resyncBills(T),
|
|
5120
|
+
const G = _.supersede ? await u.supersedeBills(T) : await u.resyncBills(T), oe = G.filter((fe) => fe.success).length, re = G.filter((fe) => !fe.success);
|
|
5113
5121
|
t.open({
|
|
5114
5122
|
title: re.length ? `${q} finished with errors` : `${q} complete`,
|
|
5115
|
-
message: `${
|
|
5123
|
+
message: `${oe} of ${G.length} ${Q}${re.length ? `, ${re.length} failed: ${re.map((fe) => fe.billId).join(", ")}` : ""}.`,
|
|
5116
5124
|
type: re.length ? "warning" : "success"
|
|
5117
|
-
}), k.value = /* @__PURE__ */ new Set(), await new Promise((
|
|
5125
|
+
}), k.value = /* @__PURE__ */ new Set(), await new Promise((fe) => setTimeout(fe, 1500)), await s();
|
|
5118
5126
|
} catch (G) {
|
|
5119
5127
|
t.open({ title: "Something went wrong", message: `${q} failed.`, type: "error" }), console.error("Error at resyncing Codemax bills", G);
|
|
5120
5128
|
} finally {
|
|
@@ -5122,8 +5130,8 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5122
5130
|
}
|
|
5123
5131
|
}
|
|
5124
5132
|
return (T, _) => {
|
|
5125
|
-
const q = L("FmSearch"), Q = L("FmButton"), G = L("FmTable"),
|
|
5126
|
-
return A(), V(
|
|
5133
|
+
const q = L("FmSearch"), Q = L("FmButton"), G = L("FmTable"), oe = L("FmSpacer"), re = L("FmDialog"), fe = L("FmCheckbox"), Ve = L("FmCircularProgress"), Oe = L("FmChip"), Ct = L("FmIcon");
|
|
5134
|
+
return A(), V(J, null, [
|
|
5127
5135
|
I(re, {
|
|
5128
5136
|
modelValue: e.show,
|
|
5129
5137
|
"onUpdate:modelValue": _[6] || (_[6] = (K) => f("update:show", K)),
|
|
@@ -5137,7 +5145,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5137
5145
|
n("div", null, "Codemax sync status", -1)
|
|
5138
5146
|
])),
|
|
5139
5147
|
"dialog-footer": M(() => [
|
|
5140
|
-
I(
|
|
5148
|
+
I(oe, { class: "sm:hidden xs:hidden" }),
|
|
5141
5149
|
I(Q, {
|
|
5142
5150
|
label: "Close",
|
|
5143
5151
|
size: "md",
|
|
@@ -5145,14 +5153,14 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5145
5153
|
})
|
|
5146
5154
|
]),
|
|
5147
5155
|
default: M(() => [
|
|
5148
|
-
n("div",
|
|
5156
|
+
n("div", _l, [
|
|
5149
5157
|
I(q, {
|
|
5150
5158
|
"model-value": C.value,
|
|
5151
5159
|
"onUpdate:modelValue": _[0] || (_[0] = (K) => C.value = K),
|
|
5152
5160
|
placeholder: "Search",
|
|
5153
5161
|
class: "w-[260px]"
|
|
5154
5162
|
}, null, 8, ["model-value"]),
|
|
5155
|
-
I(
|
|
5163
|
+
I(Pn, {
|
|
5156
5164
|
modelValue: E.value,
|
|
5157
5165
|
"onUpdate:modelValue": _[1] || (_[1] = (K) => E.value = K)
|
|
5158
5166
|
}, null, 8, ["modelValue"]),
|
|
@@ -5166,7 +5174,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5166
5174
|
label: `Resync selected (${k.value.size})`,
|
|
5167
5175
|
size: "md",
|
|
5168
5176
|
loading: ke.value,
|
|
5169
|
-
onClick: _[2] || (_[2] = (K) =>
|
|
5177
|
+
onClick: _[2] || (_[2] = (K) => Je(Array.from(k.value)))
|
|
5170
5178
|
}, null, 8, ["label", "loading"])) : j("", !0),
|
|
5171
5179
|
P.value.length > 0 ? (A(), H(Q, {
|
|
5172
5180
|
key: 1,
|
|
@@ -5176,28 +5184,28 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5176
5184
|
onClick: _[3] || (_[3] = (K) => U.value = P.value)
|
|
5177
5185
|
}, null, 8, ["label", "loading"])) : j("", !0)
|
|
5178
5186
|
]),
|
|
5179
|
-
m.value.length ? (A(), V("div",
|
|
5180
|
-
_[20] || (_[20] = n("div", { class: "font-bold mb-4" }, "
|
|
5181
|
-
n("div",
|
|
5182
|
-
(A(!0), V(
|
|
5187
|
+
m.value.length ? (A(), V("div", Fl, [
|
|
5188
|
+
_[20] || (_[20] = n("div", { class: "font-bold mb-4" }, "Sync runs", -1)),
|
|
5189
|
+
n("div", El, [
|
|
5190
|
+
(A(!0), V(J, null, se(h.value, (K) => (A(), V("div", {
|
|
5183
5191
|
key: `${K.billId}-${K.createdAt}`,
|
|
5184
5192
|
class: "flex items-center gap-8 text-xs"
|
|
5185
5193
|
}, [
|
|
5186
|
-
n("div",
|
|
5194
|
+
n("div", Bl, B(new Date(K.createdAt).toLocaleString()), 1),
|
|
5187
5195
|
n("div", {
|
|
5188
|
-
class:
|
|
5196
|
+
class: ae(K.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300")
|
|
5189
5197
|
}, B(K.message), 3),
|
|
5190
|
-
|
|
5191
|
-
|
|
5198
|
+
qe(K) ? (A(), V("div", Vl, " by " + B(qe(K)), 1)) : j("", !0),
|
|
5199
|
+
cn(K) > 0 ? (A(), H(Q, {
|
|
5192
5200
|
key: 1,
|
|
5193
5201
|
label: "Details",
|
|
5194
5202
|
size: "md",
|
|
5195
5203
|
variant: "plain",
|
|
5196
|
-
onClick: (
|
|
5204
|
+
onClick: (Z) => ge.value = K
|
|
5197
5205
|
}, null, 8, ["onClick"])) : j("", !0)
|
|
5198
5206
|
]))), 128))
|
|
5199
5207
|
]),
|
|
5200
|
-
m.value.length >
|
|
5208
|
+
m.value.length > tt ? (A(), H(Q, {
|
|
5201
5209
|
key: 0,
|
|
5202
5210
|
label: v.value ? "Show less" : `Show all ${m.value.length} runs${g.value > 0 ? ` (${g.value} failed)` : ""}`,
|
|
5203
5211
|
size: "md",
|
|
@@ -5207,7 +5215,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5207
5215
|
}, null, 8, ["label", "icon"])) : j("", !0)
|
|
5208
5216
|
])) : j("", !0),
|
|
5209
5217
|
I(G, {
|
|
5210
|
-
"column-defs":
|
|
5218
|
+
"column-defs": $e,
|
|
5211
5219
|
"row-data": y.value,
|
|
5212
5220
|
"search-value": C.value,
|
|
5213
5221
|
loading: p.value
|
|
@@ -5231,19 +5239,19 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5231
5239
|
size: "md",
|
|
5232
5240
|
onClick: _[7] || (_[7] = (K) => U.value = null)
|
|
5233
5241
|
}),
|
|
5234
|
-
I(
|
|
5242
|
+
I(oe, { class: "sm:hidden xs:hidden" }),
|
|
5235
5243
|
I(Q, {
|
|
5236
5244
|
label: "Supersede",
|
|
5237
5245
|
size: "md",
|
|
5238
5246
|
loading: ke.value,
|
|
5239
|
-
onClick:
|
|
5247
|
+
onClick: fn
|
|
5240
5248
|
}, null, 8, ["loading"])
|
|
5241
5249
|
]),
|
|
5242
5250
|
default: M(() => {
|
|
5243
|
-
var K,
|
|
5251
|
+
var K, Z;
|
|
5244
5252
|
return [
|
|
5245
|
-
n("div",
|
|
5246
|
-
n("div", null, " Overwrite " + B((K = U.value) == null ? void 0 : K.length) + " invoice" + B(((
|
|
5253
|
+
n("div", Nl, [
|
|
5254
|
+
n("div", null, " Overwrite " + B((K = U.value) == null ? void 0 : K.length) + " invoice" + B(((Z = U.value) == null ? void 0 : Z.length) === 1 ? "" : "s") + " on Codemax with the current bill content? ", 1),
|
|
5247
5255
|
_[22] || (_[22] = n("div", { class: "text-xs text-fm-color-neutral-gray-300" }, " Use this when a bill changed after it was already synced. A normal resync sends NEW, which Codemax answers with 9101 (already synced) and leaves the existing invoice untouched. Invoices whose content has not changed since their last successful sync are skipped. ", -1))
|
|
5248
5256
|
])
|
|
5249
5257
|
];
|
|
@@ -5257,13 +5265,13 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5257
5265
|
"max-width": "720px"
|
|
5258
5266
|
}, {
|
|
5259
5267
|
"dialog-header": M(() => {
|
|
5260
|
-
var K,
|
|
5268
|
+
var K, Z;
|
|
5261
5269
|
return [
|
|
5262
|
-
n("div", null, "Sync history — " + B(((K = ee.value) == null ? void 0 : K.billSeq) ?? ((
|
|
5270
|
+
n("div", null, "Sync history — " + B(((K = ee.value) == null ? void 0 : K.billSeq) ?? ((Z = ee.value) == null ? void 0 : Z.billId)), 1)
|
|
5263
5271
|
];
|
|
5264
5272
|
}),
|
|
5265
5273
|
"dialog-footer": M(() => [
|
|
5266
|
-
I(
|
|
5274
|
+
I(oe, { class: "sm:hidden xs:hidden" }),
|
|
5267
5275
|
I(Q, {
|
|
5268
5276
|
label: "Close",
|
|
5269
5277
|
size: "md",
|
|
@@ -5271,61 +5279,66 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5271
5279
|
})
|
|
5272
5280
|
]),
|
|
5273
5281
|
default: M(() => [
|
|
5274
|
-
n("div",
|
|
5275
|
-
|
|
5282
|
+
n("div", Dl, [
|
|
5283
|
+
I(fe, {
|
|
5284
|
+
label: "Include skipped attempts",
|
|
5285
|
+
value: "includeSkipped",
|
|
5286
|
+
modelValue: Me.value,
|
|
5287
|
+
disabled: Ke.value,
|
|
5288
|
+
"onUpdate:modelValue": rn
|
|
5289
|
+
}, null, 8, ["modelValue", "disabled"])
|
|
5290
|
+
]),
|
|
5291
|
+
n("div", Ll, [
|
|
5292
|
+
Ke.value ? (A(), H(Ve, {
|
|
5276
5293
|
key: 0,
|
|
5277
5294
|
size: "md"
|
|
5278
|
-
})) :
|
|
5279
|
-
(A(!0), V(
|
|
5295
|
+
})) : Be.value.length === 0 ? (A(), V("div", Tl, B(Me.value ? "No sync logs for this bill." : 'No sync attempts for this bill — tick "Include skipped attempts" to see skips.'), 1)) : j("", !0),
|
|
5296
|
+
(A(!0), V(J, null, se(un.value, (K) => (A(), V("div", {
|
|
5280
5297
|
key: K.key,
|
|
5281
5298
|
class: "border-b border-fm-color-neutral-gray-100"
|
|
5282
5299
|
}, [
|
|
5283
|
-
(A(!0), V(
|
|
5284
|
-
key:
|
|
5285
|
-
class:
|
|
5300
|
+
(A(!0), V(J, null, se(Ce.value.has(K.key) ? K.logs : K.logs.slice(0, 1), (Z, Xe) => (A(), V("div", {
|
|
5301
|
+
key: Xe,
|
|
5302
|
+
class: ae(["flex items-start justify-between gap-8 py-8", Xe > 0 ? "pl-16" : ""])
|
|
5286
5303
|
}, [
|
|
5287
|
-
n("div",
|
|
5288
|
-
n("div", null, B(new Date(
|
|
5289
|
-
n("div",
|
|
5290
|
-
I(
|
|
5291
|
-
label:
|
|
5292
|
-
variant: d(
|
|
5304
|
+
n("div", Rl, [
|
|
5305
|
+
n("div", null, B(new Date(Z.createdAt).toLocaleString()), 1),
|
|
5306
|
+
n("div", Ml, [
|
|
5307
|
+
I(Oe, {
|
|
5308
|
+
label: Z.status,
|
|
5309
|
+
variant: d(Z.status),
|
|
5293
5310
|
compact: ""
|
|
5294
5311
|
}, null, 8, ["label", "variant"]),
|
|
5295
|
-
o(
|
|
5312
|
+
o(Z) ? (A(), H(Oe, {
|
|
5296
5313
|
key: 0,
|
|
5297
|
-
label: o(
|
|
5314
|
+
label: o(Z),
|
|
5298
5315
|
variant: "plain",
|
|
5299
5316
|
icon: "receipt_long",
|
|
5300
5317
|
compact: ""
|
|
5301
5318
|
}, null, 8, ["label"])) : j("", !0)
|
|
5302
5319
|
]),
|
|
5303
|
-
b(
|
|
5320
|
+
b(Z).message ? (A(), V("div", {
|
|
5304
5321
|
key: 0,
|
|
5305
|
-
class:
|
|
5306
|
-
}, B(b(
|
|
5307
|
-
b(J).detail ? (A(), V("div", {
|
|
5308
|
-
key: 1,
|
|
5309
|
-
class: se(`text-xs ${J.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300"}`)
|
|
5310
|
-
}, B(b(J).detail), 3)) : j("", !0)
|
|
5322
|
+
class: ae(`text-xs ${Z.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300"}`)
|
|
5323
|
+
}, B(b(Z).code ? `${b(Z).code} — ${b(Z).message}` : b(Z).message), 3)) : j("", !0)
|
|
5311
5324
|
]),
|
|
5312
|
-
I(
|
|
5325
|
+
I(pt, null, {
|
|
5313
5326
|
default: M(() => [
|
|
5314
|
-
n("div",
|
|
5315
|
-
|
|
5327
|
+
n("div", Ol, [
|
|
5328
|
+
Z.payload && ht(Z) ? (A(), H(Q, {
|
|
5316
5329
|
key: 0,
|
|
5317
5330
|
label: "Compare",
|
|
5318
5331
|
size: "md",
|
|
5319
5332
|
variant: "plain",
|
|
5320
5333
|
icon: "difference",
|
|
5321
|
-
onClick: (
|
|
5334
|
+
onClick: (vn) => mn(Z)
|
|
5322
5335
|
}, null, 8, ["onClick"])) : j("", !0),
|
|
5323
5336
|
I(Q, {
|
|
5324
5337
|
label: "Debug",
|
|
5325
5338
|
size: "md",
|
|
5326
5339
|
variant: "plain",
|
|
5327
5340
|
icon: "bug_report",
|
|
5328
|
-
onClick: (
|
|
5341
|
+
onClick: (vn) => ne.value = Z
|
|
5329
5342
|
}, null, 8, ["onClick"])
|
|
5330
5343
|
])
|
|
5331
5344
|
]),
|
|
@@ -5334,12 +5347,12 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5334
5347
|
], 2))), 128)),
|
|
5335
5348
|
K.logs.length > 1 ? (A(), H(Q, {
|
|
5336
5349
|
key: 0,
|
|
5337
|
-
label:
|
|
5350
|
+
label: Ce.value.has(K.key) ? "Show less" : `${K.logs.length - 1} more attempt${K.logs.length > 2 ? "s" : ""}`,
|
|
5338
5351
|
size: "md",
|
|
5339
5352
|
variant: "plain",
|
|
5340
|
-
icon:
|
|
5353
|
+
icon: Ce.value.has(K.key) ? "expand_less" : "expand_more",
|
|
5341
5354
|
class: "mb-8",
|
|
5342
|
-
onClick: (
|
|
5355
|
+
onClick: (Z) => dn(K.key)
|
|
5343
5356
|
}, null, 8, ["label", "icon", "onClick"])) : j("", !0)
|
|
5344
5357
|
]))), 128))
|
|
5345
5358
|
])
|
|
@@ -5356,7 +5369,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5356
5369
|
n("div", null, "Run details — " + B(ge.value ? new Date(ge.value.createdAt).toLocaleString() : ""), 1)
|
|
5357
5370
|
]),
|
|
5358
5371
|
"dialog-footer": M(() => [
|
|
5359
|
-
I(
|
|
5372
|
+
I(oe, { class: "sm:hidden xs:hidden" }),
|
|
5360
5373
|
I(Q, {
|
|
5361
5374
|
label: "Close",
|
|
5362
5375
|
size: "md",
|
|
@@ -5366,31 +5379,31 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5366
5379
|
default: M(() => {
|
|
5367
5380
|
var K;
|
|
5368
5381
|
return [
|
|
5369
|
-
n("div",
|
|
5370
|
-
n("div",
|
|
5382
|
+
n("div", Ul, [
|
|
5383
|
+
n("div", zl, [
|
|
5371
5384
|
le(B((K = ge.value) == null ? void 0 : K.message) + " ", 1),
|
|
5372
|
-
|
|
5373
|
-
le(" · Triggered by " + B(
|
|
5385
|
+
qe(ge.value) ? (A(), V(J, { key: 0 }, [
|
|
5386
|
+
le(" · Triggered by " + B(qe(ge.value)), 1)
|
|
5374
5387
|
], 64)) : j("", !0)
|
|
5375
5388
|
]),
|
|
5376
|
-
(A(!0), V(
|
|
5377
|
-
key:
|
|
5389
|
+
(A(!0), V(J, null, se(He.value, (Z, Xe) => (A(), V("div", {
|
|
5390
|
+
key: Xe,
|
|
5378
5391
|
class: "flex flex-col gap-4 py-8 border-b border-fm-color-neutral-gray-100"
|
|
5379
5392
|
}, [
|
|
5380
|
-
n("div",
|
|
5381
|
-
n("div", null, B(
|
|
5382
|
-
I(
|
|
5383
|
-
label:
|
|
5393
|
+
n("div", jl, [
|
|
5394
|
+
n("div", null, B(Z.billSeq ?? "-"), 1),
|
|
5395
|
+
I(Oe, {
|
|
5396
|
+
label: Z.status,
|
|
5384
5397
|
compact: ""
|
|
5385
5398
|
}, null, 8, ["label"])
|
|
5386
5399
|
]),
|
|
5387
|
-
n("div",
|
|
5388
|
-
|
|
5400
|
+
n("div", Pl, B(Z.billId), 1),
|
|
5401
|
+
At(Z) ? (A(), V("div", {
|
|
5389
5402
|
key: 0,
|
|
5390
|
-
class:
|
|
5391
|
-
}, B(
|
|
5403
|
+
class: ae(`text-xs ${Z.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300"}`)
|
|
5404
|
+
}, B(At(Z)), 3)) : j("", !0)
|
|
5392
5405
|
]))), 128)),
|
|
5393
|
-
|
|
5406
|
+
xt.value > He.value.length ? (A(), V("div", $l, " Showing " + B(He.value.length) + " of " + B(xt.value) + " bills. ", 1)) : j("", !0)
|
|
5394
5407
|
])
|
|
5395
5408
|
];
|
|
5396
5409
|
}),
|
|
@@ -5403,13 +5416,13 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5403
5416
|
"max-width": "720px"
|
|
5404
5417
|
}, {
|
|
5405
5418
|
"dialog-header": M(() => {
|
|
5406
|
-
var K,
|
|
5419
|
+
var K, Z;
|
|
5407
5420
|
return [
|
|
5408
|
-
n("div", null, "Payload diff — " + B(((K = ee.value) == null ? void 0 : K.billSeq) ?? ((
|
|
5421
|
+
n("div", null, "Payload diff — " + B(((K = ee.value) == null ? void 0 : K.billSeq) ?? ((Z = ee.value) == null ? void 0 : Z.billId)), 1)
|
|
5409
5422
|
];
|
|
5410
5423
|
}),
|
|
5411
5424
|
"dialog-footer": M(() => [
|
|
5412
|
-
I(
|
|
5425
|
+
I(oe, { class: "sm:hidden xs:hidden" }),
|
|
5413
5426
|
I(Q, {
|
|
5414
5427
|
label: "Close",
|
|
5415
5428
|
size: "md",
|
|
@@ -5417,115 +5430,115 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5417
5430
|
})
|
|
5418
5431
|
]),
|
|
5419
5432
|
default: M(() => [
|
|
5420
|
-
n("div",
|
|
5421
|
-
ce.value ? (A(), V("div",
|
|
5422
|
-
|
|
5423
|
-
(A(!0), V(
|
|
5424
|
-
key:
|
|
5433
|
+
n("div", Kl, [
|
|
5434
|
+
ce.value ? (A(), V("div", Hl, B(new Date(ce.value.previous.createdAt).toLocaleString()) + " (" + B(o(ce.value.previous) ?? ce.value.previous.status) + ") → " + B(new Date(ce.value.current.createdAt).toLocaleString()) + " (" + B(o(ce.value.current) ?? ce.value.current.status) + ") ", 1)) : j("", !0),
|
|
5435
|
+
Ge.value.length === 0 ? (A(), V("div", ql, " Payloads are identical — dedup skips a re-sync of this content. ")) : pn.value.length === 0 ? (A(), V("div", Xl, " Only invoiceStatus differs (NEW ↔ SUPERSEDE) — dedup treats these as the same sale, so this content would not re-sync. ")) : j("", !0),
|
|
5436
|
+
(A(!0), V(J, null, se(Ge.value, (K, Z) => (A(), V("div", {
|
|
5437
|
+
key: Z,
|
|
5425
5438
|
class: "flex flex-col gap-4 py-8 border-b border-fm-color-neutral-gray-100"
|
|
5426
5439
|
}, [
|
|
5427
|
-
n("div",
|
|
5440
|
+
n("div", Yl, [
|
|
5428
5441
|
le(B(K.path) + " ", 1),
|
|
5429
|
-
|
|
5442
|
+
St(K) ? (A(), V("span", Ql, " (ignored by dedup) ")) : j("", !0)
|
|
5430
5443
|
]),
|
|
5431
|
-
n("div",
|
|
5432
|
-
n("div",
|
|
5444
|
+
n("div", Gl, " - " + B(wt(K.previous)), 1),
|
|
5445
|
+
n("div", Jl, " + " + B(wt(K.current)), 1)
|
|
5433
5446
|
]))), 128))
|
|
5434
5447
|
])
|
|
5435
5448
|
]),
|
|
5436
5449
|
_: 1
|
|
5437
5450
|
}, 8, ["modelValue"]),
|
|
5438
5451
|
I(re, {
|
|
5439
|
-
modelValue: !!
|
|
5440
|
-
"onUpdate:modelValue": _[18] || (_[18] = (K) => !K && (
|
|
5452
|
+
modelValue: !!ne.value,
|
|
5453
|
+
"onUpdate:modelValue": _[18] || (_[18] = (K) => !K && (ne.value = null)),
|
|
5441
5454
|
overlay: !0,
|
|
5442
5455
|
"max-width": "720px"
|
|
5443
5456
|
}, {
|
|
5444
5457
|
"dialog-header": M(() => {
|
|
5445
|
-
var K,
|
|
5458
|
+
var K, Z;
|
|
5446
5459
|
return [
|
|
5447
|
-
n("div", null, "Codemax debug — " + B(((K = ee.value) == null ? void 0 : K.billSeq) ?? ((
|
|
5460
|
+
n("div", null, "Codemax debug — " + B(((K = ee.value) == null ? void 0 : K.billSeq) ?? ((Z = ee.value) == null ? void 0 : Z.billId)), 1)
|
|
5448
5461
|
];
|
|
5449
5462
|
}),
|
|
5450
5463
|
"dialog-footer": M(() => [
|
|
5451
|
-
I(
|
|
5464
|
+
I(oe, { class: "sm:hidden xs:hidden" }),
|
|
5452
5465
|
I(Q, {
|
|
5453
5466
|
label: "Close",
|
|
5454
5467
|
size: "md",
|
|
5455
|
-
onClick: _[17] || (_[17] = (K) =>
|
|
5468
|
+
onClick: _[17] || (_[17] = (K) => ne.value = null)
|
|
5456
5469
|
})
|
|
5457
5470
|
]),
|
|
5458
5471
|
default: M(() => {
|
|
5459
5472
|
var K;
|
|
5460
5473
|
return [
|
|
5461
|
-
|
|
5462
|
-
n("div",
|
|
5474
|
+
ne.value ? (A(), V("div", Zl, [
|
|
5475
|
+
n("div", Wl, [
|
|
5463
5476
|
n("button", {
|
|
5464
5477
|
type: "button",
|
|
5465
5478
|
class: "w-full flex items-center justify-between gap-8 px-12 py-8",
|
|
5466
|
-
onClick: _[15] || (_[15] = (
|
|
5479
|
+
onClick: _[15] || (_[15] = (Z) => i.value.exchange = !i.value.exchange)
|
|
5467
5480
|
}, [
|
|
5468
|
-
n("div",
|
|
5469
|
-
I(
|
|
5470
|
-
label: o(
|
|
5481
|
+
n("div", ei, [
|
|
5482
|
+
I(Oe, {
|
|
5483
|
+
label: o(ne.value) ?? ne.value.stage,
|
|
5471
5484
|
compact: ""
|
|
5472
5485
|
}, null, 8, ["label"]),
|
|
5473
|
-
n("div",
|
|
5474
|
-
|
|
5486
|
+
n("div", ti, B(ne.value.invoiceNo), 1),
|
|
5487
|
+
ne.value.resultCode ? (A(), H(Oe, {
|
|
5475
5488
|
key: 0,
|
|
5476
|
-
label:
|
|
5477
|
-
variant: d(
|
|
5489
|
+
label: ne.value.resultCode,
|
|
5490
|
+
variant: d(ne.value.status),
|
|
5478
5491
|
compact: ""
|
|
5479
5492
|
}, null, 8, ["label", "variant"])) : j("", !0)
|
|
5480
5493
|
]),
|
|
5481
|
-
I(
|
|
5494
|
+
I(Ct, {
|
|
5482
5495
|
name: i.value.exchange ? "expand_less" : "expand_more"
|
|
5483
5496
|
}, null, 8, ["name"])
|
|
5484
5497
|
]),
|
|
5485
|
-
|
|
5498
|
+
ot(n("div", ni, [
|
|
5486
5499
|
n("div", null, [
|
|
5487
5500
|
_[23] || (_[23] = n("div", { class: "font-bold mb-4" }, "Request payload", -1)),
|
|
5488
|
-
|
|
5489
|
-
I(
|
|
5490
|
-
payload:
|
|
5501
|
+
ne.value.payload ? (A(), V(J, { key: 0 }, [
|
|
5502
|
+
I(bl, {
|
|
5503
|
+
payload: ne.value.payload,
|
|
5491
5504
|
"bill-rounding": (K = ee.value) == null ? void 0 : K.rounding,
|
|
5492
5505
|
class: "mb-8"
|
|
5493
5506
|
}, null, 8, ["payload", "bill-rounding"]),
|
|
5494
|
-
(A(), H(
|
|
5495
|
-
key: `${
|
|
5496
|
-
value:
|
|
5507
|
+
(A(), H(We, {
|
|
5508
|
+
key: `${ne.value.createdAt}-${ne.value.stage}-payload`,
|
|
5509
|
+
value: ne.value.payload
|
|
5497
5510
|
}, null, 8, ["value"]))
|
|
5498
|
-
], 64)) : (A(), V("div",
|
|
5511
|
+
], 64)) : (A(), V("div", oi, "No payload recorded."))
|
|
5499
5512
|
]),
|
|
5500
5513
|
n("div", null, [
|
|
5501
5514
|
_[24] || (_[24] = n("div", { class: "font-bold mb-4" }, "Response", -1)),
|
|
5502
|
-
|
|
5503
|
-
key: `${
|
|
5504
|
-
value:
|
|
5505
|
-
}, null, 8, ["value"])) : (A(), V("div",
|
|
5515
|
+
ne.value.response ? (A(), H(We, {
|
|
5516
|
+
key: `${ne.value.createdAt}-${ne.value.stage}-response`,
|
|
5517
|
+
value: ne.value.response
|
|
5518
|
+
}, null, 8, ["value"])) : (A(), V("div", si, "No response recorded."))
|
|
5506
5519
|
])
|
|
5507
5520
|
], 512), [
|
|
5508
|
-
[
|
|
5521
|
+
[st, i.value.exchange]
|
|
5509
5522
|
])
|
|
5510
5523
|
]),
|
|
5511
|
-
n("div",
|
|
5524
|
+
n("div", ai, [
|
|
5512
5525
|
n("button", {
|
|
5513
5526
|
type: "button",
|
|
5514
5527
|
class: "w-full flex items-center justify-between gap-8 px-12 py-8",
|
|
5515
|
-
onClick: _[16] || (_[16] = (
|
|
5528
|
+
onClick: _[16] || (_[16] = (Z) => i.value.log = !i.value.log)
|
|
5516
5529
|
}, [
|
|
5517
5530
|
_[25] || (_[25] = n("div", { class: "font-bold" }, "Log entry", -1)),
|
|
5518
|
-
I(
|
|
5531
|
+
I(Ct, {
|
|
5519
5532
|
name: i.value.log ? "expand_less" : "expand_more"
|
|
5520
5533
|
}, null, 8, ["name"])
|
|
5521
5534
|
]),
|
|
5522
|
-
|
|
5523
|
-
(A(), H(
|
|
5524
|
-
key: `${
|
|
5525
|
-
value:
|
|
5535
|
+
ot(n("div", li, [
|
|
5536
|
+
(A(), H(We, {
|
|
5537
|
+
key: `${ne.value.createdAt}-${ne.value.stage}-log`,
|
|
5538
|
+
value: ne.value
|
|
5526
5539
|
}, null, 8, ["value"]))
|
|
5527
5540
|
], 512), [
|
|
5528
|
-
[
|
|
5541
|
+
[st, i.value.log]
|
|
5529
5542
|
])
|
|
5530
5543
|
])
|
|
5531
5544
|
])) : j("", !0)
|
|
@@ -5536,7 +5549,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5536
5549
|
], 64);
|
|
5537
5550
|
};
|
|
5538
5551
|
}
|
|
5539
|
-
}),
|
|
5552
|
+
}), nt = {
|
|
5540
5553
|
key: "codemax",
|
|
5541
5554
|
valueColumns: [
|
|
5542
5555
|
{ field: "itemCode", header: "CodeMax Code", aliases: ["codemaxcode"], required: !0 },
|
|
@@ -5549,7 +5562,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5549
5562
|
unit: e.unit ?? ""
|
|
5550
5563
|
}),
|
|
5551
5564
|
readValues: (S) => ({ itemCode: S.itemCode, unit: S.unit })
|
|
5552
|
-
},
|
|
5565
|
+
}, ri = { class: "flex flex-col gap-8 w-full" }, ui = { class: "flex items-center" }, di = /* @__PURE__ */ W({
|
|
5553
5566
|
__name: "ApplyProductDialogCodemax",
|
|
5554
5567
|
props: {
|
|
5555
5568
|
categories: { default: () => [] },
|
|
@@ -5562,8 +5575,8 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5562
5575
|
},
|
|
5563
5576
|
emits: ["update:setting", "update:show", "submit"],
|
|
5564
5577
|
setup(S, { emit: c }) {
|
|
5565
|
-
const e = S, f = c, t =
|
|
5566
|
-
|
|
5578
|
+
const e = S, f = c, t = it(pe(e.setting));
|
|
5579
|
+
_e([() => e.show], ([i]) => {
|
|
5567
5580
|
if (i)
|
|
5568
5581
|
for (const w of Object.keys(e.setting))
|
|
5569
5582
|
t[w] = e.setting[w];
|
|
@@ -5581,15 +5594,15 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5581
5594
|
function m(i) {
|
|
5582
5595
|
t.bindings = [...p.value, ...i];
|
|
5583
5596
|
}
|
|
5584
|
-
const v = O(), h =
|
|
5597
|
+
const v = O(), h = Re(), g = ue(), C = be();
|
|
5585
5598
|
function E() {
|
|
5586
5599
|
var w;
|
|
5587
|
-
const { filename: i } =
|
|
5600
|
+
const { filename: i } = Gt(
|
|
5588
5601
|
e.menus,
|
|
5589
5602
|
e.categories,
|
|
5590
5603
|
t.bindings,
|
|
5591
5604
|
e.variants,
|
|
5592
|
-
|
|
5605
|
+
nt,
|
|
5593
5606
|
(w = C.currentBusiness.value) == null ? void 0 : w.name
|
|
5594
5607
|
);
|
|
5595
5608
|
g.open({
|
|
@@ -5601,12 +5614,12 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5601
5614
|
function k() {
|
|
5602
5615
|
h.open({
|
|
5603
5616
|
title: o("inventory.integration.bindingImport.dialogTitle"),
|
|
5604
|
-
contentComponent:
|
|
5617
|
+
contentComponent: Jt,
|
|
5605
5618
|
contentComponentProps: {
|
|
5606
|
-
config:
|
|
5619
|
+
config: nt,
|
|
5607
5620
|
menus: e.menus,
|
|
5608
5621
|
variants: e.variants,
|
|
5609
|
-
bindings:
|
|
5622
|
+
bindings: pe(t.bindings)
|
|
5610
5623
|
},
|
|
5611
5624
|
overlay: !0,
|
|
5612
5625
|
closeButton: !0,
|
|
@@ -5624,7 +5637,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5624
5637
|
variant: "plain"
|
|
5625
5638
|
}
|
|
5626
5639
|
}).onPrimary((i) => {
|
|
5627
|
-
if (!i || !
|
|
5640
|
+
if (!i || !ze(i).length) {
|
|
5628
5641
|
g.open({
|
|
5629
5642
|
title: o("inventory.integration.bindingImport.nothingToImport.title"),
|
|
5630
5643
|
message: o("inventory.integration.bindingImport.nothingToImport.message"),
|
|
@@ -5638,8 +5651,8 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5638
5651
|
function s(i) {
|
|
5639
5652
|
h.open({
|
|
5640
5653
|
title: o("inventory.integration.bindingImport.previewTitle"),
|
|
5641
|
-
contentComponent:
|
|
5642
|
-
contentComponentProps: { config:
|
|
5654
|
+
contentComponent: Zt,
|
|
5655
|
+
contentComponentProps: { config: nt, result: i },
|
|
5643
5656
|
overlay: !0,
|
|
5644
5657
|
closeButton: !0,
|
|
5645
5658
|
minWidth: 900,
|
|
@@ -5653,37 +5666,37 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5653
5666
|
close: !0
|
|
5654
5667
|
}
|
|
5655
5668
|
}).onPrimary(() => {
|
|
5656
|
-
const w =
|
|
5657
|
-
t.bindings =
|
|
5669
|
+
const w = ze(i);
|
|
5670
|
+
t.bindings = Qt(t.bindings, w), g.open({
|
|
5658
5671
|
title: o("inventory.integration.bindingImport.importSuccess.title"),
|
|
5659
5672
|
message: o("inventory.integration.bindingImport.importSuccess.message", { count: w.length }),
|
|
5660
5673
|
type: "success"
|
|
5661
5674
|
});
|
|
5662
5675
|
});
|
|
5663
5676
|
}
|
|
5664
|
-
const r =
|
|
5677
|
+
const r = Ee(e, "show"), b = O(!1);
|
|
5665
5678
|
function x() {
|
|
5666
5679
|
var i, w;
|
|
5667
5680
|
(w = (i = v.value) == null ? void 0 : i.validateInputs) == null || w.call(i);
|
|
5668
5681
|
}
|
|
5669
5682
|
function d() {
|
|
5670
|
-
f("update:setting",
|
|
5683
|
+
f("update:setting", pe(t)), f("submit");
|
|
5671
5684
|
}
|
|
5672
5685
|
const { t: o } = ie();
|
|
5673
5686
|
return (i, w) => {
|
|
5674
5687
|
const R = L("FmChip"), $ = L("FmButton"), X = L("FmForm"), U = L("FmSideSheet");
|
|
5675
|
-
return A(), V(
|
|
5688
|
+
return A(), V(J, null, [
|
|
5676
5689
|
I(U, {
|
|
5677
5690
|
modelValue: F(r),
|
|
5678
|
-
"onUpdate:modelValue": w[6] || (w[6] = (P) =>
|
|
5691
|
+
"onUpdate:modelValue": w[6] || (w[6] = (P) => Fe(r) ? r.value = P : null),
|
|
5679
5692
|
header: F(o)("inventory.integration.apply.title"),
|
|
5680
5693
|
"dismiss-away": "",
|
|
5681
5694
|
"close-button": "",
|
|
5682
5695
|
"max-width": 500
|
|
5683
5696
|
}, {
|
|
5684
5697
|
default: M(() => [
|
|
5685
|
-
n("div",
|
|
5686
|
-
n("div",
|
|
5698
|
+
n("div", ri, [
|
|
5699
|
+
n("div", ui, [
|
|
5687
5700
|
I(R, { label: "Menu v4" }),
|
|
5688
5701
|
w[8] || (w[8] = n("div", { class: "flex-grow" }, null, -1)),
|
|
5689
5702
|
I($, {
|
|
@@ -5709,14 +5722,14 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5709
5722
|
onValidationSuccess: w[4] || (w[4] = (P) => d())
|
|
5710
5723
|
}, {
|
|
5711
5724
|
default: M(() => [
|
|
5712
|
-
I(
|
|
5725
|
+
I(Et, {
|
|
5713
5726
|
categories: i.categories,
|
|
5714
5727
|
variants: i.variants,
|
|
5715
5728
|
bindings: p.value,
|
|
5716
5729
|
menus: a.value,
|
|
5717
5730
|
"onUpdate:bindings": w[2] || (w[2] = (P) => y(P))
|
|
5718
5731
|
}, null, 8, ["categories", "variants", "bindings", "menus"]),
|
|
5719
|
-
I(
|
|
5732
|
+
I(Et, {
|
|
5720
5733
|
"is-addon": !0,
|
|
5721
5734
|
categories: [],
|
|
5722
5735
|
variants: i.variants,
|
|
@@ -5739,8 +5752,8 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5739
5752
|
]),
|
|
5740
5753
|
_: 1
|
|
5741
5754
|
}, 8, ["modelValue", "header"]),
|
|
5742
|
-
(A(), H(
|
|
5743
|
-
I(
|
|
5755
|
+
(A(), H(Te, { to: "body" }, [
|
|
5756
|
+
I(ii, {
|
|
5744
5757
|
show: b.value,
|
|
5745
5758
|
"onUpdate:show": w[7] || (w[7] = (P) => b.value = P)
|
|
5746
5759
|
}, null, 8, ["show"])
|
|
@@ -5748,7 +5761,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5748
5761
|
], 64);
|
|
5749
5762
|
};
|
|
5750
5763
|
}
|
|
5751
|
-
}),
|
|
5764
|
+
}), ci = /* @__PURE__ */ W({
|
|
5752
5765
|
__name: "CodemaxDialog",
|
|
5753
5766
|
props: {
|
|
5754
5767
|
setting: {},
|
|
@@ -5762,7 +5775,7 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5762
5775
|
emits: ["update:setting", "update:show", "submit"],
|
|
5763
5776
|
setup(S, { emit: c }) {
|
|
5764
5777
|
const e = S, f = c;
|
|
5765
|
-
return (t, u) => (A(), H(
|
|
5778
|
+
return (t, u) => (A(), H(di, {
|
|
5766
5779
|
setting: e.setting,
|
|
5767
5780
|
show: e.show,
|
|
5768
5781
|
loading: t.loading,
|
|
@@ -5775,13 +5788,13 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5775
5788
|
onSubmit: u[2] || (u[2] = (l) => f("submit"))
|
|
5776
5789
|
}, null, 8, ["setting", "show", "loading", "menus", "variants", "categories", "groups"]));
|
|
5777
5790
|
}
|
|
5778
|
-
}),
|
|
5791
|
+
}), mi = { key: 0 }, pi = { class: "flex justify-center" }, fi = ["src"], vi = { class: "flex flex-col items-center gap-2" }, gi = { class: "text-lg font-bold" }, yi = { class: "text-fm-color-neutral-gray-300" }, bi = {
|
|
5779
5792
|
key: 0,
|
|
5780
5793
|
class: "text-xs text-orange-500"
|
|
5781
|
-
},
|
|
5794
|
+
}, xi = /* @__PURE__ */ W({
|
|
5782
5795
|
__name: "Codemax",
|
|
5783
5796
|
setup(S) {
|
|
5784
|
-
const c = ye(), e =
|
|
5797
|
+
const c = ye(), e = _n(), f = be(), t = ue(), u = O(!1), l = O(!1), { breakpoints: a } = ut(), p = z(() => a.value.xs || a.value.sm), y = z(() => {
|
|
5785
5798
|
var g;
|
|
5786
5799
|
return (g = f.currentBusiness.value) == null ? void 0 : g.menuVersion;
|
|
5787
5800
|
}), m = z(() => y.value !== "v3");
|
|
@@ -5819,9 +5832,9 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5819
5832
|
const { t: h } = ie();
|
|
5820
5833
|
return (g, C) => {
|
|
5821
5834
|
const E = L("FmCardSection"), k = L("FmCard");
|
|
5822
|
-
return F(e).isEnabled ? (A(), V("div",
|
|
5835
|
+
return F(e).isEnabled ? (A(), V("div", mi, [
|
|
5823
5836
|
I(k, {
|
|
5824
|
-
class:
|
|
5837
|
+
class: ae({
|
|
5825
5838
|
"w-full": p.value,
|
|
5826
5839
|
"w-1/2": !p.value,
|
|
5827
5840
|
border: !0,
|
|
@@ -5834,16 +5847,16 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5834
5847
|
default: M(() => [
|
|
5835
5848
|
I(E, null, {
|
|
5836
5849
|
default: M(() => [
|
|
5837
|
-
n("div",
|
|
5850
|
+
n("div", pi, [
|
|
5838
5851
|
n("img", {
|
|
5839
|
-
src: F(
|
|
5852
|
+
src: F(Lt),
|
|
5840
5853
|
alt: "Codemax"
|
|
5841
|
-
}, null, 8,
|
|
5854
|
+
}, null, 8, fi)
|
|
5842
5855
|
]),
|
|
5843
|
-
n("div",
|
|
5844
|
-
n("div",
|
|
5845
|
-
n("div",
|
|
5846
|
-
m.value ? j("", !0) : (A(), V("div",
|
|
5856
|
+
n("div", vi, [
|
|
5857
|
+
n("div", gi, B(F(h)("inventory.integration.codemax.title")), 1),
|
|
5858
|
+
n("div", yi, B(F(h)("inventory.integration.codemax.description")), 1),
|
|
5859
|
+
m.value ? j("", !0) : (A(), V("div", bi, B(F(h)("inventory.integration.codemax.unsupported")), 1))
|
|
5847
5860
|
])
|
|
5848
5861
|
]),
|
|
5849
5862
|
_: 1
|
|
@@ -5851,8 +5864,8 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5851
5864
|
]),
|
|
5852
5865
|
_: 1
|
|
5853
5866
|
}, 8, ["class"]),
|
|
5854
|
-
(A(), H(
|
|
5855
|
-
F(e).state.setting ?
|
|
5867
|
+
(A(), H(Te, { to: "body" }, [
|
|
5868
|
+
F(e).state.setting ? ot((A(), H(ci, {
|
|
5856
5869
|
key: 0,
|
|
5857
5870
|
menus: F(e).state.menu,
|
|
5858
5871
|
variants: F(e).state.variants,
|
|
@@ -5865,13 +5878,13 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5865
5878
|
loading: u.value,
|
|
5866
5879
|
onSubmit: C[3] || (C[3] = (s) => v())
|
|
5867
5880
|
}, null, 8, ["menus", "variants", "categories", "groups", "setting", "show", "loading"])), [
|
|
5868
|
-
[
|
|
5881
|
+
[st, m.value]
|
|
5869
5882
|
]) : j("", !0)
|
|
5870
5883
|
]))
|
|
5871
5884
|
])) : j("", !0);
|
|
5872
5885
|
};
|
|
5873
5886
|
}
|
|
5874
|
-
}),
|
|
5887
|
+
}), Bt = [
|
|
5875
5888
|
"store",
|
|
5876
5889
|
"issueBy",
|
|
5877
5890
|
"verifiedBy",
|
|
@@ -5888,9 +5901,9 @@ const Sl = { class: "flex items-center gap-2 mb-3" }, wl = {
|
|
|
5888
5901
|
"schemeFranchiseePrice",
|
|
5889
5902
|
"physicalSchemeTotalFranchiseePrice"
|
|
5890
5903
|
];
|
|
5891
|
-
async function
|
|
5904
|
+
async function Ai(S, c, e) {
|
|
5892
5905
|
var l;
|
|
5893
|
-
const f = await
|
|
5906
|
+
const f = await hi(e), t = [], u = {};
|
|
5894
5907
|
for (const a in f) {
|
|
5895
5908
|
const p = f[a];
|
|
5896
5909
|
for (let y = 0; y < p.length; y++) {
|
|
@@ -5932,7 +5945,7 @@ async function vi(S, c, e) {
|
|
|
5932
5945
|
amounts: [
|
|
5933
5946
|
{
|
|
5934
5947
|
_id: null,
|
|
5935
|
-
type:
|
|
5948
|
+
type: Tt.Enum.CLOSING,
|
|
5936
5949
|
remark: "Opening Balance",
|
|
5937
5950
|
amount: r,
|
|
5938
5951
|
measurement: null,
|
|
@@ -5956,25 +5969,25 @@ async function vi(S, c, e) {
|
|
|
5956
5969
|
rows: u
|
|
5957
5970
|
};
|
|
5958
5971
|
}
|
|
5959
|
-
async function
|
|
5972
|
+
async function hi(S) {
|
|
5960
5973
|
const c = await new Promise((u, l) => {
|
|
5961
5974
|
const a = new FileReader();
|
|
5962
5975
|
a.onload = (p) => u(p.target.result), a.onerror = l, a.readAsArrayBuffer(S);
|
|
5963
|
-
}), e =
|
|
5976
|
+
}), e = Ot(c, { type: "array" }), f = e.SheetNames, t = {};
|
|
5964
5977
|
for (const u of f) {
|
|
5965
|
-
const l = await
|
|
5978
|
+
const l = await Ii(e.Sheets[u]);
|
|
5966
5979
|
t[u] = l;
|
|
5967
5980
|
}
|
|
5968
5981
|
return t;
|
|
5969
5982
|
}
|
|
5970
|
-
async function
|
|
5971
|
-
const c =
|
|
5972
|
-
header:
|
|
5983
|
+
async function Ii(S) {
|
|
5984
|
+
const c = Ut.sheet_to_json(S, {
|
|
5985
|
+
header: Bt,
|
|
5973
5986
|
range: 12
|
|
5974
5987
|
}), e = [];
|
|
5975
5988
|
for (let f = 0; f < c.length; f++) {
|
|
5976
5989
|
const t = c[f], u = {};
|
|
5977
|
-
for (const l of
|
|
5990
|
+
for (const l of Bt)
|
|
5978
5991
|
u[l] = String(t[l]).trim();
|
|
5979
5992
|
e.push({
|
|
5980
5993
|
...u,
|
|
@@ -5984,23 +5997,23 @@ async function yi(S) {
|
|
|
5984
5997
|
}
|
|
5985
5998
|
return e;
|
|
5986
5999
|
}
|
|
5987
|
-
const
|
|
6000
|
+
const Si = { class: "flex flex-col gap-4" }, wi = { class: "flex flex-col" }, Ci = {
|
|
5988
6001
|
key: 0,
|
|
5989
6002
|
class: "flex flex-col gap-4 my-5"
|
|
5990
|
-
},
|
|
5991
|
-
class: /* @__PURE__ */
|
|
5992
|
-
},
|
|
5993
|
-
class: /* @__PURE__ */
|
|
5994
|
-
},
|
|
6003
|
+
}, ki = { class: "flex flex-col gap-8" }, _i = { class: "flex flex-col gap-8" }, Fi = {
|
|
6004
|
+
class: /* @__PURE__ */ ae(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
6005
|
+
}, Ei = {
|
|
6006
|
+
class: /* @__PURE__ */ ae(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
6007
|
+
}, Bi = { class: "line-clamp-2 text-ellipsis break-all" }, Vi = { class: "flex flex-col" }, Ni = { class: "font-medium" }, Di = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Li = {
|
|
5995
6008
|
key: 0,
|
|
5996
6009
|
class: "rounded border-1 border-gray-200 p-2 flex items-center"
|
|
5997
|
-
},
|
|
6010
|
+
}, Ti = { class: "flex flex-col" }, Ri = { class: "font-medium" }, Mi = { class: "text-xs text-gray-400" }, Oi = { class: "text-xs text-gray-400" }, Ui = { class: "flex" }, zi = { class: "flex" }, ji = {
|
|
5998
6011
|
key: 1,
|
|
5999
6012
|
class: "flex flex-col gap-2"
|
|
6000
|
-
},
|
|
6013
|
+
}, Pi = /* @__PURE__ */ W({
|
|
6001
6014
|
__name: "XilnexOpeningImport",
|
|
6002
6015
|
setup(S) {
|
|
6003
|
-
const c =
|
|
6016
|
+
const c = Fn(), e = xe(), f = je(), t = Rt(), u = ue(), l = ye(), a = z(() => [
|
|
6004
6017
|
{
|
|
6005
6018
|
value: "xilnex",
|
|
6006
6019
|
label: "Xilnex",
|
|
@@ -6015,7 +6028,7 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6015
6028
|
disabledReason: "Current location is not binded to NetSuite"
|
|
6016
6029
|
}
|
|
6017
6030
|
] : []
|
|
6018
|
-
]), p = O(a.value[0].value), { t: y } =
|
|
6031
|
+
]), p = O(a.value[0].value), { t: y } = Qe(), m = O(null), v = O(), h = O(""), g = O([]), C = O([]), E = [
|
|
6019
6032
|
{
|
|
6020
6033
|
id: "ingredient",
|
|
6021
6034
|
header: () => "Ingredient",
|
|
@@ -6113,7 +6126,7 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6113
6126
|
try {
|
|
6114
6127
|
let i = {};
|
|
6115
6128
|
p.value === "netsuite" && (i = await e.getItemAverageCosts());
|
|
6116
|
-
const { errors: w, rows: R } = await
|
|
6129
|
+
const { errors: w, rows: R } = await Ai(
|
|
6117
6130
|
i,
|
|
6118
6131
|
f.skus,
|
|
6119
6132
|
m.value
|
|
@@ -6168,12 +6181,12 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6168
6181
|
}), o = z(() => {
|
|
6169
6182
|
if (!x.value) return null;
|
|
6170
6183
|
const i = new Date(x.value);
|
|
6171
|
-
return isNaN(i.getTime()) ? null :
|
|
6184
|
+
return isNaN(i.getTime()) ? null : mt(i);
|
|
6172
6185
|
});
|
|
6173
6186
|
return (i, w) => {
|
|
6174
|
-
const R = L("FmLabel"), $ = L("FmField"), X = L("FmSimpleDatePicker"), U = L("FmButton"), P = L("FmIcon"), Y = L("FmRadio"),
|
|
6175
|
-
return A(), V("div",
|
|
6176
|
-
n("div",
|
|
6187
|
+
const R = L("FmLabel"), $ = L("FmField"), X = L("FmSimpleDatePicker"), U = L("FmButton"), P = L("FmIcon"), Y = L("FmRadio"), we = L("FmRadioGroup"), $e = L("FmTable");
|
|
6188
|
+
return A(), V("div", Si, [
|
|
6189
|
+
n("div", wi, [
|
|
6177
6190
|
I(R, { label: "Latest closing" })
|
|
6178
6191
|
]),
|
|
6179
6192
|
I($, {
|
|
@@ -6181,13 +6194,13 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6181
6194
|
disabled: ""
|
|
6182
6195
|
}, {
|
|
6183
6196
|
default: M(() => [
|
|
6184
|
-
le(B(F(c).state.closingDocumentId ? `${F(
|
|
6197
|
+
le(B(F(c).state.closingDocumentId ? `${F(ct)(new Date(F(rt)(F(c).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
6185
6198
|
]),
|
|
6186
6199
|
_: 1
|
|
6187
6200
|
}),
|
|
6188
|
-
F(c).state.closingDocumentId ? (A(), V("div",
|
|
6201
|
+
F(c).state.closingDocumentId ? (A(), V("div", ji, [
|
|
6189
6202
|
w[6] || (w[6] = n("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, " Not able to import opening balance as closing document already exists. ", -1)),
|
|
6190
|
-
F(l)._currentLocation ? (A(), V(
|
|
6203
|
+
F(l)._currentLocation ? (A(), V(J, { key: 0 }, [
|
|
6191
6204
|
I(R, { label: "Location ID" }),
|
|
6192
6205
|
I($, {
|
|
6193
6206
|
"prepend-icon": "lock_outline",
|
|
@@ -6199,7 +6212,7 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6199
6212
|
_: 1
|
|
6200
6213
|
})
|
|
6201
6214
|
], 64)) : j("", !0)
|
|
6202
|
-
])) : (A(), V("div",
|
|
6215
|
+
])) : (A(), V("div", Ci, [
|
|
6203
6216
|
I(X, {
|
|
6204
6217
|
modelValue: d.value,
|
|
6205
6218
|
"onUpdate:modelValue": w[0] || (w[0] = (ee) => d.value = ee),
|
|
@@ -6219,10 +6232,10 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6219
6232
|
]),
|
|
6220
6233
|
_: 1
|
|
6221
6234
|
}, 8, ["modelValue"]),
|
|
6222
|
-
n("div",
|
|
6235
|
+
n("div", ki, [
|
|
6223
6236
|
I(R, { label: "Stock take file" })
|
|
6224
6237
|
]),
|
|
6225
|
-
I(
|
|
6238
|
+
I(dt, {
|
|
6226
6239
|
onFileUpload: w[1] || (w[1] = (ee) => {
|
|
6227
6240
|
ee && (m.value = ee);
|
|
6228
6241
|
}),
|
|
@@ -6231,10 +6244,10 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6231
6244
|
m.value ? {
|
|
6232
6245
|
name: "default",
|
|
6233
6246
|
fn: M(({ openFileDialog: ee }) => [
|
|
6234
|
-
n("div",
|
|
6235
|
-
n("div",
|
|
6236
|
-
n("div",
|
|
6237
|
-
n("div",
|
|
6247
|
+
n("div", _i, [
|
|
6248
|
+
n("div", Fi, [
|
|
6249
|
+
n("div", Ei, [
|
|
6250
|
+
n("div", Bi, B(m.value.name), 1),
|
|
6238
6251
|
I(U, {
|
|
6239
6252
|
label: F(y)("inventory.ingredient.import.replaceFile"),
|
|
6240
6253
|
variant: "secondary",
|
|
@@ -6248,14 +6261,14 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6248
6261
|
key: "0"
|
|
6249
6262
|
} : void 0
|
|
6250
6263
|
]), 1024),
|
|
6251
|
-
I(
|
|
6264
|
+
I(we, {
|
|
6252
6265
|
modelValue: p.value,
|
|
6253
6266
|
"onUpdate:modelValue": w[2] || (w[2] = (ee) => p.value = ee),
|
|
6254
6267
|
label: "Retrieve cost from",
|
|
6255
6268
|
class: "my-5"
|
|
6256
6269
|
}, {
|
|
6257
6270
|
default: M(() => [
|
|
6258
|
-
(A(!0), V(
|
|
6271
|
+
(A(!0), V(J, null, se(a.value, (ee) => (A(), H(Y, {
|
|
6259
6272
|
key: ee.value,
|
|
6260
6273
|
value: ee.value,
|
|
6261
6274
|
label: ee.label,
|
|
@@ -6263,11 +6276,11 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6263
6276
|
disabled: ee.disabled
|
|
6264
6277
|
}, {
|
|
6265
6278
|
label: M(() => [
|
|
6266
|
-
n("div",
|
|
6267
|
-
n("span",
|
|
6268
|
-
n("span",
|
|
6279
|
+
n("div", Vi, [
|
|
6280
|
+
n("span", Ni, B(ee.label), 1),
|
|
6281
|
+
n("span", Di, B(ee.disabled ? ee.disabledReason : ee.subLabel), 1)
|
|
6269
6282
|
]),
|
|
6270
|
-
ee.value === "netsuite" && F(e).currentLocationSetting ? (A(), V("div",
|
|
6283
|
+
ee.value === "netsuite" && F(e).currentLocationSetting ? (A(), V("div", Li, [
|
|
6271
6284
|
I(P, {
|
|
6272
6285
|
name: "cloud",
|
|
6273
6286
|
color: "neutral-gray-400",
|
|
@@ -6275,10 +6288,10 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6275
6288
|
class: "mr-2",
|
|
6276
6289
|
outline: !0
|
|
6277
6290
|
}),
|
|
6278
|
-
n("div",
|
|
6279
|
-
n("span",
|
|
6280
|
-
n("span",
|
|
6281
|
-
n("span",
|
|
6291
|
+
n("div", Ti, [
|
|
6292
|
+
n("span", Ri, B(F(e).currentLocationSetting.name), 1),
|
|
6293
|
+
n("span", Mi, "ID: " + B(F(e).currentLocationSetting.netSuiteId), 1),
|
|
6294
|
+
n("span", Oi, "Subsidiary: " + B(F(e).getSubsidiaryFullName(
|
|
6282
6295
|
F(e).currentLocationSetting.subsidiaryId
|
|
6283
6296
|
).fullName), 1)
|
|
6284
6297
|
])
|
|
@@ -6289,7 +6302,7 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6289
6302
|
]),
|
|
6290
6303
|
_: 1
|
|
6291
6304
|
}, 8, ["modelValue"]),
|
|
6292
|
-
n("div",
|
|
6305
|
+
n("div", Ui, [
|
|
6293
6306
|
I(U, {
|
|
6294
6307
|
class: "ml-auto mt-4",
|
|
6295
6308
|
variant: "secondary",
|
|
@@ -6300,9 +6313,9 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6300
6313
|
onClick: r
|
|
6301
6314
|
}, null, 8, ["disabled", "loading"])
|
|
6302
6315
|
]),
|
|
6303
|
-
m.value && C.value.length > 0 ? (A(), V(
|
|
6316
|
+
m.value && C.value.length > 0 ? (A(), V(J, { key: 0 }, [
|
|
6304
6317
|
w[4] || (w[4] = n("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
6305
|
-
I(
|
|
6318
|
+
I($e, {
|
|
6306
6319
|
modelValue: v.value,
|
|
6307
6320
|
"onUpdate:modelValue": w[3] || (w[3] = (ee) => v.value = ee),
|
|
6308
6321
|
"row-data": C.value,
|
|
@@ -6311,14 +6324,14 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6311
6324
|
"search-value": h.value
|
|
6312
6325
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
6313
6326
|
], 64)) : j("", !0),
|
|
6314
|
-
g.value.length > 0 ? (A(), V(
|
|
6327
|
+
g.value.length > 0 ? (A(), V(J, { key: 1 }, [
|
|
6315
6328
|
w[5] || (w[5] = n("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
6316
|
-
I(
|
|
6329
|
+
I($e, {
|
|
6317
6330
|
"row-data": g.value,
|
|
6318
6331
|
"column-defs": k
|
|
6319
6332
|
}, null, 8, ["row-data"])
|
|
6320
6333
|
], 64)) : j("", !0),
|
|
6321
|
-
n("div",
|
|
6334
|
+
n("div", zi, [
|
|
6322
6335
|
C.value.length > 0 && !F(c).state.closingDocumentId ? (A(), H(U, {
|
|
6323
6336
|
key: 0,
|
|
6324
6337
|
class: "ml-auto mt-4",
|
|
@@ -6333,10 +6346,10 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6333
6346
|
]);
|
|
6334
6347
|
};
|
|
6335
6348
|
}
|
|
6336
|
-
}),
|
|
6349
|
+
}), $i = { class: "flex flex-col gap-8 w-full" }, Ki = { class: "flex gap-4 justify-between" }, Hi = { class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 bg-fm-color-neutral-gray-100 text-fm-color-neutral-gray-400" }, qi = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, Xi = { key: 0 }, Yi = {
|
|
6337
6350
|
key: 1,
|
|
6338
6351
|
class: "flex flex-col gap-8 w-full"
|
|
6339
|
-
},
|
|
6352
|
+
}, Qi = { key: 1 }, Gi = { class: "flex gap-8 items-center justify-start" }, Ji = /* @__PURE__ */ W({
|
|
6340
6353
|
__name: "XilnexSideSheet",
|
|
6341
6354
|
props: {
|
|
6342
6355
|
show: { type: Boolean },
|
|
@@ -6345,12 +6358,12 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6345
6358
|
emits: ["update:show"],
|
|
6346
6359
|
setup(S, { emit: c }) {
|
|
6347
6360
|
var v;
|
|
6348
|
-
const e = be(), t =
|
|
6349
|
-
{ label:
|
|
6361
|
+
const e = be(), t = Ee(S, "show"), { t: u } = ie(), l = c, a = ye(), p = ((v = a._currentLocation) == null ? void 0 : v.type) || "", y = [
|
|
6362
|
+
{ label: Ye(
|
|
6350
6363
|
"openingBalance"
|
|
6351
6364
|
/* OPENING_BALANCE */
|
|
6352
6365
|
) },
|
|
6353
|
-
{ label:
|
|
6366
|
+
{ label: Ye(
|
|
6354
6367
|
"transferNote"
|
|
6355
6368
|
/* TRANSFER_NOTE */
|
|
6356
6369
|
) }
|
|
@@ -6360,7 +6373,7 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6360
6373
|
const C = L("FmIcon"), E = L("FmButtonGroup"), k = L("FmButton"), s = L("FmSideSheet");
|
|
6361
6374
|
return A(), H(s, {
|
|
6362
6375
|
modelValue: F(t),
|
|
6363
|
-
"onUpdate:modelValue": g[2] || (g[2] = (b) =>
|
|
6376
|
+
"onUpdate:modelValue": g[2] || (g[2] = (b) => Fe(t) ? t.value = b : null),
|
|
6364
6377
|
header: "Data migration (Xilnex)",
|
|
6365
6378
|
"dismiss-away": "",
|
|
6366
6379
|
"close-button": "",
|
|
@@ -6369,20 +6382,20 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6369
6382
|
default: M(() => {
|
|
6370
6383
|
var b;
|
|
6371
6384
|
return [
|
|
6372
|
-
(b = F(e).sessionUser.value) != null && b.role.isAdmin ? (A(), V("div",
|
|
6373
|
-
m.value.label === F(
|
|
6385
|
+
(b = F(e).sessionUser.value) != null && b.role.isAdmin ? (A(), V("div", Yi, [
|
|
6386
|
+
m.value.label === F(Ye)(
|
|
6374
6387
|
"openingBalance"
|
|
6375
6388
|
/* OPENING_BALANCE */
|
|
6376
|
-
) ? (A(), H(
|
|
6377
|
-
m.value.label === F(
|
|
6389
|
+
) ? (A(), H(Pi, { key: 0 })) : j("", !0),
|
|
6390
|
+
m.value.label === F(Ye)(
|
|
6378
6391
|
"transferNote"
|
|
6379
6392
|
/* TRANSFER_NOTE */
|
|
6380
|
-
) ? (A(), V("div",
|
|
6381
|
-
])) : (A(), V("div",
|
|
6393
|
+
) ? (A(), V("div", Qi, " Not available yet. ")) : j("", !0)
|
|
6394
|
+
])) : (A(), V("div", Xi, " Please contact your administrator to apply the changes. "))
|
|
6382
6395
|
];
|
|
6383
6396
|
}),
|
|
6384
6397
|
"side-sheet-footer": M(() => [
|
|
6385
|
-
n("div",
|
|
6398
|
+
n("div", Gi, [
|
|
6386
6399
|
I(k, {
|
|
6387
6400
|
variant: "tertiary",
|
|
6388
6401
|
label: F(u)("common.close"),
|
|
@@ -6397,15 +6410,15 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6397
6410
|
fn: M(() => {
|
|
6398
6411
|
var b;
|
|
6399
6412
|
return [
|
|
6400
|
-
n("div",
|
|
6401
|
-
n("div",
|
|
6413
|
+
n("div", $i, [
|
|
6414
|
+
n("div", Ki, [
|
|
6402
6415
|
g[3] || (g[3] = n("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
6403
|
-
n("div",
|
|
6416
|
+
n("div", Hi, [
|
|
6404
6417
|
I(C, {
|
|
6405
6418
|
name: F(p),
|
|
6406
6419
|
size: "sm"
|
|
6407
6420
|
}, null, 8, ["name"]),
|
|
6408
|
-
n("div",
|
|
6421
|
+
n("div", qi, B((b = F(a)._currentLocation) == null ? void 0 : b.name), 1)
|
|
6409
6422
|
])
|
|
6410
6423
|
]),
|
|
6411
6424
|
I(E, {
|
|
@@ -6421,18 +6434,18 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6421
6434
|
]), 1032, ["modelValue"]);
|
|
6422
6435
|
};
|
|
6423
6436
|
}
|
|
6424
|
-
}),
|
|
6437
|
+
}), Zi = /* @__PURE__ */ W({
|
|
6425
6438
|
__name: "XilnexView",
|
|
6426
6439
|
setup(S) {
|
|
6427
|
-
const c =
|
|
6440
|
+
const c = $t(), e = ye(), f = O(!1);
|
|
6428
6441
|
async function t() {
|
|
6429
6442
|
f.value = !0, console.log("Opening Xilnex migration dialog");
|
|
6430
6443
|
}
|
|
6431
6444
|
return (u, l) => {
|
|
6432
6445
|
const a = L("FmCardSection"), p = L("FmCard");
|
|
6433
|
-
return F(c).enabledXilnexOpeningMigration && !F(e).businessLevel ? (A(), V(
|
|
6446
|
+
return F(c).enabledXilnexOpeningMigration && !F(e).businessLevel ? (A(), V(J, { key: 0 }, [
|
|
6434
6447
|
I(p, {
|
|
6435
|
-
class:
|
|
6448
|
+
class: ae({
|
|
6436
6449
|
"w-full": !0,
|
|
6437
6450
|
border: !0,
|
|
6438
6451
|
"border-fm-color-neutral-gray-100": !0,
|
|
@@ -6459,8 +6472,8 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6459
6472
|
]),
|
|
6460
6473
|
_: 1
|
|
6461
6474
|
}),
|
|
6462
|
-
(A(), H(
|
|
6463
|
-
I(
|
|
6475
|
+
(A(), H(Te, { to: "body" }, [
|
|
6476
|
+
I(Ji, {
|
|
6464
6477
|
show: f.value,
|
|
6465
6478
|
"onUpdate:show": l[1] || (l[1] = (y) => f.value = y)
|
|
6466
6479
|
}, null, 8, ["show"])
|
|
@@ -6468,7 +6481,7 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6468
6481
|
], 64)) : j("", !0);
|
|
6469
6482
|
};
|
|
6470
6483
|
}
|
|
6471
|
-
}),
|
|
6484
|
+
}), Vt = [
|
|
6472
6485
|
"bin",
|
|
6473
6486
|
"group",
|
|
6474
6487
|
"code",
|
|
@@ -6478,9 +6491,9 @@ const bi = { class: "flex flex-col gap-4" }, xi = { class: "flex flex-col" }, Ai
|
|
|
6478
6491
|
"quantity",
|
|
6479
6492
|
"total"
|
|
6480
6493
|
];
|
|
6481
|
-
async function
|
|
6494
|
+
async function Wi(S, c, e) {
|
|
6482
6495
|
var p;
|
|
6483
|
-
const f = await
|
|
6496
|
+
const f = await er(e), t = [], u = {}, l = Object.keys(f)[0], a = f[l];
|
|
6484
6497
|
for (let y = 0; y < a.length; y++) {
|
|
6485
6498
|
const m = a[y], v = m.code, h = m.description, g = m.quantity, C = m.unitcost;
|
|
6486
6499
|
if (v === "" || v === "undefined") {
|
|
@@ -6520,7 +6533,7 @@ async function Yi(S, c, e) {
|
|
|
6520
6533
|
amounts: [
|
|
6521
6534
|
{
|
|
6522
6535
|
_id: null,
|
|
6523
|
-
type:
|
|
6536
|
+
type: Tt.Enum.CLOSING,
|
|
6524
6537
|
remark: "Opening Balance",
|
|
6525
6538
|
amount: r,
|
|
6526
6539
|
measurement: null,
|
|
@@ -6543,25 +6556,25 @@ async function Yi(S, c, e) {
|
|
|
6543
6556
|
rows: u
|
|
6544
6557
|
};
|
|
6545
6558
|
}
|
|
6546
|
-
async function
|
|
6559
|
+
async function er(S) {
|
|
6547
6560
|
const c = await new Promise((u, l) => {
|
|
6548
6561
|
const a = new FileReader();
|
|
6549
6562
|
a.onload = (p) => u(p.target.result), a.onerror = l, a.readAsArrayBuffer(S);
|
|
6550
|
-
}), e =
|
|
6563
|
+
}), e = Ot(c, { type: "array" }), f = e.SheetNames, t = {};
|
|
6551
6564
|
for (const u of f) {
|
|
6552
|
-
const l = await
|
|
6565
|
+
const l = await tr(e.Sheets[u]);
|
|
6553
6566
|
t[u] = l;
|
|
6554
6567
|
}
|
|
6555
6568
|
return t;
|
|
6556
6569
|
}
|
|
6557
|
-
async function
|
|
6558
|
-
const c =
|
|
6559
|
-
header:
|
|
6570
|
+
async function tr(S) {
|
|
6571
|
+
const c = Ut.sheet_to_json(S, {
|
|
6572
|
+
header: Vt,
|
|
6560
6573
|
range: 1
|
|
6561
6574
|
}), e = [];
|
|
6562
6575
|
for (let f = 0; f < c.length; f++) {
|
|
6563
6576
|
const t = c[f], u = {};
|
|
6564
|
-
for (const l of
|
|
6577
|
+
for (const l of Vt)
|
|
6565
6578
|
u[l] = String(t[l]).trim();
|
|
6566
6579
|
e.push({
|
|
6567
6580
|
...u,
|
|
@@ -6571,23 +6584,23 @@ async function Gi(S) {
|
|
|
6571
6584
|
}
|
|
6572
6585
|
return e;
|
|
6573
6586
|
}
|
|
6574
|
-
const
|
|
6587
|
+
const nr = { class: "flex flex-col gap-4" }, or = { class: "flex flex-col" }, sr = {
|
|
6575
6588
|
key: 0,
|
|
6576
6589
|
class: "flex flex-col gap-4 my-5"
|
|
6577
|
-
},
|
|
6578
|
-
class: /* @__PURE__ */
|
|
6579
|
-
},
|
|
6580
|
-
class: /* @__PURE__ */
|
|
6581
|
-
},
|
|
6590
|
+
}, ar = { class: "flex flex-col gap-8" }, lr = { class: "flex flex-col gap-8" }, ir = {
|
|
6591
|
+
class: /* @__PURE__ */ ae(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
6592
|
+
}, rr = {
|
|
6593
|
+
class: /* @__PURE__ */ ae(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
6594
|
+
}, ur = { class: "line-clamp-2 text-ellipsis break-all" }, dr = { class: "flex flex-col" }, cr = { class: "font-medium" }, mr = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, pr = { class: "flex" }, fr = { class: "flex" }, vr = { key: 1 }, gr = /* @__PURE__ */ W({
|
|
6582
6595
|
__name: "SynergyOpeningImport",
|
|
6583
6596
|
setup(S) {
|
|
6584
|
-
const c =
|
|
6597
|
+
const c = En(), e = je(), f = Rt(), t = ue(), u = z(() => [
|
|
6585
6598
|
{
|
|
6586
6599
|
value: "synergy",
|
|
6587
6600
|
label: "Synergy",
|
|
6588
6601
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
6589
6602
|
}
|
|
6590
|
-
]), l = O(u.value[0].value), { t: a } =
|
|
6603
|
+
]), l = O(u.value[0].value), { t: a } = Qe(), p = O(null), y = O(), m = O(""), v = O([]), h = O([]), g = [
|
|
6591
6604
|
{
|
|
6592
6605
|
id: "ingredient",
|
|
6593
6606
|
header: () => "Ingredient",
|
|
@@ -6684,7 +6697,7 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6684
6697
|
E.value = !0;
|
|
6685
6698
|
try {
|
|
6686
6699
|
let d = {};
|
|
6687
|
-
const { errors: o, rows: i } = await
|
|
6700
|
+
const { errors: o, rows: i } = await Wi(
|
|
6688
6701
|
d,
|
|
6689
6702
|
e.skus,
|
|
6690
6703
|
p.value
|
|
@@ -6739,12 +6752,12 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6739
6752
|
}), x = z(() => {
|
|
6740
6753
|
if (!r.value) return null;
|
|
6741
6754
|
const d = new Date(r.value);
|
|
6742
|
-
return isNaN(d.getTime()) ? null :
|
|
6755
|
+
return isNaN(d.getTime()) ? null : mt(d);
|
|
6743
6756
|
});
|
|
6744
6757
|
return (d, o) => {
|
|
6745
6758
|
const i = L("FmLabel"), w = L("FmField"), R = L("FmSimpleDatePicker"), $ = L("FmButton"), X = L("FmRadio"), U = L("FmRadioGroup"), P = L("FmTable");
|
|
6746
|
-
return A(), V("div",
|
|
6747
|
-
n("div",
|
|
6759
|
+
return A(), V("div", nr, [
|
|
6760
|
+
n("div", or, [
|
|
6748
6761
|
I(i, { label: "Latest closing" })
|
|
6749
6762
|
]),
|
|
6750
6763
|
I(w, {
|
|
@@ -6752,13 +6765,13 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6752
6765
|
disabled: ""
|
|
6753
6766
|
}, {
|
|
6754
6767
|
default: M(() => [
|
|
6755
|
-
le(B(F(c).state.closingDocumentId ? `${F(
|
|
6768
|
+
le(B(F(c).state.closingDocumentId ? `${F(ct)(new Date(F(rt)(F(c).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
6756
6769
|
]),
|
|
6757
6770
|
_: 1
|
|
6758
6771
|
}),
|
|
6759
|
-
F(c).state.closingDocumentId ? (A(), V("div",
|
|
6772
|
+
F(c).state.closingDocumentId ? (A(), V("div", vr, o[6] || (o[6] = [
|
|
6760
6773
|
n("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, " Not able to import opening balance as closing document already exists. ", -1)
|
|
6761
|
-
]))) : (A(), V("div",
|
|
6774
|
+
]))) : (A(), V("div", sr, [
|
|
6762
6775
|
I(R, {
|
|
6763
6776
|
modelValue: b.value,
|
|
6764
6777
|
"onUpdate:modelValue": o[0] || (o[0] = (Y) => b.value = Y),
|
|
@@ -6778,10 +6791,10 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6778
6791
|
]),
|
|
6779
6792
|
_: 1
|
|
6780
6793
|
}, 8, ["modelValue"]),
|
|
6781
|
-
n("div",
|
|
6794
|
+
n("div", ar, [
|
|
6782
6795
|
I(i, { label: "Stock take file" })
|
|
6783
6796
|
]),
|
|
6784
|
-
I(
|
|
6797
|
+
I(dt, {
|
|
6785
6798
|
onFileUpload: o[1] || (o[1] = (Y) => {
|
|
6786
6799
|
Y && (p.value = Y);
|
|
6787
6800
|
}),
|
|
@@ -6790,10 +6803,10 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6790
6803
|
p.value ? {
|
|
6791
6804
|
name: "default",
|
|
6792
6805
|
fn: M(({ openFileDialog: Y }) => [
|
|
6793
|
-
n("div",
|
|
6794
|
-
n("div",
|
|
6795
|
-
n("div",
|
|
6796
|
-
n("div",
|
|
6806
|
+
n("div", lr, [
|
|
6807
|
+
n("div", ir, [
|
|
6808
|
+
n("div", rr, [
|
|
6809
|
+
n("div", ur, B(p.value.name), 1),
|
|
6797
6810
|
I($, {
|
|
6798
6811
|
label: F(a)("inventory.ingredient.import.replaceFile"),
|
|
6799
6812
|
variant: "secondary",
|
|
@@ -6814,7 +6827,7 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6814
6827
|
class: "my-5"
|
|
6815
6828
|
}, {
|
|
6816
6829
|
default: M(() => [
|
|
6817
|
-
(A(!0), V(
|
|
6830
|
+
(A(!0), V(J, null, se(u.value, (Y) => (A(), H(X, {
|
|
6818
6831
|
key: Y.value,
|
|
6819
6832
|
value: Y.value,
|
|
6820
6833
|
label: Y.label,
|
|
@@ -6822,9 +6835,9 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6822
6835
|
disabled: Y.disabled
|
|
6823
6836
|
}, {
|
|
6824
6837
|
label: M(() => [
|
|
6825
|
-
n("div",
|
|
6826
|
-
n("span",
|
|
6827
|
-
n("span",
|
|
6838
|
+
n("div", dr, [
|
|
6839
|
+
n("span", cr, B(Y.label), 1),
|
|
6840
|
+
n("span", mr, B(Y.disabled ? Y.disabledReason : Y.subLabel), 1)
|
|
6828
6841
|
])
|
|
6829
6842
|
]),
|
|
6830
6843
|
_: 2
|
|
@@ -6832,7 +6845,7 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6832
6845
|
]),
|
|
6833
6846
|
_: 1
|
|
6834
6847
|
}, 8, ["modelValue"]),
|
|
6835
|
-
n("div",
|
|
6848
|
+
n("div", pr, [
|
|
6836
6849
|
I($, {
|
|
6837
6850
|
class: "ml-auto mt-4",
|
|
6838
6851
|
variant: "secondary",
|
|
@@ -6843,7 +6856,7 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6843
6856
|
onClick: k
|
|
6844
6857
|
}, null, 8, ["disabled", "loading"])
|
|
6845
6858
|
]),
|
|
6846
|
-
p.value && h.value.length > 0 ? (A(), V(
|
|
6859
|
+
p.value && h.value.length > 0 ? (A(), V(J, { key: 0 }, [
|
|
6847
6860
|
o[4] || (o[4] = n("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
6848
6861
|
I(P, {
|
|
6849
6862
|
modelValue: y.value,
|
|
@@ -6854,14 +6867,14 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6854
6867
|
"search-value": m.value
|
|
6855
6868
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
6856
6869
|
], 64)) : j("", !0),
|
|
6857
|
-
v.value.length > 0 ? (A(), V(
|
|
6870
|
+
v.value.length > 0 ? (A(), V(J, { key: 1 }, [
|
|
6858
6871
|
o[5] || (o[5] = n("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
6859
6872
|
I(P, {
|
|
6860
6873
|
"row-data": v.value,
|
|
6861
6874
|
"column-defs": C
|
|
6862
6875
|
}, null, 8, ["row-data"])
|
|
6863
6876
|
], 64)) : j("", !0),
|
|
6864
|
-
n("div",
|
|
6877
|
+
n("div", fr, [
|
|
6865
6878
|
h.value.length > 0 && !F(c).state.closingDocumentId ? (A(), H($, {
|
|
6866
6879
|
key: 0,
|
|
6867
6880
|
class: "ml-auto mt-4",
|
|
@@ -6876,10 +6889,10 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6876
6889
|
]);
|
|
6877
6890
|
};
|
|
6878
6891
|
}
|
|
6879
|
-
}),
|
|
6892
|
+
}), yr = { class: "flex flex-col gap-8 w-full" }, br = { class: "flex gap-4 justify-between" }, xr = { class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 bg-fm-color-neutral-gray-100 text-fm-color-neutral-gray-400" }, Ar = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, hr = { key: 0 }, Ir = {
|
|
6880
6893
|
key: 1,
|
|
6881
6894
|
class: "flex flex-col gap-8 w-full"
|
|
6882
|
-
},
|
|
6895
|
+
}, Sr = { class: "flex gap-8 items-center justify-start" }, wr = /* @__PURE__ */ W({
|
|
6883
6896
|
__name: "SynergySideSheet",
|
|
6884
6897
|
props: {
|
|
6885
6898
|
show: { type: Boolean },
|
|
@@ -6888,13 +6901,13 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6888
6901
|
emits: ["update:show"],
|
|
6889
6902
|
setup(S, { emit: c }) {
|
|
6890
6903
|
var y;
|
|
6891
|
-
const e = be(), t =
|
|
6904
|
+
const e = be(), t = Ee(S, "show"), { t: u } = ie(), l = c, a = ye(), p = ((y = a._currentLocation) == null ? void 0 : y.type) || "";
|
|
6892
6905
|
return (m, v) => {
|
|
6893
6906
|
var E;
|
|
6894
6907
|
const h = L("FmIcon"), g = L("FmButton"), C = L("FmSideSheet");
|
|
6895
6908
|
return A(), H(C, {
|
|
6896
6909
|
modelValue: F(t),
|
|
6897
|
-
"onUpdate:modelValue": v[1] || (v[1] = (k) =>
|
|
6910
|
+
"onUpdate:modelValue": v[1] || (v[1] = (k) => Fe(t) ? t.value = k : null),
|
|
6898
6911
|
header: "Data migration (Synergy)",
|
|
6899
6912
|
"dismiss-away": "",
|
|
6900
6913
|
"close-button": "",
|
|
@@ -6903,13 +6916,13 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6903
6916
|
default: M(() => {
|
|
6904
6917
|
var k;
|
|
6905
6918
|
return [
|
|
6906
|
-
(k = F(e).sessionUser.value) != null && k.role.isAdmin ? (A(), V("div",
|
|
6907
|
-
I(
|
|
6908
|
-
])) : (A(), V("div",
|
|
6919
|
+
(k = F(e).sessionUser.value) != null && k.role.isAdmin ? (A(), V("div", Ir, [
|
|
6920
|
+
I(gr)
|
|
6921
|
+
])) : (A(), V("div", hr, " Please contact your administrator to apply the changes. "))
|
|
6909
6922
|
];
|
|
6910
6923
|
}),
|
|
6911
6924
|
"side-sheet-footer": M(() => [
|
|
6912
|
-
n("div",
|
|
6925
|
+
n("div", Sr, [
|
|
6913
6926
|
I(g, {
|
|
6914
6927
|
variant: "tertiary",
|
|
6915
6928
|
label: F(u)("common.close"),
|
|
@@ -6924,15 +6937,15 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6924
6937
|
fn: M(() => {
|
|
6925
6938
|
var k;
|
|
6926
6939
|
return [
|
|
6927
|
-
n("div",
|
|
6928
|
-
n("div",
|
|
6940
|
+
n("div", yr, [
|
|
6941
|
+
n("div", br, [
|
|
6929
6942
|
v[2] || (v[2] = n("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
6930
|
-
n("div",
|
|
6943
|
+
n("div", xr, [
|
|
6931
6944
|
I(h, {
|
|
6932
6945
|
name: F(p),
|
|
6933
6946
|
size: "sm"
|
|
6934
6947
|
}, null, 8, ["name"]),
|
|
6935
|
-
n("div",
|
|
6948
|
+
n("div", Ar, B((k = F(a)._currentLocation) == null ? void 0 : k.name), 1)
|
|
6936
6949
|
])
|
|
6937
6950
|
])
|
|
6938
6951
|
])
|
|
@@ -6943,18 +6956,18 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6943
6956
|
]), 1032, ["modelValue"]);
|
|
6944
6957
|
};
|
|
6945
6958
|
}
|
|
6946
|
-
}),
|
|
6959
|
+
}), Cr = /* @__PURE__ */ W({
|
|
6947
6960
|
__name: "SynergyView",
|
|
6948
6961
|
setup(S) {
|
|
6949
|
-
const c =
|
|
6962
|
+
const c = $t(), e = ye(), f = O(!1);
|
|
6950
6963
|
async function t() {
|
|
6951
6964
|
f.value = !0, console.log("Opening Synergy migration dialog");
|
|
6952
6965
|
}
|
|
6953
6966
|
return (u, l) => {
|
|
6954
6967
|
const a = L("FmCardSection"), p = L("FmCard");
|
|
6955
|
-
return F(c).enabledSynergyOpeningMigration && !F(e).businessLevel ? (A(), V(
|
|
6968
|
+
return F(c).enabledSynergyOpeningMigration && !F(e).businessLevel ? (A(), V(J, { key: 0 }, [
|
|
6956
6969
|
I(p, {
|
|
6957
|
-
class:
|
|
6970
|
+
class: ae({
|
|
6958
6971
|
"w-full": !0,
|
|
6959
6972
|
border: !0,
|
|
6960
6973
|
"border-fm-color-neutral-gray-100": !0,
|
|
@@ -6981,8 +6994,8 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6981
6994
|
]),
|
|
6982
6995
|
_: 1
|
|
6983
6996
|
}),
|
|
6984
|
-
(A(), H(
|
|
6985
|
-
I(
|
|
6997
|
+
(A(), H(Te, { to: "body" }, [
|
|
6998
|
+
I(wr, {
|
|
6986
6999
|
show: f.value,
|
|
6987
7000
|
"onUpdate:show": l[1] || (l[1] = (y) => f.value = y)
|
|
6988
7001
|
}, null, 8, ["show"])
|
|
@@ -6990,19 +7003,19 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
6990
7003
|
], 64)) : j("", !0);
|
|
6991
7004
|
};
|
|
6992
7005
|
}
|
|
6993
|
-
}),
|
|
7006
|
+
}), kr = { key: 0 }, _r = {
|
|
6994
7007
|
key: 1,
|
|
6995
7008
|
class: "flex flex-col items-center my-10 gap-5"
|
|
6996
|
-
},
|
|
7009
|
+
}, Fr = ["src"], Er = {
|
|
6997
7010
|
class: "text-xs text-neutral-400 text-center",
|
|
6998
7011
|
style: { "max-width": "25rem" }
|
|
6999
|
-
},
|
|
7012
|
+
}, Br = {
|
|
7000
7013
|
key: 2,
|
|
7001
7014
|
class: "grid grid-cols-2 gap-5"
|
|
7002
|
-
},
|
|
7015
|
+
}, tu = /* @__PURE__ */ W({
|
|
7003
7016
|
__name: "IntegrationView",
|
|
7004
7017
|
setup(S) {
|
|
7005
|
-
const c = ye(), e = O(!1), f =
|
|
7018
|
+
const c = ye(), e = O(!1), f = Bn(), { breakpoints: t } = ut(), u = z(() => t.value.xs || t.value.sm), { t: l } = ie();
|
|
7006
7019
|
async function a() {
|
|
7007
7020
|
e.value = !0;
|
|
7008
7021
|
try {
|
|
@@ -7013,16 +7026,16 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
7013
7026
|
}
|
|
7014
7027
|
return c.watchLocation(async (p) => {
|
|
7015
7028
|
p && await a();
|
|
7016
|
-
}, "integration-view"),
|
|
7029
|
+
}, "integration-view"), xn(() => c.unwatchLocation("integration-view")), Le(async () => {
|
|
7017
7030
|
c._currentLocation && await a();
|
|
7018
7031
|
}), (p, y) => {
|
|
7019
7032
|
const m = L("FmCircularProgress");
|
|
7020
|
-
return A(), H(
|
|
7033
|
+
return A(), H(Sn, {
|
|
7021
7034
|
title: F(l)("inventory.integration.title")
|
|
7022
7035
|
}, {
|
|
7023
7036
|
default: M(() => [
|
|
7024
7037
|
n("div", {
|
|
7025
|
-
class:
|
|
7038
|
+
class: ae([
|
|
7026
7039
|
"flex flex-col gap-8 max-h-full",
|
|
7027
7040
|
{
|
|
7028
7041
|
"p-0": u.value,
|
|
@@ -7030,27 +7043,27 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
7030
7043
|
}
|
|
7031
7044
|
])
|
|
7032
7045
|
}, [
|
|
7033
|
-
I(
|
|
7046
|
+
I(wn, {
|
|
7034
7047
|
"change-location": "",
|
|
7035
7048
|
showBusiness: ""
|
|
7036
7049
|
}),
|
|
7037
|
-
!F(c)._currentLocation || e.value ? (A(), V("div",
|
|
7050
|
+
!F(c)._currentLocation || e.value ? (A(), V("div", kr, [
|
|
7038
7051
|
I(m, { size: "lg" })
|
|
7039
|
-
])) : F(f).enabledIntegrations == 0 ? (A(), V("div",
|
|
7052
|
+
])) : F(f).enabledIntegrations == 0 ? (A(), V("div", _r, [
|
|
7040
7053
|
n("div", null, [
|
|
7041
7054
|
n("img", {
|
|
7042
|
-
src: F(
|
|
7055
|
+
src: F(Lt),
|
|
7043
7056
|
alt: "List is empty"
|
|
7044
|
-
}, null, 8,
|
|
7057
|
+
}, null, 8, Fr)
|
|
7045
7058
|
]),
|
|
7046
7059
|
y[0] || (y[0] = n("div", { class: "font-bold text-lg" }, "Integration", -1)),
|
|
7047
|
-
n("div",
|
|
7048
|
-
])) : (A(), V("div",
|
|
7049
|
-
I(
|
|
7050
|
-
I(
|
|
7051
|
-
I(
|
|
7052
|
-
I(
|
|
7053
|
-
I(
|
|
7060
|
+
n("div", Er, B(F(l)("inventory.integration.description")), 1)
|
|
7061
|
+
])) : (A(), V("div", Br, [
|
|
7062
|
+
I(Ya),
|
|
7063
|
+
I(rs),
|
|
7064
|
+
I(xi),
|
|
7065
|
+
I(Zi),
|
|
7066
|
+
I(Cr)
|
|
7054
7067
|
]))
|
|
7055
7068
|
], 2)
|
|
7056
7069
|
]),
|
|
@@ -7060,5 +7073,5 @@ const Ji = { class: "flex flex-col gap-4" }, Zi = { class: "flex flex-col" }, Wi
|
|
|
7060
7073
|
}
|
|
7061
7074
|
});
|
|
7062
7075
|
export {
|
|
7063
|
-
|
|
7076
|
+
tu as default
|
|
7064
7077
|
};
|