@feedmepos/mf-inventory-portal 1.1.5 → 1.1.6-dev.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-CyCxXYWb.js → App-ZdPyRgoK.js} +1 -1
- package/dist/{ApprovalView-U_0mloUl.js → ApprovalView-VNUUoGaD.js} +12 -12
- package/dist/{BindingsDialog-MU1VXpRz.js → BindingsDialog-CqrwH8Le.js} +2 -2
- package/dist/{BindingsPicker-B0DtgYMV.js → BindingsPicker-CBrr3QOo.js} +1 -1
- package/dist/{BindingsTable-CSZw1l9L.js → BindingsTable-CM_qgGzX.js} +1 -1
- package/dist/{ClosingDraftView-DwUlj7ta.js → ClosingDraftView-EJxncQHK.js} +2 -2
- package/dist/ClosingTemplateView-P3-3w7LP.js +1908 -0
- package/dist/{DeliveryOrderPrintPreview-D7-jS3K1.js → DeliveryOrderPrintPreview-B_0diddC.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BnL2z9Or.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-C_pIvqso.js} +16 -16
- package/dist/{FmMultiselectDialog-BTjE3FDA.js → FmMultiselectDialog-B3_QQAyt.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-D-hrdDvI.js → FmUnitInput.vue_vue_type_script_setup_true_lang-FPaLEdx0.js} +20 -20
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-DqY-ppJ9.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-BOMcifaU.js} +1 -1
- package/dist/{IngredientGroupView-R5cNGeUG.js → IngredientGroupView-C4qAQE49.js} +2 -2
- package/dist/{IngredientsView-BkRv5-9o.js → IngredientsView-BuUCuN_-.js} +4 -4
- package/dist/{IntegrationView-DJzLUlBA.js → IntegrationView-Ww16O2-h.js} +729 -766
- package/dist/{InventoryBindingForm-SBCpdUlA.js → InventoryBindingForm-BdGh-FcD.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-DQ9-3Y3R.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-DkqxNffc.js} +3 -3
- package/dist/{InventoryBindingSummary-DRJTEG5M.js → InventoryBindingSummary-immSfENb.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BTyKsubT.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-ChP4yc96.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-Bn5b1Ur-.js → PremiumBadge.vue_vue_type_script_setup_true_lang-D-GMVZlu.js} +6 -6
- package/dist/{PublishView-ClOkwACw.js → PublishView-BYymYGs5.js} +22 -23
- package/dist/{PurchaseOrderPrintPreview-BV_-rfm2.js → PurchaseOrderPrintPreview-D3WKx7pj.js} +6 -6
- package/dist/{ReceiveRequestView-BEA8WYAJ.js → ReceiveRequestView-Ba5ONN7U.js} +122 -123
- package/dist/{RecipeView-CgS5UMwE.js → RecipeView-DoD3paRP.js} +3 -3
- package/dist/{StockView-DfNZOW1U.js → StockView-fO7PGIdp.js} +6 -6
- package/dist/{SupplierView-nAtRIngl.js → SupplierView-DNhVDIF0.js} +3 -3
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-0fKqK-Yg.js → TransferDetails.vue_vue_type_script_setup_true_lang-D4noOVzU.js} +812 -847
- package/dist/{TransferTemplateView-B7P8MaPd.js → TransferTemplateView-788yoUXj.js} +70 -70
- package/dist/{UnitView-B5bqeT_p.js → UnitView-iQCflI7n.js} +3 -3
- package/dist/{WarehouseView-yIhVXIOL.js → WarehouseView-ComVJ9Ub.js} +1 -1
- package/dist/api/adjustment-template.d.ts +2 -0
- package/dist/api/closing-template.d.ts +2 -0
- package/dist/api/netsuite.d.ts +0 -1
- package/dist/{app-CktPIZfH.js → app-DDQ8iM43.js} +32520 -30121
- package/dist/app.js +5 -5
- package/dist/components/TemplatePublishDialog.d.ts +13 -0
- package/dist/components/TemplatePublishDialog.vue.d.ts +12 -0
- package/dist/components/row-action.enum.d.ts +1 -0
- package/dist/{decimal-ClHMtypx.js → decimal-Cj3dpSJu.js} +1 -1
- package/dist/{format-unit-display--5ianNK1.js → format-unit-display-DBZ-CswW.js} +22 -22
- package/dist/{index-ynBWdY_c.js → index-DkQGplv5.js} +1 -1
- package/dist/{index-KMubbPxS.js → index-TCig0pJv.js} +1 -1
- package/dist/{stock-Bsrt9B9a.js → stock-cW_hYhb6.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/{supplier-BXmGBQ24.js → supplier-CmLYcKmg.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{use-ingredient-select-dialog-Pg9yaoJS.js → use-ingredient-select-dialog-J1mw_EQM.js} +1 -1
- package/dist/{use-inventory-binding-dialog-Deyh6NeE.js → use-inventory-binding-dialog-CgxQ2cgb.js} +1 -1
- package/dist/views/dev/components/TemplatePublishDialogTest.vue.d.ts +2 -0
- package/dist/views/receive-request/composables/fn.d.ts +3 -4
- package/dist/views/receive-request/composables/use-receive-request-table.d.ts +618 -1
- package/package.json +1 -1
- package/dist/ClosingTemplateView-DcUMrx5w.js +0 -1863
- package/dist/components/FmMultiselectDialogTemporary.vue.d.ts +0 -41
- package/dist/vue-i18n-Dybwy_8K.js +0 -2365
|
@@ -1,82 +1,81 @@
|
|
|
1
|
-
import { defineComponent as Y, mergeModels as Oe, useModel as Se, onMounted as fe, ref as M, computed as z, resolveComponent as E, openBlock as
|
|
1
|
+
import { defineComponent as Y, mergeModels as Oe, useModel as Se, onMounted as fe, ref as M, computed as z, resolveComponent as E, openBlock as w, createElementBlock as V, createElementVNode as a, toDisplayString as j, unref as I, createVNode as x, createBlock as X, withCtx as R, Fragment as J, renderList as $, normalizeClass as Z, normalizeStyle as je, createSlots as oe, createCommentVNode as _, withModifiers as Te, reactive as pe, watch as ve, isRef as se, Teleport as ue, h as D, createTextVNode as q, watchEffect as ze } from "vue";
|
|
2
2
|
import { E as He } from "./empty-placeholder-wf6-BWE8.js";
|
|
3
|
-
import {
|
|
4
|
-
import { useDialogChild as qe, useDialog as
|
|
5
|
-
import { useI18n as
|
|
6
|
-
import { a as Ze, b as
|
|
7
|
-
import {
|
|
8
|
-
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-D-hrdDvI.js";
|
|
3
|
+
import { b0 as _e, aP as Xe, f as ee, u as W, b1 as Ue, b as le, aA as ce, j as Qe, aY as ge, am as ye, az as Ae, a as be, a2 as Ye, Q as P, $ as we, b2 as ke, aG as Be, aT as Ce, s as Ee, y as Fe, a0 as re, c as Le, _ as Je, C as Ke } from "./app-DDQ8iM43.js";
|
|
4
|
+
import { useDialogChild as qe, useDialog as de, useProxiedModel as ae, useSnackbar as te, useBreakpoints as Ve, components as ne } from "@feedmepos/ui-library";
|
|
5
|
+
import { useI18n as G, useCoreStore as ie } from "@feedmepos/mf-common";
|
|
6
|
+
import { a as Ze, b as Ge, c as Pe, u as We } from "./index-DkQGplv5.js";
|
|
7
|
+
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-FPaLEdx0.js";
|
|
9
8
|
const tt = "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";
|
|
10
9
|
var Ne = { exports: {} };
|
|
11
|
-
(function(F,
|
|
10
|
+
(function(F, g) {
|
|
12
11
|
(function() {
|
|
13
12
|
var s = {};
|
|
14
|
-
F.exports = s, s.simpleFilter = function(
|
|
13
|
+
F.exports = s, s.simpleFilter = function(i, n) {
|
|
15
14
|
return n.filter(function(t) {
|
|
16
|
-
return s.test(
|
|
15
|
+
return s.test(i, t);
|
|
17
16
|
});
|
|
18
|
-
}, s.test = function(
|
|
19
|
-
return s.match(
|
|
20
|
-
}, s.match = function(
|
|
17
|
+
}, s.test = function(i, n) {
|
|
18
|
+
return s.match(i, n) !== null;
|
|
19
|
+
}, s.match = function(i, n, t) {
|
|
21
20
|
t = t || {};
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
for (var k = 0; k <
|
|
25
|
-
C = n[k], h[k] === u
|
|
26
|
-
return
|
|
27
|
-
}, s.filter = function(
|
|
28
|
-
return !n || n.length === 0 ? [] : typeof
|
|
29
|
-
var
|
|
30
|
-
t.extract && (
|
|
31
|
-
var l = s.match(
|
|
32
|
-
return l != null && (
|
|
21
|
+
var u = 0, b = [], S = n.length, y = 0, v = 0, l = t.pre || "", r = t.post || "", h = t.caseSensitive && n || n.toLowerCase(), C;
|
|
22
|
+
i = t.caseSensitive && i || i.toLowerCase();
|
|
23
|
+
for (var k = 0; k < S; k++)
|
|
24
|
+
C = n[k], h[k] === i[u] ? (C = l + C + r, u += 1, v += 1 + v) : v = 0, y += v, b[b.length] = C;
|
|
25
|
+
return u === i.length ? (y = h === i ? 1 / 0 : y, { rendered: b.join(""), score: y }) : null;
|
|
26
|
+
}, s.filter = function(i, n, t) {
|
|
27
|
+
return !n || n.length === 0 ? [] : typeof i != "string" ? n : (t = t || {}, n.reduce(function(u, b, S, y) {
|
|
28
|
+
var v = b;
|
|
29
|
+
t.extract && (v = t.extract(b));
|
|
30
|
+
var l = s.match(i, v, t);
|
|
31
|
+
return l != null && (u[u.length] = {
|
|
33
32
|
string: l.rendered,
|
|
34
33
|
score: l.score,
|
|
35
|
-
index:
|
|
34
|
+
index: S,
|
|
36
35
|
original: b
|
|
37
|
-
}),
|
|
38
|
-
}, []).sort(function(
|
|
39
|
-
var
|
|
40
|
-
return
|
|
36
|
+
}), u;
|
|
37
|
+
}, []).sort(function(u, b) {
|
|
38
|
+
var S = b.score - u.score;
|
|
39
|
+
return S || u.index - b.index;
|
|
41
40
|
}));
|
|
42
41
|
};
|
|
43
42
|
})();
|
|
44
43
|
})(Ne);
|
|
45
44
|
var nt = Ne.exports;
|
|
46
45
|
const De = /* @__PURE__ */ _e(nt);
|
|
47
|
-
function he(F,
|
|
48
|
-
return De.filter(F,
|
|
46
|
+
function he(F, g) {
|
|
47
|
+
return De.filter(F, g).length > 0;
|
|
49
48
|
}
|
|
50
|
-
function ot(F,
|
|
49
|
+
function ot(F, g) {
|
|
51
50
|
if (!F)
|
|
52
51
|
return {
|
|
53
|
-
label:
|
|
52
|
+
label: g,
|
|
54
53
|
segments: [
|
|
55
54
|
{
|
|
56
55
|
isMatch: !1,
|
|
57
|
-
segment:
|
|
56
|
+
segment: g
|
|
58
57
|
}
|
|
59
58
|
],
|
|
60
59
|
matched: !1
|
|
61
60
|
};
|
|
62
|
-
const [s] = De.filter(F.toLocaleLowerCase(), [
|
|
61
|
+
const [s] = De.filter(F.toLocaleLowerCase(), [g], {
|
|
63
62
|
pre: "|",
|
|
64
63
|
post: "|"
|
|
65
64
|
});
|
|
66
65
|
if (!s)
|
|
67
66
|
return {
|
|
68
|
-
label:
|
|
69
|
-
segments: [{ segment:
|
|
67
|
+
label: g,
|
|
68
|
+
segments: [{ segment: g, isMatch: !1 }],
|
|
70
69
|
matched: !1
|
|
71
70
|
};
|
|
72
|
-
const
|
|
71
|
+
const i = s.string.toString().replace(/\|\|/g, "").split("|").reduce((n, t, u) => (n.push({
|
|
73
72
|
segment: t,
|
|
74
|
-
isMatch:
|
|
73
|
+
isMatch: u % 2 !== 0
|
|
75
74
|
//e.g. index 1, 3, 5, ...
|
|
76
75
|
}), n), new Array());
|
|
77
76
|
return {
|
|
78
|
-
label:
|
|
79
|
-
segments:
|
|
77
|
+
label: g,
|
|
78
|
+
segments: i,
|
|
80
79
|
matched: !0
|
|
81
80
|
};
|
|
82
81
|
}
|
|
@@ -102,36 +101,36 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
102
101
|
}),
|
|
103
102
|
emits: ["update:modelValue"],
|
|
104
103
|
setup(F) {
|
|
105
|
-
const
|
|
104
|
+
const g = Se(F, "modelValue"), s = qe();
|
|
106
105
|
fe(() => {
|
|
107
|
-
s.emitData(
|
|
106
|
+
s.emitData(g.value);
|
|
108
107
|
});
|
|
109
|
-
const
|
|
108
|
+
const i = M(""), { t: n } = G();
|
|
110
109
|
function t(e) {
|
|
111
110
|
return he(
|
|
112
|
-
|
|
111
|
+
i.value,
|
|
113
112
|
e.sublabel ? [e.label, e.sublabel] : [e.label]
|
|
114
113
|
);
|
|
115
114
|
}
|
|
116
|
-
function
|
|
117
|
-
return t(e) ? !0 : K(e) ? e.children.some(
|
|
115
|
+
function u(e) {
|
|
116
|
+
return t(e) ? !0 : K(e) ? e.children.some(u) : !1;
|
|
118
117
|
}
|
|
119
118
|
function b(e, o) {
|
|
120
|
-
if (!
|
|
119
|
+
if (!i.value)
|
|
121
120
|
return !0;
|
|
122
121
|
const [B, ...L] = e;
|
|
123
122
|
if (typeof B != "number")
|
|
124
123
|
return !1;
|
|
125
124
|
const N = o[B];
|
|
126
125
|
return he(
|
|
127
|
-
|
|
126
|
+
i.value,
|
|
128
127
|
N.sublabel ? [N.label, N.sublabel] : [N.label]
|
|
129
|
-
) ? !0 : L.length === 0 ?
|
|
128
|
+
) ? !0 : L.length === 0 ? u(N) : K(N) ? b(L, N.children) : !1;
|
|
130
129
|
}
|
|
131
|
-
function
|
|
130
|
+
function S(e, o, B = 0, L = !1) {
|
|
132
131
|
if (K(e) && e.children.length) {
|
|
133
132
|
const { children: N, ...H } = e, U = N.flatMap(
|
|
134
|
-
(O, T) =>
|
|
133
|
+
(O, T) => S(O, [...o, T], B + 1, L || e.disabled)
|
|
135
134
|
);
|
|
136
135
|
return [
|
|
137
136
|
{
|
|
@@ -154,16 +153,16 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
154
153
|
}
|
|
155
154
|
];
|
|
156
155
|
}
|
|
157
|
-
const
|
|
158
|
-
(e, o) =>
|
|
156
|
+
const y = z(() => g.value.flatMap(
|
|
157
|
+
(e, o) => S(e, [o]).filter((B) => b(B.keys, g.value))
|
|
159
158
|
));
|
|
160
|
-
function
|
|
159
|
+
function v(e) {
|
|
161
160
|
if (K(e)) {
|
|
162
|
-
if (
|
|
163
|
-
const o = t(e) ? e.children : e.children.filter(
|
|
164
|
-
return o.length === 0 ? !1 : o.every(
|
|
161
|
+
if (u(e)) {
|
|
162
|
+
const o = t(e) ? e.children : e.children.filter(u);
|
|
163
|
+
return o.length === 0 ? !1 : o.every(v);
|
|
165
164
|
}
|
|
166
|
-
return e.children.every(
|
|
165
|
+
return e.children.every(v);
|
|
167
166
|
}
|
|
168
167
|
return e.active ?? !1;
|
|
169
168
|
}
|
|
@@ -172,13 +171,13 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
172
171
|
if (typeof B != "number")
|
|
173
172
|
return !1;
|
|
174
173
|
const N = o[B];
|
|
175
|
-
return L.length === 0 ?
|
|
174
|
+
return L.length === 0 ? v(N ?? []) : K(N) ? l(L, N.children ?? []) : !1;
|
|
176
175
|
}
|
|
177
176
|
function r(e) {
|
|
178
177
|
if (K(e)) {
|
|
179
|
-
if (
|
|
180
|
-
const o = t(e) ? e.children : e.children.filter(
|
|
181
|
-
return o.length === 0 ? !1 : o.some(
|
|
178
|
+
if (u(e)) {
|
|
179
|
+
const o = t(e) ? e.children : e.children.filter(u);
|
|
180
|
+
return o.length === 0 ? !1 : o.some(v) && !o.every(v);
|
|
182
181
|
}
|
|
183
182
|
return !1;
|
|
184
183
|
}
|
|
@@ -195,8 +194,8 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
195
194
|
if (e.disabled)
|
|
196
195
|
return e;
|
|
197
196
|
if (K(e)) {
|
|
198
|
-
if (
|
|
199
|
-
const B = t(e) ? e.children : e.children.filter(
|
|
197
|
+
if (u(e)) {
|
|
198
|
+
const B = t(e) ? e.children : e.children.filter(u);
|
|
200
199
|
return {
|
|
201
200
|
...e,
|
|
202
201
|
children: e.children.map((L) => B.find((H) => Xe(H.value, L.value)) ? C(L, o) : L)
|
|
@@ -221,44 +220,44 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
221
220
|
} : H
|
|
222
221
|
);
|
|
223
222
|
}
|
|
224
|
-
const
|
|
225
|
-
function
|
|
223
|
+
const p = M(new Array());
|
|
224
|
+
function m(e) {
|
|
226
225
|
const o = e.join();
|
|
227
|
-
return
|
|
226
|
+
return p.value.find((B) => o === B);
|
|
228
227
|
}
|
|
229
228
|
function d(e) {
|
|
230
229
|
const o = e.join();
|
|
231
|
-
|
|
230
|
+
m(e) ? p.value = p.value.filter((B) => B !== o) : p.value = [...p.value, o];
|
|
232
231
|
}
|
|
233
232
|
function c(e) {
|
|
234
233
|
const o = e.join();
|
|
235
|
-
return
|
|
234
|
+
return p.value.find((B) => o.startsWith(B) && o !== B);
|
|
236
235
|
}
|
|
237
236
|
const A = z(
|
|
238
|
-
() =>
|
|
237
|
+
() => y.value.filter((e) => b(e.keys, g.value) && e.active).length
|
|
239
238
|
);
|
|
240
|
-
function
|
|
241
|
-
|
|
239
|
+
function f(e, o, B) {
|
|
240
|
+
g.value = k(e, o, B), s.emitData(g.value);
|
|
242
241
|
}
|
|
243
242
|
return (e, o) => {
|
|
244
243
|
const B = E("FmSearch"), L = E("FmCheckbox"), N = E("FmButton"), H = E("FmListItem"), U = E("FmList");
|
|
245
|
-
return
|
|
244
|
+
return w(), V("div", st, [
|
|
246
245
|
a("div", at, [
|
|
247
246
|
a("div", lt, j(I(n)("inventory.formField.itemsSelected", { count: A.value })), 1),
|
|
248
247
|
a("div", it, [
|
|
249
248
|
x(B, {
|
|
250
|
-
modelValue:
|
|
251
|
-
"onUpdate:modelValue": o[0] || (o[0] = (O) =>
|
|
249
|
+
modelValue: i.value,
|
|
250
|
+
"onUpdate:modelValue": o[0] || (o[0] = (O) => i.value = O),
|
|
252
251
|
placeholder: I(n)("inventory.formField.filterItems")
|
|
253
252
|
}, null, 8, ["modelValue", "placeholder"])
|
|
254
253
|
])
|
|
255
254
|
]),
|
|
256
|
-
|
|
255
|
+
y.value.length ? (w(), X(U, {
|
|
257
256
|
key: 0,
|
|
258
257
|
class: "flex-1 overflow-y-auto"
|
|
259
258
|
}, {
|
|
260
259
|
default: R(() => [
|
|
261
|
-
(
|
|
260
|
+
(w(!0), V(J, null, $(y.value, (O) => (w(), V("div", {
|
|
262
261
|
key: O.keys.join(),
|
|
263
262
|
class: Z([
|
|
264
263
|
"transition-all overflow-y-clip",
|
|
@@ -268,7 +267,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
268
267
|
}, [
|
|
269
268
|
x(H, {
|
|
270
269
|
clickable: O.selectable !== !1,
|
|
271
|
-
onClick: () => O.selectable === !1 || O.disabled ||
|
|
270
|
+
onClick: () => O.selectable === !1 || O.disabled || f(O.keys, g.value, !l(O.keys, g.value)),
|
|
272
271
|
style: je({
|
|
273
272
|
paddingLeft: `${16 + O.indent * 16}px`,
|
|
274
273
|
paddingTop: "4px",
|
|
@@ -279,14 +278,14 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
279
278
|
default: R(() => [
|
|
280
279
|
a("div", ut, [
|
|
281
280
|
a("div", ct, [
|
|
282
|
-
(
|
|
281
|
+
(w(!0), V(J, null, $(I(ot)(i.value, O.label).segments, (T, Q) => (w(), V("span", {
|
|
283
282
|
key: Q,
|
|
284
283
|
class: Z({
|
|
285
284
|
"font-bold": T.isMatch
|
|
286
285
|
})
|
|
287
286
|
}, j(T.segment), 3))), 128))
|
|
288
287
|
]),
|
|
289
|
-
O.sublabel ? (
|
|
288
|
+
O.sublabel ? (w(), V("div", {
|
|
290
289
|
key: 0,
|
|
291
290
|
class: Z([
|
|
292
291
|
"fm-typo-en-body-sm-400",
|
|
@@ -302,9 +301,9 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
302
301
|
fn: R(() => [
|
|
303
302
|
x(L, {
|
|
304
303
|
disabled: O.disabled,
|
|
305
|
-
"model-value": l(O.keys,
|
|
304
|
+
"model-value": l(O.keys, g.value),
|
|
306
305
|
value: O.keys,
|
|
307
|
-
indeterminate: h(O.keys,
|
|
306
|
+
indeterminate: h(O.keys, g.value)
|
|
308
307
|
}, null, 8, ["disabled", "model-value", "value", "indeterminate"])
|
|
309
308
|
]),
|
|
310
309
|
key: "0"
|
|
@@ -313,7 +312,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
313
312
|
name: "append",
|
|
314
313
|
fn: R(() => [
|
|
315
314
|
x(N, {
|
|
316
|
-
"prepend-icon":
|
|
315
|
+
"prepend-icon": m(O.keys) ? "expand_less" : "expand_more",
|
|
317
316
|
size: "md",
|
|
318
317
|
variant: "tertiary",
|
|
319
318
|
onClick: Te(() => d(O.keys), ["stop"])
|
|
@@ -325,7 +324,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
325
324
|
], 10, rt))), 128))
|
|
326
325
|
]),
|
|
327
326
|
_: 1
|
|
328
|
-
})) : (
|
|
327
|
+
})) : (w(), V("div", dt, j(I(n)("inventory.formField.noItemsFound")), 1))
|
|
329
328
|
]);
|
|
330
329
|
};
|
|
331
330
|
}
|
|
@@ -355,8 +354,8 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
355
354
|
}
|
|
356
355
|
},
|
|
357
356
|
emits: ["update:modifiers"],
|
|
358
|
-
setup(F, { emit:
|
|
359
|
-
const s = F,
|
|
357
|
+
setup(F, { emit: g }) {
|
|
358
|
+
const s = F, i = g, n = de(), t = z(() => {
|
|
360
359
|
const l = s.groups.flatMap((r) => r.items.map((h) => {
|
|
361
360
|
const C = s.items.find((k) => k._id === h._id);
|
|
362
361
|
return {
|
|
@@ -366,25 +365,25 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
366
365
|
};
|
|
367
366
|
}));
|
|
368
367
|
return s.modifiers.map((r) => {
|
|
369
|
-
const h = l.find((
|
|
368
|
+
const h = l.find((p) => p.selection === r.selection), C = (h == null ? void 0 : h.name) ?? "-", k = (h == null ? void 0 : h.groupName) ?? "";
|
|
370
369
|
return {
|
|
371
370
|
...r,
|
|
372
371
|
name: C,
|
|
373
372
|
groupName: k
|
|
374
373
|
};
|
|
375
374
|
});
|
|
376
|
-
}),
|
|
375
|
+
}), u = z(() => s.groups.flatMap((l) => l.items.map((r) => ({ ...r, groupId: l._id }))));
|
|
377
376
|
function b({ selection: l }) {
|
|
378
|
-
|
|
377
|
+
i(
|
|
379
378
|
"update:modifiers",
|
|
380
379
|
s.modifiers.filter((r) => r.selection !== l)
|
|
381
380
|
);
|
|
382
381
|
}
|
|
383
|
-
function
|
|
382
|
+
function S({ selection: l }, r) {
|
|
384
383
|
const h = s.modifiers.find((C) => C.selection === l);
|
|
385
384
|
h && (h.code = r);
|
|
386
385
|
}
|
|
387
|
-
function
|
|
386
|
+
function y() {
|
|
388
387
|
let l = [];
|
|
389
388
|
s.groups.forEach((h) => {
|
|
390
389
|
let C = !1;
|
|
@@ -393,18 +392,18 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
393
392
|
sublabel: "Group",
|
|
394
393
|
value: h._id,
|
|
395
394
|
disabled: C,
|
|
396
|
-
children: h.items.reduce((k,
|
|
395
|
+
children: h.items.reduce((k, p) => {
|
|
397
396
|
var c;
|
|
398
|
-
const
|
|
399
|
-
(A) => A.combinationKey === (
|
|
397
|
+
const m = s.items.find((A) => A._id === p._id), d = (c = m == null ? void 0 : m.variant) == null ? void 0 : c.variantCombinations.find(
|
|
398
|
+
(A) => A.combinationKey === (p == null ? void 0 : p.combinationKey)
|
|
400
399
|
);
|
|
401
400
|
return [
|
|
402
401
|
...k,
|
|
403
402
|
{
|
|
404
|
-
label: `${
|
|
405
|
-
value: `${
|
|
403
|
+
label: `${p.name ?? (m == null ? void 0 : m.name)} ${d ? `(${d.name})` : ""}`,
|
|
404
|
+
value: `${p.selection}${d ? `/${d == null ? void 0 : d.combinationKey}` : ""}`,
|
|
406
405
|
disabled: C,
|
|
407
|
-
active: !!s.modifiers.find(({ selection: A }) => A ===
|
|
406
|
+
active: !!s.modifiers.find(({ selection: A }) => A === p.selection)
|
|
408
407
|
}
|
|
409
408
|
];
|
|
410
409
|
}, [])
|
|
@@ -424,61 +423,61 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
424
423
|
}).onPrimary((h) => {
|
|
425
424
|
const C = ee(s.modifiers);
|
|
426
425
|
let k = [];
|
|
427
|
-
function
|
|
428
|
-
if (d(
|
|
429
|
-
for (let c of
|
|
430
|
-
|
|
426
|
+
function p(m, d) {
|
|
427
|
+
if (d(m), K(m))
|
|
428
|
+
for (let c of m.children)
|
|
429
|
+
p(c, d);
|
|
431
430
|
}
|
|
432
|
-
h.forEach((
|
|
433
|
-
|
|
431
|
+
h.forEach((m) => {
|
|
432
|
+
p(m, (d) => {
|
|
434
433
|
var e;
|
|
435
434
|
if (s.groups.find(({ _id: o }) => o === d.value)) return;
|
|
436
|
-
const A =
|
|
437
|
-
!K(d) && d.active &&
|
|
435
|
+
const A = u.value.find(({ selection: o }) => o === d.value), f = k.find(({ selection: o }) => d.value === o);
|
|
436
|
+
!K(d) && d.active && f === void 0 && k.push({
|
|
438
437
|
addonGroupId: (A == null ? void 0 : A.groupId) ?? "",
|
|
439
438
|
selection: d.value,
|
|
440
439
|
code: ((e = C.find(({ selection: o }) => d.value === o)) == null ? void 0 : e.code) ?? ""
|
|
441
440
|
});
|
|
442
441
|
});
|
|
443
|
-
}),
|
|
442
|
+
}), i("update:modifiers", k);
|
|
444
443
|
});
|
|
445
444
|
}
|
|
446
|
-
const { t:
|
|
445
|
+
const { t: v } = G();
|
|
447
446
|
return (l, r) => {
|
|
448
447
|
const h = E("FmButton"), C = E("FmTextField");
|
|
449
|
-
return
|
|
448
|
+
return w(), V("div", mt, [
|
|
450
449
|
a("div", ft, [
|
|
451
|
-
a("div", pt, j(I(
|
|
450
|
+
a("div", pt, j(I(v)("inventory.integration.apply.addons")), 1),
|
|
452
451
|
x(h, {
|
|
453
452
|
type: "button",
|
|
454
453
|
variant: "plain",
|
|
455
454
|
size: "md",
|
|
456
455
|
icon: "link",
|
|
457
|
-
label: I(
|
|
458
|
-
onClick: r[0] || (r[0] = (k) =>
|
|
456
|
+
label: I(v)("inventory.integration.apply.applyAddon"),
|
|
457
|
+
onClick: r[0] || (r[0] = (k) => y())
|
|
459
458
|
}, null, 8, ["label"])
|
|
460
459
|
]),
|
|
461
460
|
a("div", null, [
|
|
462
|
-
t.value.length > 0 ? (
|
|
461
|
+
t.value.length > 0 ? (w(), V("table", vt, [
|
|
463
462
|
a("tr", gt, [
|
|
464
|
-
a("th", yt, j(I(
|
|
465
|
-
a("th", null, j(I(
|
|
463
|
+
a("th", yt, j(I(v)("inventory.integration.apply.name")), 1),
|
|
464
|
+
a("th", null, j(I(v)("inventory.integration.apply.code")), 1),
|
|
466
465
|
r[1] || (r[1] = a("th", { class: "w-1" }, " ", -1))
|
|
467
466
|
]),
|
|
468
|
-
(
|
|
467
|
+
(w(!0), V(J, null, $(t.value, (k, p) => (w(), V(J, { key: p }, [
|
|
469
468
|
r[2] || (r[2] = a("tr", { class: "block h-8" }, null, -1)),
|
|
470
469
|
a("tr", null, [
|
|
471
470
|
a("td", null, [
|
|
472
471
|
a("div", At, [
|
|
473
472
|
a("div", bt, j(k.name), 1),
|
|
474
|
-
k.groupName ? (
|
|
473
|
+
k.groupName ? (w(), V("div", ht, j(k.groupName), 1)) : _("", !0)
|
|
475
474
|
])
|
|
476
475
|
]),
|
|
477
476
|
a("td", null, [
|
|
478
477
|
x(C, {
|
|
479
478
|
disabled: F.loading,
|
|
480
479
|
"model-value": k.code,
|
|
481
|
-
"onUpdate:modelValue": [(
|
|
480
|
+
"onUpdate:modelValue": [(m) => k.code = m, (m) => S(k, m)],
|
|
482
481
|
rules: [
|
|
483
482
|
function(d) {
|
|
484
483
|
return !!d || "Required";
|
|
@@ -494,7 +493,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
494
493
|
icon: "delete",
|
|
495
494
|
"icon-color": "#000000",
|
|
496
495
|
size: "md",
|
|
497
|
-
onClick: (
|
|
496
|
+
onClick: (m) => b(k)
|
|
498
497
|
}, null, 8, ["disabled", "onClick"])
|
|
499
498
|
])
|
|
500
499
|
])
|
|
@@ -505,64 +504,64 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
505
504
|
};
|
|
506
505
|
}
|
|
507
506
|
});
|
|
508
|
-
function St(F,
|
|
509
|
-
const s =
|
|
507
|
+
function St(F, g = []) {
|
|
508
|
+
const s = g.map((n) => F.find((t) => t._id === n)).filter((n) => !!n);
|
|
510
509
|
return kt(s).reduce((n, t) => (n[t.combinationKey] = t.selectionName.join(" / "), n), {});
|
|
511
510
|
}
|
|
512
|
-
function wt(F,
|
|
513
|
-
const
|
|
514
|
-
var
|
|
515
|
-
const b =
|
|
516
|
-
...
|
|
517
|
-
codeName: [
|
|
511
|
+
function wt(F, g, s) {
|
|
512
|
+
const i = s.reduce((t, u) => {
|
|
513
|
+
var v, l, r;
|
|
514
|
+
const b = u.category || "", S = St(g, (v = u.variant) == null ? void 0 : v.variantGroupIds), y = {
|
|
515
|
+
...u,
|
|
516
|
+
codeName: [u.code, u.name].filter((h) => !!h).join(" "),
|
|
518
517
|
variant: {
|
|
519
|
-
variantGroupIds: ((l =
|
|
520
|
-
variantCombinations: (((r =
|
|
521
|
-
const C = h.code, k = h.name ||
|
|
518
|
+
variantGroupIds: ((l = u.variant) == null ? void 0 : l.variantGroupIds) || [],
|
|
519
|
+
variantCombinations: (((r = u.variant) == null ? void 0 : r.variantCombinations) || []).map((h) => {
|
|
520
|
+
const C = h.code, k = h.name || S[h.combinationKey || ""];
|
|
522
521
|
return {
|
|
523
522
|
...h,
|
|
524
|
-
codeName: [C, k].filter((
|
|
523
|
+
codeName: [C, k].filter((p) => !!p).join(" ").trim() || "-"
|
|
525
524
|
};
|
|
526
525
|
})
|
|
527
526
|
}
|
|
528
527
|
};
|
|
529
|
-
return t[b] = t[b] ? [...t[b],
|
|
530
|
-
}, {}), n = Object.values(
|
|
528
|
+
return t[b] = t[b] ? [...t[b], y] : [y], t;
|
|
529
|
+
}, {}), n = Object.values(i)[0];
|
|
531
530
|
return F.length === 0 && n ? n.map((t) => ({
|
|
532
531
|
id: t._id,
|
|
533
532
|
name: t.name ?? "",
|
|
534
|
-
items:
|
|
533
|
+
items: i[t._id || ""] || []
|
|
535
534
|
})) || [] : F.map((t) => ({
|
|
536
535
|
id: t._id,
|
|
537
536
|
name: t.name ?? "",
|
|
538
|
-
items:
|
|
537
|
+
items: i[t._id || ""] || []
|
|
539
538
|
}));
|
|
540
539
|
}
|
|
541
|
-
function Me(F,
|
|
540
|
+
function Me(F, g) {
|
|
542
541
|
if (F.length == 1)
|
|
543
542
|
return F[0];
|
|
544
|
-
const s = F[0],
|
|
545
|
-
return s.reduce((
|
|
543
|
+
const s = F[0], i = F.slice(1, F.length), n = Me(i, g);
|
|
544
|
+
return s.reduce((u, b) => [...u, ...n.map((S) => g(b, S))], new Array());
|
|
546
545
|
}
|
|
547
546
|
function kt(F) {
|
|
548
547
|
if (F.length === 0) return [];
|
|
549
|
-
const
|
|
550
|
-
(
|
|
548
|
+
const g = F.map(
|
|
549
|
+
(i) => (i.options ?? []).map(
|
|
551
550
|
(n) => ({
|
|
552
|
-
combinationKey: [`${
|
|
551
|
+
combinationKey: [`${i._id}/${n._id}`],
|
|
553
552
|
selectionName: [n.name ?? ""]
|
|
554
553
|
})
|
|
555
554
|
)
|
|
556
555
|
);
|
|
557
|
-
return Me(
|
|
558
|
-
combinationKey: [...
|
|
559
|
-
selectionName: [...
|
|
560
|
-
})).map((
|
|
561
|
-
const n = [...
|
|
556
|
+
return Me(g, (i, n) => ({
|
|
557
|
+
combinationKey: [...i.combinationKey, ...n.combinationKey],
|
|
558
|
+
selectionName: [...i.selectionName, ...n.selectionName]
|
|
559
|
+
})).map((i) => {
|
|
560
|
+
const n = [...i.combinationKey];
|
|
562
561
|
return n.sort(), {
|
|
563
562
|
combinationKey: n.join("/"),
|
|
564
563
|
active: !0,
|
|
565
|
-
selectionName:
|
|
564
|
+
selectionName: i.selectionName
|
|
566
565
|
};
|
|
567
566
|
});
|
|
568
567
|
}
|
|
@@ -597,59 +596,59 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
597
596
|
}
|
|
598
597
|
},
|
|
599
598
|
emits: ["update:bindings"],
|
|
600
|
-
setup(F, { emit:
|
|
601
|
-
const s = F,
|
|
602
|
-
() => wt(
|
|
603
|
-
),
|
|
599
|
+
setup(F, { emit: g }) {
|
|
600
|
+
const s = F, i = g, n = de(), t = z(() => s.isAddon ? "Addons" : "Products"), u = z(() => s.isAddon ? [] : s.categories), b = z(
|
|
601
|
+
() => wt(u.value, s.variants, s.menus)
|
|
602
|
+
), S = z(() => {
|
|
604
603
|
if (s.isAddon)
|
|
605
604
|
return s.bindings.map((d) => {
|
|
606
|
-
const c = s.menus.find((
|
|
605
|
+
const c = s.menus.find((f) => f._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
607
606
|
return {
|
|
608
607
|
...d,
|
|
609
608
|
name: A,
|
|
610
609
|
itemCode: (c == null ? void 0 : c.code) ?? "-"
|
|
611
610
|
};
|
|
612
611
|
});
|
|
613
|
-
const
|
|
612
|
+
const m = b.value.flatMap((d) => d.items);
|
|
614
613
|
return s.bindings.map((d) => {
|
|
615
614
|
var o;
|
|
616
|
-
const c =
|
|
617
|
-
let
|
|
615
|
+
const c = m.find((B) => B._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
616
|
+
let f = (c == null ? void 0 : c.code) ?? "-", e;
|
|
618
617
|
if (d.combinationKey) {
|
|
619
618
|
const B = (((o = c == null ? void 0 : c.variant) == null ? void 0 : o.variantCombinations) || []).find(
|
|
620
619
|
(L) => L.combinationKey === d.combinationKey
|
|
621
620
|
);
|
|
622
|
-
e = (B == null ? void 0 : B.name) ?? (B == null ? void 0 : B.codeName) ?? "",
|
|
621
|
+
e = (B == null ? void 0 : B.name) ?? (B == null ? void 0 : B.codeName) ?? "", f = (B == null ? void 0 : B.code) ?? f;
|
|
623
622
|
}
|
|
624
623
|
return {
|
|
625
624
|
...d,
|
|
626
625
|
name: A,
|
|
627
|
-
itemCode:
|
|
626
|
+
itemCode: f,
|
|
628
627
|
variantName: e
|
|
629
628
|
};
|
|
630
629
|
});
|
|
631
630
|
});
|
|
632
|
-
function
|
|
633
|
-
|
|
631
|
+
function y(m) {
|
|
632
|
+
i(
|
|
634
633
|
"update:bindings",
|
|
635
634
|
s.bindings.filter(
|
|
636
|
-
(d) => d.productId !==
|
|
635
|
+
(d) => d.productId !== m.productId || d.combinationKey !== m.combinationKey
|
|
637
636
|
)
|
|
638
637
|
);
|
|
639
638
|
}
|
|
640
|
-
function
|
|
639
|
+
function v({ productId: m, combinationKey: d }, c) {
|
|
641
640
|
const A = s.bindings.find(
|
|
642
|
-
(
|
|
641
|
+
(f) => f.productId === m && f.combinationKey === d
|
|
643
642
|
);
|
|
644
643
|
A && (A.code = c);
|
|
645
644
|
}
|
|
646
645
|
function l() {
|
|
647
|
-
return b.value.map((
|
|
648
|
-
label:
|
|
646
|
+
return b.value.map((m) => ({
|
|
647
|
+
label: m.name,
|
|
649
648
|
sublabel: "Category",
|
|
650
|
-
value:
|
|
649
|
+
value: m.name,
|
|
651
650
|
disabled: !1,
|
|
652
|
-
children:
|
|
651
|
+
children: m.items.map((d) => {
|
|
653
652
|
var A;
|
|
654
653
|
const c = (A = d.variant) == null ? void 0 : A.variantCombinations;
|
|
655
654
|
return c != null && c.length ? {
|
|
@@ -663,18 +662,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
663
662
|
productId: d._id
|
|
664
663
|
},
|
|
665
664
|
active: !!s.bindings.find(
|
|
666
|
-
({ productId:
|
|
665
|
+
({ productId: f, combinationKey: e }) => d._id === f && !e
|
|
667
666
|
)
|
|
668
667
|
},
|
|
669
|
-
...c.map((
|
|
670
|
-
label:
|
|
668
|
+
...c.map((f) => ({
|
|
669
|
+
label: f.codeName ?? "",
|
|
671
670
|
value: {
|
|
672
671
|
productId: d._id,
|
|
673
|
-
combinationKey:
|
|
672
|
+
combinationKey: f.combinationKey
|
|
674
673
|
},
|
|
675
674
|
sublabel: "Variant",
|
|
676
675
|
active: !!s.bindings.find(
|
|
677
|
-
({ productId: e, combinationKey: o }) => d._id === e &&
|
|
676
|
+
({ productId: e, combinationKey: o }) => d._id === e && f.combinationKey === o
|
|
678
677
|
)
|
|
679
678
|
}))
|
|
680
679
|
]
|
|
@@ -684,24 +683,24 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
684
683
|
productId: d._id
|
|
685
684
|
},
|
|
686
685
|
active: !!s.bindings.find(
|
|
687
|
-
({ productId:
|
|
686
|
+
({ productId: f, combinationKey: e }) => d._id === f && !e
|
|
688
687
|
)
|
|
689
688
|
};
|
|
690
689
|
})
|
|
691
690
|
}));
|
|
692
691
|
}
|
|
693
692
|
function r() {
|
|
694
|
-
return s.menus.map((
|
|
695
|
-
label:
|
|
696
|
-
value: { productId:
|
|
693
|
+
return s.menus.map((m) => ({
|
|
694
|
+
label: m.name,
|
|
695
|
+
value: { productId: m._id },
|
|
697
696
|
active: !!s.bindings.find(
|
|
698
|
-
({ productId: d, combinationKey: c }) =>
|
|
697
|
+
({ productId: d, combinationKey: c }) => m._id === d && !c
|
|
699
698
|
)
|
|
700
699
|
}));
|
|
701
700
|
}
|
|
702
|
-
function h(
|
|
701
|
+
function h(m) {
|
|
703
702
|
const d = ee(s.bindings);
|
|
704
|
-
return
|
|
703
|
+
return m.flatMap((c) => c.children.flatMap((A) => {
|
|
705
704
|
var e;
|
|
706
705
|
if (K(A))
|
|
707
706
|
return A.children.filter((o) => o.active).map((o) => {
|
|
@@ -720,32 +719,32 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
720
719
|
});
|
|
721
720
|
if (!A.active)
|
|
722
721
|
return [];
|
|
723
|
-
const { productId:
|
|
722
|
+
const { productId: f } = A.value;
|
|
724
723
|
return [
|
|
725
724
|
{
|
|
726
|
-
productId:
|
|
727
|
-
code: ((e = d.find(({ productId: o, combinationKey: B }) =>
|
|
725
|
+
productId: f,
|
|
726
|
+
code: ((e = d.find(({ productId: o, combinationKey: B }) => f === o && !B)) == null ? void 0 : e.code) ?? ""
|
|
728
727
|
}
|
|
729
728
|
];
|
|
730
729
|
}));
|
|
731
730
|
}
|
|
732
|
-
function C(
|
|
731
|
+
function C(m) {
|
|
733
732
|
const d = ee(s.bindings);
|
|
734
|
-
return
|
|
733
|
+
return m.filter((c) => c.active).map(
|
|
735
734
|
(c) => {
|
|
736
735
|
var A;
|
|
737
736
|
return {
|
|
738
737
|
productId: c.value.productId,
|
|
739
|
-
code: ((A = d.find(({ productId:
|
|
738
|
+
code: ((A = d.find(({ productId: f }) => f === c.value.productId)) == null ? void 0 : A.code) ?? ""
|
|
740
739
|
};
|
|
741
740
|
}
|
|
742
741
|
);
|
|
743
742
|
}
|
|
744
743
|
function k() {
|
|
745
|
-
let
|
|
746
|
-
s.isAddon ?
|
|
744
|
+
let m;
|
|
745
|
+
s.isAddon ? m = r() : m = l();
|
|
747
746
|
const d = {
|
|
748
|
-
modelValue:
|
|
747
|
+
modelValue: m
|
|
749
748
|
};
|
|
750
749
|
n.open({
|
|
751
750
|
title: `Select ${t.value}`,
|
|
@@ -757,47 +756,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
757
756
|
}
|
|
758
757
|
}).onPrimary((c) => {
|
|
759
758
|
let A;
|
|
760
|
-
s.isAddon ? A = C(c) : A = h(c),
|
|
759
|
+
s.isAddon ? A = C(c) : A = h(c), i("update:bindings", A);
|
|
761
760
|
});
|
|
762
761
|
}
|
|
763
|
-
const { t:
|
|
764
|
-
return (
|
|
762
|
+
const { t: p } = G();
|
|
763
|
+
return (m, d) => {
|
|
765
764
|
const c = E("FmButton"), A = E("FmTextField");
|
|
766
|
-
return
|
|
765
|
+
return w(), V("div", Bt, [
|
|
767
766
|
a("div", Ct, [
|
|
768
|
-
a("div", Et, j(F.isAddon ? I(
|
|
767
|
+
a("div", Et, j(F.isAddon ? I(p)("inventory.integration.apply.addons") : I(p)("inventory.integration.apply.products")), 1),
|
|
769
768
|
x(c, {
|
|
770
769
|
type: "button",
|
|
771
770
|
variant: "plain",
|
|
772
771
|
size: "md",
|
|
773
772
|
icon: "link",
|
|
774
|
-
label: F.isAddon ? I(
|
|
775
|
-
onClick: d[0] || (d[0] = (
|
|
773
|
+
label: F.isAddon ? I(p)("inventory.integration.apply.applyAddon") : I(p)("inventory.integration.apply.applyProduct"),
|
|
774
|
+
onClick: d[0] || (d[0] = (f) => k())
|
|
776
775
|
}, null, 8, ["label"])
|
|
777
776
|
]),
|
|
778
777
|
a("div", null, [
|
|
779
|
-
|
|
778
|
+
S.value.length > 0 ? (w(), V("table", Ft, [
|
|
780
779
|
a("thead", null, [
|
|
781
780
|
a("tr", Lt, [
|
|
782
|
-
a("th", Vt, j(I(
|
|
783
|
-
a("th", null, j(I(
|
|
781
|
+
a("th", Vt, j(I(p)("inventory.integration.apply.name")), 1),
|
|
782
|
+
a("th", null, j(I(p)("inventory.integration.apply.code")), 1),
|
|
784
783
|
d[1] || (d[1] = a("th", { class: "w-1" }, " ", -1))
|
|
785
784
|
])
|
|
786
785
|
]),
|
|
787
786
|
a("tbody", null, [
|
|
788
|
-
(
|
|
787
|
+
(w(!0), V(J, null, $(S.value, (f, e) => (w(), V(J, { key: e }, [
|
|
789
788
|
d[2] || (d[2] = a("tr", { class: "block h-8" }, null, -1)),
|
|
790
789
|
a("tr", null, [
|
|
791
790
|
a("td", null, [
|
|
792
791
|
a("div", Nt, [
|
|
793
|
-
a("div", Dt, j(
|
|
794
|
-
|
|
792
|
+
a("div", Dt, j(f.itemCode) + " " + j(f.name), 1),
|
|
793
|
+
f.variantName ? (w(), V("div", Rt, j(f.variantName), 1)) : _("", !0)
|
|
795
794
|
])
|
|
796
795
|
]),
|
|
797
796
|
a("td", null, [
|
|
798
797
|
x(A, {
|
|
799
|
-
"model-value":
|
|
800
|
-
"onUpdate:modelValue": [(o) =>
|
|
798
|
+
"model-value": f.code,
|
|
799
|
+
"onUpdate:modelValue": [(o) => f.code = o, (o) => v(f, o)],
|
|
801
800
|
rules: [
|
|
802
801
|
function(B) {
|
|
803
802
|
return !!B || "Required";
|
|
@@ -812,7 +811,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
812
811
|
icon: "delete",
|
|
813
812
|
"icon-color": "#000000",
|
|
814
813
|
size: "md",
|
|
815
|
-
onClick: (o) =>
|
|
814
|
+
onClick: (o) => y(f)
|
|
816
815
|
}, null, 8, ["onClick"])
|
|
817
816
|
])
|
|
818
817
|
])
|
|
@@ -835,28 +834,28 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
835
834
|
loading: { type: Boolean }
|
|
836
835
|
},
|
|
837
836
|
emits: ["update:setting", "update:show", "submit"],
|
|
838
|
-
setup(F, { emit:
|
|
839
|
-
const s = F,
|
|
840
|
-
ve([() => s.show], ([
|
|
841
|
-
if (
|
|
837
|
+
setup(F, { emit: g }) {
|
|
838
|
+
const s = F, i = g, n = pe(ee(s.setting));
|
|
839
|
+
ve([() => s.show], ([v]) => {
|
|
840
|
+
if (v)
|
|
842
841
|
for (const l of Object.keys(s.setting))
|
|
843
842
|
n[l] = s.setting[l];
|
|
844
843
|
});
|
|
845
|
-
const t = M(),
|
|
844
|
+
const t = M(), u = ae(s, "show");
|
|
846
845
|
function b() {
|
|
847
|
-
var
|
|
848
|
-
(l = (
|
|
846
|
+
var v, l;
|
|
847
|
+
(l = (v = t.value) == null ? void 0 : v.validateInputs) == null || l.call(v);
|
|
849
848
|
}
|
|
850
|
-
function
|
|
851
|
-
|
|
849
|
+
function S() {
|
|
850
|
+
i("update:setting", ee(n)), i("submit");
|
|
852
851
|
}
|
|
853
|
-
const { t:
|
|
854
|
-
return (
|
|
852
|
+
const { t: y } = G();
|
|
853
|
+
return (v, l) => {
|
|
855
854
|
const r = E("FmChip"), h = E("FmForm"), C = E("FmButton"), k = E("FmSideSheet");
|
|
856
|
-
return
|
|
857
|
-
modelValue: I(
|
|
858
|
-
"onUpdate:modelValue": l[4] || (l[4] = (
|
|
859
|
-
header: I(
|
|
855
|
+
return w(), X(k, {
|
|
856
|
+
modelValue: I(u),
|
|
857
|
+
"onUpdate:modelValue": l[4] || (l[4] = (p) => se(u) ? u.value = p : null),
|
|
858
|
+
header: I(y)("inventory.integration.apply.title"),
|
|
860
859
|
"dismiss-away": "",
|
|
861
860
|
"close-button": "",
|
|
862
861
|
"max-width": 500
|
|
@@ -869,22 +868,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
869
868
|
x(h, {
|
|
870
869
|
ref_key: "formRef",
|
|
871
870
|
ref: t,
|
|
872
|
-
onValidationSuccess: l[2] || (l[2] = (
|
|
871
|
+
onValidationSuccess: l[2] || (l[2] = (p) => S())
|
|
873
872
|
}, {
|
|
874
873
|
default: R(() => [
|
|
875
874
|
x(me, {
|
|
876
875
|
bindings: n.bindings,
|
|
877
|
-
categories:
|
|
878
|
-
variants:
|
|
879
|
-
menus:
|
|
880
|
-
"onUpdate:bindings": l[0] || (l[0] = (
|
|
876
|
+
categories: v.categories,
|
|
877
|
+
variants: v.variants,
|
|
878
|
+
menus: v.menus,
|
|
879
|
+
"onUpdate:bindings": l[0] || (l[0] = (p) => n.bindings = p)
|
|
881
880
|
}, null, 8, ["bindings", "categories", "variants", "menus"]),
|
|
882
881
|
x(It, {
|
|
883
882
|
form: t.value,
|
|
884
883
|
modifiers: n.modifiers ?? [],
|
|
885
|
-
groups:
|
|
886
|
-
items:
|
|
887
|
-
"onUpdate:modifiers": l[1] || (l[1] = (
|
|
884
|
+
groups: v.groups ?? [],
|
|
885
|
+
items: v.menus ?? [],
|
|
886
|
+
"onUpdate:modifiers": l[1] || (l[1] = (p) => n.modifiers = p)
|
|
888
887
|
}, null, 8, ["form", "modifiers", "groups", "items"])
|
|
889
888
|
]),
|
|
890
889
|
_: 1
|
|
@@ -893,10 +892,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
893
892
|
]),
|
|
894
893
|
"side-sheet-footer": R(() => [
|
|
895
894
|
x(C, {
|
|
896
|
-
loading:
|
|
895
|
+
loading: v.loading,
|
|
897
896
|
type: "submit",
|
|
898
|
-
label: I(
|
|
899
|
-
onClick: l[3] || (l[3] = (
|
|
897
|
+
label: I(y)("common.confirm"),
|
|
898
|
+
onClick: l[3] || (l[3] = (p) => b())
|
|
900
899
|
}, null, 8, ["loading", "label"])
|
|
901
900
|
]),
|
|
902
901
|
_: 1
|
|
@@ -915,40 +914,40 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
915
914
|
loading: { type: Boolean }
|
|
916
915
|
},
|
|
917
916
|
emits: ["update:setting", "update:show", "submit"],
|
|
918
|
-
setup(F, { emit:
|
|
919
|
-
const s = F,
|
|
920
|
-
ve([() => s.show], ([
|
|
921
|
-
if (
|
|
922
|
-
for (const
|
|
923
|
-
n[
|
|
917
|
+
setup(F, { emit: g }) {
|
|
918
|
+
const s = F, i = g, n = pe(ee(s.setting));
|
|
919
|
+
ve([() => s.show], ([p]) => {
|
|
920
|
+
if (p)
|
|
921
|
+
for (const m of Object.keys(s.setting))
|
|
922
|
+
n[m] = s.setting[m];
|
|
924
923
|
});
|
|
925
|
-
const t = z(() => s.menus.filter((
|
|
926
|
-
const
|
|
927
|
-
return
|
|
928
|
-
})), b = z(() => s.menus.filter((
|
|
929
|
-
const
|
|
930
|
-
return
|
|
924
|
+
const t = z(() => s.menus.filter((p) => (p == null ? void 0 : p.category) === null)), u = z(() => n.bindings.filter((p) => {
|
|
925
|
+
const m = s.menus.find((d) => d._id === p.productId);
|
|
926
|
+
return m ? (m == null ? void 0 : m.category) === null : !1;
|
|
927
|
+
})), b = z(() => s.menus.filter((p) => (p == null ? void 0 : p.category) !== null)), S = z(() => n.bindings.filter((p) => {
|
|
928
|
+
const m = s.menus.find((d) => d._id === p.productId);
|
|
929
|
+
return m ? (m == null ? void 0 : m.category) !== null : !1;
|
|
931
930
|
}));
|
|
932
|
-
function
|
|
933
|
-
n.bindings = [...
|
|
931
|
+
function y(p) {
|
|
932
|
+
n.bindings = [...u.value, ...p];
|
|
934
933
|
}
|
|
935
|
-
function
|
|
936
|
-
n.bindings = [...
|
|
934
|
+
function v(p) {
|
|
935
|
+
n.bindings = [...S.value, ...p];
|
|
937
936
|
}
|
|
938
937
|
const l = M(), r = ae(s, "show");
|
|
939
938
|
function h() {
|
|
940
|
-
var
|
|
941
|
-
(
|
|
939
|
+
var p, m;
|
|
940
|
+
(m = (p = l.value) == null ? void 0 : p.validateInputs) == null || m.call(p);
|
|
942
941
|
}
|
|
943
942
|
function C() {
|
|
944
|
-
|
|
943
|
+
i("update:setting", ee(n)), i("submit");
|
|
945
944
|
}
|
|
946
|
-
const { t: k } =
|
|
947
|
-
return (
|
|
948
|
-
const d = E("FmChip"), c = E("FmForm"), A = E("FmButton"),
|
|
949
|
-
return
|
|
945
|
+
const { t: k } = G();
|
|
946
|
+
return (p, m) => {
|
|
947
|
+
const d = E("FmChip"), c = E("FmForm"), A = E("FmButton"), f = E("FmSideSheet");
|
|
948
|
+
return w(), X(f, {
|
|
950
949
|
modelValue: I(r),
|
|
951
|
-
"onUpdate:modelValue":
|
|
950
|
+
"onUpdate:modelValue": m[4] || (m[4] = (e) => se(r) ? r.value = e : null),
|
|
952
951
|
header: I(k)("inventory.integration.apply.title"),
|
|
953
952
|
"dismiss-away": "",
|
|
954
953
|
"close-button": "",
|
|
@@ -962,23 +961,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
962
961
|
x(c, {
|
|
963
962
|
ref_key: "formRef",
|
|
964
963
|
ref: l,
|
|
965
|
-
onValidationSuccess:
|
|
964
|
+
onValidationSuccess: m[2] || (m[2] = (e) => C())
|
|
966
965
|
}, {
|
|
967
966
|
default: R(() => [
|
|
968
967
|
x(me, {
|
|
969
|
-
categories:
|
|
970
|
-
variants:
|
|
971
|
-
bindings:
|
|
968
|
+
categories: p.categories,
|
|
969
|
+
variants: p.variants,
|
|
970
|
+
bindings: S.value,
|
|
972
971
|
menus: b.value,
|
|
973
|
-
"onUpdate:bindings":
|
|
972
|
+
"onUpdate:bindings": m[0] || (m[0] = (e) => y(e))
|
|
974
973
|
}, null, 8, ["categories", "variants", "bindings", "menus"]),
|
|
975
974
|
x(me, {
|
|
976
975
|
"is-addon": !0,
|
|
977
976
|
categories: [],
|
|
978
|
-
variants:
|
|
979
|
-
bindings:
|
|
977
|
+
variants: p.variants,
|
|
978
|
+
bindings: u.value,
|
|
980
979
|
menus: t.value,
|
|
981
|
-
"onUpdate:bindings":
|
|
980
|
+
"onUpdate:bindings": m[1] || (m[1] = (e) => v(e))
|
|
982
981
|
}, null, 8, ["variants", "bindings", "menus"])
|
|
983
982
|
]),
|
|
984
983
|
_: 1
|
|
@@ -987,10 +986,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
987
986
|
]),
|
|
988
987
|
"side-sheet-footer": R(() => [
|
|
989
988
|
x(A, {
|
|
990
|
-
loading:
|
|
989
|
+
loading: p.loading,
|
|
991
990
|
type: "submit",
|
|
992
991
|
label: I(k)("common.confirm"),
|
|
993
|
-
onClick:
|
|
992
|
+
onClick: m[3] || (m[3] = (e) => h())
|
|
994
993
|
}, null, 8, ["loading", "label"])
|
|
995
994
|
]),
|
|
996
995
|
_: 1
|
|
@@ -1000,22 +999,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1000
999
|
}), Ht = { key: 0 }, _t = { class: "flex justify-center" }, Xt = ["src"], Ut = { class: "flex flex-col items-center gap-2" }, Qt = { class: "text-lg font-bold" }, Yt = { class: "text-fm-color-neutral-gray-300" }, Jt = { key: 0 }, Kt = /* @__PURE__ */ Y({
|
|
1001
1000
|
__name: "FoodMarketHub",
|
|
1002
1001
|
setup(F) {
|
|
1003
|
-
const
|
|
1002
|
+
const g = ie(), s = te(), i = W(), n = M(!1), t = Ze(), u = z(() => t.state.menu ?? []), b = z(() => t.state.group ?? []), S = z(() => t.state.variants ?? []), y = z(() => t.state.categories ?? []), v = Ue(), l = z(() => {
|
|
1004
1003
|
var c;
|
|
1005
|
-
return (c =
|
|
1004
|
+
return (c = g.currentBusiness.value) == null ? void 0 : c.menuVersion;
|
|
1006
1005
|
});
|
|
1007
|
-
|
|
1006
|
+
i.watchLocation(t.init);
|
|
1008
1007
|
const r = M(!1);
|
|
1009
1008
|
async function h() {
|
|
1010
1009
|
r.value = !0;
|
|
1011
1010
|
}
|
|
1012
|
-
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm),
|
|
1013
|
-
async function
|
|
1011
|
+
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm), p = z(() => k.value);
|
|
1012
|
+
async function m() {
|
|
1014
1013
|
const c = t.state.setting;
|
|
1015
1014
|
if (c) {
|
|
1016
1015
|
n.value = !0;
|
|
1017
1016
|
try {
|
|
1018
|
-
await
|
|
1017
|
+
await v.updateSetting(c), s.open({
|
|
1019
1018
|
title: "Success",
|
|
1020
1019
|
message: "Your changes has been saved",
|
|
1021
1020
|
type: "success"
|
|
@@ -1032,14 +1031,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1032
1031
|
}
|
|
1033
1032
|
}
|
|
1034
1033
|
}
|
|
1035
|
-
const { t: d } =
|
|
1034
|
+
const { t: d } = G();
|
|
1036
1035
|
return (c, A) => {
|
|
1037
|
-
const
|
|
1038
|
-
return I(t).isEnabled && !I(t).isBusinessLocation ? (
|
|
1036
|
+
const f = E("FmCardSection"), e = E("FmCard");
|
|
1037
|
+
return I(t).isEnabled && !I(t).isBusinessLocation ? (w(), V("div", Ht, [
|
|
1039
1038
|
x(e, {
|
|
1040
1039
|
class: Z({
|
|
1041
|
-
"w-full":
|
|
1042
|
-
"w-1/2": !
|
|
1040
|
+
"w-full": p.value,
|
|
1041
|
+
"w-1/2": !p.value,
|
|
1043
1042
|
border: !0,
|
|
1044
1043
|
"border-fm-color-neutral-gray-100": !0,
|
|
1045
1044
|
"cursor-pointer": !0,
|
|
@@ -1048,7 +1047,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1048
1047
|
onClick: A[0] || (A[0] = (o) => h())
|
|
1049
1048
|
}, {
|
|
1050
1049
|
default: R(() => [
|
|
1051
|
-
x(
|
|
1050
|
+
x(f, null, {
|
|
1052
1051
|
default: R(() => [
|
|
1053
1052
|
a("div", _t, [
|
|
1054
1053
|
a("img", {
|
|
@@ -1066,39 +1065,39 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1066
1065
|
]),
|
|
1067
1066
|
_: 1
|
|
1068
1067
|
}, 8, ["class"]),
|
|
1069
|
-
I(t).state.setting ? (
|
|
1070
|
-
(
|
|
1071
|
-
l.value === "v3" ? (
|
|
1068
|
+
I(t).state.setting ? (w(), V("div", Jt, [
|
|
1069
|
+
(w(), X(ue, { to: "body" }, [
|
|
1070
|
+
l.value === "v3" ? (w(), X(jt, {
|
|
1072
1071
|
key: 0,
|
|
1073
|
-
menus:
|
|
1074
|
-
variants:
|
|
1075
|
-
categories:
|
|
1072
|
+
menus: u.value,
|
|
1073
|
+
variants: S.value,
|
|
1074
|
+
categories: y.value,
|
|
1076
1075
|
setting: I(t).state.setting,
|
|
1077
1076
|
"onUpdate:setting": A[1] || (A[1] = (o) => I(t).state.setting = o),
|
|
1078
1077
|
show: r.value,
|
|
1079
1078
|
"onUpdate:show": A[2] || (A[2] = (o) => r.value = o),
|
|
1080
1079
|
groups: b.value,
|
|
1081
1080
|
loading: n.value,
|
|
1082
|
-
onSubmit: A[3] || (A[3] = (o) =>
|
|
1083
|
-
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (
|
|
1081
|
+
onSubmit: A[3] || (A[3] = (o) => m())
|
|
1082
|
+
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (w(), X(zt, {
|
|
1084
1083
|
key: 1,
|
|
1085
|
-
menus:
|
|
1086
|
-
variants:
|
|
1087
|
-
categories:
|
|
1084
|
+
menus: u.value,
|
|
1085
|
+
variants: S.value,
|
|
1086
|
+
categories: y.value,
|
|
1088
1087
|
setting: I(t).state.setting,
|
|
1089
1088
|
"onUpdate:setting": A[4] || (A[4] = (o) => I(t).state.setting = o),
|
|
1090
1089
|
show: r.value,
|
|
1091
1090
|
"onUpdate:show": A[5] || (A[5] = (o) => r.value = o),
|
|
1092
1091
|
groups: b.value,
|
|
1093
1092
|
loading: n.value,
|
|
1094
|
-
onSubmit: A[6] || (A[6] = (o) =>
|
|
1093
|
+
onSubmit: A[6] || (A[6] = (o) => m())
|
|
1095
1094
|
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"]))
|
|
1096
1095
|
]))
|
|
1097
1096
|
])) : _("", !0)
|
|
1098
1097
|
])) : _("", !0);
|
|
1099
1098
|
};
|
|
1100
1099
|
}
|
|
1101
|
-
}), qt = "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", Zt = { class: "flex-col items-center" }, Pt = { class: "flex gap-2" }, Gt = {
|
|
1100
|
+
}), qt = "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", Zt = { class: "flex-col items-center" }, Gt = { class: "flex gap-2" }, Pt = {
|
|
1102
1101
|
key: 0,
|
|
1103
1102
|
class: "text-xs text-red-500 mt-2"
|
|
1104
1103
|
}, Wt = {
|
|
@@ -1118,25 +1117,25 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1118
1117
|
}) }
|
|
1119
1118
|
},
|
|
1120
1119
|
emits: ["update:modelValue"],
|
|
1121
|
-
setup(F, { emit:
|
|
1122
|
-
const s = F,
|
|
1123
|
-
return (t,
|
|
1124
|
-
const b = E("FmSelect"),
|
|
1125
|
-
return
|
|
1126
|
-
a("div",
|
|
1120
|
+
setup(F, { emit: g }) {
|
|
1121
|
+
const s = F, i = z(() => s.modelValue), n = g;
|
|
1122
|
+
return (t, u) => {
|
|
1123
|
+
const b = E("FmSelect"), S = E("FmButton"), y = E("FmIcon");
|
|
1124
|
+
return w(), V("div", Zt, [
|
|
1125
|
+
a("div", Gt, [
|
|
1127
1126
|
x(b, {
|
|
1128
1127
|
placeholder: "Select NetSuite Location",
|
|
1129
1128
|
items: t.nsLocationOptions,
|
|
1130
1129
|
searchable: "",
|
|
1131
1130
|
searchTarget: "label",
|
|
1132
|
-
"model-value":
|
|
1133
|
-
"onUpdate:modelValue":
|
|
1131
|
+
"model-value": i.value,
|
|
1132
|
+
"onUpdate:modelValue": u[0] || (u[0] = (v) => n("update:modelValue", v))
|
|
1134
1133
|
}, null, 8, ["items", "model-value"]),
|
|
1135
|
-
|
|
1134
|
+
i.value.netsuiteId ? (w(), X(S, {
|
|
1136
1135
|
key: 0,
|
|
1137
1136
|
variant: "secondary",
|
|
1138
1137
|
label: "Clear",
|
|
1139
|
-
onClick:
|
|
1138
|
+
onClick: u[1] || (u[1] = (v) => n("update:modelValue", {
|
|
1140
1139
|
netsuiteId: "",
|
|
1141
1140
|
name: "",
|
|
1142
1141
|
subsidiaryName: "",
|
|
@@ -1144,9 +1143,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1144
1143
|
}))
|
|
1145
1144
|
})) : _("", !0)
|
|
1146
1145
|
]),
|
|
1147
|
-
t.isDuplicate ? (
|
|
1148
|
-
|
|
1149
|
-
x(
|
|
1146
|
+
t.isDuplicate ? (w(), V("div", Pt, " NetSuite location being used by another FeedMe location. ")) : _("", !0),
|
|
1147
|
+
i.value.netsuiteId ? (w(), V("div", Wt, [
|
|
1148
|
+
x(y, {
|
|
1150
1149
|
name: "cloud",
|
|
1151
1150
|
color: "neutral-gray-400",
|
|
1152
1151
|
size: "md",
|
|
@@ -1154,9 +1153,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1154
1153
|
outline: ""
|
|
1155
1154
|
}),
|
|
1156
1155
|
a("div", $t, [
|
|
1157
|
-
a("span", en, j(
|
|
1158
|
-
a("span", tn, "ID: " + j(
|
|
1159
|
-
a("span", nn, "Subsidiary: " + j(
|
|
1156
|
+
a("span", en, j(i.value.name), 1),
|
|
1157
|
+
a("span", tn, "ID: " + j(i.value.netsuiteId), 1),
|
|
1158
|
+
a("span", nn, "Subsidiary: " + j(i.value.subsidiaryName), 1)
|
|
1160
1159
|
])
|
|
1161
1160
|
])) : _("", !0)
|
|
1162
1161
|
]);
|
|
@@ -1183,8 +1182,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1183
1182
|
}
|
|
1184
1183
|
},
|
|
1185
1184
|
emits: ["update:loading", "update:showDialog"],
|
|
1186
|
-
setup(F, { emit:
|
|
1187
|
-
const s = le(),
|
|
1185
|
+
setup(F, { emit: g }) {
|
|
1186
|
+
const s = le(), i = te(), n = [
|
|
1188
1187
|
{
|
|
1189
1188
|
id: "fmLocation",
|
|
1190
1189
|
header: "FeedMe Location",
|
|
@@ -1209,29 +1208,29 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1209
1208
|
id: "nsLocation",
|
|
1210
1209
|
header: "NetSuite Location",
|
|
1211
1210
|
cell(h) {
|
|
1212
|
-
const C = h.row.original, k = b.value[C.dbName],
|
|
1213
|
-
([
|
|
1211
|
+
const C = h.row.original, k = b.value[C.dbName], p = Object.entries(b.value).some(
|
|
1212
|
+
([m, d]) => m !== C.dbName && d.netsuiteId === (k == null ? void 0 : k.netsuiteId)
|
|
1214
1213
|
);
|
|
1215
1214
|
return D(on, {
|
|
1216
|
-
isDuplicate:
|
|
1217
|
-
nsLocationOptions:
|
|
1215
|
+
isDuplicate: p,
|
|
1216
|
+
nsLocationOptions: v.value,
|
|
1218
1217
|
modelValue: k,
|
|
1219
1218
|
fmLocation: C,
|
|
1220
|
-
"onUpdate:modelValue": (
|
|
1221
|
-
|
|
1219
|
+
"onUpdate:modelValue": (m) => {
|
|
1220
|
+
m.netsuiteId ? b.value = {
|
|
1222
1221
|
...b.value,
|
|
1223
1222
|
[C.dbName]: {
|
|
1224
|
-
netsuiteId:
|
|
1225
|
-
name:
|
|
1226
|
-
subsidiaryName:
|
|
1227
|
-
subsidiaryId:
|
|
1223
|
+
netsuiteId: m.netsuiteId,
|
|
1224
|
+
name: m.name,
|
|
1225
|
+
subsidiaryName: m.subsidiaryName,
|
|
1226
|
+
subsidiaryId: m.subsidiaryId
|
|
1228
1227
|
}
|
|
1229
1228
|
} : delete b.value[C.dbName];
|
|
1230
1229
|
}
|
|
1231
1230
|
});
|
|
1232
1231
|
}
|
|
1233
1232
|
}
|
|
1234
|
-
], t = F,
|
|
1233
|
+
], t = F, u = g, b = M({}), S = M(), y = M(""), v = z(() => t.nsLocationsNotBeingUsed.map((h) => ({
|
|
1235
1234
|
label: h.name,
|
|
1236
1235
|
value: h
|
|
1237
1236
|
}))), l = z(() => Object.values(b.value).length === 0 || Object.values(b.value).some(
|
|
@@ -1239,22 +1238,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1239
1238
|
));
|
|
1240
1239
|
async function r() {
|
|
1241
1240
|
try {
|
|
1242
|
-
|
|
1241
|
+
u("update:loading", !0), await s.updateLocationConfigs(b.value), i.open({
|
|
1243
1242
|
message: "Locations updated successfully",
|
|
1244
1243
|
type: "success"
|
|
1245
|
-
}),
|
|
1244
|
+
}), u("update:showDialog", !1);
|
|
1246
1245
|
} catch {
|
|
1247
|
-
|
|
1246
|
+
i.open({
|
|
1248
1247
|
message: "Failed to update locations. Please try again.",
|
|
1249
1248
|
type: "error"
|
|
1250
1249
|
});
|
|
1251
1250
|
} finally {
|
|
1252
|
-
|
|
1251
|
+
u("update:loading", !1);
|
|
1253
1252
|
}
|
|
1254
1253
|
}
|
|
1255
1254
|
return (h, C) => {
|
|
1256
|
-
const k = E("FmTable"),
|
|
1257
|
-
return
|
|
1255
|
+
const k = E("FmTable"), p = E("FmForm"), m = E("FmSpacer"), d = E("FmButton"), c = E("FmDialog");
|
|
1256
|
+
return w(), X(c, {
|
|
1258
1257
|
modelValue: F.showDialog,
|
|
1259
1258
|
"onUpdate:modelValue": C[2] || (C[2] = (A) => h.$emit("update:showDialog", A)),
|
|
1260
1259
|
overlay: !0,
|
|
@@ -1264,7 +1263,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1264
1263
|
a("div", null, "Add locations", -1)
|
|
1265
1264
|
])),
|
|
1266
1265
|
"dialog-footer": R(() => [
|
|
1267
|
-
x(
|
|
1266
|
+
x(m, { class: "sm:hidden xs:hidden" }),
|
|
1268
1267
|
x(d, {
|
|
1269
1268
|
class: "sm:w-full xs:w-full",
|
|
1270
1269
|
label: "Submit",
|
|
@@ -1274,19 +1273,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1274
1273
|
}, null, 8, ["disabled"])
|
|
1275
1274
|
]),
|
|
1276
1275
|
default: R(() => [
|
|
1277
|
-
x(
|
|
1276
|
+
x(p, {
|
|
1278
1277
|
ref: "formRef",
|
|
1279
1278
|
class: "mb-4",
|
|
1280
|
-
"model-value":
|
|
1281
|
-
"onUpdate:modelValue": C[1] || (C[1] = (A) =>
|
|
1279
|
+
"model-value": S.value,
|
|
1280
|
+
"onUpdate:modelValue": C[1] || (C[1] = (A) => S.value = A)
|
|
1282
1281
|
}, {
|
|
1283
1282
|
default: R(() => [
|
|
1284
1283
|
x(k, {
|
|
1285
|
-
modelValue:
|
|
1286
|
-
"onUpdate:modelValue": C[0] || (C[0] = (A) =>
|
|
1284
|
+
modelValue: S.value,
|
|
1285
|
+
"onUpdate:modelValue": C[0] || (C[0] = (A) => S.value = A),
|
|
1287
1286
|
"row-data": t.fmLocationNotYetConfigured,
|
|
1288
1287
|
"column-defs": n,
|
|
1289
|
-
"search-value":
|
|
1288
|
+
"search-value": y.value,
|
|
1290
1289
|
"shrink-at": !1
|
|
1291
1290
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1292
1291
|
]),
|
|
@@ -1309,26 +1308,26 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1309
1308
|
loading: { type: Boolean }
|
|
1310
1309
|
},
|
|
1311
1310
|
emits: ["update:setting", "update:show", "update:loading", "submit"],
|
|
1312
|
-
setup(F, { emit:
|
|
1313
|
-
const s = ie(),
|
|
1311
|
+
setup(F, { emit: g }) {
|
|
1312
|
+
const s = ie(), i = W(), n = M(!1), t = F, u = g, b = pe(ee(t.setting));
|
|
1314
1313
|
ve([() => t.show], ([d]) => {
|
|
1315
1314
|
if (d)
|
|
1316
1315
|
for (const c of Object.keys(t.setting))
|
|
1317
1316
|
b[c] = t.setting[c];
|
|
1318
1317
|
});
|
|
1319
|
-
const
|
|
1318
|
+
const S = M(), y = ae(t, "show"), v = M(), l = M(""), r = z(() => t.setting.locations.filter(
|
|
1320
1319
|
(d) => d.name.toLowerCase().includes(l.value.toLowerCase()) || d.netSuiteId.toLowerCase().includes(l.value.toLowerCase())
|
|
1321
1320
|
)), h = [
|
|
1322
1321
|
{
|
|
1323
1322
|
id: "location",
|
|
1324
1323
|
header: () => "FeedMe Location",
|
|
1325
1324
|
cell(d) {
|
|
1326
|
-
const c = d.row.original, A =
|
|
1325
|
+
const c = d.row.original, A = i.locations.find(
|
|
1327
1326
|
(e) => e.type === c.type && e.doc._id === c.id
|
|
1328
1327
|
);
|
|
1329
1328
|
if (!A)
|
|
1330
1329
|
return D("div", "Unknown Location");
|
|
1331
|
-
const
|
|
1330
|
+
const f = D(ne.FmIcon, {
|
|
1332
1331
|
name: A.type,
|
|
1333
1332
|
color: "neutral-gray-400",
|
|
1334
1333
|
size: "md",
|
|
@@ -1336,7 +1335,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1336
1335
|
outline: !0
|
|
1337
1336
|
});
|
|
1338
1337
|
return D("div", { class: "flex items-center" }, [
|
|
1339
|
-
|
|
1338
|
+
f,
|
|
1340
1339
|
D("div", { class: "flex flex-col" }, [
|
|
1341
1340
|
D("span", { class: "font-medium" }, A.name),
|
|
1342
1341
|
D("span", { class: "text-xs text-gray-400" }, A.doc._id)
|
|
@@ -1351,7 +1350,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1351
1350
|
var e;
|
|
1352
1351
|
const c = d.row.original, A = (e = t.nsLocations.find(
|
|
1353
1352
|
(o) => o.netsuiteId === c.netSuiteId
|
|
1354
|
-
)) == null ? void 0 : e.subsidiaryName,
|
|
1353
|
+
)) == null ? void 0 : e.subsidiaryName, f = D(ne.FmIcon, {
|
|
1355
1354
|
name: "cloud",
|
|
1356
1355
|
color: "neutral-gray-400",
|
|
1357
1356
|
size: "md",
|
|
@@ -1359,7 +1358,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1359
1358
|
outline: !0
|
|
1360
1359
|
});
|
|
1361
1360
|
return D("div", { class: "flex items-center" }, [
|
|
1362
|
-
|
|
1361
|
+
f,
|
|
1363
1362
|
D("div", { class: "flex flex-col" }, [
|
|
1364
1363
|
D("span", { class: "font-medium" }, c.name),
|
|
1365
1364
|
D("span", { class: "text-xs text-gray-400" }, `ID: ${c.netSuiteId}`),
|
|
@@ -1368,7 +1367,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1368
1367
|
]);
|
|
1369
1368
|
}
|
|
1370
1369
|
}
|
|
1371
|
-
], { t: C } =
|
|
1370
|
+
], { t: C } = G(), k = [
|
|
1372
1371
|
"Unit Type",
|
|
1373
1372
|
"Inventory Item",
|
|
1374
1373
|
"Location",
|
|
@@ -1377,18 +1376,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1377
1376
|
"Purchase Order",
|
|
1378
1377
|
"Transfer Order",
|
|
1379
1378
|
"Inventory Transfer"
|
|
1380
|
-
],
|
|
1379
|
+
], p = z(() => i.locations.filter(
|
|
1381
1380
|
(d) => !t.setting.locations.some(
|
|
1382
1381
|
(c) => c.id === d.doc._id && c.type === d.type
|
|
1383
1382
|
)
|
|
1384
|
-
)),
|
|
1383
|
+
)), m = z(() => t.nsLocations.filter(
|
|
1385
1384
|
(d) => !t.setting.locations.some((c) => c.netSuiteId === d.netsuiteId)
|
|
1386
1385
|
));
|
|
1387
1386
|
return (d, c) => {
|
|
1388
|
-
const A = E("FmChip"),
|
|
1389
|
-
return
|
|
1390
|
-
modelValue: I(
|
|
1391
|
-
"onUpdate:modelValue": c[6] || (c[6] = (L) => se(
|
|
1387
|
+
const A = E("FmChip"), f = E("FmSearch"), e = E("FmTable"), o = E("FmButton"), B = E("FmSideSheet");
|
|
1388
|
+
return w(), X(B, {
|
|
1389
|
+
modelValue: I(y),
|
|
1390
|
+
"onUpdate:modelValue": c[6] || (c[6] = (L) => se(y) ? y.value = L : null),
|
|
1392
1391
|
header: I(C)("inventory.integration.netsuite.title"),
|
|
1393
1392
|
"dismiss-away": "",
|
|
1394
1393
|
"close-button": "",
|
|
@@ -1397,10 +1396,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1397
1396
|
default: R(() => {
|
|
1398
1397
|
var L;
|
|
1399
1398
|
return [
|
|
1400
|
-
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (
|
|
1399
|
+
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (w(), V("div", ln, [
|
|
1401
1400
|
c[7] || (c[7] = a("div", { class: "text-sm" }, " This integration keeps your FeedMe system and NetSuite in sync for the following modules: ", -1)),
|
|
1402
1401
|
a("div", rn, [
|
|
1403
|
-
(
|
|
1402
|
+
(w(), V(J, null, $(k, (N) => x(A, {
|
|
1404
1403
|
key: N,
|
|
1405
1404
|
label: N,
|
|
1406
1405
|
compact: ""
|
|
@@ -1409,7 +1408,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1409
1408
|
c[8] || (c[8] = a("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)),
|
|
1410
1409
|
c[9] || (c[9] = a("hr", { class: "my-3" }, null, -1)),
|
|
1411
1410
|
a("div", un, [
|
|
1412
|
-
x(
|
|
1411
|
+
x(f, {
|
|
1413
1412
|
placeholder: "Search by [NetSuite Location]",
|
|
1414
1413
|
class: "w-[300px]",
|
|
1415
1414
|
modelValue: l.value,
|
|
@@ -1417,23 +1416,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1417
1416
|
}, null, 8, ["modelValue"])
|
|
1418
1417
|
]),
|
|
1419
1418
|
x(e, {
|
|
1420
|
-
modelValue:
|
|
1421
|
-
"onUpdate:modelValue": c[1] || (c[1] = (N) =>
|
|
1419
|
+
modelValue: v.value,
|
|
1420
|
+
"onUpdate:modelValue": c[1] || (c[1] = (N) => v.value = N),
|
|
1422
1421
|
"row-data": r.value,
|
|
1423
1422
|
"column-defs": h,
|
|
1424
1423
|
"shrink-at": !1,
|
|
1425
1424
|
"search-value": l.value
|
|
1426
1425
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1427
|
-
])) : (
|
|
1426
|
+
])) : (w(), V("div", an, " Please contact your administrator to apply the changes. ")),
|
|
1428
1427
|
x(sn, {
|
|
1429
1428
|
"show-dialog": n.value,
|
|
1430
1429
|
"onUpdate:showDialog": [
|
|
1431
1430
|
c[2] || (c[2] = (N) => n.value = N),
|
|
1432
1431
|
c[3] || (c[3] = (N) => n.value = N)
|
|
1433
1432
|
],
|
|
1434
|
-
formRef:
|
|
1435
|
-
fmLocationNotYetConfigured:
|
|
1436
|
-
nsLocationsNotBeingUsed:
|
|
1433
|
+
formRef: S.value,
|
|
1434
|
+
fmLocationNotYetConfigured: p.value,
|
|
1435
|
+
nsLocationsNotBeingUsed: m.value
|
|
1437
1436
|
}, null, 8, ["show-dialog", "formRef", "fmLocationNotYetConfigured", "nsLocationsNotBeingUsed"])
|
|
1438
1437
|
];
|
|
1439
1438
|
}),
|
|
@@ -1448,7 +1447,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1448
1447
|
x(o, {
|
|
1449
1448
|
variant: "tertiary",
|
|
1450
1449
|
label: I(C)("common.close"),
|
|
1451
|
-
onClick: c[5] || (c[5] = (L) =>
|
|
1450
|
+
onClick: c[5] || (c[5] = (L) => u("update:show", !1))
|
|
1452
1451
|
}, null, 8, ["label"])
|
|
1453
1452
|
])
|
|
1454
1453
|
]),
|
|
@@ -1464,10 +1463,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1464
1463
|
},
|
|
1465
1464
|
emits: ["update:modelValue"],
|
|
1466
1465
|
setup(F) {
|
|
1467
|
-
const { t:
|
|
1466
|
+
const { t: g } = ce(), s = Se(F, "modelValue"), i = [
|
|
1468
1467
|
{
|
|
1469
1468
|
id: "Code",
|
|
1470
|
-
header: () =>
|
|
1469
|
+
header: () => g("inventory.transfer.form.items.table.Code"),
|
|
1471
1470
|
accessorKey: "code",
|
|
1472
1471
|
size: 200,
|
|
1473
1472
|
cell(n) {
|
|
@@ -1493,7 +1492,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1493
1492
|
},
|
|
1494
1493
|
{
|
|
1495
1494
|
id: "Name",
|
|
1496
|
-
header: () =>
|
|
1495
|
+
header: () => g("inventory.transfer.form.items.table.Name"),
|
|
1497
1496
|
minSize: 300,
|
|
1498
1497
|
cell(n) {
|
|
1499
1498
|
const t = n.row.original;
|
|
@@ -1518,10 +1517,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1518
1517
|
},
|
|
1519
1518
|
{
|
|
1520
1519
|
id: "Amount",
|
|
1521
|
-
header: () =>
|
|
1520
|
+
header: () => g("inventory.transfer.form.items.table.Amount"),
|
|
1522
1521
|
minSize: 200,
|
|
1523
1522
|
cell(n) {
|
|
1524
|
-
const t = n.row.original,
|
|
1523
|
+
const t = n.row.original, u = n.row.index;
|
|
1525
1524
|
return D($e, {
|
|
1526
1525
|
style: {
|
|
1527
1526
|
flex: "1 1 0%"
|
|
@@ -1534,15 +1533,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1534
1533
|
unit: t.sku.unit,
|
|
1535
1534
|
"onUpdate:modelValue": (b) => {
|
|
1536
1535
|
if (!b) return;
|
|
1537
|
-
const
|
|
1536
|
+
const S = {
|
|
1538
1537
|
...t,
|
|
1539
1538
|
quantity: b.amount,
|
|
1540
1539
|
measurement: b.measurement
|
|
1541
1540
|
};
|
|
1542
1541
|
s.value = [
|
|
1543
|
-
...s.value.slice(0,
|
|
1544
|
-
|
|
1545
|
-
...s.value.slice(
|
|
1542
|
+
...s.value.slice(0, u),
|
|
1543
|
+
S,
|
|
1544
|
+
...s.value.slice(u + 1)
|
|
1546
1545
|
];
|
|
1547
1546
|
},
|
|
1548
1547
|
rules: [et(+Qe({ amount: 1, precision: 0 }))],
|
|
@@ -1555,7 +1554,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1555
1554
|
id: "Delete",
|
|
1556
1555
|
header: "",
|
|
1557
1556
|
cell(n) {
|
|
1558
|
-
const t = n.row.original,
|
|
1557
|
+
const t = n.row.original, u = n.row.index;
|
|
1559
1558
|
return D("div", { class: "flex justify-end" }, [
|
|
1560
1559
|
D(ne.FmButton, {
|
|
1561
1560
|
key: t.sku._id,
|
|
@@ -1565,7 +1564,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1565
1564
|
variant: "tertiary",
|
|
1566
1565
|
size: "md",
|
|
1567
1566
|
onClick: () => {
|
|
1568
|
-
s.value = [...s.value.slice(0,
|
|
1567
|
+
s.value = [...s.value.slice(0, u), ...s.value.slice(u + 1)];
|
|
1569
1568
|
}
|
|
1570
1569
|
})
|
|
1571
1570
|
]);
|
|
@@ -1579,12 +1578,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1579
1578
|
}
|
|
1580
1579
|
];
|
|
1581
1580
|
return (n, t) => {
|
|
1582
|
-
const
|
|
1583
|
-
return
|
|
1584
|
-
"column-defs":
|
|
1581
|
+
const u = E("FmTable");
|
|
1582
|
+
return w(), X(u, {
|
|
1583
|
+
"column-defs": i,
|
|
1585
1584
|
"row-data": s.value,
|
|
1586
1585
|
"row-key": (b) => b.sku._id,
|
|
1587
|
-
"empty-text": I(
|
|
1586
|
+
"empty-text": I(g)("inventory.transfer.form.items.table.empty"),
|
|
1588
1587
|
pagination: !1,
|
|
1589
1588
|
"virtual-scroll": { enabled: !0, itemSize: 48 }
|
|
1590
1589
|
}, null, 8, ["row-data", "row-key", "empty-text"]);
|
|
@@ -1593,41 +1592,41 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1593
1592
|
}), fn = { class: "flex items-center gap-8 mb-8" }, pn = /* @__PURE__ */ Y({
|
|
1594
1593
|
__name: "InventoryTransferOutTable",
|
|
1595
1594
|
setup(F) {
|
|
1596
|
-
const
|
|
1595
|
+
const g = M([]), s = ge(), i = M(!1), n = M(!1), t = te(), u = W();
|
|
1597
1596
|
fe(async () => {
|
|
1598
|
-
const
|
|
1599
|
-
l.setDate(l.getDate() - 30),
|
|
1597
|
+
const v = /* @__PURE__ */ new Date(), l = /* @__PURE__ */ new Date();
|
|
1598
|
+
l.setDate(l.getDate() - 30), i.value = !0;
|
|
1600
1599
|
try {
|
|
1601
1600
|
const r = await s.getInventoryTransferHistory(
|
|
1602
|
-
|
|
1601
|
+
u.currentLocationDBName,
|
|
1603
1602
|
l,
|
|
1604
|
-
|
|
1603
|
+
v
|
|
1605
1604
|
);
|
|
1606
|
-
|
|
1605
|
+
g.value = r;
|
|
1607
1606
|
} catch (r) {
|
|
1608
1607
|
console.error("Error fetching inventory transfer history:", r);
|
|
1609
1608
|
} finally {
|
|
1610
|
-
|
|
1609
|
+
i.value = !1;
|
|
1611
1610
|
}
|
|
1612
1611
|
});
|
|
1613
1612
|
async function b() {
|
|
1614
1613
|
try {
|
|
1615
|
-
n.value = !0, await s.manualSyncInventoryTransfer(
|
|
1614
|
+
n.value = !0, await s.manualSyncInventoryTransfer(u.currentLocationDBName), t == null || t.open({
|
|
1616
1615
|
title: "Sync Started",
|
|
1617
1616
|
message: "Inventory transfers sync queued successfully.",
|
|
1618
1617
|
type: "success"
|
|
1619
1618
|
});
|
|
1620
|
-
} catch (
|
|
1619
|
+
} catch (v) {
|
|
1621
1620
|
t == null || t.open({
|
|
1622
1621
|
title: "Sync Failed",
|
|
1623
|
-
message: `Failed to queue inventory transfers sync. ${
|
|
1622
|
+
message: `Failed to queue inventory transfers sync. ${v == null ? void 0 : v.message}`,
|
|
1624
1623
|
type: "error"
|
|
1625
1624
|
});
|
|
1626
1625
|
} finally {
|
|
1627
1626
|
n.value = !1;
|
|
1628
1627
|
}
|
|
1629
1628
|
}
|
|
1630
|
-
const
|
|
1629
|
+
const S = [
|
|
1631
1630
|
// {
|
|
1632
1631
|
// id: 'type',
|
|
1633
1632
|
// header: 'Type',
|
|
@@ -1638,8 +1637,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1638
1637
|
{
|
|
1639
1638
|
id: "destinationLocation",
|
|
1640
1639
|
header: "Destination Location",
|
|
1641
|
-
cell: (
|
|
1642
|
-
const l =
|
|
1640
|
+
cell: (v) => {
|
|
1641
|
+
const l = v.row.original.destinationLocation.netSuiteName;
|
|
1643
1642
|
return l ? D(
|
|
1644
1643
|
ne.FmTooltip,
|
|
1645
1644
|
{ zIndex: 51 },
|
|
@@ -1657,22 +1656,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1657
1656
|
{
|
|
1658
1657
|
id: "netsuite",
|
|
1659
1658
|
header: () => "NetSuite",
|
|
1660
|
-
cell(
|
|
1659
|
+
cell(v) {
|
|
1661
1660
|
return D("div", { class: "flex flex-col" }, [
|
|
1662
1661
|
D(
|
|
1663
1662
|
"span",
|
|
1664
1663
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1665
|
-
`ID: ${
|
|
1664
|
+
`ID: ${v.row.original.netsuiteId ?? "N/A"}`
|
|
1666
1665
|
),
|
|
1667
1666
|
D(
|
|
1668
1667
|
"span",
|
|
1669
1668
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1670
|
-
`Transaction ID: ${
|
|
1669
|
+
`Transaction ID: ${v.row.original.netsuiteTranId ?? "N/A"}`
|
|
1671
1670
|
),
|
|
1672
1671
|
D(
|
|
1673
1672
|
"span",
|
|
1674
1673
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1675
|
-
`Transaction Date: ${
|
|
1674
|
+
`Transaction Date: ${v.row.original.netsuiteTranDate ?? "N/A"}`
|
|
1676
1675
|
)
|
|
1677
1676
|
]);
|
|
1678
1677
|
}
|
|
@@ -1680,8 +1679,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1680
1679
|
{
|
|
1681
1680
|
id: "adjustment",
|
|
1682
1681
|
header: () => "Adjustment (FeedMe)",
|
|
1683
|
-
cell(
|
|
1684
|
-
const l =
|
|
1682
|
+
cell(v) {
|
|
1683
|
+
const l = v.row.original.adjustmentId;
|
|
1685
1684
|
return D("div", { class: "flex flex-col" }, [
|
|
1686
1685
|
D("span", { class: "fm-typo-en-body-sm-400" }, `ID: ${l ?? "N/A"}`),
|
|
1687
1686
|
D(
|
|
@@ -1695,8 +1694,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1695
1694
|
{
|
|
1696
1695
|
id: "items",
|
|
1697
1696
|
header: () => "Items",
|
|
1698
|
-
cell(
|
|
1699
|
-
const l =
|
|
1697
|
+
cell(v) {
|
|
1698
|
+
const l = v.row.original.items;
|
|
1700
1699
|
return D(
|
|
1701
1700
|
"div",
|
|
1702
1701
|
{ class: "overflow-auto" },
|
|
@@ -1713,10 +1712,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1713
1712
|
},
|
|
1714
1713
|
size: 150
|
|
1715
1714
|
}
|
|
1716
|
-
],
|
|
1717
|
-
return (
|
|
1715
|
+
], y = M();
|
|
1716
|
+
return (v, l) => {
|
|
1718
1717
|
const r = E("FmButton"), h = E("FmTable");
|
|
1719
|
-
return
|
|
1718
|
+
return w(), V(J, null, [
|
|
1720
1719
|
a("div", fn, [
|
|
1721
1720
|
l[1] || (l[1] = a("span", null, "Last 30 Days:", -1)),
|
|
1722
1721
|
x(r, {
|
|
@@ -1731,11 +1730,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1731
1730
|
}, null, 8, ["loading"])
|
|
1732
1731
|
]),
|
|
1733
1732
|
x(h, {
|
|
1734
|
-
modelValue:
|
|
1735
|
-
"onUpdate:modelValue": l[0] || (l[0] = (C) =>
|
|
1736
|
-
"row-data":
|
|
1737
|
-
"column-defs":
|
|
1738
|
-
loading:
|
|
1733
|
+
modelValue: y.value,
|
|
1734
|
+
"onUpdate:modelValue": l[0] || (l[0] = (C) => y.value = C),
|
|
1735
|
+
"row-data": g.value,
|
|
1736
|
+
"column-defs": S,
|
|
1737
|
+
loading: i.value
|
|
1739
1738
|
}, null, 8, ["modelValue", "row-data", "loading"])
|
|
1740
1739
|
], 64);
|
|
1741
1740
|
};
|
|
@@ -1760,12 +1759,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1760
1759
|
currentLocationSubsidiary: {}
|
|
1761
1760
|
},
|
|
1762
1761
|
setup(F) {
|
|
1763
|
-
const
|
|
1764
|
-
const A = s.currentLocationSetting,
|
|
1762
|
+
const g = de(), s = le(), i = be(), n = ge(), t = te(), { t: u } = ce(), b = M([]), S = [{ label: "Transfer Out" }, { label: "History" }], y = M(S[0]), v = M(!1), l = M(null), r = M(null), h = F, C = z(() => {
|
|
1763
|
+
const A = s.currentLocationSetting, f = s.configuredLocations;
|
|
1765
1764
|
return h.nsLocations.map((e) => ({
|
|
1766
1765
|
label: e.name,
|
|
1767
1766
|
value: e,
|
|
1768
|
-
disabled:
|
|
1767
|
+
disabled: f.some((o) => o.netSuiteId === e.netsuiteId) || e.subsidiaryId !== (A == null ? void 0 : A.subsidiaryId)
|
|
1769
1768
|
}));
|
|
1770
1769
|
}), k = z({
|
|
1771
1770
|
get() {
|
|
@@ -1776,23 +1775,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1776
1775
|
l.value = null;
|
|
1777
1776
|
return;
|
|
1778
1777
|
}
|
|
1779
|
-
const
|
|
1780
|
-
|
|
1778
|
+
const f = l.value ?? /* @__PURE__ */ new Date(), e = new Date(A);
|
|
1779
|
+
f.setFullYear(e.getFullYear(), e.getMonth(), e.getDate()), l.value = new Date(f);
|
|
1781
1780
|
}
|
|
1782
|
-
}),
|
|
1781
|
+
}), p = z({
|
|
1783
1782
|
get() {
|
|
1784
1783
|
if (!l.value) return null;
|
|
1785
|
-
const A = String(l.value.getHours()).padStart(2, "0"),
|
|
1786
|
-
return `${A}:${
|
|
1784
|
+
const A = String(l.value.getHours()).padStart(2, "0"), f = String(l.value.getMinutes()).padStart(2, "0");
|
|
1785
|
+
return `${A}:${f}`;
|
|
1787
1786
|
},
|
|
1788
1787
|
set(A) {
|
|
1789
1788
|
if (!A) return;
|
|
1790
|
-
const [
|
|
1791
|
-
o.setHours(
|
|
1789
|
+
const [f, e] = A.split(":").map(Number), o = l.value ?? /* @__PURE__ */ new Date();
|
|
1790
|
+
o.setHours(f, e), l.value = new Date(o);
|
|
1792
1791
|
}
|
|
1793
|
-
}),
|
|
1792
|
+
}), m = z(() => k.value && p.value && r.value && b.value.length > 0 && !v.value);
|
|
1794
1793
|
async function d() {
|
|
1795
|
-
if (
|
|
1794
|
+
if (m.value) {
|
|
1796
1795
|
if (!h.currentLocationSetting) {
|
|
1797
1796
|
t.open({
|
|
1798
1797
|
message: "Current location setting is not available",
|
|
@@ -1800,15 +1799,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1800
1799
|
});
|
|
1801
1800
|
return;
|
|
1802
1801
|
}
|
|
1803
|
-
|
|
1802
|
+
v.value = !0;
|
|
1804
1803
|
try {
|
|
1805
1804
|
const A = {
|
|
1806
1805
|
items: b.value,
|
|
1807
1806
|
date: l.value.toISOString(),
|
|
1808
1807
|
netsuiteLocationId: r.value.netsuiteId,
|
|
1809
1808
|
netsuiteLocationName: r.value.name
|
|
1810
|
-
},
|
|
1811
|
-
await n.createInventoryTransfer(
|
|
1809
|
+
}, f = `${h.currentLocationSetting.type}_${h.currentLocationSetting.id}`;
|
|
1810
|
+
await n.createInventoryTransfer(f, A), b.value = [], l.value = null, r.value = null, t.open({
|
|
1812
1811
|
message: "Inventort transfer created successfully",
|
|
1813
1812
|
type: "success"
|
|
1814
1813
|
});
|
|
@@ -1818,12 +1817,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1818
1817
|
type: "error"
|
|
1819
1818
|
});
|
|
1820
1819
|
} finally {
|
|
1821
|
-
|
|
1820
|
+
v.value = !1;
|
|
1822
1821
|
}
|
|
1823
1822
|
}
|
|
1824
1823
|
}
|
|
1825
1824
|
function c() {
|
|
1826
|
-
const A = s.currentLocationSubsidiary(),
|
|
1825
|
+
const A = s.currentLocationSubsidiary(), f = s.getAvailableItems(A.id), e = i.skus.filter((L) => f.includes(L._id)).map((L) => L._id), o = i.skus.map(
|
|
1827
1826
|
(L) => ({
|
|
1828
1827
|
label: L.name,
|
|
1829
1828
|
sublabel: L.code,
|
|
@@ -1834,8 +1833,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1834
1833
|
var N;
|
|
1835
1834
|
return (N = b.value) == null ? void 0 : N.find((H) => H.sku._id === L.value._id);
|
|
1836
1835
|
}).map((L) => L.value);
|
|
1837
|
-
|
|
1838
|
-
title:
|
|
1836
|
+
g.open({
|
|
1837
|
+
title: u("inventory.transfer.form.items.selectItem"),
|
|
1839
1838
|
closeButton: !0,
|
|
1840
1839
|
contentComponent: Ye,
|
|
1841
1840
|
contentComponentProps: {
|
|
@@ -1844,11 +1843,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1844
1843
|
virtualScroll: !0
|
|
1845
1844
|
},
|
|
1846
1845
|
primaryActions: {
|
|
1847
|
-
text:
|
|
1846
|
+
text: u("common.confirm"),
|
|
1848
1847
|
close: !0
|
|
1849
1848
|
},
|
|
1850
1849
|
secondaryActions: {
|
|
1851
|
-
text:
|
|
1850
|
+
text: u("common.close"),
|
|
1852
1851
|
close: !0,
|
|
1853
1852
|
variant: "tertiary"
|
|
1854
1853
|
}
|
|
@@ -1868,18 +1867,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1868
1867
|
H.sort((U, O) => U.sku.code.localeCompare(O.sku.code)), b.value = H;
|
|
1869
1868
|
});
|
|
1870
1869
|
}
|
|
1871
|
-
return (A,
|
|
1870
|
+
return (A, f) => {
|
|
1872
1871
|
const e = E("FmButtonGroup"), o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"), N = E("FmTimePicker"), H = E("FmSelect"), U = E("FmIcon"), O = E("FmButton");
|
|
1873
|
-
return
|
|
1872
|
+
return w(), V("div", vn, [
|
|
1874
1873
|
x(e, {
|
|
1875
|
-
modelValue:
|
|
1876
|
-
"onUpdate:modelValue":
|
|
1877
|
-
items:
|
|
1874
|
+
modelValue: y.value,
|
|
1875
|
+
"onUpdate:modelValue": f[0] || (f[0] = (T) => y.value = T),
|
|
1876
|
+
items: S
|
|
1878
1877
|
}, null, 8, ["modelValue"]),
|
|
1879
|
-
|
|
1880
|
-
I(s).inventoryTransferOutEnabled ? (
|
|
1878
|
+
y.value.label === "Transfer Out" ? (w(), V(J, { key: 0 }, [
|
|
1879
|
+
I(s).inventoryTransferOutEnabled ? (w(), V("div", gn, [
|
|
1881
1880
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1882
|
-
default: R(() =>
|
|
1881
|
+
default: R(() => f[6] || (f[6] = [
|
|
1883
1882
|
q("Type")
|
|
1884
1883
|
])),
|
|
1885
1884
|
_: 1
|
|
@@ -1889,13 +1888,13 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1889
1888
|
disabled: "",
|
|
1890
1889
|
"prepend-icon": "lock"
|
|
1891
1890
|
}, {
|
|
1892
|
-
default: R(() =>
|
|
1891
|
+
default: R(() => f[7] || (f[7] = [
|
|
1893
1892
|
q("Transfer out")
|
|
1894
1893
|
])),
|
|
1895
1894
|
_: 1
|
|
1896
1895
|
}),
|
|
1897
1896
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1898
|
-
default: R(() =>
|
|
1897
|
+
default: R(() => f[8] || (f[8] = [
|
|
1899
1898
|
q("Subsidiary")
|
|
1900
1899
|
])),
|
|
1901
1900
|
_: 1
|
|
@@ -1911,42 +1910,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1911
1910
|
_: 1
|
|
1912
1911
|
}),
|
|
1913
1912
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1914
|
-
default: R(() =>
|
|
1913
|
+
default: R(() => f[9] || (f[9] = [
|
|
1915
1914
|
q("Transaction date")
|
|
1916
1915
|
])),
|
|
1917
1916
|
_: 1
|
|
1918
1917
|
}),
|
|
1919
1918
|
x(L, {
|
|
1920
1919
|
modelValue: k.value,
|
|
1921
|
-
"onUpdate:modelValue":
|
|
1920
|
+
"onUpdate:modelValue": f[1] || (f[1] = (T) => k.value = T)
|
|
1922
1921
|
}, null, 8, ["modelValue"]),
|
|
1923
1922
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1924
|
-
default: R(() =>
|
|
1923
|
+
default: R(() => f[10] || (f[10] = [
|
|
1925
1924
|
q("Transaction time")
|
|
1926
1925
|
])),
|
|
1927
1926
|
_: 1
|
|
1928
1927
|
}),
|
|
1929
1928
|
x(N, {
|
|
1930
|
-
modelValue:
|
|
1931
|
-
"onUpdate:modelValue":
|
|
1929
|
+
modelValue: p.value,
|
|
1930
|
+
"onUpdate:modelValue": f[2] || (f[2] = (T) => p.value = T)
|
|
1932
1931
|
}, null, 8, ["modelValue"]),
|
|
1933
1932
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1934
|
-
default: R(() =>
|
|
1933
|
+
default: R(() => f[11] || (f[11] = [
|
|
1935
1934
|
q("NetSuite Location")
|
|
1936
1935
|
])),
|
|
1937
1936
|
_: 1
|
|
1938
1937
|
}),
|
|
1939
1938
|
a("div", yn, [
|
|
1940
|
-
r.value ? _("", !0) : (
|
|
1939
|
+
r.value ? _("", !0) : (w(), X(H, {
|
|
1941
1940
|
key: 0,
|
|
1942
1941
|
class: "my-4 w-full",
|
|
1943
1942
|
modelValue: r.value,
|
|
1944
|
-
"onUpdate:modelValue":
|
|
1943
|
+
"onUpdate:modelValue": f[3] || (f[3] = (T) => r.value = T),
|
|
1945
1944
|
searchable: "",
|
|
1946
1945
|
searchTarget: "label",
|
|
1947
1946
|
items: C.value
|
|
1948
1947
|
}, null, 8, ["modelValue", "items"])),
|
|
1949
|
-
r.value ? (
|
|
1948
|
+
r.value ? (w(), V("div", An, [
|
|
1950
1949
|
x(U, {
|
|
1951
1950
|
name: "cloud",
|
|
1952
1951
|
color: "neutral-gray-400",
|
|
@@ -1963,7 +1962,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1963
1962
|
class: "ml-2",
|
|
1964
1963
|
variant: "secondary",
|
|
1965
1964
|
label: "Clear",
|
|
1966
|
-
onClick:
|
|
1965
|
+
onClick: f[4] || (f[4] = (T) => r.value = null)
|
|
1967
1966
|
})
|
|
1968
1967
|
])) : _("", !0)
|
|
1969
1968
|
]),
|
|
@@ -1978,7 +1977,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1978
1977
|
]),
|
|
1979
1978
|
x(mn, {
|
|
1980
1979
|
modelValue: b.value,
|
|
1981
|
-
"onUpdate:modelValue":
|
|
1980
|
+
"onUpdate:modelValue": f[5] || (f[5] = (T) => b.value = T)
|
|
1982
1981
|
}, null, 8, ["modelValue"]),
|
|
1983
1982
|
a("div", wn, [
|
|
1984
1983
|
x(O, {
|
|
@@ -1986,21 +1985,21 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1986
1985
|
variant: "primary",
|
|
1987
1986
|
"prepend-icon": "add",
|
|
1988
1987
|
label: "Create",
|
|
1989
|
-
disabled: !
|
|
1990
|
-
loading:
|
|
1988
|
+
disabled: !m.value,
|
|
1989
|
+
loading: v.value,
|
|
1991
1990
|
onClick: d
|
|
1992
1991
|
}, null, 8, ["disabled", "loading"])
|
|
1993
1992
|
])
|
|
1994
|
-
])) : (
|
|
1993
|
+
])) : (w(), V("div", kn, [
|
|
1995
1994
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1996
|
-
default: R(() =>
|
|
1995
|
+
default: R(() => f[12] || (f[12] = [
|
|
1997
1996
|
q(" Feature is not enabled. Please contact your administrator. ")
|
|
1998
1997
|
])),
|
|
1999
1998
|
_: 1
|
|
2000
1999
|
})
|
|
2001
2000
|
]))
|
|
2002
2001
|
], 64)) : _("", !0),
|
|
2003
|
-
|
|
2002
|
+
y.value.label === "History" ? (w(), V("div", Bn, [
|
|
2004
2003
|
x(pn)
|
|
2005
2004
|
])) : _("", !0)
|
|
2006
2005
|
]);
|
|
@@ -2017,78 +2016,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2017
2016
|
currentLocationSubsidiary: {}
|
|
2018
2017
|
},
|
|
2019
2018
|
setup(F) {
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2019
|
+
de();
|
|
2020
|
+
const g = ge(), s = te(), i = M(!1), n = F, t = M([]);
|
|
2021
|
+
async function u() {
|
|
2022
|
+
var b;
|
|
2023
|
+
i.value = !0;
|
|
2024
2024
|
try {
|
|
2025
|
-
const
|
|
2026
|
-
|
|
2025
|
+
const S = ((b = n.currentLocationSetting) == null ? void 0 : b.id) || "", y = await g.getUnSyncTransferInOrders(S);
|
|
2026
|
+
t.value = y, s.open({
|
|
2027
2027
|
message: "Check unsync transfer in order successfully",
|
|
2028
2028
|
type: "success"
|
|
2029
2029
|
});
|
|
2030
2030
|
} catch {
|
|
2031
|
-
|
|
2031
|
+
s.open({
|
|
2032
2032
|
message: "Failed to check unsync transfer in order",
|
|
2033
2033
|
type: "error"
|
|
2034
2034
|
});
|
|
2035
2035
|
} finally {
|
|
2036
|
-
|
|
2036
|
+
i.value = !1;
|
|
2037
2037
|
}
|
|
2038
2038
|
}
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
message: "No unsynced transfer orders to sync",
|
|
2043
|
-
type: "info"
|
|
2044
|
-
});
|
|
2045
|
-
return;
|
|
2046
|
-
}
|
|
2047
|
-
y.open({
|
|
2048
|
-
title: "Sync Transfer Order",
|
|
2049
|
-
message: "Are you sure you want to sync these transfer orders?",
|
|
2050
|
-
primaryActions: { text: "Proceed", close: !0 }
|
|
2051
|
-
}).onPrimary(async () => {
|
|
2052
|
-
n.value = !0;
|
|
2053
|
-
try {
|
|
2054
|
-
await s.manualSyncMultipleTransferInOrders(i.value), await new Promise((g) => setTimeout(g, 5e3)), u.open({
|
|
2055
|
-
message: "Sync transfer orders request sent successfully",
|
|
2056
|
-
type: "success"
|
|
2057
|
-
});
|
|
2058
|
-
} catch (g) {
|
|
2059
|
-
console.log(g), u.open({
|
|
2060
|
-
message: "Failed to sync transfer orders",
|
|
2061
|
-
type: "error"
|
|
2062
|
-
});
|
|
2063
|
-
} finally {
|
|
2064
|
-
n.value = !1;
|
|
2065
|
-
}
|
|
2066
|
-
});
|
|
2067
|
-
}
|
|
2068
|
-
return (g, m) => {
|
|
2069
|
-
const l = E("FmButton");
|
|
2070
|
-
return S(), V("div", En, [
|
|
2039
|
+
return (b, S) => {
|
|
2040
|
+
const y = E("FmButton");
|
|
2041
|
+
return w(), V("div", En, [
|
|
2071
2042
|
a("span", null, "Current date and time: " + j((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
2072
|
-
x(
|
|
2043
|
+
x(y, {
|
|
2073
2044
|
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
2074
2045
|
variant: "primary",
|
|
2075
|
-
onClick:
|
|
2076
|
-
disabled:
|
|
2077
|
-
loading:
|
|
2046
|
+
onClick: u,
|
|
2047
|
+
disabled: i.value,
|
|
2048
|
+
loading: i.value
|
|
2078
2049
|
}, null, 8, ["disabled", "loading"]),
|
|
2079
|
-
|
|
2080
|
-
|
|
2050
|
+
t.value.length > 0 ? (w(), V("div", Fn, [
|
|
2051
|
+
S[0] || (S[0] = a("p", null, "Transfer Order NetSuite ID not match with existing orders", -1)),
|
|
2081
2052
|
a("ul", Ln, [
|
|
2082
|
-
(
|
|
2083
|
-
])
|
|
2084
|
-
i.value.length > 0 ? (S(), X(l, {
|
|
2085
|
-
key: 0,
|
|
2086
|
-
label: "Sync now",
|
|
2087
|
-
variant: "destructive",
|
|
2088
|
-
onClick: w,
|
|
2089
|
-
disabled: n.value,
|
|
2090
|
-
loading: n.value
|
|
2091
|
-
}, null, 8, ["disabled", "loading"])) : _("", !0)
|
|
2053
|
+
(w(!0), V(J, null, $(t.value, (v) => (w(), V("li", { key: v }, j(v), 1))), 128))
|
|
2054
|
+
])
|
|
2092
2055
|
])) : _("", !0)
|
|
2093
2056
|
]);
|
|
2094
2057
|
};
|
|
@@ -2101,9 +2064,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2101
2064
|
loading: { type: Boolean }
|
|
2102
2065
|
},
|
|
2103
2066
|
emits: ["update:show"],
|
|
2104
|
-
setup(F, { emit:
|
|
2067
|
+
setup(F, { emit: g }) {
|
|
2105
2068
|
var k;
|
|
2106
|
-
const s = ie(),
|
|
2069
|
+
const s = ie(), i = le(), n = F, t = ae(n, "show"), { t: u } = G(), b = g, S = W(), y = ((k = S._currentLocation) == null ? void 0 : k.type) || "", v = [
|
|
2107
2070
|
{
|
|
2108
2071
|
label: "Inventory Transfer (Out)",
|
|
2109
2072
|
value: "inventoryTransfer"
|
|
@@ -2114,42 +2077,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2114
2077
|
value: "transferOrder"
|
|
2115
2078
|
/* TRANSFER_ORDER */
|
|
2116
2079
|
}
|
|
2117
|
-
], l = M(
|
|
2118
|
-
(
|
|
2080
|
+
], l = M(v[0].value), r = z(() => i.currentLocationSubsidiary()), h = z(() => i.currentLocationSetting), C = z(() => n.nsLocations.filter(
|
|
2081
|
+
(p) => p.subsidiaryId === r.value.id || p.netsuiteId === r.value.id
|
|
2119
2082
|
));
|
|
2120
|
-
return (
|
|
2083
|
+
return (p, m) => {
|
|
2121
2084
|
var e;
|
|
2122
|
-
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"),
|
|
2123
|
-
return
|
|
2085
|
+
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"), f = E("FmSideSheet");
|
|
2086
|
+
return w(), X(f, {
|
|
2124
2087
|
modelValue: I(t),
|
|
2125
|
-
"onUpdate:modelValue":
|
|
2088
|
+
"onUpdate:modelValue": m[2] || (m[2] = (o) => se(t) ? t.value = o : null),
|
|
2126
2089
|
header: "Data migration (Xilnex)",
|
|
2127
2090
|
"dismiss-away": "",
|
|
2128
2091
|
"close-button": "",
|
|
2129
2092
|
"max-width": 800
|
|
2130
2093
|
}, oe({
|
|
2131
2094
|
default: R(() => [
|
|
2132
|
-
I(
|
|
2133
|
-
l.value === "inventoryTransfer" ? (
|
|
2095
|
+
I(i).isCurrentLocationBindedToNetSuite ? (w(), V(J, { key: 1 }, [
|
|
2096
|
+
l.value === "inventoryTransfer" ? (w(), X(Cn, {
|
|
2134
2097
|
key: 0,
|
|
2135
2098
|
currentLocationSetting: h.value,
|
|
2136
2099
|
nsLocations: C.value,
|
|
2137
2100
|
currentLocationSubsidiary: r.value
|
|
2138
2101
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0),
|
|
2139
|
-
l.value === "transferOrder" ? (
|
|
2102
|
+
l.value === "transferOrder" ? (w(), X(Vn, {
|
|
2140
2103
|
key: 1,
|
|
2141
2104
|
currentLocationSetting: h.value,
|
|
2142
2105
|
nsLocations: C.value,
|
|
2143
2106
|
currentLocationSubsidiary: r.value
|
|
2144
2107
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0)
|
|
2145
|
-
], 64)) : (
|
|
2108
|
+
], 64)) : (w(), V("div", On, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
2146
2109
|
]),
|
|
2147
2110
|
"side-sheet-footer": R(() => [
|
|
2148
2111
|
a("div", jn, [
|
|
2149
2112
|
x(A, {
|
|
2150
2113
|
variant: "tertiary",
|
|
2151
|
-
label: I(
|
|
2152
|
-
onClick:
|
|
2114
|
+
label: I(u)("common.close"),
|
|
2115
|
+
onClick: m[1] || (m[1] = (o) => b("update:show", !1))
|
|
2153
2116
|
}, null, 8, ["label"])
|
|
2154
2117
|
])
|
|
2155
2118
|
]),
|
|
@@ -2162,19 +2125,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2162
2125
|
return [
|
|
2163
2126
|
a("div", Nn, [
|
|
2164
2127
|
a("div", Dn, [
|
|
2165
|
-
|
|
2128
|
+
m[3] || (m[3] = a("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
2166
2129
|
a("div", Rn, [
|
|
2167
2130
|
x(d, {
|
|
2168
|
-
name: I(
|
|
2131
|
+
name: I(y),
|
|
2169
2132
|
size: "sm"
|
|
2170
2133
|
}, null, 8, ["name"]),
|
|
2171
|
-
a("div", Mn, j((o = I(
|
|
2134
|
+
a("div", Mn, j((o = I(S)._currentLocation) == null ? void 0 : o.name), 1)
|
|
2172
2135
|
])
|
|
2173
2136
|
]),
|
|
2174
2137
|
x(c, {
|
|
2175
2138
|
"model-value": l.value,
|
|
2176
|
-
"onUpdate:modelValue":
|
|
2177
|
-
items:
|
|
2139
|
+
"onUpdate:modelValue": m[0] || (m[0] = (B) => l.value = B),
|
|
2140
|
+
items: v
|
|
2178
2141
|
}, null, 8, ["model-value"])
|
|
2179
2142
|
])
|
|
2180
2143
|
];
|
|
@@ -2187,31 +2150,31 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2187
2150
|
}), zn = { class: "flex justify-center" }, Hn = ["src"], _n = { class: "flex flex-col items-center gap-2" }, Xn = { class: "text-lg font-bold" }, Un = { class: "text-fm-color-neutral-gray-300" }, Qn = /* @__PURE__ */ Y({
|
|
2188
2151
|
__name: "NetSuite",
|
|
2189
2152
|
setup(F) {
|
|
2190
|
-
const
|
|
2153
|
+
const g = le(), s = te(), i = M(!1), n = M(!1);
|
|
2191
2154
|
async function t() {
|
|
2192
2155
|
n.value = !0;
|
|
2193
2156
|
}
|
|
2194
|
-
const
|
|
2157
|
+
const u = M([]);
|
|
2195
2158
|
ze(async () => {
|
|
2196
|
-
if (
|
|
2197
|
-
|
|
2159
|
+
if (g.isReady && g.isEnabled) {
|
|
2160
|
+
i.value = !0;
|
|
2198
2161
|
try {
|
|
2199
|
-
const
|
|
2200
|
-
|
|
2162
|
+
const S = await g.getNetSuiteLocationOptions();
|
|
2163
|
+
u.value = S;
|
|
2201
2164
|
} catch {
|
|
2202
2165
|
s.open({
|
|
2203
2166
|
message: "Failed to fetch NetSuite locations",
|
|
2204
2167
|
type: "error"
|
|
2205
2168
|
});
|
|
2206
2169
|
} finally {
|
|
2207
|
-
|
|
2170
|
+
i.value = !1;
|
|
2208
2171
|
}
|
|
2209
2172
|
}
|
|
2210
2173
|
});
|
|
2211
|
-
const { t: b } =
|
|
2212
|
-
return (
|
|
2213
|
-
const
|
|
2214
|
-
return I(
|
|
2174
|
+
const { t: b } = G();
|
|
2175
|
+
return (S, y) => {
|
|
2176
|
+
const v = E("FmCardSection"), l = E("FmCard");
|
|
2177
|
+
return I(g).isEnabled ? (w(), V(J, { key: 0 }, [
|
|
2215
2178
|
x(l, {
|
|
2216
2179
|
class: Z({
|
|
2217
2180
|
"w-full": !0,
|
|
@@ -2220,10 +2183,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2220
2183
|
"cursor-pointer": !0,
|
|
2221
2184
|
"hover:border-fm-color-primary": !0
|
|
2222
2185
|
}),
|
|
2223
|
-
onClick:
|
|
2186
|
+
onClick: y[0] || (y[0] = (r) => t())
|
|
2224
2187
|
}, {
|
|
2225
2188
|
default: R(() => [
|
|
2226
|
-
x(
|
|
2189
|
+
x(v, null, {
|
|
2227
2190
|
default: R(() => [
|
|
2228
2191
|
a("div", zn, [
|
|
2229
2192
|
a("img", {
|
|
@@ -2241,36 +2204,36 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2241
2204
|
]),
|
|
2242
2205
|
_: 1
|
|
2243
2206
|
}),
|
|
2244
|
-
I(
|
|
2207
|
+
I(g).state.setting ? (w(), X(ue, {
|
|
2245
2208
|
key: 0,
|
|
2246
2209
|
to: "body"
|
|
2247
2210
|
}, [
|
|
2248
|
-
I(
|
|
2211
|
+
I(g).isBusinessLocation ? (w(), X(dn, {
|
|
2249
2212
|
key: 0,
|
|
2250
|
-
setting: I(
|
|
2251
|
-
"onUpdate:setting":
|
|
2252
|
-
nsLocations:
|
|
2253
|
-
"onUpdate:nsLocations":
|
|
2213
|
+
setting: I(g).state.setting,
|
|
2214
|
+
"onUpdate:setting": y[1] || (y[1] = (r) => I(g).state.setting = r),
|
|
2215
|
+
nsLocations: u.value,
|
|
2216
|
+
"onUpdate:nsLocations": y[2] || (y[2] = (r) => u.value = r),
|
|
2254
2217
|
show: n.value,
|
|
2255
2218
|
"onUpdate:show": [
|
|
2256
|
-
|
|
2257
|
-
|
|
2219
|
+
y[3] || (y[3] = (r) => n.value = r),
|
|
2220
|
+
y[4] || (y[4] = (r) => n.value = r)
|
|
2258
2221
|
],
|
|
2259
|
-
loading:
|
|
2260
|
-
"onUpdate:loading":
|
|
2261
|
-
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (
|
|
2222
|
+
loading: i.value,
|
|
2223
|
+
"onUpdate:loading": y[5] || (y[5] = (r) => i.value = r)
|
|
2224
|
+
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (w(), X(Tn, {
|
|
2262
2225
|
key: 1,
|
|
2263
|
-
setting: I(
|
|
2264
|
-
"onUpdate:setting":
|
|
2265
|
-
nsLocations:
|
|
2266
|
-
"onUpdate:nsLocations":
|
|
2226
|
+
setting: I(g).state.setting,
|
|
2227
|
+
"onUpdate:setting": y[6] || (y[6] = (r) => I(g).state.setting = r),
|
|
2228
|
+
nsLocations: u.value,
|
|
2229
|
+
"onUpdate:nsLocations": y[7] || (y[7] = (r) => u.value = r),
|
|
2267
2230
|
show: n.value,
|
|
2268
2231
|
"onUpdate:show": [
|
|
2269
|
-
|
|
2270
|
-
|
|
2232
|
+
y[8] || (y[8] = (r) => n.value = r),
|
|
2233
|
+
y[9] || (y[9] = (r) => n.value = r)
|
|
2271
2234
|
],
|
|
2272
|
-
loading:
|
|
2273
|
-
"onUpdate:loading":
|
|
2235
|
+
loading: i.value,
|
|
2236
|
+
"onUpdate:loading": y[10] || (y[10] = (r) => i.value = r)
|
|
2274
2237
|
}, null, 8, ["setting", "nsLocations", "show", "loading"]))
|
|
2275
2238
|
])) : _("", !0)
|
|
2276
2239
|
], 64)) : _("", !0);
|
|
@@ -2293,47 +2256,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2293
2256
|
"schemeFranchiseePrice",
|
|
2294
2257
|
"physicalSchemeTotalFranchiseePrice"
|
|
2295
2258
|
];
|
|
2296
|
-
async function Yn(F,
|
|
2297
|
-
var
|
|
2298
|
-
const
|
|
2299
|
-
for (const b in
|
|
2300
|
-
const
|
|
2301
|
-
for (let
|
|
2302
|
-
const
|
|
2259
|
+
async function Yn(F, g, s) {
|
|
2260
|
+
var u;
|
|
2261
|
+
const i = await Jn(s), n = [], t = {};
|
|
2262
|
+
for (const b in i) {
|
|
2263
|
+
const S = i[b];
|
|
2264
|
+
for (let y = 0; y < S.length; y++) {
|
|
2265
|
+
const v = S[y], l = v.itemCode, r = v.itemName, h = v.physicalQty, C = v.customCost;
|
|
2303
2266
|
if (l === "" || l === "undefined") {
|
|
2304
2267
|
n.push({
|
|
2305
|
-
row:
|
|
2268
|
+
row: v.excelRow,
|
|
2306
2269
|
itemCode: l,
|
|
2307
2270
|
itemName: r,
|
|
2308
2271
|
message: "Item code is empty or undefined"
|
|
2309
2272
|
});
|
|
2310
2273
|
continue;
|
|
2311
2274
|
}
|
|
2312
|
-
const k =
|
|
2275
|
+
const k = g.find((A) => A.code === l);
|
|
2313
2276
|
if (!k) {
|
|
2314
2277
|
n.push({
|
|
2315
|
-
row:
|
|
2278
|
+
row: v.excelRow,
|
|
2316
2279
|
itemCode: l,
|
|
2317
2280
|
itemName: r,
|
|
2318
2281
|
qty: h,
|
|
2319
2282
|
message: "Item not found in inventory"
|
|
2320
|
-
}), console.error(`${
|
|
2283
|
+
}), console.error(`${v.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2321
2284
|
continue;
|
|
2322
2285
|
}
|
|
2323
|
-
let
|
|
2324
|
-
const
|
|
2325
|
-
|
|
2326
|
-
const d =
|
|
2286
|
+
let p = Number(v.totalPhysicalCustomCost);
|
|
2287
|
+
const m = F[k._id];
|
|
2288
|
+
m && (p = m * Number(h));
|
|
2289
|
+
const d = P.fromNumber(Number(h)), c = {
|
|
2327
2290
|
amount: d,
|
|
2328
2291
|
cost: {
|
|
2329
|
-
...
|
|
2292
|
+
...P.fromNumber(Number(p)),
|
|
2330
2293
|
currency: "MYR"
|
|
2331
2294
|
}
|
|
2332
2295
|
};
|
|
2333
|
-
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[
|
|
2296
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[u = k._id] ?? (t[u] = {
|
|
2334
2297
|
skuAdjustment: {
|
|
2335
2298
|
sku: k,
|
|
2336
|
-
fromBalance:
|
|
2299
|
+
fromBalance: P.fromNumber(0),
|
|
2337
2300
|
amounts: [
|
|
2338
2301
|
{
|
|
2339
2302
|
_id: null,
|
|
@@ -2362,44 +2325,44 @@ async function Yn(F, y, s) {
|
|
|
2362
2325
|
};
|
|
2363
2326
|
}
|
|
2364
2327
|
async function Jn(F) {
|
|
2365
|
-
const
|
|
2328
|
+
const g = await new Promise((t, u) => {
|
|
2366
2329
|
const b = new FileReader();
|
|
2367
|
-
b.onload = (
|
|
2368
|
-
}), s = ke(
|
|
2369
|
-
for (const t of
|
|
2370
|
-
const
|
|
2371
|
-
n[t] =
|
|
2330
|
+
b.onload = (S) => t(S.target.result), b.onerror = u, b.readAsArrayBuffer(F);
|
|
2331
|
+
}), s = ke(g, { type: "array" }), i = s.SheetNames, n = {};
|
|
2332
|
+
for (const t of i) {
|
|
2333
|
+
const u = await Kn(s.Sheets[t]);
|
|
2334
|
+
n[t] = u;
|
|
2372
2335
|
}
|
|
2373
2336
|
return n;
|
|
2374
2337
|
}
|
|
2375
2338
|
async function Kn(F) {
|
|
2376
|
-
const
|
|
2339
|
+
const g = Be.sheet_to_json(F, {
|
|
2377
2340
|
header: xe,
|
|
2378
2341
|
range: 12
|
|
2379
2342
|
}), s = [];
|
|
2380
|
-
for (let
|
|
2381
|
-
const n =
|
|
2382
|
-
for (const
|
|
2383
|
-
t[
|
|
2343
|
+
for (let i = 0; i < g.length; i++) {
|
|
2344
|
+
const n = g[i], t = {};
|
|
2345
|
+
for (const u of xe)
|
|
2346
|
+
t[u] = String(n[u]).trim();
|
|
2384
2347
|
s.push({
|
|
2385
2348
|
...t,
|
|
2386
|
-
excelRow:
|
|
2349
|
+
excelRow: i + 13
|
|
2387
2350
|
// Excel rows start from 1, and we skip the first 12 rows
|
|
2388
2351
|
});
|
|
2389
2352
|
}
|
|
2390
2353
|
return s;
|
|
2391
2354
|
}
|
|
2392
|
-
const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" },
|
|
2355
|
+
const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn = {
|
|
2393
2356
|
key: 0,
|
|
2394
2357
|
class: "flex flex-col gap-4 my-5"
|
|
2395
|
-
},
|
|
2358
|
+
}, Pn = { class: "flex flex-col gap-8" }, Wn = { class: "flex flex-col gap-8" }, $n = {
|
|
2396
2359
|
class: /* @__PURE__ */ Z(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
2397
2360
|
}, eo = {
|
|
2398
2361
|
class: /* @__PURE__ */ Z(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
2399
2362
|
}, to = { class: "line-clamp-2 text-ellipsis break-all" }, no = { class: "flex flex-col" }, oo = { class: "font-medium" }, so = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, ao = { class: "flex" }, lo = { class: "flex" }, io = { key: 1 }, ro = /* @__PURE__ */ Y({
|
|
2400
2363
|
__name: "XilnexOpeningImport",
|
|
2401
2364
|
setup(F) {
|
|
2402
|
-
const
|
|
2365
|
+
const g = Ge(), s = le(), i = be(), n = Ce(), t = te(), u = z(() => [
|
|
2403
2366
|
{
|
|
2404
2367
|
value: "xilnex",
|
|
2405
2368
|
label: "Xilnex",
|
|
@@ -2414,7 +2377,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2414
2377
|
disabledReason: "Current location is not binded to NetSuite"
|
|
2415
2378
|
}
|
|
2416
2379
|
] : []
|
|
2417
|
-
]), b = M(
|
|
2380
|
+
]), b = M(u.value[0].value), { t: S } = ce(), y = M(null), v = M(), l = M(""), r = M([]), h = M([]), C = [
|
|
2418
2381
|
{
|
|
2419
2382
|
id: "ingredient",
|
|
2420
2383
|
header: () => "Ingredient",
|
|
@@ -2437,7 +2400,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2437
2400
|
D(
|
|
2438
2401
|
"span",
|
|
2439
2402
|
{ class: "font-medium" },
|
|
2440
|
-
|
|
2403
|
+
P.toFormatString({
|
|
2441
2404
|
value: o.skuAdjustment.amounts[0].amount
|
|
2442
2405
|
})
|
|
2443
2406
|
)
|
|
@@ -2477,7 +2440,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2477
2440
|
D(
|
|
2478
2441
|
"span",
|
|
2479
2442
|
{ class: "font-medium" },
|
|
2480
|
-
|
|
2443
|
+
P.toFormatString({
|
|
2481
2444
|
value: L
|
|
2482
2445
|
})
|
|
2483
2446
|
)
|
|
@@ -2505,17 +2468,17 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2505
2468
|
accessorKey: "message",
|
|
2506
2469
|
header: "Error Message"
|
|
2507
2470
|
}
|
|
2508
|
-
],
|
|
2509
|
-
async function
|
|
2510
|
-
if (
|
|
2511
|
-
|
|
2471
|
+
], p = M(!1);
|
|
2472
|
+
async function m() {
|
|
2473
|
+
if (y.value) {
|
|
2474
|
+
p.value = !0;
|
|
2512
2475
|
try {
|
|
2513
2476
|
let e = {};
|
|
2514
2477
|
b.value === "netsuite" && (e = await s.getItemAverageCosts());
|
|
2515
2478
|
const { errors: o, rows: B } = await Yn(
|
|
2516
2479
|
e,
|
|
2517
|
-
|
|
2518
|
-
|
|
2480
|
+
i.skus,
|
|
2481
|
+
y.value
|
|
2519
2482
|
);
|
|
2520
2483
|
r.value = o, h.value = Object.values(B);
|
|
2521
2484
|
} catch {
|
|
@@ -2524,13 +2487,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2524
2487
|
type: "error"
|
|
2525
2488
|
});
|
|
2526
2489
|
} finally {
|
|
2527
|
-
|
|
2490
|
+
p.value = !1;
|
|
2528
2491
|
}
|
|
2529
2492
|
}
|
|
2530
2493
|
}
|
|
2531
2494
|
async function d() {
|
|
2532
|
-
if (
|
|
2533
|
-
|
|
2495
|
+
if (y.value) {
|
|
2496
|
+
p.value = !0;
|
|
2534
2497
|
try {
|
|
2535
2498
|
if (!A.value) {
|
|
2536
2499
|
t.open({
|
|
@@ -2546,14 +2509,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2546
2509
|
}), t.open({
|
|
2547
2510
|
message: "Opening balance imported successfully",
|
|
2548
2511
|
type: "success"
|
|
2549
|
-
}), await
|
|
2512
|
+
}), await g.fetchClosingDocumentId();
|
|
2550
2513
|
} catch {
|
|
2551
2514
|
t.open({
|
|
2552
2515
|
message: "Error importing opening balance",
|
|
2553
2516
|
type: "error"
|
|
2554
2517
|
});
|
|
2555
2518
|
} finally {
|
|
2556
|
-
|
|
2519
|
+
p.value = !1;
|
|
2557
2520
|
}
|
|
2558
2521
|
}
|
|
2559
2522
|
}
|
|
@@ -2564,14 +2527,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2564
2527
|
set(e) {
|
|
2565
2528
|
c.value = `${e}T15:59:59.999Z`;
|
|
2566
2529
|
}
|
|
2567
|
-
}),
|
|
2530
|
+
}), f = z(() => {
|
|
2568
2531
|
if (!c.value) return null;
|
|
2569
2532
|
const e = new Date(c.value);
|
|
2570
2533
|
return isNaN(e.getTime()) ? null : ye(e);
|
|
2571
2534
|
});
|
|
2572
2535
|
return (e, o) => {
|
|
2573
2536
|
const B = E("FmLabel"), L = E("FmField"), N = E("FmSimpleDatePicker"), H = E("FmButton"), U = E("FmRadio"), O = E("FmRadioGroup"), T = E("FmTable");
|
|
2574
|
-
return
|
|
2537
|
+
return w(), V("div", qn, [
|
|
2575
2538
|
a("div", Zn, [
|
|
2576
2539
|
x(B, { label: "Latest closing" })
|
|
2577
2540
|
]),
|
|
@@ -2580,13 +2543,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2580
2543
|
disabled: ""
|
|
2581
2544
|
}, {
|
|
2582
2545
|
default: R(() => [
|
|
2583
|
-
q(j(I(
|
|
2546
|
+
q(j(I(g).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(g).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
2584
2547
|
]),
|
|
2585
2548
|
_: 1
|
|
2586
2549
|
}),
|
|
2587
|
-
I(
|
|
2550
|
+
I(g).state.closingDocumentId ? (w(), V("div", io, o[6] || (o[6] = [
|
|
2588
2551
|
a("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)
|
|
2589
|
-
]))) : (
|
|
2552
|
+
]))) : (w(), V("div", Gn, [
|
|
2590
2553
|
x(N, {
|
|
2591
2554
|
modelValue: A.value,
|
|
2592
2555
|
"onUpdate:modelValue": o[0] || (o[0] = (Q) => A.value = Q),
|
|
@@ -2599,31 +2562,31 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2599
2562
|
label: "Last closing time"
|
|
2600
2563
|
}, {
|
|
2601
2564
|
default: R(() => [
|
|
2602
|
-
q(j(
|
|
2565
|
+
q(j(f.value), 1)
|
|
2603
2566
|
]),
|
|
2604
2567
|
_: 1
|
|
2605
2568
|
})
|
|
2606
2569
|
]),
|
|
2607
2570
|
_: 1
|
|
2608
2571
|
}, 8, ["modelValue"]),
|
|
2609
|
-
a("div",
|
|
2572
|
+
a("div", Pn, [
|
|
2610
2573
|
x(B, { label: "Stock take file" })
|
|
2611
2574
|
]),
|
|
2612
2575
|
x(Fe, {
|
|
2613
2576
|
onFileUpload: o[1] || (o[1] = (Q) => {
|
|
2614
|
-
Q && (
|
|
2577
|
+
Q && (y.value = Q);
|
|
2615
2578
|
}),
|
|
2616
2579
|
accept: ".xlsx, .xls, .csv"
|
|
2617
2580
|
}, oe({ _: 2 }, [
|
|
2618
|
-
|
|
2581
|
+
y.value ? {
|
|
2619
2582
|
name: "default",
|
|
2620
2583
|
fn: R(({ openFileDialog: Q }) => [
|
|
2621
2584
|
a("div", Wn, [
|
|
2622
2585
|
a("div", $n, [
|
|
2623
2586
|
a("div", eo, [
|
|
2624
|
-
a("div", to, j(
|
|
2587
|
+
a("div", to, j(y.value.name), 1),
|
|
2625
2588
|
x(H, {
|
|
2626
|
-
label: I(
|
|
2589
|
+
label: I(S)("inventory.ingredient.import.replaceFile"),
|
|
2627
2590
|
variant: "secondary",
|
|
2628
2591
|
"prepend-icon": "autorenew",
|
|
2629
2592
|
onClick: Q
|
|
@@ -2642,7 +2605,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2642
2605
|
class: "my-5"
|
|
2643
2606
|
}, {
|
|
2644
2607
|
default: R(() => [
|
|
2645
|
-
(
|
|
2608
|
+
(w(!0), V(J, null, $(u.value, (Q) => (w(), X(U, {
|
|
2646
2609
|
key: Q.value,
|
|
2647
2610
|
value: Q.value,
|
|
2648
2611
|
label: Q.label,
|
|
@@ -2666,23 +2629,23 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2666
2629
|
variant: "secondary",
|
|
2667
2630
|
"prepend-icon": "troubleshoot",
|
|
2668
2631
|
label: "Verify",
|
|
2669
|
-
disabled: !
|
|
2670
|
-
loading:
|
|
2671
|
-
onClick:
|
|
2632
|
+
disabled: !y.value && !p.value,
|
|
2633
|
+
loading: p.value,
|
|
2634
|
+
onClick: m
|
|
2672
2635
|
}, null, 8, ["disabled", "loading"])
|
|
2673
2636
|
]),
|
|
2674
|
-
|
|
2637
|
+
y.value && h.value.length > 0 ? (w(), V(J, { key: 0 }, [
|
|
2675
2638
|
o[4] || (o[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
2676
2639
|
x(T, {
|
|
2677
|
-
modelValue:
|
|
2678
|
-
"onUpdate:modelValue": o[3] || (o[3] = (Q) =>
|
|
2640
|
+
modelValue: v.value,
|
|
2641
|
+
"onUpdate:modelValue": o[3] || (o[3] = (Q) => v.value = Q),
|
|
2679
2642
|
"row-data": h.value,
|
|
2680
2643
|
"column-defs": C,
|
|
2681
2644
|
"shrink-at": !1,
|
|
2682
2645
|
"search-value": l.value
|
|
2683
2646
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
2684
2647
|
], 64)) : _("", !0),
|
|
2685
|
-
r.value.length > 0 ? (
|
|
2648
|
+
r.value.length > 0 ? (w(), V(J, { key: 1 }, [
|
|
2686
2649
|
o[5] || (o[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
2687
2650
|
x(T, {
|
|
2688
2651
|
"row-data": r.value,
|
|
@@ -2690,13 +2653,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2690
2653
|
}, null, 8, ["row-data"])
|
|
2691
2654
|
], 64)) : _("", !0),
|
|
2692
2655
|
a("div", lo, [
|
|
2693
|
-
h.value.length > 0 && !I(
|
|
2656
|
+
h.value.length > 0 && !I(g).state.closingDocumentId ? (w(), X(H, {
|
|
2694
2657
|
key: 0,
|
|
2695
2658
|
class: "ml-auto mt-4",
|
|
2696
2659
|
"prepend-icon": "file_upload",
|
|
2697
2660
|
variant: "primary",
|
|
2698
2661
|
label: "Import Opening Balance",
|
|
2699
|
-
disabled: !
|
|
2662
|
+
disabled: !y.value || p.value,
|
|
2700
2663
|
onClick: d
|
|
2701
2664
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
2702
2665
|
])
|
|
@@ -2714,9 +2677,9 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2714
2677
|
loading: { type: Boolean }
|
|
2715
2678
|
},
|
|
2716
2679
|
emits: ["update:show"],
|
|
2717
|
-
setup(F, { emit:
|
|
2680
|
+
setup(F, { emit: g }) {
|
|
2718
2681
|
var l;
|
|
2719
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
2682
|
+
const s = ie(), n = ae(F, "show"), { t } = G(), u = g, b = W(), S = ((l = b._currentLocation) == null ? void 0 : l.type) || "", y = [
|
|
2720
2683
|
{ label: re(
|
|
2721
2684
|
"openingBalance"
|
|
2722
2685
|
/* OPENING_BALANCE */
|
|
@@ -2725,11 +2688,11 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2725
2688
|
"transferNote"
|
|
2726
2689
|
/* TRANSFER_NOTE */
|
|
2727
2690
|
) }
|
|
2728
|
-
],
|
|
2691
|
+
], v = M(y[0]);
|
|
2729
2692
|
return (r, h) => {
|
|
2730
2693
|
var d;
|
|
2731
|
-
const C = E("FmIcon"), k = E("FmButtonGroup"),
|
|
2732
|
-
return
|
|
2694
|
+
const C = E("FmIcon"), k = E("FmButtonGroup"), p = E("FmButton"), m = E("FmSideSheet");
|
|
2695
|
+
return w(), X(m, {
|
|
2733
2696
|
modelValue: I(n),
|
|
2734
2697
|
"onUpdate:modelValue": h[2] || (h[2] = (c) => se(n) ? n.value = c : null),
|
|
2735
2698
|
header: "Data migration (Xilnex)",
|
|
@@ -2740,24 +2703,24 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2740
2703
|
default: R(() => {
|
|
2741
2704
|
var c;
|
|
2742
2705
|
return [
|
|
2743
|
-
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (
|
|
2744
|
-
|
|
2706
|
+
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (w(), V("div", vo, [
|
|
2707
|
+
v.value.label === I(re)(
|
|
2745
2708
|
"openingBalance"
|
|
2746
2709
|
/* OPENING_BALANCE */
|
|
2747
|
-
) ? (
|
|
2748
|
-
|
|
2710
|
+
) ? (w(), X(ro, { key: 0 })) : _("", !0),
|
|
2711
|
+
v.value.label === I(re)(
|
|
2749
2712
|
"transferNote"
|
|
2750
2713
|
/* TRANSFER_NOTE */
|
|
2751
|
-
) ? (
|
|
2752
|
-
])) : (
|
|
2714
|
+
) ? (w(), V("div", go, " Not available yet. ")) : _("", !0)
|
|
2715
|
+
])) : (w(), V("div", po, " Please contact your administrator to apply the changes. "))
|
|
2753
2716
|
];
|
|
2754
2717
|
}),
|
|
2755
2718
|
"side-sheet-footer": R(() => [
|
|
2756
2719
|
a("div", yo, [
|
|
2757
|
-
x(
|
|
2720
|
+
x(p, {
|
|
2758
2721
|
variant: "tertiary",
|
|
2759
2722
|
label: I(t)("common.close"),
|
|
2760
|
-
onClick: h[1] || (h[1] = (c) =>
|
|
2723
|
+
onClick: h[1] || (h[1] = (c) => u("update:show", !1))
|
|
2761
2724
|
}, null, 8, ["label"])
|
|
2762
2725
|
])
|
|
2763
2726
|
]),
|
|
@@ -2773,16 +2736,16 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2773
2736
|
h[3] || (h[3] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
2774
2737
|
a("div", mo, [
|
|
2775
2738
|
x(C, {
|
|
2776
|
-
name: I(
|
|
2739
|
+
name: I(S),
|
|
2777
2740
|
size: "sm"
|
|
2778
2741
|
}, null, 8, ["name"]),
|
|
2779
2742
|
a("div", fo, j((c = I(b)._currentLocation) == null ? void 0 : c.name), 1)
|
|
2780
2743
|
])
|
|
2781
2744
|
]),
|
|
2782
2745
|
x(k, {
|
|
2783
|
-
modelValue:
|
|
2784
|
-
"onUpdate:modelValue": h[0] || (h[0] = (A) =>
|
|
2785
|
-
items:
|
|
2746
|
+
modelValue: v.value,
|
|
2747
|
+
"onUpdate:modelValue": h[0] || (h[0] = (A) => v.value = A),
|
|
2748
|
+
items: y
|
|
2786
2749
|
}, null, 8, ["modelValue"])
|
|
2787
2750
|
])
|
|
2788
2751
|
];
|
|
@@ -2795,14 +2758,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2795
2758
|
}), bo = /* @__PURE__ */ Y({
|
|
2796
2759
|
__name: "XilnexView",
|
|
2797
2760
|
setup(F) {
|
|
2798
|
-
const
|
|
2761
|
+
const g = Le(), s = W(), i = M(!1);
|
|
2799
2762
|
async function n() {
|
|
2800
|
-
|
|
2763
|
+
i.value = !0, console.log("Opening Xilnex migration dialog");
|
|
2801
2764
|
}
|
|
2802
|
-
return (t,
|
|
2803
|
-
const b = E("FmCardSection"),
|
|
2804
|
-
return I(
|
|
2805
|
-
x(
|
|
2765
|
+
return (t, u) => {
|
|
2766
|
+
const b = E("FmCardSection"), S = E("FmCard");
|
|
2767
|
+
return I(g).enabledXilnexOpeningMigration && !I(s).businessLevel ? (w(), V(J, { key: 0 }, [
|
|
2768
|
+
x(S, {
|
|
2806
2769
|
class: Z({
|
|
2807
2770
|
"w-full": !0,
|
|
2808
2771
|
border: !0,
|
|
@@ -2810,11 +2773,11 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2810
2773
|
"cursor-pointer": !0,
|
|
2811
2774
|
"hover:border-fm-color-primary": !0
|
|
2812
2775
|
}),
|
|
2813
|
-
onClick:
|
|
2776
|
+
onClick: u[0] || (u[0] = (y) => n())
|
|
2814
2777
|
}, {
|
|
2815
2778
|
default: R(() => [
|
|
2816
2779
|
x(b, null, {
|
|
2817
|
-
default: R(() =>
|
|
2780
|
+
default: R(() => u[2] || (u[2] = [
|
|
2818
2781
|
a("div", { class: "flex justify-center" }, [
|
|
2819
2782
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
2820
2783
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Xilnex")
|
|
@@ -2830,10 +2793,10 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2830
2793
|
]),
|
|
2831
2794
|
_: 1
|
|
2832
2795
|
}),
|
|
2833
|
-
(
|
|
2796
|
+
(w(), X(ue, { to: "body" }, [
|
|
2834
2797
|
x(Ao, {
|
|
2835
|
-
show:
|
|
2836
|
-
"onUpdate:show":
|
|
2798
|
+
show: i.value,
|
|
2799
|
+
"onUpdate:show": u[1] || (u[1] = (y) => i.value = y)
|
|
2837
2800
|
}, null, 8, ["show"])
|
|
2838
2801
|
]))
|
|
2839
2802
|
], 64)) : _("", !0);
|
|
@@ -2849,45 +2812,45 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn
|
|
|
2849
2812
|
"quantity",
|
|
2850
2813
|
"total"
|
|
2851
2814
|
];
|
|
2852
|
-
async function ho(F,
|
|
2853
|
-
var
|
|
2854
|
-
const
|
|
2855
|
-
for (let
|
|
2856
|
-
const
|
|
2815
|
+
async function ho(F, g, s) {
|
|
2816
|
+
var S;
|
|
2817
|
+
const i = await xo(s), n = [], t = {}, u = Object.keys(i)[0], b = i[u];
|
|
2818
|
+
for (let y = 0; y < b.length; y++) {
|
|
2819
|
+
const v = b[y], l = v.code, r = v.description, h = v.quantity, C = v.unitcost;
|
|
2857
2820
|
if (l === "" || l === "undefined") {
|
|
2858
2821
|
n.push({
|
|
2859
|
-
row:
|
|
2822
|
+
row: v.excelRow,
|
|
2860
2823
|
itemCode: l,
|
|
2861
2824
|
itemName: r,
|
|
2862
2825
|
message: "Item code is empty or undefined"
|
|
2863
2826
|
});
|
|
2864
2827
|
continue;
|
|
2865
2828
|
}
|
|
2866
|
-
const k =
|
|
2829
|
+
const k = g.find((A) => A.code === l);
|
|
2867
2830
|
if (!k) {
|
|
2868
2831
|
n.push({
|
|
2869
|
-
row:
|
|
2832
|
+
row: v.excelRow,
|
|
2870
2833
|
itemCode: l,
|
|
2871
2834
|
itemName: r,
|
|
2872
2835
|
qty: h,
|
|
2873
2836
|
message: "Item not found in inventory"
|
|
2874
|
-
}), console.error(`${
|
|
2837
|
+
}), console.error(`${v.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2875
2838
|
continue;
|
|
2876
2839
|
}
|
|
2877
|
-
let
|
|
2878
|
-
const
|
|
2879
|
-
|
|
2880
|
-
const d =
|
|
2840
|
+
let p = Number(v.total);
|
|
2841
|
+
const m = F[k._id];
|
|
2842
|
+
m && (p = m * Number(h));
|
|
2843
|
+
const d = P.fromNumber(Number(h)), c = {
|
|
2881
2844
|
amount: d,
|
|
2882
2845
|
cost: {
|
|
2883
|
-
...
|
|
2846
|
+
...P.fromNumber(Number(p)),
|
|
2884
2847
|
currency: "MYR"
|
|
2885
2848
|
}
|
|
2886
2849
|
};
|
|
2887
|
-
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[
|
|
2850
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[S = k._id] ?? (t[S] = {
|
|
2888
2851
|
skuAdjustment: {
|
|
2889
2852
|
sku: k,
|
|
2890
|
-
fromBalance:
|
|
2853
|
+
fromBalance: P.fromNumber(0),
|
|
2891
2854
|
amounts: [
|
|
2892
2855
|
{
|
|
2893
2856
|
_id: null,
|
|
@@ -2915,28 +2878,28 @@ async function ho(F, y, s) {
|
|
|
2915
2878
|
};
|
|
2916
2879
|
}
|
|
2917
2880
|
async function xo(F) {
|
|
2918
|
-
const
|
|
2881
|
+
const g = await new Promise((t, u) => {
|
|
2919
2882
|
const b = new FileReader();
|
|
2920
|
-
b.onload = (
|
|
2921
|
-
}), s = ke(
|
|
2922
|
-
for (const t of
|
|
2923
|
-
const
|
|
2924
|
-
n[t] =
|
|
2883
|
+
b.onload = (S) => t(S.target.result), b.onerror = u, b.readAsArrayBuffer(F);
|
|
2884
|
+
}), s = ke(g, { type: "array" }), i = s.SheetNames, n = {};
|
|
2885
|
+
for (const t of i) {
|
|
2886
|
+
const u = await Io(s.Sheets[t]);
|
|
2887
|
+
n[t] = u;
|
|
2925
2888
|
}
|
|
2926
2889
|
return n;
|
|
2927
2890
|
}
|
|
2928
2891
|
async function Io(F) {
|
|
2929
|
-
const
|
|
2892
|
+
const g = Be.sheet_to_json(F, {
|
|
2930
2893
|
header: Ie,
|
|
2931
2894
|
range: 1
|
|
2932
2895
|
}), s = [];
|
|
2933
|
-
for (let
|
|
2934
|
-
const n =
|
|
2935
|
-
for (const
|
|
2936
|
-
t[
|
|
2896
|
+
for (let i = 0; i < g.length; i++) {
|
|
2897
|
+
const n = g[i], t = {};
|
|
2898
|
+
for (const u of Ie)
|
|
2899
|
+
t[u] = String(n[u]).trim();
|
|
2937
2900
|
s.push({
|
|
2938
2901
|
...t,
|
|
2939
|
-
excelRow:
|
|
2902
|
+
excelRow: i + 2
|
|
2940
2903
|
// Excel rows start from 1, and we skip the first row
|
|
2941
2904
|
});
|
|
2942
2905
|
}
|
|
@@ -2952,18 +2915,18 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2952
2915
|
}, Lo = { class: "line-clamp-2 text-ellipsis break-all" }, Vo = { class: "flex flex-col" }, No = { class: "font-medium" }, Do = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Ro = { class: "flex" }, Mo = { class: "flex" }, Oo = { key: 1 }, jo = /* @__PURE__ */ Y({
|
|
2953
2916
|
__name: "SynergyOpeningImport",
|
|
2954
2917
|
setup(F) {
|
|
2955
|
-
const
|
|
2918
|
+
const g = Pe(), s = be(), i = Ce(), n = te(), t = z(() => [
|
|
2956
2919
|
{
|
|
2957
2920
|
value: "synergy",
|
|
2958
2921
|
label: "Synergy",
|
|
2959
2922
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
2960
2923
|
}
|
|
2961
|
-
]),
|
|
2924
|
+
]), u = M(t.value[0].value), { t: b } = ce(), S = M(null), y = M(), v = M(""), l = M([]), r = M([]), h = [
|
|
2962
2925
|
{
|
|
2963
2926
|
id: "ingredient",
|
|
2964
2927
|
header: () => "Ingredient",
|
|
2965
|
-
cell(
|
|
2966
|
-
const e =
|
|
2928
|
+
cell(f) {
|
|
2929
|
+
const e = f.row.original;
|
|
2967
2930
|
return D("div", { class: "flex flex-col" }, [
|
|
2968
2931
|
D("span", { class: "font-medium" }, e.skuAdjustment.sku.name),
|
|
2969
2932
|
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
@@ -2975,13 +2938,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2975
2938
|
{
|
|
2976
2939
|
id: "openingBalance",
|
|
2977
2940
|
header: () => "Opening Balance",
|
|
2978
|
-
cell(
|
|
2979
|
-
const e =
|
|
2941
|
+
cell(f) {
|
|
2942
|
+
const e = f.row.original;
|
|
2980
2943
|
return D("div", { class: "flex flex-col" }, [
|
|
2981
2944
|
D(
|
|
2982
2945
|
"span",
|
|
2983
2946
|
{ class: "font-medium" },
|
|
2984
|
-
|
|
2947
|
+
P.toFormatString({
|
|
2985
2948
|
value: e.skuAdjustment.amounts[0].amount
|
|
2986
2949
|
})
|
|
2987
2950
|
)
|
|
@@ -2991,8 +2954,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2991
2954
|
{
|
|
2992
2955
|
id: "unit",
|
|
2993
2956
|
header: () => "Unit",
|
|
2994
|
-
cell(
|
|
2995
|
-
const e =
|
|
2957
|
+
cell(f) {
|
|
2958
|
+
const e = f.row.original, o = !e.skuAdjustment.amounts[0].measurement;
|
|
2996
2959
|
let B = e.skuAdjustment.sku.unit.name;
|
|
2997
2960
|
if (!o) {
|
|
2998
2961
|
const L = e.skuAdjustment.sku.unit.measurements.find(
|
|
@@ -3011,8 +2974,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3011
2974
|
{
|
|
3012
2975
|
id: "totalCost",
|
|
3013
2976
|
header: () => "Total Cost",
|
|
3014
|
-
cell(
|
|
3015
|
-
const e =
|
|
2977
|
+
cell(f) {
|
|
2978
|
+
const e = f.row.original, { currency: o, ...B } = e.skuAdjustment.amounts[0].cost ?? {
|
|
3016
2979
|
amount: 0,
|
|
3017
2980
|
precision: 0,
|
|
3018
2981
|
currency: ""
|
|
@@ -3021,7 +2984,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3021
2984
|
D(
|
|
3022
2985
|
"span",
|
|
3023
2986
|
{ class: "font-medium" },
|
|
3024
|
-
|
|
2987
|
+
P.toFormatString({
|
|
3025
2988
|
value: B
|
|
3026
2989
|
})
|
|
3027
2990
|
)
|
|
@@ -3050,15 +3013,15 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3050
3013
|
header: "Error Message"
|
|
3051
3014
|
}
|
|
3052
3015
|
], k = M(!1);
|
|
3053
|
-
async function
|
|
3054
|
-
if (
|
|
3016
|
+
async function p() {
|
|
3017
|
+
if (S.value) {
|
|
3055
3018
|
k.value = !0;
|
|
3056
3019
|
try {
|
|
3057
|
-
let
|
|
3020
|
+
let f = {};
|
|
3058
3021
|
const { errors: e, rows: o } = await ho(
|
|
3059
|
-
|
|
3022
|
+
f,
|
|
3060
3023
|
s.skus,
|
|
3061
|
-
|
|
3024
|
+
S.value
|
|
3062
3025
|
);
|
|
3063
3026
|
l.value = e, r.value = Object.values(o);
|
|
3064
3027
|
} catch {
|
|
@@ -3071,8 +3034,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3071
3034
|
}
|
|
3072
3035
|
}
|
|
3073
3036
|
}
|
|
3074
|
-
async function
|
|
3075
|
-
if (
|
|
3037
|
+
async function m() {
|
|
3038
|
+
if (S.value) {
|
|
3076
3039
|
k.value = !0;
|
|
3077
3040
|
try {
|
|
3078
3041
|
if (!c.value) {
|
|
@@ -3082,14 +3045,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3082
3045
|
});
|
|
3083
3046
|
return;
|
|
3084
3047
|
}
|
|
3085
|
-
await
|
|
3048
|
+
await i.setOpeningBalance({
|
|
3086
3049
|
effectiveAt: c.value,
|
|
3087
|
-
skuAdjustments: r.value.map((
|
|
3088
|
-
skuBalances: r.value.map((
|
|
3050
|
+
skuAdjustments: r.value.map((f) => f.skuAdjustment),
|
|
3051
|
+
skuBalances: r.value.map((f) => f.skuBalance)
|
|
3089
3052
|
}), n.open({
|
|
3090
3053
|
message: "Opening balance imported successfully",
|
|
3091
3054
|
type: "success"
|
|
3092
|
-
}), await
|
|
3055
|
+
}), await g.fetchClosingDocumentId();
|
|
3093
3056
|
} catch {
|
|
3094
3057
|
n.open({
|
|
3095
3058
|
message: "Error importing opening balance",
|
|
@@ -3104,17 +3067,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3104
3067
|
get() {
|
|
3105
3068
|
return d.value;
|
|
3106
3069
|
},
|
|
3107
|
-
set(
|
|
3108
|
-
d.value = `${
|
|
3070
|
+
set(f) {
|
|
3071
|
+
d.value = `${f}T15:59:59.999Z`;
|
|
3109
3072
|
}
|
|
3110
3073
|
}), A = z(() => {
|
|
3111
3074
|
if (!d.value) return null;
|
|
3112
|
-
const
|
|
3113
|
-
return isNaN(
|
|
3075
|
+
const f = new Date(d.value);
|
|
3076
|
+
return isNaN(f.getTime()) ? null : ye(f);
|
|
3114
3077
|
});
|
|
3115
|
-
return (
|
|
3078
|
+
return (f, e) => {
|
|
3116
3079
|
const o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"), N = E("FmButton"), H = E("FmRadio"), U = E("FmRadioGroup"), O = E("FmTable");
|
|
3117
|
-
return
|
|
3080
|
+
return w(), V("div", So, [
|
|
3118
3081
|
a("div", wo, [
|
|
3119
3082
|
x(o, { label: "Latest closing" })
|
|
3120
3083
|
]),
|
|
@@ -3123,13 +3086,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3123
3086
|
disabled: ""
|
|
3124
3087
|
}, {
|
|
3125
3088
|
default: R(() => [
|
|
3126
|
-
q(j(I(
|
|
3089
|
+
q(j(I(g).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(g).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
3127
3090
|
]),
|
|
3128
3091
|
_: 1
|
|
3129
3092
|
}),
|
|
3130
|
-
I(
|
|
3093
|
+
I(g).state.closingDocumentId ? (w(), V("div", Oo, e[6] || (e[6] = [
|
|
3131
3094
|
a("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)
|
|
3132
|
-
]))) : (
|
|
3095
|
+
]))) : (w(), V("div", ko, [
|
|
3133
3096
|
x(L, {
|
|
3134
3097
|
modelValue: c.value,
|
|
3135
3098
|
"onUpdate:modelValue": e[0] || (e[0] = (T) => c.value = T),
|
|
@@ -3154,17 +3117,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3154
3117
|
]),
|
|
3155
3118
|
x(Fe, {
|
|
3156
3119
|
onFileUpload: e[1] || (e[1] = (T) => {
|
|
3157
|
-
T && (
|
|
3120
|
+
T && (S.value = T);
|
|
3158
3121
|
}),
|
|
3159
3122
|
accept: ".xlsx, .xls, .csv"
|
|
3160
3123
|
}, oe({ _: 2 }, [
|
|
3161
|
-
|
|
3124
|
+
S.value ? {
|
|
3162
3125
|
name: "default",
|
|
3163
3126
|
fn: R(({ openFileDialog: T }) => [
|
|
3164
3127
|
a("div", Co, [
|
|
3165
3128
|
a("div", Eo, [
|
|
3166
3129
|
a("div", Fo, [
|
|
3167
|
-
a("div", Lo, j(
|
|
3130
|
+
a("div", Lo, j(S.value.name), 1),
|
|
3168
3131
|
x(N, {
|
|
3169
3132
|
label: I(b)("inventory.ingredient.import.replaceFile"),
|
|
3170
3133
|
variant: "secondary",
|
|
@@ -3179,13 +3142,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3179
3142
|
} : void 0
|
|
3180
3143
|
]), 1024),
|
|
3181
3144
|
x(U, {
|
|
3182
|
-
modelValue:
|
|
3183
|
-
"onUpdate:modelValue": e[2] || (e[2] = (T) =>
|
|
3145
|
+
modelValue: u.value,
|
|
3146
|
+
"onUpdate:modelValue": e[2] || (e[2] = (T) => u.value = T),
|
|
3184
3147
|
label: "Retrieve cost from",
|
|
3185
3148
|
class: "my-5"
|
|
3186
3149
|
}, {
|
|
3187
3150
|
default: R(() => [
|
|
3188
|
-
(
|
|
3151
|
+
(w(!0), V(J, null, $(t.value, (T) => (w(), X(H, {
|
|
3189
3152
|
key: T.value,
|
|
3190
3153
|
value: T.value,
|
|
3191
3154
|
label: T.label,
|
|
@@ -3209,23 +3172,23 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3209
3172
|
variant: "secondary",
|
|
3210
3173
|
"prepend-icon": "troubleshoot",
|
|
3211
3174
|
label: "Verify",
|
|
3212
|
-
disabled: !
|
|
3175
|
+
disabled: !S.value && !k.value,
|
|
3213
3176
|
loading: k.value,
|
|
3214
|
-
onClick:
|
|
3177
|
+
onClick: p
|
|
3215
3178
|
}, null, 8, ["disabled", "loading"])
|
|
3216
3179
|
]),
|
|
3217
|
-
|
|
3180
|
+
S.value && r.value.length > 0 ? (w(), V(J, { key: 0 }, [
|
|
3218
3181
|
e[4] || (e[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
3219
3182
|
x(O, {
|
|
3220
|
-
modelValue:
|
|
3221
|
-
"onUpdate:modelValue": e[3] || (e[3] = (T) =>
|
|
3183
|
+
modelValue: y.value,
|
|
3184
|
+
"onUpdate:modelValue": e[3] || (e[3] = (T) => y.value = T),
|
|
3222
3185
|
"row-data": r.value,
|
|
3223
3186
|
"column-defs": h,
|
|
3224
3187
|
"shrink-at": !1,
|
|
3225
|
-
"search-value":
|
|
3188
|
+
"search-value": v.value
|
|
3226
3189
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
3227
3190
|
], 64)) : _("", !0),
|
|
3228
|
-
l.value.length > 0 ? (
|
|
3191
|
+
l.value.length > 0 ? (w(), V(J, { key: 1 }, [
|
|
3229
3192
|
e[5] || (e[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
3230
3193
|
x(O, {
|
|
3231
3194
|
"row-data": l.value,
|
|
@@ -3233,14 +3196,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3233
3196
|
}, null, 8, ["row-data"])
|
|
3234
3197
|
], 64)) : _("", !0),
|
|
3235
3198
|
a("div", Mo, [
|
|
3236
|
-
r.value.length > 0 && !I(
|
|
3199
|
+
r.value.length > 0 && !I(g).state.closingDocumentId ? (w(), X(N, {
|
|
3237
3200
|
key: 0,
|
|
3238
3201
|
class: "ml-auto mt-4",
|
|
3239
3202
|
"prepend-icon": "file_upload",
|
|
3240
3203
|
variant: "primary",
|
|
3241
3204
|
label: "Import Opening Balance",
|
|
3242
|
-
disabled: !
|
|
3243
|
-
onClick:
|
|
3205
|
+
disabled: !S.value || k.value,
|
|
3206
|
+
onClick: m
|
|
3244
3207
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
3245
3208
|
])
|
|
3246
3209
|
]))
|
|
@@ -3257,26 +3220,26 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3257
3220
|
loading: { type: Boolean }
|
|
3258
3221
|
},
|
|
3259
3222
|
emits: ["update:show"],
|
|
3260
|
-
setup(F, { emit:
|
|
3261
|
-
var
|
|
3262
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
3263
|
-
return (
|
|
3223
|
+
setup(F, { emit: g }) {
|
|
3224
|
+
var y;
|
|
3225
|
+
const s = ie(), n = ae(F, "show"), { t } = G(), u = g, b = W(), S = ((y = b._currentLocation) == null ? void 0 : y.type) || "";
|
|
3226
|
+
return (v, l) => {
|
|
3264
3227
|
var k;
|
|
3265
3228
|
const r = E("FmIcon"), h = E("FmButton"), C = E("FmSideSheet");
|
|
3266
|
-
return
|
|
3229
|
+
return w(), X(C, {
|
|
3267
3230
|
modelValue: I(n),
|
|
3268
|
-
"onUpdate:modelValue": l[1] || (l[1] = (
|
|
3231
|
+
"onUpdate:modelValue": l[1] || (l[1] = (p) => se(n) ? n.value = p : null),
|
|
3269
3232
|
header: "Data migration (Synergy)",
|
|
3270
3233
|
"dismiss-away": "",
|
|
3271
3234
|
"close-button": "",
|
|
3272
3235
|
"max-width": 800
|
|
3273
3236
|
}, oe({
|
|
3274
3237
|
default: R(() => {
|
|
3275
|
-
var
|
|
3238
|
+
var p;
|
|
3276
3239
|
return [
|
|
3277
|
-
(
|
|
3240
|
+
(p = I(s).sessionUser.value) != null && p.role.isAdmin ? (w(), V("div", Uo, [
|
|
3278
3241
|
x(jo)
|
|
3279
|
-
])) : (
|
|
3242
|
+
])) : (w(), V("div", Xo, " Please contact your administrator to apply the changes. "))
|
|
3280
3243
|
];
|
|
3281
3244
|
}),
|
|
3282
3245
|
"side-sheet-footer": R(() => [
|
|
@@ -3284,7 +3247,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3284
3247
|
x(h, {
|
|
3285
3248
|
variant: "tertiary",
|
|
3286
3249
|
label: I(t)("common.close"),
|
|
3287
|
-
onClick: l[0] || (l[0] = (
|
|
3250
|
+
onClick: l[0] || (l[0] = (p) => u("update:show", !1))
|
|
3288
3251
|
}, null, 8, ["label"])
|
|
3289
3252
|
])
|
|
3290
3253
|
]),
|
|
@@ -3293,17 +3256,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3293
3256
|
(k = I(s).sessionUser.value) != null && k.role.isAdmin ? {
|
|
3294
3257
|
name: "side-sheet-header",
|
|
3295
3258
|
fn: R(() => {
|
|
3296
|
-
var
|
|
3259
|
+
var p;
|
|
3297
3260
|
return [
|
|
3298
3261
|
a("div", To, [
|
|
3299
3262
|
a("div", zo, [
|
|
3300
3263
|
l[2] || (l[2] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
3301
3264
|
a("div", Ho, [
|
|
3302
3265
|
x(r, {
|
|
3303
|
-
name: I(
|
|
3266
|
+
name: I(S),
|
|
3304
3267
|
size: "sm"
|
|
3305
3268
|
}, null, 8, ["name"]),
|
|
3306
|
-
a("div", _o, j((
|
|
3269
|
+
a("div", _o, j((p = I(b)._currentLocation) == null ? void 0 : p.name), 1)
|
|
3307
3270
|
])
|
|
3308
3271
|
])
|
|
3309
3272
|
])
|
|
@@ -3317,14 +3280,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3317
3280
|
}), Jo = /* @__PURE__ */ Y({
|
|
3318
3281
|
__name: "SynergyView",
|
|
3319
3282
|
setup(F) {
|
|
3320
|
-
const
|
|
3283
|
+
const g = Le(), s = W(), i = M(!1);
|
|
3321
3284
|
async function n() {
|
|
3322
|
-
|
|
3285
|
+
i.value = !0, console.log("Opening Synergy migration dialog");
|
|
3323
3286
|
}
|
|
3324
|
-
return (t,
|
|
3325
|
-
const b = E("FmCardSection"),
|
|
3326
|
-
return I(
|
|
3327
|
-
x(
|
|
3287
|
+
return (t, u) => {
|
|
3288
|
+
const b = E("FmCardSection"), S = E("FmCard");
|
|
3289
|
+
return I(g).enabledSynergyOpeningMigration && !I(s).businessLevel ? (w(), V(J, { key: 0 }, [
|
|
3290
|
+
x(S, {
|
|
3328
3291
|
class: Z({
|
|
3329
3292
|
"w-full": !0,
|
|
3330
3293
|
border: !0,
|
|
@@ -3332,11 +3295,11 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3332
3295
|
"cursor-pointer": !0,
|
|
3333
3296
|
"hover:border-fm-color-primary": !0
|
|
3334
3297
|
}),
|
|
3335
|
-
onClick:
|
|
3298
|
+
onClick: u[0] || (u[0] = (y) => n())
|
|
3336
3299
|
}, {
|
|
3337
3300
|
default: R(() => [
|
|
3338
3301
|
x(b, null, {
|
|
3339
|
-
default: R(() =>
|
|
3302
|
+
default: R(() => u[2] || (u[2] = [
|
|
3340
3303
|
a("div", { class: "flex justify-center" }, [
|
|
3341
3304
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
3342
3305
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Synergy")
|
|
@@ -3352,10 +3315,10 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3352
3315
|
]),
|
|
3353
3316
|
_: 1
|
|
3354
3317
|
}),
|
|
3355
|
-
(
|
|
3318
|
+
(w(), X(ue, { to: "body" }, [
|
|
3356
3319
|
x(Yo, {
|
|
3357
|
-
show:
|
|
3358
|
-
"onUpdate:show":
|
|
3320
|
+
show: i.value,
|
|
3321
|
+
"onUpdate:show": u[1] || (u[1] = (y) => i.value = y)
|
|
3359
3322
|
}, null, 8, ["show"])
|
|
3360
3323
|
]))
|
|
3361
3324
|
], 64)) : _("", !0);
|
|
@@ -3364,29 +3327,29 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3364
3327
|
}), Ko = { key: 0 }, qo = {
|
|
3365
3328
|
key: 1,
|
|
3366
3329
|
class: "flex flex-col items-center my-10 gap-5"
|
|
3367
|
-
}, Zo = ["src"],
|
|
3330
|
+
}, Zo = ["src"], Go = {
|
|
3368
3331
|
class: "text-xs text-neutral-400 text-center",
|
|
3369
3332
|
style: { "max-width": "25rem" }
|
|
3370
|
-
},
|
|
3333
|
+
}, Po = {
|
|
3371
3334
|
key: 2,
|
|
3372
3335
|
class: "grid grid-cols-2 gap-5"
|
|
3373
|
-
},
|
|
3336
|
+
}, as = /* @__PURE__ */ Y({
|
|
3374
3337
|
__name: "IntegrationView",
|
|
3375
3338
|
setup(F) {
|
|
3376
|
-
const
|
|
3339
|
+
const g = W(), s = M(!1), i = We(), { breakpoints: n } = Ve(), t = z(() => n.value.xs || n.value.sm), { t: u } = G();
|
|
3377
3340
|
return fe(async () => {
|
|
3378
|
-
if (
|
|
3341
|
+
if (g._currentLocation) {
|
|
3379
3342
|
s.value = !0;
|
|
3380
3343
|
try {
|
|
3381
|
-
await
|
|
3344
|
+
await i.fetchFoodMarketHubSetting(), await i.fetchNetSuiteSetting();
|
|
3382
3345
|
} finally {
|
|
3383
3346
|
s.value = !1;
|
|
3384
3347
|
}
|
|
3385
3348
|
}
|
|
3386
|
-
}), (b,
|
|
3387
|
-
const
|
|
3388
|
-
return
|
|
3389
|
-
title: I(
|
|
3349
|
+
}), (b, S) => {
|
|
3350
|
+
const y = E("FmCircularProgress");
|
|
3351
|
+
return w(), X(Je, {
|
|
3352
|
+
title: I(u)("inventory.integration.title")
|
|
3390
3353
|
}, {
|
|
3391
3354
|
default: R(() => [
|
|
3392
3355
|
a("div", {
|
|
@@ -3402,18 +3365,18 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3402
3365
|
"change-location": "",
|
|
3403
3366
|
showBusiness: ""
|
|
3404
3367
|
}),
|
|
3405
|
-
!I(
|
|
3406
|
-
x(
|
|
3407
|
-
])) : I(
|
|
3368
|
+
!I(g)._currentLocation || s.value ? (w(), V("div", Ko, [
|
|
3369
|
+
x(y, { size: "lg" })
|
|
3370
|
+
])) : I(i).enabledIntegrations == 0 ? (w(), V("div", qo, [
|
|
3408
3371
|
a("div", null, [
|
|
3409
3372
|
a("img", {
|
|
3410
3373
|
src: I(He),
|
|
3411
3374
|
alt: "List is empty"
|
|
3412
3375
|
}, null, 8, Zo)
|
|
3413
3376
|
]),
|
|
3414
|
-
|
|
3415
|
-
a("div",
|
|
3416
|
-
])) : (
|
|
3377
|
+
S[0] || (S[0] = a("div", { class: "font-bold text-lg" }, "Integration", -1)),
|
|
3378
|
+
a("div", Go, j(I(u)("inventory.integration.description")), 1)
|
|
3379
|
+
])) : (w(), V("div", Po, [
|
|
3417
3380
|
x(Qn),
|
|
3418
3381
|
x(Kt),
|
|
3419
3382
|
x(bo),
|
|
@@ -3427,5 +3390,5 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3427
3390
|
}
|
|
3428
3391
|
});
|
|
3429
3392
|
export {
|
|
3430
|
-
|
|
3393
|
+
as as default
|
|
3431
3394
|
};
|