@feedmepos/mf-inventory-portal 1.7.2-dev.9 → 1.7.2
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-CB5B-Zqg.js → App-DohhNCXa.js} +4 -4
- package/dist/{ApprovalView-DjwvggBw.js → ApprovalView-To3lr_er.js} +8 -8
- package/dist/{BindingsDialog-YfD2_RXJ.js → BindingsDialog-DUMIiVoC.js} +2 -2
- package/dist/{BindingsPicker-CX9ltw8m.js → BindingsPicker-DQNUl07K.js} +2 -2
- package/dist/{BindingsTable-CL1UqP1z.js → BindingsTable-DR6tP4Vq.js} +3 -3
- package/dist/{BulkReceiveRequestView-mIEWyGGl.js → BulkReceiveRequestView-Dz1lQS-u.js} +19 -19
- package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-De1kEKhU.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-B8d6WuAD.js} +1 -1
- package/dist/{ClosingDraftView-CZ6QJoll.js → ClosingDraftView-0cVbpL_Y.js} +19 -19
- package/dist/{ClosingHistoryView-DhLeR64-.js → ClosingHistoryView-CgeySFOV.js} +5 -5
- package/dist/{ClosingTemplateView-BH-F82gI.js → ClosingTemplateView-0DND6wXY.js} +16 -16
- package/dist/{DefaultView-BBIJEA3P.js → DefaultView-CJJPVYaP.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-DhUMqZ3g.js → DeliveryOrderPrintPreview-BYGrbUM7.js} +2 -2
- package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-B6LvPyyR.js → EmailDialog.vue_vue_type_script_setup_true_lang-y-pJP1Jp.js} +1636 -1636
- package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-vSNDlFNy.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DuCO2ruW.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BuF_AviA.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-MttAbvza.js} +2 -2
- package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-DE3kzeYh.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-yAqRbXI7.js} +2 -2
- package/dist/{FmMultiselectDialog-DLtLmVL3.js → FmMultiselectDialog-DFa8dpii.js} +2 -2
- package/dist/{FmMultiselectDialog-CJs80XOa.js → FmMultiselectDialog-DYzEHEev.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-CDxaELo0.js → FmUnitInput.vue_vue_type_script_setup_true_lang-5xj-8OQS.js} +5 -5
- package/dist/{ImportView-CsHj-pR6.js → ImportView-gcy9rku3.js} +6 -6
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-BUF81rHq.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-sx6-tRnK.js} +1 -1
- package/dist/{IngredientGroupView-DkckpQLc.js → IngredientGroupView-BAC3mW8X.js} +5 -5
- package/dist/{IngredientsView-D_Nicjsh.js → IngredientsView-DUwPOngs.js} +15 -15
- package/dist/{IntegrationExplorerView-DEuWQk1D.js → IntegrationExplorerView-A-el5q_l.js} +4 -4
- package/dist/{IntegrationView-Cx4bxIwf.js → IntegrationView-CZNWvTcS.js} +758 -723
- package/dist/{InventoryBindingForm-qnb6z-u0.js → InventoryBindingForm-D2QosIsu.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-Liy7aqJZ.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-BITnywUj.js} +5 -5
- package/dist/{InventoryBindingSummary-BZOmtpm6.js → InventoryBindingSummary-D6HNweqs.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DEWLrCAw.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-B6h1Gd2a.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-By-JIDeu.js → PremiumBadge.vue_vue_type_script_setup_true_lang-DcypxqiE.js} +1 -1
- package/dist/{ProductionView-C8-59pFt.js → ProductionView-lhMrHKJn.js} +7 -7
- package/dist/{PublishView-DQsv0-MK.js → PublishView-CQsNNeNS.js} +3 -3
- package/dist/{PurchaseOrderPrintPreview-CkhwGcLv.js → PurchaseOrderPrintPreview-Cos7s-NS.js} +2 -2
- package/dist/{ReceiveRequestView-C1L3TRxG.js → ReceiveRequestView-kkBYw4JQ.js} +13 -13
- package/dist/{RecipeView-BqIkAROe.js → RecipeView-CjaZPxYm.js} +17 -17
- package/dist/{SettingsView-C7OvBsk7.js → SettingsView-BmQpMvRD.js} +4 -4
- package/dist/{StockView-DmooHpUA.js → StockView-3LQX-iUo.js} +21 -21
- package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-BnPsg73q.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-BWc-rqnP.js} +1 -1
- package/dist/{SupplierView-BX4NUlpe.js → SupplierView-JIgEU67D.js} +12 -12
- package/dist/{SurchargeView-BMEw-9NE.js → SurchargeView-CLxruSjz.js} +6 -6
- package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-DW9b94yQ.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-IXZTVQ42.js} +2 -2
- package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-BAtReLzV.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-DGnnOvqu.js} +1 -1
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-_iQ7N8EL.js → TransferDetails.vue_vue_type_script_setup_true_lang-UStf5-hI.js} +20 -20
- package/dist/{TransferTemplateView-DbDJkDG6.js → TransferTemplateView-BopBFYQK.js} +20 -20
- package/dist/{UnitCostHistoryView-Dxh4Airx.js → UnitCostHistoryView-Dn_riEm2.js} +4 -4
- package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-BjrQMp_z.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-BY6MtjNI.js} +4 -4
- package/dist/{UnitView-PDGsmslg.js → UnitView-C14LJdh1.js} +7 -7
- package/dist/{WarehouseView-CxJwBhP2.js → WarehouseView-DSofhuRJ.js} +5 -5
- package/dist/{WastageTemplateView-CvWN_CSM.js → WastageTemplateView-CVNs59Q3.js} +14 -14
- package/dist/{app-Jn5lGJlj.js → app-D3Pk5TsF.js} +1251 -1246
- package/dist/app.js +1 -1
- package/dist/{closing-template-H9tZbi5r.js → closing-template-ChgHEg6X.js} +1 -1
- package/dist/{date2-D1euElV4.js → date2-S8CzVzLb.js} +1 -1
- package/dist/{dayjs.min-C14dwZ5_.js → dayjs.min-BTkKTXC_.js} +1 -1
- package/dist/{decimal-BhzHnadq.js → decimal-DbIrw0-W.js} +2 -2
- package/dist/{defineDeepModel-BRniNmUQ.js → defineDeepModel-VV8-dLQB.js} +1 -1
- package/dist/{duplicate-template-DNwRcoB-.js → duplicate-template-CU7i2OYd.js} +1 -1
- package/dist/{feature-C9bdMyve.js → feature-PxsJCXfx.js} +2 -2
- package/dist/{format-time-from-id-DjO6nUaI.js → format-time-from-id-DzyQO052.js} +1 -1
- package/dist/{format-unit-display-67dNsqKT.js → format-unit-display-Ce_ihiZh.js} +12 -12
- package/dist/{import-export.helper-C5QtbnUR.js → import-export.helper-BMjR_wjj.js} +6 -6
- package/dist/{index-Bn_DQIVp.js → index-CVnjxAU0.js} +3 -3
- package/dist/{index-Bq73qJFm.js → index-DVld56cO.js} +1 -1
- package/dist/{index-DMhBwQd-.js → index-ntOX0GTR.js} +1 -1
- package/dist/{inventory-core-dart.default-Gz3ee802.js → inventory-core-dart.default-Crk5o9NC.js} +1 -1
- package/dist/{jszip.min-BzjLymtX.js → jszip.min-n1XNOZh7.js} +332 -332
- package/dist/{lz-string-CjhnNLYc.js → lz-string-BOPYfMhM.js} +1 -1
- package/dist/{netsuite-DW3IhO3I.js → netsuite-XygzV566.js} +2 -2
- package/dist/{number-BrwP6iqk.js → number-C2ht-mjX.js} +3 -3
- package/dist/{predefined-templates-Bk-nk_IK.js → predefined-templates-BwKtONp8.js} +1 -1
- package/dist/{purchase-order-template-BPvikJSt.js → purchase-order-template-B43-m0J3.js} +1 -1
- package/dist/{recalculationUtils-HzuYq5sD.js → recalculationUtils-DIVwhfP2.js} +1 -1
- package/dist/{rules-BNMXXxMw.js → rules-D_NC8Wh3.js} +2 -2
- package/dist/{stock-DT7nS5Wm.js → stock-CnspYkq6.js} +3 -3
- package/dist/{stock-DuTUPZKR.js → stock-yL5X9man.js} +1 -1
- package/dist/stores/location.d.ts +1 -0
- package/dist/{supplier-BbuEKATu.js → supplier-W7lS_7Ga.js} +2 -2
- package/dist/{surcharge-CxpxSfQv.js → surcharge-BNENHWoz.js} +1 -1
- package/dist/{uom-rules-D53-NJ5c.js → uom-rules-C4weCQ1J.js} +1 -1
- package/dist/{use-ingredient-select-dialog-BisdDtfW.js → use-ingredient-select-dialog-CoMShpCA.js} +2 -2
- package/dist/{use-inventory-binding-dialog-C8I7yg1u.js → use-inventory-binding-dialog-DAiB6uuX.js} +2 -2
- package/dist/{use-template-enabled-locations-BsUl8reh.js → use-template-enabled-locations-DAnSVWry.js} +2 -2
- package/dist/{use-transfer-locations-UzmJ88HG.js → use-transfer-locations-Bunxkf8T.js} +2 -2
- package/dist/{useHrmPermission-CH_0q0_n.js → useHrmPermission-8T4AE1Is.js} +1 -1
- package/dist/{useNavigationMenu-W_kB1aPz.js → useNavigationMenu-BpMry1lp.js} +2 -2
- package/dist/{useSseClient-DISfAXd2.js → useSseClient-eneZ6wE5.js} +1 -1
- package/dist/{vue-i18n-C6b55Yi1.js → vue-i18n-L-ghmVMg.js} +498 -498
- package/dist/{xlsx.util-DFJo76nw.js → xlsx.util-DjAJxws5.js} +2 -2
- package/package.json +2 -2
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { defineComponent as G, mergeModels as jt, useModel as gt, onMounted as _e, ref as M, computed as z, resolveComponent as V, createElementBlock as E, openBlock as S, createElementVNode as s, createBlock as H, toDisplayString as D, unref as _, createVNode as I, withCtx as O, Fragment as Z, renderList as se, normalizeClass as ne, normalizeStyle as Pt, createSlots as he, createCommentVNode as K, withModifiers as Kt, reactive as Ye, watch as Ce, isRef as Se, h as B, Teleport as Fe, createTextVNode as re, watchEffect as Ht, withDirectives as qt, vShow as Xt } from "vue";
|
|
1
|
+
import { defineComponent as G, mergeModels as jt, useModel as gt, onMounted as _e, ref as M, computed as z, resolveComponent as V, createElementBlock as E, openBlock as S, createElementVNode as s, createBlock as H, toDisplayString as D, unref as _, createVNode as I, withCtx as O, Fragment as Z, renderList as se, normalizeClass as ne, normalizeStyle as Pt, createSlots as he, createCommentVNode as K, withModifiers as Kt, reactive as Ye, watch as Ce, isRef as Se, h as B, Teleport as Fe, createTextVNode as re, watchEffect as Ht, withDirectives as qt, vShow as Xt, onUnmounted as $t } from "vue";
|
|
2
2
|
import { _ as yt } from "./empty-placeholder-B0QU467o.js";
|
|
3
|
-
import { y as
|
|
3
|
+
import { y as Yt, z as Qt, c as de, u as pe, A as Gt, a as Ne, N as je, B as Qe, C as ce, D as N, w as ge, E as bt, G as At, s as Me } from "./app-D3Pk5TsF.js";
|
|
4
4
|
import { useDialogChild as ht, useDialog as Be, useProxiedModel as we, useSnackbar as ae, useBreakpoints as Ge, components as te } from "@feedmepos/ui-library";
|
|
5
|
-
import { _ as
|
|
5
|
+
import { _ as Jt } from "./SingleColumnLayout.vue_vue_type_script_setup_true_lang-DwrLsWX_.js";
|
|
6
6
|
import { useI18n as oe, useCoreStore as fe } from "@feedmepos/mf-common";
|
|
7
|
-
import { _ as
|
|
8
|
-
import { u as
|
|
9
|
-
import { b as
|
|
7
|
+
import { _ as Zt } from "./FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-yAqRbXI7.js";
|
|
8
|
+
import { u as Wt, a as en, b as tn, c as nn, d as on, e as sn } from "./index-CVnjxAU0.js";
|
|
9
|
+
import { b as an, d as ln, s as rn, r as un, c as xt, u as It } from "./xlsx.util-DjAJxws5.js";
|
|
10
10
|
import { F as Je } from "./FmDroppableField-J0tG_U3w.js";
|
|
11
|
-
import { f as Ze, a as We } from "./date2-
|
|
12
|
-
import { u as ve, a as De } from "./netsuite-
|
|
13
|
-
import { b as
|
|
14
|
-
import { R as
|
|
11
|
+
import { f as Ze, a as We } from "./date2-S8CzVzLb.js";
|
|
12
|
+
import { u as ve, a as De } from "./netsuite-XygzV566.js";
|
|
13
|
+
import { b as dn, a as cn } from "./FmMultiselectDialog-DFa8dpii.js";
|
|
14
|
+
import { R as mn } from "./rules-D_NC8Wh3.js";
|
|
15
15
|
import { P as St, J as wt, D as Ct } from "./app-C39bYJmq.js";
|
|
16
|
-
import { u as
|
|
17
|
-
import { u as Oe } from "./vue-i18n-
|
|
18
|
-
import { _ as
|
|
19
|
-
import { a as
|
|
16
|
+
import { u as pn } from "./supplier-W7lS_7Ga.js";
|
|
17
|
+
import { u as Oe } from "./vue-i18n-L-ghmVMg.js";
|
|
18
|
+
import { _ as fn, a as vn } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-5xj-8OQS.js";
|
|
19
|
+
import { a as gn } from "./number-C2ht-mjX.js";
|
|
20
20
|
import { F as et } from "./FmAdminBadge-DlplQOHb.js";
|
|
21
|
-
import { i as dt, _ as
|
|
21
|
+
import { i as dt, _ as yn } from "./FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DuCO2ruW.js";
|
|
22
22
|
import { _ as Pe } from "./JsonViewer.vue_vue_type_script_setup_true_lang-ig2zSXAB.js";
|
|
23
|
-
import { u as kt } from "./feature-
|
|
24
|
-
const
|
|
23
|
+
import { u as kt } from "./feature-PxsJCXfx.js";
|
|
24
|
+
const bn = "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";
|
|
25
25
|
var _t = { exports: {} };
|
|
26
|
-
(function(k,
|
|
26
|
+
(function(k, y) {
|
|
27
27
|
(function() {
|
|
28
28
|
var e = {};
|
|
29
29
|
k.exports = e, e.simpleFilter = function(v, t) {
|
|
@@ -34,10 +34,10 @@ var _t = { exports: {} };
|
|
|
34
34
|
return e.match(v, t) !== null;
|
|
35
35
|
}, e.match = function(v, t, d) {
|
|
36
36
|
d = d || {};
|
|
37
|
-
var u = 0, l = [], h = t.length, A = 0, c = 0, m = d.pre || "",
|
|
37
|
+
var u = 0, l = [], h = t.length, A = 0, c = 0, m = d.pre || "", b = d.post || "", p = d.caseSensitive && t || t.toLowerCase(), C;
|
|
38
38
|
v = d.caseSensitive && v || v.toLowerCase();
|
|
39
39
|
for (var F = 0; F < h; F++)
|
|
40
|
-
C = t[F], p[F] === v[u] ? (C = m + C +
|
|
40
|
+
C = t[F], p[F] === v[u] ? (C = m + C + b, u += 1, c += 1 + c) : c = 0, A += c, l[l.length] = C;
|
|
41
41
|
return u === v.length ? (A = p === v ? 1 / 0 : A, { rendered: l.join(""), score: A }) : null;
|
|
42
42
|
}, e.filter = function(v, t, d) {
|
|
43
43
|
return !t || t.length === 0 ? [] : typeof v != "string" ? t : (d = d || {}, t.reduce(function(u, l, h, A) {
|
|
@@ -57,31 +57,31 @@ var _t = { exports: {} };
|
|
|
57
57
|
};
|
|
58
58
|
})();
|
|
59
59
|
})(_t);
|
|
60
|
-
var
|
|
61
|
-
const Ft = /* @__PURE__ */
|
|
62
|
-
function ct(k,
|
|
63
|
-
return Ft.filter(k,
|
|
60
|
+
var An = _t.exports;
|
|
61
|
+
const Ft = /* @__PURE__ */ Yt(An);
|
|
62
|
+
function ct(k, y) {
|
|
63
|
+
return Ft.filter(k, y).length > 0;
|
|
64
64
|
}
|
|
65
|
-
function
|
|
65
|
+
function hn(k, y) {
|
|
66
66
|
if (!k)
|
|
67
67
|
return {
|
|
68
|
-
label:
|
|
68
|
+
label: y,
|
|
69
69
|
segments: [
|
|
70
70
|
{
|
|
71
71
|
isMatch: !1,
|
|
72
|
-
segment:
|
|
72
|
+
segment: y
|
|
73
73
|
}
|
|
74
74
|
],
|
|
75
75
|
matched: !1
|
|
76
76
|
};
|
|
77
|
-
const [e] = Ft.filter(k.toLocaleLowerCase(), [
|
|
77
|
+
const [e] = Ft.filter(k.toLocaleLowerCase(), [y], {
|
|
78
78
|
pre: "|",
|
|
79
79
|
post: "|"
|
|
80
80
|
});
|
|
81
81
|
if (!e)
|
|
82
82
|
return {
|
|
83
|
-
label:
|
|
84
|
-
segments: [{ segment:
|
|
83
|
+
label: y,
|
|
84
|
+
segments: [{ segment: y, isMatch: !1 }],
|
|
85
85
|
matched: !1
|
|
86
86
|
};
|
|
87
87
|
const v = e.string.toString().replace(/\|\|/g, "").split("|").reduce((t, d, u) => (t.push({
|
|
@@ -90,7 +90,7 @@ function An(k, b) {
|
|
|
90
90
|
//e.g. index 1, 3, 5, ...
|
|
91
91
|
}), t), new Array());
|
|
92
92
|
return {
|
|
93
|
-
label:
|
|
93
|
+
label: y,
|
|
94
94
|
segments: v,
|
|
95
95
|
matched: !0
|
|
96
96
|
};
|
|
@@ -98,13 +98,13 @@ function An(k, b) {
|
|
|
98
98
|
function ue(k) {
|
|
99
99
|
return Object.prototype.hasOwnProperty.call(k, "children");
|
|
100
100
|
}
|
|
101
|
-
const
|
|
101
|
+
const xn = { class: "flex flex-col gap-12 h-[350px]" }, In = { class: "flex items-center" }, Sn = {
|
|
102
102
|
class: "flex-1",
|
|
103
103
|
"data-cy": "items-selected"
|
|
104
|
-
},
|
|
104
|
+
}, wn = {
|
|
105
105
|
class: "flex-1",
|
|
106
106
|
"data-cy": "filter-field"
|
|
107
|
-
},
|
|
107
|
+
}, Cn = ["data-cy"], kn = { class: "flex flex-col" }, _n = { class: "fm-typo-en-body-md-400" }, Fn = {
|
|
108
108
|
key: 1,
|
|
109
109
|
class: "w-full py-16 text-fm-color-typo-disabled fm-typo-en-body-md-400 text-center"
|
|
110
110
|
}, tt = /* @__PURE__ */ G({
|
|
@@ -117,9 +117,9 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
117
117
|
}),
|
|
118
118
|
emits: ["update:modelValue"],
|
|
119
119
|
setup(k) {
|
|
120
|
-
const
|
|
120
|
+
const y = gt(k, "modelValue"), e = ht();
|
|
121
121
|
_e(() => {
|
|
122
|
-
e.emitData(
|
|
122
|
+
e.emitData(y.value);
|
|
123
123
|
});
|
|
124
124
|
const v = M(""), { t } = oe();
|
|
125
125
|
function d(n) {
|
|
@@ -169,8 +169,8 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
169
169
|
}
|
|
170
170
|
];
|
|
171
171
|
}
|
|
172
|
-
const A = z(() =>
|
|
173
|
-
(n, r) => h(n, [r]).filter((x) => l(x.keys,
|
|
172
|
+
const A = z(() => y.value.flatMap(
|
|
173
|
+
(n, r) => h(n, [r]).filter((x) => l(x.keys, y.value))
|
|
174
174
|
));
|
|
175
175
|
function c(n) {
|
|
176
176
|
if (ue(n)) {
|
|
@@ -189,7 +189,7 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
189
189
|
const P = r[x];
|
|
190
190
|
return T.length === 0 ? c(P ?? []) : ue(P) ? m(T, P.children ?? []) : !1;
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function b(n) {
|
|
193
193
|
if (ue(n)) {
|
|
194
194
|
if (u(n)) {
|
|
195
195
|
const r = d(n) ? n.children : n.children.filter(u);
|
|
@@ -204,7 +204,7 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
204
204
|
if (typeof x != "number")
|
|
205
205
|
return !1;
|
|
206
206
|
const P = r[x];
|
|
207
|
-
return T.length === 0 ?
|
|
207
|
+
return T.length === 0 ? b(P ?? []) : ue(P) ? p(T, (P == null ? void 0 : P.children) ?? []) : !1;
|
|
208
208
|
}
|
|
209
209
|
function C(n, r) {
|
|
210
210
|
if (n.disabled)
|
|
@@ -214,7 +214,7 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
214
214
|
const x = d(n) ? n.children : n.children.filter(u);
|
|
215
215
|
return {
|
|
216
216
|
...n,
|
|
217
|
-
children: n.children.map((T) => x.find((X) =>
|
|
217
|
+
children: n.children.map((T) => x.find((X) => Qt(X.value, T.value)) ? C(T, r) : T)
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
220
|
return {
|
|
@@ -250,17 +250,17 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
250
250
|
return w.value.find((x) => r.startsWith(x) && r !== x);
|
|
251
251
|
}
|
|
252
252
|
const g = z(
|
|
253
|
-
() => A.value.filter((n) => l(n.keys,
|
|
253
|
+
() => A.value.filter((n) => l(n.keys, y.value) && n.active).length
|
|
254
254
|
);
|
|
255
255
|
function i(n, r, x) {
|
|
256
|
-
|
|
256
|
+
y.value = F(n, r, x), e.emitData(y.value);
|
|
257
257
|
}
|
|
258
258
|
return (n, r) => {
|
|
259
259
|
const x = V("FmSearch"), T = V("FmCheckbox"), P = V("FmButton"), X = V("FmListItem"), R = V("FmList");
|
|
260
|
-
return S(), E("div",
|
|
261
|
-
s("div",
|
|
262
|
-
s("div",
|
|
263
|
-
s("div",
|
|
260
|
+
return S(), E("div", xn, [
|
|
261
|
+
s("div", In, [
|
|
262
|
+
s("div", Sn, D(_(t)("inventory.formField.itemsSelected", { count: g.value })), 1),
|
|
263
|
+
s("div", wn, [
|
|
264
264
|
I(x, {
|
|
265
265
|
modelValue: v.value,
|
|
266
266
|
"onUpdate:modelValue": r[0] || (r[0] = (j) => v.value = j),
|
|
@@ -283,7 +283,7 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
283
283
|
}, [
|
|
284
284
|
I(X, {
|
|
285
285
|
clickable: j.selectable !== !1,
|
|
286
|
-
onClick: () => j.selectable === !1 || j.disabled || i(j.keys,
|
|
286
|
+
onClick: () => j.selectable === !1 || j.disabled || i(j.keys, y.value, !m(j.keys, y.value)),
|
|
287
287
|
style: Pt({
|
|
288
288
|
paddingLeft: `${16 + j.indent * 16}px`,
|
|
289
289
|
paddingTop: "4px",
|
|
@@ -292,9 +292,9 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
292
292
|
disabled: j.selectable !== !1 && j.disabled
|
|
293
293
|
}, he({
|
|
294
294
|
default: O(() => [
|
|
295
|
-
s("div",
|
|
296
|
-
s("div",
|
|
297
|
-
(S(!0), E(Z, null, se(_(
|
|
295
|
+
s("div", kn, [
|
|
296
|
+
s("div", _n, [
|
|
297
|
+
(S(!0), E(Z, null, se(_(hn)(v.value, j.label).segments, (q, xe) => (S(), E("span", {
|
|
298
298
|
key: xe,
|
|
299
299
|
class: ne({
|
|
300
300
|
"font-bold": q.isMatch
|
|
@@ -317,9 +317,9 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
317
317
|
fn: O(() => [
|
|
318
318
|
I(T, {
|
|
319
319
|
disabled: j.disabled,
|
|
320
|
-
"model-value": m(j.keys,
|
|
320
|
+
"model-value": m(j.keys, y.value),
|
|
321
321
|
value: j.keys,
|
|
322
|
-
indeterminate: p(j.keys,
|
|
322
|
+
indeterminate: p(j.keys, y.value)
|
|
323
323
|
}, null, 8, ["disabled", "model-value", "value", "indeterminate"])
|
|
324
324
|
]),
|
|
325
325
|
key: "0"
|
|
@@ -337,20 +337,20 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
337
337
|
key: "1"
|
|
338
338
|
} : void 0
|
|
339
339
|
]), 1032, ["clickable", "onClick", "style", "disabled"])
|
|
340
|
-
], 10,
|
|
340
|
+
], 10, Cn))), 128))
|
|
341
341
|
]),
|
|
342
342
|
_: 1
|
|
343
|
-
})) : (S(), E("div",
|
|
343
|
+
})) : (S(), E("div", Fn, D(_(t)("inventory.formField.noItemsFound")), 1))
|
|
344
344
|
]);
|
|
345
345
|
};
|
|
346
346
|
}
|
|
347
|
-
}),
|
|
347
|
+
}), Bn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5" }, Vn = { class: "flex items-center" }, En = { class: "text-lg font-bold flex-grow" }, Nn = {
|
|
348
348
|
key: 0,
|
|
349
349
|
class: "table-auto w-full"
|
|
350
|
-
},
|
|
350
|
+
}, Dn = { class: "text-left" }, Ln = { class: "min-w-64" }, Tn = { class: "flex flex-col" }, Rn = { class: "fm-typo-en-body-md-400" }, Mn = {
|
|
351
351
|
key: 0,
|
|
352
352
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
353
|
-
},
|
|
353
|
+
}, On = { class: "w-1" }, Un = /* @__PURE__ */ G({
|
|
354
354
|
__name: "ApplyAddon",
|
|
355
355
|
props: {
|
|
356
356
|
groups: {
|
|
@@ -370,34 +370,34 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
370
370
|
}
|
|
371
371
|
},
|
|
372
372
|
emits: ["update:modifiers"],
|
|
373
|
-
setup(k, { emit:
|
|
374
|
-
const e = k, v =
|
|
375
|
-
const m = e.groups.flatMap((
|
|
373
|
+
setup(k, { emit: y }) {
|
|
374
|
+
const e = k, v = y, t = Be(), d = z(() => {
|
|
375
|
+
const m = e.groups.flatMap((b) => b.items.map((p) => {
|
|
376
376
|
const C = e.items.find((F) => F._id === p._id);
|
|
377
377
|
return {
|
|
378
378
|
...p,
|
|
379
|
-
groupName:
|
|
379
|
+
groupName: b.name,
|
|
380
380
|
name: p.name ?? (C == null ? void 0 : C.name) ?? "-"
|
|
381
381
|
};
|
|
382
382
|
}));
|
|
383
|
-
return e.modifiers.map((
|
|
384
|
-
const p = m.find((w) => w.selection ===
|
|
383
|
+
return e.modifiers.map((b) => {
|
|
384
|
+
const p = m.find((w) => w.selection === b.selection), C = (p == null ? void 0 : p.name) ?? "-", F = (p == null ? void 0 : p.groupName) ?? "";
|
|
385
385
|
return {
|
|
386
|
-
...
|
|
386
|
+
...b,
|
|
387
387
|
name: C,
|
|
388
388
|
groupName: F
|
|
389
389
|
};
|
|
390
390
|
});
|
|
391
|
-
}), u = z(() => e.groups.flatMap((m) => m.items.map((
|
|
391
|
+
}), u = z(() => e.groups.flatMap((m) => m.items.map((b) => ({ ...b, groupId: m._id }))));
|
|
392
392
|
function l({ selection: m }) {
|
|
393
393
|
v(
|
|
394
394
|
"update:modifiers",
|
|
395
|
-
e.modifiers.filter((
|
|
395
|
+
e.modifiers.filter((b) => b.selection !== m)
|
|
396
396
|
);
|
|
397
397
|
}
|
|
398
|
-
function h({ selection: m },
|
|
398
|
+
function h({ selection: m }, b) {
|
|
399
399
|
const p = e.modifiers.find((C) => C.selection === m);
|
|
400
|
-
p && (p.code =
|
|
400
|
+
p && (p.code = b);
|
|
401
401
|
}
|
|
402
402
|
function A() {
|
|
403
403
|
let m = [];
|
|
@@ -425,13 +425,13 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
425
425
|
}, [])
|
|
426
426
|
});
|
|
427
427
|
});
|
|
428
|
-
const
|
|
428
|
+
const b = {
|
|
429
429
|
modelValue: m
|
|
430
430
|
};
|
|
431
431
|
t.open({
|
|
432
432
|
title: "Select Addons",
|
|
433
433
|
contentComponent: tt,
|
|
434
|
-
contentComponentProps:
|
|
434
|
+
contentComponentProps: b,
|
|
435
435
|
primaryActions: {
|
|
436
436
|
text: "Confirm",
|
|
437
437
|
close: !0
|
|
@@ -459,34 +459,34 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
459
459
|
});
|
|
460
460
|
}
|
|
461
461
|
const { t: c } = oe();
|
|
462
|
-
return (m,
|
|
462
|
+
return (m, b) => {
|
|
463
463
|
const p = V("FmButton"), C = V("FmTextField");
|
|
464
|
-
return S(), E("div",
|
|
465
|
-
s("div",
|
|
466
|
-
s("div",
|
|
464
|
+
return S(), E("div", Bn, [
|
|
465
|
+
s("div", Vn, [
|
|
466
|
+
s("div", En, D(_(c)("inventory.integration.apply.addons")), 1),
|
|
467
467
|
I(p, {
|
|
468
468
|
type: "button",
|
|
469
469
|
variant: "plain",
|
|
470
470
|
size: "md",
|
|
471
471
|
icon: "link",
|
|
472
472
|
label: _(c)("inventory.integration.apply.applyAddon"),
|
|
473
|
-
onClick:
|
|
473
|
+
onClick: b[0] || (b[0] = (F) => A())
|
|
474
474
|
}, null, 8, ["label"])
|
|
475
475
|
]),
|
|
476
476
|
s("div", null, [
|
|
477
|
-
d.value.length > 0 ? (S(), E("table",
|
|
478
|
-
s("tr",
|
|
479
|
-
s("th",
|
|
477
|
+
d.value.length > 0 ? (S(), E("table", Nn, [
|
|
478
|
+
s("tr", Dn, [
|
|
479
|
+
s("th", Ln, D(_(c)("inventory.integration.apply.name")), 1),
|
|
480
480
|
s("th", null, D(_(c)("inventory.integration.apply.code")), 1),
|
|
481
|
-
|
|
481
|
+
b[1] || (b[1] = s("th", { class: "w-1" }, " ", -1))
|
|
482
482
|
]),
|
|
483
483
|
(S(!0), E(Z, null, se(d.value, (F, w) => (S(), E(Z, { key: w }, [
|
|
484
|
-
|
|
484
|
+
b[2] || (b[2] = s("tr", { class: "block h-8" }, null, -1)),
|
|
485
485
|
s("tr", null, [
|
|
486
486
|
s("td", null, [
|
|
487
|
-
s("div",
|
|
488
|
-
s("div",
|
|
489
|
-
F.groupName ? (S(), E("div",
|
|
487
|
+
s("div", Tn, [
|
|
488
|
+
s("div", Rn, D(F.name), 1),
|
|
489
|
+
F.groupName ? (S(), E("div", Mn, D(F.groupName), 1)) : K("", !0)
|
|
490
490
|
])
|
|
491
491
|
]),
|
|
492
492
|
s("td", null, [
|
|
@@ -501,7 +501,7 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
501
501
|
]
|
|
502
502
|
}, null, 8, ["disabled", "model-value", "onUpdate:modelValue", "rules"])
|
|
503
503
|
]),
|
|
504
|
-
s("td",
|
|
504
|
+
s("td", On, [
|
|
505
505
|
I(p, {
|
|
506
506
|
disabled: k.loading,
|
|
507
507
|
type: "button",
|
|
@@ -520,19 +520,19 @@ const hn = { class: "flex flex-col gap-12 h-[350px]" }, xn = { class: "flex item
|
|
|
520
520
|
};
|
|
521
521
|
}
|
|
522
522
|
});
|
|
523
|
-
function nt(k,
|
|
524
|
-
const e =
|
|
525
|
-
return
|
|
523
|
+
function nt(k, y = []) {
|
|
524
|
+
const e = y.map((t) => k.find((d) => d._id === t)).filter((t) => !!t);
|
|
525
|
+
return zn(e).reduce((t, d) => (t[d.combinationKey] = d.selectionName.join(", "), t), {});
|
|
526
526
|
}
|
|
527
|
-
function Bt(k,
|
|
527
|
+
function Bt(k, y, e) {
|
|
528
528
|
const v = e.reduce((d, u) => {
|
|
529
|
-
var c, m,
|
|
530
|
-
const l = u.category || "", h = nt(
|
|
529
|
+
var c, m, b;
|
|
530
|
+
const l = u.category || "", h = nt(y, (c = u.variant) == null ? void 0 : c.variantGroupIds), A = {
|
|
531
531
|
...u,
|
|
532
532
|
codeName: [u.code, u.name].filter((p) => !!p).join(" "),
|
|
533
533
|
variant: {
|
|
534
534
|
variantGroupIds: ((m = u.variant) == null ? void 0 : m.variantGroupIds) || [],
|
|
535
|
-
variantCombinations: (((
|
|
535
|
+
variantCombinations: (((b = u.variant) == null ? void 0 : b.variantCombinations) || []).map((p) => {
|
|
536
536
|
const C = p.code, F = p.name || h[p.combinationKey || ""];
|
|
537
537
|
return {
|
|
538
538
|
...p,
|
|
@@ -553,15 +553,15 @@ function Bt(k, b, e) {
|
|
|
553
553
|
items: v[d._id || ""] || []
|
|
554
554
|
}));
|
|
555
555
|
}
|
|
556
|
-
function Vt(k,
|
|
556
|
+
function Vt(k, y) {
|
|
557
557
|
if (k.length == 1)
|
|
558
558
|
return k[0];
|
|
559
|
-
const e = k[0], v = k.slice(1, k.length), t = Vt(v,
|
|
560
|
-
return e.reduce((u, l) => [...u, ...t.map((h) =>
|
|
559
|
+
const e = k[0], v = k.slice(1, k.length), t = Vt(v, y);
|
|
560
|
+
return e.reduce((u, l) => [...u, ...t.map((h) => y(l, h))], new Array());
|
|
561
561
|
}
|
|
562
|
-
function
|
|
562
|
+
function zn(k) {
|
|
563
563
|
if (k.length === 0) return [];
|
|
564
|
-
const
|
|
564
|
+
const y = k.map(
|
|
565
565
|
(v) => (v.options ?? []).map(
|
|
566
566
|
(t) => ({
|
|
567
567
|
combinationKey: [`${v._id}/${t._id}`],
|
|
@@ -569,7 +569,7 @@ function Un(k) {
|
|
|
569
569
|
})
|
|
570
570
|
)
|
|
571
571
|
);
|
|
572
|
-
return Vt(
|
|
572
|
+
return Vt(y, (v, t) => ({
|
|
573
573
|
combinationKey: [...v.combinationKey, ...t.combinationKey],
|
|
574
574
|
selectionName: [...v.selectionName, ...t.selectionName]
|
|
575
575
|
})).map((v) => {
|
|
@@ -581,13 +581,13 @@ function Un(k) {
|
|
|
581
581
|
};
|
|
582
582
|
});
|
|
583
583
|
}
|
|
584
|
-
const
|
|
584
|
+
const jn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5 mb-3" }, Pn = { class: "flex items-center" }, Kn = { class: "text-lg font-bold flex-grow" }, Hn = {
|
|
585
585
|
key: 0,
|
|
586
586
|
class: "table-auto w-full"
|
|
587
|
-
},
|
|
587
|
+
}, qn = { class: "text-left" }, Xn = { class: "min-w-64" }, $n = { class: "flex flex-col" }, Yn = { class: "fm-typo-en-body-md-400" }, Qn = {
|
|
588
588
|
key: 0,
|
|
589
589
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
590
|
-
},
|
|
590
|
+
}, Gn = { class: "w-1" }, Xe = /* @__PURE__ */ G({
|
|
591
591
|
__name: "ApplyProduct",
|
|
592
592
|
props: {
|
|
593
593
|
isAddon: {
|
|
@@ -612,8 +612,8 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
612
612
|
}
|
|
613
613
|
},
|
|
614
614
|
emits: ["update:bindings"],
|
|
615
|
-
setup(k, { emit:
|
|
616
|
-
const e = k, v =
|
|
615
|
+
setup(k, { emit: y }) {
|
|
616
|
+
const e = k, v = y, t = Be(), d = z(() => e.isAddon ? "Addons" : "Products"), u = z(() => e.isAddon ? [] : e.categories), l = z(
|
|
617
617
|
() => Bt(u.value, e.variants, e.menus)
|
|
618
618
|
), h = z(() => {
|
|
619
619
|
if (e.isAddon)
|
|
@@ -705,7 +705,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
705
705
|
})
|
|
706
706
|
}));
|
|
707
707
|
}
|
|
708
|
-
function
|
|
708
|
+
function b() {
|
|
709
709
|
return e.menus.map((o) => ({
|
|
710
710
|
label: o.name,
|
|
711
711
|
value: { productId: o._id },
|
|
@@ -758,7 +758,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
758
758
|
}
|
|
759
759
|
function F() {
|
|
760
760
|
let o;
|
|
761
|
-
e.isAddon ? o =
|
|
761
|
+
e.isAddon ? o = b() : o = m();
|
|
762
762
|
const a = {
|
|
763
763
|
modelValue: o
|
|
764
764
|
};
|
|
@@ -778,9 +778,9 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
778
778
|
const { t: w } = oe();
|
|
779
779
|
return (o, a) => {
|
|
780
780
|
const f = V("FmButton"), g = V("FmTextField");
|
|
781
|
-
return S(), E("div",
|
|
782
|
-
s("div",
|
|
783
|
-
s("div",
|
|
781
|
+
return S(), E("div", jn, [
|
|
782
|
+
s("div", Pn, [
|
|
783
|
+
s("div", Kn, D(k.isAddon ? _(w)("inventory.integration.apply.addons") : _(w)("inventory.integration.apply.products")), 1),
|
|
784
784
|
I(f, {
|
|
785
785
|
type: "button",
|
|
786
786
|
variant: "plain",
|
|
@@ -791,10 +791,10 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
791
791
|
}, null, 8, ["label"])
|
|
792
792
|
]),
|
|
793
793
|
s("div", null, [
|
|
794
|
-
h.value.length > 0 ? (S(), E("table",
|
|
794
|
+
h.value.length > 0 ? (S(), E("table", Hn, [
|
|
795
795
|
s("thead", null, [
|
|
796
|
-
s("tr",
|
|
797
|
-
s("th",
|
|
796
|
+
s("tr", qn, [
|
|
797
|
+
s("th", Xn, D(_(w)("inventory.integration.apply.name")), 1),
|
|
798
798
|
s("th", null, D(_(w)("inventory.integration.apply.code")), 1),
|
|
799
799
|
a[1] || (a[1] = s("th", { class: "w-1" }, " ", -1))
|
|
800
800
|
])
|
|
@@ -804,9 +804,9 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
804
804
|
a[2] || (a[2] = s("tr", { class: "block h-8" }, null, -1)),
|
|
805
805
|
s("tr", null, [
|
|
806
806
|
s("td", null, [
|
|
807
|
-
s("div",
|
|
808
|
-
s("div",
|
|
809
|
-
i.variantName ? (S(), E("div",
|
|
807
|
+
s("div", $n, [
|
|
808
|
+
s("div", Yn, D(i.itemCode) + " " + D(i.name), 1),
|
|
809
|
+
i.variantName ? (S(), E("div", Qn, D(i.variantName), 1)) : K("", !0)
|
|
810
810
|
])
|
|
811
811
|
]),
|
|
812
812
|
s("td", null, [
|
|
@@ -820,7 +820,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
820
820
|
]
|
|
821
821
|
}, null, 8, ["model-value", "onUpdate:modelValue", "rules"])
|
|
822
822
|
]),
|
|
823
|
-
s("td",
|
|
823
|
+
s("td", Gn, [
|
|
824
824
|
I(f, {
|
|
825
825
|
type: "button",
|
|
826
826
|
variant: "tertiary",
|
|
@@ -838,7 +838,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
838
838
|
]);
|
|
839
839
|
};
|
|
840
840
|
}
|
|
841
|
-
}),
|
|
841
|
+
}), Jn = { class: "flex flex-col gap-8 w-full" }, Zn = /* @__PURE__ */ G({
|
|
842
842
|
__name: "ApplyProductDialog",
|
|
843
843
|
props: {
|
|
844
844
|
categories: { default: () => [] },
|
|
@@ -850,8 +850,8 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
850
850
|
loading: { type: Boolean }
|
|
851
851
|
},
|
|
852
852
|
emits: ["update:setting", "update:show", "submit"],
|
|
853
|
-
setup(k, { emit:
|
|
854
|
-
const e = k, v =
|
|
853
|
+
setup(k, { emit: y }) {
|
|
854
|
+
const e = k, v = y, t = Ye(de(e.setting));
|
|
855
855
|
Ce([() => e.show], ([c]) => {
|
|
856
856
|
if (c)
|
|
857
857
|
for (const m of Object.keys(e.setting))
|
|
@@ -867,7 +867,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
867
867
|
}
|
|
868
868
|
const { t: A } = oe();
|
|
869
869
|
return (c, m) => {
|
|
870
|
-
const
|
|
870
|
+
const b = V("FmChip"), p = V("FmForm"), C = V("FmButton"), F = V("FmSideSheet");
|
|
871
871
|
return S(), H(F, {
|
|
872
872
|
modelValue: _(u),
|
|
873
873
|
"onUpdate:modelValue": m[4] || (m[4] = (w) => Se(u) ? u.value = w : null),
|
|
@@ -877,9 +877,9 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
877
877
|
"max-width": 500
|
|
878
878
|
}, {
|
|
879
879
|
default: O(() => [
|
|
880
|
-
s("div",
|
|
880
|
+
s("div", Jn, [
|
|
881
881
|
s("div", null, [
|
|
882
|
-
I(
|
|
882
|
+
I(b, { label: "Menu v3" })
|
|
883
883
|
]),
|
|
884
884
|
I(p, {
|
|
885
885
|
ref_key: "formRef",
|
|
@@ -894,7 +894,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
894
894
|
menus: c.menus,
|
|
895
895
|
"onUpdate:bindings": m[0] || (m[0] = (w) => t.bindings = w)
|
|
896
896
|
}, null, 8, ["bindings", "categories", "variants", "menus"]),
|
|
897
|
-
I(
|
|
897
|
+
I(Un, {
|
|
898
898
|
form: d.value,
|
|
899
899
|
modifiers: t.modifiers ?? [],
|
|
900
900
|
groups: c.groups ?? [],
|
|
@@ -918,7 +918,7 @@ const zn = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
918
918
|
}, 8, ["modelValue", "header"]);
|
|
919
919
|
};
|
|
920
920
|
}
|
|
921
|
-
}),
|
|
921
|
+
}), Wn = ["Product ID", "Menu Item Code", "Name", "Category"], eo = ["Variant Name", "Variant Key"], Ae = {
|
|
922
922
|
productId: ["productid"],
|
|
923
923
|
menuItemCode: ["menuitemcode", "ordercode"],
|
|
924
924
|
// header is now "Name"; keep "menuitemname" for older sheets
|
|
@@ -933,11 +933,11 @@ function mt(k) {
|
|
|
933
933
|
function $e(k) {
|
|
934
934
|
return (k ?? "").replace(/^\uFEFF/, "").trim().replace(/\s+/g, " ");
|
|
935
935
|
}
|
|
936
|
-
function ke(k,
|
|
937
|
-
return `${k}::${
|
|
936
|
+
function ke(k, y) {
|
|
937
|
+
return `${k}::${y ?? ""}`;
|
|
938
938
|
}
|
|
939
|
-
function
|
|
940
|
-
const e =
|
|
939
|
+
function to(k, y) {
|
|
940
|
+
const e = rn(k);
|
|
941
941
|
if (!e.length)
|
|
942
942
|
throw new Error("The file is empty.");
|
|
943
943
|
const v = [
|
|
@@ -945,33 +945,33 @@ function eo(k, b) {
|
|
|
945
945
|
...Ae.menuItemCode,
|
|
946
946
|
...Ae.menuItemName
|
|
947
947
|
], t = e.findIndex(
|
|
948
|
-
(m) => m.some((
|
|
948
|
+
(m) => m.some((b) => v.includes(mt(b)))
|
|
949
949
|
);
|
|
950
950
|
if (t < 0)
|
|
951
951
|
throw new Error(
|
|
952
952
|
'Missing required headers. Could not find a "Product ID", "Menu Item Code" or "Name" column.'
|
|
953
953
|
);
|
|
954
|
-
const d = e[t].map(mt), u = (m) => d.findIndex((
|
|
954
|
+
const d = e[t].map(mt), u = (m) => d.findIndex((b) => m.includes(b)), l = {
|
|
955
955
|
productId: u(Ae.productId),
|
|
956
956
|
menuItemCode: u(Ae.menuItemCode),
|
|
957
957
|
menuItemName: u(Ae.menuItemName),
|
|
958
958
|
category: u(Ae.category),
|
|
959
959
|
variantName: u(Ae.variantName),
|
|
960
960
|
variantKey: u(Ae.variantKey)
|
|
961
|
-
}, h =
|
|
961
|
+
}, h = y.valueColumns.map((m) => ({
|
|
962
962
|
col: m,
|
|
963
963
|
index: u(m.aliases)
|
|
964
964
|
})), A = [];
|
|
965
965
|
l.productId < 0 && l.menuItemCode < 0 && l.menuItemName < 0 && A.push("Product ID / Menu Item Code / Name");
|
|
966
|
-
for (const { col: m, index:
|
|
967
|
-
m.required &&
|
|
966
|
+
for (const { col: m, index: b } of h)
|
|
967
|
+
m.required && b < 0 && A.push(m.header);
|
|
968
968
|
if (A.length)
|
|
969
969
|
throw new Error(`Missing required columns: ${A.join(", ")}.`);
|
|
970
|
-
const c = (m,
|
|
970
|
+
const c = (m, b) => b >= 0 ? (m[b] ?? "").trim() : "";
|
|
971
971
|
return e.slice(t + 1).map((m) => {
|
|
972
|
-
const
|
|
972
|
+
const b = {};
|
|
973
973
|
for (const { col: p, index: C } of h)
|
|
974
|
-
|
|
974
|
+
b[p.field] = c(m, C);
|
|
975
975
|
return {
|
|
976
976
|
productId: c(m, l.productId),
|
|
977
977
|
menuItemCode: c(m, l.menuItemCode),
|
|
@@ -979,26 +979,26 @@ function eo(k, b) {
|
|
|
979
979
|
category: c(m, l.category),
|
|
980
980
|
variantName: c(m, l.variantName),
|
|
981
981
|
variantKey: c(m, l.variantKey),
|
|
982
|
-
values:
|
|
982
|
+
values: b
|
|
983
983
|
};
|
|
984
984
|
}).filter(
|
|
985
|
-
(m) => m.productId || m.menuItemCode || m.menuItemName || Object.values(m.values).some((
|
|
985
|
+
(m) => m.productId || m.menuItemCode || m.menuItemName || Object.values(m.values).some((b) => b)
|
|
986
986
|
);
|
|
987
987
|
}
|
|
988
|
-
function
|
|
988
|
+
function no(k, y = []) {
|
|
989
989
|
var l, h;
|
|
990
990
|
const e = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), d = (A, c, m) => {
|
|
991
|
-
const
|
|
992
|
-
|
|
991
|
+
const b = A.get(c) ?? [];
|
|
992
|
+
b.push(m), A.set(c, b);
|
|
993
993
|
}, u = (A, c) => {
|
|
994
994
|
const m = (A ?? "").trim();
|
|
995
995
|
m && d(v, m, c);
|
|
996
996
|
};
|
|
997
997
|
for (const A of k) {
|
|
998
|
-
const c = !A.category, m = ((l = A.variant) == null ? void 0 : l.variantCombinations) ?? [],
|
|
998
|
+
const c = !A.category, m = ((l = A.variant) == null ? void 0 : l.variantCombinations) ?? [], b = nt(y, (h = A.variant) == null ? void 0 : h.variantGroupIds), p = /* @__PURE__ */ new Set(), C = /* @__PURE__ */ new Map();
|
|
999
999
|
for (const o of m) {
|
|
1000
1000
|
const a = o.combinationKey ?? "";
|
|
1001
|
-
a && (p.add(a), C.set(a, (o.name ||
|
|
1001
|
+
a && (p.add(a), C.set(a, (o.name || b[a] || "").trim()));
|
|
1002
1002
|
}
|
|
1003
1003
|
const F = {
|
|
1004
1004
|
productId: A._id,
|
|
@@ -1013,7 +1013,7 @@ function to(k, b = []) {
|
|
|
1013
1013
|
}
|
|
1014
1014
|
return { byProductId: e, byCode: v, byName: t };
|
|
1015
1015
|
}
|
|
1016
|
-
function
|
|
1016
|
+
function oo(k, y, e, v) {
|
|
1017
1017
|
const t = (c) => c.productId || c.menuItemCode || $e(c.menuItemName), d = (c) => `${t(c)}::${c.variantKey}`, u = /* @__PURE__ */ new Map();
|
|
1018
1018
|
for (const c of k)
|
|
1019
1019
|
t(c) && u.set(d(c), (u.get(d(c)) ?? 0) + 1);
|
|
@@ -1022,7 +1022,7 @@ function no(k, b, e, v) {
|
|
|
1022
1022
|
), h = v.valueColumns.filter((c) => c.required);
|
|
1023
1023
|
return { invalidExcel: !1, rows: k.map((c, m) => {
|
|
1024
1024
|
var r, x;
|
|
1025
|
-
const
|
|
1025
|
+
const b = {
|
|
1026
1026
|
excelRowNumber: m + 1,
|
|
1027
1027
|
row: c,
|
|
1028
1028
|
warnings: [],
|
|
@@ -1030,29 +1030,29 @@ function no(k, b, e, v) {
|
|
|
1030
1030
|
};
|
|
1031
1031
|
if (!t(c))
|
|
1032
1032
|
return {
|
|
1033
|
-
...
|
|
1033
|
+
...b,
|
|
1034
1034
|
status: "NOT_FOUND",
|
|
1035
1035
|
errors: ["Missing identifier (Product ID, Menu Item Code or Name)."]
|
|
1036
1036
|
};
|
|
1037
1037
|
if ((u.get(d(c)) ?? 0) > 1) {
|
|
1038
1038
|
const T = c.variantKey ? ` / variant "${c.variantKey}"` : "";
|
|
1039
1039
|
return {
|
|
1040
|
-
...
|
|
1040
|
+
...b,
|
|
1041
1041
|
status: "DUPLICATE",
|
|
1042
1042
|
errors: [`Duplicate row for "${t(c)}"${T} — ignored.`]
|
|
1043
1043
|
};
|
|
1044
1044
|
}
|
|
1045
1045
|
let p, C;
|
|
1046
1046
|
if (c.productId) {
|
|
1047
|
-
const T =
|
|
1047
|
+
const T = y.byProductId.get(c.productId);
|
|
1048
1048
|
p = T ? [T] : [], C = `Product ID "${c.productId}"`;
|
|
1049
|
-
} else c.menuItemCode ? (p =
|
|
1049
|
+
} else c.menuItemCode ? (p = y.byCode.get(c.menuItemCode) ?? [], C = `code "${c.menuItemCode}"`) : (p = y.byName.get($e(c.menuItemName)) ?? [], C = `name "${c.menuItemName}"`);
|
|
1050
1050
|
if (p.length === 0)
|
|
1051
|
-
return { ...
|
|
1051
|
+
return { ...b, status: "NOT_FOUND", errors: [`No menu item found for ${C}.`] };
|
|
1052
1052
|
let F, w;
|
|
1053
1053
|
if (p.length > 1)
|
|
1054
1054
|
return {
|
|
1055
|
-
...
|
|
1055
|
+
...b,
|
|
1056
1056
|
status: "AMBIGUOUS",
|
|
1057
1057
|
errors: [`${C} matches ${p.length} menu items — ignored.`]
|
|
1058
1058
|
};
|
|
@@ -1060,66 +1060,66 @@ function no(k, b, e, v) {
|
|
|
1060
1060
|
if (c.variantKey) {
|
|
1061
1061
|
if (!((r = o.combinationKeys) != null && r.has(c.variantKey)))
|
|
1062
1062
|
return {
|
|
1063
|
-
...
|
|
1063
|
+
...b,
|
|
1064
1064
|
status: "NOT_FOUND",
|
|
1065
1065
|
errors: [`Variant "${c.variantKey}" not found on ${C}.`]
|
|
1066
1066
|
};
|
|
1067
1067
|
F = c.variantKey, w = (x = o.combinationNames) == null ? void 0 : x.get(c.variantKey);
|
|
1068
1068
|
}
|
|
1069
1069
|
const a = c.category.trim();
|
|
1070
|
-
a && a.toUpperCase() === "ADDON" !== o.isAddon &&
|
|
1070
|
+
a && a.toUpperCase() === "ADDON" !== o.isAddon && b.warnings.push(
|
|
1071
1071
|
`Category "${c.category}" does not match the menu classification (${o.isAddon ? "Addon" : "Product"}).`
|
|
1072
1072
|
);
|
|
1073
1073
|
const f = { resolvedName: o.name, variantName: w, isAddon: o.isAddon }, g = h.filter((T) => !c.values[T.field]);
|
|
1074
1074
|
if (h.length && g.length === h.length)
|
|
1075
|
-
return { ...
|
|
1075
|
+
return { ...b, status: "SKIPPED", ...f };
|
|
1076
1076
|
for (const T of g)
|
|
1077
|
-
|
|
1077
|
+
b.errors.push(`Missing ${T.header}.`);
|
|
1078
1078
|
const i = v.buildBinding({
|
|
1079
1079
|
productId: o.productId,
|
|
1080
1080
|
combinationKey: F,
|
|
1081
1081
|
values: c.values
|
|
1082
1082
|
}), n = l.has(ke(o.productId, F)) ? "OVERRIDE" : "NEW";
|
|
1083
|
-
return { ...
|
|
1083
|
+
return { ...b, status: n, binding: i, ...f };
|
|
1084
1084
|
}) };
|
|
1085
1085
|
}
|
|
1086
|
-
function
|
|
1086
|
+
function so(k, y, e, v, t) {
|
|
1087
1087
|
let d;
|
|
1088
1088
|
try {
|
|
1089
|
-
d =
|
|
1089
|
+
d = to(k, t);
|
|
1090
1090
|
} catch (u) {
|
|
1091
1091
|
return { invalidExcel: !0, invalidExcelMessage: (u == null ? void 0 : u.message) ?? "Invalid file.", rows: [] };
|
|
1092
1092
|
}
|
|
1093
|
-
return
|
|
1093
|
+
return oo(d, no(y, v), e, t);
|
|
1094
1094
|
}
|
|
1095
1095
|
function Ee(k) {
|
|
1096
1096
|
return k.rows.filter(
|
|
1097
|
-
(
|
|
1098
|
-
).map((
|
|
1097
|
+
(y) => (y.status === "NEW" || y.status === "OVERRIDE") && !y.errors.length && !!y.binding
|
|
1098
|
+
).map((y) => y.binding);
|
|
1099
1099
|
}
|
|
1100
1100
|
function Et(k) {
|
|
1101
|
-
const
|
|
1101
|
+
const y = (e) => k.rows.filter((v) => v.status === e).length;
|
|
1102
1102
|
return {
|
|
1103
|
-
new:
|
|
1104
|
-
override:
|
|
1105
|
-
skipped:
|
|
1106
|
-
duplicate:
|
|
1107
|
-
notFound:
|
|
1108
|
-
ambiguous:
|
|
1103
|
+
new: y("NEW"),
|
|
1104
|
+
override: y("OVERRIDE"),
|
|
1105
|
+
skipped: y("SKIPPED"),
|
|
1106
|
+
duplicate: y("DUPLICATE"),
|
|
1107
|
+
notFound: y("NOT_FOUND"),
|
|
1108
|
+
ambiguous: y("AMBIGUOUS"),
|
|
1109
1109
|
withErrors: k.rows.filter((e) => e.errors.length).length
|
|
1110
1110
|
};
|
|
1111
1111
|
}
|
|
1112
|
-
function Nt(k,
|
|
1113
|
-
const e = new Set(
|
|
1114
|
-
return [...k.filter((t) => !e.has(ke(t.productId, t.combinationKey))), ...
|
|
1112
|
+
function Nt(k, y) {
|
|
1113
|
+
const e = new Set(y.map((t) => ke(t.productId, t.combinationKey)));
|
|
1114
|
+
return [...k.filter((t) => !e.has(ke(t.productId, t.combinationKey))), ...y];
|
|
1115
1115
|
}
|
|
1116
|
-
function
|
|
1117
|
-
return [...
|
|
1116
|
+
function ao(k) {
|
|
1117
|
+
return [...Wn, ...k.valueColumns.map((y) => y.header), ...eo];
|
|
1118
1118
|
}
|
|
1119
|
-
function
|
|
1120
|
-
var m,
|
|
1119
|
+
function lo(k, y, e, v, t) {
|
|
1120
|
+
var m, b;
|
|
1121
1121
|
const d = /* @__PURE__ */ new Map();
|
|
1122
|
-
for (const p of
|
|
1122
|
+
for (const p of y)
|
|
1123
1123
|
p._id && d.set(p._id, p.name ?? "");
|
|
1124
1124
|
const u = /* @__PURE__ */ new Map();
|
|
1125
1125
|
for (const p of e)
|
|
@@ -1152,7 +1152,7 @@ function ao(k, b, e, v, t) {
|
|
|
1152
1152
|
categoryLabel: F,
|
|
1153
1153
|
variantName: ""
|
|
1154
1154
|
});
|
|
1155
|
-
const o = nt(v, (
|
|
1155
|
+
const o = nt(v, (b = p.variant) == null ? void 0 : b.variantGroupIds);
|
|
1156
1156
|
for (const a of w) {
|
|
1157
1157
|
const f = (a.name || o[a.combinationKey ?? ""] || "").trim();
|
|
1158
1158
|
A({
|
|
@@ -1173,18 +1173,18 @@ function ao(k, b, e, v, t) {
|
|
|
1173
1173
|
variantName: ""
|
|
1174
1174
|
});
|
|
1175
1175
|
}
|
|
1176
|
-
return { rows: [
|
|
1176
|
+
return { rows: [ao(t), ...h] };
|
|
1177
1177
|
}
|
|
1178
|
-
function Dt(k,
|
|
1179
|
-
const { rows: u } =
|
|
1178
|
+
function Dt(k, y, e, v, t, d) {
|
|
1179
|
+
const { rows: u } = lo(k, y, e, v, t), [l, ...h] = u, A = an(h, l, `${t.key} Bindings`), c = A.Sheets[A.SheetNames[0]];
|
|
1180
1180
|
delete c["!cols"];
|
|
1181
|
-
const
|
|
1182
|
-
return
|
|
1181
|
+
const b = `${d ? `${d} ` : ""}${t.key}-bindings-template (${Ze(/* @__PURE__ */ new Date())}).xlsx`;
|
|
1182
|
+
return ln(A, b), { filename: b, itemCount: h.length };
|
|
1183
1183
|
}
|
|
1184
|
-
const
|
|
1184
|
+
const io = { class: "flex flex-col gap-24" }, ro = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, uo = { class: "flex flex-col flex-1 gap-4" }, co = { class: "fm-typo-en-body-md-600" }, mo = {
|
|
1185
1185
|
key: 0,
|
|
1186
1186
|
class: "flex flex-wrap gap-x-16 gap-y-4 fm-typo-en-body-sm-400"
|
|
1187
|
-
},
|
|
1187
|
+
}, po = { class: "text-fm-color-system-success-400" }, fo = { class: "text-fm-color-system-warning-400" }, vo = { class: "text-fm-color-typo-secondary" }, go = { class: "text-fm-color-typo-secondary" }, yo = { class: "text-fm-color-system-error-300" }, bo = { class: "text-fm-color-system-error-300" }, Lt = /* @__PURE__ */ G({
|
|
1188
1188
|
__name: "ImportBindings",
|
|
1189
1189
|
props: {
|
|
1190
1190
|
config: {
|
|
@@ -1205,24 +1205,24 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1205
1205
|
}
|
|
1206
1206
|
},
|
|
1207
1207
|
setup(k) {
|
|
1208
|
-
const
|
|
1208
|
+
const y = k, e = ht(), { t: v } = oe(), t = M(null), d = M(!1), u = M(null), l = M(null), h = z(() => l.value ? Et(l.value) : null), A = z(() => l.value ? Ee(l.value).length : 0), c = z(() => !u.value && A.value > 0);
|
|
1209
1209
|
function m() {
|
|
1210
1210
|
e.emitData(c.value ? l.value : null);
|
|
1211
1211
|
}
|
|
1212
|
-
async function
|
|
1212
|
+
async function b(p) {
|
|
1213
1213
|
u.value = null, l.value = null, d.value = !0;
|
|
1214
1214
|
try {
|
|
1215
|
-
const C = await
|
|
1215
|
+
const C = await un(p), F = C.SheetNames.find((o) => o);
|
|
1216
1216
|
if (!F) {
|
|
1217
1217
|
u.value = "The file has no sheets.", m();
|
|
1218
1218
|
return;
|
|
1219
1219
|
}
|
|
1220
|
-
const w =
|
|
1220
|
+
const w = so(
|
|
1221
1221
|
C.Sheets[F],
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1222
|
+
y.menus,
|
|
1223
|
+
y.bindings,
|
|
1224
|
+
y.variants,
|
|
1225
|
+
y.config
|
|
1226
1226
|
);
|
|
1227
1227
|
if (w.invalidExcel) {
|
|
1228
1228
|
u.value = w.invalidExcelMessage ?? "Invalid file.", m();
|
|
@@ -1236,11 +1236,11 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1236
1236
|
}
|
|
1237
1237
|
}
|
|
1238
1238
|
return Ce(t, (p) => {
|
|
1239
|
-
p &&
|
|
1239
|
+
p && b(p);
|
|
1240
1240
|
}), (p, C) => {
|
|
1241
1241
|
const F = V("FmCircularProgress"), w = V("FmIcon"), o = V("FmButton");
|
|
1242
|
-
return S(), E("div",
|
|
1243
|
-
s("div",
|
|
1242
|
+
return S(), E("div", io, [
|
|
1243
|
+
s("div", ro, D(_(v)("inventory.integration.bindingImport.description")), 1),
|
|
1244
1244
|
I(Je, {
|
|
1245
1245
|
class: ne({ "w-full": !0, "h-[200px]": !t.value }),
|
|
1246
1246
|
accept: ".xlsx,.xls,.csv",
|
|
@@ -1271,8 +1271,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1271
1271
|
color: u.value ? "system-error-300" : "system-success-400",
|
|
1272
1272
|
size: "lg"
|
|
1273
1273
|
}, null, 8, ["name", "color"])),
|
|
1274
|
-
s("div",
|
|
1275
|
-
s("div",
|
|
1274
|
+
s("div", uo, [
|
|
1275
|
+
s("div", co, D(t.value.name), 1),
|
|
1276
1276
|
s("div", {
|
|
1277
1277
|
class: ne([
|
|
1278
1278
|
"fm-typo-en-body-sm-400",
|
|
@@ -1292,18 +1292,18 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1292
1292
|
key: "0"
|
|
1293
1293
|
} : void 0
|
|
1294
1294
|
]), 1032, ["class"]),
|
|
1295
|
-
h.value ? (S(), E("div",
|
|
1296
|
-
s("span",
|
|
1297
|
-
s("span",
|
|
1298
|
-
s("span",
|
|
1299
|
-
s("span",
|
|
1300
|
-
s("span",
|
|
1301
|
-
s("span",
|
|
1295
|
+
h.value ? (S(), E("div", mo, [
|
|
1296
|
+
s("span", po, D(_(v)("inventory.integration.bindingImport.status.new")) + ": " + D(h.value.new), 1),
|
|
1297
|
+
s("span", fo, D(_(v)("inventory.integration.bindingImport.status.overriding")) + ": " + D(h.value.override), 1),
|
|
1298
|
+
s("span", vo, D(_(v)("inventory.integration.bindingImport.status.skipped")) + ": " + D(h.value.skipped), 1),
|
|
1299
|
+
s("span", go, D(_(v)("inventory.integration.bindingImport.status.duplicate")) + ": " + D(h.value.duplicate), 1),
|
|
1300
|
+
s("span", yo, D(_(v)("inventory.integration.bindingImport.status.notFound")) + ": " + D(h.value.notFound), 1),
|
|
1301
|
+
s("span", bo, D(_(v)("inventory.integration.bindingImport.status.ambiguous")) + ": " + D(h.value.ambiguous), 1)
|
|
1302
1302
|
])) : K("", !0)
|
|
1303
1303
|
]);
|
|
1304
1304
|
};
|
|
1305
1305
|
}
|
|
1306
|
-
}),
|
|
1306
|
+
}), Ao = { class: "flex flex-col gap-16" }, ho = { class: "flex flex-wrap gap-x-16 gap-y-4 fm-typo-en-body-sm-400" }, xo = { class: "text-fm-color-system-success-400" }, Io = { class: "text-fm-color-system-warning-400" }, So = { class: "text-fm-color-typo-secondary" }, wo = { class: "text-fm-color-typo-secondary" }, Co = { class: "text-fm-color-system-error-300" }, ko = { class: "text-fm-color-system-error-300" }, Tt = /* @__PURE__ */ G({
|
|
1307
1307
|
__name: "BindingImportPreview",
|
|
1308
1308
|
props: {
|
|
1309
1309
|
config: {
|
|
@@ -1316,7 +1316,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1316
1316
|
}
|
|
1317
1317
|
},
|
|
1318
1318
|
setup(k) {
|
|
1319
|
-
const
|
|
1319
|
+
const y = k, { t: e } = oe(), v = M(""), t = z(() => Et(y.result)), d = z(
|
|
1320
1320
|
() => ({
|
|
1321
1321
|
NEW: e("inventory.integration.bindingImport.status.new"),
|
|
1322
1322
|
OVERRIDE: e("inventory.integration.bindingImport.status.overriding"),
|
|
@@ -1333,10 +1333,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1333
1333
|
NOT_FOUND: "bg-red-100 text-red-800 border border-red-200",
|
|
1334
1334
|
AMBIGUOUS: "bg-red-100 text-red-800 border border-red-200"
|
|
1335
1335
|
}, l = z(() => {
|
|
1336
|
-
const h =
|
|
1336
|
+
const h = y.config.valueColumns.map(
|
|
1337
1337
|
(A) => ({
|
|
1338
1338
|
id: A.field,
|
|
1339
|
-
accessorFn: (c) => (c.binding ?
|
|
1339
|
+
accessorFn: (c) => (c.binding ? y.config.readValues(c.binding)[A.field] : c.row.values[A.field]) || "—",
|
|
1340
1340
|
header: () => A.header,
|
|
1341
1341
|
size: 130
|
|
1342
1342
|
})
|
|
@@ -1373,7 +1373,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1373
1373
|
header: () => e("inventory.integration.bindingImport.columns.status"),
|
|
1374
1374
|
size: 160,
|
|
1375
1375
|
cell: (A) => {
|
|
1376
|
-
const c = A.row.original, m = [...c.errors, ...c.warnings],
|
|
1376
|
+
const c = A.row.original, m = [...c.errors, ...c.warnings], b = m.length ? `${d.value[c.status]} ⚠` : d.value[c.status];
|
|
1377
1377
|
return B(
|
|
1378
1378
|
"div",
|
|
1379
1379
|
{
|
|
@@ -1381,7 +1381,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1381
1381
|
title: m.join(`
|
|
1382
1382
|
`) || void 0
|
|
1383
1383
|
},
|
|
1384
|
-
|
|
1384
|
+
b
|
|
1385
1385
|
);
|
|
1386
1386
|
}
|
|
1387
1387
|
}
|
|
@@ -1389,18 +1389,18 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1389
1389
|
});
|
|
1390
1390
|
return (h, A) => {
|
|
1391
1391
|
const c = V("FmTextField"), m = V("FmTable");
|
|
1392
|
-
return S(), E("div",
|
|
1393
|
-
s("div",
|
|
1394
|
-
s("span",
|
|
1395
|
-
s("span",
|
|
1396
|
-
s("span",
|
|
1397
|
-
s("span",
|
|
1398
|
-
s("span",
|
|
1399
|
-
s("span",
|
|
1392
|
+
return S(), E("div", Ao, [
|
|
1393
|
+
s("div", ho, [
|
|
1394
|
+
s("span", xo, D(_(e)("inventory.integration.bindingImport.status.new")) + ": " + D(t.value.new), 1),
|
|
1395
|
+
s("span", Io, D(_(e)("inventory.integration.bindingImport.status.overriding")) + ": " + D(t.value.override), 1),
|
|
1396
|
+
s("span", So, D(_(e)("inventory.integration.bindingImport.status.skipped")) + ": " + D(t.value.skipped), 1),
|
|
1397
|
+
s("span", wo, D(_(e)("inventory.integration.bindingImport.status.duplicate")) + ": " + D(t.value.duplicate), 1),
|
|
1398
|
+
s("span", Co, D(_(e)("inventory.integration.bindingImport.status.notFound")) + ": " + D(t.value.notFound), 1),
|
|
1399
|
+
s("span", ko, D(_(e)("inventory.integration.bindingImport.status.ambiguous")) + ": " + D(t.value.ambiguous), 1)
|
|
1400
1400
|
]),
|
|
1401
1401
|
I(c, {
|
|
1402
1402
|
"model-value": v.value,
|
|
1403
|
-
"onUpdate:modelValue": A[0] || (A[0] = (
|
|
1403
|
+
"onUpdate:modelValue": A[0] || (A[0] = (b) => v.value = b),
|
|
1404
1404
|
placeholder: _(e)("inventory.integration.bindingImport.searchPlaceholder"),
|
|
1405
1405
|
"prepend-icon": "search"
|
|
1406
1406
|
}, null, 8, ["model-value", "placeholder"]),
|
|
@@ -1418,13 +1418,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1418
1418
|
}), Ke = {
|
|
1419
1419
|
key: "foodMarketHub",
|
|
1420
1420
|
valueColumns: [{ field: "code", header: "FMH Code", aliases: ["fmhcode", "code"], required: !0 }],
|
|
1421
|
-
buildBinding: ({ productId: k, combinationKey:
|
|
1421
|
+
buildBinding: ({ productId: k, combinationKey: y, values: e }) => ({
|
|
1422
1422
|
productId: k,
|
|
1423
|
-
combinationKey:
|
|
1423
|
+
combinationKey: y ?? null,
|
|
1424
1424
|
code: e.code ?? ""
|
|
1425
1425
|
}),
|
|
1426
1426
|
readValues: (k) => ({ code: k.code })
|
|
1427
|
-
},
|
|
1427
|
+
}, _o = { class: "flex flex-col gap-8 w-full" }, Fo = { class: "flex items-center" }, Bo = /* @__PURE__ */ G({
|
|
1428
1428
|
__name: "ApplyProductDialogV4",
|
|
1429
1429
|
props: {
|
|
1430
1430
|
categories: { default: () => [] },
|
|
@@ -1436,8 +1436,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1436
1436
|
loading: { type: Boolean }
|
|
1437
1437
|
},
|
|
1438
1438
|
emits: ["update:setting", "update:show", "submit"],
|
|
1439
|
-
setup(k, { emit:
|
|
1440
|
-
const e = k, v =
|
|
1439
|
+
setup(k, { emit: y }) {
|
|
1440
|
+
const e = k, v = y, t = Ye(de(e.setting));
|
|
1441
1441
|
Ce([() => e.show], ([n]) => {
|
|
1442
1442
|
if (n)
|
|
1443
1443
|
for (const r of Object.keys(e.setting))
|
|
@@ -1456,7 +1456,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1456
1456
|
function c(n) {
|
|
1457
1457
|
t.bindings = [...h.value, ...n];
|
|
1458
1458
|
}
|
|
1459
|
-
const m = M(),
|
|
1459
|
+
const m = M(), b = Be(), p = ae(), C = fe();
|
|
1460
1460
|
function F() {
|
|
1461
1461
|
var r;
|
|
1462
1462
|
const { filename: n } = Dt(
|
|
@@ -1474,7 +1474,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1474
1474
|
});
|
|
1475
1475
|
}
|
|
1476
1476
|
function w() {
|
|
1477
|
-
|
|
1477
|
+
b.open({
|
|
1478
1478
|
title: i("inventory.integration.bindingImport.dialogTitle"),
|
|
1479
1479
|
contentComponent: Lt,
|
|
1480
1480
|
contentComponentProps: {
|
|
@@ -1511,7 +1511,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1511
1511
|
}).onTertiary(() => F());
|
|
1512
1512
|
}
|
|
1513
1513
|
function o(n) {
|
|
1514
|
-
|
|
1514
|
+
b.open({
|
|
1515
1515
|
title: i("inventory.integration.bindingImport.previewTitle"),
|
|
1516
1516
|
contentComponent: Tt,
|
|
1517
1517
|
contentComponentProps: { config: Ke, result: n },
|
|
@@ -1556,8 +1556,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1556
1556
|
"max-width": 500
|
|
1557
1557
|
}, {
|
|
1558
1558
|
default: O(() => [
|
|
1559
|
-
s("div",
|
|
1560
|
-
s("div",
|
|
1559
|
+
s("div", _o, [
|
|
1560
|
+
s("div", Fo, [
|
|
1561
1561
|
I(x, { label: "Menu v4" }),
|
|
1562
1562
|
r[6] || (r[6] = s("div", { class: "flex-grow" }, null, -1)),
|
|
1563
1563
|
I(T, {
|
|
@@ -1607,17 +1607,17 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1607
1607
|
}, 8, ["modelValue", "header"]);
|
|
1608
1608
|
};
|
|
1609
1609
|
}
|
|
1610
|
-
}),
|
|
1610
|
+
}), Vo = { key: 0 }, Eo = { class: "flex justify-center" }, No = ["src"], Do = { class: "flex flex-col items-center gap-2" }, Lo = { class: "text-lg font-bold" }, To = { class: "text-fm-color-neutral-gray-300" }, Ro = { key: 0 }, Mo = /* @__PURE__ */ G({
|
|
1611
1611
|
__name: "FoodMarketHub",
|
|
1612
1612
|
setup(k) {
|
|
1613
|
-
const
|
|
1613
|
+
const y = fe(), e = ae(), v = pe(), t = M(!1), d = Wt(), u = z(() => d.state.menu ?? []), l = z(() => d.state.group ?? []), h = z(() => d.state.variants ?? []), A = z(() => d.state.categories ?? []), c = Gt(), m = z(() => {
|
|
1614
1614
|
var f;
|
|
1615
|
-
return (f =
|
|
1615
|
+
return (f = y.currentBusiness.value) == null ? void 0 : f.menuVersion;
|
|
1616
1616
|
});
|
|
1617
1617
|
v.watchLocation(d.init);
|
|
1618
|
-
const
|
|
1618
|
+
const b = M(!1);
|
|
1619
1619
|
async function p() {
|
|
1620
|
-
|
|
1620
|
+
b.value = !0;
|
|
1621
1621
|
}
|
|
1622
1622
|
const { breakpoints: C } = Ge(), F = z(() => C.value.xs || C.value.sm), w = z(() => F.value);
|
|
1623
1623
|
async function o() {
|
|
@@ -1629,7 +1629,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1629
1629
|
title: "Success",
|
|
1630
1630
|
message: "Your changes has been saved",
|
|
1631
1631
|
type: "success"
|
|
1632
|
-
}),
|
|
1632
|
+
}), b.value = !1, await d.init();
|
|
1633
1633
|
return;
|
|
1634
1634
|
} catch (g) {
|
|
1635
1635
|
e.open({
|
|
@@ -1645,7 +1645,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1645
1645
|
const { t: a } = oe();
|
|
1646
1646
|
return (f, g) => {
|
|
1647
1647
|
const i = V("FmCardSection"), n = V("FmCard");
|
|
1648
|
-
return _(d).isEnabled && !_(d).isBusinessLocation ? (S(), E("div",
|
|
1648
|
+
return _(d).isEnabled && !_(d).isBusinessLocation ? (S(), E("div", Vo, [
|
|
1649
1649
|
I(n, {
|
|
1650
1650
|
class: ne({
|
|
1651
1651
|
"w-full": w.value,
|
|
@@ -1660,15 +1660,15 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1660
1660
|
default: O(() => [
|
|
1661
1661
|
I(i, null, {
|
|
1662
1662
|
default: O(() => [
|
|
1663
|
-
s("div",
|
|
1663
|
+
s("div", Eo, [
|
|
1664
1664
|
s("img", {
|
|
1665
|
-
src: _(
|
|
1665
|
+
src: _(bn),
|
|
1666
1666
|
alt: "Food Market Hub"
|
|
1667
|
-
}, null, 8,
|
|
1667
|
+
}, null, 8, No)
|
|
1668
1668
|
]),
|
|
1669
|
-
s("div",
|
|
1670
|
-
s("div",
|
|
1671
|
-
s("div",
|
|
1669
|
+
s("div", Do, [
|
|
1670
|
+
s("div", Lo, D(_(a)("inventory.integration.fmh.title")), 1),
|
|
1671
|
+
s("div", To, D(_(a)("inventory.integration.fmh.description")), 1)
|
|
1672
1672
|
])
|
|
1673
1673
|
]),
|
|
1674
1674
|
_: 1
|
|
@@ -1676,29 +1676,29 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1676
1676
|
]),
|
|
1677
1677
|
_: 1
|
|
1678
1678
|
}, 8, ["class"]),
|
|
1679
|
-
_(d).state.setting ? (S(), E("div",
|
|
1679
|
+
_(d).state.setting ? (S(), E("div", Ro, [
|
|
1680
1680
|
(S(), H(Fe, { to: "body" }, [
|
|
1681
|
-
m.value === "v3" ? (S(), H(
|
|
1681
|
+
m.value === "v3" ? (S(), H(Zn, {
|
|
1682
1682
|
key: 0,
|
|
1683
1683
|
menus: u.value,
|
|
1684
1684
|
variants: h.value,
|
|
1685
1685
|
categories: A.value,
|
|
1686
1686
|
setting: _(d).state.setting,
|
|
1687
1687
|
"onUpdate:setting": g[1] || (g[1] = (r) => _(d).state.setting = r),
|
|
1688
|
-
show:
|
|
1689
|
-
"onUpdate:show": g[2] || (g[2] = (r) =>
|
|
1688
|
+
show: b.value,
|
|
1689
|
+
"onUpdate:show": g[2] || (g[2] = (r) => b.value = r),
|
|
1690
1690
|
groups: l.value,
|
|
1691
1691
|
loading: t.value,
|
|
1692
1692
|
onSubmit: g[3] || (g[3] = (r) => o())
|
|
1693
|
-
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (S(), H(
|
|
1693
|
+
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (S(), H(Bo, {
|
|
1694
1694
|
key: 1,
|
|
1695
1695
|
menus: u.value,
|
|
1696
1696
|
variants: h.value,
|
|
1697
1697
|
categories: A.value,
|
|
1698
1698
|
setting: _(d).state.setting,
|
|
1699
1699
|
"onUpdate:setting": g[4] || (g[4] = (r) => _(d).state.setting = r),
|
|
1700
|
-
show:
|
|
1701
|
-
"onUpdate:show": g[5] || (g[5] = (r) =>
|
|
1700
|
+
show: b.value,
|
|
1701
|
+
"onUpdate:show": g[5] || (g[5] = (r) => b.value = r),
|
|
1702
1702
|
groups: l.value,
|
|
1703
1703
|
loading: t.value,
|
|
1704
1704
|
onSubmit: g[6] || (g[6] = (r) => o())
|
|
@@ -1708,13 +1708,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1708
1708
|
])) : K("", !0);
|
|
1709
1709
|
};
|
|
1710
1710
|
}
|
|
1711
|
-
}), Mo = "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", Oo = {
|
|
1711
|
+
}), Oo = "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", Uo = {
|
|
1712
1712
|
key: 0,
|
|
1713
1713
|
class: "line-clamp-1 text-ellipsis"
|
|
1714
|
-
},
|
|
1714
|
+
}, zo = {
|
|
1715
1715
|
key: 1,
|
|
1716
1716
|
class: "line-clamp-1 text-ellipsis text-fm-color-typo-tertiary"
|
|
1717
|
-
},
|
|
1717
|
+
}, jo = { class: "flex flex-col gap-5" }, Po = { class: "overflow-x-hidden overflow-y-auto max-h-[300px]" }, Rt = /* @__PURE__ */ G({
|
|
1718
1718
|
__name: "FmEnhancedSelect",
|
|
1719
1719
|
props: {
|
|
1720
1720
|
placeholder: {},
|
|
@@ -1725,18 +1725,18 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1725
1725
|
modelValue: {}
|
|
1726
1726
|
},
|
|
1727
1727
|
emits: ["update:modelValue"],
|
|
1728
|
-
setup(k, { emit:
|
|
1729
|
-
const e = k, v =
|
|
1730
|
-
() => new
|
|
1728
|
+
setup(k, { emit: y }) {
|
|
1729
|
+
const e = k, v = y, t = M(""), d = z(
|
|
1730
|
+
() => new dn(
|
|
1731
1731
|
e.items,
|
|
1732
1732
|
(l) => [l.label ?? "", l.sublabel ?? "", ...l.value[e.searchTarget]].filter((h) => h)
|
|
1733
1733
|
)
|
|
1734
1734
|
), u = z(() => d.value.search(t.value));
|
|
1735
1735
|
return (l, h) => {
|
|
1736
|
-
const A = V("FmLabel"), c = V("FmField"), m = V("FmIcon"),
|
|
1736
|
+
const A = V("FmLabel"), c = V("FmField"), m = V("FmIcon"), b = V("FmTextField"), p = V("FmMenuItem"), C = V("FmMenu"), F = V("FmFormGroup");
|
|
1737
1737
|
return S(), H(F, {
|
|
1738
1738
|
"model-value": l.modelValue,
|
|
1739
|
-
rules: [_(
|
|
1739
|
+
rules: [_(mn)()],
|
|
1740
1740
|
"label-mark": "required"
|
|
1741
1741
|
}, he({
|
|
1742
1742
|
default: O(({ invalid: w }) => [
|
|
@@ -1754,14 +1754,14 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1754
1754
|
"append-icon": "expand_more"
|
|
1755
1755
|
}, {
|
|
1756
1756
|
default: O(() => [
|
|
1757
|
-
l.modelValue[e.searchTarget] ? (S(), E("span",
|
|
1757
|
+
l.modelValue[e.searchTarget] ? (S(), E("span", Uo, D(l.modelValue[e.searchTarget]), 1)) : (S(), E("span", zo, D(l.placeholder || "Select an option"), 1))
|
|
1758
1758
|
]),
|
|
1759
1759
|
_: 2
|
|
1760
1760
|
}, 1032, ["class", "invalid"])
|
|
1761
1761
|
]),
|
|
1762
1762
|
default: O(() => [
|
|
1763
|
-
s("div",
|
|
1764
|
-
I(
|
|
1763
|
+
s("div", jo, [
|
|
1764
|
+
I(b, {
|
|
1765
1765
|
modelValue: t.value,
|
|
1766
1766
|
"onUpdate:modelValue": h[1] || (h[1] = (o) => t.value = o),
|
|
1767
1767
|
placeholder: "Filter options"
|
|
@@ -1783,7 +1783,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1783
1783
|
key: "0"
|
|
1784
1784
|
} : void 0
|
|
1785
1785
|
]), 1032, ["modelValue"]),
|
|
1786
|
-
s("div",
|
|
1786
|
+
s("div", Po, [
|
|
1787
1787
|
(S(!0), E(Z, null, se(u.value, (o, a) => {
|
|
1788
1788
|
var f, g;
|
|
1789
1789
|
return S(), H(p, {
|
|
@@ -1812,13 +1812,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1812
1812
|
]), 1032, ["model-value", "rules"]);
|
|
1813
1813
|
};
|
|
1814
1814
|
}
|
|
1815
|
-
}),
|
|
1815
|
+
}), Ko = { class: "flex-col items-center" }, Ho = { class: "flex gap-2" }, qo = {
|
|
1816
1816
|
key: 0,
|
|
1817
1817
|
class: "text-xs text-red-500 mt-2"
|
|
1818
|
-
},
|
|
1818
|
+
}, Xo = {
|
|
1819
1819
|
key: 1,
|
|
1820
1820
|
class: "flex items-center mt-2"
|
|
1821
|
-
},
|
|
1821
|
+
}, $o = { class: "flex flex-col" }, Yo = { class: "font-medium" }, Qo = { class: "text-xs text-gray-400" }, Go = { class: "text-xs text-gray-400" }, Jo = { class: "text-xs text-gray-400" }, Zo = /* @__PURE__ */ G({
|
|
1822
1822
|
__name: "NetSuiteLocationField",
|
|
1823
1823
|
props: {
|
|
1824
1824
|
isDuplicate: { type: Boolean, default: !1 },
|
|
@@ -1833,12 +1833,12 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1833
1833
|
}) }
|
|
1834
1834
|
},
|
|
1835
1835
|
emits: ["update:modelValue"],
|
|
1836
|
-
setup(k, { emit:
|
|
1837
|
-
const e = k, v = z(() => e.modelValue), t =
|
|
1836
|
+
setup(k, { emit: y }) {
|
|
1837
|
+
const e = k, v = z(() => e.modelValue), t = y;
|
|
1838
1838
|
return (d, u) => {
|
|
1839
1839
|
const l = V("FmButton"), h = V("FmIcon");
|
|
1840
|
-
return S(), E("div",
|
|
1841
|
-
s("div",
|
|
1840
|
+
return S(), E("div", Ko, [
|
|
1841
|
+
s("div", Ho, [
|
|
1842
1842
|
I(Rt, {
|
|
1843
1843
|
placeholder: "Select NetSuite Location",
|
|
1844
1844
|
items: d.nsLocationOptions,
|
|
@@ -1858,8 +1858,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1858
1858
|
}))
|
|
1859
1859
|
})) : K("", !0)
|
|
1860
1860
|
]),
|
|
1861
|
-
d.isDuplicate ? (S(), E("div",
|
|
1862
|
-
v.value.netsuiteId ? (S(), E("div",
|
|
1861
|
+
d.isDuplicate ? (S(), E("div", qo, " NetSuite location being used by another FeedMe location. ")) : K("", !0),
|
|
1862
|
+
v.value.netsuiteId ? (S(), E("div", Xo, [
|
|
1863
1863
|
I(h, {
|
|
1864
1864
|
name: "cloud",
|
|
1865
1865
|
color: "neutral-gray-400",
|
|
@@ -1867,17 +1867,17 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1867
1867
|
class: "mr-2",
|
|
1868
1868
|
outline: ""
|
|
1869
1869
|
}),
|
|
1870
|
-
s("div",
|
|
1871
|
-
s("span",
|
|
1872
|
-
s("span",
|
|
1873
|
-
s("span",
|
|
1874
|
-
s("span",
|
|
1870
|
+
s("div", $o, [
|
|
1871
|
+
s("span", Yo, D(v.value.name), 1),
|
|
1872
|
+
s("span", Qo, "ID: " + D(v.value.netsuiteId), 1),
|
|
1873
|
+
s("span", Go, "Subsidiary: " + D(v.value.subsidiaryName), 1),
|
|
1874
|
+
s("span", Jo, "Inactive: " + D(v.value.isinactive ? "Yes" : "No"), 1)
|
|
1875
1875
|
])
|
|
1876
1876
|
])) : K("", !0)
|
|
1877
1877
|
]);
|
|
1878
1878
|
};
|
|
1879
1879
|
}
|
|
1880
|
-
}),
|
|
1880
|
+
}), Wo = /* @__PURE__ */ G({
|
|
1881
1881
|
__name: "AddLocationDialog",
|
|
1882
1882
|
props: {
|
|
1883
1883
|
showDialog: {
|
|
@@ -1898,7 +1898,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1898
1898
|
}
|
|
1899
1899
|
},
|
|
1900
1900
|
emits: ["update:loading", "update:showDialog"],
|
|
1901
|
-
setup(k, { emit:
|
|
1901
|
+
setup(k, { emit: y }) {
|
|
1902
1902
|
const e = ve(), v = ae(), t = [
|
|
1903
1903
|
{
|
|
1904
1904
|
id: "fmLocation",
|
|
@@ -1927,7 +1927,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1927
1927
|
const C = p.row.original, F = l.value[C.dbName], w = Object.entries(l.value).some(
|
|
1928
1928
|
([o, a]) => o !== C.dbName && a.netsuiteId === (F == null ? void 0 : F.netsuiteId)
|
|
1929
1929
|
);
|
|
1930
|
-
return B(
|
|
1930
|
+
return B(Zo, {
|
|
1931
1931
|
isDuplicate: w,
|
|
1932
1932
|
nsLocationOptions: c.value,
|
|
1933
1933
|
modelValue: F,
|
|
@@ -1946,13 +1946,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1946
1946
|
});
|
|
1947
1947
|
}
|
|
1948
1948
|
}
|
|
1949
|
-
], d = k, u =
|
|
1949
|
+
], d = k, u = y, l = M({}), h = M(), A = M(""), c = z(() => d.nsLocationsNotBeingUsed.map((p) => ({
|
|
1950
1950
|
label: p.name,
|
|
1951
1951
|
value: p
|
|
1952
1952
|
}))), m = z(() => Object.values(l.value).length === 0 || Object.values(l.value).some(
|
|
1953
1953
|
(p) => Object.values(l.value).filter((C) => C.netsuiteId === p.netsuiteId).length > 1
|
|
1954
1954
|
));
|
|
1955
|
-
async function
|
|
1955
|
+
async function b() {
|
|
1956
1956
|
try {
|
|
1957
1957
|
u("update:loading", !0), await e.updateLocationConfigs(l.value), v.open({
|
|
1958
1958
|
message: "Locations updated successfully",
|
|
@@ -1985,7 +1985,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
1985
1985
|
label: "Submit",
|
|
1986
1986
|
size: "md",
|
|
1987
1987
|
disabled: m.value,
|
|
1988
|
-
onClick:
|
|
1988
|
+
onClick: b
|
|
1989
1989
|
}, null, 8, ["disabled"])
|
|
1990
1990
|
]),
|
|
1991
1991
|
default: O(() => [
|
|
@@ -2012,10 +2012,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2012
2012
|
}, 8, ["modelValue"]);
|
|
2013
2013
|
};
|
|
2014
2014
|
}
|
|
2015
|
-
}),
|
|
2015
|
+
}), es = { class: "p-8 flex items-center justify-between" }, ts = { class: "flex gap-4" }, ns = /* @__PURE__ */ G({
|
|
2016
2016
|
__name: "LocationsTab",
|
|
2017
2017
|
setup(k) {
|
|
2018
|
-
const
|
|
2018
|
+
const y = pe(), e = ve(), v = ae(), t = M(!1), d = M(), u = M(""), l = M(null), h = M([]), A = M(null), c = [
|
|
2019
2019
|
{
|
|
2020
2020
|
key: "type",
|
|
2021
2021
|
type: "string",
|
|
@@ -2044,18 +2044,18 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2044
2044
|
o
|
|
2045
2045
|
)
|
|
2046
2046
|
);
|
|
2047
|
-
}),
|
|
2047
|
+
}), b = [
|
|
2048
2048
|
{
|
|
2049
2049
|
id: "location",
|
|
2050
2050
|
header: () => "FeedMe Location",
|
|
2051
2051
|
accessorFn: (w) => {
|
|
2052
|
-
const o =
|
|
2052
|
+
const o = y.locations.find(
|
|
2053
2053
|
(a) => a.type === w.type && a.doc._id === w.id
|
|
2054
2054
|
);
|
|
2055
2055
|
return `${(o == null ? void 0 : o.name) || ""} ${(o == null ? void 0 : o.doc._id) || ""}`;
|
|
2056
2056
|
},
|
|
2057
2057
|
cell(w) {
|
|
2058
|
-
const o = w.row.original, a =
|
|
2058
|
+
const o = w.row.original, a = y.locations.find(
|
|
2059
2059
|
(g) => g.type === o.type && g.doc._id === o.id
|
|
2060
2060
|
);
|
|
2061
2061
|
if (!a)
|
|
@@ -2107,7 +2107,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2107
2107
|
]);
|
|
2108
2108
|
}
|
|
2109
2109
|
}
|
|
2110
|
-
], p = z(() =>
|
|
2110
|
+
], p = z(() => y.locations.filter(
|
|
2111
2111
|
(w) => !e.state.setting.locations.some(
|
|
2112
2112
|
(o) => o.id === w.doc._id && o.type === w.type
|
|
2113
2113
|
)
|
|
@@ -2121,8 +2121,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2121
2121
|
return (w, o) => {
|
|
2122
2122
|
const a = V("FmSearch"), f = V("FmButton"), g = V("FmTable");
|
|
2123
2123
|
return S(), E("div", null, [
|
|
2124
|
-
s("div",
|
|
2125
|
-
s("div",
|
|
2124
|
+
s("div", es, [
|
|
2125
|
+
s("div", ts, [
|
|
2126
2126
|
I(a, {
|
|
2127
2127
|
placeholder: "Search by Location",
|
|
2128
2128
|
class: "w-[300px]",
|
|
@@ -2144,12 +2144,12 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2144
2144
|
modelValue: d.value,
|
|
2145
2145
|
"onUpdate:modelValue": o[2] || (o[2] = (i) => d.value = i),
|
|
2146
2146
|
"row-data": m.value,
|
|
2147
|
-
"column-defs":
|
|
2147
|
+
"column-defs": b,
|
|
2148
2148
|
"shrink-at": !1,
|
|
2149
2149
|
"search-value": u.value,
|
|
2150
2150
|
autoResetPageIndex: !0
|
|
2151
2151
|
}, null, 8, ["modelValue", "row-data", "search-value"]),
|
|
2152
|
-
I(
|
|
2152
|
+
I(Wo, {
|
|
2153
2153
|
"show-dialog": t.value,
|
|
2154
2154
|
"onUpdate:showDialog": [
|
|
2155
2155
|
o[3] || (o[3] = (i) => t.value = i),
|
|
@@ -2162,13 +2162,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2162
2162
|
]);
|
|
2163
2163
|
};
|
|
2164
2164
|
}
|
|
2165
|
-
}),
|
|
2165
|
+
}), os = { class: "flex-col items-center" }, ss = { class: "flex gap-2" }, as = {
|
|
2166
2166
|
key: 0,
|
|
2167
2167
|
class: "text-xs text-red-500 mt-2"
|
|
2168
|
-
},
|
|
2168
|
+
}, ls = {
|
|
2169
2169
|
key: 1,
|
|
2170
2170
|
class: "flex items-center mt-2"
|
|
2171
|
-
},
|
|
2171
|
+
}, is = { class: "flex flex-col" }, rs = { class: "font-medium" }, us = { class: "text-xs text-gray-400" }, ds = { class: "text-xs text-gray-400" }, cs = /* @__PURE__ */ G({
|
|
2172
2172
|
__name: "NetSuiteVendorField",
|
|
2173
2173
|
props: {
|
|
2174
2174
|
isDuplicate: { type: Boolean, default: !1 },
|
|
@@ -2182,12 +2182,12 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2182
2182
|
}) }
|
|
2183
2183
|
},
|
|
2184
2184
|
emits: ["update:modelValue"],
|
|
2185
|
-
setup(k, { emit:
|
|
2186
|
-
const e = k, v = z(() => e.modelValue), t =
|
|
2185
|
+
setup(k, { emit: y }) {
|
|
2186
|
+
const e = k, v = z(() => e.modelValue), t = y;
|
|
2187
2187
|
return (d, u) => {
|
|
2188
2188
|
const l = V("FmButton"), h = V("FmIcon");
|
|
2189
|
-
return S(), E("div",
|
|
2190
|
-
s("div",
|
|
2189
|
+
return S(), E("div", os, [
|
|
2190
|
+
s("div", ss, [
|
|
2191
2191
|
I(Rt, {
|
|
2192
2192
|
placeholder: "Select NetSuite Vendor",
|
|
2193
2193
|
items: d.nsVendorOptions,
|
|
@@ -2207,8 +2207,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2207
2207
|
}))
|
|
2208
2208
|
})) : K("", !0)
|
|
2209
2209
|
]),
|
|
2210
|
-
d.isDuplicate ? (S(), E("div",
|
|
2211
|
-
v.value.netsuiteId ? (S(), E("div",
|
|
2210
|
+
d.isDuplicate ? (S(), E("div", as, " NetSuite vendor being used by another FeedMe supplier. ")) : K("", !0),
|
|
2211
|
+
v.value.netsuiteId ? (S(), E("div", ls, [
|
|
2212
2212
|
I(h, {
|
|
2213
2213
|
name: "cloud",
|
|
2214
2214
|
color: "neutral-gray-400",
|
|
@@ -2216,19 +2216,19 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2216
2216
|
class: "mr-2",
|
|
2217
2217
|
outline: ""
|
|
2218
2218
|
}),
|
|
2219
|
-
s("div",
|
|
2220
|
-
s("span",
|
|
2221
|
-
s("span",
|
|
2222
|
-
s("span",
|
|
2219
|
+
s("div", is, [
|
|
2220
|
+
s("span", rs, D(v.value.name), 1),
|
|
2221
|
+
s("span", us, "ID: " + D(v.value.netsuiteId), 1),
|
|
2222
|
+
s("span", ds, "Subsidiary: " + D(v.value.subsidiaryName), 1)
|
|
2223
2223
|
])
|
|
2224
2224
|
])) : K("", !0)
|
|
2225
2225
|
]);
|
|
2226
2226
|
};
|
|
2227
2227
|
}
|
|
2228
|
-
}),
|
|
2228
|
+
}), ms = {
|
|
2229
2229
|
key: 0,
|
|
2230
2230
|
class: "flex items-center justify-center py-12"
|
|
2231
|
-
},
|
|
2231
|
+
}, ps = /* @__PURE__ */ G({
|
|
2232
2232
|
__name: "AddVendorDialog",
|
|
2233
2233
|
props: {
|
|
2234
2234
|
showDialog: {
|
|
@@ -2253,7 +2253,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2253
2253
|
}
|
|
2254
2254
|
},
|
|
2255
2255
|
emits: ["update:loading", "update:showDialog"],
|
|
2256
|
-
setup(k, { emit:
|
|
2256
|
+
setup(k, { emit: y }) {
|
|
2257
2257
|
const e = ve(), v = ae(), t = [
|
|
2258
2258
|
{
|
|
2259
2259
|
id: "fmSupplier",
|
|
@@ -2282,7 +2282,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2282
2282
|
const C = p.row.original, F = l.value[C._id], w = Object.entries(l.value).some(
|
|
2283
2283
|
([o, a]) => o !== C._id && a.netsuiteId === (F == null ? void 0 : F.netsuiteId)
|
|
2284
2284
|
);
|
|
2285
|
-
return B(
|
|
2285
|
+
return B(cs, {
|
|
2286
2286
|
isDuplicate: w,
|
|
2287
2287
|
nsVendorOptions: c.value,
|
|
2288
2288
|
modelValue: F,
|
|
@@ -2301,13 +2301,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2301
2301
|
});
|
|
2302
2302
|
}
|
|
2303
2303
|
}
|
|
2304
|
-
], d = k, u =
|
|
2304
|
+
], d = k, u = y, l = M({}), h = M(), A = M(""), c = z(() => d.nsVendorsNotBeingUsed.filter((p) => p.name).map((p) => ({
|
|
2305
2305
|
label: p.name,
|
|
2306
2306
|
value: p
|
|
2307
2307
|
}))), m = z(() => Object.values(l.value).length === 0 || Object.values(l.value).some(
|
|
2308
2308
|
(p) => Object.values(l.value).filter((C) => C.netsuiteId === p.netsuiteId).length > 1
|
|
2309
2309
|
));
|
|
2310
|
-
async function
|
|
2310
|
+
async function b() {
|
|
2311
2311
|
try {
|
|
2312
2312
|
u("update:loading", !0), await e.updateSupplierConfigs(l.value), v.open({
|
|
2313
2313
|
message: "Vendors updated successfully",
|
|
@@ -2340,11 +2340,11 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2340
2340
|
label: "Submit",
|
|
2341
2341
|
size: "md",
|
|
2342
2342
|
disabled: m.value,
|
|
2343
|
-
onClick:
|
|
2343
|
+
onClick: b
|
|
2344
2344
|
}, null, 8, ["disabled"])
|
|
2345
2345
|
]),
|
|
2346
2346
|
default: O(() => [
|
|
2347
|
-
d.nsVendorsLoading ? (S(), E("div",
|
|
2347
|
+
d.nsVendorsLoading ? (S(), E("div", ms, [
|
|
2348
2348
|
I(F, { size: "lg" }),
|
|
2349
2349
|
C[4] || (C[4] = s("span", { class: "ml-3 text-gray-500" }, "Loading NetSuite vendors...", -1))
|
|
2350
2350
|
])) : (S(), H(o, {
|
|
@@ -2371,20 +2371,20 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2371
2371
|
}, 8, ["modelValue"]);
|
|
2372
2372
|
};
|
|
2373
2373
|
}
|
|
2374
|
-
}),
|
|
2374
|
+
}), fs = { class: "p-8 flex items-center justify-between" }, vs = { class: "flex items-center gap-2" }, gs = {
|
|
2375
2375
|
key: 0,
|
|
2376
2376
|
class: "text-sm text-gray-500"
|
|
2377
|
-
},
|
|
2377
|
+
}, ys = {
|
|
2378
2378
|
key: 1,
|
|
2379
2379
|
class: "text-sm text-red-500"
|
|
2380
|
-
},
|
|
2380
|
+
}, bs = /* @__PURE__ */ G({
|
|
2381
2381
|
__name: "VendorsTab",
|
|
2382
2382
|
setup(k) {
|
|
2383
|
-
const
|
|
2383
|
+
const y = pn(), e = ve(), v = ae(), t = M(""), d = M(!1), u = M([]), l = M(!1), h = M(null), A = M(null);
|
|
2384
2384
|
_e(async () => {
|
|
2385
|
-
if (
|
|
2385
|
+
if (y.suppliers.length === 0)
|
|
2386
2386
|
try {
|
|
2387
|
-
await
|
|
2387
|
+
await y.readSuppliers();
|
|
2388
2388
|
} catch {
|
|
2389
2389
|
v.open({ message: "Failed to fetch suppliers", type: "error" });
|
|
2390
2390
|
}
|
|
@@ -2404,11 +2404,11 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2404
2404
|
id: "vendor",
|
|
2405
2405
|
header: () => "FeedMe Supplier",
|
|
2406
2406
|
accessorFn: (w) => {
|
|
2407
|
-
const o =
|
|
2407
|
+
const o = y.suppliers.find((a) => a._id === w.id);
|
|
2408
2408
|
return `${(o == null ? void 0 : o.name) || ""} ${(o == null ? void 0 : o._id) || ""}`;
|
|
2409
2409
|
},
|
|
2410
2410
|
cell(w) {
|
|
2411
|
-
const o = w.row.original, a =
|
|
2411
|
+
const o = w.row.original, a = y.suppliers.find(
|
|
2412
2412
|
(g) => g._id === o.id
|
|
2413
2413
|
);
|
|
2414
2414
|
if (!a)
|
|
@@ -2460,7 +2460,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2460
2460
|
]);
|
|
2461
2461
|
}
|
|
2462
2462
|
}
|
|
2463
|
-
],
|
|
2463
|
+
], b = z(() => y.suppliers.filter(
|
|
2464
2464
|
(w) => !e.state.setting.vendors.some((o) => o.id === w._id)
|
|
2465
2465
|
)), p = z(() => u.value.filter(
|
|
2466
2466
|
(w) => !e.state.setting.vendors.some(
|
|
@@ -2472,15 +2472,15 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2472
2472
|
return (w, o) => {
|
|
2473
2473
|
const a = V("FmSearch"), f = V("FmButton"), g = V("FmTable");
|
|
2474
2474
|
return S(), E("div", null, [
|
|
2475
|
-
s("div",
|
|
2475
|
+
s("div", fs, [
|
|
2476
2476
|
I(a, {
|
|
2477
2477
|
placeholder: "Search by Vendor",
|
|
2478
2478
|
class: "w-[300px]",
|
|
2479
2479
|
modelValue: t.value,
|
|
2480
2480
|
"onUpdate:modelValue": o[0] || (o[0] = (i) => t.value = i)
|
|
2481
2481
|
}, null, 8, ["modelValue"]),
|
|
2482
|
-
s("div",
|
|
2483
|
-
l.value ? (S(), E("span",
|
|
2482
|
+
s("div", vs, [
|
|
2483
|
+
l.value ? (S(), E("span", gs, "Loading vendors...")) : h.value ? (S(), E("span", ys, D(h.value), 1)) : K("", !0),
|
|
2484
2484
|
I(f, {
|
|
2485
2485
|
label: "Add vendor",
|
|
2486
2486
|
onClick: C,
|
|
@@ -2495,24 +2495,24 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2495
2495
|
"shrink-at": !1,
|
|
2496
2496
|
"search-value": t.value
|
|
2497
2497
|
}, null, 8, ["row-data", "search-value"]),
|
|
2498
|
-
I(
|
|
2498
|
+
I(ps, {
|
|
2499
2499
|
"show-dialog": d.value,
|
|
2500
2500
|
"onUpdate:showDialog": [
|
|
2501
2501
|
o[1] || (o[1] = (i) => d.value = i),
|
|
2502
2502
|
o[2] || (o[2] = (i) => d.value = i)
|
|
2503
2503
|
],
|
|
2504
2504
|
formRef: A.value,
|
|
2505
|
-
fmSuppliersNotYetConfigured:
|
|
2505
|
+
fmSuppliersNotYetConfigured: b.value,
|
|
2506
2506
|
nsVendorsNotBeingUsed: p.value,
|
|
2507
2507
|
nsVendorsLoading: l.value
|
|
2508
2508
|
}, null, 8, ["show-dialog", "formRef", "fmSuppliersNotYetConfigured", "nsVendorsNotBeingUsed", "nsVendorsLoading"])
|
|
2509
2509
|
]);
|
|
2510
2510
|
};
|
|
2511
2511
|
}
|
|
2512
|
-
}),
|
|
2512
|
+
}), As = { class: "p-8 flex flex-col gap-4" }, hs = { class: "flex gap-4 items-center" }, xs = /* @__PURE__ */ G({
|
|
2513
2513
|
__name: "ItemsTab",
|
|
2514
2514
|
setup(k) {
|
|
2515
|
-
const
|
|
2515
|
+
const y = Ne(), e = ve(), v = De(), t = ae(), { t: d } = oe();
|
|
2516
2516
|
_e(async () => {
|
|
2517
2517
|
e.state.isReady && e.state.itemReplicas.length === 0 && await e.getAllItemReplicas();
|
|
2518
2518
|
});
|
|
@@ -2523,7 +2523,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2523
2523
|
}, l = (o) => {
|
|
2524
2524
|
if (o.parentNetSuiteId) return null;
|
|
2525
2525
|
const a = o.skuCache;
|
|
2526
|
-
return a ?
|
|
2526
|
+
return a ? y.skuById[a._id] ? null : "new" : null;
|
|
2527
2527
|
}, h = z(() => e.state.itemReplicas.some(
|
|
2528
2528
|
(o) => u(o.syncedAt) || l(o) === "new"
|
|
2529
2529
|
)), A = M(!1), c = async () => {
|
|
@@ -2533,7 +2533,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2533
2533
|
title: "Success",
|
|
2534
2534
|
message: d("Items published to inventory successfully."),
|
|
2535
2535
|
type: "success"
|
|
2536
|
-
}), await Promise.all([e.getAllItemReplicas(),
|
|
2536
|
+
}), await Promise.all([e.getAllItemReplicas(), y.fetchInventory()]);
|
|
2537
2537
|
} catch (o) {
|
|
2538
2538
|
t.open({
|
|
2539
2539
|
title: "Error",
|
|
@@ -2543,7 +2543,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2543
2543
|
} finally {
|
|
2544
2544
|
A.value = !1;
|
|
2545
2545
|
}
|
|
2546
|
-
}, m = M(),
|
|
2546
|
+
}, m = M(), b = M(""), p = M(null), C = [
|
|
2547
2547
|
{
|
|
2548
2548
|
key: "itemType",
|
|
2549
2549
|
type: "string",
|
|
@@ -2683,13 +2683,13 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2683
2683
|
return (o, a) => {
|
|
2684
2684
|
const f = V("FmSearch"), g = V("FmButton"), i = V("FmTable");
|
|
2685
2685
|
return S(), E("div", null, [
|
|
2686
|
-
s("div",
|
|
2687
|
-
s("div",
|
|
2686
|
+
s("div", As, [
|
|
2687
|
+
s("div", hs, [
|
|
2688
2688
|
I(f, {
|
|
2689
2689
|
placeholder: "Search by Item",
|
|
2690
2690
|
class: "w-[300px]",
|
|
2691
|
-
modelValue:
|
|
2692
|
-
"onUpdate:modelValue": a[0] || (a[0] = (n) =>
|
|
2691
|
+
modelValue: b.value,
|
|
2692
|
+
"onUpdate:modelValue": a[0] || (a[0] = (n) => b.value = n)
|
|
2693
2693
|
}, null, 8, ["modelValue"]),
|
|
2694
2694
|
I(_(Ct), {
|
|
2695
2695
|
modelValue: p.value,
|
|
@@ -2711,26 +2711,26 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2711
2711
|
"row-data": F.value,
|
|
2712
2712
|
"column-defs": w,
|
|
2713
2713
|
"shrink-at": !1,
|
|
2714
|
-
"search-value":
|
|
2714
|
+
"search-value": b.value,
|
|
2715
2715
|
autoResetPageIndex: !0
|
|
2716
2716
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
2717
2717
|
]);
|
|
2718
2718
|
};
|
|
2719
2719
|
}
|
|
2720
|
-
}),
|
|
2720
|
+
}), Is = { class: "p-8" }, Ss = /* @__PURE__ */ G({
|
|
2721
2721
|
__name: "UnitTypesTab",
|
|
2722
2722
|
setup(k) {
|
|
2723
|
-
const
|
|
2723
|
+
const y = Ne(), e = ve(), v = M(), t = M(""), d = z(() => e.state.setting.units), u = [
|
|
2724
2724
|
{
|
|
2725
2725
|
id: "unit",
|
|
2726
2726
|
header: () => "FeedMe Unit",
|
|
2727
2727
|
accessorFn: (l) => {
|
|
2728
|
-
const h =
|
|
2728
|
+
const h = y.units.find((A) => A._id === l.id);
|
|
2729
2729
|
return `${(h == null ? void 0 : h.name) || ""} ${(h == null ? void 0 : h._id) || ""} ${(h == null ? void 0 : h.abbrev) || ""}`;
|
|
2730
2730
|
},
|
|
2731
2731
|
cell(l) {
|
|
2732
2732
|
var m;
|
|
2733
|
-
const h = l.row.original, A =
|
|
2733
|
+
const h = l.row.original, A = y.units.find((b) => b._id === h.id);
|
|
2734
2734
|
if (!A)
|
|
2735
2735
|
return B("div", "Unknown Unit");
|
|
2736
2736
|
const c = B(te.FmIcon, {
|
|
@@ -2789,7 +2789,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2789
2789
|
return (l, h) => {
|
|
2790
2790
|
const A = V("FmSearch"), c = V("FmTable");
|
|
2791
2791
|
return S(), E("div", null, [
|
|
2792
|
-
s("div",
|
|
2792
|
+
s("div", Is, [
|
|
2793
2793
|
I(A, {
|
|
2794
2794
|
placeholder: "Search by Unit Type",
|
|
2795
2795
|
class: "w-[300px]",
|
|
@@ -2809,18 +2809,18 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2809
2809
|
]);
|
|
2810
2810
|
};
|
|
2811
2811
|
}
|
|
2812
|
-
}),
|
|
2812
|
+
}), ws = { key: 0 }, Cs = {
|
|
2813
2813
|
key: 1,
|
|
2814
2814
|
class: "flex flex-col gap-8 w-full"
|
|
2815
|
-
},
|
|
2815
|
+
}, ks = { class: "flex gap-2 flex-wrap" }, _s = { class: "flex items-center gap-2 text-sm text-gray-500" }, Fs = { class: "font-medium" }, Bs = { class: "flex gap-8 items-center justify-start" }, Vs = /* @__PURE__ */ G({
|
|
2816
2816
|
__name: "BusinessNetSuiteSideSheet",
|
|
2817
2817
|
props: {
|
|
2818
2818
|
show: { type: Boolean },
|
|
2819
2819
|
loading: { type: Boolean }
|
|
2820
2820
|
},
|
|
2821
2821
|
emits: ["update:show", "update:loading"],
|
|
2822
|
-
setup(k, { emit:
|
|
2823
|
-
const e = fe(), v = ve(), t = k, d =
|
|
2822
|
+
setup(k, { emit: y }) {
|
|
2823
|
+
const e = fe(), v = ve(), t = k, d = y, u = we(t, "show"), l = M(
|
|
2824
2824
|
"locations"
|
|
2825
2825
|
/* LOCATIONS */
|
|
2826
2826
|
), h = [
|
|
@@ -2829,8 +2829,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2829
2829
|
{ value: "items", label: "Items" },
|
|
2830
2830
|
{ value: "unitTypes", label: "Unit Types" }
|
|
2831
2831
|
], { t: A } = oe(), c = z(() => {
|
|
2832
|
-
const
|
|
2833
|
-
return
|
|
2832
|
+
const b = v.state.setting.syncedAt;
|
|
2833
|
+
return b ? new Date(b).toLocaleString() : "Never";
|
|
2834
2834
|
}), m = [
|
|
2835
2835
|
"Unit Type",
|
|
2836
2836
|
"Inventory Item",
|
|
@@ -2841,7 +2841,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2841
2841
|
"Transfer Order",
|
|
2842
2842
|
"Inventory Transfer"
|
|
2843
2843
|
];
|
|
2844
|
-
return (
|
|
2844
|
+
return (b, p) => {
|
|
2845
2845
|
const C = V("FmChip"), F = V("FmTabs"), w = V("FmButton"), o = V("FmSideSheet");
|
|
2846
2846
|
return S(), H(o, {
|
|
2847
2847
|
modelValue: _(u),
|
|
@@ -2854,9 +2854,9 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2854
2854
|
default: O(() => {
|
|
2855
2855
|
var a;
|
|
2856
2856
|
return [
|
|
2857
|
-
(a = _(e).sessionUser.value) != null && a.role.isAdmin ? (S(), E("div",
|
|
2857
|
+
(a = _(e).sessionUser.value) != null && a.role.isAdmin ? (S(), E("div", Cs, [
|
|
2858
2858
|
p[4] || (p[4] = s("div", { class: "text-sm" }, " This integration keeps your FeedMe system and NetSuite in sync for the following modules: ", -1)),
|
|
2859
|
-
s("div",
|
|
2859
|
+
s("div", ks, [
|
|
2860
2860
|
(S(), E(Z, null, se(m, (f) => I(C, {
|
|
2861
2861
|
key: f,
|
|
2862
2862
|
label: f,
|
|
@@ -2864,9 +2864,9 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2864
2864
|
}, null, 8, ["label"])), 64))
|
|
2865
2865
|
]),
|
|
2866
2866
|
p[5] || (p[5] = s("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)),
|
|
2867
|
-
s("div",
|
|
2867
|
+
s("div", _s, [
|
|
2868
2868
|
p[3] || (p[3] = s("span", null, "NetSuite Last Sync:", -1)),
|
|
2869
|
-
s("span",
|
|
2869
|
+
s("span", Fs, D(c.value), 1)
|
|
2870
2870
|
]),
|
|
2871
2871
|
p[6] || (p[6] = s("hr", { class: "my-3" }, null, -1)),
|
|
2872
2872
|
I(F, {
|
|
@@ -2874,15 +2874,15 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2874
2874
|
"onUpdate:modelValue": p[0] || (p[0] = (f) => l.value = f),
|
|
2875
2875
|
items: h
|
|
2876
2876
|
}, null, 8, ["model-value"]),
|
|
2877
|
-
l.value === "locations" ? (S(), H(
|
|
2878
|
-
l.value === "vendors" ? (S(), H(
|
|
2879
|
-
l.value === "items" ? (S(), H(
|
|
2880
|
-
l.value === "unitTypes" ? (S(), H(
|
|
2881
|
-
])) : (S(), E("div",
|
|
2877
|
+
l.value === "locations" ? (S(), H(ns, { key: 0 })) : K("", !0),
|
|
2878
|
+
l.value === "vendors" ? (S(), H(bs, { key: 1 })) : K("", !0),
|
|
2879
|
+
l.value === "items" ? (S(), H(xs, { key: 2 })) : K("", !0),
|
|
2880
|
+
l.value === "unitTypes" ? (S(), H(Ss, { key: 3 })) : K("", !0)
|
|
2881
|
+
])) : (S(), E("div", ws, " Please contact your administrator to apply the changes. "))
|
|
2882
2882
|
];
|
|
2883
2883
|
}),
|
|
2884
2884
|
"side-sheet-footer": O(() => [
|
|
2885
|
-
s("div",
|
|
2885
|
+
s("div", Bs, [
|
|
2886
2886
|
I(w, {
|
|
2887
2887
|
variant: "tertiary",
|
|
2888
2888
|
label: _(A)("common.close"),
|
|
@@ -2894,7 +2894,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2894
2894
|
}, 8, ["modelValue", "header"]);
|
|
2895
2895
|
};
|
|
2896
2896
|
}
|
|
2897
|
-
}),
|
|
2897
|
+
}), Es = /* @__PURE__ */ G({
|
|
2898
2898
|
__name: "InventoryTransferIngredientTable",
|
|
2899
2899
|
props: {
|
|
2900
2900
|
modelValue: { default: [] },
|
|
@@ -2902,10 +2902,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2902
2902
|
},
|
|
2903
2903
|
emits: ["update:modelValue"],
|
|
2904
2904
|
setup(k) {
|
|
2905
|
-
const { t:
|
|
2905
|
+
const { t: y } = Oe(), e = gt(k, "modelValue"), v = [
|
|
2906
2906
|
{
|
|
2907
2907
|
id: "Code",
|
|
2908
|
-
header: () =>
|
|
2908
|
+
header: () => y("inventory.transfer.form.items.table.Code"),
|
|
2909
2909
|
accessorKey: "code",
|
|
2910
2910
|
size: 200,
|
|
2911
2911
|
cell(t) {
|
|
@@ -2931,7 +2931,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2931
2931
|
},
|
|
2932
2932
|
{
|
|
2933
2933
|
id: "Name",
|
|
2934
|
-
header: () =>
|
|
2934
|
+
header: () => y("inventory.transfer.form.items.table.Name"),
|
|
2935
2935
|
minSize: 300,
|
|
2936
2936
|
cell(t) {
|
|
2937
2937
|
const d = t.row.original;
|
|
@@ -2956,11 +2956,11 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2956
2956
|
},
|
|
2957
2957
|
{
|
|
2958
2958
|
id: "Amount",
|
|
2959
|
-
header: () =>
|
|
2959
|
+
header: () => y("inventory.transfer.form.items.table.Amount"),
|
|
2960
2960
|
minSize: 200,
|
|
2961
2961
|
cell(t) {
|
|
2962
2962
|
const d = t.row.original, u = t.row.index;
|
|
2963
|
-
return B(
|
|
2963
|
+
return B(fn, {
|
|
2964
2964
|
style: {
|
|
2965
2965
|
flex: "1 1 0%"
|
|
2966
2966
|
},
|
|
@@ -2983,7 +2983,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
2983
2983
|
...e.value.slice(u + 1)
|
|
2984
2984
|
];
|
|
2985
2985
|
},
|
|
2986
|
-
rules: [
|
|
2986
|
+
rules: [vn(+gn({ amount: 1, precision: 0 }))],
|
|
2987
2987
|
applyDefaultRules: !0
|
|
2988
2988
|
});
|
|
2989
2989
|
},
|
|
@@ -3022,28 +3022,28 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3022
3022
|
"column-defs": v,
|
|
3023
3023
|
"row-data": e.value,
|
|
3024
3024
|
"row-key": (l) => l.sku._id,
|
|
3025
|
-
"empty-text": _(
|
|
3025
|
+
"empty-text": _(y)("inventory.transfer.form.items.table.empty"),
|
|
3026
3026
|
pagination: !1,
|
|
3027
3027
|
"virtual-scroll": { enabled: !0, itemSize: 48 }
|
|
3028
3028
|
}, null, 8, ["row-data", "row-key", "empty-text"]);
|
|
3029
3029
|
};
|
|
3030
3030
|
}
|
|
3031
|
-
}),
|
|
3031
|
+
}), Ns = { class: "flex items-center gap-8 mb-8" }, Ds = /* @__PURE__ */ G({
|
|
3032
3032
|
__name: "InventoryTransferOutTable",
|
|
3033
3033
|
setup(k) {
|
|
3034
|
-
const
|
|
3034
|
+
const y = M([]), e = De(), v = M(!1), t = M(!1), d = ae(), u = pe();
|
|
3035
3035
|
_e(async () => {
|
|
3036
3036
|
const c = /* @__PURE__ */ new Date(), m = /* @__PURE__ */ new Date();
|
|
3037
3037
|
m.setDate(m.getDate() - 30), v.value = !0;
|
|
3038
3038
|
try {
|
|
3039
|
-
const
|
|
3039
|
+
const b = await e.getInventoryTransferHistory(
|
|
3040
3040
|
u.currentLocationDBName,
|
|
3041
3041
|
m,
|
|
3042
3042
|
c
|
|
3043
3043
|
);
|
|
3044
|
-
|
|
3045
|
-
} catch (
|
|
3046
|
-
console.error("Error fetching inventory transfer history:",
|
|
3044
|
+
y.value = b;
|
|
3045
|
+
} catch (b) {
|
|
3046
|
+
console.error("Error fetching inventory transfer history:", b);
|
|
3047
3047
|
} finally {
|
|
3048
3048
|
v.value = !1;
|
|
3049
3049
|
}
|
|
@@ -3140,10 +3140,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3140
3140
|
{ class: "overflow-auto" },
|
|
3141
3141
|
B("ul", { class: "list-disc pl-5" }, [
|
|
3142
3142
|
m == null ? void 0 : m.map(
|
|
3143
|
-
(
|
|
3143
|
+
(b) => B(
|
|
3144
3144
|
"li",
|
|
3145
3145
|
{ class: "fm-typo-en-body-sm-400" },
|
|
3146
|
-
`[${
|
|
3146
|
+
`[${b == null ? void 0 : b.itemId}] ${b == null ? void 0 : b.itemName}: ${b == null ? void 0 : b.quantity} ${(b == null ? void 0 : b.uomName) ?? "N/A"}`
|
|
3147
3147
|
)
|
|
3148
3148
|
)
|
|
3149
3149
|
])
|
|
@@ -3153,11 +3153,11 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3153
3153
|
}
|
|
3154
3154
|
], A = M();
|
|
3155
3155
|
return (c, m) => {
|
|
3156
|
-
const
|
|
3156
|
+
const b = V("FmButton"), p = V("FmTable");
|
|
3157
3157
|
return S(), E(Z, null, [
|
|
3158
|
-
s("div",
|
|
3158
|
+
s("div", Ns, [
|
|
3159
3159
|
m[1] || (m[1] = s("span", null, "Last 30 Days:", -1)),
|
|
3160
|
-
I(
|
|
3160
|
+
I(b, {
|
|
3161
3161
|
"prepend-icon": "sync",
|
|
3162
3162
|
variant: "secondary",
|
|
3163
3163
|
label: "Sync",
|
|
@@ -3171,26 +3171,26 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3171
3171
|
I(p, {
|
|
3172
3172
|
modelValue: A.value,
|
|
3173
3173
|
"onUpdate:modelValue": m[0] || (m[0] = (C) => A.value = C),
|
|
3174
|
-
"row-data":
|
|
3174
|
+
"row-data": y.value,
|
|
3175
3175
|
"column-defs": h,
|
|
3176
3176
|
loading: v.value
|
|
3177
3177
|
}, null, 8, ["modelValue", "row-data", "loading"])
|
|
3178
3178
|
], 64);
|
|
3179
3179
|
};
|
|
3180
3180
|
}
|
|
3181
|
-
}),
|
|
3181
|
+
}), Ls = { class: "flex flex-col gap-8" }, Ts = {
|
|
3182
3182
|
key: 0,
|
|
3183
3183
|
class: "flex flex-col gap-4"
|
|
3184
|
-
},
|
|
3184
|
+
}, Rs = { class: "flex gap-2" }, Ms = {
|
|
3185
3185
|
key: 1,
|
|
3186
3186
|
class: "flex items-center my-2 border rounded-lg p-2"
|
|
3187
|
-
},
|
|
3187
|
+
}, Os = { class: "flex flex-col" }, Us = { class: "font-medium" }, zs = { class: "text-xs text-gray-400" }, js = { class: "text-xs text-gray-400" }, Ps = { class: "flex my-4" }, Ks = { class: "flex" }, Hs = {
|
|
3188
3188
|
key: 1,
|
|
3189
3189
|
class: "flex flex-col"
|
|
3190
|
-
},
|
|
3190
|
+
}, qs = {
|
|
3191
3191
|
key: 1,
|
|
3192
3192
|
class: "flex flex-col"
|
|
3193
|
-
},
|
|
3193
|
+
}, Xs = /* @__PURE__ */ G({
|
|
3194
3194
|
__name: "InventoryTransfer",
|
|
3195
3195
|
props: {
|
|
3196
3196
|
nsLocations: {},
|
|
@@ -3198,7 +3198,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3198
3198
|
currentLocationSubsidiary: {}
|
|
3199
3199
|
},
|
|
3200
3200
|
setup(k) {
|
|
3201
|
-
const
|
|
3201
|
+
const y = Be(), e = ve(), v = Ne(), t = De(), d = ae(), { t: u } = Oe(), l = M([]), h = [{ label: "Transfer Out" }, { label: "History" }], A = M(h[0]), c = M(!1), m = M(null), b = M(null), p = k, C = z(() => {
|
|
3202
3202
|
const g = e.currentLocationSetting, i = e.configuredLocations;
|
|
3203
3203
|
return p.nsLocations.map((n) => ({
|
|
3204
3204
|
label: n.name,
|
|
@@ -3228,7 +3228,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3228
3228
|
const [i, n] = g.split(":").map(Number), r = m.value ?? /* @__PURE__ */ new Date();
|
|
3229
3229
|
r.setHours(i, n), m.value = new Date(r);
|
|
3230
3230
|
}
|
|
3231
|
-
}), o = z(() => F.value && w.value &&
|
|
3231
|
+
}), o = z(() => F.value && w.value && b.value && l.value.length > 0 && !c.value);
|
|
3232
3232
|
async function a() {
|
|
3233
3233
|
if (o.value) {
|
|
3234
3234
|
if (!p.currentLocationSetting) {
|
|
@@ -3243,10 +3243,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3243
3243
|
const g = {
|
|
3244
3244
|
items: l.value,
|
|
3245
3245
|
date: m.value.toISOString(),
|
|
3246
|
-
netsuiteLocationId:
|
|
3247
|
-
netsuiteLocationName:
|
|
3246
|
+
netsuiteLocationId: b.value.netsuiteId,
|
|
3247
|
+
netsuiteLocationName: b.value.name
|
|
3248
3248
|
}, i = `${p.currentLocationSetting.type}_${p.currentLocationSetting.id}`;
|
|
3249
|
-
await t.createInventoryTransfer(i, g), l.value = [], m.value = null,
|
|
3249
|
+
await t.createInventoryTransfer(i, g), l.value = [], m.value = null, b.value = null, d.open({
|
|
3250
3250
|
message: "Inventort transfer created successfully",
|
|
3251
3251
|
type: "success"
|
|
3252
3252
|
});
|
|
@@ -3272,10 +3272,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3272
3272
|
var P;
|
|
3273
3273
|
return (P = l.value) == null ? void 0 : P.find((X) => X.sku._id === T.value._id);
|
|
3274
3274
|
}).map((T) => T.value);
|
|
3275
|
-
|
|
3275
|
+
y.open({
|
|
3276
3276
|
title: u("inventory.transfer.form.items.selectItem"),
|
|
3277
3277
|
closeButton: !0,
|
|
3278
|
-
contentComponent:
|
|
3278
|
+
contentComponent: cn,
|
|
3279
3279
|
contentComponentProps: {
|
|
3280
3280
|
modelValue: x,
|
|
3281
3281
|
items: r,
|
|
@@ -3308,14 +3308,14 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3308
3308
|
}
|
|
3309
3309
|
return (g, i) => {
|
|
3310
3310
|
const n = V("FmButtonGroup"), r = V("FmLabel"), x = V("FmField"), T = V("FmSimpleDatePicker"), P = V("FmTimePicker"), X = V("FmSelect"), R = V("FmIcon"), j = V("FmButton");
|
|
3311
|
-
return S(), E("div",
|
|
3311
|
+
return S(), E("div", Ls, [
|
|
3312
3312
|
I(n, {
|
|
3313
3313
|
modelValue: A.value,
|
|
3314
3314
|
"onUpdate:modelValue": i[0] || (i[0] = (q) => A.value = q),
|
|
3315
3315
|
items: h
|
|
3316
3316
|
}, null, 8, ["modelValue"]),
|
|
3317
3317
|
A.value.label === "Transfer Out" ? (S(), E(Z, { key: 0 }, [
|
|
3318
|
-
_(e).inventoryTransferOutEnabled ? (S(), E("div",
|
|
3318
|
+
_(e).inventoryTransferOutEnabled ? (S(), E("div", Ts, [
|
|
3319
3319
|
I(r, { class: "fm-typo-en-body-md-600" }, {
|
|
3320
3320
|
default: O(() => i[6] || (i[6] = [
|
|
3321
3321
|
re("Type")
|
|
@@ -3374,17 +3374,17 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3374
3374
|
])),
|
|
3375
3375
|
_: 1
|
|
3376
3376
|
}),
|
|
3377
|
-
s("div",
|
|
3378
|
-
|
|
3377
|
+
s("div", Rs, [
|
|
3378
|
+
b.value ? K("", !0) : (S(), H(X, {
|
|
3379
3379
|
key: 0,
|
|
3380
3380
|
class: "my-4 w-full",
|
|
3381
|
-
modelValue:
|
|
3382
|
-
"onUpdate:modelValue": i[3] || (i[3] = (q) =>
|
|
3381
|
+
modelValue: b.value,
|
|
3382
|
+
"onUpdate:modelValue": i[3] || (i[3] = (q) => b.value = q),
|
|
3383
3383
|
searchable: "",
|
|
3384
3384
|
searchTarget: "label",
|
|
3385
3385
|
items: C.value
|
|
3386
3386
|
}, null, 8, ["modelValue", "items"])),
|
|
3387
|
-
|
|
3387
|
+
b.value ? (S(), E("div", Ms, [
|
|
3388
3388
|
I(R, {
|
|
3389
3389
|
name: "cloud",
|
|
3390
3390
|
color: "neutral-gray-400",
|
|
@@ -3392,20 +3392,20 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3392
3392
|
class: "mr-2",
|
|
3393
3393
|
outline: ""
|
|
3394
3394
|
}),
|
|
3395
|
-
s("div",
|
|
3396
|
-
s("span",
|
|
3397
|
-
s("span",
|
|
3398
|
-
s("span",
|
|
3395
|
+
s("div", Os, [
|
|
3396
|
+
s("span", Us, D(b.value.name), 1),
|
|
3397
|
+
s("span", zs, "ID: " + D(b.value.netsuiteId), 1),
|
|
3398
|
+
s("span", js, "Subsidiary: " + D(b.value.subsidiaryName), 1)
|
|
3399
3399
|
]),
|
|
3400
3400
|
I(j, {
|
|
3401
3401
|
class: "ml-2",
|
|
3402
3402
|
variant: "secondary",
|
|
3403
3403
|
label: "Clear",
|
|
3404
|
-
onClick: i[4] || (i[4] = (q) =>
|
|
3404
|
+
onClick: i[4] || (i[4] = (q) => b.value = null)
|
|
3405
3405
|
})
|
|
3406
3406
|
])) : K("", !0)
|
|
3407
3407
|
]),
|
|
3408
|
-
s("div",
|
|
3408
|
+
s("div", Ps, [
|
|
3409
3409
|
I(j, {
|
|
3410
3410
|
class: "ml-auto",
|
|
3411
3411
|
variant: "secondary",
|
|
@@ -3414,11 +3414,11 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3414
3414
|
onClick: f
|
|
3415
3415
|
})
|
|
3416
3416
|
]),
|
|
3417
|
-
I(
|
|
3417
|
+
I(Es, {
|
|
3418
3418
|
modelValue: l.value,
|
|
3419
3419
|
"onUpdate:modelValue": i[5] || (i[5] = (q) => l.value = q)
|
|
3420
3420
|
}, null, 8, ["modelValue"]),
|
|
3421
|
-
s("div",
|
|
3421
|
+
s("div", Ks, [
|
|
3422
3422
|
I(j, {
|
|
3423
3423
|
class: "ml-auto mt-4",
|
|
3424
3424
|
variant: "primary",
|
|
@@ -3429,7 +3429,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3429
3429
|
onClick: a
|
|
3430
3430
|
}, null, 8, ["disabled", "loading"])
|
|
3431
3431
|
])
|
|
3432
|
-
])) : (S(), E("div",
|
|
3432
|
+
])) : (S(), E("div", Hs, [
|
|
3433
3433
|
I(r, { class: "fm-typo-en-body-md-600" }, {
|
|
3434
3434
|
default: O(() => i[12] || (i[12] = [
|
|
3435
3435
|
re(" Feature is not enabled. Please contact your administrator. ")
|
|
@@ -3438,29 +3438,29 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3438
3438
|
})
|
|
3439
3439
|
]))
|
|
3440
3440
|
], 64)) : K("", !0),
|
|
3441
|
-
A.value.label === "History" ? (S(), E("div",
|
|
3442
|
-
I(
|
|
3441
|
+
A.value.label === "History" ? (S(), E("div", qs, [
|
|
3442
|
+
I(Ds)
|
|
3443
3443
|
])) : K("", !0)
|
|
3444
3444
|
]);
|
|
3445
3445
|
};
|
|
3446
3446
|
}
|
|
3447
|
-
}),
|
|
3447
|
+
}), $s = { class: "flex flex-col gap-8" }, Ys = {
|
|
3448
3448
|
key: 0,
|
|
3449
3449
|
class: "flex flex-col gap-4"
|
|
3450
|
-
},
|
|
3450
|
+
}, Qs = { class: "flex flex-col gap-2" }, Gs = { class: "flex flex-col gap-2 pl-6" }, Js = { key: 1 }, Zs = { class: "flex justify-end" }, Ws = { class: "flex flex-col gap-4" }, ea = { class: "ml-auto flex gap-4" }, ta = /* @__PURE__ */ G({
|
|
3451
3451
|
__name: "TransferOrder",
|
|
3452
3452
|
props: {
|
|
3453
3453
|
currentLocationSetting: {}
|
|
3454
3454
|
},
|
|
3455
3455
|
setup(k) {
|
|
3456
|
-
const
|
|
3456
|
+
const y = fe(), e = De(), v = ae(), t = M(!1), d = k, u = M([]), l = M(/* @__PURE__ */ new Set()), h = M(!1), A = M(ce.enum[1]), c = [
|
|
3457
3457
|
{ value: ce.enum[1], label: "Version 1" },
|
|
3458
3458
|
{
|
|
3459
3459
|
value: ce.enum[2],
|
|
3460
3460
|
label: "Version 2",
|
|
3461
3461
|
subLabel: "Supports duplicate skus"
|
|
3462
3462
|
}
|
|
3463
|
-
], m = z(() => u.value.length > 0 && l.value.size === u.value.length),
|
|
3463
|
+
], m = z(() => u.value.length > 0 && l.value.size === u.value.length), b = z(() => l.value.size > 0 && l.value.size < u.value.length);
|
|
3464
3464
|
function p(g) {
|
|
3465
3465
|
g ? l.value = new Set(u.value.map((i) => i.id)) : l.value = /* @__PURE__ */ new Set();
|
|
3466
3466
|
}
|
|
@@ -3523,7 +3523,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3523
3523
|
return (g, i) => {
|
|
3524
3524
|
var X;
|
|
3525
3525
|
const n = V("FmButton"), r = V("FmCheckbox"), x = V("FmRadio"), T = V("FmRadioGroup"), P = V("FmDialog");
|
|
3526
|
-
return S(), E("div",
|
|
3526
|
+
return S(), E("div", $s, [
|
|
3527
3527
|
s("span", null, "Current date and time: " + D((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
3528
3528
|
I(n, {
|
|
3529
3529
|
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
@@ -3532,38 +3532,38 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3532
3532
|
disabled: t.value,
|
|
3533
3533
|
loading: t.value
|
|
3534
3534
|
}, null, 8, ["disabled", "loading"]),
|
|
3535
|
-
u.value.length > 0 ? (S(), E("div",
|
|
3535
|
+
u.value.length > 0 ? (S(), E("div", Ys, [
|
|
3536
3536
|
i[3] || (i[3] = s("p", null, "Transfer Order NetSuite ID not match with existing orders", -1)),
|
|
3537
|
-
s("div",
|
|
3538
|
-
(X = _(
|
|
3537
|
+
s("div", Qs, [
|
|
3538
|
+
(X = _(y).sessionUser.value) != null && X.role.isAdmin ? (S(), H(r, {
|
|
3539
3539
|
key: 0,
|
|
3540
3540
|
label: "Select All",
|
|
3541
3541
|
value: "all",
|
|
3542
3542
|
modelValue: m.value,
|
|
3543
|
-
indeterminate:
|
|
3543
|
+
indeterminate: b.value,
|
|
3544
3544
|
disabled: t.value,
|
|
3545
3545
|
"onUpdate:modelValue": p
|
|
3546
3546
|
}, null, 8, ["modelValue", "indeterminate", "disabled"])) : K("", !0),
|
|
3547
|
-
s("ul",
|
|
3547
|
+
s("ul", Gs, [
|
|
3548
3548
|
(S(!0), E(Z, null, se(u.value, (R) => {
|
|
3549
3549
|
var j;
|
|
3550
3550
|
return S(), E("li", {
|
|
3551
3551
|
key: R.id,
|
|
3552
3552
|
class: "flex items-center"
|
|
3553
3553
|
}, [
|
|
3554
|
-
(j = _(
|
|
3554
|
+
(j = _(y).sessionUser.value) != null && j.role.isAdmin ? (S(), H(r, {
|
|
3555
3555
|
key: 0,
|
|
3556
3556
|
label: `${R.id} (${R.tranid})`,
|
|
3557
3557
|
value: R.id,
|
|
3558
3558
|
modelValue: F(R.id),
|
|
3559
3559
|
disabled: t.value,
|
|
3560
3560
|
"onUpdate:modelValue": (q) => C(R.id, q)
|
|
3561
|
-
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (S(), E("span",
|
|
3561
|
+
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (S(), E("span", Js, D(R.id) + " (" + D(R.tranid) + ")", 1))
|
|
3562
3562
|
]);
|
|
3563
3563
|
}), 128))
|
|
3564
3564
|
])
|
|
3565
3565
|
]),
|
|
3566
|
-
s("div",
|
|
3566
|
+
s("div", Zs, [
|
|
3567
3567
|
I(et, null, {
|
|
3568
3568
|
default: O(() => [
|
|
3569
3569
|
u.value.length > 0 ? (S(), H(n, {
|
|
@@ -3588,7 +3588,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3588
3588
|
s("span", { class: "fm-typo-en-heading-lg-700" }, "Select Sync Version", -1)
|
|
3589
3589
|
])),
|
|
3590
3590
|
"dialog-footer": O(() => [
|
|
3591
|
-
s("div",
|
|
3591
|
+
s("div", ea, [
|
|
3592
3592
|
I(n, {
|
|
3593
3593
|
label: "Not now",
|
|
3594
3594
|
variant: "secondary",
|
|
@@ -3602,7 +3602,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3602
3602
|
])
|
|
3603
3603
|
]),
|
|
3604
3604
|
default: O(() => [
|
|
3605
|
-
s("div",
|
|
3605
|
+
s("div", Ws, [
|
|
3606
3606
|
s("p", null, " Choose which order version to use for syncing " + D(l.value.size) + " selected transfer orders: ", 1),
|
|
3607
3607
|
I(T, {
|
|
3608
3608
|
modelValue: A.value,
|
|
@@ -3625,23 +3625,23 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3625
3625
|
]);
|
|
3626
3626
|
};
|
|
3627
3627
|
}
|
|
3628
|
-
}),
|
|
3628
|
+
}), na = { class: "flex flex-col gap-8" }, oa = {
|
|
3629
3629
|
key: 0,
|
|
3630
3630
|
class: "flex flex-col gap-4"
|
|
3631
|
-
},
|
|
3631
|
+
}, sa = { class: "flex flex-col gap-2" }, aa = { class: "flex flex-col gap-2 pl-6" }, la = { key: 1 }, ia = { class: "flex justify-end" }, ra = { class: "flex flex-col gap-4" }, ua = { class: "ml-auto flex gap-4" }, da = /* @__PURE__ */ G({
|
|
3632
3632
|
__name: "PurchaseOrder",
|
|
3633
3633
|
props: {
|
|
3634
3634
|
currentLocationSetting: {}
|
|
3635
3635
|
},
|
|
3636
3636
|
setup(k) {
|
|
3637
|
-
const
|
|
3637
|
+
const y = fe(), e = De(), v = ae(), t = M(!1), d = k, u = M([]), l = M(/* @__PURE__ */ new Set()), h = M(!1), A = M(ce.enum[1]), c = [
|
|
3638
3638
|
{ value: ce.enum[1], label: "Version 1" },
|
|
3639
3639
|
{
|
|
3640
3640
|
value: ce.enum[2],
|
|
3641
3641
|
label: "Version 2",
|
|
3642
3642
|
subLabel: "Supports duplicate skus"
|
|
3643
3643
|
}
|
|
3644
|
-
], m = z(() => u.value.length > 0 && l.value.size === u.value.length),
|
|
3644
|
+
], m = z(() => u.value.length > 0 && l.value.size === u.value.length), b = z(() => l.value.size > 0 && l.value.size < u.value.length);
|
|
3645
3645
|
function p(g) {
|
|
3646
3646
|
g ? l.value = new Set(u.value.map((i) => i.id)) : l.value = /* @__PURE__ */ new Set();
|
|
3647
3647
|
}
|
|
@@ -3704,7 +3704,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3704
3704
|
return (g, i) => {
|
|
3705
3705
|
var X;
|
|
3706
3706
|
const n = V("FmButton"), r = V("FmCheckbox"), x = V("FmRadio"), T = V("FmRadioGroup"), P = V("FmDialog");
|
|
3707
|
-
return S(), E("div",
|
|
3707
|
+
return S(), E("div", na, [
|
|
3708
3708
|
s("span", null, "Current date and time: " + D((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
3709
3709
|
I(n, {
|
|
3710
3710
|
label: "Check Unsync Purchase Order (Last 2 months)",
|
|
@@ -3713,40 +3713,40 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3713
3713
|
disabled: t.value,
|
|
3714
3714
|
loading: t.value
|
|
3715
3715
|
}, null, 8, ["disabled", "loading"]),
|
|
3716
|
-
u.value.length > 0 ? (S(), E("div",
|
|
3716
|
+
u.value.length > 0 ? (S(), E("div", oa, [
|
|
3717
3717
|
i[3] || (i[3] = s("p", null, "Purchase Order NetSuite ID not match with existing orders", -1)),
|
|
3718
|
-
s("div",
|
|
3719
|
-
(X = _(
|
|
3718
|
+
s("div", sa, [
|
|
3719
|
+
(X = _(y).sessionUser.value) != null && X.role.isAdmin ? (S(), H(r, {
|
|
3720
3720
|
key: 0,
|
|
3721
3721
|
label: "Select All",
|
|
3722
3722
|
value: "all",
|
|
3723
3723
|
modelValue: m.value,
|
|
3724
|
-
indeterminate:
|
|
3724
|
+
indeterminate: b.value,
|
|
3725
3725
|
disabled: t.value,
|
|
3726
3726
|
"onUpdate:modelValue": p
|
|
3727
3727
|
}, null, 8, ["modelValue", "indeterminate", "disabled"])) : K("", !0),
|
|
3728
|
-
s("ul",
|
|
3728
|
+
s("ul", aa, [
|
|
3729
3729
|
(S(!0), E(Z, null, se(u.value, (R) => {
|
|
3730
3730
|
var j;
|
|
3731
3731
|
return S(), E("li", {
|
|
3732
3732
|
key: R.id,
|
|
3733
3733
|
class: "flex items-center"
|
|
3734
3734
|
}, [
|
|
3735
|
-
(j = _(
|
|
3735
|
+
(j = _(y).sessionUser.value) != null && j.role.isAdmin ? (S(), H(r, {
|
|
3736
3736
|
key: 0,
|
|
3737
3737
|
label: `${R.id} (${R.tranid}) [${R.entity.id} (${R.entity.name})]`,
|
|
3738
3738
|
value: R.id,
|
|
3739
3739
|
modelValue: F(R.id),
|
|
3740
3740
|
disabled: t.value,
|
|
3741
3741
|
"onUpdate:modelValue": (q) => C(R.id, q)
|
|
3742
|
-
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (S(), E("div",
|
|
3742
|
+
}, null, 8, ["label", "value", "modelValue", "disabled", "onUpdate:modelValue"])) : (S(), E("div", la, [
|
|
3743
3743
|
s("span", null, D(R.id) + " (" + D(R.tranid) + ") [" + D(R.entity.id) + " (" + D(R.entity.name) + ")] ", 1)
|
|
3744
3744
|
]))
|
|
3745
3745
|
]);
|
|
3746
3746
|
}), 128))
|
|
3747
3747
|
])
|
|
3748
3748
|
]),
|
|
3749
|
-
s("div",
|
|
3749
|
+
s("div", ia, [
|
|
3750
3750
|
I(et, null, {
|
|
3751
3751
|
default: O(() => [
|
|
3752
3752
|
u.value.length > 0 ? (S(), H(n, {
|
|
@@ -3771,7 +3771,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3771
3771
|
s("span", { class: "fm-typo-en-heading-lg-700" }, "Select Sync Version", -1)
|
|
3772
3772
|
])),
|
|
3773
3773
|
"dialog-footer": O(() => [
|
|
3774
|
-
s("div",
|
|
3774
|
+
s("div", ua, [
|
|
3775
3775
|
I(n, {
|
|
3776
3776
|
label: "Not now",
|
|
3777
3777
|
variant: "secondary",
|
|
@@ -3785,7 +3785,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3785
3785
|
])
|
|
3786
3786
|
]),
|
|
3787
3787
|
default: O(() => [
|
|
3788
|
-
s("div",
|
|
3788
|
+
s("div", ra, [
|
|
3789
3789
|
s("p", null, " Choose which order version to use for syncing " + D(l.value.size) + " selected purchase orders: ", 1),
|
|
3790
3790
|
I(T, {
|
|
3791
3791
|
modelValue: A.value,
|
|
@@ -3808,7 +3808,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3808
3808
|
]);
|
|
3809
3809
|
};
|
|
3810
3810
|
}
|
|
3811
|
-
}),
|
|
3811
|
+
}), ca = { class: "flex flex-col gap-8 w-full" }, ma = { class: "flex gap-4 justify-between" }, pa = { 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" }, fa = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, va = { key: 0 }, ga = { class: "flex gap-8 items-center justify-start" }, ya = /* @__PURE__ */ G({
|
|
3812
3812
|
__name: "NetSuiteSideSheet",
|
|
3813
3813
|
props: {
|
|
3814
3814
|
nsLocations: {},
|
|
@@ -3816,9 +3816,9 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3816
3816
|
loading: { type: Boolean }
|
|
3817
3817
|
},
|
|
3818
3818
|
emits: ["update:show"],
|
|
3819
|
-
setup(k, { emit:
|
|
3819
|
+
setup(k, { emit: y }) {
|
|
3820
3820
|
var F;
|
|
3821
|
-
const e = fe(), v = ve(), t = k, d = we(t, "show"), { t: u } = oe(), l =
|
|
3821
|
+
const e = fe(), v = ve(), t = k, d = we(t, "show"), { t: u } = oe(), l = y, h = pe(), A = ((F = h._currentLocation) == null ? void 0 : F.type) || "", c = [
|
|
3822
3822
|
{
|
|
3823
3823
|
label: "Inventory Transfer (Out)",
|
|
3824
3824
|
value: "inventoryTransfer"
|
|
@@ -3834,8 +3834,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3834
3834
|
value: "purchaseOrder"
|
|
3835
3835
|
/* PURCHASE_ORDER */
|
|
3836
3836
|
}
|
|
3837
|
-
], m = M(c[0].value),
|
|
3838
|
-
(w) => w.subsidiaryId ===
|
|
3837
|
+
], m = M(c[0].value), b = z(() => v.currentLocationSubsidiary()), p = z(() => v.currentLocationSetting), C = z(() => t.nsLocations.filter(
|
|
3838
|
+
(w) => w.subsidiaryId === b.value.id || w.netsuiteId === b.value.id
|
|
3839
3839
|
));
|
|
3840
3840
|
return (w, o) => {
|
|
3841
3841
|
var n;
|
|
@@ -3850,24 +3850,24 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3850
3850
|
}, he({
|
|
3851
3851
|
default: O(() => [
|
|
3852
3852
|
_(v).isCurrentLocationBindedToNetSuite ? (S(), E(Z, { key: 1 }, [
|
|
3853
|
-
m.value === "inventoryTransfer" ? (S(), H(
|
|
3853
|
+
m.value === "inventoryTransfer" ? (S(), H(Xs, {
|
|
3854
3854
|
key: 0,
|
|
3855
3855
|
currentLocationSetting: p.value,
|
|
3856
3856
|
nsLocations: C.value,
|
|
3857
|
-
currentLocationSubsidiary:
|
|
3857
|
+
currentLocationSubsidiary: b.value
|
|
3858
3858
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : K("", !0),
|
|
3859
|
-
m.value === "transferOrder" ? (S(), H(
|
|
3859
|
+
m.value === "transferOrder" ? (S(), H(ta, {
|
|
3860
3860
|
key: 1,
|
|
3861
3861
|
currentLocationSetting: p.value
|
|
3862
3862
|
}, null, 8, ["currentLocationSetting"])) : K("", !0),
|
|
3863
|
-
m.value === "purchaseOrder" ? (S(), H(
|
|
3863
|
+
m.value === "purchaseOrder" ? (S(), H(da, {
|
|
3864
3864
|
key: 2,
|
|
3865
3865
|
currentLocationSetting: p.value
|
|
3866
3866
|
}, null, 8, ["currentLocationSetting"])) : K("", !0)
|
|
3867
|
-
], 64)) : (S(), E("div",
|
|
3867
|
+
], 64)) : (S(), E("div", va, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
3868
3868
|
]),
|
|
3869
3869
|
"side-sheet-footer": O(() => [
|
|
3870
|
-
s("div",
|
|
3870
|
+
s("div", ga, [
|
|
3871
3871
|
I(g, {
|
|
3872
3872
|
variant: "tertiary",
|
|
3873
3873
|
label: _(u)("common.close"),
|
|
@@ -3882,15 +3882,15 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3882
3882
|
fn: O(() => {
|
|
3883
3883
|
var r;
|
|
3884
3884
|
return [
|
|
3885
|
-
s("div",
|
|
3886
|
-
s("div",
|
|
3885
|
+
s("div", ca, [
|
|
3886
|
+
s("div", ma, [
|
|
3887
3887
|
o[3] || (o[3] = s("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
3888
|
-
s("div",
|
|
3888
|
+
s("div", pa, [
|
|
3889
3889
|
I(a, {
|
|
3890
3890
|
name: _(A),
|
|
3891
3891
|
size: "sm"
|
|
3892
3892
|
}, null, 8, ["name"]),
|
|
3893
|
-
s("div",
|
|
3893
|
+
s("div", fa, D((r = _(h)._currentLocation) == null ? void 0 : r.name), 1)
|
|
3894
3894
|
])
|
|
3895
3895
|
]),
|
|
3896
3896
|
I(f, {
|
|
@@ -3906,19 +3906,19 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3906
3906
|
]), 1032, ["modelValue"]);
|
|
3907
3907
|
};
|
|
3908
3908
|
}
|
|
3909
|
-
}),
|
|
3909
|
+
}), ba = { class: "flex justify-center" }, Aa = ["src"], ha = { class: "flex flex-col items-center gap-2" }, xa = { class: "text-lg font-bold" }, Ia = { class: "text-fm-color-neutral-gray-300" }, Sa = /* @__PURE__ */ G({
|
|
3910
3910
|
__name: "NetSuite",
|
|
3911
3911
|
setup(k) {
|
|
3912
|
-
const
|
|
3912
|
+
const y = ve(), e = ae(), v = M(!1), t = M(!1);
|
|
3913
3913
|
async function d() {
|
|
3914
3914
|
t.value = !0;
|
|
3915
3915
|
}
|
|
3916
3916
|
const u = M([]);
|
|
3917
3917
|
Ht(async () => {
|
|
3918
|
-
if (
|
|
3918
|
+
if (y.isReady && y.isEnabled && !y.isBusinessLocation) {
|
|
3919
3919
|
v.value = !0;
|
|
3920
3920
|
try {
|
|
3921
|
-
const h = await
|
|
3921
|
+
const h = await y.getNetSuiteLocationOptions();
|
|
3922
3922
|
u.value = h;
|
|
3923
3923
|
} catch {
|
|
3924
3924
|
e.open({
|
|
@@ -3933,7 +3933,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3933
3933
|
const { t: l } = oe();
|
|
3934
3934
|
return (h, A) => {
|
|
3935
3935
|
const c = V("FmCardSection"), m = V("FmCard");
|
|
3936
|
-
return _(
|
|
3936
|
+
return _(y).isEnabled ? (S(), E(Z, { key: 0 }, [
|
|
3937
3937
|
I(m, {
|
|
3938
3938
|
class: ne({
|
|
3939
3939
|
"w-full": !0,
|
|
@@ -3942,20 +3942,20 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3942
3942
|
"cursor-pointer": !0,
|
|
3943
3943
|
"hover:border-fm-color-primary": !0
|
|
3944
3944
|
}),
|
|
3945
|
-
onClick: A[0] || (A[0] = (
|
|
3945
|
+
onClick: A[0] || (A[0] = (b) => d())
|
|
3946
3946
|
}, {
|
|
3947
3947
|
default: O(() => [
|
|
3948
3948
|
I(c, null, {
|
|
3949
3949
|
default: O(() => [
|
|
3950
|
-
s("div",
|
|
3950
|
+
s("div", ba, [
|
|
3951
3951
|
s("img", {
|
|
3952
|
-
src: _(
|
|
3952
|
+
src: _(Oo),
|
|
3953
3953
|
alt: "NetSuite"
|
|
3954
|
-
}, null, 8,
|
|
3954
|
+
}, null, 8, Aa)
|
|
3955
3955
|
]),
|
|
3956
|
-
s("div",
|
|
3957
|
-
s("div",
|
|
3958
|
-
s("div",
|
|
3956
|
+
s("div", ha, [
|
|
3957
|
+
s("div", xa, D(_(l)("inventory.integration.netsuite.title")), 1),
|
|
3958
|
+
s("div", Ia, D(_(l)("inventory.integration.netsuite.description")), 1)
|
|
3959
3959
|
])
|
|
3960
3960
|
]),
|
|
3961
3961
|
_: 1
|
|
@@ -3963,44 +3963,44 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
3963
3963
|
]),
|
|
3964
3964
|
_: 1
|
|
3965
3965
|
}),
|
|
3966
|
-
_(
|
|
3966
|
+
_(y).state.setting ? (S(), H(Fe, {
|
|
3967
3967
|
key: 0,
|
|
3968
3968
|
to: "body"
|
|
3969
3969
|
}, [
|
|
3970
|
-
_(
|
|
3970
|
+
_(y).isBusinessLocation ? (S(), H(Vs, {
|
|
3971
3971
|
key: 0,
|
|
3972
3972
|
show: t.value,
|
|
3973
3973
|
"onUpdate:show": [
|
|
3974
|
-
A[1] || (A[1] = (
|
|
3975
|
-
A[2] || (A[2] = (
|
|
3974
|
+
A[1] || (A[1] = (b) => t.value = b),
|
|
3975
|
+
A[2] || (A[2] = (b) => t.value = b)
|
|
3976
3976
|
],
|
|
3977
3977
|
loading: v.value,
|
|
3978
|
-
"onUpdate:loading": A[3] || (A[3] = (
|
|
3979
|
-
}, null, 8, ["show", "loading"])) : (S(), H(
|
|
3978
|
+
"onUpdate:loading": A[3] || (A[3] = (b) => v.value = b)
|
|
3979
|
+
}, null, 8, ["show", "loading"])) : (S(), H(ya, {
|
|
3980
3980
|
key: 1,
|
|
3981
|
-
setting: _(
|
|
3982
|
-
"onUpdate:setting": A[4] || (A[4] = (
|
|
3981
|
+
setting: _(y).state.setting,
|
|
3982
|
+
"onUpdate:setting": A[4] || (A[4] = (b) => _(y).state.setting = b),
|
|
3983
3983
|
nsLocations: u.value,
|
|
3984
|
-
"onUpdate:nsLocations": A[5] || (A[5] = (
|
|
3984
|
+
"onUpdate:nsLocations": A[5] || (A[5] = (b) => u.value = b),
|
|
3985
3985
|
show: t.value,
|
|
3986
3986
|
"onUpdate:show": [
|
|
3987
|
-
A[6] || (A[6] = (
|
|
3988
|
-
A[7] || (A[7] = (
|
|
3987
|
+
A[6] || (A[6] = (b) => t.value = b),
|
|
3988
|
+
A[7] || (A[7] = (b) => t.value = b)
|
|
3989
3989
|
],
|
|
3990
3990
|
loading: v.value,
|
|
3991
|
-
"onUpdate:loading": A[8] || (A[8] = (
|
|
3991
|
+
"onUpdate:loading": A[8] || (A[8] = (b) => v.value = b)
|
|
3992
3992
|
}, null, 8, ["setting", "nsLocations", "show", "loading"]))
|
|
3993
3993
|
])) : K("", !0)
|
|
3994
3994
|
], 64)) : K("", !0);
|
|
3995
3995
|
};
|
|
3996
3996
|
}
|
|
3997
|
-
}),
|
|
3997
|
+
}), wa = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5 mb-3" }, Ca = { class: "flex items-center" }, ka = { class: "text-lg font-bold flex-grow" }, _a = {
|
|
3998
3998
|
key: 0,
|
|
3999
3999
|
class: "table-auto w-full"
|
|
4000
|
-
},
|
|
4000
|
+
}, Fa = { class: "text-left" }, Ba = { class: "min-w-64" }, Va = { class: "flex flex-col" }, Ea = { class: "fm-typo-en-body-md-400" }, Na = {
|
|
4001
4001
|
key: 0,
|
|
4002
4002
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
4003
|
-
},
|
|
4003
|
+
}, Da = { class: "w-1" }, pt = /* @__PURE__ */ G({
|
|
4004
4004
|
__name: "ApplyProductCodemax",
|
|
4005
4005
|
props: {
|
|
4006
4006
|
isAddon: {
|
|
@@ -4025,8 +4025,8 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4025
4025
|
}
|
|
4026
4026
|
},
|
|
4027
4027
|
emits: ["update:bindings"],
|
|
4028
|
-
setup(k, { emit:
|
|
4029
|
-
const e = k, v =
|
|
4028
|
+
setup(k, { emit: y }) {
|
|
4029
|
+
const e = k, v = y, t = Be(), d = z(() => e.isAddon ? "Addons" : "Products"), u = z(() => e.isAddon ? [] : e.categories), l = z(
|
|
4030
4030
|
() => Bt(u.value, e.variants, e.menus)
|
|
4031
4031
|
), h = z(() => {
|
|
4032
4032
|
if (e.isAddon)
|
|
@@ -4077,7 +4077,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4077
4077
|
);
|
|
4078
4078
|
i && (i.unit = g);
|
|
4079
4079
|
}
|
|
4080
|
-
function
|
|
4080
|
+
function b() {
|
|
4081
4081
|
return l.value.map((a) => ({
|
|
4082
4082
|
label: a.name,
|
|
4083
4083
|
sublabel: "Category",
|
|
@@ -4188,7 +4188,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4188
4188
|
}
|
|
4189
4189
|
function w() {
|
|
4190
4190
|
let a;
|
|
4191
|
-
e.isAddon ? a = p() : a =
|
|
4191
|
+
e.isAddon ? a = p() : a = b();
|
|
4192
4192
|
const f = {
|
|
4193
4193
|
modelValue: a
|
|
4194
4194
|
};
|
|
@@ -4208,9 +4208,9 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4208
4208
|
const { t: o } = oe();
|
|
4209
4209
|
return (a, f) => {
|
|
4210
4210
|
const g = V("FmButton"), i = V("FmTextField");
|
|
4211
|
-
return S(), E("div",
|
|
4212
|
-
s("div",
|
|
4213
|
-
s("div",
|
|
4211
|
+
return S(), E("div", wa, [
|
|
4212
|
+
s("div", Ca, [
|
|
4213
|
+
s("div", ka, D(k.isAddon ? _(o)("inventory.integration.apply.addons") : _(o)("inventory.integration.apply.products")), 1),
|
|
4214
4214
|
I(g, {
|
|
4215
4215
|
type: "button",
|
|
4216
4216
|
variant: "plain",
|
|
@@ -4221,10 +4221,10 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4221
4221
|
}, null, 8, ["label"])
|
|
4222
4222
|
]),
|
|
4223
4223
|
s("div", null, [
|
|
4224
|
-
h.value.length > 0 ? (S(), E("table",
|
|
4224
|
+
h.value.length > 0 ? (S(), E("table", _a, [
|
|
4225
4225
|
s("thead", null, [
|
|
4226
|
-
s("tr",
|
|
4227
|
-
s("th",
|
|
4226
|
+
s("tr", Fa, [
|
|
4227
|
+
s("th", Ba, D(_(o)("inventory.integration.apply.name")), 1),
|
|
4228
4228
|
s("th", null, D(_(o)("inventory.integration.apply.code")), 1),
|
|
4229
4229
|
s("th", null, D(_(o)("inventory.common.unit")), 1),
|
|
4230
4230
|
f[1] || (f[1] = s("th", { class: "w-1" }, " ", -1))
|
|
@@ -4235,9 +4235,9 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4235
4235
|
f[2] || (f[2] = s("tr", { class: "block h-8" }, null, -1)),
|
|
4236
4236
|
s("tr", null, [
|
|
4237
4237
|
s("td", null, [
|
|
4238
|
-
s("div",
|
|
4239
|
-
s("div",
|
|
4240
|
-
n.variantName ? (S(), E("div",
|
|
4238
|
+
s("div", Va, [
|
|
4239
|
+
s("div", Ea, D(n.menuCode) + " " + D(n.name), 1),
|
|
4240
|
+
n.variantName ? (S(), E("div", Na, D(n.variantName), 1)) : K("", !0)
|
|
4241
4241
|
])
|
|
4242
4242
|
]),
|
|
4243
4243
|
s("td", null, [
|
|
@@ -4262,7 +4262,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4262
4262
|
]
|
|
4263
4263
|
}, null, 8, ["model-value", "onUpdate:modelValue", "rules"])
|
|
4264
4264
|
]),
|
|
4265
|
-
s("td",
|
|
4265
|
+
s("td", Da, [
|
|
4266
4266
|
I(g, {
|
|
4267
4267
|
type: "button",
|
|
4268
4268
|
variant: "tertiary",
|
|
@@ -4281,7 +4281,7 @@ const lo = { class: "flex flex-col gap-24" }, io = { class: "fm-typo-en-body-md-
|
|
|
4281
4281
|
};
|
|
4282
4282
|
}
|
|
4283
4283
|
});
|
|
4284
|
-
var
|
|
4284
|
+
var La = N.enum([
|
|
4285
4285
|
"401",
|
|
4286
4286
|
"701",
|
|
4287
4287
|
"702",
|
|
@@ -4318,7 +4318,7 @@ var Da = N.enum([
|
|
|
4318
4318
|
"9500",
|
|
4319
4319
|
"9501",
|
|
4320
4320
|
"9502"
|
|
4321
|
-
]),
|
|
4321
|
+
]), Ta = {
|
|
4322
4322
|
401: "Unauthorized access",
|
|
4323
4323
|
701: "Access token does not match with server record",
|
|
4324
4324
|
702: "Access token has expired",
|
|
@@ -4356,11 +4356,11 @@ var Da = N.enum([
|
|
|
4356
4356
|
9501: "'modifierName' in 'invoiceModifiers' list (Tier 3) is a mandatory field.",
|
|
4357
4357
|
9502: "'quantity' in 'invoiceModifiers' list (Tier 3) is a mandatory field and cannot be 0."
|
|
4358
4358
|
};
|
|
4359
|
-
function
|
|
4360
|
-
const
|
|
4361
|
-
return
|
|
4359
|
+
function Ra(k) {
|
|
4360
|
+
const y = La.safeParse(k);
|
|
4361
|
+
return y.success ? Ta[y.data] : void 0;
|
|
4362
4362
|
}
|
|
4363
|
-
var
|
|
4363
|
+
var Ma = N.enum([
|
|
4364
4364
|
"NEW",
|
|
4365
4365
|
"VOID",
|
|
4366
4366
|
"SUPERSEDE",
|
|
@@ -4371,9 +4371,13 @@ var Ra = N.enum([
|
|
|
4371
4371
|
N.literal(2),
|
|
4372
4372
|
N.literal(3)
|
|
4373
4373
|
]), st = N.object({
|
|
4374
|
+
/** M, string(100) — Tax Code */
|
|
4374
4375
|
taxCode: N.string(),
|
|
4376
|
+
/** M, string(200) — Tax Name */
|
|
4375
4377
|
taxName: N.string(),
|
|
4378
|
+
/** M, decimal(10,2) — Tax Amount */
|
|
4376
4379
|
taxAmount: N.number(),
|
|
4380
|
+
/** M, decimal(10,2) — Tax percentage */
|
|
4377
4381
|
taxPercentage: N.number()
|
|
4378
4382
|
}), Ot = N.lazy(
|
|
4379
4383
|
() => N.object({
|
|
@@ -4395,55 +4399,86 @@ var Ra = N.enum([
|
|
|
4395
4399
|
taxDetails: N.array(st),
|
|
4396
4400
|
invoiceModifiers: N.array(Ot)
|
|
4397
4401
|
})
|
|
4398
|
-
),
|
|
4399
|
-
/**
|
|
4402
|
+
), Oa = N.object({
|
|
4403
|
+
/** O, string(100) — Item Parent Code; the transform does not send it today */
|
|
4400
4404
|
itemParentCode: N.string().optional(),
|
|
4405
|
+
/** M, string(100) — Item Code */
|
|
4401
4406
|
itemCode: N.string(),
|
|
4407
|
+
/** M, string(500) — Item Name */
|
|
4402
4408
|
itemName: N.string(),
|
|
4409
|
+
/** M, decimal(10,3) — Quantity */
|
|
4403
4410
|
quantity: N.number(),
|
|
4411
|
+
/** M, string(50) — Unit of Measurement */
|
|
4404
4412
|
uom: N.string(),
|
|
4413
|
+
/** M, decimal(10,2) — Unit Price (before discount) */
|
|
4405
4414
|
unitPrice: N.number(),
|
|
4415
|
+
/** M, decimal(10,2) — Total Price (before discount) */
|
|
4406
4416
|
totalPrice: N.number(),
|
|
4417
|
+
/** M, decimal(10,2) — Item discount amount */
|
|
4407
4418
|
discountAmount: N.number(),
|
|
4419
|
+
/** M, int(1) — '0' for percentage discount, '1' for monetary discount */
|
|
4408
4420
|
discountType: ot,
|
|
4421
|
+
/** M, decimal(10,2) — Item discount value. Either in percentage or monetary based on DiscountType */
|
|
4409
4422
|
discountValue: N.number(),
|
|
4423
|
+
/** M, decimal(10,2) — Unit net price (after discount) */
|
|
4410
4424
|
unitNetPrice: N.number(),
|
|
4425
|
+
/** M, decimal(10,2) — Total net price (after discount) */
|
|
4411
4426
|
totalNetPrice: N.number(),
|
|
4412
|
-
/** yyyy-mm-dd HH:mm:ss (MYT) */
|
|
4427
|
+
/** M, string — Order date time in yyyy-mm-dd HH:mm:ss (MYT) */
|
|
4413
4428
|
orderDate: N.string(),
|
|
4414
|
-
/**
|
|
4429
|
+
/** M, int(5) — The index of the item in the invoice */
|
|
4415
4430
|
orderLine: N.number(),
|
|
4431
|
+
/** M, int(5) — Item type indicator: 0 = Item, 1 = Combo Header, 2 = Combo Item, 3 = Modifier */
|
|
4416
4432
|
lineMode: Mt,
|
|
4433
|
+
/** M, List — Tax/Service Charge */
|
|
4417
4434
|
taxDetails: N.array(st),
|
|
4435
|
+
/** M, List — Tier 1 Modifier(s) of item */
|
|
4418
4436
|
invoiceModifiers: N.array(Ot)
|
|
4419
|
-
}),
|
|
4437
|
+
}), Ua = N.object({
|
|
4438
|
+
/** M, string(100) — Payment code */
|
|
4420
4439
|
paymentCode: N.string(),
|
|
4440
|
+
/** M, string(200) — Payment Name */
|
|
4421
4441
|
paymentName: N.string(),
|
|
4442
|
+
/** M, decimal(10,2) — Amount paid */
|
|
4422
4443
|
AmountPaid: N.number()
|
|
4423
4444
|
});
|
|
4424
4445
|
N.object({
|
|
4446
|
+
/** M, string(100) — Invoice number */
|
|
4425
4447
|
invoiceNo: N.string(),
|
|
4426
|
-
/** Receipt/
|
|
4448
|
+
/** O, string(50) — Receipt number/Queue number displayed on the receipt (sent as "" except refunds, which carry the original bill id) */
|
|
4427
4449
|
refNo: N.string(),
|
|
4428
|
-
|
|
4450
|
+
/** 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 */
|
|
4451
|
+
invoiceStatus: Ma,
|
|
4452
|
+
/** O, string(50) — Table number */
|
|
4429
4453
|
tableNo: N.string(),
|
|
4454
|
+
/** O, int(10) — Total of pax */
|
|
4430
4455
|
pax: N.union([N.string(), N.number()]),
|
|
4456
|
+
/** M, string(50) — Source or mode of the transaction (POS define): 'DINE-IN', 'TAKEAWAY', 'GRAB', 'FOODPANDA', etc */
|
|
4431
4457
|
salesChannel: N.string(),
|
|
4432
|
-
/** yyyy-mm-dd (MYT) */
|
|
4458
|
+
/** M, string — Business date in yyyy-mm-dd (MYT) */
|
|
4433
4459
|
businessDate: N.string(),
|
|
4434
|
-
/** yyyy-mm-dd HH:mm:ss (MYT) */
|
|
4460
|
+
/** M, string — Invoice created date time in yyyy-mm-dd HH:mm:ss (MYT) */
|
|
4435
4461
|
invoiceCreatedDate: N.string(),
|
|
4436
|
-
/** yyyy-mm-dd HH:mm:ss (MYT) */
|
|
4462
|
+
/** M, string — Invoice payment date time in yyyy-mm-dd HH:mm:ss (MYT) */
|
|
4437
4463
|
invoicePaymentDate: N.string(),
|
|
4464
|
+
/** M, string(100) — Bill Discount Name */
|
|
4438
4465
|
invoiceDiscountName: N.string(),
|
|
4466
|
+
/** M, decimal(10,2) — Bill Discount Amount (always 0 here: bill-level discounts are allocated onto item lines) */
|
|
4439
4467
|
invoiceDiscountAmount: N.number(),
|
|
4468
|
+
/** M, int(1) — '0' for percentage discount, '1' for monetary discount */
|
|
4440
4469
|
invoiceDiscountType: ot,
|
|
4470
|
+
/** M, decimal(10,2) — The value of the discount. Either in percentage or monetary based on InvoiceDiscountType */
|
|
4441
4471
|
invoiceDiscountValue: N.number(),
|
|
4472
|
+
/** M, decimal(10,2) — Rounding adjustment */
|
|
4442
4473
|
roundingAdj: N.number(),
|
|
4474
|
+
/** M, decimal(10,2) — Grand total */
|
|
4443
4475
|
grandTotal: N.number(),
|
|
4476
|
+
/** M, List — Tax/Service Charge */
|
|
4444
4477
|
taxDetails: N.array(st),
|
|
4445
|
-
|
|
4446
|
-
|
|
4478
|
+
/** M, List — Item(s) of invoice */
|
|
4479
|
+
invoiceItems: N.array(Oa),
|
|
4480
|
+
/** M, List — Payment(s) of invoice */
|
|
4481
|
+
invoicePayments: N.array(Ua)
|
|
4447
4482
|
});
|
|
4448
4483
|
N.object({
|
|
4449
4484
|
billId: N.string(),
|
|
@@ -4493,29 +4528,29 @@ N.object({
|
|
|
4493
4528
|
payload: N.record(N.unknown()).nullable().optional(),
|
|
4494
4529
|
response: N.record(N.unknown()).nullable().optional()
|
|
4495
4530
|
});
|
|
4496
|
-
const
|
|
4531
|
+
const za = { class: "flex items-center gap-2 mb-3" }, ja = {
|
|
4497
4532
|
key: 0,
|
|
4498
4533
|
class: "mb-3"
|
|
4499
|
-
},
|
|
4534
|
+
}, Pa = { class: "max-h-[240px] overflow-y-auto flex flex-col gap-4" }, Ka = { class: "whitespace-nowrap" }, Ha = {
|
|
4500
4535
|
key: 0,
|
|
4501
4536
|
class: "whitespace-nowrap text-fm-color-neutral-gray-300"
|
|
4502
|
-
},
|
|
4537
|
+
}, qa = { class: "max-h-[60vh] overflow-auto" }, Xa = {
|
|
4503
4538
|
key: 1,
|
|
4504
4539
|
class: "text-fm-color-neutral-gray-300"
|
|
4505
|
-
},
|
|
4540
|
+
}, $a = { class: "flex flex-col gap-4" }, Ya = { class: "flex items-center gap-4" }, Qa = { class: "max-h-[60vh] overflow-auto" }, Ga = { class: "text-xs text-fm-color-neutral-gray-300 mb-8" }, Ja = { class: "flex items-center gap-4" }, Za = { class: "text-xs" }, Wa = {
|
|
4506
4541
|
key: 0,
|
|
4507
4542
|
class: "text-xs text-fm-color-neutral-gray-300 py-8"
|
|
4508
|
-
},
|
|
4543
|
+
}, el = { class: "flex flex-col gap-16 max-h-[60vh] overflow-auto" }, tl = { key: 0 }, nl = { key: 1 }, ol = { key: 2 }, He = 3, sl = /* @__PURE__ */ G({
|
|
4509
4544
|
__name: "CodemaxSyncStatusDialog",
|
|
4510
4545
|
props: {
|
|
4511
4546
|
show: { type: Boolean }
|
|
4512
4547
|
},
|
|
4513
4548
|
emits: ["update:show"],
|
|
4514
|
-
setup(k, { emit:
|
|
4515
|
-
const e = k, v =
|
|
4549
|
+
setup(k, { emit: y }) {
|
|
4550
|
+
const e = k, v = y, t = ae(), d = en(), u = fe(), l = z(() => {
|
|
4516
4551
|
var U;
|
|
4517
4552
|
return ((U = u.sessionUser.value) == null ? void 0 : U.role.isAdmin) ?? !1;
|
|
4518
|
-
}), h = M(!1), A = M([]), c = M([]), m = M(!1),
|
|
4553
|
+
}), h = M(!1), A = M([]), c = M([]), m = M(!1), b = z(
|
|
4519
4554
|
() => m.value ? c.value : c.value.slice(0, He)
|
|
4520
4555
|
), p = z(
|
|
4521
4556
|
() => m.value ? 0 : c.value.slice(He).filter((U) => U.status === "failed").length
|
|
@@ -4559,7 +4594,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4559
4594
|
return w.value.has(U);
|
|
4560
4595
|
}
|
|
4561
4596
|
function f(U) {
|
|
4562
|
-
const { resultCode: L, errorMessage: Q } = U, J = /^Request failed with status code (\d+)$/.exec(Q ?? ""), Y = L ?? (J == null ? void 0 : J[1]) ?? null, ie =
|
|
4597
|
+
const { resultCode: L, errorMessage: Q } = U, J = /^Request failed with status code (\d+)$/.exec(Q ?? ""), Y = L ?? (J == null ? void 0 : J[1]) ?? null, ie = Ra(Y), be = ie ?? Q ?? U.message;
|
|
4563
4598
|
return { code: Y, message: be, detail: ie && Q && !J && Q !== ie ? Q : null };
|
|
4564
4599
|
}
|
|
4565
4600
|
const g = {
|
|
@@ -4794,14 +4829,14 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4794
4829
|
})
|
|
4795
4830
|
]),
|
|
4796
4831
|
default: O(() => [
|
|
4797
|
-
s("div",
|
|
4832
|
+
s("div", za, [
|
|
4798
4833
|
I(Q, {
|
|
4799
4834
|
"model-value": C.value,
|
|
4800
4835
|
"onUpdate:modelValue": L[0] || (L[0] = ($) => C.value = $),
|
|
4801
4836
|
placeholder: "Search",
|
|
4802
4837
|
class: "w-[260px]"
|
|
4803
4838
|
}, null, 8, ["model-value"]),
|
|
4804
|
-
I(
|
|
4839
|
+
I(yn, {
|
|
4805
4840
|
modelValue: F.value,
|
|
4806
4841
|
"onUpdate:modelValue": L[1] || (L[1] = ($) => F.value = $)
|
|
4807
4842
|
}, null, 8, ["modelValue"]),
|
|
@@ -4818,18 +4853,18 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4818
4853
|
onClick: L[2] || (L[2] = ($) => it(Array.from(w.value)))
|
|
4819
4854
|
}, null, 8, ["label", "loading"])) : K("", !0)
|
|
4820
4855
|
]),
|
|
4821
|
-
c.value.length ? (S(), E("div",
|
|
4856
|
+
c.value.length ? (S(), E("div", ja, [
|
|
4822
4857
|
L[13] || (L[13] = s("div", { class: "font-bold mb-4" }, "Daily sync runs", -1)),
|
|
4823
|
-
s("div",
|
|
4824
|
-
(S(!0), E(Z, null, se(
|
|
4858
|
+
s("div", Pa, [
|
|
4859
|
+
(S(!0), E(Z, null, se(b.value, ($) => (S(), E("div", {
|
|
4825
4860
|
key: `${$.billId}-${$.createdAt}`,
|
|
4826
4861
|
class: "flex items-center gap-8 text-xs"
|
|
4827
4862
|
}, [
|
|
4828
|
-
s("div",
|
|
4863
|
+
s("div", Ka, D(new Date($.createdAt).toLocaleString()), 1),
|
|
4829
4864
|
s("div", {
|
|
4830
4865
|
class: ne($.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300")
|
|
4831
4866
|
}, D($.message), 3),
|
|
4832
|
-
Te($) ? (S(), E("div",
|
|
4867
|
+
Te($) ? (S(), E("div", Ha, " by " + D(Te($)), 1)) : K("", !0),
|
|
4833
4868
|
zt($) > 0 ? (S(), H(J, {
|
|
4834
4869
|
key: 1,
|
|
4835
4870
|
label: "Details",
|
|
@@ -4878,11 +4913,11 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4878
4913
|
})
|
|
4879
4914
|
]),
|
|
4880
4915
|
default: O(() => [
|
|
4881
|
-
s("div",
|
|
4916
|
+
s("div", qa, [
|
|
4882
4917
|
q.value ? (S(), H(Ve, {
|
|
4883
4918
|
key: 0,
|
|
4884
4919
|
size: "md"
|
|
4885
|
-
})) : j.value.length === 0 ? (S(), E("div",
|
|
4920
|
+
})) : j.value.length === 0 ? (S(), E("div", Xa, " No sync logs for this bill. ")) : K("", !0),
|
|
4886
4921
|
(S(!0), E(Z, null, se(ee.value, ($) => (S(), E("div", {
|
|
4887
4922
|
key: $.key,
|
|
4888
4923
|
class: "border-b border-fm-color-neutral-gray-100"
|
|
@@ -4891,9 +4926,9 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4891
4926
|
key: Ie,
|
|
4892
4927
|
class: ne(["flex items-start justify-between gap-8 py-8", Ie > 0 ? "pl-16" : ""])
|
|
4893
4928
|
}, [
|
|
4894
|
-
s("div",
|
|
4929
|
+
s("div", $a, [
|
|
4895
4930
|
s("div", null, D(new Date(W.createdAt).toLocaleString()), 1),
|
|
4896
|
-
s("div",
|
|
4931
|
+
s("div", Ya, [
|
|
4897
4932
|
I(Ue, {
|
|
4898
4933
|
label: W.status,
|
|
4899
4934
|
variant: i(W.status),
|
|
@@ -4963,8 +4998,8 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4963
4998
|
default: O(() => {
|
|
4964
4999
|
var $;
|
|
4965
5000
|
return [
|
|
4966
|
-
s("div",
|
|
4967
|
-
s("div",
|
|
5001
|
+
s("div", Qa, [
|
|
5002
|
+
s("div", Ga, [
|
|
4968
5003
|
re(D(($ = me.value) == null ? void 0 : $.message) + " ", 1),
|
|
4969
5004
|
Te(me.value) ? (S(), E(Z, { key: 0 }, [
|
|
4970
5005
|
re(" · Triggered by " + D(Te(me.value)), 1)
|
|
@@ -4974,20 +5009,20 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
4974
5009
|
key: Ie,
|
|
4975
5010
|
class: "flex flex-col gap-4 py-8 border-b border-fm-color-neutral-gray-100"
|
|
4976
5011
|
}, [
|
|
4977
|
-
s("div",
|
|
5012
|
+
s("div", Ja, [
|
|
4978
5013
|
s("div", null, D(W.billSeq ?? "-"), 1),
|
|
4979
5014
|
I(Ue, {
|
|
4980
5015
|
label: W.status,
|
|
4981
5016
|
compact: ""
|
|
4982
5017
|
}, null, 8, ["label"])
|
|
4983
5018
|
]),
|
|
4984
|
-
s("div",
|
|
5019
|
+
s("div", Za, D(W.billId), 1),
|
|
4985
5020
|
lt(W) ? (S(), E("div", {
|
|
4986
5021
|
key: 0,
|
|
4987
5022
|
class: ne(`text-xs ${W.status === "failed" ? "text-red-500" : "text-fm-color-neutral-gray-300"}`)
|
|
4988
5023
|
}, D(lt(W)), 3)) : K("", !0)
|
|
4989
5024
|
]))), 128)),
|
|
4990
|
-
at.value > Le.value.length ? (S(), E("div",
|
|
5025
|
+
at.value > Le.value.length ? (S(), E("div", Wa, " Showing " + D(Le.value.length) + " of " + D(at.value) + " bills. ", 1)) : K("", !0)
|
|
4991
5026
|
])
|
|
4992
5027
|
];
|
|
4993
5028
|
}),
|
|
@@ -5016,22 +5051,22 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5016
5051
|
default: O(() => {
|
|
5017
5052
|
var $, W, Ie, ze, rt, ut;
|
|
5018
5053
|
return [
|
|
5019
|
-
s("div",
|
|
5020
|
-
le.value ? (S(), E("div",
|
|
5054
|
+
s("div", el, [
|
|
5055
|
+
le.value ? (S(), E("div", tl, [
|
|
5021
5056
|
L[14] || (L[14] = s("div", { class: "font-bold mb-4" }, "Log entry", -1)),
|
|
5022
5057
|
(S(), H(Pe, {
|
|
5023
5058
|
key: `${le.value.createdAt}-${le.value.stage}-log`,
|
|
5024
5059
|
value: r(le.value)
|
|
5025
5060
|
}, null, 8, ["value"]))
|
|
5026
5061
|
])) : K("", !0),
|
|
5027
|
-
($ = le.value) != null && $.payload ? (S(), E("div",
|
|
5062
|
+
($ = le.value) != null && $.payload ? (S(), E("div", nl, [
|
|
5028
5063
|
L[15] || (L[15] = s("div", { class: "font-bold mb-4" }, "Payload", -1)),
|
|
5029
5064
|
(S(), H(Pe, {
|
|
5030
5065
|
key: `${(W = le.value) == null ? void 0 : W.createdAt}-${(Ie = le.value) == null ? void 0 : Ie.stage}-payload`,
|
|
5031
5066
|
value: le.value.payload
|
|
5032
5067
|
}, null, 8, ["value"]))
|
|
5033
5068
|
])) : K("", !0),
|
|
5034
|
-
(ze = le.value) != null && ze.response ? (S(), E("div",
|
|
5069
|
+
(ze = le.value) != null && ze.response ? (S(), E("div", ol, [
|
|
5035
5070
|
L[16] || (L[16] = s("div", { class: "font-bold mb-4" }, "Response", -1)),
|
|
5036
5071
|
(S(), H(Pe, {
|
|
5037
5072
|
key: `${(rt = le.value) == null ? void 0 : rt.createdAt}-${(ut = le.value) == null ? void 0 : ut.stage}-response`,
|
|
@@ -5052,14 +5087,14 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5052
5087
|
{ field: "itemCode", header: "CodeMax Code", aliases: ["codemaxcode"], required: !0 },
|
|
5053
5088
|
{ field: "unit", header: "CodeMax Unit", aliases: ["codemaxunit"], required: !0 }
|
|
5054
5089
|
],
|
|
5055
|
-
buildBinding: ({ productId: k, combinationKey:
|
|
5090
|
+
buildBinding: ({ productId: k, combinationKey: y, values: e }) => ({
|
|
5056
5091
|
productId: k,
|
|
5057
|
-
combinationKey:
|
|
5092
|
+
combinationKey: y,
|
|
5058
5093
|
itemCode: e.itemCode ?? "",
|
|
5059
5094
|
unit: e.unit ?? ""
|
|
5060
5095
|
}),
|
|
5061
5096
|
readValues: (k) => ({ itemCode: k.itemCode, unit: k.unit })
|
|
5062
|
-
},
|
|
5097
|
+
}, al = { class: "flex flex-col gap-8 w-full" }, ll = { class: "flex items-center" }, il = /* @__PURE__ */ G({
|
|
5063
5098
|
__name: "ApplyProductDialogCodemax",
|
|
5064
5099
|
props: {
|
|
5065
5100
|
categories: { default: () => [] },
|
|
@@ -5071,8 +5106,8 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5071
5106
|
loading: { type: Boolean }
|
|
5072
5107
|
},
|
|
5073
5108
|
emits: ["update:setting", "update:show", "submit"],
|
|
5074
|
-
setup(k, { emit:
|
|
5075
|
-
const e = k, v =
|
|
5109
|
+
setup(k, { emit: y }) {
|
|
5110
|
+
const e = k, v = y, t = Ye(de(e.setting));
|
|
5076
5111
|
Ce([() => e.show], ([r]) => {
|
|
5077
5112
|
if (r)
|
|
5078
5113
|
for (const x of Object.keys(e.setting))
|
|
@@ -5091,7 +5126,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5091
5126
|
function c(r) {
|
|
5092
5127
|
t.bindings = [...h.value, ...r];
|
|
5093
5128
|
}
|
|
5094
|
-
const m = M(),
|
|
5129
|
+
const m = M(), b = Be(), p = ae(), C = fe();
|
|
5095
5130
|
function F() {
|
|
5096
5131
|
var x;
|
|
5097
5132
|
const { filename: r } = Dt(
|
|
@@ -5109,7 +5144,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5109
5144
|
});
|
|
5110
5145
|
}
|
|
5111
5146
|
function w() {
|
|
5112
|
-
|
|
5147
|
+
b.open({
|
|
5113
5148
|
title: n("inventory.integration.bindingImport.dialogTitle"),
|
|
5114
5149
|
contentComponent: Lt,
|
|
5115
5150
|
contentComponentProps: {
|
|
@@ -5146,7 +5181,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5146
5181
|
}).onTertiary(() => F());
|
|
5147
5182
|
}
|
|
5148
5183
|
function o(r) {
|
|
5149
|
-
|
|
5184
|
+
b.open({
|
|
5150
5185
|
title: n("inventory.integration.bindingImport.previewTitle"),
|
|
5151
5186
|
contentComponent: Tt,
|
|
5152
5187
|
contentComponentProps: { config: qe, result: r },
|
|
@@ -5192,8 +5227,8 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5192
5227
|
"max-width": 500
|
|
5193
5228
|
}, {
|
|
5194
5229
|
default: O(() => [
|
|
5195
|
-
s("div",
|
|
5196
|
-
s("div",
|
|
5230
|
+
s("div", al, [
|
|
5231
|
+
s("div", ll, [
|
|
5197
5232
|
I(T, { label: "Menu v4" }),
|
|
5198
5233
|
x[8] || (x[8] = s("div", { class: "flex-grow" }, null, -1)),
|
|
5199
5234
|
I(P, {
|
|
@@ -5250,7 +5285,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5250
5285
|
_: 1
|
|
5251
5286
|
}, 8, ["modelValue", "header"]),
|
|
5252
5287
|
(S(), H(Fe, { to: "body" }, [
|
|
5253
|
-
I(
|
|
5288
|
+
I(sl, {
|
|
5254
5289
|
show: f.value,
|
|
5255
5290
|
"onUpdate:show": x[7] || (x[7] = (j) => f.value = j)
|
|
5256
5291
|
}, null, 8, ["show"])
|
|
@@ -5258,7 +5293,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5258
5293
|
], 64);
|
|
5259
5294
|
};
|
|
5260
5295
|
}
|
|
5261
|
-
}),
|
|
5296
|
+
}), rl = /* @__PURE__ */ G({
|
|
5262
5297
|
__name: "CodemaxDialog",
|
|
5263
5298
|
props: {
|
|
5264
5299
|
setting: {},
|
|
@@ -5270,9 +5305,9 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5270
5305
|
groups: { default: () => [] }
|
|
5271
5306
|
},
|
|
5272
5307
|
emits: ["update:setting", "update:show", "submit"],
|
|
5273
|
-
setup(k, { emit:
|
|
5274
|
-
const e = k, v =
|
|
5275
|
-
return (t, d) => (S(), H(
|
|
5308
|
+
setup(k, { emit: y }) {
|
|
5309
|
+
const e = k, v = y;
|
|
5310
|
+
return (t, d) => (S(), H(il, {
|
|
5276
5311
|
setting: e.setting,
|
|
5277
5312
|
show: e.show,
|
|
5278
5313
|
loading: t.loading,
|
|
@@ -5285,18 +5320,18 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5285
5320
|
onSubmit: d[2] || (d[2] = (u) => v("submit"))
|
|
5286
5321
|
}, null, 8, ["setting", "show", "loading", "menus", "variants", "categories", "groups"]));
|
|
5287
5322
|
}
|
|
5288
|
-
}),
|
|
5323
|
+
}), ul = { key: 0 }, dl = { class: "flex justify-center" }, cl = ["src"], ml = { class: "flex flex-col items-center gap-2" }, pl = { class: "text-lg font-bold" }, fl = { class: "text-fm-color-neutral-gray-300" }, vl = {
|
|
5289
5324
|
key: 0,
|
|
5290
5325
|
class: "text-xs text-orange-500"
|
|
5291
|
-
},
|
|
5326
|
+
}, gl = /* @__PURE__ */ G({
|
|
5292
5327
|
__name: "Codemax",
|
|
5293
5328
|
setup(k) {
|
|
5294
|
-
const
|
|
5329
|
+
const y = pe(), e = tn(), v = fe(), t = ae(), d = M(!1), u = M(!1), { breakpoints: l } = Ge(), h = z(() => l.value.xs || l.value.sm), A = z(() => {
|
|
5295
5330
|
var p;
|
|
5296
5331
|
return (p = v.currentBusiness.value) == null ? void 0 : p.menuVersion;
|
|
5297
5332
|
}), c = z(() => A.value !== "v3");
|
|
5298
|
-
|
|
5299
|
-
if (
|
|
5333
|
+
y.watchLocation(async () => {
|
|
5334
|
+
if (y._currentLocation) {
|
|
5300
5335
|
d.value = !0;
|
|
5301
5336
|
try {
|
|
5302
5337
|
await e.init();
|
|
@@ -5312,24 +5347,24 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5312
5347
|
d.value = !0;
|
|
5313
5348
|
try {
|
|
5314
5349
|
await e.save(p), t.open({
|
|
5315
|
-
title:
|
|
5316
|
-
message:
|
|
5350
|
+
title: b("inventory.common.success"),
|
|
5351
|
+
message: b("inventory.integration.codemax.saveSuccess"),
|
|
5317
5352
|
type: "success"
|
|
5318
5353
|
}), u.value = !1;
|
|
5319
5354
|
} catch (C) {
|
|
5320
5355
|
t.open({
|
|
5321
|
-
title:
|
|
5322
|
-
message:
|
|
5356
|
+
title: b("inventory.common.error"),
|
|
5357
|
+
message: b("inventory.integration.codemax.saveError"),
|
|
5323
5358
|
type: "error"
|
|
5324
5359
|
}), console.error("Error at updating Codemax integration info", C);
|
|
5325
5360
|
} finally {
|
|
5326
5361
|
d.value = !1;
|
|
5327
5362
|
}
|
|
5328
5363
|
}
|
|
5329
|
-
const { t:
|
|
5364
|
+
const { t: b } = oe();
|
|
5330
5365
|
return (p, C) => {
|
|
5331
5366
|
const F = V("FmCardSection"), w = V("FmCard");
|
|
5332
|
-
return _(e).isEnabled ? (S(), E("div",
|
|
5367
|
+
return _(e).isEnabled ? (S(), E("div", ul, [
|
|
5333
5368
|
I(w, {
|
|
5334
5369
|
class: ne({
|
|
5335
5370
|
"w-full": h.value,
|
|
@@ -5344,16 +5379,16 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5344
5379
|
default: O(() => [
|
|
5345
5380
|
I(F, null, {
|
|
5346
5381
|
default: O(() => [
|
|
5347
|
-
s("div",
|
|
5382
|
+
s("div", dl, [
|
|
5348
5383
|
s("img", {
|
|
5349
5384
|
src: _(yt),
|
|
5350
5385
|
alt: "Codemax"
|
|
5351
|
-
}, null, 8,
|
|
5386
|
+
}, null, 8, cl)
|
|
5352
5387
|
]),
|
|
5353
|
-
s("div",
|
|
5354
|
-
s("div",
|
|
5355
|
-
s("div",
|
|
5356
|
-
c.value ? K("", !0) : (S(), E("div",
|
|
5388
|
+
s("div", ml, [
|
|
5389
|
+
s("div", pl, D(_(b)("inventory.integration.codemax.title")), 1),
|
|
5390
|
+
s("div", fl, D(_(b)("inventory.integration.codemax.description")), 1),
|
|
5391
|
+
c.value ? K("", !0) : (S(), E("div", vl, D(_(b)("inventory.integration.codemax.unsupported")), 1))
|
|
5357
5392
|
])
|
|
5358
5393
|
]),
|
|
5359
5394
|
_: 1
|
|
@@ -5362,7 +5397,7 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5362
5397
|
_: 1
|
|
5363
5398
|
}, 8, ["class"]),
|
|
5364
5399
|
(S(), H(Fe, { to: "body" }, [
|
|
5365
|
-
_(e).state.setting ? qt((S(), H(
|
|
5400
|
+
_(e).state.setting ? qt((S(), H(rl, {
|
|
5366
5401
|
key: 0,
|
|
5367
5402
|
menus: _(e).state.menu,
|
|
5368
5403
|
variants: _(e).state.variants,
|
|
@@ -5398,31 +5433,31 @@ const Ua = { class: "flex items-center gap-2 mb-3" }, za = {
|
|
|
5398
5433
|
"schemeFranchiseePrice",
|
|
5399
5434
|
"physicalSchemeTotalFranchiseePrice"
|
|
5400
5435
|
];
|
|
5401
|
-
async function
|
|
5436
|
+
async function yl(k, y, e) {
|
|
5402
5437
|
var u;
|
|
5403
|
-
const v = await
|
|
5438
|
+
const v = await bl(e), t = [], d = {};
|
|
5404
5439
|
for (const l in v) {
|
|
5405
5440
|
const h = v[l];
|
|
5406
5441
|
for (let A = 0; A < h.length; A++) {
|
|
5407
|
-
const c = h[A], m = c.itemCode,
|
|
5442
|
+
const c = h[A], m = c.itemCode, b = c.itemName, p = c.physicalQty, C = c.customCost;
|
|
5408
5443
|
if (m === "" || m === "undefined") {
|
|
5409
5444
|
t.push({
|
|
5410
5445
|
row: c.excelRow,
|
|
5411
5446
|
itemCode: m,
|
|
5412
|
-
itemName:
|
|
5447
|
+
itemName: b,
|
|
5413
5448
|
message: "Item code is empty or undefined"
|
|
5414
5449
|
});
|
|
5415
5450
|
continue;
|
|
5416
5451
|
}
|
|
5417
|
-
const F =
|
|
5452
|
+
const F = y.find((g) => g.code === m);
|
|
5418
5453
|
if (!F) {
|
|
5419
5454
|
t.push({
|
|
5420
5455
|
row: c.excelRow,
|
|
5421
5456
|
itemCode: m,
|
|
5422
|
-
itemName:
|
|
5457
|
+
itemName: b,
|
|
5423
5458
|
qty: p,
|
|
5424
5459
|
message: "Item not found in inventory"
|
|
5425
|
-
}), console.error(`${c.excelRow} Item not found: ${m} ${
|
|
5460
|
+
}), console.error(`${c.excelRow} Item not found: ${m} ${b} ${p}`);
|
|
5426
5461
|
continue;
|
|
5427
5462
|
}
|
|
5428
5463
|
let w = Number(c.totalPhysicalCustomCost);
|
|
@@ -5435,7 +5470,7 @@ async function gl(k, b, e) {
|
|
|
5435
5470
|
currency: "MYR"
|
|
5436
5471
|
}
|
|
5437
5472
|
};
|
|
5438
|
-
p != "0" && C == "0" && console.warn(`Item ${m} ${
|
|
5473
|
+
p != "0" && C == "0" && console.warn(`Item ${m} ${b} has 0 cost.`), d[u = F._id] ?? (d[u] = {
|
|
5439
5474
|
skuAdjustment: {
|
|
5440
5475
|
sku: F,
|
|
5441
5476
|
fromBalance: ge.fromNumber(0),
|
|
@@ -5466,24 +5501,24 @@ async function gl(k, b, e) {
|
|
|
5466
5501
|
rows: d
|
|
5467
5502
|
};
|
|
5468
5503
|
}
|
|
5469
|
-
async function
|
|
5470
|
-
const
|
|
5504
|
+
async function bl(k) {
|
|
5505
|
+
const y = await new Promise((d, u) => {
|
|
5471
5506
|
const l = new FileReader();
|
|
5472
5507
|
l.onload = (h) => d(h.target.result), l.onerror = u, l.readAsArrayBuffer(k);
|
|
5473
|
-
}), e = xt(
|
|
5508
|
+
}), e = xt(y, { type: "array" }), v = e.SheetNames, t = {};
|
|
5474
5509
|
for (const d of v) {
|
|
5475
|
-
const u = await
|
|
5510
|
+
const u = await Al(e.Sheets[d]);
|
|
5476
5511
|
t[d] = u;
|
|
5477
5512
|
}
|
|
5478
5513
|
return t;
|
|
5479
5514
|
}
|
|
5480
|
-
async function
|
|
5481
|
-
const
|
|
5515
|
+
async function Al(k) {
|
|
5516
|
+
const y = It.sheet_to_json(k, {
|
|
5482
5517
|
header: ft,
|
|
5483
5518
|
range: 12
|
|
5484
5519
|
}), e = [];
|
|
5485
|
-
for (let v = 0; v <
|
|
5486
|
-
const t =
|
|
5520
|
+
for (let v = 0; v < y.length; v++) {
|
|
5521
|
+
const t = y[v], d = {};
|
|
5487
5522
|
for (const u of ft)
|
|
5488
5523
|
d[u] = String(t[u]).trim();
|
|
5489
5524
|
e.push({
|
|
@@ -5494,23 +5529,23 @@ async function bl(k) {
|
|
|
5494
5529
|
}
|
|
5495
5530
|
return e;
|
|
5496
5531
|
}
|
|
5497
|
-
const
|
|
5532
|
+
const hl = { class: "flex flex-col gap-4" }, xl = { class: "flex flex-col" }, Il = {
|
|
5498
5533
|
key: 0,
|
|
5499
5534
|
class: "flex flex-col gap-4 my-5"
|
|
5500
|
-
},
|
|
5535
|
+
}, Sl = { class: "flex flex-col gap-8" }, wl = { class: "flex flex-col gap-8" }, Cl = {
|
|
5501
5536
|
class: /* @__PURE__ */ ne(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
5502
|
-
},
|
|
5537
|
+
}, kl = {
|
|
5503
5538
|
class: /* @__PURE__ */ ne(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
5504
|
-
},
|
|
5539
|
+
}, _l = { class: "line-clamp-2 text-ellipsis break-all" }, Fl = { class: "flex flex-col" }, Bl = { class: "font-medium" }, Vl = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, El = {
|
|
5505
5540
|
key: 0,
|
|
5506
5541
|
class: "rounded border-1 border-gray-200 p-2 flex items-center"
|
|
5507
|
-
},
|
|
5542
|
+
}, Nl = { class: "flex flex-col" }, Dl = { class: "font-medium" }, Ll = { class: "text-xs text-gray-400" }, Tl = { class: "text-xs text-gray-400" }, Rl = { class: "flex" }, Ml = { class: "flex" }, Ol = {
|
|
5508
5543
|
key: 1,
|
|
5509
5544
|
class: "flex flex-col gap-2"
|
|
5510
|
-
},
|
|
5545
|
+
}, Ul = /* @__PURE__ */ G({
|
|
5511
5546
|
__name: "XilnexOpeningImport",
|
|
5512
5547
|
setup(k) {
|
|
5513
|
-
const
|
|
5548
|
+
const y = nn(), e = ve(), v = Ne(), t = At(), d = ae(), u = pe(), l = z(() => [
|
|
5514
5549
|
{
|
|
5515
5550
|
value: "xilnex",
|
|
5516
5551
|
label: "Xilnex",
|
|
@@ -5525,7 +5560,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5525
5560
|
disabledReason: "Current location is not binded to NetSuite"
|
|
5526
5561
|
}
|
|
5527
5562
|
] : []
|
|
5528
|
-
]), h = M(l.value[0].value), { t: A } = Oe(), c = M(null), m = M(),
|
|
5563
|
+
]), h = M(l.value[0].value), { t: A } = Oe(), c = M(null), m = M(), b = M(""), p = M([]), C = M([]), F = [
|
|
5529
5564
|
{
|
|
5530
5565
|
id: "ingredient",
|
|
5531
5566
|
header: () => "Ingredient",
|
|
@@ -5623,7 +5658,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5623
5658
|
try {
|
|
5624
5659
|
let r = {};
|
|
5625
5660
|
h.value === "netsuite" && (r = await e.getItemAverageCosts());
|
|
5626
|
-
const { errors: x, rows: T } = await
|
|
5661
|
+
const { errors: x, rows: T } = await yl(
|
|
5627
5662
|
r,
|
|
5628
5663
|
v.skus,
|
|
5629
5664
|
c.value
|
|
@@ -5657,7 +5692,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5657
5692
|
}), d.open({
|
|
5658
5693
|
message: "Opening balance imported successfully",
|
|
5659
5694
|
type: "success"
|
|
5660
|
-
}), await
|
|
5695
|
+
}), await y.fetchClosingDocumentId();
|
|
5661
5696
|
} catch {
|
|
5662
5697
|
d.open({
|
|
5663
5698
|
message: "Error importing opening balance",
|
|
@@ -5682,8 +5717,8 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5682
5717
|
});
|
|
5683
5718
|
return (r, x) => {
|
|
5684
5719
|
const T = V("FmLabel"), P = V("FmField"), X = V("FmSimpleDatePicker"), R = V("FmButton"), j = V("FmIcon"), q = V("FmRadio"), xe = V("FmRadioGroup"), ye = V("FmTable");
|
|
5685
|
-
return S(), E("div",
|
|
5686
|
-
s("div",
|
|
5720
|
+
return S(), E("div", hl, [
|
|
5721
|
+
s("div", xl, [
|
|
5687
5722
|
I(T, { label: "Latest closing" })
|
|
5688
5723
|
]),
|
|
5689
5724
|
I(P, {
|
|
@@ -5691,11 +5726,11 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5691
5726
|
disabled: ""
|
|
5692
5727
|
}, {
|
|
5693
5728
|
default: O(() => [
|
|
5694
|
-
re(D(_(
|
|
5729
|
+
re(D(_(y).state.closingDocumentId ? `${_(Ze)(new Date(_(Qe)(_(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
5695
5730
|
]),
|
|
5696
5731
|
_: 1
|
|
5697
5732
|
}),
|
|
5698
|
-
_(
|
|
5733
|
+
_(y).state.closingDocumentId ? (S(), E("div", Ol, [
|
|
5699
5734
|
x[6] || (x[6] = s("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)),
|
|
5700
5735
|
_(u)._currentLocation ? (S(), E(Z, { key: 0 }, [
|
|
5701
5736
|
I(T, { label: "Location ID" }),
|
|
@@ -5709,7 +5744,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5709
5744
|
_: 1
|
|
5710
5745
|
})
|
|
5711
5746
|
], 64)) : K("", !0)
|
|
5712
|
-
])) : (S(), E("div",
|
|
5747
|
+
])) : (S(), E("div", Il, [
|
|
5713
5748
|
I(X, {
|
|
5714
5749
|
modelValue: i.value,
|
|
5715
5750
|
"onUpdate:modelValue": x[0] || (x[0] = (ee) => i.value = ee),
|
|
@@ -5729,7 +5764,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5729
5764
|
]),
|
|
5730
5765
|
_: 1
|
|
5731
5766
|
}, 8, ["modelValue"]),
|
|
5732
|
-
s("div",
|
|
5767
|
+
s("div", Sl, [
|
|
5733
5768
|
I(T, { label: "Stock take file" })
|
|
5734
5769
|
]),
|
|
5735
5770
|
I(Je, {
|
|
@@ -5741,10 +5776,10 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5741
5776
|
c.value ? {
|
|
5742
5777
|
name: "default",
|
|
5743
5778
|
fn: O(({ openFileDialog: ee }) => [
|
|
5744
|
-
s("div",
|
|
5745
|
-
s("div",
|
|
5746
|
-
s("div",
|
|
5747
|
-
s("div",
|
|
5779
|
+
s("div", wl, [
|
|
5780
|
+
s("div", Cl, [
|
|
5781
|
+
s("div", kl, [
|
|
5782
|
+
s("div", _l, D(c.value.name), 1),
|
|
5748
5783
|
I(R, {
|
|
5749
5784
|
label: _(A)("inventory.ingredient.import.replaceFile"),
|
|
5750
5785
|
variant: "secondary",
|
|
@@ -5773,11 +5808,11 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5773
5808
|
disabled: ee.disabled
|
|
5774
5809
|
}, {
|
|
5775
5810
|
label: O(() => [
|
|
5776
|
-
s("div",
|
|
5777
|
-
s("span",
|
|
5778
|
-
s("span",
|
|
5811
|
+
s("div", Fl, [
|
|
5812
|
+
s("span", Bl, D(ee.label), 1),
|
|
5813
|
+
s("span", Vl, D(ee.disabled ? ee.disabledReason : ee.subLabel), 1)
|
|
5779
5814
|
]),
|
|
5780
|
-
ee.value === "netsuite" && _(e).currentLocationSetting ? (S(), E("div",
|
|
5815
|
+
ee.value === "netsuite" && _(e).currentLocationSetting ? (S(), E("div", El, [
|
|
5781
5816
|
I(j, {
|
|
5782
5817
|
name: "cloud",
|
|
5783
5818
|
color: "neutral-gray-400",
|
|
@@ -5785,10 +5820,10 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5785
5820
|
class: "mr-2",
|
|
5786
5821
|
outline: !0
|
|
5787
5822
|
}),
|
|
5788
|
-
s("div",
|
|
5789
|
-
s("span",
|
|
5790
|
-
s("span",
|
|
5791
|
-
s("span",
|
|
5823
|
+
s("div", Nl, [
|
|
5824
|
+
s("span", Dl, D(_(e).currentLocationSetting.name), 1),
|
|
5825
|
+
s("span", Ll, "ID: " + D(_(e).currentLocationSetting.netSuiteId), 1),
|
|
5826
|
+
s("span", Tl, "Subsidiary: " + D(_(e).getSubsidiaryFullName(
|
|
5792
5827
|
_(e).currentLocationSetting.subsidiaryId
|
|
5793
5828
|
).fullName), 1)
|
|
5794
5829
|
])
|
|
@@ -5799,7 +5834,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5799
5834
|
]),
|
|
5800
5835
|
_: 1
|
|
5801
5836
|
}, 8, ["modelValue"]),
|
|
5802
|
-
s("div",
|
|
5837
|
+
s("div", Rl, [
|
|
5803
5838
|
I(R, {
|
|
5804
5839
|
class: "ml-auto mt-4",
|
|
5805
5840
|
variant: "secondary",
|
|
@@ -5818,7 +5853,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5818
5853
|
"row-data": C.value,
|
|
5819
5854
|
"column-defs": F,
|
|
5820
5855
|
"shrink-at": !1,
|
|
5821
|
-
"search-value":
|
|
5856
|
+
"search-value": b.value
|
|
5822
5857
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
5823
5858
|
], 64)) : K("", !0),
|
|
5824
5859
|
p.value.length > 0 ? (S(), E(Z, { key: 1 }, [
|
|
@@ -5828,8 +5863,8 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5828
5863
|
"column-defs": w
|
|
5829
5864
|
}, null, 8, ["row-data"])
|
|
5830
5865
|
], 64)) : K("", !0),
|
|
5831
|
-
s("div",
|
|
5832
|
-
C.value.length > 0 && !_(
|
|
5866
|
+
s("div", Ml, [
|
|
5867
|
+
C.value.length > 0 && !_(y).state.closingDocumentId ? (S(), H(R, {
|
|
5833
5868
|
key: 0,
|
|
5834
5869
|
class: "ml-auto mt-4",
|
|
5835
5870
|
"prepend-icon": "file_upload",
|
|
@@ -5843,19 +5878,19 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5843
5878
|
]);
|
|
5844
5879
|
};
|
|
5845
5880
|
}
|
|
5846
|
-
}),
|
|
5881
|
+
}), zl = { class: "flex flex-col gap-8 w-full" }, jl = { class: "flex gap-4 justify-between" }, Pl = { 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" }, Kl = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, Hl = { key: 0 }, ql = {
|
|
5847
5882
|
key: 1,
|
|
5848
5883
|
class: "flex flex-col gap-8 w-full"
|
|
5849
|
-
},
|
|
5884
|
+
}, Xl = { key: 1 }, $l = { class: "flex gap-8 items-center justify-start" }, Yl = /* @__PURE__ */ G({
|
|
5850
5885
|
__name: "XilnexSideSheet",
|
|
5851
5886
|
props: {
|
|
5852
5887
|
show: { type: Boolean },
|
|
5853
5888
|
loading: { type: Boolean }
|
|
5854
5889
|
},
|
|
5855
5890
|
emits: ["update:show"],
|
|
5856
|
-
setup(k, { emit:
|
|
5891
|
+
setup(k, { emit: y }) {
|
|
5857
5892
|
var m;
|
|
5858
|
-
const e = fe(), t = we(k, "show"), { t: d } = oe(), u =
|
|
5893
|
+
const e = fe(), t = we(k, "show"), { t: d } = oe(), u = y, l = pe(), h = ((m = l._currentLocation) == null ? void 0 : m.type) || "", A = [
|
|
5859
5894
|
{ label: Me(
|
|
5860
5895
|
"openingBalance"
|
|
5861
5896
|
/* OPENING_BALANCE */
|
|
@@ -5865,7 +5900,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5865
5900
|
/* TRANSFER_NOTE */
|
|
5866
5901
|
) }
|
|
5867
5902
|
], c = M(A[0]);
|
|
5868
|
-
return (
|
|
5903
|
+
return (b, p) => {
|
|
5869
5904
|
var a;
|
|
5870
5905
|
const C = V("FmIcon"), F = V("FmButtonGroup"), w = V("FmButton"), o = V("FmSideSheet");
|
|
5871
5906
|
return S(), H(o, {
|
|
@@ -5879,20 +5914,20 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5879
5914
|
default: O(() => {
|
|
5880
5915
|
var f;
|
|
5881
5916
|
return [
|
|
5882
|
-
(f = _(e).sessionUser.value) != null && f.role.isAdmin ? (S(), E("div",
|
|
5917
|
+
(f = _(e).sessionUser.value) != null && f.role.isAdmin ? (S(), E("div", ql, [
|
|
5883
5918
|
c.value.label === _(Me)(
|
|
5884
5919
|
"openingBalance"
|
|
5885
5920
|
/* OPENING_BALANCE */
|
|
5886
|
-
) ? (S(), H(
|
|
5921
|
+
) ? (S(), H(Ul, { key: 0 })) : K("", !0),
|
|
5887
5922
|
c.value.label === _(Me)(
|
|
5888
5923
|
"transferNote"
|
|
5889
5924
|
/* TRANSFER_NOTE */
|
|
5890
|
-
) ? (S(), E("div",
|
|
5891
|
-
])) : (S(), E("div",
|
|
5925
|
+
) ? (S(), E("div", Xl, " Not available yet. ")) : K("", !0)
|
|
5926
|
+
])) : (S(), E("div", Hl, " Please contact your administrator to apply the changes. "))
|
|
5892
5927
|
];
|
|
5893
5928
|
}),
|
|
5894
5929
|
"side-sheet-footer": O(() => [
|
|
5895
|
-
s("div",
|
|
5930
|
+
s("div", $l, [
|
|
5896
5931
|
I(w, {
|
|
5897
5932
|
variant: "tertiary",
|
|
5898
5933
|
label: _(d)("common.close"),
|
|
@@ -5907,15 +5942,15 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5907
5942
|
fn: O(() => {
|
|
5908
5943
|
var f;
|
|
5909
5944
|
return [
|
|
5910
|
-
s("div",
|
|
5911
|
-
s("div",
|
|
5945
|
+
s("div", zl, [
|
|
5946
|
+
s("div", jl, [
|
|
5912
5947
|
p[3] || (p[3] = s("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
5913
|
-
s("div",
|
|
5948
|
+
s("div", Pl, [
|
|
5914
5949
|
I(C, {
|
|
5915
5950
|
name: _(h),
|
|
5916
5951
|
size: "sm"
|
|
5917
5952
|
}, null, 8, ["name"]),
|
|
5918
|
-
s("div",
|
|
5953
|
+
s("div", Kl, D((f = _(l)._currentLocation) == null ? void 0 : f.name), 1)
|
|
5919
5954
|
])
|
|
5920
5955
|
]),
|
|
5921
5956
|
I(F, {
|
|
@@ -5931,16 +5966,16 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5931
5966
|
]), 1032, ["modelValue"]);
|
|
5932
5967
|
};
|
|
5933
5968
|
}
|
|
5934
|
-
}),
|
|
5969
|
+
}), Ql = /* @__PURE__ */ G({
|
|
5935
5970
|
__name: "XilnexView",
|
|
5936
5971
|
setup(k) {
|
|
5937
|
-
const
|
|
5972
|
+
const y = kt(), e = pe(), v = M(!1);
|
|
5938
5973
|
async function t() {
|
|
5939
5974
|
v.value = !0, console.log("Opening Xilnex migration dialog");
|
|
5940
5975
|
}
|
|
5941
5976
|
return (d, u) => {
|
|
5942
5977
|
const l = V("FmCardSection"), h = V("FmCard");
|
|
5943
|
-
return _(
|
|
5978
|
+
return _(y).enabledXilnexOpeningMigration && !_(e).businessLevel ? (S(), E(Z, { key: 0 }, [
|
|
5944
5979
|
I(h, {
|
|
5945
5980
|
class: ne({
|
|
5946
5981
|
"w-full": !0,
|
|
@@ -5970,7 +6005,7 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5970
6005
|
_: 1
|
|
5971
6006
|
}),
|
|
5972
6007
|
(S(), H(Fe, { to: "body" }, [
|
|
5973
|
-
I(
|
|
6008
|
+
I(Yl, {
|
|
5974
6009
|
show: v.value,
|
|
5975
6010
|
"onUpdate:show": u[1] || (u[1] = (A) => v.value = A)
|
|
5976
6011
|
}, null, 8, ["show"])
|
|
@@ -5988,29 +6023,29 @@ const Al = { class: "flex flex-col gap-4" }, hl = { class: "flex flex-col" }, xl
|
|
|
5988
6023
|
"quantity",
|
|
5989
6024
|
"total"
|
|
5990
6025
|
];
|
|
5991
|
-
async function
|
|
6026
|
+
async function Gl(k, y, e) {
|
|
5992
6027
|
var h;
|
|
5993
|
-
const v = await
|
|
6028
|
+
const v = await Jl(e), t = [], d = {}, u = Object.keys(v)[0], l = v[u];
|
|
5994
6029
|
for (let A = 0; A < l.length; A++) {
|
|
5995
|
-
const c = l[A], m = c.code,
|
|
6030
|
+
const c = l[A], m = c.code, b = c.description, p = c.quantity, C = c.unitcost;
|
|
5996
6031
|
if (m === "" || m === "undefined") {
|
|
5997
6032
|
t.push({
|
|
5998
6033
|
row: c.excelRow,
|
|
5999
6034
|
itemCode: m,
|
|
6000
|
-
itemName:
|
|
6035
|
+
itemName: b,
|
|
6001
6036
|
message: "Item code is empty or undefined"
|
|
6002
6037
|
});
|
|
6003
6038
|
continue;
|
|
6004
6039
|
}
|
|
6005
|
-
const F =
|
|
6040
|
+
const F = y.find((g) => g.code === m);
|
|
6006
6041
|
if (!F) {
|
|
6007
6042
|
t.push({
|
|
6008
6043
|
row: c.excelRow,
|
|
6009
6044
|
itemCode: m,
|
|
6010
|
-
itemName:
|
|
6045
|
+
itemName: b,
|
|
6011
6046
|
qty: p,
|
|
6012
6047
|
message: "Item not found in inventory"
|
|
6013
|
-
}), console.error(`${c.excelRow} Item not found: ${m} ${
|
|
6048
|
+
}), console.error(`${c.excelRow} Item not found: ${m} ${b} ${p}`);
|
|
6014
6049
|
continue;
|
|
6015
6050
|
}
|
|
6016
6051
|
let w = Number(c.total);
|
|
@@ -6023,7 +6058,7 @@ async function Ql(k, b, e) {
|
|
|
6023
6058
|
currency: "MYR"
|
|
6024
6059
|
}
|
|
6025
6060
|
};
|
|
6026
|
-
p != "0" && C == "0" && console.warn(`Item ${m} ${
|
|
6061
|
+
p != "0" && C == "0" && console.warn(`Item ${m} ${b} has 0 cost.`), d[h = F._id] ?? (d[h] = {
|
|
6027
6062
|
skuAdjustment: {
|
|
6028
6063
|
sku: F,
|
|
6029
6064
|
fromBalance: ge.fromNumber(0),
|
|
@@ -6053,24 +6088,24 @@ async function Ql(k, b, e) {
|
|
|
6053
6088
|
rows: d
|
|
6054
6089
|
};
|
|
6055
6090
|
}
|
|
6056
|
-
async function
|
|
6057
|
-
const
|
|
6091
|
+
async function Jl(k) {
|
|
6092
|
+
const y = await new Promise((d, u) => {
|
|
6058
6093
|
const l = new FileReader();
|
|
6059
6094
|
l.onload = (h) => d(h.target.result), l.onerror = u, l.readAsArrayBuffer(k);
|
|
6060
|
-
}), e = xt(
|
|
6095
|
+
}), e = xt(y, { type: "array" }), v = e.SheetNames, t = {};
|
|
6061
6096
|
for (const d of v) {
|
|
6062
|
-
const u = await
|
|
6097
|
+
const u = await Zl(e.Sheets[d]);
|
|
6063
6098
|
t[d] = u;
|
|
6064
6099
|
}
|
|
6065
6100
|
return t;
|
|
6066
6101
|
}
|
|
6067
|
-
async function
|
|
6068
|
-
const
|
|
6102
|
+
async function Zl(k) {
|
|
6103
|
+
const y = It.sheet_to_json(k, {
|
|
6069
6104
|
header: vt,
|
|
6070
6105
|
range: 1
|
|
6071
6106
|
}), e = [];
|
|
6072
|
-
for (let v = 0; v <
|
|
6073
|
-
const t =
|
|
6107
|
+
for (let v = 0; v < y.length; v++) {
|
|
6108
|
+
const t = y[v], d = {};
|
|
6074
6109
|
for (const u of vt)
|
|
6075
6110
|
d[u] = String(t[u]).trim();
|
|
6076
6111
|
e.push({
|
|
@@ -6081,23 +6116,23 @@ async function Jl(k) {
|
|
|
6081
6116
|
}
|
|
6082
6117
|
return e;
|
|
6083
6118
|
}
|
|
6084
|
-
const
|
|
6119
|
+
const Wl = { class: "flex flex-col gap-4" }, ei = { class: "flex flex-col" }, ti = {
|
|
6085
6120
|
key: 0,
|
|
6086
6121
|
class: "flex flex-col gap-4 my-5"
|
|
6087
|
-
},
|
|
6122
|
+
}, ni = { class: "flex flex-col gap-8" }, oi = { class: "flex flex-col gap-8" }, si = {
|
|
6088
6123
|
class: /* @__PURE__ */ ne(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
6089
|
-
},
|
|
6124
|
+
}, ai = {
|
|
6090
6125
|
class: /* @__PURE__ */ ne(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
6091
|
-
},
|
|
6126
|
+
}, li = { class: "line-clamp-2 text-ellipsis break-all" }, ii = { class: "flex flex-col" }, ri = { class: "font-medium" }, ui = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, di = { class: "flex" }, ci = { class: "flex" }, mi = { key: 1 }, pi = /* @__PURE__ */ G({
|
|
6092
6127
|
__name: "SynergyOpeningImport",
|
|
6093
6128
|
setup(k) {
|
|
6094
|
-
const
|
|
6129
|
+
const y = on(), e = Ne(), v = At(), t = ae(), d = z(() => [
|
|
6095
6130
|
{
|
|
6096
6131
|
value: "synergy",
|
|
6097
6132
|
label: "Synergy",
|
|
6098
6133
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
6099
6134
|
}
|
|
6100
|
-
]), u = M(d.value[0].value), { t: l } = Oe(), h = M(null), A = M(), c = M(""), m = M([]),
|
|
6135
|
+
]), u = M(d.value[0].value), { t: l } = Oe(), h = M(null), A = M(), c = M(""), m = M([]), b = M([]), p = [
|
|
6101
6136
|
{
|
|
6102
6137
|
id: "ingredient",
|
|
6103
6138
|
header: () => "Ingredient",
|
|
@@ -6194,12 +6229,12 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6194
6229
|
F.value = !0;
|
|
6195
6230
|
try {
|
|
6196
6231
|
let i = {};
|
|
6197
|
-
const { errors: n, rows: r } = await
|
|
6232
|
+
const { errors: n, rows: r } = await Gl(
|
|
6198
6233
|
i,
|
|
6199
6234
|
e.skus,
|
|
6200
6235
|
h.value
|
|
6201
6236
|
);
|
|
6202
|
-
m.value = n,
|
|
6237
|
+
m.value = n, b.value = Object.values(r);
|
|
6203
6238
|
} catch {
|
|
6204
6239
|
t.open({
|
|
6205
6240
|
message: "Error verifying file",
|
|
@@ -6223,12 +6258,12 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6223
6258
|
}
|
|
6224
6259
|
await v.setOpeningBalance({
|
|
6225
6260
|
effectiveAt: f.value,
|
|
6226
|
-
skuAdjustments:
|
|
6227
|
-
skuBalances:
|
|
6261
|
+
skuAdjustments: b.value.map((i) => i.skuAdjustment),
|
|
6262
|
+
skuBalances: b.value.map((i) => i.skuBalance)
|
|
6228
6263
|
}), t.open({
|
|
6229
6264
|
message: "Opening balance imported successfully",
|
|
6230
6265
|
type: "success"
|
|
6231
|
-
}), await
|
|
6266
|
+
}), await y.fetchClosingDocumentId();
|
|
6232
6267
|
} catch {
|
|
6233
6268
|
t.open({
|
|
6234
6269
|
message: "Error importing opening balance",
|
|
@@ -6253,8 +6288,8 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6253
6288
|
});
|
|
6254
6289
|
return (i, n) => {
|
|
6255
6290
|
const r = V("FmLabel"), x = V("FmField"), T = V("FmSimpleDatePicker"), P = V("FmButton"), X = V("FmRadio"), R = V("FmRadioGroup"), j = V("FmTable");
|
|
6256
|
-
return S(), E("div",
|
|
6257
|
-
s("div",
|
|
6291
|
+
return S(), E("div", Wl, [
|
|
6292
|
+
s("div", ei, [
|
|
6258
6293
|
I(r, { label: "Latest closing" })
|
|
6259
6294
|
]),
|
|
6260
6295
|
I(x, {
|
|
@@ -6262,13 +6297,13 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6262
6297
|
disabled: ""
|
|
6263
6298
|
}, {
|
|
6264
6299
|
default: O(() => [
|
|
6265
|
-
re(D(_(
|
|
6300
|
+
re(D(_(y).state.closingDocumentId ? `${_(Ze)(new Date(_(Qe)(_(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
6266
6301
|
]),
|
|
6267
6302
|
_: 1
|
|
6268
6303
|
}),
|
|
6269
|
-
_(
|
|
6304
|
+
_(y).state.closingDocumentId ? (S(), E("div", mi, n[6] || (n[6] = [
|
|
6270
6305
|
s("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)
|
|
6271
|
-
]))) : (S(), E("div",
|
|
6306
|
+
]))) : (S(), E("div", ti, [
|
|
6272
6307
|
I(T, {
|
|
6273
6308
|
modelValue: f.value,
|
|
6274
6309
|
"onUpdate:modelValue": n[0] || (n[0] = (q) => f.value = q),
|
|
@@ -6288,7 +6323,7 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6288
6323
|
]),
|
|
6289
6324
|
_: 1
|
|
6290
6325
|
}, 8, ["modelValue"]),
|
|
6291
|
-
s("div",
|
|
6326
|
+
s("div", ni, [
|
|
6292
6327
|
I(r, { label: "Stock take file" })
|
|
6293
6328
|
]),
|
|
6294
6329
|
I(Je, {
|
|
@@ -6300,10 +6335,10 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6300
6335
|
h.value ? {
|
|
6301
6336
|
name: "default",
|
|
6302
6337
|
fn: O(({ openFileDialog: q }) => [
|
|
6303
|
-
s("div",
|
|
6304
|
-
s("div",
|
|
6305
|
-
s("div",
|
|
6306
|
-
s("div",
|
|
6338
|
+
s("div", oi, [
|
|
6339
|
+
s("div", si, [
|
|
6340
|
+
s("div", ai, [
|
|
6341
|
+
s("div", li, D(h.value.name), 1),
|
|
6307
6342
|
I(P, {
|
|
6308
6343
|
label: _(l)("inventory.ingredient.import.replaceFile"),
|
|
6309
6344
|
variant: "secondary",
|
|
@@ -6332,9 +6367,9 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6332
6367
|
disabled: q.disabled
|
|
6333
6368
|
}, {
|
|
6334
6369
|
label: O(() => [
|
|
6335
|
-
s("div",
|
|
6336
|
-
s("span",
|
|
6337
|
-
s("span",
|
|
6370
|
+
s("div", ii, [
|
|
6371
|
+
s("span", ri, D(q.label), 1),
|
|
6372
|
+
s("span", ui, D(q.disabled ? q.disabledReason : q.subLabel), 1)
|
|
6338
6373
|
])
|
|
6339
6374
|
]),
|
|
6340
6375
|
_: 2
|
|
@@ -6342,7 +6377,7 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6342
6377
|
]),
|
|
6343
6378
|
_: 1
|
|
6344
6379
|
}, 8, ["modelValue"]),
|
|
6345
|
-
s("div",
|
|
6380
|
+
s("div", di, [
|
|
6346
6381
|
I(P, {
|
|
6347
6382
|
class: "ml-auto mt-4",
|
|
6348
6383
|
variant: "secondary",
|
|
@@ -6353,12 +6388,12 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6353
6388
|
onClick: w
|
|
6354
6389
|
}, null, 8, ["disabled", "loading"])
|
|
6355
6390
|
]),
|
|
6356
|
-
h.value &&
|
|
6391
|
+
h.value && b.value.length > 0 ? (S(), E(Z, { key: 0 }, [
|
|
6357
6392
|
n[4] || (n[4] = s("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
6358
6393
|
I(j, {
|
|
6359
6394
|
modelValue: A.value,
|
|
6360
6395
|
"onUpdate:modelValue": n[3] || (n[3] = (q) => A.value = q),
|
|
6361
|
-
"row-data":
|
|
6396
|
+
"row-data": b.value,
|
|
6362
6397
|
"column-defs": p,
|
|
6363
6398
|
"shrink-at": !1,
|
|
6364
6399
|
"search-value": c.value
|
|
@@ -6371,8 +6406,8 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6371
6406
|
"column-defs": C
|
|
6372
6407
|
}, null, 8, ["row-data"])
|
|
6373
6408
|
], 64)) : K("", !0),
|
|
6374
|
-
s("div",
|
|
6375
|
-
|
|
6409
|
+
s("div", ci, [
|
|
6410
|
+
b.value.length > 0 && !_(y).state.closingDocumentId ? (S(), H(P, {
|
|
6376
6411
|
key: 0,
|
|
6377
6412
|
class: "ml-auto mt-4",
|
|
6378
6413
|
"prepend-icon": "file_upload",
|
|
@@ -6386,22 +6421,22 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6386
6421
|
]);
|
|
6387
6422
|
};
|
|
6388
6423
|
}
|
|
6389
|
-
}),
|
|
6424
|
+
}), fi = { class: "flex flex-col gap-8 w-full" }, vi = { class: "flex gap-4 justify-between" }, gi = { 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" }, yi = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, bi = { key: 0 }, Ai = {
|
|
6390
6425
|
key: 1,
|
|
6391
6426
|
class: "flex flex-col gap-8 w-full"
|
|
6392
|
-
},
|
|
6427
|
+
}, hi = { class: "flex gap-8 items-center justify-start" }, xi = /* @__PURE__ */ G({
|
|
6393
6428
|
__name: "SynergySideSheet",
|
|
6394
6429
|
props: {
|
|
6395
6430
|
show: { type: Boolean },
|
|
6396
6431
|
loading: { type: Boolean }
|
|
6397
6432
|
},
|
|
6398
6433
|
emits: ["update:show"],
|
|
6399
|
-
setup(k, { emit:
|
|
6434
|
+
setup(k, { emit: y }) {
|
|
6400
6435
|
var A;
|
|
6401
|
-
const e = fe(), t = we(k, "show"), { t: d } = oe(), u =
|
|
6436
|
+
const e = fe(), t = we(k, "show"), { t: d } = oe(), u = y, l = pe(), h = ((A = l._currentLocation) == null ? void 0 : A.type) || "";
|
|
6402
6437
|
return (c, m) => {
|
|
6403
6438
|
var F;
|
|
6404
|
-
const
|
|
6439
|
+
const b = V("FmIcon"), p = V("FmButton"), C = V("FmSideSheet");
|
|
6405
6440
|
return S(), H(C, {
|
|
6406
6441
|
modelValue: _(t),
|
|
6407
6442
|
"onUpdate:modelValue": m[1] || (m[1] = (w) => Se(t) ? t.value = w : null),
|
|
@@ -6413,13 +6448,13 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6413
6448
|
default: O(() => {
|
|
6414
6449
|
var w;
|
|
6415
6450
|
return [
|
|
6416
|
-
(w = _(e).sessionUser.value) != null && w.role.isAdmin ? (S(), E("div",
|
|
6417
|
-
I(
|
|
6418
|
-
])) : (S(), E("div",
|
|
6451
|
+
(w = _(e).sessionUser.value) != null && w.role.isAdmin ? (S(), E("div", Ai, [
|
|
6452
|
+
I(pi)
|
|
6453
|
+
])) : (S(), E("div", bi, " Please contact your administrator to apply the changes. "))
|
|
6419
6454
|
];
|
|
6420
6455
|
}),
|
|
6421
6456
|
"side-sheet-footer": O(() => [
|
|
6422
|
-
s("div",
|
|
6457
|
+
s("div", hi, [
|
|
6423
6458
|
I(p, {
|
|
6424
6459
|
variant: "tertiary",
|
|
6425
6460
|
label: _(d)("common.close"),
|
|
@@ -6434,15 +6469,15 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6434
6469
|
fn: O(() => {
|
|
6435
6470
|
var w;
|
|
6436
6471
|
return [
|
|
6437
|
-
s("div",
|
|
6438
|
-
s("div",
|
|
6472
|
+
s("div", fi, [
|
|
6473
|
+
s("div", vi, [
|
|
6439
6474
|
m[2] || (m[2] = s("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
6440
|
-
s("div",
|
|
6441
|
-
I(
|
|
6475
|
+
s("div", gi, [
|
|
6476
|
+
I(b, {
|
|
6442
6477
|
name: _(h),
|
|
6443
6478
|
size: "sm"
|
|
6444
6479
|
}, null, 8, ["name"]),
|
|
6445
|
-
s("div",
|
|
6480
|
+
s("div", yi, D((w = _(l)._currentLocation) == null ? void 0 : w.name), 1)
|
|
6446
6481
|
])
|
|
6447
6482
|
])
|
|
6448
6483
|
])
|
|
@@ -6453,16 +6488,16 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6453
6488
|
]), 1032, ["modelValue"]);
|
|
6454
6489
|
};
|
|
6455
6490
|
}
|
|
6456
|
-
}),
|
|
6491
|
+
}), Ii = /* @__PURE__ */ G({
|
|
6457
6492
|
__name: "SynergyView",
|
|
6458
6493
|
setup(k) {
|
|
6459
|
-
const
|
|
6494
|
+
const y = kt(), e = pe(), v = M(!1);
|
|
6460
6495
|
async function t() {
|
|
6461
6496
|
v.value = !0, console.log("Opening Synergy migration dialog");
|
|
6462
6497
|
}
|
|
6463
6498
|
return (d, u) => {
|
|
6464
6499
|
const l = V("FmCardSection"), h = V("FmCard");
|
|
6465
|
-
return _(
|
|
6500
|
+
return _(y).enabledSynergyOpeningMigration && !_(e).businessLevel ? (S(), E(Z, { key: 0 }, [
|
|
6466
6501
|
I(h, {
|
|
6467
6502
|
class: ne({
|
|
6468
6503
|
"w-full": !0,
|
|
@@ -6492,7 +6527,7 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6492
6527
|
_: 1
|
|
6493
6528
|
}),
|
|
6494
6529
|
(S(), H(Fe, { to: "body" }, [
|
|
6495
|
-
I(
|
|
6530
|
+
I(xi, {
|
|
6496
6531
|
show: v.value,
|
|
6497
6532
|
"onUpdate:show": u[1] || (u[1] = (A) => v.value = A)
|
|
6498
6533
|
}, null, 8, ["show"])
|
|
@@ -6500,19 +6535,19 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6500
6535
|
], 64)) : K("", !0);
|
|
6501
6536
|
};
|
|
6502
6537
|
}
|
|
6503
|
-
}),
|
|
6538
|
+
}), Si = { key: 0 }, wi = {
|
|
6504
6539
|
key: 1,
|
|
6505
6540
|
class: "flex flex-col items-center my-10 gap-5"
|
|
6506
|
-
},
|
|
6541
|
+
}, Ci = ["src"], ki = {
|
|
6507
6542
|
class: "text-xs text-neutral-400 text-center",
|
|
6508
6543
|
style: { "max-width": "25rem" }
|
|
6509
|
-
},
|
|
6544
|
+
}, _i = {
|
|
6510
6545
|
key: 2,
|
|
6511
6546
|
class: "grid grid-cols-2 gap-5"
|
|
6512
|
-
},
|
|
6547
|
+
}, Ji = /* @__PURE__ */ G({
|
|
6513
6548
|
__name: "IntegrationView",
|
|
6514
6549
|
setup(k) {
|
|
6515
|
-
const
|
|
6550
|
+
const y = pe(), e = M(!1), v = sn(), { breakpoints: t } = Ge(), d = z(() => t.value.xs || t.value.sm), { t: u } = oe();
|
|
6516
6551
|
async function l() {
|
|
6517
6552
|
e.value = !0;
|
|
6518
6553
|
try {
|
|
@@ -6521,13 +6556,13 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6521
6556
|
e.value = !1;
|
|
6522
6557
|
}
|
|
6523
6558
|
}
|
|
6524
|
-
return
|
|
6559
|
+
return y.watchLocation(async (h) => {
|
|
6525
6560
|
h && await l();
|
|
6526
|
-
}, "integration-view"), _e(async () => {
|
|
6527
|
-
|
|
6561
|
+
}, "integration-view"), $t(() => y.unwatchLocation("integration-view")), _e(async () => {
|
|
6562
|
+
y._currentLocation && await l();
|
|
6528
6563
|
}), (h, A) => {
|
|
6529
6564
|
const c = V("FmCircularProgress");
|
|
6530
|
-
return S(), H(
|
|
6565
|
+
return S(), H(Jt, {
|
|
6531
6566
|
title: _(u)("inventory.integration.title")
|
|
6532
6567
|
}, {
|
|
6533
6568
|
default: O(() => [
|
|
@@ -6540,27 +6575,27 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6540
6575
|
}
|
|
6541
6576
|
])
|
|
6542
6577
|
}, [
|
|
6543
|
-
I(
|
|
6578
|
+
I(Zt, {
|
|
6544
6579
|
"change-location": "",
|
|
6545
6580
|
showBusiness: ""
|
|
6546
6581
|
}),
|
|
6547
|
-
!_(
|
|
6582
|
+
!_(y)._currentLocation || e.value ? (S(), E("div", Si, [
|
|
6548
6583
|
I(c, { size: "lg" })
|
|
6549
|
-
])) : _(v).enabledIntegrations == 0 ? (S(), E("div",
|
|
6584
|
+
])) : _(v).enabledIntegrations == 0 ? (S(), E("div", wi, [
|
|
6550
6585
|
s("div", null, [
|
|
6551
6586
|
s("img", {
|
|
6552
6587
|
src: _(yt),
|
|
6553
6588
|
alt: "List is empty"
|
|
6554
|
-
}, null, 8,
|
|
6589
|
+
}, null, 8, Ci)
|
|
6555
6590
|
]),
|
|
6556
6591
|
A[0] || (A[0] = s("div", { class: "font-bold text-lg" }, "Integration", -1)),
|
|
6557
|
-
s("div",
|
|
6558
|
-
])) : (S(), E("div",
|
|
6559
|
-
I(
|
|
6560
|
-
I(
|
|
6561
|
-
I(
|
|
6562
|
-
I(
|
|
6563
|
-
I(
|
|
6592
|
+
s("div", ki, D(_(u)("inventory.integration.description")), 1)
|
|
6593
|
+
])) : (S(), E("div", _i, [
|
|
6594
|
+
I(Sa),
|
|
6595
|
+
I(Mo),
|
|
6596
|
+
I(gl),
|
|
6597
|
+
I(Ql),
|
|
6598
|
+
I(Ii)
|
|
6564
6599
|
]))
|
|
6565
6600
|
], 2)
|
|
6566
6601
|
]),
|
|
@@ -6570,5 +6605,5 @@ const Zl = { class: "flex flex-col gap-4" }, Wl = { class: "flex flex-col" }, ei
|
|
|
6570
6605
|
}
|
|
6571
6606
|
});
|
|
6572
6607
|
export {
|
|
6573
|
-
|
|
6608
|
+
Ji as default
|
|
6574
6609
|
};
|