@feedmepos/mf-inventory-portal 1.1.4 → 1.1.5
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-CWly44Cw.js → App-CyCxXYWb.js} +1 -1
- package/dist/{ApprovalView-BvNL_PkW.js → ApprovalView-U_0mloUl.js} +2 -2
- package/dist/{BindingsDialog-C1WfUo1d.js → BindingsDialog-MU1VXpRz.js} +2 -2
- package/dist/{BindingsPicker-B9cxaEAQ.js → BindingsPicker-B0DtgYMV.js} +1 -1
- package/dist/{BindingsTable-BIG538-m.js → BindingsTable-CSZw1l9L.js} +1 -1
- package/dist/{ClosingDraftView-fxIkO0qv.js → ClosingDraftView-DwUlj7ta.js} +2 -2
- package/dist/{ClosingTemplateView-tFcvCzUt.js → ClosingTemplateView-DcUMrx5w.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-ChCusfMS.js → DeliveryOrderPrintPreview-D7-jS3K1.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-C9nf-Bvv.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BnL2z9Or.js} +3 -3
- package/dist/{FmMultiselectDialog-B88ntsa7.js → FmMultiselectDialog-BTjE3FDA.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-BXokJA-1.js → FmUnitInput.vue_vue_type_script_setup_true_lang-D-hrdDvI.js} +1 -1
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-SnZRXnGT.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DqY-ppJ9.js} +1 -1
- package/dist/{IngredientGroupView-BbQJH6wG.js → IngredientGroupView-R5cNGeUG.js} +2 -2
- package/dist/{IngredientsView-DuRBYR4c.js → IngredientsView-BkRv5-9o.js} +4 -4
- package/dist/{IntegrationView-HWsrefRe.js → IntegrationView-DJzLUlBA.js} +789 -753
- package/dist/{InventoryBindingForm-2KEHVzvO.js → InventoryBindingForm-SBCpdUlA.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-Cclzuz1Y.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-DQ9-3Y3R.js} +3 -3
- package/dist/{InventoryBindingSummary-CWs5HgWm.js → InventoryBindingSummary-DRJTEG5M.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-rXndajqj.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BTyKsubT.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-DVifBu9J.js → PremiumBadge.vue_vue_type_script_setup_true_lang-Bn5b1Ur-.js} +1 -1
- package/dist/{PublishView-P7K2kgWN.js → PublishView-ClOkwACw.js} +2 -2
- package/dist/{PurchaseOrderPrintPreview-CDXyqt-T.js → PurchaseOrderPrintPreview-BV_-rfm2.js} +1 -1
- package/dist/{ReceiveRequestView-CXxyChNa.js → ReceiveRequestView-BEA8WYAJ.js} +9 -9
- package/dist/{RecipeView-DNJypRUA.js → RecipeView-CgS5UMwE.js} +3 -3
- package/dist/{StockView-gG5rmqtK.js → StockView-DfNZOW1U.js} +6 -6
- package/dist/{SupplierView-3XnnzuU-.js → SupplierView-nAtRIngl.js} +3 -3
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-BY0O0xOh.js → TransferDetails.vue_vue_type_script_setup_true_lang-0fKqK-Yg.js} +5 -5
- package/dist/{TransferTemplateView-BqZIeHXq.js → TransferTemplateView-B7P8MaPd.js} +6 -6
- package/dist/{UnitView-DVP_J89e.js → UnitView-B5bqeT_p.js} +3 -3
- package/dist/{WarehouseView-CrW_FwAy.js → WarehouseView-yIhVXIOL.js} +1 -1
- package/dist/api/netsuite.d.ts +1 -0
- package/dist/{app-C94dIU_J.js → app-CktPIZfH.js} +18 -11
- package/dist/app.js +1 -1
- package/dist/{decimal-D0e4N7PE.js → decimal-ClHMtypx.js} +1 -1
- package/dist/{format-unit-display-DKtx102F.js → format-unit-display--5ianNK1.js} +2 -2
- package/dist/{index-BxbnRGBe.js → index-KMubbPxS.js} +1 -1
- package/dist/{index-CSsaj5DD.js → index-ynBWdY_c.js} +1 -1
- package/dist/{stock-C5gzau0Q.js → stock-Bsrt9B9a.js} +1 -1
- package/dist/{supplier-Dqc19jEh.js → supplier-BXmGBQ24.js} +1 -1
- package/dist/{use-ingredient-select-dialog-CNndD6oV.js → use-ingredient-select-dialog-Pg9yaoJS.js} +1 -1
- package/dist/{use-inventory-binding-dialog-Df93j5R7.js → use-inventory-binding-dialog-Deyh6NeE.js} +1 -1
- package/dist/{vue-i18n-Baz9B8gA.js → vue-i18n-Dybwy_8K.js} +120 -120
- package/package.json +3 -3
|
@@ -1,82 +1,82 @@
|
|
|
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 S, 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 { aZ as _e, aN as Xe, f as ee, u as W, a_ as Ue, b as le, j as Qe, aW as ge, al as ye, ay as Ae, a as be, a2 as Ye, Q as
|
|
4
|
-
import { useDialogChild as
|
|
5
|
-
import { useI18n as
|
|
6
|
-
import { a as
|
|
7
|
-
import { u as de } from "./vue-i18n-
|
|
8
|
-
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { aZ as _e, aN as Xe, f as ee, u as W, a_ as Ue, b as le, j as Qe, aW as ge, al as ye, ay as Ae, a as be, a2 as Ye, Q as G, $ as we, a$ as ke, aE as Be, aR as Ce, s as Ee, y as Fe, a0 as re, c as Le, _ as Je, C as Ke } from "./app-CktPIZfH.js";
|
|
4
|
+
import { useDialogChild as qe, useDialog as ce, useProxiedModel as ae, useSnackbar as te, useBreakpoints as Ve, components as ne } from "@feedmepos/ui-library";
|
|
5
|
+
import { useI18n as P, useCoreStore as ie } from "@feedmepos/mf-common";
|
|
6
|
+
import { a as Ze, b as Pe, c as Ge, u as We } from "./index-ynBWdY_c.js";
|
|
7
|
+
import { u as de } from "./vue-i18n-Dybwy_8K.js";
|
|
8
|
+
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-D-hrdDvI.js";
|
|
9
9
|
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
10
|
var Ne = { exports: {} };
|
|
11
|
-
(function(F,
|
|
11
|
+
(function(F, y) {
|
|
12
12
|
(function() {
|
|
13
13
|
var s = {};
|
|
14
|
-
F.exports = s, s.simpleFilter = function(
|
|
14
|
+
F.exports = s, s.simpleFilter = function(u, n) {
|
|
15
15
|
return n.filter(function(t) {
|
|
16
|
-
return s.test(
|
|
16
|
+
return s.test(u, t);
|
|
17
17
|
});
|
|
18
|
-
}, s.test = function(
|
|
19
|
-
return s.match(
|
|
20
|
-
}, s.match = function(
|
|
18
|
+
}, s.test = function(u, n) {
|
|
19
|
+
return s.match(u, n) !== null;
|
|
20
|
+
}, s.match = function(u, n, t) {
|
|
21
21
|
t = t || {};
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
for (var k = 0; k <
|
|
25
|
-
C = n[k], h[k] === i
|
|
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 && (
|
|
22
|
+
var i = 0, b = [], w = n.length, g = 0, m = 0, l = t.pre || "", r = t.post || "", h = t.caseSensitive && n || n.toLowerCase(), C;
|
|
23
|
+
u = t.caseSensitive && u || u.toLowerCase();
|
|
24
|
+
for (var k = 0; k < w; k++)
|
|
25
|
+
C = n[k], h[k] === u[i] ? (C = l + C + r, i += 1, m += 1 + m) : m = 0, g += m, b[b.length] = C;
|
|
26
|
+
return i === u.length ? (g = h === u ? 1 / 0 : g, { rendered: b.join(""), score: g }) : null;
|
|
27
|
+
}, s.filter = function(u, n, t) {
|
|
28
|
+
return !n || n.length === 0 ? [] : typeof u != "string" ? n : (t = t || {}, n.reduce(function(i, b, w, g) {
|
|
29
|
+
var m = b;
|
|
30
|
+
t.extract && (m = t.extract(b));
|
|
31
|
+
var l = s.match(u, m, t);
|
|
32
|
+
return l != null && (i[i.length] = {
|
|
33
33
|
string: l.rendered,
|
|
34
34
|
score: l.score,
|
|
35
|
-
index:
|
|
35
|
+
index: w,
|
|
36
36
|
original: b
|
|
37
|
-
}),
|
|
38
|
-
}, []).sort(function(
|
|
39
|
-
var
|
|
40
|
-
return
|
|
37
|
+
}), i;
|
|
38
|
+
}, []).sort(function(i, b) {
|
|
39
|
+
var w = b.score - i.score;
|
|
40
|
+
return w || i.index - b.index;
|
|
41
41
|
}));
|
|
42
42
|
};
|
|
43
43
|
})();
|
|
44
44
|
})(Ne);
|
|
45
45
|
var nt = Ne.exports;
|
|
46
46
|
const De = /* @__PURE__ */ _e(nt);
|
|
47
|
-
function he(F,
|
|
48
|
-
return De.filter(F,
|
|
47
|
+
function he(F, y) {
|
|
48
|
+
return De.filter(F, y).length > 0;
|
|
49
49
|
}
|
|
50
|
-
function ot(F,
|
|
50
|
+
function ot(F, y) {
|
|
51
51
|
if (!F)
|
|
52
52
|
return {
|
|
53
|
-
label:
|
|
53
|
+
label: y,
|
|
54
54
|
segments: [
|
|
55
55
|
{
|
|
56
56
|
isMatch: !1,
|
|
57
|
-
segment:
|
|
57
|
+
segment: y
|
|
58
58
|
}
|
|
59
59
|
],
|
|
60
60
|
matched: !1
|
|
61
61
|
};
|
|
62
|
-
const [s] = De.filter(F.toLocaleLowerCase(), [
|
|
62
|
+
const [s] = De.filter(F.toLocaleLowerCase(), [y], {
|
|
63
63
|
pre: "|",
|
|
64
64
|
post: "|"
|
|
65
65
|
});
|
|
66
66
|
if (!s)
|
|
67
67
|
return {
|
|
68
|
-
label:
|
|
69
|
-
segments: [{ segment:
|
|
68
|
+
label: y,
|
|
69
|
+
segments: [{ segment: y, isMatch: !1 }],
|
|
70
70
|
matched: !1
|
|
71
71
|
};
|
|
72
|
-
const
|
|
72
|
+
const u = s.string.toString().replace(/\|\|/g, "").split("|").reduce((n, t, i) => (n.push({
|
|
73
73
|
segment: t,
|
|
74
|
-
isMatch:
|
|
74
|
+
isMatch: i % 2 !== 0
|
|
75
75
|
//e.g. index 1, 3, 5, ...
|
|
76
76
|
}), n), new Array());
|
|
77
77
|
return {
|
|
78
|
-
label:
|
|
79
|
-
segments:
|
|
78
|
+
label: y,
|
|
79
|
+
segments: u,
|
|
80
80
|
matched: !0
|
|
81
81
|
};
|
|
82
82
|
}
|
|
@@ -102,36 +102,36 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
102
102
|
}),
|
|
103
103
|
emits: ["update:modelValue"],
|
|
104
104
|
setup(F) {
|
|
105
|
-
const
|
|
105
|
+
const y = Se(F, "modelValue"), s = qe();
|
|
106
106
|
fe(() => {
|
|
107
|
-
s.emitData(
|
|
107
|
+
s.emitData(y.value);
|
|
108
108
|
});
|
|
109
|
-
const
|
|
109
|
+
const u = M(""), { t: n } = P();
|
|
110
110
|
function t(e) {
|
|
111
111
|
return he(
|
|
112
|
-
|
|
112
|
+
u.value,
|
|
113
113
|
e.sublabel ? [e.label, e.sublabel] : [e.label]
|
|
114
114
|
);
|
|
115
115
|
}
|
|
116
|
-
function
|
|
117
|
-
return t(e) ? !0 : K(e) ? e.children.some(
|
|
116
|
+
function i(e) {
|
|
117
|
+
return t(e) ? !0 : K(e) ? e.children.some(i) : !1;
|
|
118
118
|
}
|
|
119
119
|
function b(e, o) {
|
|
120
|
-
if (!
|
|
120
|
+
if (!u.value)
|
|
121
121
|
return !0;
|
|
122
122
|
const [B, ...L] = e;
|
|
123
123
|
if (typeof B != "number")
|
|
124
124
|
return !1;
|
|
125
125
|
const N = o[B];
|
|
126
126
|
return he(
|
|
127
|
-
|
|
127
|
+
u.value,
|
|
128
128
|
N.sublabel ? [N.label, N.sublabel] : [N.label]
|
|
129
|
-
) ? !0 : L.length === 0 ?
|
|
129
|
+
) ? !0 : L.length === 0 ? i(N) : K(N) ? b(L, N.children) : !1;
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function w(e, o, B = 0, L = !1) {
|
|
132
132
|
if (K(e) && e.children.length) {
|
|
133
133
|
const { children: N, ...H } = e, U = N.flatMap(
|
|
134
|
-
(O, T) =>
|
|
134
|
+
(O, T) => w(O, [...o, T], B + 1, L || e.disabled)
|
|
135
135
|
);
|
|
136
136
|
return [
|
|
137
137
|
{
|
|
@@ -154,16 +154,16 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
154
154
|
}
|
|
155
155
|
];
|
|
156
156
|
}
|
|
157
|
-
const
|
|
158
|
-
(e, o) =>
|
|
157
|
+
const g = z(() => y.value.flatMap(
|
|
158
|
+
(e, o) => w(e, [o]).filter((B) => b(B.keys, y.value))
|
|
159
159
|
));
|
|
160
|
-
function
|
|
160
|
+
function m(e) {
|
|
161
161
|
if (K(e)) {
|
|
162
|
-
if (
|
|
163
|
-
const o = t(e) ? e.children : e.children.filter(
|
|
164
|
-
return o.length === 0 ? !1 : o.every(
|
|
162
|
+
if (i(e)) {
|
|
163
|
+
const o = t(e) ? e.children : e.children.filter(i);
|
|
164
|
+
return o.length === 0 ? !1 : o.every(m);
|
|
165
165
|
}
|
|
166
|
-
return e.children.every(
|
|
166
|
+
return e.children.every(m);
|
|
167
167
|
}
|
|
168
168
|
return e.active ?? !1;
|
|
169
169
|
}
|
|
@@ -172,13 +172,13 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
172
172
|
if (typeof B != "number")
|
|
173
173
|
return !1;
|
|
174
174
|
const N = o[B];
|
|
175
|
-
return L.length === 0 ?
|
|
175
|
+
return L.length === 0 ? m(N ?? []) : K(N) ? l(L, N.children ?? []) : !1;
|
|
176
176
|
}
|
|
177
177
|
function r(e) {
|
|
178
178
|
if (K(e)) {
|
|
179
|
-
if (
|
|
180
|
-
const o = t(e) ? e.children : e.children.filter(
|
|
181
|
-
return o.length === 0 ? !1 : o.some(
|
|
179
|
+
if (i(e)) {
|
|
180
|
+
const o = t(e) ? e.children : e.children.filter(i);
|
|
181
|
+
return o.length === 0 ? !1 : o.some(m) && !o.every(m);
|
|
182
182
|
}
|
|
183
183
|
return !1;
|
|
184
184
|
}
|
|
@@ -195,8 +195,8 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
195
195
|
if (e.disabled)
|
|
196
196
|
return e;
|
|
197
197
|
if (K(e)) {
|
|
198
|
-
if (
|
|
199
|
-
const B = t(e) ? e.children : e.children.filter(
|
|
198
|
+
if (i(e)) {
|
|
199
|
+
const B = t(e) ? e.children : e.children.filter(i);
|
|
200
200
|
return {
|
|
201
201
|
...e,
|
|
202
202
|
children: e.children.map((L) => B.find((H) => Xe(H.value, L.value)) ? C(L, o) : L)
|
|
@@ -221,46 +221,46 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
221
221
|
} : H
|
|
222
222
|
);
|
|
223
223
|
}
|
|
224
|
-
const
|
|
225
|
-
function
|
|
224
|
+
const v = M(new Array());
|
|
225
|
+
function f(e) {
|
|
226
226
|
const o = e.join();
|
|
227
|
-
return
|
|
227
|
+
return v.value.find((B) => o === B);
|
|
228
228
|
}
|
|
229
229
|
function d(e) {
|
|
230
230
|
const o = e.join();
|
|
231
|
-
|
|
231
|
+
f(e) ? v.value = v.value.filter((B) => B !== o) : v.value = [...v.value, o];
|
|
232
232
|
}
|
|
233
233
|
function c(e) {
|
|
234
234
|
const o = e.join();
|
|
235
|
-
return
|
|
235
|
+
return v.value.find((B) => o.startsWith(B) && o !== B);
|
|
236
236
|
}
|
|
237
237
|
const A = z(
|
|
238
|
-
() =>
|
|
238
|
+
() => g.value.filter((e) => b(e.keys, y.value) && e.active).length
|
|
239
239
|
);
|
|
240
|
-
function
|
|
241
|
-
|
|
240
|
+
function p(e, o, B) {
|
|
241
|
+
y.value = k(e, o, B), s.emitData(y.value);
|
|
242
242
|
}
|
|
243
243
|
return (e, o) => {
|
|
244
244
|
const B = E("FmSearch"), L = E("FmCheckbox"), N = E("FmButton"), H = E("FmListItem"), U = E("FmList");
|
|
245
|
-
return
|
|
245
|
+
return S(), V("div", st, [
|
|
246
246
|
a("div", at, [
|
|
247
247
|
a("div", lt, j(I(n)("inventory.formField.itemsSelected", { count: A.value })), 1),
|
|
248
248
|
a("div", it, [
|
|
249
249
|
x(B, {
|
|
250
|
-
modelValue:
|
|
251
|
-
"onUpdate:modelValue": o[0] || (o[0] = (O) =>
|
|
250
|
+
modelValue: u.value,
|
|
251
|
+
"onUpdate:modelValue": o[0] || (o[0] = (O) => u.value = O),
|
|
252
252
|
placeholder: I(n)("inventory.formField.filterItems")
|
|
253
253
|
}, null, 8, ["modelValue", "placeholder"])
|
|
254
254
|
])
|
|
255
255
|
]),
|
|
256
|
-
|
|
256
|
+
g.value.length ? (S(), X(U, {
|
|
257
257
|
key: 0,
|
|
258
258
|
class: "flex-1 overflow-y-auto"
|
|
259
259
|
}, {
|
|
260
260
|
default: R(() => [
|
|
261
|
-
(
|
|
261
|
+
(S(!0), V(J, null, $(g.value, (O) => (S(), V("div", {
|
|
262
262
|
key: O.keys.join(),
|
|
263
|
-
class:
|
|
263
|
+
class: Z([
|
|
264
264
|
"transition-all overflow-y-clip",
|
|
265
265
|
c(O.keys) ? "max-h-0 opacity-0" : "max-h-[50px] opacity-100"
|
|
266
266
|
]),
|
|
@@ -268,7 +268,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
268
268
|
}, [
|
|
269
269
|
x(H, {
|
|
270
270
|
clickable: O.selectable !== !1,
|
|
271
|
-
onClick: () => O.selectable === !1 || O.disabled ||
|
|
271
|
+
onClick: () => O.selectable === !1 || O.disabled || p(O.keys, y.value, !l(O.keys, y.value)),
|
|
272
272
|
style: je({
|
|
273
273
|
paddingLeft: `${16 + O.indent * 16}px`,
|
|
274
274
|
paddingTop: "4px",
|
|
@@ -279,16 +279,16 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
279
279
|
default: R(() => [
|
|
280
280
|
a("div", ut, [
|
|
281
281
|
a("div", ct, [
|
|
282
|
-
(
|
|
282
|
+
(S(!0), V(J, null, $(I(ot)(u.value, O.label).segments, (T, Q) => (S(), V("span", {
|
|
283
283
|
key: Q,
|
|
284
|
-
class:
|
|
284
|
+
class: Z({
|
|
285
285
|
"font-bold": T.isMatch
|
|
286
286
|
})
|
|
287
287
|
}, j(T.segment), 3))), 128))
|
|
288
288
|
]),
|
|
289
|
-
O.sublabel ? (
|
|
289
|
+
O.sublabel ? (S(), V("div", {
|
|
290
290
|
key: 0,
|
|
291
|
-
class:
|
|
291
|
+
class: Z([
|
|
292
292
|
"fm-typo-en-body-sm-400",
|
|
293
293
|
O.disabled ? "" : "text-fm-color-typo-secondary"
|
|
294
294
|
])
|
|
@@ -302,9 +302,9 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
302
302
|
fn: R(() => [
|
|
303
303
|
x(L, {
|
|
304
304
|
disabled: O.disabled,
|
|
305
|
-
"model-value": l(O.keys,
|
|
305
|
+
"model-value": l(O.keys, y.value),
|
|
306
306
|
value: O.keys,
|
|
307
|
-
indeterminate: h(O.keys,
|
|
307
|
+
indeterminate: h(O.keys, y.value)
|
|
308
308
|
}, null, 8, ["disabled", "model-value", "value", "indeterminate"])
|
|
309
309
|
]),
|
|
310
310
|
key: "0"
|
|
@@ -313,7 +313,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
313
313
|
name: "append",
|
|
314
314
|
fn: R(() => [
|
|
315
315
|
x(N, {
|
|
316
|
-
"prepend-icon":
|
|
316
|
+
"prepend-icon": f(O.keys) ? "expand_less" : "expand_more",
|
|
317
317
|
size: "md",
|
|
318
318
|
variant: "tertiary",
|
|
319
319
|
onClick: Te(() => d(O.keys), ["stop"])
|
|
@@ -325,7 +325,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
325
325
|
], 10, rt))), 128))
|
|
326
326
|
]),
|
|
327
327
|
_: 1
|
|
328
|
-
})) : (
|
|
328
|
+
})) : (S(), V("div", dt, j(I(n)("inventory.formField.noItemsFound")), 1))
|
|
329
329
|
]);
|
|
330
330
|
};
|
|
331
331
|
}
|
|
@@ -355,8 +355,8 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
355
355
|
}
|
|
356
356
|
},
|
|
357
357
|
emits: ["update:modifiers"],
|
|
358
|
-
setup(F, { emit:
|
|
359
|
-
const s = F,
|
|
358
|
+
setup(F, { emit: y }) {
|
|
359
|
+
const s = F, u = y, n = ce(), t = z(() => {
|
|
360
360
|
const l = s.groups.flatMap((r) => r.items.map((h) => {
|
|
361
361
|
const C = s.items.find((k) => k._id === h._id);
|
|
362
362
|
return {
|
|
@@ -366,25 +366,25 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
366
366
|
};
|
|
367
367
|
}));
|
|
368
368
|
return s.modifiers.map((r) => {
|
|
369
|
-
const h = l.find((
|
|
369
|
+
const h = l.find((v) => v.selection === r.selection), C = (h == null ? void 0 : h.name) ?? "-", k = (h == null ? void 0 : h.groupName) ?? "";
|
|
370
370
|
return {
|
|
371
371
|
...r,
|
|
372
372
|
name: C,
|
|
373
373
|
groupName: k
|
|
374
374
|
};
|
|
375
375
|
});
|
|
376
|
-
}),
|
|
376
|
+
}), i = z(() => s.groups.flatMap((l) => l.items.map((r) => ({ ...r, groupId: l._id }))));
|
|
377
377
|
function b({ selection: l }) {
|
|
378
|
-
|
|
378
|
+
u(
|
|
379
379
|
"update:modifiers",
|
|
380
380
|
s.modifiers.filter((r) => r.selection !== l)
|
|
381
381
|
);
|
|
382
382
|
}
|
|
383
|
-
function
|
|
383
|
+
function w({ selection: l }, r) {
|
|
384
384
|
const h = s.modifiers.find((C) => C.selection === l);
|
|
385
385
|
h && (h.code = r);
|
|
386
386
|
}
|
|
387
|
-
function
|
|
387
|
+
function g() {
|
|
388
388
|
let l = [];
|
|
389
389
|
s.groups.forEach((h) => {
|
|
390
390
|
let C = !1;
|
|
@@ -393,18 +393,18 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
393
393
|
sublabel: "Group",
|
|
394
394
|
value: h._id,
|
|
395
395
|
disabled: C,
|
|
396
|
-
children: h.items.reduce((k,
|
|
396
|
+
children: h.items.reduce((k, v) => {
|
|
397
397
|
var c;
|
|
398
|
-
const
|
|
399
|
-
(A) => A.combinationKey === (
|
|
398
|
+
const f = s.items.find((A) => A._id === v._id), d = (c = f == null ? void 0 : f.variant) == null ? void 0 : c.variantCombinations.find(
|
|
399
|
+
(A) => A.combinationKey === (v == null ? void 0 : v.combinationKey)
|
|
400
400
|
);
|
|
401
401
|
return [
|
|
402
402
|
...k,
|
|
403
403
|
{
|
|
404
|
-
label: `${
|
|
405
|
-
value: `${
|
|
404
|
+
label: `${v.name ?? (f == null ? void 0 : f.name)} ${d ? `(${d.name})` : ""}`,
|
|
405
|
+
value: `${v.selection}${d ? `/${d == null ? void 0 : d.combinationKey}` : ""}`,
|
|
406
406
|
disabled: C,
|
|
407
|
-
active: !!s.modifiers.find(({ selection: A }) => A ===
|
|
407
|
+
active: !!s.modifiers.find(({ selection: A }) => A === v.selection)
|
|
408
408
|
}
|
|
409
409
|
];
|
|
410
410
|
}, [])
|
|
@@ -424,61 +424,61 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
424
424
|
}).onPrimary((h) => {
|
|
425
425
|
const C = ee(s.modifiers);
|
|
426
426
|
let k = [];
|
|
427
|
-
function
|
|
428
|
-
if (d(
|
|
429
|
-
for (let c of
|
|
430
|
-
|
|
427
|
+
function v(f, d) {
|
|
428
|
+
if (d(f), K(f))
|
|
429
|
+
for (let c of f.children)
|
|
430
|
+
v(c, d);
|
|
431
431
|
}
|
|
432
|
-
h.forEach((
|
|
433
|
-
|
|
432
|
+
h.forEach((f) => {
|
|
433
|
+
v(f, (d) => {
|
|
434
434
|
var e;
|
|
435
435
|
if (s.groups.find(({ _id: o }) => o === d.value)) return;
|
|
436
|
-
const A =
|
|
437
|
-
!K(d) && d.active &&
|
|
436
|
+
const A = i.value.find(({ selection: o }) => o === d.value), p = k.find(({ selection: o }) => d.value === o);
|
|
437
|
+
!K(d) && d.active && p === void 0 && k.push({
|
|
438
438
|
addonGroupId: (A == null ? void 0 : A.groupId) ?? "",
|
|
439
439
|
selection: d.value,
|
|
440
440
|
code: ((e = C.find(({ selection: o }) => d.value === o)) == null ? void 0 : e.code) ?? ""
|
|
441
441
|
});
|
|
442
442
|
});
|
|
443
|
-
}),
|
|
443
|
+
}), u("update:modifiers", k);
|
|
444
444
|
});
|
|
445
445
|
}
|
|
446
|
-
const { t:
|
|
446
|
+
const { t: m } = P();
|
|
447
447
|
return (l, r) => {
|
|
448
448
|
const h = E("FmButton"), C = E("FmTextField");
|
|
449
|
-
return
|
|
449
|
+
return S(), V("div", mt, [
|
|
450
450
|
a("div", ft, [
|
|
451
|
-
a("div", pt, j(I(
|
|
451
|
+
a("div", pt, j(I(m)("inventory.integration.apply.addons")), 1),
|
|
452
452
|
x(h, {
|
|
453
453
|
type: "button",
|
|
454
454
|
variant: "plain",
|
|
455
455
|
size: "md",
|
|
456
456
|
icon: "link",
|
|
457
|
-
label: I(
|
|
458
|
-
onClick: r[0] || (r[0] = (k) =>
|
|
457
|
+
label: I(m)("inventory.integration.apply.applyAddon"),
|
|
458
|
+
onClick: r[0] || (r[0] = (k) => g())
|
|
459
459
|
}, null, 8, ["label"])
|
|
460
460
|
]),
|
|
461
461
|
a("div", null, [
|
|
462
|
-
t.value.length > 0 ? (
|
|
462
|
+
t.value.length > 0 ? (S(), V("table", vt, [
|
|
463
463
|
a("tr", gt, [
|
|
464
|
-
a("th", yt, j(I(
|
|
465
|
-
a("th", null, j(I(
|
|
464
|
+
a("th", yt, j(I(m)("inventory.integration.apply.name")), 1),
|
|
465
|
+
a("th", null, j(I(m)("inventory.integration.apply.code")), 1),
|
|
466
466
|
r[1] || (r[1] = a("th", { class: "w-1" }, " ", -1))
|
|
467
467
|
]),
|
|
468
|
-
(
|
|
468
|
+
(S(!0), V(J, null, $(t.value, (k, v) => (S(), V(J, { key: v }, [
|
|
469
469
|
r[2] || (r[2] = a("tr", { class: "block h-8" }, null, -1)),
|
|
470
470
|
a("tr", null, [
|
|
471
471
|
a("td", null, [
|
|
472
472
|
a("div", At, [
|
|
473
473
|
a("div", bt, j(k.name), 1),
|
|
474
|
-
k.groupName ? (
|
|
474
|
+
k.groupName ? (S(), V("div", ht, j(k.groupName), 1)) : _("", !0)
|
|
475
475
|
])
|
|
476
476
|
]),
|
|
477
477
|
a("td", null, [
|
|
478
478
|
x(C, {
|
|
479
479
|
disabled: F.loading,
|
|
480
480
|
"model-value": k.code,
|
|
481
|
-
"onUpdate:modelValue": [(
|
|
481
|
+
"onUpdate:modelValue": [(f) => k.code = f, (f) => w(k, f)],
|
|
482
482
|
rules: [
|
|
483
483
|
function(d) {
|
|
484
484
|
return !!d || "Required";
|
|
@@ -494,7 +494,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
494
494
|
icon: "delete",
|
|
495
495
|
"icon-color": "#000000",
|
|
496
496
|
size: "md",
|
|
497
|
-
onClick: (
|
|
497
|
+
onClick: (f) => b(k)
|
|
498
498
|
}, null, 8, ["disabled", "onClick"])
|
|
499
499
|
])
|
|
500
500
|
])
|
|
@@ -505,64 +505,64 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
505
505
|
};
|
|
506
506
|
}
|
|
507
507
|
});
|
|
508
|
-
function St(F,
|
|
509
|
-
const s =
|
|
508
|
+
function St(F, y = []) {
|
|
509
|
+
const s = y.map((n) => F.find((t) => t._id === n)).filter((n) => !!n);
|
|
510
510
|
return kt(s).reduce((n, t) => (n[t.combinationKey] = t.selectionName.join(" / "), n), {});
|
|
511
511
|
}
|
|
512
|
-
function wt(F,
|
|
513
|
-
const
|
|
514
|
-
var
|
|
515
|
-
const b =
|
|
516
|
-
...
|
|
517
|
-
codeName: [
|
|
512
|
+
function wt(F, y, s) {
|
|
513
|
+
const u = s.reduce((t, i) => {
|
|
514
|
+
var m, l, r;
|
|
515
|
+
const b = i.category || "", w = St(y, (m = i.variant) == null ? void 0 : m.variantGroupIds), g = {
|
|
516
|
+
...i,
|
|
517
|
+
codeName: [i.code, i.name].filter((h) => !!h).join(" "),
|
|
518
518
|
variant: {
|
|
519
|
-
variantGroupIds: ((l =
|
|
520
|
-
variantCombinations: (((r =
|
|
521
|
-
const C = h.code, k = h.name ||
|
|
519
|
+
variantGroupIds: ((l = i.variant) == null ? void 0 : l.variantGroupIds) || [],
|
|
520
|
+
variantCombinations: (((r = i.variant) == null ? void 0 : r.variantCombinations) || []).map((h) => {
|
|
521
|
+
const C = h.code, k = h.name || w[h.combinationKey || ""];
|
|
522
522
|
return {
|
|
523
523
|
...h,
|
|
524
|
-
codeName: [C, k].filter((
|
|
524
|
+
codeName: [C, k].filter((v) => !!v).join(" ").trim() || "-"
|
|
525
525
|
};
|
|
526
526
|
})
|
|
527
527
|
}
|
|
528
528
|
};
|
|
529
|
-
return t[b] = t[b] ? [...t[b],
|
|
530
|
-
}, {}), n = Object.values(
|
|
529
|
+
return t[b] = t[b] ? [...t[b], g] : [g], t;
|
|
530
|
+
}, {}), n = Object.values(u)[0];
|
|
531
531
|
return F.length === 0 && n ? n.map((t) => ({
|
|
532
532
|
id: t._id,
|
|
533
533
|
name: t.name ?? "",
|
|
534
|
-
items:
|
|
534
|
+
items: u[t._id || ""] || []
|
|
535
535
|
})) || [] : F.map((t) => ({
|
|
536
536
|
id: t._id,
|
|
537
537
|
name: t.name ?? "",
|
|
538
|
-
items:
|
|
538
|
+
items: u[t._id || ""] || []
|
|
539
539
|
}));
|
|
540
540
|
}
|
|
541
|
-
function Me(F,
|
|
541
|
+
function Me(F, y) {
|
|
542
542
|
if (F.length == 1)
|
|
543
543
|
return F[0];
|
|
544
|
-
const s = F[0],
|
|
545
|
-
return s.reduce((
|
|
544
|
+
const s = F[0], u = F.slice(1, F.length), n = Me(u, y);
|
|
545
|
+
return s.reduce((i, b) => [...i, ...n.map((w) => y(b, w))], new Array());
|
|
546
546
|
}
|
|
547
547
|
function kt(F) {
|
|
548
548
|
if (F.length === 0) return [];
|
|
549
|
-
const
|
|
550
|
-
(
|
|
549
|
+
const y = F.map(
|
|
550
|
+
(u) => (u.options ?? []).map(
|
|
551
551
|
(n) => ({
|
|
552
|
-
combinationKey: [`${
|
|
552
|
+
combinationKey: [`${u._id}/${n._id}`],
|
|
553
553
|
selectionName: [n.name ?? ""]
|
|
554
554
|
})
|
|
555
555
|
)
|
|
556
556
|
);
|
|
557
|
-
return Me(
|
|
558
|
-
combinationKey: [...
|
|
559
|
-
selectionName: [...
|
|
560
|
-
})).map((
|
|
561
|
-
const n = [...
|
|
557
|
+
return Me(y, (u, n) => ({
|
|
558
|
+
combinationKey: [...u.combinationKey, ...n.combinationKey],
|
|
559
|
+
selectionName: [...u.selectionName, ...n.selectionName]
|
|
560
|
+
})).map((u) => {
|
|
561
|
+
const n = [...u.combinationKey];
|
|
562
562
|
return n.sort(), {
|
|
563
563
|
combinationKey: n.join("/"),
|
|
564
564
|
active: !0,
|
|
565
|
-
selectionName:
|
|
565
|
+
selectionName: u.selectionName
|
|
566
566
|
};
|
|
567
567
|
});
|
|
568
568
|
}
|
|
@@ -597,59 +597,59 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
597
597
|
}
|
|
598
598
|
},
|
|
599
599
|
emits: ["update:bindings"],
|
|
600
|
-
setup(F, { emit:
|
|
601
|
-
const s = F,
|
|
602
|
-
() => wt(
|
|
603
|
-
),
|
|
600
|
+
setup(F, { emit: y }) {
|
|
601
|
+
const s = F, u = y, n = ce(), t = z(() => s.isAddon ? "Addons" : "Products"), i = z(() => s.isAddon ? [] : s.categories), b = z(
|
|
602
|
+
() => wt(i.value, s.variants, s.menus)
|
|
603
|
+
), w = z(() => {
|
|
604
604
|
if (s.isAddon)
|
|
605
605
|
return s.bindings.map((d) => {
|
|
606
|
-
const c = s.menus.find((
|
|
606
|
+
const c = s.menus.find((p) => p._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
607
607
|
return {
|
|
608
608
|
...d,
|
|
609
609
|
name: A,
|
|
610
610
|
itemCode: (c == null ? void 0 : c.code) ?? "-"
|
|
611
611
|
};
|
|
612
612
|
});
|
|
613
|
-
const
|
|
613
|
+
const f = b.value.flatMap((d) => d.items);
|
|
614
614
|
return s.bindings.map((d) => {
|
|
615
615
|
var o;
|
|
616
|
-
const c =
|
|
617
|
-
let
|
|
616
|
+
const c = f.find((B) => B._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
617
|
+
let p = (c == null ? void 0 : c.code) ?? "-", e;
|
|
618
618
|
if (d.combinationKey) {
|
|
619
619
|
const B = (((o = c == null ? void 0 : c.variant) == null ? void 0 : o.variantCombinations) || []).find(
|
|
620
620
|
(L) => L.combinationKey === d.combinationKey
|
|
621
621
|
);
|
|
622
|
-
e = (B == null ? void 0 : B.name) ?? (B == null ? void 0 : B.codeName) ?? "",
|
|
622
|
+
e = (B == null ? void 0 : B.name) ?? (B == null ? void 0 : B.codeName) ?? "", p = (B == null ? void 0 : B.code) ?? p;
|
|
623
623
|
}
|
|
624
624
|
return {
|
|
625
625
|
...d,
|
|
626
626
|
name: A,
|
|
627
|
-
itemCode:
|
|
627
|
+
itemCode: p,
|
|
628
628
|
variantName: e
|
|
629
629
|
};
|
|
630
630
|
});
|
|
631
631
|
});
|
|
632
|
-
function
|
|
633
|
-
|
|
632
|
+
function g(f) {
|
|
633
|
+
u(
|
|
634
634
|
"update:bindings",
|
|
635
635
|
s.bindings.filter(
|
|
636
|
-
(d) => d.productId !==
|
|
636
|
+
(d) => d.productId !== f.productId || d.combinationKey !== f.combinationKey
|
|
637
637
|
)
|
|
638
638
|
);
|
|
639
639
|
}
|
|
640
|
-
function
|
|
640
|
+
function m({ productId: f, combinationKey: d }, c) {
|
|
641
641
|
const A = s.bindings.find(
|
|
642
|
-
(
|
|
642
|
+
(p) => p.productId === f && p.combinationKey === d
|
|
643
643
|
);
|
|
644
644
|
A && (A.code = c);
|
|
645
645
|
}
|
|
646
646
|
function l() {
|
|
647
|
-
return b.value.map((
|
|
648
|
-
label:
|
|
647
|
+
return b.value.map((f) => ({
|
|
648
|
+
label: f.name,
|
|
649
649
|
sublabel: "Category",
|
|
650
|
-
value:
|
|
650
|
+
value: f.name,
|
|
651
651
|
disabled: !1,
|
|
652
|
-
children:
|
|
652
|
+
children: f.items.map((d) => {
|
|
653
653
|
var A;
|
|
654
654
|
const c = (A = d.variant) == null ? void 0 : A.variantCombinations;
|
|
655
655
|
return c != null && c.length ? {
|
|
@@ -663,18 +663,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
663
663
|
productId: d._id
|
|
664
664
|
},
|
|
665
665
|
active: !!s.bindings.find(
|
|
666
|
-
({ productId:
|
|
666
|
+
({ productId: p, combinationKey: e }) => d._id === p && !e
|
|
667
667
|
)
|
|
668
668
|
},
|
|
669
|
-
...c.map((
|
|
670
|
-
label:
|
|
669
|
+
...c.map((p) => ({
|
|
670
|
+
label: p.codeName ?? "",
|
|
671
671
|
value: {
|
|
672
672
|
productId: d._id,
|
|
673
|
-
combinationKey:
|
|
673
|
+
combinationKey: p.combinationKey
|
|
674
674
|
},
|
|
675
675
|
sublabel: "Variant",
|
|
676
676
|
active: !!s.bindings.find(
|
|
677
|
-
({ productId: e, combinationKey: o }) => d._id === e &&
|
|
677
|
+
({ productId: e, combinationKey: o }) => d._id === e && p.combinationKey === o
|
|
678
678
|
)
|
|
679
679
|
}))
|
|
680
680
|
]
|
|
@@ -684,24 +684,24 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
684
684
|
productId: d._id
|
|
685
685
|
},
|
|
686
686
|
active: !!s.bindings.find(
|
|
687
|
-
({ productId:
|
|
687
|
+
({ productId: p, combinationKey: e }) => d._id === p && !e
|
|
688
688
|
)
|
|
689
689
|
};
|
|
690
690
|
})
|
|
691
691
|
}));
|
|
692
692
|
}
|
|
693
693
|
function r() {
|
|
694
|
-
return s.menus.map((
|
|
695
|
-
label:
|
|
696
|
-
value: { productId:
|
|
694
|
+
return s.menus.map((f) => ({
|
|
695
|
+
label: f.name,
|
|
696
|
+
value: { productId: f._id },
|
|
697
697
|
active: !!s.bindings.find(
|
|
698
|
-
({ productId: d, combinationKey: c }) =>
|
|
698
|
+
({ productId: d, combinationKey: c }) => f._id === d && !c
|
|
699
699
|
)
|
|
700
700
|
}));
|
|
701
701
|
}
|
|
702
|
-
function h(
|
|
702
|
+
function h(f) {
|
|
703
703
|
const d = ee(s.bindings);
|
|
704
|
-
return
|
|
704
|
+
return f.flatMap((c) => c.children.flatMap((A) => {
|
|
705
705
|
var e;
|
|
706
706
|
if (K(A))
|
|
707
707
|
return A.children.filter((o) => o.active).map((o) => {
|
|
@@ -720,32 +720,32 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
720
720
|
});
|
|
721
721
|
if (!A.active)
|
|
722
722
|
return [];
|
|
723
|
-
const { productId:
|
|
723
|
+
const { productId: p } = A.value;
|
|
724
724
|
return [
|
|
725
725
|
{
|
|
726
|
-
productId:
|
|
727
|
-
code: ((e = d.find(({ productId: o, combinationKey: B }) =>
|
|
726
|
+
productId: p,
|
|
727
|
+
code: ((e = d.find(({ productId: o, combinationKey: B }) => p === o && !B)) == null ? void 0 : e.code) ?? ""
|
|
728
728
|
}
|
|
729
729
|
];
|
|
730
730
|
}));
|
|
731
731
|
}
|
|
732
|
-
function C(
|
|
732
|
+
function C(f) {
|
|
733
733
|
const d = ee(s.bindings);
|
|
734
|
-
return
|
|
734
|
+
return f.filter((c) => c.active).map(
|
|
735
735
|
(c) => {
|
|
736
736
|
var A;
|
|
737
737
|
return {
|
|
738
738
|
productId: c.value.productId,
|
|
739
|
-
code: ((A = d.find(({ productId:
|
|
739
|
+
code: ((A = d.find(({ productId: p }) => p === c.value.productId)) == null ? void 0 : A.code) ?? ""
|
|
740
740
|
};
|
|
741
741
|
}
|
|
742
742
|
);
|
|
743
743
|
}
|
|
744
744
|
function k() {
|
|
745
|
-
let
|
|
746
|
-
s.isAddon ?
|
|
745
|
+
let f;
|
|
746
|
+
s.isAddon ? f = r() : f = l();
|
|
747
747
|
const d = {
|
|
748
|
-
modelValue:
|
|
748
|
+
modelValue: f
|
|
749
749
|
};
|
|
750
750
|
n.open({
|
|
751
751
|
title: `Select ${t.value}`,
|
|
@@ -757,47 +757,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
757
757
|
}
|
|
758
758
|
}).onPrimary((c) => {
|
|
759
759
|
let A;
|
|
760
|
-
s.isAddon ? A = C(c) : A = h(c),
|
|
760
|
+
s.isAddon ? A = C(c) : A = h(c), u("update:bindings", A);
|
|
761
761
|
});
|
|
762
762
|
}
|
|
763
|
-
const { t:
|
|
764
|
-
return (
|
|
763
|
+
const { t: v } = P();
|
|
764
|
+
return (f, d) => {
|
|
765
765
|
const c = E("FmButton"), A = E("FmTextField");
|
|
766
|
-
return
|
|
766
|
+
return S(), V("div", Bt, [
|
|
767
767
|
a("div", Ct, [
|
|
768
|
-
a("div", Et, j(F.isAddon ? I(
|
|
768
|
+
a("div", Et, j(F.isAddon ? I(v)("inventory.integration.apply.addons") : I(v)("inventory.integration.apply.products")), 1),
|
|
769
769
|
x(c, {
|
|
770
770
|
type: "button",
|
|
771
771
|
variant: "plain",
|
|
772
772
|
size: "md",
|
|
773
773
|
icon: "link",
|
|
774
|
-
label: F.isAddon ? I(
|
|
775
|
-
onClick: d[0] || (d[0] = (
|
|
774
|
+
label: F.isAddon ? I(v)("inventory.integration.apply.applyAddon") : I(v)("inventory.integration.apply.applyProduct"),
|
|
775
|
+
onClick: d[0] || (d[0] = (p) => k())
|
|
776
776
|
}, null, 8, ["label"])
|
|
777
777
|
]),
|
|
778
778
|
a("div", null, [
|
|
779
|
-
|
|
779
|
+
w.value.length > 0 ? (S(), V("table", Ft, [
|
|
780
780
|
a("thead", null, [
|
|
781
781
|
a("tr", Lt, [
|
|
782
|
-
a("th", Vt, j(I(
|
|
783
|
-
a("th", null, j(I(
|
|
782
|
+
a("th", Vt, j(I(v)("inventory.integration.apply.name")), 1),
|
|
783
|
+
a("th", null, j(I(v)("inventory.integration.apply.code")), 1),
|
|
784
784
|
d[1] || (d[1] = a("th", { class: "w-1" }, " ", -1))
|
|
785
785
|
])
|
|
786
786
|
]),
|
|
787
787
|
a("tbody", null, [
|
|
788
|
-
(
|
|
788
|
+
(S(!0), V(J, null, $(w.value, (p, e) => (S(), V(J, { key: e }, [
|
|
789
789
|
d[2] || (d[2] = a("tr", { class: "block h-8" }, null, -1)),
|
|
790
790
|
a("tr", null, [
|
|
791
791
|
a("td", null, [
|
|
792
792
|
a("div", Nt, [
|
|
793
|
-
a("div", Dt, j(
|
|
794
|
-
|
|
793
|
+
a("div", Dt, j(p.itemCode) + " " + j(p.name), 1),
|
|
794
|
+
p.variantName ? (S(), V("div", Rt, j(p.variantName), 1)) : _("", !0)
|
|
795
795
|
])
|
|
796
796
|
]),
|
|
797
797
|
a("td", null, [
|
|
798
798
|
x(A, {
|
|
799
|
-
"model-value":
|
|
800
|
-
"onUpdate:modelValue": [(o) =>
|
|
799
|
+
"model-value": p.code,
|
|
800
|
+
"onUpdate:modelValue": [(o) => p.code = o, (o) => m(p, o)],
|
|
801
801
|
rules: [
|
|
802
802
|
function(B) {
|
|
803
803
|
return !!B || "Required";
|
|
@@ -812,7 +812,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
812
812
|
icon: "delete",
|
|
813
813
|
"icon-color": "#000000",
|
|
814
814
|
size: "md",
|
|
815
|
-
onClick: (o) =>
|
|
815
|
+
onClick: (o) => g(p)
|
|
816
816
|
}, null, 8, ["onClick"])
|
|
817
817
|
])
|
|
818
818
|
])
|
|
@@ -835,28 +835,28 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
835
835
|
loading: { type: Boolean }
|
|
836
836
|
},
|
|
837
837
|
emits: ["update:setting", "update:show", "submit"],
|
|
838
|
-
setup(F, { emit:
|
|
839
|
-
const s = F,
|
|
840
|
-
ve([() => s.show], ([
|
|
841
|
-
if (
|
|
838
|
+
setup(F, { emit: y }) {
|
|
839
|
+
const s = F, u = y, n = pe(ee(s.setting));
|
|
840
|
+
ve([() => s.show], ([m]) => {
|
|
841
|
+
if (m)
|
|
842
842
|
for (const l of Object.keys(s.setting))
|
|
843
843
|
n[l] = s.setting[l];
|
|
844
844
|
});
|
|
845
|
-
const t = M(),
|
|
845
|
+
const t = M(), i = ae(s, "show");
|
|
846
846
|
function b() {
|
|
847
|
-
var
|
|
848
|
-
(l = (
|
|
847
|
+
var m, l;
|
|
848
|
+
(l = (m = t.value) == null ? void 0 : m.validateInputs) == null || l.call(m);
|
|
849
849
|
}
|
|
850
|
-
function
|
|
851
|
-
|
|
850
|
+
function w() {
|
|
851
|
+
u("update:setting", ee(n)), u("submit");
|
|
852
852
|
}
|
|
853
|
-
const { t:
|
|
854
|
-
return (
|
|
853
|
+
const { t: g } = P();
|
|
854
|
+
return (m, l) => {
|
|
855
855
|
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(
|
|
856
|
+
return S(), X(k, {
|
|
857
|
+
modelValue: I(i),
|
|
858
|
+
"onUpdate:modelValue": l[4] || (l[4] = (v) => se(i) ? i.value = v : null),
|
|
859
|
+
header: I(g)("inventory.integration.apply.title"),
|
|
860
860
|
"dismiss-away": "",
|
|
861
861
|
"close-button": "",
|
|
862
862
|
"max-width": 500
|
|
@@ -869,22 +869,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
869
869
|
x(h, {
|
|
870
870
|
ref_key: "formRef",
|
|
871
871
|
ref: t,
|
|
872
|
-
onValidationSuccess: l[2] || (l[2] = (
|
|
872
|
+
onValidationSuccess: l[2] || (l[2] = (v) => w())
|
|
873
873
|
}, {
|
|
874
874
|
default: R(() => [
|
|
875
875
|
x(me, {
|
|
876
876
|
bindings: n.bindings,
|
|
877
|
-
categories:
|
|
878
|
-
variants:
|
|
879
|
-
menus:
|
|
880
|
-
"onUpdate:bindings": l[0] || (l[0] = (
|
|
877
|
+
categories: m.categories,
|
|
878
|
+
variants: m.variants,
|
|
879
|
+
menus: m.menus,
|
|
880
|
+
"onUpdate:bindings": l[0] || (l[0] = (v) => n.bindings = v)
|
|
881
881
|
}, null, 8, ["bindings", "categories", "variants", "menus"]),
|
|
882
882
|
x(It, {
|
|
883
883
|
form: t.value,
|
|
884
884
|
modifiers: n.modifiers ?? [],
|
|
885
|
-
groups:
|
|
886
|
-
items:
|
|
887
|
-
"onUpdate:modifiers": l[1] || (l[1] = (
|
|
885
|
+
groups: m.groups ?? [],
|
|
886
|
+
items: m.menus ?? [],
|
|
887
|
+
"onUpdate:modifiers": l[1] || (l[1] = (v) => n.modifiers = v)
|
|
888
888
|
}, null, 8, ["form", "modifiers", "groups", "items"])
|
|
889
889
|
]),
|
|
890
890
|
_: 1
|
|
@@ -893,10 +893,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
893
893
|
]),
|
|
894
894
|
"side-sheet-footer": R(() => [
|
|
895
895
|
x(C, {
|
|
896
|
-
loading:
|
|
896
|
+
loading: m.loading,
|
|
897
897
|
type: "submit",
|
|
898
|
-
label: I(
|
|
899
|
-
onClick: l[3] || (l[3] = (
|
|
898
|
+
label: I(g)("common.confirm"),
|
|
899
|
+
onClick: l[3] || (l[3] = (v) => b())
|
|
900
900
|
}, null, 8, ["loading", "label"])
|
|
901
901
|
]),
|
|
902
902
|
_: 1
|
|
@@ -915,40 +915,40 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
915
915
|
loading: { type: Boolean }
|
|
916
916
|
},
|
|
917
917
|
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[
|
|
918
|
+
setup(F, { emit: y }) {
|
|
919
|
+
const s = F, u = y, n = pe(ee(s.setting));
|
|
920
|
+
ve([() => s.show], ([v]) => {
|
|
921
|
+
if (v)
|
|
922
|
+
for (const f of Object.keys(s.setting))
|
|
923
|
+
n[f] = s.setting[f];
|
|
924
924
|
});
|
|
925
|
-
const t = z(() => s.menus.filter((
|
|
926
|
-
const
|
|
927
|
-
return
|
|
928
|
-
})), b = z(() => s.menus.filter((
|
|
929
|
-
const
|
|
930
|
-
return
|
|
925
|
+
const t = z(() => s.menus.filter((v) => (v == null ? void 0 : v.category) === null)), i = z(() => n.bindings.filter((v) => {
|
|
926
|
+
const f = s.menus.find((d) => d._id === v.productId);
|
|
927
|
+
return f ? (f == null ? void 0 : f.category) === null : !1;
|
|
928
|
+
})), b = z(() => s.menus.filter((v) => (v == null ? void 0 : v.category) !== null)), w = z(() => n.bindings.filter((v) => {
|
|
929
|
+
const f = s.menus.find((d) => d._id === v.productId);
|
|
930
|
+
return f ? (f == null ? void 0 : f.category) !== null : !1;
|
|
931
931
|
}));
|
|
932
|
-
function
|
|
933
|
-
n.bindings = [...
|
|
932
|
+
function g(v) {
|
|
933
|
+
n.bindings = [...i.value, ...v];
|
|
934
934
|
}
|
|
935
|
-
function v
|
|
936
|
-
n.bindings = [...
|
|
935
|
+
function m(v) {
|
|
936
|
+
n.bindings = [...w.value, ...v];
|
|
937
937
|
}
|
|
938
938
|
const l = M(), r = ae(s, "show");
|
|
939
939
|
function h() {
|
|
940
|
-
var
|
|
941
|
-
(
|
|
940
|
+
var v, f;
|
|
941
|
+
(f = (v = l.value) == null ? void 0 : v.validateInputs) == null || f.call(v);
|
|
942
942
|
}
|
|
943
943
|
function C() {
|
|
944
|
-
|
|
944
|
+
u("update:setting", ee(n)), u("submit");
|
|
945
945
|
}
|
|
946
|
-
const { t: k } =
|
|
947
|
-
return (
|
|
948
|
-
const d = E("FmChip"), c = E("FmForm"), A = E("FmButton"),
|
|
949
|
-
return
|
|
946
|
+
const { t: k } = P();
|
|
947
|
+
return (v, f) => {
|
|
948
|
+
const d = E("FmChip"), c = E("FmForm"), A = E("FmButton"), p = E("FmSideSheet");
|
|
949
|
+
return S(), X(p, {
|
|
950
950
|
modelValue: I(r),
|
|
951
|
-
"onUpdate:modelValue":
|
|
951
|
+
"onUpdate:modelValue": f[4] || (f[4] = (e) => se(r) ? r.value = e : null),
|
|
952
952
|
header: I(k)("inventory.integration.apply.title"),
|
|
953
953
|
"dismiss-away": "",
|
|
954
954
|
"close-button": "",
|
|
@@ -962,23 +962,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
962
962
|
x(c, {
|
|
963
963
|
ref_key: "formRef",
|
|
964
964
|
ref: l,
|
|
965
|
-
onValidationSuccess:
|
|
965
|
+
onValidationSuccess: f[2] || (f[2] = (e) => C())
|
|
966
966
|
}, {
|
|
967
967
|
default: R(() => [
|
|
968
968
|
x(me, {
|
|
969
|
-
categories:
|
|
970
|
-
variants:
|
|
971
|
-
bindings:
|
|
969
|
+
categories: v.categories,
|
|
970
|
+
variants: v.variants,
|
|
971
|
+
bindings: w.value,
|
|
972
972
|
menus: b.value,
|
|
973
|
-
"onUpdate:bindings":
|
|
973
|
+
"onUpdate:bindings": f[0] || (f[0] = (e) => g(e))
|
|
974
974
|
}, null, 8, ["categories", "variants", "bindings", "menus"]),
|
|
975
975
|
x(me, {
|
|
976
976
|
"is-addon": !0,
|
|
977
977
|
categories: [],
|
|
978
|
-
variants:
|
|
979
|
-
bindings:
|
|
978
|
+
variants: v.variants,
|
|
979
|
+
bindings: i.value,
|
|
980
980
|
menus: t.value,
|
|
981
|
-
"onUpdate:bindings":
|
|
981
|
+
"onUpdate:bindings": f[1] || (f[1] = (e) => m(e))
|
|
982
982
|
}, null, 8, ["variants", "bindings", "menus"])
|
|
983
983
|
]),
|
|
984
984
|
_: 1
|
|
@@ -987,10 +987,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
987
987
|
]),
|
|
988
988
|
"side-sheet-footer": R(() => [
|
|
989
989
|
x(A, {
|
|
990
|
-
loading:
|
|
990
|
+
loading: v.loading,
|
|
991
991
|
type: "submit",
|
|
992
992
|
label: I(k)("common.confirm"),
|
|
993
|
-
onClick:
|
|
993
|
+
onClick: f[3] || (f[3] = (e) => h())
|
|
994
994
|
}, null, 8, ["loading", "label"])
|
|
995
995
|
]),
|
|
996
996
|
_: 1
|
|
@@ -1000,22 +1000,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1000
1000
|
}), 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
1001
|
__name: "FoodMarketHub",
|
|
1002
1002
|
setup(F) {
|
|
1003
|
-
const
|
|
1003
|
+
const y = ie(), s = te(), u = W(), n = M(!1), t = Ze(), i = z(() => t.state.menu ?? []), b = z(() => t.state.group ?? []), w = z(() => t.state.variants ?? []), g = z(() => t.state.categories ?? []), m = Ue(), l = z(() => {
|
|
1004
1004
|
var c;
|
|
1005
|
-
return (c =
|
|
1005
|
+
return (c = y.currentBusiness.value) == null ? void 0 : c.menuVersion;
|
|
1006
1006
|
});
|
|
1007
|
-
|
|
1007
|
+
u.watchLocation(t.init);
|
|
1008
1008
|
const r = M(!1);
|
|
1009
1009
|
async function h() {
|
|
1010
1010
|
r.value = !0;
|
|
1011
1011
|
}
|
|
1012
|
-
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm),
|
|
1013
|
-
async function
|
|
1012
|
+
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm), v = z(() => k.value);
|
|
1013
|
+
async function f() {
|
|
1014
1014
|
const c = t.state.setting;
|
|
1015
1015
|
if (c) {
|
|
1016
1016
|
n.value = !0;
|
|
1017
1017
|
try {
|
|
1018
|
-
await
|
|
1018
|
+
await m.updateSetting(c), s.open({
|
|
1019
1019
|
title: "Success",
|
|
1020
1020
|
message: "Your changes has been saved",
|
|
1021
1021
|
type: "success"
|
|
@@ -1032,14 +1032,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1032
1032
|
}
|
|
1033
1033
|
}
|
|
1034
1034
|
}
|
|
1035
|
-
const { t: d } =
|
|
1035
|
+
const { t: d } = P();
|
|
1036
1036
|
return (c, A) => {
|
|
1037
|
-
const
|
|
1038
|
-
return I(t).isEnabled && !I(t).isBusinessLocation ? (
|
|
1037
|
+
const p = E("FmCardSection"), e = E("FmCard");
|
|
1038
|
+
return I(t).isEnabled && !I(t).isBusinessLocation ? (S(), V("div", Ht, [
|
|
1039
1039
|
x(e, {
|
|
1040
|
-
class:
|
|
1041
|
-
"w-full":
|
|
1042
|
-
"w-1/2": !
|
|
1040
|
+
class: Z({
|
|
1041
|
+
"w-full": v.value,
|
|
1042
|
+
"w-1/2": !v.value,
|
|
1043
1043
|
border: !0,
|
|
1044
1044
|
"border-fm-color-neutral-gray-100": !0,
|
|
1045
1045
|
"cursor-pointer": !0,
|
|
@@ -1048,7 +1048,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1048
1048
|
onClick: A[0] || (A[0] = (o) => h())
|
|
1049
1049
|
}, {
|
|
1050
1050
|
default: R(() => [
|
|
1051
|
-
x(
|
|
1051
|
+
x(p, null, {
|
|
1052
1052
|
default: R(() => [
|
|
1053
1053
|
a("div", _t, [
|
|
1054
1054
|
a("img", {
|
|
@@ -1066,39 +1066,39 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1066
1066
|
]),
|
|
1067
1067
|
_: 1
|
|
1068
1068
|
}, 8, ["class"]),
|
|
1069
|
-
I(t).state.setting ? (
|
|
1070
|
-
(
|
|
1071
|
-
l.value === "v3" ? (
|
|
1069
|
+
I(t).state.setting ? (S(), V("div", Jt, [
|
|
1070
|
+
(S(), X(ue, { to: "body" }, [
|
|
1071
|
+
l.value === "v3" ? (S(), X(jt, {
|
|
1072
1072
|
key: 0,
|
|
1073
|
-
menus:
|
|
1074
|
-
variants:
|
|
1075
|
-
categories:
|
|
1073
|
+
menus: i.value,
|
|
1074
|
+
variants: w.value,
|
|
1075
|
+
categories: g.value,
|
|
1076
1076
|
setting: I(t).state.setting,
|
|
1077
1077
|
"onUpdate:setting": A[1] || (A[1] = (o) => I(t).state.setting = o),
|
|
1078
1078
|
show: r.value,
|
|
1079
1079
|
"onUpdate:show": A[2] || (A[2] = (o) => r.value = o),
|
|
1080
1080
|
groups: b.value,
|
|
1081
1081
|
loading: n.value,
|
|
1082
|
-
onSubmit: A[3] || (A[3] = (o) =>
|
|
1083
|
-
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (
|
|
1082
|
+
onSubmit: A[3] || (A[3] = (o) => f())
|
|
1083
|
+
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (S(), X(zt, {
|
|
1084
1084
|
key: 1,
|
|
1085
|
-
menus:
|
|
1086
|
-
variants:
|
|
1087
|
-
categories:
|
|
1085
|
+
menus: i.value,
|
|
1086
|
+
variants: w.value,
|
|
1087
|
+
categories: g.value,
|
|
1088
1088
|
setting: I(t).state.setting,
|
|
1089
1089
|
"onUpdate:setting": A[4] || (A[4] = (o) => I(t).state.setting = o),
|
|
1090
1090
|
show: r.value,
|
|
1091
1091
|
"onUpdate:show": A[5] || (A[5] = (o) => r.value = o),
|
|
1092
1092
|
groups: b.value,
|
|
1093
1093
|
loading: n.value,
|
|
1094
|
-
onSubmit: A[6] || (A[6] = (o) =>
|
|
1094
|
+
onSubmit: A[6] || (A[6] = (o) => f())
|
|
1095
1095
|
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"]))
|
|
1096
1096
|
]))
|
|
1097
1097
|
])) : _("", !0)
|
|
1098
1098
|
])) : _("", !0);
|
|
1099
1099
|
};
|
|
1100
1100
|
}
|
|
1101
|
-
}), Zt = "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+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzRgTeHwNr5QIU4hPTf5iwxOT4JDkxdUzB1ppyIvC9z/zgVjDmvgHiP8X431dfXV205nzeD5JlDIO+LlCNdQQ6MDaHMU0ZkVEJhMJdx/y2Q9Ti/LCaTPmRizFAzW1mOwaArykopUcc47D1EnPiJzozMn72wYhiqbZeAznTR1+zYmnKIroTO4/lKMEufG9BTNtH29pajOkMtjzPV+BkKweNwD7x7TpjSqarsMo3xF9FSu0FWp8RzwHnG853OG1fiss+dbHKOcngYR+08Ycxs3e1kE26c2cojnow82oeGDmXLr70GeVx5Yd3Qw1Iwj3lSmJgXd3mfJpYahZ5kAt4VXJOckULJo2Vwekeo9fxCcuQ/vQi0B1s+gK7QJ5O9IqXLOwx0Ldq1J5QuBYqZCBCB6U6gqg06utLRQ5r9S7Zu062ZzGs0fq9F13uLVzddDKrKp58aOpRM3poHuWApfdBiVbN+XnZPALqlRezVdbbO1jxIN7qlYHWG2j6Bit59+GGSWxkOVni8OVMLAz0p6R8Iiz7eMh9izDr1TOFc6CB+uouSYzt0NsNlxiXOZbIkBoLNcGXOfk5yZj5Sf1W7QavsYPo4MxGmXIepH7RzcafKpR2lUyoC02xshS1A1/tXAfNf8fPWOpTqDlG8JSHQGWw5GfbkW4W61yGzB4Mg69G6jmCsYVBlbBsmWe5RMcUdU8REz/hiyCyGZToCdqcJckvhuKgkSk/fSMcwzIN5jqyormuE9SFswA6fGD6Cn9vathlVPUqRooefJpInU4ECfwOYozCkaZU0lbCAxuQ9IQLTzKCjRcCU92DW7KfC4ejtEyJX0sClqGuYcVor7Ka7mSGrv+leqX+t+hfWMxhcOhctl1thjG0LeRED5mf04nc3i8cf7+rvh0FXbOcUWFLzdzQ3LzU0rYWp7GQYeUyGUlohk3jP0LU/gTaamc9quz8WQkVcDo/qt9Vq2k/jano1i2w0jI2NYrL3mTDa19uH4dfFDfYQ/ByfBftwaBFomBgTM15z8i/ozlg0bijnYYoA5hf4J/Bs2KeECgNT1dhIf/86muFuj2jKuU47gy7uICapXIvlSU+7mXU8Ne789DMGdvdNYw0fRQHvPPRi8Nu5+uZV4cjmPXbh87jFuvv7N8Jf/J5ownKtmTNr/4lx7d2Yb3yuXAdzntinqdfAwMBWZF38ijqwemGDY0CuDk5aOcCVN5G2WBqKTh46iMDECUw5g17IZIl2DgrzuZrCRdf76fiZTZ+J00QMTunLNO/sFHCKz5SVVV6MRicP8695lR2DecVV0aVsd4hV6om10AlPR7GcoGbMOR5SDqnQlnaMVUlTLtklnhv1kiVL6jGT/Zxcn6QLStZbu6M9n3Xyd+O+adMm0UX8B/Fbvnz512oaaprdhK9EWTGWnTjMv5WopEUnxgyUc9YnJSmU9LMEKNclumyw1j+wfv162xUA5VKD0pk6BKacQZe9NTDqp7UHg58MR6Ny68NlIy6v3BDq9mthYsUYYNLUmQWtxfCZzoUaA1jzix4M9NTpyut2WTEMba+q8achFcDYMnql0zHbyWe4CUFsxMH/AeztS9cMYZwiT7wbCewX8ulU0mfZ4smrhC+Uwzi3rf4L5sw4EjU6sU7c7ogODY9ebecxUbcNGzbsQBziRwcRIAJEoCQEpq1BFzQxhnolZr0/gQ1nBktCt8SRwpi+oitD7+VG/Z433nhDTLr37NiyZYttq6G3t7cHXcnvjsfjlipD/qQRX1yML2OoUGyugiVchQ5+QNf1T3X3rHth6dKlrsc3nfRHT0UrahO2zz3mXf0QraV9hTQjfyJABIhAJRKwLdgqUdFS6ISW3yJMmLkJcb+/FPGXOs5EC5nXH8A4XNEzbYvQ0RjvSnYd1PCPYUuwGulwhqoOQ1iHcRZ/PTkwLW2lU0SYs/a0kx+5T5xARjfLxCOjGIgAEcghINP1mROoMhwaUmpkrl1OOTqcZMomzhl/X2eo+SMO4gWc3ayTlq87iXFpcWNkbs7o6KiMWIF8lMdb12uhq5mz5N9EXkV+x38K/oqfga3TsdpICHl6oPd+VqYOZrqYGLBXi7OKap2ba6+Tf5OMPIUhFZmY/WHOTBABzPsn30GzUITiyXis75+IsdRHIuXxNf3JvIj8mL9Sp57c/17Fdvzil07XPC99+pTC9CHgeYFZXnTYNSH/kKqUOlhbfP2q1mVHSAlnCqGJTMfUIICVD2pM9eJpmho8KBdEgAhUH4EqN+heAWdLmBYQXe/yzQ6vkqZ4ykvAaSMQxmZpnB9WXmUoNSJABIiAdwTIoJssGTtzVbD1o+Yl/Z2aBAyV9TvlTFOVDzj5kTsRIAJEoNIJkEHPuENYHIUNZ5avyHCi0ylGgOm8C1my3RYAS+TOaW9rO3WKZZmyQwSIwDQhQAY960azJRrz35zlRBdTisDQ2NjzWO4njHrOgVUPNdiy9Qf4lOp7cjzJgQgQASJQ4QSmhUHH1LW9KMR3ytwLFOrv7Qg1U9e7DKwqlBG7cmHfme85qY5lbQu5ov4ihG+XY3vg8nyFzUkZcicCRIAIuCAwLQw61kFtwfcbrxFfN5Jjo6Iwr4aud8br9++37T6Wy+f0lMKHeX6ACt5TTrlHpS6AveyuwI54zwY7Wj+1bNmy2U6y5E4EiAARqBQC8oujK0Xj4vQI7Bse/dGshsA/IPiH80WRqOEwZZGmJLre/x2yzmvTxKeQSzEvPvVRKVH/cK5zQTGfsWDmopY5c/YGYrEJ7xQ3hK3zampq3ijtRjUiTxnQMk6z74vAXrK6SszgsU+rLPAkvje+NDvd5NX4AraVWP19x6y62gtWB4P3YfeeB8Bms5381HUzHyvJunAFgkjkwPktLqvGzm9zWdWgxKYogelh0LEFWF3dfp2PzrlSqVGPx8c5lhW8n+h6X40NZ9ZE+u8pKFsSAZkClC/3MX+Xz4dKhz/gaBqFeunY7IsUBGb1ijKqG/EzIf5MSbJUQZFGIut6Q6GWD6oKexDd7I7fL08YdsbaoPpNfkX57OpQ22MGN356YDT+e/qoRgXd0GpUBd1E9AxV442rXJ2nh0EHf/+BBt/aTQNbVwdbrkSj9wG5W8Kub21d9sfe3sF1cvLllULXsLDODZkNXicN0tY+bdqTsmkDD5kAopw2z0Qk0vf7UKj5ZLTC70Le/8mJnekOmUbUez6iMu1DM2rUbixz/DHX+cNdfX0Dpgz9JQKyBNDBN3dVa+sZkBdbNyde0bjZISIbiY2c+NIgU7Q9XdHoc/AWH26iY5oQmDaFtz7TSLwwa6J9D65qbzkJrfQPF7zHjC32a4GvQO4s/KyWsGDwahMQcwzQWq2Qzsny0ItE+rsxRn5yQ33geuwY+AmkioZ4wUNDZWo1yuDVho9f2hlq+x3Q3b9rz76ntm3bNlQwNAkQARBAGdQM0/vLTBjp6nWmq7tzfCtR7GH5Ij7NeiJ9bMgdu2qX9uL5qQoG2v70tp581LgSvV2DMoqLWe/4zOpHZWQrWUbcaLtf+XW2alF+DawpDg4OvhGO9F2kc34S9pH/bSYpUQ3M98PzMRef7XsfU7VH58876M8dodbPtLS0zLOmQddEwI4Anp+sQ8PD5OaXFXj8IpmO+CgCHdONwLS86V0DA1sx7+xK2ZuNju0bWltb3e/1LpsAyVUEAdEF3xWJnswN/d9R4fsdlHLVXYkW12oMWdxa41OfQyXwgqamJonPxFZE1kmJKUcgNbN2yuWMMuRMYFoadIFDdL1jZ7CfOqNJ+4ixU7+mXZ92obMpTIB3R/t+0R3uOclQ9HdikcNd6L7c4Sq/jK1QVeX2WTMang4Gm9/uKiwJEwFPCIglOHRMNwLT1qCLG23EjMtQYG8rfNMNdITx96PVRXt9F4Y1VSR4ONz3h65wz/kGHzka33K9CBXAZ5E56bV0mI/wFo1pv0Y3/BUIN63ftanyUFRNPjibNvOjquaelEHRaX3Tu/v7N+Jb6F+CtXZcmpYuhYVRV2/uWLHij93r128R94aqwO6fUE1MuYHItQAAD99JREFUuauy3sBIZMMr0Po2TDK6q7bWdxRmxX8Q16dhyPLQXALZcydh1AOQuaEz1NoyEjM+1d/fvz83TK6Lj48ien/OHEV8VTtXuApcPJi8XQW5tFdRzDM1y4rMpwMVxFcwmfIuRcWXez0qTsTzgcmt+HAg34o9JUbsNSLXqUpgWht0cVO7Iv3/09neegpOxUz2vAfDJiRqrU/Mej83r2CVesKCBLDGujotRhmYj68Z/iuS+msodPhC1ag/BRb3wxhvPx7s8nNjyrk1Acx3Sj47meW6reZGXB32+5Ux+45TdohtoNI4Oqx6QM7pmBABGPpXMLxzw4QiocBEIIPAtDfoggUfMy7FZp//jErywRlsbE9RcJ+Dtey/EmPwtgJldeTb4oZ2DZI8wFmxs1rT5bXK8S0yResuaxaqNLFIZON2qP5D/O7HBjXHodX+WUyKOw3Xju8U/M9uDzb3hKP9hQvxkZE9ir/hgAMemaV1DkHlnWfNmlWHt0Osvc8JhOdtuLa2tmDFJCcgOaQIoLKmotenhjaXSSGhkwkScCx8JhhvVQUXXe8dwdbL0cYSBXTBA6bzltbWw0VLTWwIMXkHZ28Mj47eSwXC5N0CpKyL2fH4i01qWk7Cjh7XwnAf46QRGvKXBoMr/y8aHbD94psZLlZfr/qZaJ/nGlM45+8NMCOZ4N94PK7W+AJiyCDnwELn1/DcxXI8yIEIEIFJI1CWgmHScuci4e5o773oOpVqdaPAXlrjq7kRZe0kL0tKdMjWuMhmZYiKzgTzVxkaeaIFDPuTu/e8eaLB2W1OEaKjegZ2mrvIyd90hzF9k3NmOwaKuz5LtOxM2VL9VVVVGPM5dvFjVFhMDkx379gJkRsRIAJlJUAGPQP3WEy5HEZ9S4aT8ylXzkYr5V3OAuXwmc5TjcrB130aW7ZsGQ5HejAjnn/NKTTGTv8VPTyHOfkL90SvC+MOu87xmTC2M/OF98KvRlXnwmI7pMO3Ig0y6F6ApjiIgEcEyKBngOzr69uEbcHEEqOCB8bS0VBn8wsKkkAWAR09yPjCWeqX5TmVLnbuuQaVwxftsoRHZ15A8x9v55fpBlRidr3NwRYEAnyBjYe3Tqq6LPGc28bK3a3Nt42DHIkAEfCSABl0C81E1zvnv7A4T8LlVL0102MeVff27QewfshxOSQqg8FCDxVIbbCTgaFHN7hvqZ2fl24YqXfUER8w3OZlWhQXESACEycwVa3GhMiweKLr3aMWiGnAXOwimpqwTrdnQjdykgOzOHsK4+CjdnvKYAy64NIznWsDTlnQmNru5OeZOzPwARrx/JrPcCrmYYygr09dVfiJGOw39+OfbFXFG23+aMBssu/G1EufLIbNPU18DpPza2y8inTKKRCLjIeCVRMBWPLX0Zp+zU5nzL+YDfe8ZbqhxHvswgo3dOeXdP7GypUr52M2/Sq79LEhyr4Y51Vj0O3yQG5EYCoSIIPucFe7I/13YsbPIw7e5OwRgczxdHE+lQ7DQLuQ2W/BiWdLYkKZbwMM90ZbJlxZhV0LS9btXutnHVjFscI2bUXp6+3tfdXBj5yJABGYJAJk0J3BoyGiX4Zi17aF5RysnD6iM5GOSiWgaZpY8oWNWWwOprwO17w3MBqNvqZw1msTGvUEtkip9Z9u5+eFG+I/1ykebFf6Oyc/cicCRGDyCJBBz8M+HB7oM9hEu94FYsKcB/OU9fL52FuROdtd3dB0d5jBbsHBlV9ZXFKXiOPjHQsXNqQcPDrpaG0NIaoz7aLDcrxRReVP2fmRGxEgApNLgCxNAf5d4b670VR/uIDYJHkzPjIyQrt1TRL9fMkGg8EAttI9z0kGC/f6nPwy3Y248QT65vdkuqXOGVvFG+f/V+raoxOm8c+hC2CWfXQsjK/Q/d3ej1yJABGYTAK09Wth+gaP80sVH3sLVp4vLCxeTgl++Pw5M/+y4KAW3anvNu+sK6iq58zLQrsvuR/5ptF4/DyszRddw3S4JKAxfhGMIr4PkHsIA20Y8b/l+uS6iG2JV4VaHkdc5+T6ou+H86vb21uehZF90c7frVso1Hwu0nKsJGBTnHsRZ9xtvCRPBIhA6QlUtUFHdziMT+k/KClmva8Ktl6JxO4u/S1xkQJjtTC+q1EACyNc1JEbLumCrtW5GAO27S4uKiGZQKnlejLCxcmg5dyJkEcMDw//dnBw8I3iYskfqj0Y/BjmvH3ZUYrzP0ejG9Y7+ls8DJ3drmr83zGunbvdKzY3Yly7LxQ64sxIZJ3teLslOsfLjmDwX/BFQcdtazFBb3BoJPZjxwgq3EOVmIZY4Vkg9YhAXgJV3OWe/hCVuVLW6a94j/fmxVDYc2209x6Dqw+J6oO7n7mKV77ulFgz65COk6biRmb+rHJpNtn6p9cZmzPMk5KoKI0xNlT6ItDc09005uZ1oufA9rsg1qy5uobBakHr+WcNdbXPtofavh0MNr+9qanpIFeROAivamlpWhUMfsfHlLuQRsBKWtwfrEs3DMV5r3e7qLt7e59DmP8RdyY7zuSTqDGj1ce0J1e1N59lF76QW3Nz80x8QvhLTDV+Dh0PynyOLOc3Y0vanYXis/MXPUjJJys7B3ayXruJXirTmKt4vjJ/XqdlF1+y2WGWAxkSqCHRB24yeNDphAnIW5kJJ1X1EXAlrl/Gfdo/V17Xu1dskybDq9gqMR4m1sbBSuEetkK/Vp/q+/Ssmb7+jvbW52Bxnsfa62f3j4wM1tXVDWOWeaGv6YnPX86oDwQ6Vcbei26Ss9C/cXC+fMP/wUik97f5ZOz8RmPGDfie+onQvNnOH300S+H30472tl8zbtwd59rvob+ox4qbandoWPa2WKnVMFOefQICHXZCphtqdo+sDff9j3nt1d/S1xi90rQk8TRgiONIVVdHDM0QdScPDrNTLZaIi3OfGovFdg4MDGz1IHKKosIJkEF3cYNE13t7e/AGFMqO3ZIuoiPRCiGA+wkjqTbD0H8IKg3PqK/bB7f1HaHgIK6xbJHvQMs6NU2BoY8bNQIYbn64ZiSGPBZDzixJnXPFlV4+MnaZs4CzT39//7aOtpUXcE17BLo5zmyHYT9FYdopmsI3w7iv5YayHp903YYvwI0b9rgfn3BtUhhvxpK4VajYzHVONemDhmS/ElMuxhWNnReC5cIflZmQn6l/UFAKa4n+NefA6VpZIbuPpyNxJIt23Lta1e+7FU6fH/egP1OYABl0lzcX/aV3oRB8D34nuwxaVnHx2qcLgbImXe2J1eHe1iETC1E0HpvMDMykWU4mHMwL/DVPC+WaK5sxc/Hc7vXrtxQSdfLv7hl4qjO08qMo/u+FPnnHIzDefijiOdT8cjqM+vhhGgRJ3bnyMsbwP9Dd17vJjIH+ekMA90jcjHpvYrOPBWng2TVy517Yi5NrlRMw3+4qz0am+iJL1l+qNMsULOpcdMPyuH4JV1QsJZLBZ+pSVHKuA2GeIBpfyWAy2uWycp2kywAmD6e/LqNzKY6JlHkn/ouxVjc/RTR87X6ZenH+rB4zTsJY+EuZzsWcd0UGfoKlCe/lXN2a+Ka8JZLsEWq72R6WO24dUzbnMCT+sudiSvxUL/RO7nJr90TmvR2W3E3k0nzerHGUOf0svnY8rPolr03trfc3V1pU4y1VeTF7mI5pQUD+iZoWOOQyGe7rC+MNuUpOmqQqiQB6WF5EN+TjmMW/r9R64RnZg3SuHYrxk7H8rN+r9Nb29v4qxpW3Ie6f4+d5YY0o3+QG/9oYZ++a6Mx5r/JM8RABIlCYQNV2uXNejw4rXiezIzY+9Vg3c6aYO+7dgd017uwIhU5Fj9ZpErH6uSo36cXwG6qaszbcOYXMurionfGMXGb6Ocfg4ANm3KjPiM1BzoWz2Nuc+Xy1+YKYdwlGpU7DsoJ8ssX4YQ/ydQj37ra2tiDGmU9Cl/m70SnZgfTmo3sSc+bcxWqrILqpYWUfjivx75XKIKKnSCx7O6sz2CKGfi7C73g8izPcaY+2XEZ+UTXYjvCP6Qq7PdoTXes2rrzyjOO+Y+1ERnpCHhWHvM9D3jglPcVTZ94na/qGkb/HRjKJvGIof8Ty0sRhTd/UK28EE/VU8w/PTDR6Cl85BKrWoMfj8QM+VfsOSoi5iZVAKabZDRYxgQkTg17b84YxkhLx5iSOF/XzWIe0Di0+MUSZnfB4GnBkKsPWNDy+USZZNqTv5nW+bzvJ6kjGLBysCYpZW05+6fisodI+5lli0peibheMTTcv/uq6/ibn2tehQcCJl0gHHYQqKmsHhnVdGJiSHD09PVFELH7fFB854YHAUYpqYMtTFZ8MVY6AcTwUf8XYo5js5vSe6DpnMVVhw3gOEBfrRr6ewdT4p2FwdyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", qt = { class: "flex-col items-center" }, Gt = { class: "flex gap-2" }, Pt = {
|
|
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/jtwU6bIcu24eHh3du2rRpbzl0CgaDJzLGjsFPn0wObvOqqqJSyncIbmrM2DyqKNv6+/v3u42nkuRxL+ZqzHi/orD3IHNNnLFZClf243wLntBHRmOxnwwMDOyqJJ2L1QV5nYFHv1HX9QX4uwTxLMIzOBvPoFFsnK7CqXLJqIpaw7n+VCTS99fM+JcsWVI/Z86c86F7IN97gzz58Yz+NhqNPp8ZfrqeB4NKgLHlCzmvnQsGh4HPfPway3bfx8GrivX+qwmfDNcAHP6O+/ab8SAV/cdX0dp5pFwwuGCGqs87ivnUk7nCj0ZBuZz5lGWiNsMS9y95E/FSukwx47bnDSkZL4NG4ocDhfib/hkzBjtCofW4/COufxMOh9fhXBf+JTj+DS/UhSJeVxyYoagFq0GS+XedKZP/OLeAOlTL+UBHqO05QzF+gsraX/EijrmOdhIDhEKt7wKtbzGmtppqJJ6I5GPRqjLlXbUB/4WQuygS6f2tKVNNf5ubm5f4fOrxqIudzFTeoXDe5Nc0UbCnDlfPYCqUuxMDzy6edtlAe+OK8rBVuK6uTlRIboa7v5DOeL8QhTJtDfry5csb6wKBY1WNv41ztppxZTnKX1Ti0vegEEMr/4ld293/tC7jcYsGzrsmlk75Qk9pg97Z0rLS0Ni5TFXPwIPTLrBqPFkyphAnjJFpGFKucieJAkFCtKDBs41jBlw7xn/vRaE3vCoY/BNjxk/j+w78MrzZ2+5XTVXiLKe2aqtXtiOHQc92yb0qLv+58VhcDMuthHc9KkSr4LxK5erHFcb/Ggq13RaJ9PwCfqWqCFm0Kv6yI9hyJgz5fYihLl8sqPO1qJw9Cvlzu6N9Im/VcPg7gsF3MMbP5Qp7J/Kw0FRaRfcDnm/zsox/7d57+6eZG8YVfdG+sFU5GGnOuD6Kv36rX84158KgT7eDtbe3HIPK2zkw4qeD06ECwHi7JcFCRRkyGYdN+QE1krqYTwF6VW6JRnuemQz9iklzShr0UOiIVo37P8VVdg5uzJy8YGSNsmMkhR5GaDDhNBKJ1+ElOAlnJ2mz6y9ZHWr+zhtDsR8ODg6+4ahaGTySD34+Bp7lPyc3Im2n6gQKDuH9Vg2/jva2R+O6cnlPT080J5IKcUDX8wrUjL4DdfIac1Nd5K+WK+rt7e0r14TDA4OmewX+ZTDkp6Mb5/OoaB2Ll0HLrIclujwzHcqYgeTzI5EgV57sjvbeLSFJIhkEYMhPYIr6OaawU+HszzTiptjk33/xFNgfqGKGdc6+Zu9bma7OualMffNqJcbjOkKtV2iK/4+Kyi5EOZHfmOeNrXI98YI0Y6zgW7Maap5pb2sTLwsdeQiA17/4VPZUZ6gV49KVecDK3YDntdGNdjDqixj334gwk2QS82uL93EVKlMPoWr1CO7B8ZBG/aq6DrTQ9se5cim0jlWX5pOnrRhS6Qy13cm4+qR496BJ4d6LyVPXMWX0vFyOIbvdjgIV6DFlDHoo1Hy0pvLfoWF2A/pzxES3nKPwWG9OkIp2QCm+GoXlY+2htm+j8Mwag6xoxSdBOdHFi67eB9vb286fhOTzJolhgfdBv6IqGyJcezB4dt4Eyu+JbtbghT5VeQYF+r+WP3kvU+Q3o1Bf62WMUzmuzlDLe2v82rMog89HhVNMKKvKAyNA93RF+h6rNuWnhEHvCLaepzHfb1F4/JPownH6ia5vTMTI+lXbDbPqK7qWVcY+jTHwJ1GpEWPu0+pwutd27hqGO3H/vwtj8/FKgdTa2roY9+8mUx87vfO5iXBYH/FlEY8Zx2T+DQaXzu1ob7kfOt+GAZGDkmOSYkgm+bPmZTJ1tU87ravCjed3793/DXs5crUQ8GMy6o1oZPwc79mh1vucukb5KxpW5s8SR9kvTT2y/hr8ZUMZubbsyniQYLUbdNYebL0OJk2Mb6HwmL4HXqSjNKY90dHW9o7yUTALv/KlONGUUAESg+t3VMpQhV9Tv4R7t2xi+WJNAR+7ZmJxTDw0eokO1dQZv0LF+gMTj21yY0BX+4ihxy/ZsmXL8ORqUvmpr1ixYha62H+AV+uL4v2qfI3za4ievKsjkQ2v5JeqTN9qNugqaoS3YKXZl8zaf/JvftBiknvmL790NfiaRlX85UvQPfEQljS923vNM9Mxz71PpUwx+pjKbhNjfWVKzzYZTBY7Bcv+0Vtg8hR/izvQRfixzmDLycWFnnioUGj5IegpeAjG/JiJx1YRMdwR7l33x4rQpIKVaMLGR/V1vofQ7XlOvvI39YSj/BWzy83fZGfN1MP8i6Uwv1wbjd472XoVm37VznKHMf8SKoNfgBErNu9Z4VAjL7I0LZR+IX8MATAs2sGUZS9qt4hjJrqPfojW0mkY+yvJmtdMVljXn8Ux96KQf24INy7Ir6tKqehaEy8vmC+vCajXIK1J6X4XBSH6HW+EJp5MFBPPDle0WxDv38q1GZF5n1auXHkwVm09hBtxpBfvI54vjI0oBt4J3KnSHtanUzxPcFuj8zdxb+jIRwBlDDqG9NvxDJ+YT86NX2bZ4iZcsbJm+ZUoRzh/1VBiVyIu62NRbPRlD1eVBh2TgD6MF/4aO1pOy5hM2VTpz5VeLCB9CTWyMGz5RrQuXmU6DKtmKUQmvHK0cD0BltxACdbAuHEIZ+pKPE4hlGRHQpNFpt7yfzFPgCnzsNPYg8HgsrdHo4Ob5cNmStrrjRdgCyhdYDC2SzUMzV6qcDyZEsWcI4+Jlw5lfhPOj8Lw+CnIeIuYI5F18NQdTziL3hlRYicP9Zz29vbvYcOeF02Xcv2d2VAnlvOs9rLsAIeOWTMaUMlVRKFUlkMU6pihfyewHiUSzKYtrcIQJF+ACe/G/ezFfXzZMPQ3ymHQrRoamqrGYsrLfX1bqmp2szUf5bgWKzNwr9AyzzjG3zdRaS50wHiP6Yxjbb/xElr4UUxxegXdpztSZXCq7HUyUymBAkk5hU8HMzQdS+WN7ZHwur60a/WdFc5pheUJaxuPQqFxazFqoRzfA+P9KIz+veqBAy+tLdO2qsXo2olWj+rX3oES8qN48I8TLTA38cBYLNPUmjsRRswy9mzJDQznsKEO/SlSOfuK/xn5u39VU9O1bEbN2TAI1yDvssu/6hnnn0T48/Ar2xEMNh+LHbE+X4oE8ZR8tqO19bHu3t7nShG/NU6falwHM/4eq7vMNQx2DypY9xqK/ohhDAxGo0pV7eonk8epKoNG1QfwrF1STP5QDm9EYfYznccfUPieDdHozjeLiYfC5BKoKoPe1NRUi9bVt1CTmp2bFWcXGEQ8Q+x+JRb/8lps9O0sWTk+XQMDW6HNvfjd3xFsfg9qw1cjD+jStBzWTWsyWqR4aU7tCLV8pjvSN/HNEVLpoF+DawGLFpN+OV45+25nW9tzKGjuQ/0nmFDKulc3+GS1HrhxBsZ/ry3XJBhMIKpBIxCz2o16SWgxPL3fQW/NebifDRJh6hVN/QrSOXn9+vWjEvJFiwSDLafDmIseAXeH6Npkyo0HRuL3Qsd97gKT9GQTaG1ddgQ6FV3N/hfvHIrhfejh+9bI0NjtGzZs2DHZ+ZiK6RfZQzY5KGbNqPk8uniOdZM6LDm6iI2zuiPR/+yuEmNuyZ/RHe1/dGhM7H+sfBWvhbstTBm7fDotZ+vq6Vmj6wZa6optgZFlzAEahn+eptS8y8K8ZJf1tb5Po2w7TjYBFIIPro30XoyhhPtkw6BCc0Jdjf8zsvLFyInlaRpjYpzZ3RwAzn+px/ixXeG+28mYF0N+8sP4tcBNeMYWutEEZddf0b3+9mi49yoy5m7IuZOtGoOOLS5bUPx+Viic+cubXc6fV8bi76yi/a4dsyO+IIaC/b91Q/sgBtz3JVfbO4qnPGA85mBw6Isph2lwEu7rC6PwuEoYbzHGn/ihhyE53p9ySfgkZBg/vhxY2tpWoNfAzb3g24wYv0bodmBMvwFTPDZad1lw0hsVlUuDwZWdTv4TdVeVmZ9CXkKy8YxTv2VNpO8sVKw3yoYjucoigN7Cf8GzdaYbrWDM742NxU/p7e59yU04knVPoGoMOuPaRaI1JZtFPETPjun8jCptlTtmszsafRAflvwP9F+hqxK3L6OL3SkQatNntbceURaj5aRDud337Nl3L+Bk792eGjbI1gYLDIJYwjYz29X7K1XzXY97MVc2Zm6wG03jh8+lbsU6jOtkw+JdQQvafz3kPX/HsYnNYejauFBWFyGHnoYbu8K9YgtVYdvpqEIC4pOn2MXI1RAL7vud6B39r2r/pHG13C7PX/ZSZLyjuflwjCH+h3TcnK8bi+sf6O3tfVU6TBUJhnt6nkBr7UL8koWjMOrmzzYfTIMxucDWa4o6JjcE4Y+lsufIJ9F2PARyJTXowfaWD8PI/ltKn4In/OmYkv1BkHC0734UkI8XDDougMrD6dgVz/MJf9jS9YPo/JDuckXl+luYx3GFrN4kV5kEVHXlO90MF2Edyq/2vTn0WeSGKnFluqVVYdBZwHeu6DqWYYICbxRm7pN9fX2bZOSrVQbfwr4PSzy+Lq8/P0V8hU5GPrlNYwmadjKJeyjDDf4Xmeiwgnu+36/XycgWIyM2XcHM+2tlw8IAvolvMH/RZtZ3HF9/uiLZOyMXG96bLyVa1HLiBaXErmCoKLy/oOC4AN7HP+x9c/gyWXmSq1wC+NjKR2W1wxyWjXxk9BPYE2FENgzJTZxAxRv0joULGzAz0rFlg+9eY11xxs9Qbuvu6Xlq4mgqP4aRkdEbUGB2S2nK2CxV0c5wksXn0NE3mxyhxXp4LAtN/kw3k7GCRaJVc3B1b/aMi8zHXZwnnxtmYL/BEh4qur5BLbG/deJTuqLrf/yX1CKtpehpwbYq3+iKDjxvp5L4UAgKy2+m/RI9DLi0/4v9WZYGNP7ltPzEzuprtLdljp2nno/xZ8fsKRJPkq6oB+IK/8LUL9RxRxz457pPjP9khe5saVmJHqYTrc+r9dp8rhXDuLx7/fotk6XvdE23pAWZJ1DnzQuh60Zucg/nm+PDwxNfouWJ4qWPRMwSxiKyG6RTYsq/QBaNNudDGHJxiM1XxC9no5b8wZ0jngQfVHby5rUcKomvT6F1/qFEQSeRIHRec2B0LG/Py2hM/zpa8XIVOZEmNv9ob28+SyL5giLY+Eg+Hq58PxLpf6FgpCRQ8QQMv/J2KCn1vQw8w7/C9+N/XPGZmoIKVrxBR5F8GmqGUnrCuN0V2bhx+xS8T45Z2rPnwGOo8Ni25qyBYFhasLOXVLe7NWw1XuOjPQfn6m22KbJ8xtSYxKZ3WUEKX6B7egGsqZiYJnlgSaLBryy0nEtMMMKc/ctRcCZrXxKx497fkNRHQthBREwcRAVvtYN3ljN02x3TjTuyHOmiagmoYidGyQPDRRk9SJKBSMwTAlKG0pOUiowE43VHywQVBQj6+H4qIzuVZMTkL64YD0jm6SBscYulU9PkYMqpUjllbOuQrr8pJetCCGvOr0SHRpt0ELRo1/b2Sk16wxwKfNVM+aFs3DDoK+tqfV+SlbeTq1HVI5CfZXZ+OW6M/waTUtfluJND1RHAXv3z0VjqkFEc5fBfunsGpsWQpwyPcstU9E5xHcuXN6LQOkIGCgqsv6/p7ZmWBUhMjz3u12puQOVnRiFWqsHbIfOzQnLV7p+ciMbfWWCEIZFNtDo34wTLAL07sEXxCZi0+AnpGLny8lCMXyctD0GDxW9QuU/sYZ/xLXTnRjvekfM7g80PdUX7n3GTjimL3a5X4lMHUpMHuaGmVxiYEdDfqiRQU6MehvdIblUDvvGAYaaTMCRUU5WZhdJcZRrT2euYi/WnastDRRt0xeebg4+WLIFRL3iglfp0QaEpKhCLqZsx8akLL92xhbKI0YsjC8lMBX9VqflCtqFzzhU+6/USurk92ya1KbFFMbsFrVnpLXINZlyLrvRtzlrm+oTDA4MdwVZU5JhU1zYqfAF8COhrweCCE4rZPxvdebLd7W9yNlp1hWEuYXJJEmBYpSG17bDYcOB0yGLzmWRIMTmy2CP9EaX8MVh3fzSlZcJbw+JdSqqu8osQT9U9w8XTNqmV8q+miRZ6g0wS2D3tRRm5qSiTMEZcWSOTN/A8VEaummWw9vrj0P/T2XkQLVe7H5xV7mkX4eyZDZfAmP9jdvr2V0IjnfP/6wr3/8BeIr8rJh/djTkUT+aXyvRlR/qUeZdkusie49lBS03mYF17947ukpEkmcongPHzQ2S1hDlMfAY6YRjxj4avORX7w4dsEVn+n5Bxit8uvHDL/KHHCd8vTv8S+eTK7+OcfU82z5UkV9EGHeCXSMIa0vHJRUnZKSmGRWaDMhnjijJjyZIl9VZZQ0l21uD1SXglt0RFhRuleDUdaLFejBx8RxQoMnqDR/+BA6NS69Vl4hvfblXuS2pisxtF2YuvTk1knXaM68bVyMcBGf2EDErJz68KrvwHWfm0HFuQPnc+A3hM7dgy7CxBPtVEwOCKbDlcTdmy11V8QEY3Po/loVX55b+KNugYh5EtlMVGHDH7OzRNXFUDa67T65nFjbX74VNpNTNnzsxZfoLtTxMriRProGHUhWE3jXulE8Ts7RrxSdLOUPCXmNkuZthqua1xh1xwfu/g4OAbDr5unX2a6hPLJmc7BhRG3PxBCCvrbolG1/c4ykt4JD6Vyvm3hajdPc90EzJ4qRpg1W9ObOUpHCQP1JHmiXpS5s8uqMH4tFppkiBakLx5F+yIVbYb7rfz81xi1UWDIt+vUPLWsFZ5s+Fi/kXF+Bt4n6p2z/nKHkNXpPe9ljL81ps5Ha/R4cTxLW48t3aHKHTQCSwMjsO+53ahmjBmPGvGjPPx4i9BxSoxFo2tWkp6T5BOIg/o32vES9sJM3MUdPPb6efkhgrjK1jT/b9O/m7dO0KtH4MemIgndyADf1N2vp4wxHIhnKWwxeYts2fWi30GpFYx4F693ae0nK8ofbc5x1qcj8o5tc6LQ1epoRzKi0pVtzi9sIGZeB9Fhbxqjwo36OoeSbJ5jJRkDNNEDC10BmPoqbEVO4F1BIMbsQvNtTDkLmvzYhTZ/ZHe2w0mVCa4WUFJdnMnQmApzi1uJ6I5JYWvAS7DsMdV6BqQOrC8ZwRj51+Mbt8u3VWeL2Lcg70dwZarFZX9PJ9cph+qbVfjOwlPyn7ACKW61DgGenuqdoZzJh86TxGQesVS0lV4knwfdc/ex8lCIJpkFXswmB4p5TivU2OxCq+cSOWkaCEsvZopGTgeGB72vAWFr8A9irHg49G8j0rqMalieIEfC4f77vRKCc78N6LVu0g+Pva9aJHLx5zSEJ8JRq+D/F4M4uuFfp/0trAo1SXX6vNGJx3JvfoI4F3xvLyoQAq3e/0+TkYeK9qg42tihcfi0PLC5LmZDDPiJwNgxaTJlMOldOHK/vDmzbI9H1JRmkLY5rN7ZEw/CbOuf2u6FforHsCJ/ArFb+ePrrV+ZST+SfjF7fzdugU7gmfD2L1fNhzSH1CGx26UlXclp49eifh3yoZBj8KZq4LBD8jJ8y0ycmBxiBiGkZElmconwBT+Sqm0TH49wvpFgPJdJ/LFeQ8+enRTqfJYzngr2qAbhroTtUOp2YZM40XM2i0n6tKlJSY3YXVHp2QKJXs5RfqiCzvOlfeipf6/kvqUVQwt2M3oOj7Hqw9HYDvUJZg+6Mo4Y4nlZd0bNuwoRcbX9g6uw0w76VZ3Ugf+ZbERTyF9MGtByqBjnkYoEAjMKxQf+VcLgdIZ9EoggEmcl2BW++5K0GWiOlR0NzWM+W40v7cikwVbnxhJPRFynk/wmSjgcoSPxVYu8NUw2U0/ekutE14O0TX70Y5Q26vohv5iqdOTjR/GvB/bA38g3Nvn2SxWf0C7CkPLTdI6KPyBSKTvIVn5YuR27T1w14I5M89E2ONkwuMeNWm89mrInpdPHu9Yd46/OSfBnKMAAbTQ59T4fEfjVLy7dFQ7AYNtxXyTUTwnBedGoLL8BL5HcD9XeUFZgQX9q5NGB/OJVG6wXeGe3icmTQmPE65og469oF/raG8bRBEhYdCVY1pbDz+st3fjyx4zqvjoavzqaVAyZymaneKYFZ7HmOGTH3i/RIeXB4fRHem5vBNGHS/511AYBDyI0yYKoau1o8lGf0N9OKaPXOzl8xEMtpyMfJ3ntGYgS1kYPlQotut8TBjOkh5iDficmUdc6fNpv8a7I7VVK7pVP4JJdY9gHP7/nJTjqj6AFRAG8mwFngxiGndxpSa+7PeIU1zkXj0EdFXd5FOM16DxYQW15ty3Ntr3QEE5EigJAfsXsyRJFRUpViRJ7gDHlEUBrUYs25luh09TtLPT3yvHLRUFq80PtdH9nMXD9oCEETR/SYncT6fah8zn2hXpuQ21+/dja16M25vxZ/7NF7qwn3iAnUfc4Ik90tEK+ERXpPdML425+PKYpqo3oYqv2aefrGaY9yXxV1FuikY3rC+cq4lLhHvX/RHbOBTusRIt6+Q8FIaMfFl8iMMp9dFRYx0M/2DaHzlHBTDxE3chcS7+ijWL6mn4st+haVk6q1YC6HGDMVf77d40a56wDOLEjtbWY6zudF0eAhXdQhcIdK4/oTHtv2Vw4GG6cNmyZV5uFCKT7KTKYLnYO5Hvt8sogZbVwJrIgO0sdJTFyUMU8GhSY7W66TLhv+Fw78PY+GWnj6k/QklfuJbvKkXoa3NgYlgUxuf+kRi/16ulaZnJBHzqJahsrka7O9PZ8Ryt82fWRnu/JT5cgfkOmITGEuv15THb5zN136wpc4Y5pXwReOtIS3I1HWtv8KtiiOTz1ujE9cDAwK7O9tY1OF1h55/phmdtERL9CNyuyXSn8+okgC/1PoGOmZMKa496oS+xD/pzhWVJwmsCFW/QR0biLzXUqj0omNoKZR4F7MrZDQExe/krhWSngr/YIU1jylWyeeEG/w1kPZnZLZumKYclIX/BmueTMX3vR7hPR5nu7v7yYRjGOIyY3wyHL4Dp6EnYBwMudnvbgW2l/gYb++uhUeOF9esH9plyXv7Fl9TeoiqqrdFzSAefuFUuE37GmLHe5/edjBXdiSVuctUBEdLedNu7muKOviJC2wMT2i7saFv5MD6B+Sc7AXyBHbvxKWcl/TIrGeJcVAIz3JjyydbW1h/RZ1TtSFaXG9f5U7jvQ9C6vpDmeOre1xFs/n53tP/pQrLk7y0B75ph3uqVig0fHtmH2bWPphwKnKCb8VIUuEUajAKRV5h3XU3NxVDpLVJqYSMTGA/pTUek4nQpJDYwGRqOnwo9ihpbRbhXMeHmg4YRPzqm8OPEj8X14wyFv5UrI//cHR44oTvS/9+iIBHPjUv1pMSbsByLcU0scSlYsJkRorJxa1c0+ry4Dg8MDKIL5FLTr9L+orcngKGEm5cuXWo79j40GnsKLf+Xs/U2jbj5N+mLgr3Rr6lfx5X7mkV2AnQ1yQTCfX1hVKZtK3m5qmERscq+it7S2bl+5FJKAhVv0EXmda7cjz+idljwQMlxELod7so3FlgwkioQCLW2vhst0WtlVcVkhKe7enpEd+mkHjC0O4eGY+/HBNPvJsfkskfW8ymHlv0yfFjkSiGDNe8viF9Xz/o14jOi4XBp1tZb9Zk1o/5CGL0TrO5O1+g+eGkvtmXN9F8T7b0X/eA/EWPOzocwjpk/Z0nPfRh7y7zZDbY9EOL+YSe4n6XThI7j4/BJt0ydMXuBGad3hFpEN/60OMQESalJktVIgxv/K682O3JWfeCb8vIk6QWBqjDoPT09URivX8pnmB1ZF1D/F13Ss+TDVI8kJhv9o8rUuzBOKbU0JJEznd9RKTmEURjtjkQ/BX2uxtJEFIEuDsaOVlXf7ztDrf/mIpQnoqFQcwcs1OXykaGjUuFfEtuyWsOgZ+EqZF3MHK7IQ1XZFxL5tdEO3fL3wBl5Gjfmpoww7PbHDR2hZjEURkcVE9AV9TG8rNKfqUb59F/twTbpRkcVo6kY1avCoCdoGbFvoADcL02OsXc31Poe6Fi+fErtIIfJZW/HN4J/gWbAEtkPqMBkPrm2t1eMn1fU0RWOXofu549BKanel5TyjM3HhLcHO9tbLky5lf4EK/6069GoniOdFGc/xITAx+3ku/r6BjBUcF1qljgiljm3xpXdHrb6TuSazcYkRjEXJaeMCGPPXLyLwqjnHmZrPeOv+P40ZlneDqN+UW4AcqkWAmJ/CYPzW93oi+9AXdXZ3iyeI8mJmW5iJ1krgZyX1SpQKdeiaxW63OVKHxh1Vhf4Db5R/Y+uwlWocHtby/mYjPUIyv6lLlQUE7Kuhzx6eSWOxLTr8j0WGPO+B83Y96Elu0NCu5SI6J3A4qjbMOv6dvRYlGiNeyo5JRRq+zBa5/LLIvEltzE+mrd1Eon0fl9UttKpVNYZnrNTYYTPt9MKX6n7Bu7ZRjs/OzfcL9wufmtnsOW2qdpzZpfvqeYWifT8BL2l0ls7J/OvXooetZ/L7EY41XiVOz/lK7k9yNlYXLkJBWBP3qjG11+n1v8q6qqA4vut6Pqp1tZ6Z1vbamyw87CqaXfiK2Mz8QVU2JbkLzV+mdEiEm5G6hf/NiZk/Tkvs5RnxuMgv54qFbrYExi2X2HuOibLYY9198cFGtN/Hgw2JWaNuw9eOIQoiGCNrnEzNgr+V0ejg5sLxB5jMf0LzOC7zbHX9F9U3XAP0j/7sVlxxzJ/BdLL8ba28K3X0OBq8SU5a0CxFBA7bV2V1jepX1rfTN2T59gvAZ+rZxfOqPX/YVX7yjMQZ9W32sQXkTIZmO+jdW+C9HwIK8mqu45hYqqY1ClWlRQ8Us8mU87wK4E/r2pv+TgCpVapFIyABFwRqKoXateuXcONC+b1oe8T63idCgO0K6yHGGtW2Qn4stSZCxsXzJ2/oHHHzp07d0PM3fitNd4SXotWzMEHNx6zqHHhddD9q+izbE8ml62yTW4TYkIKBvI53dj9sZ07h8YKqbpw4aJT0I2NDSFQUYAw1kqLfxP/JzElU4Lvbqwc+58dO/YeKBSnG//tu3a9On/BrEdVRTsSrbkm2bAin5BvVhXfuxrnzv/Ljl27XLX0ZdJZ3Lj4VqRxgp0smOU4ozv6sa5Iv9RMdqFv48JGzLNT3pkTUZZDbjrCO3lXsgRdXdjHmo5CZcoMGOlFr+3YlbNCYvuO17sXN84/FEqsTocorBEyuwgbz/zHosb5xy9Y2Dh00EFzdrz++uvuhl3SCU7q2eK5cxsUn/YZPB/JXiKH3ZgEZ+zh/+sdO3c9N6kKe5D49p07X1vUuOAAXrxT7Z5/xySYMhvl2OmLFi44aWHjPGP+gtmv79y5R6pi4BgneWQRKPz2ZYlXxgXGTj+HFpNYDpN7OLQsLTOKh1AOP4+X7C/4uxYtjQ1jYt/4STlGEqn6jQBsGV/KNbUVtdqjoNtb0kbcWTHREsg+RJ1Y9K/zHXE9fmJPz3rbjWSywyhKR3v7N5liXCxaEiIGZiTjwU6fuBK/5DUKpfW6MvzWSGTjdmscXlyLHdjq/erdMBLvl4kvK/ecv4qW8XmY9W47bi0Tn1UG26GeyVQtx5iZcrn8sR7eME5YEx3oMmUK/W3CUrhZMxoehqE7BkvCYvbyWTlNiSTvSupS6gR1NUTGGvDyN9jHmo7GjF83lLO7o70/Tvskz8TSpNn1gSdQuMstn7REkHjaOF+PiiImW/EXGDfCPM436T7fsGFY3lpL2ORl8v1Je9WmTz0+8/l0bXjY2JW5JHL1ihULeE1gEAZ9RiI50VNmcwhXVPRujOnsdkUZKfkQkY0KDk5yvPz4Upai67HMjxq1h9ru8TH+EYeICzqLYTb0uP4F4/IvoZG2Fu/ueixJHTJQyBQM7JlA4fyL+z46quwTGyt5lmyJIiojOG9zsDrUcicKkdzxPTmDnqUMXjSxP7X9m5glWYqLdLLQQ4Meru5JtkFJFr+oDBzQdf2scM/AE7Iad7QHYdCVhEEXYUTXqWhslNugj+vrWxVqxf7vymcK6Z+mZ0pyGAJ2STjaO+FZ/WLpY13A9wc8Z21m7Na/2fwTvletCfeKOQuuDlGRwZKF+WNiLMXFUbg4yo2MG0aM+9UjsVb4x+BXnyuRdjENOiq+G/ThsX+2+0ocNgxq1vzqr1AJW54OKXeWrD7myIr5HlkcTNMuurezD+sTkNI4S8w5fJaY4wUqyBry97pi6O8Qnwk2BV0a9KLLGVN/M13zby4P0yf7r3N4e17ZoRNXWA1s3NwV7r3M9BOVOSxN+xmKrHeZbm7/Zt89jvvu7vmX1t5BMYfnL1NalMdYrmK8D0ODD2V6VOI5blJ1HnveHLkYrZp6FPofzMqBK3OYHP/CQyR28Jzos5GlhuxF5ovm0paPJ2FRm6tx7Aj3aTfG3EnXdD3Zxmw5BfLGPb420ntxR6h1K+ZS3YQo8wwNZRcJuJd1mGdwe3uwZVk42ie6vYveGa824LssnzG3ZhWtjeeNnbu/YXWXucaYtFjBIb+KQybS/DJb8eGc76L8tF1vnhMUxlqrC1wL95zlZ2LDIOzffYbi44/A6i3LCeveIed+Oxkuy9OfqgZkvlcieafwVtVMOWt48W6iRXlHpjEXYcUNq0eZY1bDc/TJSABxCO98IhnS2aemXtmu8lcTDY/uhZ7ROP9qZoqDg4NvYCfADwU0LnpoOoWf28xly8tuUZypRenPcd/xhcTKN+bF8C89PckUsLZ3ZGhk9GP46MfdkkGmvhjn+2BUPoQNZH4wFTLbHen9qs75h5GXvW7zg8lXn8MM+AcwA36u27BCPhRqeRv+XCDOZQ5wR+Nav6J7+3ZP5xbIpF2sjH5g+KsorDZKh2fKeeg5sW2Ndff2RjBYcAbiG5COr4oEka/nuc6+VkUqe6aq6MHE/5f19fW9bo0U2/q+OjxmYJMr7nLmuzWmyrxGh9CWsZhxRWVql6tVdgUp17+iXRIblIR7xaxJsROVw9hjRWfBM+VQ4AzirTtjbTT6gGeRVkBEWCZzP/YPPxOFyuYi1DkLe93/JhQ6otVNWFQCZmDjnpvQopLv0Wb87jXhgd+5SWeyZSMbN27Hc+NmeMCHbuebxfCAne5ie9DR+OhJ8HvKzr9a3fDsjXFdv0ysw7bNQ3Fda7ZRVaIjeh+wL7vzZ3Uxtrx1/9DYWTDqU6IhkXkPUPZch4rMpky3Sj6vaoNugsUGJV/BQq0z8ECtN92m01/UIn+G6sw7uqL9z0zFfHdHo0/HDeU03N+1bvOHwuholQWexFfpTpQNq6EbGhMSMeNf8uDK+jgfdWMYJSMuvVg43P9DcJVeC4/e5dW1PuUSJ83EJ2r37B9+D4ygWGJacHWFUzyV5I583I6PCzm/W2i+VpK+XuqCsmXj8Gj8ukJxiu73rkjfR0DiAoTZU0i+Gvxx3/8vHI1+vxp0NXXMGasyPart744du9bNnTf/52hZ1WFEqwMFuWV+gHjn8KhZftjGEh/ogqv0D/t7Yd5G8b/s9KArdCryh29968z4XHe474rXdu1y3S2deY8XLmzEsjXlmMSmXgl9kr6GyGviVNT98C1OpmA1gPfL1jJ1sTvHMsOduL+PYtYgtl/NnHxViF2C7iyE+XcsD9u1Y8dOzKZ2PrDd6dFYUvU9NLowR63wIRb5gcknIpF1zxeWrkgJPn/BwgHMMj4XpLA+OJunyJ/1hykn/7hw3vynsNRwi12O9u7dG8cyt6fmN87/M6Y/NGN89RAzjtRyyPF0slOzpl74OlciqZE1XnM+iBhLzvQz3c18mOWAeY3KTo+usP/C4zeccss4Wbx4sYrvyJ+FWBuFs5k/zH7L4mamar5fqDBWxH/W/GdkLXlqKB/v6ev7W467g8NrO3f9HQuDH8dqnYMxot5s3nev/pp8TZ4T/euUf1RId/O48Z9YVrrdIasV6TxlDLqgi3Xqb27fsePx+QsWPIOX9iCY6WUomMcNe9Is5d4F8Xq7OZzikY3DbXq58aLmuB2T8u+Ic/U8TNZAoTnxwzToVu1ExSV5JH1wNSkGXegg7u9Cpv5Saag9GMXhqnHFpP5A+wB+WAM7v277jl1/QCC7VpW2uHHRD/DMuOii5z/rDvdcK6VEhQrBWG1d2Ng4GzboWEkV/TDSR/gDNT/Zt29f3CkMKtmbNJ//wframk0oeJsQ/0Lcg0k5zILbmr7p7qQUZrefH406f9QI7MYWLWxcjPDHizjM+J3iNf2d0iu3u5OeQg/MT3qwO9LjuudJ7K2wfcfOHy9qnBcGkcPxrMC4e3N4zc85//zqcE9fxc9qt1KdUgbdzBxeslfwQP0UrYjfYV4phpaVg1GYJNeJmkKpv24fEdPApSJweeI2vWT0qDGKSu4aGLJvj8X1i6M9fT9HPu3H9FxqJMSrwaALPbcfOBCDQX4UGwQFYHiPE27uDvZWGK+VdfUNv0NLMmsRM2bVfwJxXiQbH27J60pMP3c7dkWRDVOpcnPmznsJn009He/JAhkdIddUX1e7G+/Zs/nk9+/fH9u+c9dLB82Z+yPMZ+hDPw960LB1caqinS+0d35mwW19+0x325Q4vz8c6b3R1i/DEey6far6Vryfh5jxO8Vr+mcEn9RTJz1R2rzCWfw/d+x4vejuc7ynvTNnzb7Pp2ov4HnBOtiEYZefl2JDxmt+dvlHn+Sfdu/df1G+yqqNahXh5DWfisiUVQlMclqEXRFORGF9IjrCOmAZW/GAjRt40ZXs5rBr2LkJ7yI9bJSCB64HRvxFnetP7N697/lt27aVZEetzmDbbdiR7kLr8haxhWzySOqNFstmrNr/J0wQes1Nrksh2x4MXoAlat9E3K63kkSB9ULc4B9OfMkPEeAZaUPX6Z/xQsyR1RUG/TNowXxbVr7S5TDP4GxUgKUnVaJqe4Ar+gn4VkveYQxLvjVsZdyCdE5F9+nxeL5DYH4oZErauDCXoeU+3xbtUpd8Gx/T34oleRtTTnlOOlasWKrUBr6HZXunCTEzPWsQa/pW/3JfO+mJaQHnYZXJPV7qEwqtWK5y/8koh09AGSyGRZcjflfvrtf8rPnHOz2Gvrt3dvf0/MnLvJcrrmlh0DNhihnMjI0uVBTfIZxpR6iGMQfLQ5eIBwvd2BLNb6uILEIznL08vg+O59zYjw2ZtkPiNV2JrddGjVexM9Or0E3PzEMpzlGYY0c09SRmxBOrBaz78wizjvkGGh7212L4MMf4uulSqOIqTuzkdjrGdE/DfizSjARrJFKjcCOC3c/uwHksFGp9N3YcPwP3YLSQAhwPDioEO9iu12+ppmVqhfIFfw29FNg4hC2V4QmONYaiPxGJ9P1SIm5bkdDhhy/019fPQ0F6BN6QQ/EWzMFfvJ8y76JtlK4crc95IjBnPsNQngj39DziKjKUIVjueCyeoxPAEPv55uYhVT92GXGpxK35F8823vQtMOZfQZrS75Rb/VpaWuZhB7ZGZvibUCk/DK3ieRhzX2LHLDNur/ll55/58Rw+73VFJlN/OicCRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/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 = {
|
|
1102
1102
|
key: 0,
|
|
1103
1103
|
class: "text-xs text-red-500 mt-2"
|
|
1104
1104
|
}, Wt = {
|
|
@@ -1118,25 +1118,25 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1118
1118
|
}) }
|
|
1119
1119
|
},
|
|
1120
1120
|
emits: ["update:modelValue"],
|
|
1121
|
-
setup(F, { emit:
|
|
1122
|
-
const s = F,
|
|
1123
|
-
return (t,
|
|
1124
|
-
const b = E("FmSelect"),
|
|
1125
|
-
return
|
|
1126
|
-
a("div",
|
|
1121
|
+
setup(F, { emit: y }) {
|
|
1122
|
+
const s = F, u = z(() => s.modelValue), n = y;
|
|
1123
|
+
return (t, i) => {
|
|
1124
|
+
const b = E("FmSelect"), w = E("FmButton"), g = E("FmIcon");
|
|
1125
|
+
return S(), V("div", Zt, [
|
|
1126
|
+
a("div", Pt, [
|
|
1127
1127
|
x(b, {
|
|
1128
1128
|
placeholder: "Select NetSuite Location",
|
|
1129
1129
|
items: t.nsLocationOptions,
|
|
1130
1130
|
searchable: "",
|
|
1131
1131
|
searchTarget: "label",
|
|
1132
|
-
"model-value":
|
|
1133
|
-
"onUpdate:modelValue":
|
|
1132
|
+
"model-value": u.value,
|
|
1133
|
+
"onUpdate:modelValue": i[0] || (i[0] = (m) => n("update:modelValue", m))
|
|
1134
1134
|
}, null, 8, ["items", "model-value"]),
|
|
1135
|
-
|
|
1135
|
+
u.value.netsuiteId ? (S(), X(w, {
|
|
1136
1136
|
key: 0,
|
|
1137
1137
|
variant: "secondary",
|
|
1138
1138
|
label: "Clear",
|
|
1139
|
-
onClick:
|
|
1139
|
+
onClick: i[1] || (i[1] = (m) => n("update:modelValue", {
|
|
1140
1140
|
netsuiteId: "",
|
|
1141
1141
|
name: "",
|
|
1142
1142
|
subsidiaryName: "",
|
|
@@ -1144,9 +1144,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1144
1144
|
}))
|
|
1145
1145
|
})) : _("", !0)
|
|
1146
1146
|
]),
|
|
1147
|
-
t.isDuplicate ? (
|
|
1148
|
-
|
|
1149
|
-
x(
|
|
1147
|
+
t.isDuplicate ? (S(), V("div", Gt, " NetSuite location being used by another FeedMe location. ")) : _("", !0),
|
|
1148
|
+
u.value.netsuiteId ? (S(), V("div", Wt, [
|
|
1149
|
+
x(g, {
|
|
1150
1150
|
name: "cloud",
|
|
1151
1151
|
color: "neutral-gray-400",
|
|
1152
1152
|
size: "md",
|
|
@@ -1154,9 +1154,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1154
1154
|
outline: ""
|
|
1155
1155
|
}),
|
|
1156
1156
|
a("div", $t, [
|
|
1157
|
-
a("span", en, j(
|
|
1158
|
-
a("span", tn, "ID: " + j(
|
|
1159
|
-
a("span", nn, "Subsidiary: " + j(
|
|
1157
|
+
a("span", en, j(u.value.name), 1),
|
|
1158
|
+
a("span", tn, "ID: " + j(u.value.netsuiteId), 1),
|
|
1159
|
+
a("span", nn, "Subsidiary: " + j(u.value.subsidiaryName), 1)
|
|
1160
1160
|
])
|
|
1161
1161
|
])) : _("", !0)
|
|
1162
1162
|
]);
|
|
@@ -1183,8 +1183,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1183
1183
|
}
|
|
1184
1184
|
},
|
|
1185
1185
|
emits: ["update:loading", "update:showDialog"],
|
|
1186
|
-
setup(F, { emit:
|
|
1187
|
-
const s = le(),
|
|
1186
|
+
setup(F, { emit: y }) {
|
|
1187
|
+
const s = le(), u = te(), n = [
|
|
1188
1188
|
{
|
|
1189
1189
|
id: "fmLocation",
|
|
1190
1190
|
header: "FeedMe Location",
|
|
@@ -1209,29 +1209,29 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1209
1209
|
id: "nsLocation",
|
|
1210
1210
|
header: "NetSuite Location",
|
|
1211
1211
|
cell(h) {
|
|
1212
|
-
const C = h.row.original, k = b.value[C.dbName],
|
|
1213
|
-
([
|
|
1212
|
+
const C = h.row.original, k = b.value[C.dbName], v = Object.entries(b.value).some(
|
|
1213
|
+
([f, d]) => f !== C.dbName && d.netsuiteId === (k == null ? void 0 : k.netsuiteId)
|
|
1214
1214
|
);
|
|
1215
1215
|
return D(on, {
|
|
1216
|
-
isDuplicate:
|
|
1217
|
-
nsLocationOptions:
|
|
1216
|
+
isDuplicate: v,
|
|
1217
|
+
nsLocationOptions: m.value,
|
|
1218
1218
|
modelValue: k,
|
|
1219
1219
|
fmLocation: C,
|
|
1220
|
-
"onUpdate:modelValue": (
|
|
1221
|
-
|
|
1220
|
+
"onUpdate:modelValue": (f) => {
|
|
1221
|
+
f.netsuiteId ? b.value = {
|
|
1222
1222
|
...b.value,
|
|
1223
1223
|
[C.dbName]: {
|
|
1224
|
-
netsuiteId:
|
|
1225
|
-
name:
|
|
1226
|
-
subsidiaryName:
|
|
1227
|
-
subsidiaryId:
|
|
1224
|
+
netsuiteId: f.netsuiteId,
|
|
1225
|
+
name: f.name,
|
|
1226
|
+
subsidiaryName: f.subsidiaryName,
|
|
1227
|
+
subsidiaryId: f.subsidiaryId
|
|
1228
1228
|
}
|
|
1229
1229
|
} : delete b.value[C.dbName];
|
|
1230
1230
|
}
|
|
1231
1231
|
});
|
|
1232
1232
|
}
|
|
1233
1233
|
}
|
|
1234
|
-
], t = F,
|
|
1234
|
+
], t = F, i = y, b = M({}), w = M(), g = M(""), m = z(() => t.nsLocationsNotBeingUsed.map((h) => ({
|
|
1235
1235
|
label: h.name,
|
|
1236
1236
|
value: h
|
|
1237
1237
|
}))), l = z(() => Object.values(b.value).length === 0 || Object.values(b.value).some(
|
|
@@ -1239,22 +1239,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1239
1239
|
));
|
|
1240
1240
|
async function r() {
|
|
1241
1241
|
try {
|
|
1242
|
-
|
|
1242
|
+
i("update:loading", !0), await s.updateLocationConfigs(b.value), u.open({
|
|
1243
1243
|
message: "Locations updated successfully",
|
|
1244
1244
|
type: "success"
|
|
1245
|
-
}),
|
|
1245
|
+
}), i("update:showDialog", !1);
|
|
1246
1246
|
} catch {
|
|
1247
|
-
|
|
1247
|
+
u.open({
|
|
1248
1248
|
message: "Failed to update locations. Please try again.",
|
|
1249
1249
|
type: "error"
|
|
1250
1250
|
});
|
|
1251
1251
|
} finally {
|
|
1252
|
-
|
|
1252
|
+
i("update:loading", !1);
|
|
1253
1253
|
}
|
|
1254
1254
|
}
|
|
1255
1255
|
return (h, C) => {
|
|
1256
|
-
const k = E("FmTable"),
|
|
1257
|
-
return
|
|
1256
|
+
const k = E("FmTable"), v = E("FmForm"), f = E("FmSpacer"), d = E("FmButton"), c = E("FmDialog");
|
|
1257
|
+
return S(), X(c, {
|
|
1258
1258
|
modelValue: F.showDialog,
|
|
1259
1259
|
"onUpdate:modelValue": C[2] || (C[2] = (A) => h.$emit("update:showDialog", A)),
|
|
1260
1260
|
overlay: !0,
|
|
@@ -1264,7 +1264,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1264
1264
|
a("div", null, "Add locations", -1)
|
|
1265
1265
|
])),
|
|
1266
1266
|
"dialog-footer": R(() => [
|
|
1267
|
-
x(
|
|
1267
|
+
x(f, { class: "sm:hidden xs:hidden" }),
|
|
1268
1268
|
x(d, {
|
|
1269
1269
|
class: "sm:w-full xs:w-full",
|
|
1270
1270
|
label: "Submit",
|
|
@@ -1274,19 +1274,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1274
1274
|
}, null, 8, ["disabled"])
|
|
1275
1275
|
]),
|
|
1276
1276
|
default: R(() => [
|
|
1277
|
-
x(
|
|
1277
|
+
x(v, {
|
|
1278
1278
|
ref: "formRef",
|
|
1279
1279
|
class: "mb-4",
|
|
1280
|
-
"model-value":
|
|
1281
|
-
"onUpdate:modelValue": C[1] || (C[1] = (A) =>
|
|
1280
|
+
"model-value": w.value,
|
|
1281
|
+
"onUpdate:modelValue": C[1] || (C[1] = (A) => w.value = A)
|
|
1282
1282
|
}, {
|
|
1283
1283
|
default: R(() => [
|
|
1284
1284
|
x(k, {
|
|
1285
|
-
modelValue:
|
|
1286
|
-
"onUpdate:modelValue": C[0] || (C[0] = (A) =>
|
|
1285
|
+
modelValue: w.value,
|
|
1286
|
+
"onUpdate:modelValue": C[0] || (C[0] = (A) => w.value = A),
|
|
1287
1287
|
"row-data": t.fmLocationNotYetConfigured,
|
|
1288
1288
|
"column-defs": n,
|
|
1289
|
-
"search-value":
|
|
1289
|
+
"search-value": g.value,
|
|
1290
1290
|
"shrink-at": !1
|
|
1291
1291
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1292
1292
|
]),
|
|
@@ -1309,26 +1309,26 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1309
1309
|
loading: { type: Boolean }
|
|
1310
1310
|
},
|
|
1311
1311
|
emits: ["update:setting", "update:show", "update:loading", "submit"],
|
|
1312
|
-
setup(F, { emit:
|
|
1313
|
-
const s = ie(),
|
|
1312
|
+
setup(F, { emit: y }) {
|
|
1313
|
+
const s = ie(), u = W(), n = M(!1), t = F, i = y, b = pe(ee(t.setting));
|
|
1314
1314
|
ve([() => t.show], ([d]) => {
|
|
1315
1315
|
if (d)
|
|
1316
1316
|
for (const c of Object.keys(t.setting))
|
|
1317
1317
|
b[c] = t.setting[c];
|
|
1318
1318
|
});
|
|
1319
|
-
const
|
|
1319
|
+
const w = M(), g = ae(t, "show"), m = M(), l = M(""), r = z(() => t.setting.locations.filter(
|
|
1320
1320
|
(d) => d.name.toLowerCase().includes(l.value.toLowerCase()) || d.netSuiteId.toLowerCase().includes(l.value.toLowerCase())
|
|
1321
1321
|
)), h = [
|
|
1322
1322
|
{
|
|
1323
1323
|
id: "location",
|
|
1324
1324
|
header: () => "FeedMe Location",
|
|
1325
1325
|
cell(d) {
|
|
1326
|
-
const c = d.row.original, A =
|
|
1326
|
+
const c = d.row.original, A = u.locations.find(
|
|
1327
1327
|
(e) => e.type === c.type && e.doc._id === c.id
|
|
1328
1328
|
);
|
|
1329
1329
|
if (!A)
|
|
1330
1330
|
return D("div", "Unknown Location");
|
|
1331
|
-
const
|
|
1331
|
+
const p = D(ne.FmIcon, {
|
|
1332
1332
|
name: A.type,
|
|
1333
1333
|
color: "neutral-gray-400",
|
|
1334
1334
|
size: "md",
|
|
@@ -1336,7 +1336,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1336
1336
|
outline: !0
|
|
1337
1337
|
});
|
|
1338
1338
|
return D("div", { class: "flex items-center" }, [
|
|
1339
|
-
|
|
1339
|
+
p,
|
|
1340
1340
|
D("div", { class: "flex flex-col" }, [
|
|
1341
1341
|
D("span", { class: "font-medium" }, A.name),
|
|
1342
1342
|
D("span", { class: "text-xs text-gray-400" }, A.doc._id)
|
|
@@ -1351,7 +1351,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1351
1351
|
var e;
|
|
1352
1352
|
const c = d.row.original, A = (e = t.nsLocations.find(
|
|
1353
1353
|
(o) => o.netsuiteId === c.netSuiteId
|
|
1354
|
-
)) == null ? void 0 : e.subsidiaryName,
|
|
1354
|
+
)) == null ? void 0 : e.subsidiaryName, p = D(ne.FmIcon, {
|
|
1355
1355
|
name: "cloud",
|
|
1356
1356
|
color: "neutral-gray-400",
|
|
1357
1357
|
size: "md",
|
|
@@ -1359,7 +1359,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1359
1359
|
outline: !0
|
|
1360
1360
|
});
|
|
1361
1361
|
return D("div", { class: "flex items-center" }, [
|
|
1362
|
-
|
|
1362
|
+
p,
|
|
1363
1363
|
D("div", { class: "flex flex-col" }, [
|
|
1364
1364
|
D("span", { class: "font-medium" }, c.name),
|
|
1365
1365
|
D("span", { class: "text-xs text-gray-400" }, `ID: ${c.netSuiteId}`),
|
|
@@ -1368,7 +1368,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1368
1368
|
]);
|
|
1369
1369
|
}
|
|
1370
1370
|
}
|
|
1371
|
-
], { t: C } =
|
|
1371
|
+
], { t: C } = P(), k = [
|
|
1372
1372
|
"Unit Type",
|
|
1373
1373
|
"Inventory Item",
|
|
1374
1374
|
"Location",
|
|
@@ -1377,18 +1377,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1377
1377
|
"Purchase Order",
|
|
1378
1378
|
"Transfer Order",
|
|
1379
1379
|
"Inventory Transfer"
|
|
1380
|
-
],
|
|
1380
|
+
], v = z(() => u.locations.filter(
|
|
1381
1381
|
(d) => !t.setting.locations.some(
|
|
1382
1382
|
(c) => c.id === d.doc._id && c.type === d.type
|
|
1383
1383
|
)
|
|
1384
|
-
)),
|
|
1384
|
+
)), f = z(() => t.nsLocations.filter(
|
|
1385
1385
|
(d) => !t.setting.locations.some((c) => c.netSuiteId === d.netsuiteId)
|
|
1386
1386
|
));
|
|
1387
1387
|
return (d, c) => {
|
|
1388
|
-
const A = E("FmChip"),
|
|
1389
|
-
return
|
|
1390
|
-
modelValue: I(
|
|
1391
|
-
"onUpdate:modelValue": c[6] || (c[6] = (L) => se(
|
|
1388
|
+
const A = E("FmChip"), p = E("FmSearch"), e = E("FmTable"), o = E("FmButton"), B = E("FmSideSheet");
|
|
1389
|
+
return S(), X(B, {
|
|
1390
|
+
modelValue: I(g),
|
|
1391
|
+
"onUpdate:modelValue": c[6] || (c[6] = (L) => se(g) ? g.value = L : null),
|
|
1392
1392
|
header: I(C)("inventory.integration.netsuite.title"),
|
|
1393
1393
|
"dismiss-away": "",
|
|
1394
1394
|
"close-button": "",
|
|
@@ -1397,10 +1397,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1397
1397
|
default: R(() => {
|
|
1398
1398
|
var L;
|
|
1399
1399
|
return [
|
|
1400
|
-
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (
|
|
1400
|
+
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (S(), V("div", ln, [
|
|
1401
1401
|
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
1402
|
a("div", rn, [
|
|
1403
|
-
(
|
|
1403
|
+
(S(), V(J, null, $(k, (N) => x(A, {
|
|
1404
1404
|
key: N,
|
|
1405
1405
|
label: N,
|
|
1406
1406
|
compact: ""
|
|
@@ -1409,7 +1409,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1409
1409
|
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
1410
|
c[9] || (c[9] = a("hr", { class: "my-3" }, null, -1)),
|
|
1411
1411
|
a("div", un, [
|
|
1412
|
-
x(
|
|
1412
|
+
x(p, {
|
|
1413
1413
|
placeholder: "Search by [NetSuite Location]",
|
|
1414
1414
|
class: "w-[300px]",
|
|
1415
1415
|
modelValue: l.value,
|
|
@@ -1417,23 +1417,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1417
1417
|
}, null, 8, ["modelValue"])
|
|
1418
1418
|
]),
|
|
1419
1419
|
x(e, {
|
|
1420
|
-
modelValue:
|
|
1421
|
-
"onUpdate:modelValue": c[1] || (c[1] = (N) =>
|
|
1420
|
+
modelValue: m.value,
|
|
1421
|
+
"onUpdate:modelValue": c[1] || (c[1] = (N) => m.value = N),
|
|
1422
1422
|
"row-data": r.value,
|
|
1423
1423
|
"column-defs": h,
|
|
1424
1424
|
"shrink-at": !1,
|
|
1425
1425
|
"search-value": l.value
|
|
1426
1426
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1427
|
-
])) : (
|
|
1427
|
+
])) : (S(), V("div", an, " Please contact your administrator to apply the changes. ")),
|
|
1428
1428
|
x(sn, {
|
|
1429
1429
|
"show-dialog": n.value,
|
|
1430
1430
|
"onUpdate:showDialog": [
|
|
1431
1431
|
c[2] || (c[2] = (N) => n.value = N),
|
|
1432
1432
|
c[3] || (c[3] = (N) => n.value = N)
|
|
1433
1433
|
],
|
|
1434
|
-
formRef:
|
|
1435
|
-
fmLocationNotYetConfigured:
|
|
1436
|
-
nsLocationsNotBeingUsed:
|
|
1434
|
+
formRef: w.value,
|
|
1435
|
+
fmLocationNotYetConfigured: v.value,
|
|
1436
|
+
nsLocationsNotBeingUsed: f.value
|
|
1437
1437
|
}, null, 8, ["show-dialog", "formRef", "fmLocationNotYetConfigured", "nsLocationsNotBeingUsed"])
|
|
1438
1438
|
];
|
|
1439
1439
|
}),
|
|
@@ -1448,7 +1448,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1448
1448
|
x(o, {
|
|
1449
1449
|
variant: "tertiary",
|
|
1450
1450
|
label: I(C)("common.close"),
|
|
1451
|
-
onClick: c[5] || (c[5] = (L) =>
|
|
1451
|
+
onClick: c[5] || (c[5] = (L) => i("update:show", !1))
|
|
1452
1452
|
}, null, 8, ["label"])
|
|
1453
1453
|
])
|
|
1454
1454
|
]),
|
|
@@ -1464,10 +1464,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1464
1464
|
},
|
|
1465
1465
|
emits: ["update:modelValue"],
|
|
1466
1466
|
setup(F) {
|
|
1467
|
-
const { t:
|
|
1467
|
+
const { t: y } = de(), s = Se(F, "modelValue"), u = [
|
|
1468
1468
|
{
|
|
1469
1469
|
id: "Code",
|
|
1470
|
-
header: () =>
|
|
1470
|
+
header: () => y("inventory.transfer.form.items.table.Code"),
|
|
1471
1471
|
accessorKey: "code",
|
|
1472
1472
|
size: 200,
|
|
1473
1473
|
cell(n) {
|
|
@@ -1493,7 +1493,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1493
1493
|
},
|
|
1494
1494
|
{
|
|
1495
1495
|
id: "Name",
|
|
1496
|
-
header: () =>
|
|
1496
|
+
header: () => y("inventory.transfer.form.items.table.Name"),
|
|
1497
1497
|
minSize: 300,
|
|
1498
1498
|
cell(n) {
|
|
1499
1499
|
const t = n.row.original;
|
|
@@ -1518,10 +1518,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1518
1518
|
},
|
|
1519
1519
|
{
|
|
1520
1520
|
id: "Amount",
|
|
1521
|
-
header: () =>
|
|
1521
|
+
header: () => y("inventory.transfer.form.items.table.Amount"),
|
|
1522
1522
|
minSize: 200,
|
|
1523
1523
|
cell(n) {
|
|
1524
|
-
const t = n.row.original,
|
|
1524
|
+
const t = n.row.original, i = n.row.index;
|
|
1525
1525
|
return D($e, {
|
|
1526
1526
|
style: {
|
|
1527
1527
|
flex: "1 1 0%"
|
|
@@ -1534,15 +1534,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1534
1534
|
unit: t.sku.unit,
|
|
1535
1535
|
"onUpdate:modelValue": (b) => {
|
|
1536
1536
|
if (!b) return;
|
|
1537
|
-
const
|
|
1537
|
+
const w = {
|
|
1538
1538
|
...t,
|
|
1539
1539
|
quantity: b.amount,
|
|
1540
1540
|
measurement: b.measurement
|
|
1541
1541
|
};
|
|
1542
1542
|
s.value = [
|
|
1543
|
-
...s.value.slice(0,
|
|
1544
|
-
|
|
1545
|
-
...s.value.slice(
|
|
1543
|
+
...s.value.slice(0, i),
|
|
1544
|
+
w,
|
|
1545
|
+
...s.value.slice(i + 1)
|
|
1546
1546
|
];
|
|
1547
1547
|
},
|
|
1548
1548
|
rules: [et(+Qe({ amount: 1, precision: 0 }))],
|
|
@@ -1555,7 +1555,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1555
1555
|
id: "Delete",
|
|
1556
1556
|
header: "",
|
|
1557
1557
|
cell(n) {
|
|
1558
|
-
const t = n.row.original,
|
|
1558
|
+
const t = n.row.original, i = n.row.index;
|
|
1559
1559
|
return D("div", { class: "flex justify-end" }, [
|
|
1560
1560
|
D(ne.FmButton, {
|
|
1561
1561
|
key: t.sku._id,
|
|
@@ -1565,7 +1565,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1565
1565
|
variant: "tertiary",
|
|
1566
1566
|
size: "md",
|
|
1567
1567
|
onClick: () => {
|
|
1568
|
-
s.value = [...s.value.slice(0,
|
|
1568
|
+
s.value = [...s.value.slice(0, i), ...s.value.slice(i + 1)];
|
|
1569
1569
|
}
|
|
1570
1570
|
})
|
|
1571
1571
|
]);
|
|
@@ -1579,12 +1579,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1579
1579
|
}
|
|
1580
1580
|
];
|
|
1581
1581
|
return (n, t) => {
|
|
1582
|
-
const
|
|
1583
|
-
return
|
|
1584
|
-
"column-defs":
|
|
1582
|
+
const i = E("FmTable");
|
|
1583
|
+
return S(), X(i, {
|
|
1584
|
+
"column-defs": u,
|
|
1585
1585
|
"row-data": s.value,
|
|
1586
1586
|
"row-key": (b) => b.sku._id,
|
|
1587
|
-
"empty-text": I(
|
|
1587
|
+
"empty-text": I(y)("inventory.transfer.form.items.table.empty"),
|
|
1588
1588
|
pagination: !1,
|
|
1589
1589
|
"virtual-scroll": { enabled: !0, itemSize: 48 }
|
|
1590
1590
|
}, null, 8, ["row-data", "row-key", "empty-text"]);
|
|
@@ -1593,41 +1593,41 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1593
1593
|
}), fn = { class: "flex items-center gap-8 mb-8" }, pn = /* @__PURE__ */ Y({
|
|
1594
1594
|
__name: "InventoryTransferOutTable",
|
|
1595
1595
|
setup(F) {
|
|
1596
|
-
const
|
|
1596
|
+
const y = M([]), s = ge(), u = M(!1), n = M(!1), t = te(), i = W();
|
|
1597
1597
|
fe(async () => {
|
|
1598
|
-
const
|
|
1599
|
-
l.setDate(l.getDate() - 30),
|
|
1598
|
+
const m = /* @__PURE__ */ new Date(), l = /* @__PURE__ */ new Date();
|
|
1599
|
+
l.setDate(l.getDate() - 30), u.value = !0;
|
|
1600
1600
|
try {
|
|
1601
1601
|
const r = await s.getInventoryTransferHistory(
|
|
1602
|
-
|
|
1602
|
+
i.currentLocationDBName,
|
|
1603
1603
|
l,
|
|
1604
|
-
|
|
1604
|
+
m
|
|
1605
1605
|
);
|
|
1606
|
-
|
|
1606
|
+
y.value = r;
|
|
1607
1607
|
} catch (r) {
|
|
1608
1608
|
console.error("Error fetching inventory transfer history:", r);
|
|
1609
1609
|
} finally {
|
|
1610
|
-
|
|
1610
|
+
u.value = !1;
|
|
1611
1611
|
}
|
|
1612
1612
|
});
|
|
1613
1613
|
async function b() {
|
|
1614
1614
|
try {
|
|
1615
|
-
n.value = !0, await s.manualSyncInventoryTransfer(
|
|
1615
|
+
n.value = !0, await s.manualSyncInventoryTransfer(i.currentLocationDBName), t == null || t.open({
|
|
1616
1616
|
title: "Sync Started",
|
|
1617
1617
|
message: "Inventory transfers sync queued successfully.",
|
|
1618
1618
|
type: "success"
|
|
1619
1619
|
});
|
|
1620
|
-
} catch (
|
|
1620
|
+
} catch (m) {
|
|
1621
1621
|
t == null || t.open({
|
|
1622
1622
|
title: "Sync Failed",
|
|
1623
|
-
message: `Failed to queue inventory transfers sync. ${
|
|
1623
|
+
message: `Failed to queue inventory transfers sync. ${m == null ? void 0 : m.message}`,
|
|
1624
1624
|
type: "error"
|
|
1625
1625
|
});
|
|
1626
1626
|
} finally {
|
|
1627
1627
|
n.value = !1;
|
|
1628
1628
|
}
|
|
1629
1629
|
}
|
|
1630
|
-
const
|
|
1630
|
+
const w = [
|
|
1631
1631
|
// {
|
|
1632
1632
|
// id: 'type',
|
|
1633
1633
|
// header: 'Type',
|
|
@@ -1638,8 +1638,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1638
1638
|
{
|
|
1639
1639
|
id: "destinationLocation",
|
|
1640
1640
|
header: "Destination Location",
|
|
1641
|
-
cell: (
|
|
1642
|
-
const l =
|
|
1641
|
+
cell: (m) => {
|
|
1642
|
+
const l = m.row.original.destinationLocation.netSuiteName;
|
|
1643
1643
|
return l ? D(
|
|
1644
1644
|
ne.FmTooltip,
|
|
1645
1645
|
{ zIndex: 51 },
|
|
@@ -1657,22 +1657,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1657
1657
|
{
|
|
1658
1658
|
id: "netsuite",
|
|
1659
1659
|
header: () => "NetSuite",
|
|
1660
|
-
cell(
|
|
1660
|
+
cell(m) {
|
|
1661
1661
|
return D("div", { class: "flex flex-col" }, [
|
|
1662
1662
|
D(
|
|
1663
1663
|
"span",
|
|
1664
1664
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1665
|
-
`ID: ${
|
|
1665
|
+
`ID: ${m.row.original.netsuiteId ?? "N/A"}`
|
|
1666
1666
|
),
|
|
1667
1667
|
D(
|
|
1668
1668
|
"span",
|
|
1669
1669
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1670
|
-
`Transaction ID: ${
|
|
1670
|
+
`Transaction ID: ${m.row.original.netsuiteTranId ?? "N/A"}`
|
|
1671
1671
|
),
|
|
1672
1672
|
D(
|
|
1673
1673
|
"span",
|
|
1674
1674
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1675
|
-
`Transaction Date: ${
|
|
1675
|
+
`Transaction Date: ${m.row.original.netsuiteTranDate ?? "N/A"}`
|
|
1676
1676
|
)
|
|
1677
1677
|
]);
|
|
1678
1678
|
}
|
|
@@ -1680,8 +1680,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1680
1680
|
{
|
|
1681
1681
|
id: "adjustment",
|
|
1682
1682
|
header: () => "Adjustment (FeedMe)",
|
|
1683
|
-
cell(
|
|
1684
|
-
const l =
|
|
1683
|
+
cell(m) {
|
|
1684
|
+
const l = m.row.original.adjustmentId;
|
|
1685
1685
|
return D("div", { class: "flex flex-col" }, [
|
|
1686
1686
|
D("span", { class: "fm-typo-en-body-sm-400" }, `ID: ${l ?? "N/A"}`),
|
|
1687
1687
|
D(
|
|
@@ -1695,8 +1695,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1695
1695
|
{
|
|
1696
1696
|
id: "items",
|
|
1697
1697
|
header: () => "Items",
|
|
1698
|
-
cell(
|
|
1699
|
-
const l =
|
|
1698
|
+
cell(m) {
|
|
1699
|
+
const l = m.row.original.items;
|
|
1700
1700
|
return D(
|
|
1701
1701
|
"div",
|
|
1702
1702
|
{ class: "overflow-auto" },
|
|
@@ -1713,10 +1713,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1713
1713
|
},
|
|
1714
1714
|
size: 150
|
|
1715
1715
|
}
|
|
1716
|
-
],
|
|
1717
|
-
return (
|
|
1716
|
+
], g = M();
|
|
1717
|
+
return (m, l) => {
|
|
1718
1718
|
const r = E("FmButton"), h = E("FmTable");
|
|
1719
|
-
return
|
|
1719
|
+
return S(), V(J, null, [
|
|
1720
1720
|
a("div", fn, [
|
|
1721
1721
|
l[1] || (l[1] = a("span", null, "Last 30 Days:", -1)),
|
|
1722
1722
|
x(r, {
|
|
@@ -1731,11 +1731,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1731
1731
|
}, null, 8, ["loading"])
|
|
1732
1732
|
]),
|
|
1733
1733
|
x(h, {
|
|
1734
|
-
modelValue:
|
|
1735
|
-
"onUpdate:modelValue": l[0] || (l[0] = (C) =>
|
|
1736
|
-
"row-data":
|
|
1737
|
-
"column-defs":
|
|
1738
|
-
loading:
|
|
1734
|
+
modelValue: g.value,
|
|
1735
|
+
"onUpdate:modelValue": l[0] || (l[0] = (C) => g.value = C),
|
|
1736
|
+
"row-data": y.value,
|
|
1737
|
+
"column-defs": w,
|
|
1738
|
+
loading: u.value
|
|
1739
1739
|
}, null, 8, ["modelValue", "row-data", "loading"])
|
|
1740
1740
|
], 64);
|
|
1741
1741
|
};
|
|
@@ -1760,12 +1760,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1760
1760
|
currentLocationSubsidiary: {}
|
|
1761
1761
|
},
|
|
1762
1762
|
setup(F) {
|
|
1763
|
-
const
|
|
1764
|
-
const A = s.currentLocationSetting,
|
|
1763
|
+
const y = ce(), s = le(), u = be(), n = ge(), t = te(), { t: i } = de(), b = M([]), w = [{ label: "Transfer Out" }, { label: "History" }], g = M(w[0]), m = M(!1), l = M(null), r = M(null), h = F, C = z(() => {
|
|
1764
|
+
const A = s.currentLocationSetting, p = s.configuredLocations;
|
|
1765
1765
|
return h.nsLocations.map((e) => ({
|
|
1766
1766
|
label: e.name,
|
|
1767
1767
|
value: e,
|
|
1768
|
-
disabled:
|
|
1768
|
+
disabled: p.some((o) => o.netSuiteId === e.netsuiteId) || e.subsidiaryId !== (A == null ? void 0 : A.subsidiaryId)
|
|
1769
1769
|
}));
|
|
1770
1770
|
}), k = z({
|
|
1771
1771
|
get() {
|
|
@@ -1776,23 +1776,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1776
1776
|
l.value = null;
|
|
1777
1777
|
return;
|
|
1778
1778
|
}
|
|
1779
|
-
const
|
|
1780
|
-
|
|
1779
|
+
const p = l.value ?? /* @__PURE__ */ new Date(), e = new Date(A);
|
|
1780
|
+
p.setFullYear(e.getFullYear(), e.getMonth(), e.getDate()), l.value = new Date(p);
|
|
1781
1781
|
}
|
|
1782
|
-
}),
|
|
1782
|
+
}), v = z({
|
|
1783
1783
|
get() {
|
|
1784
1784
|
if (!l.value) return null;
|
|
1785
|
-
const A = String(l.value.getHours()).padStart(2, "0"),
|
|
1786
|
-
return `${A}:${
|
|
1785
|
+
const A = String(l.value.getHours()).padStart(2, "0"), p = String(l.value.getMinutes()).padStart(2, "0");
|
|
1786
|
+
return `${A}:${p}`;
|
|
1787
1787
|
},
|
|
1788
1788
|
set(A) {
|
|
1789
1789
|
if (!A) return;
|
|
1790
|
-
const [
|
|
1791
|
-
o.setHours(
|
|
1790
|
+
const [p, e] = A.split(":").map(Number), o = l.value ?? /* @__PURE__ */ new Date();
|
|
1791
|
+
o.setHours(p, e), l.value = new Date(o);
|
|
1792
1792
|
}
|
|
1793
|
-
}),
|
|
1793
|
+
}), f = z(() => k.value && v.value && r.value && b.value.length > 0 && !m.value);
|
|
1794
1794
|
async function d() {
|
|
1795
|
-
if (
|
|
1795
|
+
if (f.value) {
|
|
1796
1796
|
if (!h.currentLocationSetting) {
|
|
1797
1797
|
t.open({
|
|
1798
1798
|
message: "Current location setting is not available",
|
|
@@ -1800,15 +1800,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1800
1800
|
});
|
|
1801
1801
|
return;
|
|
1802
1802
|
}
|
|
1803
|
-
|
|
1803
|
+
m.value = !0;
|
|
1804
1804
|
try {
|
|
1805
1805
|
const A = {
|
|
1806
1806
|
items: b.value,
|
|
1807
1807
|
date: l.value.toISOString(),
|
|
1808
1808
|
netsuiteLocationId: r.value.netsuiteId,
|
|
1809
1809
|
netsuiteLocationName: r.value.name
|
|
1810
|
-
},
|
|
1811
|
-
await n.createInventoryTransfer(
|
|
1810
|
+
}, p = `${h.currentLocationSetting.type}_${h.currentLocationSetting.id}`;
|
|
1811
|
+
await n.createInventoryTransfer(p, A), b.value = [], l.value = null, r.value = null, t.open({
|
|
1812
1812
|
message: "Inventort transfer created successfully",
|
|
1813
1813
|
type: "success"
|
|
1814
1814
|
});
|
|
@@ -1818,12 +1818,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1818
1818
|
type: "error"
|
|
1819
1819
|
});
|
|
1820
1820
|
} finally {
|
|
1821
|
-
|
|
1821
|
+
m.value = !1;
|
|
1822
1822
|
}
|
|
1823
1823
|
}
|
|
1824
1824
|
}
|
|
1825
1825
|
function c() {
|
|
1826
|
-
const A = s.currentLocationSubsidiary(),
|
|
1826
|
+
const A = s.currentLocationSubsidiary(), p = s.getAvailableItems(A.id), e = u.skus.filter((L) => p.includes(L._id)).map((L) => L._id), o = u.skus.map(
|
|
1827
1827
|
(L) => ({
|
|
1828
1828
|
label: L.name,
|
|
1829
1829
|
sublabel: L.code,
|
|
@@ -1834,8 +1834,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1834
1834
|
var N;
|
|
1835
1835
|
return (N = b.value) == null ? void 0 : N.find((H) => H.sku._id === L.value._id);
|
|
1836
1836
|
}).map((L) => L.value);
|
|
1837
|
-
|
|
1838
|
-
title:
|
|
1837
|
+
y.open({
|
|
1838
|
+
title: i("inventory.transfer.form.items.selectItem"),
|
|
1839
1839
|
closeButton: !0,
|
|
1840
1840
|
contentComponent: Ye,
|
|
1841
1841
|
contentComponentProps: {
|
|
@@ -1844,11 +1844,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1844
1844
|
virtualScroll: !0
|
|
1845
1845
|
},
|
|
1846
1846
|
primaryActions: {
|
|
1847
|
-
text:
|
|
1847
|
+
text: i("common.confirm"),
|
|
1848
1848
|
close: !0
|
|
1849
1849
|
},
|
|
1850
1850
|
secondaryActions: {
|
|
1851
|
-
text:
|
|
1851
|
+
text: i("common.close"),
|
|
1852
1852
|
close: !0,
|
|
1853
1853
|
variant: "tertiary"
|
|
1854
1854
|
}
|
|
@@ -1868,19 +1868,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1868
1868
|
H.sort((U, O) => U.sku.code.localeCompare(O.sku.code)), b.value = H;
|
|
1869
1869
|
});
|
|
1870
1870
|
}
|
|
1871
|
-
return (A,
|
|
1871
|
+
return (A, p) => {
|
|
1872
1872
|
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
|
|
1873
|
+
return S(), V("div", vn, [
|
|
1874
1874
|
x(e, {
|
|
1875
|
-
modelValue:
|
|
1876
|
-
"onUpdate:modelValue":
|
|
1877
|
-
items:
|
|
1875
|
+
modelValue: g.value,
|
|
1876
|
+
"onUpdate:modelValue": p[0] || (p[0] = (T) => g.value = T),
|
|
1877
|
+
items: w
|
|
1878
1878
|
}, null, 8, ["modelValue"]),
|
|
1879
|
-
|
|
1880
|
-
I(s).inventoryTransferOutEnabled ? (
|
|
1879
|
+
g.value.label === "Transfer Out" ? (S(), V(J, { key: 0 }, [
|
|
1880
|
+
I(s).inventoryTransferOutEnabled ? (S(), V("div", gn, [
|
|
1881
1881
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1882
|
-
default: R(() =>
|
|
1883
|
-
|
|
1882
|
+
default: R(() => p[6] || (p[6] = [
|
|
1883
|
+
q("Type")
|
|
1884
1884
|
])),
|
|
1885
1885
|
_: 1
|
|
1886
1886
|
}),
|
|
@@ -1889,14 +1889,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1889
1889
|
disabled: "",
|
|
1890
1890
|
"prepend-icon": "lock"
|
|
1891
1891
|
}, {
|
|
1892
|
-
default: R(() =>
|
|
1893
|
-
|
|
1892
|
+
default: R(() => p[7] || (p[7] = [
|
|
1893
|
+
q("Transfer out")
|
|
1894
1894
|
])),
|
|
1895
1895
|
_: 1
|
|
1896
1896
|
}),
|
|
1897
1897
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1898
|
-
default: R(() =>
|
|
1899
|
-
|
|
1898
|
+
default: R(() => p[8] || (p[8] = [
|
|
1899
|
+
q("Subsidiary")
|
|
1900
1900
|
])),
|
|
1901
1901
|
_: 1
|
|
1902
1902
|
}),
|
|
@@ -1906,47 +1906,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1906
1906
|
"prepend-icon": "lock"
|
|
1907
1907
|
}, {
|
|
1908
1908
|
default: R(() => [
|
|
1909
|
-
|
|
1909
|
+
q(j(A.currentLocationSubsidiary.fullName), 1)
|
|
1910
1910
|
]),
|
|
1911
1911
|
_: 1
|
|
1912
1912
|
}),
|
|
1913
1913
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1914
|
-
default: R(() =>
|
|
1915
|
-
|
|
1914
|
+
default: R(() => p[9] || (p[9] = [
|
|
1915
|
+
q("Transaction date")
|
|
1916
1916
|
])),
|
|
1917
1917
|
_: 1
|
|
1918
1918
|
}),
|
|
1919
1919
|
x(L, {
|
|
1920
1920
|
modelValue: k.value,
|
|
1921
|
-
"onUpdate:modelValue":
|
|
1921
|
+
"onUpdate:modelValue": p[1] || (p[1] = (T) => k.value = T)
|
|
1922
1922
|
}, null, 8, ["modelValue"]),
|
|
1923
1923
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1924
|
-
default: R(() =>
|
|
1925
|
-
|
|
1924
|
+
default: R(() => p[10] || (p[10] = [
|
|
1925
|
+
q("Transaction time")
|
|
1926
1926
|
])),
|
|
1927
1927
|
_: 1
|
|
1928
1928
|
}),
|
|
1929
1929
|
x(N, {
|
|
1930
|
-
modelValue:
|
|
1931
|
-
"onUpdate:modelValue":
|
|
1930
|
+
modelValue: v.value,
|
|
1931
|
+
"onUpdate:modelValue": p[2] || (p[2] = (T) => v.value = T)
|
|
1932
1932
|
}, null, 8, ["modelValue"]),
|
|
1933
1933
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1934
|
-
default: R(() =>
|
|
1935
|
-
|
|
1934
|
+
default: R(() => p[11] || (p[11] = [
|
|
1935
|
+
q("NetSuite Location")
|
|
1936
1936
|
])),
|
|
1937
1937
|
_: 1
|
|
1938
1938
|
}),
|
|
1939
1939
|
a("div", yn, [
|
|
1940
|
-
r.value ? _("", !0) : (
|
|
1940
|
+
r.value ? _("", !0) : (S(), X(H, {
|
|
1941
1941
|
key: 0,
|
|
1942
1942
|
class: "my-4 w-full",
|
|
1943
1943
|
modelValue: r.value,
|
|
1944
|
-
"onUpdate:modelValue":
|
|
1944
|
+
"onUpdate:modelValue": p[3] || (p[3] = (T) => r.value = T),
|
|
1945
1945
|
searchable: "",
|
|
1946
1946
|
searchTarget: "label",
|
|
1947
1947
|
items: C.value
|
|
1948
1948
|
}, null, 8, ["modelValue", "items"])),
|
|
1949
|
-
r.value ? (
|
|
1949
|
+
r.value ? (S(), V("div", An, [
|
|
1950
1950
|
x(U, {
|
|
1951
1951
|
name: "cloud",
|
|
1952
1952
|
color: "neutral-gray-400",
|
|
@@ -1963,7 +1963,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1963
1963
|
class: "ml-2",
|
|
1964
1964
|
variant: "secondary",
|
|
1965
1965
|
label: "Clear",
|
|
1966
|
-
onClick:
|
|
1966
|
+
onClick: p[4] || (p[4] = (T) => r.value = null)
|
|
1967
1967
|
})
|
|
1968
1968
|
])) : _("", !0)
|
|
1969
1969
|
]),
|
|
@@ -1978,7 +1978,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1978
1978
|
]),
|
|
1979
1979
|
x(mn, {
|
|
1980
1980
|
modelValue: b.value,
|
|
1981
|
-
"onUpdate:modelValue":
|
|
1981
|
+
"onUpdate:modelValue": p[5] || (p[5] = (T) => b.value = T)
|
|
1982
1982
|
}, null, 8, ["modelValue"]),
|
|
1983
1983
|
a("div", wn, [
|
|
1984
1984
|
x(O, {
|
|
@@ -1986,21 +1986,21 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1986
1986
|
variant: "primary",
|
|
1987
1987
|
"prepend-icon": "add",
|
|
1988
1988
|
label: "Create",
|
|
1989
|
-
disabled: !
|
|
1990
|
-
loading:
|
|
1989
|
+
disabled: !f.value,
|
|
1990
|
+
loading: m.value,
|
|
1991
1991
|
onClick: d
|
|
1992
1992
|
}, null, 8, ["disabled", "loading"])
|
|
1993
1993
|
])
|
|
1994
|
-
])) : (
|
|
1994
|
+
])) : (S(), V("div", kn, [
|
|
1995
1995
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1996
|
-
default: R(() =>
|
|
1997
|
-
|
|
1996
|
+
default: R(() => p[12] || (p[12] = [
|
|
1997
|
+
q(" Feature is not enabled. Please contact your administrator. ")
|
|
1998
1998
|
])),
|
|
1999
1999
|
_: 1
|
|
2000
2000
|
})
|
|
2001
2001
|
]))
|
|
2002
2002
|
], 64)) : _("", !0),
|
|
2003
|
-
|
|
2003
|
+
g.value.label === "History" ? (S(), V("div", Bn, [
|
|
2004
2004
|
x(pn)
|
|
2005
2005
|
])) : _("", !0)
|
|
2006
2006
|
]);
|
|
@@ -2017,42 +2017,78 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2017
2017
|
currentLocationSubsidiary: {}
|
|
2018
2018
|
},
|
|
2019
2019
|
setup(F) {
|
|
2020
|
-
ce();
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
i.value = !0;
|
|
2020
|
+
const y = ce(), s = ge(), u = te(), n = M(!1), t = F, i = M([]);
|
|
2021
|
+
async function b() {
|
|
2022
|
+
var g;
|
|
2023
|
+
n.value = !0;
|
|
2025
2024
|
try {
|
|
2026
|
-
const
|
|
2027
|
-
|
|
2025
|
+
const m = ((g = t.currentLocationSetting) == null ? void 0 : g.id) || "", l = await s.getUnSyncTransferInOrders(m);
|
|
2026
|
+
i.value = l, u.open({
|
|
2028
2027
|
message: "Check unsync transfer in order successfully",
|
|
2029
2028
|
type: "success"
|
|
2030
2029
|
});
|
|
2031
2030
|
} catch {
|
|
2032
|
-
|
|
2031
|
+
u.open({
|
|
2033
2032
|
message: "Failed to check unsync transfer in order",
|
|
2034
2033
|
type: "error"
|
|
2035
2034
|
});
|
|
2036
2035
|
} finally {
|
|
2037
|
-
|
|
2036
|
+
n.value = !1;
|
|
2038
2037
|
}
|
|
2039
2038
|
}
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2039
|
+
async function w() {
|
|
2040
|
+
if (i.value.length === 0) {
|
|
2041
|
+
u.open({
|
|
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, [
|
|
2043
2071
|
a("span", null, "Current date and time: " + j((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
2044
|
-
x(
|
|
2072
|
+
x(l, {
|
|
2045
2073
|
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
2046
2074
|
variant: "primary",
|
|
2047
|
-
onClick:
|
|
2048
|
-
disabled:
|
|
2049
|
-
loading:
|
|
2075
|
+
onClick: b,
|
|
2076
|
+
disabled: n.value,
|
|
2077
|
+
loading: n.value
|
|
2050
2078
|
}, null, 8, ["disabled", "loading"]),
|
|
2051
|
-
|
|
2052
|
-
|
|
2079
|
+
i.value.length > 0 ? (S(), V("div", Fn, [
|
|
2080
|
+
m[0] || (m[0] = a("p", null, "Transfer Order NetSuite ID not match with existing orders", -1)),
|
|
2053
2081
|
a("ul", Ln, [
|
|
2054
|
-
(
|
|
2055
|
-
])
|
|
2082
|
+
(S(!0), V(J, null, $(i.value, (r) => (S(), V("li", { key: r }, j(r), 1))), 128))
|
|
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)
|
|
2056
2092
|
])) : _("", !0)
|
|
2057
2093
|
]);
|
|
2058
2094
|
};
|
|
@@ -2065,9 +2101,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2065
2101
|
loading: { type: Boolean }
|
|
2066
2102
|
},
|
|
2067
2103
|
emits: ["update:show"],
|
|
2068
|
-
setup(F, { emit:
|
|
2104
|
+
setup(F, { emit: y }) {
|
|
2069
2105
|
var k;
|
|
2070
|
-
const s = ie(),
|
|
2106
|
+
const s = ie(), u = le(), n = F, t = ae(n, "show"), { t: i } = P(), b = y, w = W(), g = ((k = w._currentLocation) == null ? void 0 : k.type) || "", m = [
|
|
2071
2107
|
{
|
|
2072
2108
|
label: "Inventory Transfer (Out)",
|
|
2073
2109
|
value: "inventoryTransfer"
|
|
@@ -2078,42 +2114,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2078
2114
|
value: "transferOrder"
|
|
2079
2115
|
/* TRANSFER_ORDER */
|
|
2080
2116
|
}
|
|
2081
|
-
], l = M(
|
|
2082
|
-
(
|
|
2117
|
+
], l = M(m[0].value), r = z(() => u.currentLocationSubsidiary()), h = z(() => u.currentLocationSetting), C = z(() => n.nsLocations.filter(
|
|
2118
|
+
(v) => v.subsidiaryId === r.value.id || v.netsuiteId === r.value.id
|
|
2083
2119
|
));
|
|
2084
|
-
return (
|
|
2120
|
+
return (v, f) => {
|
|
2085
2121
|
var e;
|
|
2086
|
-
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"),
|
|
2087
|
-
return
|
|
2122
|
+
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"), p = E("FmSideSheet");
|
|
2123
|
+
return S(), X(p, {
|
|
2088
2124
|
modelValue: I(t),
|
|
2089
|
-
"onUpdate:modelValue":
|
|
2125
|
+
"onUpdate:modelValue": f[2] || (f[2] = (o) => se(t) ? t.value = o : null),
|
|
2090
2126
|
header: "Data migration (Xilnex)",
|
|
2091
2127
|
"dismiss-away": "",
|
|
2092
2128
|
"close-button": "",
|
|
2093
2129
|
"max-width": 800
|
|
2094
2130
|
}, oe({
|
|
2095
2131
|
default: R(() => [
|
|
2096
|
-
I(
|
|
2097
|
-
l.value === "inventoryTransfer" ? (
|
|
2132
|
+
I(u).isCurrentLocationBindedToNetSuite ? (S(), V(J, { key: 1 }, [
|
|
2133
|
+
l.value === "inventoryTransfer" ? (S(), X(Cn, {
|
|
2098
2134
|
key: 0,
|
|
2099
2135
|
currentLocationSetting: h.value,
|
|
2100
2136
|
nsLocations: C.value,
|
|
2101
2137
|
currentLocationSubsidiary: r.value
|
|
2102
2138
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0),
|
|
2103
|
-
l.value === "transferOrder" ? (
|
|
2139
|
+
l.value === "transferOrder" ? (S(), X(Vn, {
|
|
2104
2140
|
key: 1,
|
|
2105
2141
|
currentLocationSetting: h.value,
|
|
2106
2142
|
nsLocations: C.value,
|
|
2107
2143
|
currentLocationSubsidiary: r.value
|
|
2108
2144
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0)
|
|
2109
|
-
], 64)) : (
|
|
2145
|
+
], 64)) : (S(), V("div", On, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
2110
2146
|
]),
|
|
2111
2147
|
"side-sheet-footer": R(() => [
|
|
2112
2148
|
a("div", jn, [
|
|
2113
2149
|
x(A, {
|
|
2114
2150
|
variant: "tertiary",
|
|
2115
|
-
label: I(
|
|
2116
|
-
onClick:
|
|
2151
|
+
label: I(i)("common.close"),
|
|
2152
|
+
onClick: f[1] || (f[1] = (o) => b("update:show", !1))
|
|
2117
2153
|
}, null, 8, ["label"])
|
|
2118
2154
|
])
|
|
2119
2155
|
]),
|
|
@@ -2126,19 +2162,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2126
2162
|
return [
|
|
2127
2163
|
a("div", Nn, [
|
|
2128
2164
|
a("div", Dn, [
|
|
2129
|
-
|
|
2165
|
+
f[3] || (f[3] = a("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
2130
2166
|
a("div", Rn, [
|
|
2131
2167
|
x(d, {
|
|
2132
|
-
name: I(
|
|
2168
|
+
name: I(g),
|
|
2133
2169
|
size: "sm"
|
|
2134
2170
|
}, null, 8, ["name"]),
|
|
2135
|
-
a("div", Mn, j((o = I(
|
|
2171
|
+
a("div", Mn, j((o = I(w)._currentLocation) == null ? void 0 : o.name), 1)
|
|
2136
2172
|
])
|
|
2137
2173
|
]),
|
|
2138
2174
|
x(c, {
|
|
2139
2175
|
"model-value": l.value,
|
|
2140
|
-
"onUpdate:modelValue":
|
|
2141
|
-
items:
|
|
2176
|
+
"onUpdate:modelValue": f[0] || (f[0] = (B) => l.value = B),
|
|
2177
|
+
items: m
|
|
2142
2178
|
}, null, 8, ["model-value"])
|
|
2143
2179
|
])
|
|
2144
2180
|
];
|
|
@@ -2151,47 +2187,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2151
2187
|
}), 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({
|
|
2152
2188
|
__name: "NetSuite",
|
|
2153
2189
|
setup(F) {
|
|
2154
|
-
const
|
|
2190
|
+
const y = le(), s = te(), u = M(!1), n = M(!1);
|
|
2155
2191
|
async function t() {
|
|
2156
2192
|
n.value = !0;
|
|
2157
2193
|
}
|
|
2158
|
-
const
|
|
2194
|
+
const i = M([]);
|
|
2159
2195
|
ze(async () => {
|
|
2160
|
-
if (
|
|
2161
|
-
|
|
2196
|
+
if (y.isReady && y.isEnabled) {
|
|
2197
|
+
u.value = !0;
|
|
2162
2198
|
try {
|
|
2163
|
-
const
|
|
2164
|
-
|
|
2199
|
+
const w = await y.getNetSuiteLocationOptions();
|
|
2200
|
+
i.value = w;
|
|
2165
2201
|
} catch {
|
|
2166
2202
|
s.open({
|
|
2167
2203
|
message: "Failed to fetch NetSuite locations",
|
|
2168
2204
|
type: "error"
|
|
2169
2205
|
});
|
|
2170
2206
|
} finally {
|
|
2171
|
-
|
|
2207
|
+
u.value = !1;
|
|
2172
2208
|
}
|
|
2173
2209
|
}
|
|
2174
2210
|
});
|
|
2175
|
-
const { t: b } =
|
|
2176
|
-
return (
|
|
2177
|
-
const
|
|
2178
|
-
return I(
|
|
2211
|
+
const { t: b } = P();
|
|
2212
|
+
return (w, g) => {
|
|
2213
|
+
const m = E("FmCardSection"), l = E("FmCard");
|
|
2214
|
+
return I(y).isEnabled ? (S(), V(J, { key: 0 }, [
|
|
2179
2215
|
x(l, {
|
|
2180
|
-
class:
|
|
2216
|
+
class: Z({
|
|
2181
2217
|
"w-full": !0,
|
|
2182
2218
|
border: !0,
|
|
2183
2219
|
"border-fm-color-neutral-gray-100": !0,
|
|
2184
2220
|
"cursor-pointer": !0,
|
|
2185
2221
|
"hover:border-fm-color-primary": !0
|
|
2186
2222
|
}),
|
|
2187
|
-
onClick:
|
|
2223
|
+
onClick: g[0] || (g[0] = (r) => t())
|
|
2188
2224
|
}, {
|
|
2189
2225
|
default: R(() => [
|
|
2190
|
-
x(
|
|
2226
|
+
x(m, null, {
|
|
2191
2227
|
default: R(() => [
|
|
2192
2228
|
a("div", zn, [
|
|
2193
2229
|
a("img", {
|
|
2194
|
-
src: I(
|
|
2230
|
+
src: I(qt),
|
|
2195
2231
|
alt: "NetSuite"
|
|
2196
2232
|
}, null, 8, Hn)
|
|
2197
2233
|
]),
|
|
@@ -2205,36 +2241,36 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2205
2241
|
]),
|
|
2206
2242
|
_: 1
|
|
2207
2243
|
}),
|
|
2208
|
-
I(
|
|
2244
|
+
I(y).state.setting ? (S(), X(ue, {
|
|
2209
2245
|
key: 0,
|
|
2210
2246
|
to: "body"
|
|
2211
2247
|
}, [
|
|
2212
|
-
I(
|
|
2248
|
+
I(y).isBusinessLocation ? (S(), X(dn, {
|
|
2213
2249
|
key: 0,
|
|
2214
|
-
setting: I(
|
|
2215
|
-
"onUpdate:setting":
|
|
2216
|
-
nsLocations:
|
|
2217
|
-
"onUpdate:nsLocations":
|
|
2250
|
+
setting: I(y).state.setting,
|
|
2251
|
+
"onUpdate:setting": g[1] || (g[1] = (r) => I(y).state.setting = r),
|
|
2252
|
+
nsLocations: i.value,
|
|
2253
|
+
"onUpdate:nsLocations": g[2] || (g[2] = (r) => i.value = r),
|
|
2218
2254
|
show: n.value,
|
|
2219
2255
|
"onUpdate:show": [
|
|
2220
|
-
|
|
2221
|
-
|
|
2256
|
+
g[3] || (g[3] = (r) => n.value = r),
|
|
2257
|
+
g[4] || (g[4] = (r) => n.value = r)
|
|
2222
2258
|
],
|
|
2223
|
-
loading:
|
|
2224
|
-
"onUpdate:loading":
|
|
2225
|
-
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (
|
|
2259
|
+
loading: u.value,
|
|
2260
|
+
"onUpdate:loading": g[5] || (g[5] = (r) => u.value = r)
|
|
2261
|
+
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (S(), X(Tn, {
|
|
2226
2262
|
key: 1,
|
|
2227
|
-
setting: I(
|
|
2228
|
-
"onUpdate:setting":
|
|
2229
|
-
nsLocations:
|
|
2230
|
-
"onUpdate:nsLocations":
|
|
2263
|
+
setting: I(y).state.setting,
|
|
2264
|
+
"onUpdate:setting": g[6] || (g[6] = (r) => I(y).state.setting = r),
|
|
2265
|
+
nsLocations: i.value,
|
|
2266
|
+
"onUpdate:nsLocations": g[7] || (g[7] = (r) => i.value = r),
|
|
2231
2267
|
show: n.value,
|
|
2232
2268
|
"onUpdate:show": [
|
|
2233
|
-
|
|
2234
|
-
|
|
2269
|
+
g[8] || (g[8] = (r) => n.value = r),
|
|
2270
|
+
g[9] || (g[9] = (r) => n.value = r)
|
|
2235
2271
|
],
|
|
2236
|
-
loading:
|
|
2237
|
-
"onUpdate:loading":
|
|
2272
|
+
loading: u.value,
|
|
2273
|
+
"onUpdate:loading": g[10] || (g[10] = (r) => u.value = r)
|
|
2238
2274
|
}, null, 8, ["setting", "nsLocations", "show", "loading"]))
|
|
2239
2275
|
])) : _("", !0)
|
|
2240
2276
|
], 64)) : _("", !0);
|
|
@@ -2257,47 +2293,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2257
2293
|
"schemeFranchiseePrice",
|
|
2258
2294
|
"physicalSchemeTotalFranchiseePrice"
|
|
2259
2295
|
];
|
|
2260
|
-
async function Yn(F,
|
|
2261
|
-
var
|
|
2262
|
-
const
|
|
2263
|
-
for (const b in
|
|
2264
|
-
const
|
|
2265
|
-
for (let
|
|
2266
|
-
const
|
|
2296
|
+
async function Yn(F, y, s) {
|
|
2297
|
+
var i;
|
|
2298
|
+
const u = await Jn(s), n = [], t = {};
|
|
2299
|
+
for (const b in u) {
|
|
2300
|
+
const w = u[b];
|
|
2301
|
+
for (let g = 0; g < w.length; g++) {
|
|
2302
|
+
const m = w[g], l = m.itemCode, r = m.itemName, h = m.physicalQty, C = m.customCost;
|
|
2267
2303
|
if (l === "" || l === "undefined") {
|
|
2268
2304
|
n.push({
|
|
2269
|
-
row:
|
|
2305
|
+
row: m.excelRow,
|
|
2270
2306
|
itemCode: l,
|
|
2271
2307
|
itemName: r,
|
|
2272
2308
|
message: "Item code is empty or undefined"
|
|
2273
2309
|
});
|
|
2274
2310
|
continue;
|
|
2275
2311
|
}
|
|
2276
|
-
const k =
|
|
2312
|
+
const k = y.find((A) => A.code === l);
|
|
2277
2313
|
if (!k) {
|
|
2278
2314
|
n.push({
|
|
2279
|
-
row:
|
|
2315
|
+
row: m.excelRow,
|
|
2280
2316
|
itemCode: l,
|
|
2281
2317
|
itemName: r,
|
|
2282
2318
|
qty: h,
|
|
2283
2319
|
message: "Item not found in inventory"
|
|
2284
|
-
}), console.error(`${
|
|
2320
|
+
}), console.error(`${m.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2285
2321
|
continue;
|
|
2286
2322
|
}
|
|
2287
|
-
let
|
|
2288
|
-
const
|
|
2289
|
-
|
|
2290
|
-
const d =
|
|
2323
|
+
let v = Number(m.totalPhysicalCustomCost);
|
|
2324
|
+
const f = F[k._id];
|
|
2325
|
+
f && (v = f * Number(h));
|
|
2326
|
+
const d = G.fromNumber(Number(h)), c = {
|
|
2291
2327
|
amount: d,
|
|
2292
2328
|
cost: {
|
|
2293
|
-
...
|
|
2329
|
+
...G.fromNumber(Number(v)),
|
|
2294
2330
|
currency: "MYR"
|
|
2295
2331
|
}
|
|
2296
2332
|
};
|
|
2297
|
-
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[
|
|
2333
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[i = k._id] ?? (t[i] = {
|
|
2298
2334
|
skuAdjustment: {
|
|
2299
2335
|
sku: k,
|
|
2300
|
-
fromBalance:
|
|
2336
|
+
fromBalance: G.fromNumber(0),
|
|
2301
2337
|
amounts: [
|
|
2302
2338
|
{
|
|
2303
2339
|
_id: null,
|
|
@@ -2326,44 +2362,44 @@ async function Yn(F, g, s) {
|
|
|
2326
2362
|
};
|
|
2327
2363
|
}
|
|
2328
2364
|
async function Jn(F) {
|
|
2329
|
-
const
|
|
2365
|
+
const y = await new Promise((t, i) => {
|
|
2330
2366
|
const b = new FileReader();
|
|
2331
|
-
b.onload = (
|
|
2332
|
-
}), s = ke(
|
|
2333
|
-
for (const t of
|
|
2334
|
-
const
|
|
2335
|
-
n[t] =
|
|
2367
|
+
b.onload = (w) => t(w.target.result), b.onerror = i, b.readAsArrayBuffer(F);
|
|
2368
|
+
}), s = ke(y, { type: "array" }), u = s.SheetNames, n = {};
|
|
2369
|
+
for (const t of u) {
|
|
2370
|
+
const i = await Kn(s.Sheets[t]);
|
|
2371
|
+
n[t] = i;
|
|
2336
2372
|
}
|
|
2337
2373
|
return n;
|
|
2338
2374
|
}
|
|
2339
2375
|
async function Kn(F) {
|
|
2340
|
-
const
|
|
2376
|
+
const y = Be.sheet_to_json(F, {
|
|
2341
2377
|
header: xe,
|
|
2342
2378
|
range: 12
|
|
2343
2379
|
}), s = [];
|
|
2344
|
-
for (let
|
|
2345
|
-
const n =
|
|
2346
|
-
for (const
|
|
2347
|
-
t[
|
|
2380
|
+
for (let u = 0; u < y.length; u++) {
|
|
2381
|
+
const n = y[u], t = {};
|
|
2382
|
+
for (const i of xe)
|
|
2383
|
+
t[i] = String(n[i]).trim();
|
|
2348
2384
|
s.push({
|
|
2349
2385
|
...t,
|
|
2350
|
-
excelRow:
|
|
2386
|
+
excelRow: u + 13
|
|
2351
2387
|
// Excel rows start from 1, and we skip the first 12 rows
|
|
2352
2388
|
});
|
|
2353
2389
|
}
|
|
2354
2390
|
return s;
|
|
2355
2391
|
}
|
|
2356
|
-
const
|
|
2392
|
+
const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn = {
|
|
2357
2393
|
key: 0,
|
|
2358
2394
|
class: "flex flex-col gap-4 my-5"
|
|
2359
|
-
},
|
|
2360
|
-
class: /* @__PURE__ */
|
|
2395
|
+
}, Gn = { class: "flex flex-col gap-8" }, Wn = { class: "flex flex-col gap-8" }, $n = {
|
|
2396
|
+
class: /* @__PURE__ */ Z(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
2361
2397
|
}, eo = {
|
|
2362
|
-
class: /* @__PURE__ */
|
|
2398
|
+
class: /* @__PURE__ */ Z(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
2363
2399
|
}, 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({
|
|
2364
2400
|
__name: "XilnexOpeningImport",
|
|
2365
2401
|
setup(F) {
|
|
2366
|
-
const
|
|
2402
|
+
const y = Pe(), s = le(), u = be(), n = Ce(), t = te(), i = z(() => [
|
|
2367
2403
|
{
|
|
2368
2404
|
value: "xilnex",
|
|
2369
2405
|
label: "Xilnex",
|
|
@@ -2378,7 +2414,7 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2378
2414
|
disabledReason: "Current location is not binded to NetSuite"
|
|
2379
2415
|
}
|
|
2380
2416
|
] : []
|
|
2381
|
-
]), b = M(
|
|
2417
|
+
]), b = M(i.value[0].value), { t: w } = de(), g = M(null), m = M(), l = M(""), r = M([]), h = M([]), C = [
|
|
2382
2418
|
{
|
|
2383
2419
|
id: "ingredient",
|
|
2384
2420
|
header: () => "Ingredient",
|
|
@@ -2401,7 +2437,7 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2401
2437
|
D(
|
|
2402
2438
|
"span",
|
|
2403
2439
|
{ class: "font-medium" },
|
|
2404
|
-
|
|
2440
|
+
G.toFormatString({
|
|
2405
2441
|
value: o.skuAdjustment.amounts[0].amount
|
|
2406
2442
|
})
|
|
2407
2443
|
)
|
|
@@ -2441,7 +2477,7 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2441
2477
|
D(
|
|
2442
2478
|
"span",
|
|
2443
2479
|
{ class: "font-medium" },
|
|
2444
|
-
|
|
2480
|
+
G.toFormatString({
|
|
2445
2481
|
value: L
|
|
2446
2482
|
})
|
|
2447
2483
|
)
|
|
@@ -2469,17 +2505,17 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2469
2505
|
accessorKey: "message",
|
|
2470
2506
|
header: "Error Message"
|
|
2471
2507
|
}
|
|
2472
|
-
],
|
|
2473
|
-
async function
|
|
2474
|
-
if (
|
|
2475
|
-
|
|
2508
|
+
], v = M(!1);
|
|
2509
|
+
async function f() {
|
|
2510
|
+
if (g.value) {
|
|
2511
|
+
v.value = !0;
|
|
2476
2512
|
try {
|
|
2477
2513
|
let e = {};
|
|
2478
2514
|
b.value === "netsuite" && (e = await s.getItemAverageCosts());
|
|
2479
2515
|
const { errors: o, rows: B } = await Yn(
|
|
2480
2516
|
e,
|
|
2481
|
-
|
|
2482
|
-
|
|
2517
|
+
u.skus,
|
|
2518
|
+
g.value
|
|
2483
2519
|
);
|
|
2484
2520
|
r.value = o, h.value = Object.values(B);
|
|
2485
2521
|
} catch {
|
|
@@ -2488,13 +2524,13 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2488
2524
|
type: "error"
|
|
2489
2525
|
});
|
|
2490
2526
|
} finally {
|
|
2491
|
-
|
|
2527
|
+
v.value = !1;
|
|
2492
2528
|
}
|
|
2493
2529
|
}
|
|
2494
2530
|
}
|
|
2495
2531
|
async function d() {
|
|
2496
|
-
if (
|
|
2497
|
-
|
|
2532
|
+
if (g.value) {
|
|
2533
|
+
v.value = !0;
|
|
2498
2534
|
try {
|
|
2499
2535
|
if (!A.value) {
|
|
2500
2536
|
t.open({
|
|
@@ -2510,14 +2546,14 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2510
2546
|
}), t.open({
|
|
2511
2547
|
message: "Opening balance imported successfully",
|
|
2512
2548
|
type: "success"
|
|
2513
|
-
}), await
|
|
2549
|
+
}), await y.fetchClosingDocumentId();
|
|
2514
2550
|
} catch {
|
|
2515
2551
|
t.open({
|
|
2516
2552
|
message: "Error importing opening balance",
|
|
2517
2553
|
type: "error"
|
|
2518
2554
|
});
|
|
2519
2555
|
} finally {
|
|
2520
|
-
|
|
2556
|
+
v.value = !1;
|
|
2521
2557
|
}
|
|
2522
2558
|
}
|
|
2523
2559
|
}
|
|
@@ -2528,15 +2564,15 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2528
2564
|
set(e) {
|
|
2529
2565
|
c.value = `${e}T15:59:59.999Z`;
|
|
2530
2566
|
}
|
|
2531
|
-
}),
|
|
2567
|
+
}), p = z(() => {
|
|
2532
2568
|
if (!c.value) return null;
|
|
2533
2569
|
const e = new Date(c.value);
|
|
2534
2570
|
return isNaN(e.getTime()) ? null : ye(e);
|
|
2535
2571
|
});
|
|
2536
2572
|
return (e, o) => {
|
|
2537
2573
|
const B = E("FmLabel"), L = E("FmField"), N = E("FmSimpleDatePicker"), H = E("FmButton"), U = E("FmRadio"), O = E("FmRadioGroup"), T = E("FmTable");
|
|
2538
|
-
return
|
|
2539
|
-
a("div",
|
|
2574
|
+
return S(), V("div", qn, [
|
|
2575
|
+
a("div", Zn, [
|
|
2540
2576
|
x(B, { label: "Latest closing" })
|
|
2541
2577
|
]),
|
|
2542
2578
|
x(L, {
|
|
@@ -2544,13 +2580,13 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2544
2580
|
disabled: ""
|
|
2545
2581
|
}, {
|
|
2546
2582
|
default: R(() => [
|
|
2547
|
-
|
|
2583
|
+
q(j(I(y).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
2548
2584
|
]),
|
|
2549
2585
|
_: 1
|
|
2550
2586
|
}),
|
|
2551
|
-
I(
|
|
2587
|
+
I(y).state.closingDocumentId ? (S(), V("div", io, o[6] || (o[6] = [
|
|
2552
2588
|
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)
|
|
2553
|
-
]))) : (
|
|
2589
|
+
]))) : (S(), V("div", Pn, [
|
|
2554
2590
|
x(N, {
|
|
2555
2591
|
modelValue: A.value,
|
|
2556
2592
|
"onUpdate:modelValue": o[0] || (o[0] = (Q) => A.value = Q),
|
|
@@ -2563,31 +2599,31 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2563
2599
|
label: "Last closing time"
|
|
2564
2600
|
}, {
|
|
2565
2601
|
default: R(() => [
|
|
2566
|
-
|
|
2602
|
+
q(j(p.value), 1)
|
|
2567
2603
|
]),
|
|
2568
2604
|
_: 1
|
|
2569
2605
|
})
|
|
2570
2606
|
]),
|
|
2571
2607
|
_: 1
|
|
2572
2608
|
}, 8, ["modelValue"]),
|
|
2573
|
-
a("div",
|
|
2609
|
+
a("div", Gn, [
|
|
2574
2610
|
x(B, { label: "Stock take file" })
|
|
2575
2611
|
]),
|
|
2576
2612
|
x(Fe, {
|
|
2577
2613
|
onFileUpload: o[1] || (o[1] = (Q) => {
|
|
2578
|
-
Q && (
|
|
2614
|
+
Q && (g.value = Q);
|
|
2579
2615
|
}),
|
|
2580
2616
|
accept: ".xlsx, .xls, .csv"
|
|
2581
2617
|
}, oe({ _: 2 }, [
|
|
2582
|
-
|
|
2618
|
+
g.value ? {
|
|
2583
2619
|
name: "default",
|
|
2584
2620
|
fn: R(({ openFileDialog: Q }) => [
|
|
2585
2621
|
a("div", Wn, [
|
|
2586
2622
|
a("div", $n, [
|
|
2587
2623
|
a("div", eo, [
|
|
2588
|
-
a("div", to, j(
|
|
2624
|
+
a("div", to, j(g.value.name), 1),
|
|
2589
2625
|
x(H, {
|
|
2590
|
-
label: I(
|
|
2626
|
+
label: I(w)("inventory.ingredient.import.replaceFile"),
|
|
2591
2627
|
variant: "secondary",
|
|
2592
2628
|
"prepend-icon": "autorenew",
|
|
2593
2629
|
onClick: Q
|
|
@@ -2606,7 +2642,7 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2606
2642
|
class: "my-5"
|
|
2607
2643
|
}, {
|
|
2608
2644
|
default: R(() => [
|
|
2609
|
-
(
|
|
2645
|
+
(S(!0), V(J, null, $(i.value, (Q) => (S(), X(U, {
|
|
2610
2646
|
key: Q.value,
|
|
2611
2647
|
value: Q.value,
|
|
2612
2648
|
label: Q.label,
|
|
@@ -2630,23 +2666,23 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2630
2666
|
variant: "secondary",
|
|
2631
2667
|
"prepend-icon": "troubleshoot",
|
|
2632
2668
|
label: "Verify",
|
|
2633
|
-
disabled: !
|
|
2634
|
-
loading:
|
|
2635
|
-
onClick:
|
|
2669
|
+
disabled: !g.value && !v.value,
|
|
2670
|
+
loading: v.value,
|
|
2671
|
+
onClick: f
|
|
2636
2672
|
}, null, 8, ["disabled", "loading"])
|
|
2637
2673
|
]),
|
|
2638
|
-
|
|
2674
|
+
g.value && h.value.length > 0 ? (S(), V(J, { key: 0 }, [
|
|
2639
2675
|
o[4] || (o[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
2640
2676
|
x(T, {
|
|
2641
|
-
modelValue:
|
|
2642
|
-
"onUpdate:modelValue": o[3] || (o[3] = (Q) =>
|
|
2677
|
+
modelValue: m.value,
|
|
2678
|
+
"onUpdate:modelValue": o[3] || (o[3] = (Q) => m.value = Q),
|
|
2643
2679
|
"row-data": h.value,
|
|
2644
2680
|
"column-defs": C,
|
|
2645
2681
|
"shrink-at": !1,
|
|
2646
2682
|
"search-value": l.value
|
|
2647
2683
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
2648
2684
|
], 64)) : _("", !0),
|
|
2649
|
-
r.value.length > 0 ? (
|
|
2685
|
+
r.value.length > 0 ? (S(), V(J, { key: 1 }, [
|
|
2650
2686
|
o[5] || (o[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
2651
2687
|
x(T, {
|
|
2652
2688
|
"row-data": r.value,
|
|
@@ -2654,13 +2690,13 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2654
2690
|
}, null, 8, ["row-data"])
|
|
2655
2691
|
], 64)) : _("", !0),
|
|
2656
2692
|
a("div", lo, [
|
|
2657
|
-
h.value.length > 0 && !I(
|
|
2693
|
+
h.value.length > 0 && !I(y).state.closingDocumentId ? (S(), X(H, {
|
|
2658
2694
|
key: 0,
|
|
2659
2695
|
class: "ml-auto mt-4",
|
|
2660
2696
|
"prepend-icon": "file_upload",
|
|
2661
2697
|
variant: "primary",
|
|
2662
2698
|
label: "Import Opening Balance",
|
|
2663
|
-
disabled: !
|
|
2699
|
+
disabled: !g.value || v.value,
|
|
2664
2700
|
onClick: d
|
|
2665
2701
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
2666
2702
|
])
|
|
@@ -2678,9 +2714,9 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2678
2714
|
loading: { type: Boolean }
|
|
2679
2715
|
},
|
|
2680
2716
|
emits: ["update:show"],
|
|
2681
|
-
setup(F, { emit:
|
|
2717
|
+
setup(F, { emit: y }) {
|
|
2682
2718
|
var l;
|
|
2683
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
2719
|
+
const s = ie(), n = ae(F, "show"), { t } = P(), i = y, b = W(), w = ((l = b._currentLocation) == null ? void 0 : l.type) || "", g = [
|
|
2684
2720
|
{ label: re(
|
|
2685
2721
|
"openingBalance"
|
|
2686
2722
|
/* OPENING_BALANCE */
|
|
@@ -2689,11 +2725,11 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2689
2725
|
"transferNote"
|
|
2690
2726
|
/* TRANSFER_NOTE */
|
|
2691
2727
|
) }
|
|
2692
|
-
],
|
|
2728
|
+
], m = M(g[0]);
|
|
2693
2729
|
return (r, h) => {
|
|
2694
2730
|
var d;
|
|
2695
|
-
const C = E("FmIcon"), k = E("FmButtonGroup"),
|
|
2696
|
-
return
|
|
2731
|
+
const C = E("FmIcon"), k = E("FmButtonGroup"), v = E("FmButton"), f = E("FmSideSheet");
|
|
2732
|
+
return S(), X(f, {
|
|
2697
2733
|
modelValue: I(n),
|
|
2698
2734
|
"onUpdate:modelValue": h[2] || (h[2] = (c) => se(n) ? n.value = c : null),
|
|
2699
2735
|
header: "Data migration (Xilnex)",
|
|
@@ -2704,24 +2740,24 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2704
2740
|
default: R(() => {
|
|
2705
2741
|
var c;
|
|
2706
2742
|
return [
|
|
2707
|
-
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (
|
|
2708
|
-
|
|
2743
|
+
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (S(), V("div", vo, [
|
|
2744
|
+
m.value.label === I(re)(
|
|
2709
2745
|
"openingBalance"
|
|
2710
2746
|
/* OPENING_BALANCE */
|
|
2711
|
-
) ? (
|
|
2712
|
-
|
|
2747
|
+
) ? (S(), X(ro, { key: 0 })) : _("", !0),
|
|
2748
|
+
m.value.label === I(re)(
|
|
2713
2749
|
"transferNote"
|
|
2714
2750
|
/* TRANSFER_NOTE */
|
|
2715
|
-
) ? (
|
|
2716
|
-
])) : (
|
|
2751
|
+
) ? (S(), V("div", go, " Not available yet. ")) : _("", !0)
|
|
2752
|
+
])) : (S(), V("div", po, " Please contact your administrator to apply the changes. "))
|
|
2717
2753
|
];
|
|
2718
2754
|
}),
|
|
2719
2755
|
"side-sheet-footer": R(() => [
|
|
2720
2756
|
a("div", yo, [
|
|
2721
|
-
x(
|
|
2757
|
+
x(v, {
|
|
2722
2758
|
variant: "tertiary",
|
|
2723
2759
|
label: I(t)("common.close"),
|
|
2724
|
-
onClick: h[1] || (h[1] = (c) =>
|
|
2760
|
+
onClick: h[1] || (h[1] = (c) => i("update:show", !1))
|
|
2725
2761
|
}, null, 8, ["label"])
|
|
2726
2762
|
])
|
|
2727
2763
|
]),
|
|
@@ -2737,16 +2773,16 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2737
2773
|
h[3] || (h[3] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
2738
2774
|
a("div", mo, [
|
|
2739
2775
|
x(C, {
|
|
2740
|
-
name: I(
|
|
2776
|
+
name: I(w),
|
|
2741
2777
|
size: "sm"
|
|
2742
2778
|
}, null, 8, ["name"]),
|
|
2743
2779
|
a("div", fo, j((c = I(b)._currentLocation) == null ? void 0 : c.name), 1)
|
|
2744
2780
|
])
|
|
2745
2781
|
]),
|
|
2746
2782
|
x(k, {
|
|
2747
|
-
modelValue:
|
|
2748
|
-
"onUpdate:modelValue": h[0] || (h[0] = (A) =>
|
|
2749
|
-
items:
|
|
2783
|
+
modelValue: m.value,
|
|
2784
|
+
"onUpdate:modelValue": h[0] || (h[0] = (A) => m.value = A),
|
|
2785
|
+
items: g
|
|
2750
2786
|
}, null, 8, ["modelValue"])
|
|
2751
2787
|
])
|
|
2752
2788
|
];
|
|
@@ -2759,26 +2795,26 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2759
2795
|
}), bo = /* @__PURE__ */ Y({
|
|
2760
2796
|
__name: "XilnexView",
|
|
2761
2797
|
setup(F) {
|
|
2762
|
-
const
|
|
2798
|
+
const y = Le(), s = W(), u = M(!1);
|
|
2763
2799
|
async function n() {
|
|
2764
|
-
|
|
2800
|
+
u.value = !0, console.log("Opening Xilnex migration dialog");
|
|
2765
2801
|
}
|
|
2766
|
-
return (t,
|
|
2767
|
-
const b = E("FmCardSection"),
|
|
2768
|
-
return I(
|
|
2769
|
-
x(
|
|
2770
|
-
class:
|
|
2802
|
+
return (t, i) => {
|
|
2803
|
+
const b = E("FmCardSection"), w = E("FmCard");
|
|
2804
|
+
return I(y).enabledXilnexOpeningMigration && !I(s).businessLevel ? (S(), V(J, { key: 0 }, [
|
|
2805
|
+
x(w, {
|
|
2806
|
+
class: Z({
|
|
2771
2807
|
"w-full": !0,
|
|
2772
2808
|
border: !0,
|
|
2773
2809
|
"border-fm-color-neutral-gray-100": !0,
|
|
2774
2810
|
"cursor-pointer": !0,
|
|
2775
2811
|
"hover:border-fm-color-primary": !0
|
|
2776
2812
|
}),
|
|
2777
|
-
onClick:
|
|
2813
|
+
onClick: i[0] || (i[0] = (g) => n())
|
|
2778
2814
|
}, {
|
|
2779
2815
|
default: R(() => [
|
|
2780
2816
|
x(b, null, {
|
|
2781
|
-
default: R(() =>
|
|
2817
|
+
default: R(() => i[2] || (i[2] = [
|
|
2782
2818
|
a("div", { class: "flex justify-center" }, [
|
|
2783
2819
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
2784
2820
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Xilnex")
|
|
@@ -2794,10 +2830,10 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2794
2830
|
]),
|
|
2795
2831
|
_: 1
|
|
2796
2832
|
}),
|
|
2797
|
-
(
|
|
2833
|
+
(S(), X(ue, { to: "body" }, [
|
|
2798
2834
|
x(Ao, {
|
|
2799
|
-
show:
|
|
2800
|
-
"onUpdate:show":
|
|
2835
|
+
show: u.value,
|
|
2836
|
+
"onUpdate:show": i[1] || (i[1] = (g) => u.value = g)
|
|
2801
2837
|
}, null, 8, ["show"])
|
|
2802
2838
|
]))
|
|
2803
2839
|
], 64)) : _("", !0);
|
|
@@ -2813,45 +2849,45 @@ const Zn = { class: "flex flex-col gap-4" }, qn = { class: "flex flex-col" }, Gn
|
|
|
2813
2849
|
"quantity",
|
|
2814
2850
|
"total"
|
|
2815
2851
|
];
|
|
2816
|
-
async function ho(F,
|
|
2817
|
-
var
|
|
2818
|
-
const
|
|
2819
|
-
for (let
|
|
2820
|
-
const
|
|
2852
|
+
async function ho(F, y, s) {
|
|
2853
|
+
var w;
|
|
2854
|
+
const u = await xo(s), n = [], t = {}, i = Object.keys(u)[0], b = u[i];
|
|
2855
|
+
for (let g = 0; g < b.length; g++) {
|
|
2856
|
+
const m = b[g], l = m.code, r = m.description, h = m.quantity, C = m.unitcost;
|
|
2821
2857
|
if (l === "" || l === "undefined") {
|
|
2822
2858
|
n.push({
|
|
2823
|
-
row:
|
|
2859
|
+
row: m.excelRow,
|
|
2824
2860
|
itemCode: l,
|
|
2825
2861
|
itemName: r,
|
|
2826
2862
|
message: "Item code is empty or undefined"
|
|
2827
2863
|
});
|
|
2828
2864
|
continue;
|
|
2829
2865
|
}
|
|
2830
|
-
const k =
|
|
2866
|
+
const k = y.find((A) => A.code === l);
|
|
2831
2867
|
if (!k) {
|
|
2832
2868
|
n.push({
|
|
2833
|
-
row:
|
|
2869
|
+
row: m.excelRow,
|
|
2834
2870
|
itemCode: l,
|
|
2835
2871
|
itemName: r,
|
|
2836
2872
|
qty: h,
|
|
2837
2873
|
message: "Item not found in inventory"
|
|
2838
|
-
}), console.error(`${
|
|
2874
|
+
}), console.error(`${m.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2839
2875
|
continue;
|
|
2840
2876
|
}
|
|
2841
|
-
let
|
|
2842
|
-
const
|
|
2843
|
-
|
|
2844
|
-
const d =
|
|
2877
|
+
let v = Number(m.total);
|
|
2878
|
+
const f = F[k._id];
|
|
2879
|
+
f && (v = f * Number(h));
|
|
2880
|
+
const d = G.fromNumber(Number(h)), c = {
|
|
2845
2881
|
amount: d,
|
|
2846
2882
|
cost: {
|
|
2847
|
-
...
|
|
2883
|
+
...G.fromNumber(Number(v)),
|
|
2848
2884
|
currency: "MYR"
|
|
2849
2885
|
}
|
|
2850
2886
|
};
|
|
2851
|
-
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[
|
|
2887
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[w = k._id] ?? (t[w] = {
|
|
2852
2888
|
skuAdjustment: {
|
|
2853
2889
|
sku: k,
|
|
2854
|
-
fromBalance:
|
|
2890
|
+
fromBalance: G.fromNumber(0),
|
|
2855
2891
|
amounts: [
|
|
2856
2892
|
{
|
|
2857
2893
|
_id: null,
|
|
@@ -2879,28 +2915,28 @@ async function ho(F, g, s) {
|
|
|
2879
2915
|
};
|
|
2880
2916
|
}
|
|
2881
2917
|
async function xo(F) {
|
|
2882
|
-
const
|
|
2918
|
+
const y = await new Promise((t, i) => {
|
|
2883
2919
|
const b = new FileReader();
|
|
2884
|
-
b.onload = (
|
|
2885
|
-
}), s = ke(
|
|
2886
|
-
for (const t of
|
|
2887
|
-
const
|
|
2888
|
-
n[t] =
|
|
2920
|
+
b.onload = (w) => t(w.target.result), b.onerror = i, b.readAsArrayBuffer(F);
|
|
2921
|
+
}), s = ke(y, { type: "array" }), u = s.SheetNames, n = {};
|
|
2922
|
+
for (const t of u) {
|
|
2923
|
+
const i = await Io(s.Sheets[t]);
|
|
2924
|
+
n[t] = i;
|
|
2889
2925
|
}
|
|
2890
2926
|
return n;
|
|
2891
2927
|
}
|
|
2892
2928
|
async function Io(F) {
|
|
2893
|
-
const
|
|
2929
|
+
const y = Be.sheet_to_json(F, {
|
|
2894
2930
|
header: Ie,
|
|
2895
2931
|
range: 1
|
|
2896
2932
|
}), s = [];
|
|
2897
|
-
for (let
|
|
2898
|
-
const n =
|
|
2899
|
-
for (const
|
|
2900
|
-
t[
|
|
2933
|
+
for (let u = 0; u < y.length; u++) {
|
|
2934
|
+
const n = y[u], t = {};
|
|
2935
|
+
for (const i of Ie)
|
|
2936
|
+
t[i] = String(n[i]).trim();
|
|
2901
2937
|
s.push({
|
|
2902
2938
|
...t,
|
|
2903
|
-
excelRow:
|
|
2939
|
+
excelRow: u + 2
|
|
2904
2940
|
// Excel rows start from 1, and we skip the first row
|
|
2905
2941
|
});
|
|
2906
2942
|
}
|
|
@@ -2910,24 +2946,24 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2910
2946
|
key: 0,
|
|
2911
2947
|
class: "flex flex-col gap-4 my-5"
|
|
2912
2948
|
}, Bo = { class: "flex flex-col gap-8" }, Co = { class: "flex flex-col gap-8" }, Eo = {
|
|
2913
|
-
class: /* @__PURE__ */
|
|
2949
|
+
class: /* @__PURE__ */ Z(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
2914
2950
|
}, Fo = {
|
|
2915
|
-
class: /* @__PURE__ */
|
|
2951
|
+
class: /* @__PURE__ */ Z(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
2916
2952
|
}, 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({
|
|
2917
2953
|
__name: "SynergyOpeningImport",
|
|
2918
2954
|
setup(F) {
|
|
2919
|
-
const
|
|
2955
|
+
const y = Ge(), s = be(), u = Ce(), n = te(), t = z(() => [
|
|
2920
2956
|
{
|
|
2921
2957
|
value: "synergy",
|
|
2922
2958
|
label: "Synergy",
|
|
2923
2959
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
2924
2960
|
}
|
|
2925
|
-
]),
|
|
2961
|
+
]), i = M(t.value[0].value), { t: b } = de(), w = M(null), g = M(), m = M(""), l = M([]), r = M([]), h = [
|
|
2926
2962
|
{
|
|
2927
2963
|
id: "ingredient",
|
|
2928
2964
|
header: () => "Ingredient",
|
|
2929
|
-
cell(
|
|
2930
|
-
const e =
|
|
2965
|
+
cell(p) {
|
|
2966
|
+
const e = p.row.original;
|
|
2931
2967
|
return D("div", { class: "flex flex-col" }, [
|
|
2932
2968
|
D("span", { class: "font-medium" }, e.skuAdjustment.sku.name),
|
|
2933
2969
|
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
@@ -2939,13 +2975,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2939
2975
|
{
|
|
2940
2976
|
id: "openingBalance",
|
|
2941
2977
|
header: () => "Opening Balance",
|
|
2942
|
-
cell(
|
|
2943
|
-
const e =
|
|
2978
|
+
cell(p) {
|
|
2979
|
+
const e = p.row.original;
|
|
2944
2980
|
return D("div", { class: "flex flex-col" }, [
|
|
2945
2981
|
D(
|
|
2946
2982
|
"span",
|
|
2947
2983
|
{ class: "font-medium" },
|
|
2948
|
-
|
|
2984
|
+
G.toFormatString({
|
|
2949
2985
|
value: e.skuAdjustment.amounts[0].amount
|
|
2950
2986
|
})
|
|
2951
2987
|
)
|
|
@@ -2955,8 +2991,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2955
2991
|
{
|
|
2956
2992
|
id: "unit",
|
|
2957
2993
|
header: () => "Unit",
|
|
2958
|
-
cell(
|
|
2959
|
-
const e =
|
|
2994
|
+
cell(p) {
|
|
2995
|
+
const e = p.row.original, o = !e.skuAdjustment.amounts[0].measurement;
|
|
2960
2996
|
let B = e.skuAdjustment.sku.unit.name;
|
|
2961
2997
|
if (!o) {
|
|
2962
2998
|
const L = e.skuAdjustment.sku.unit.measurements.find(
|
|
@@ -2975,8 +3011,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2975
3011
|
{
|
|
2976
3012
|
id: "totalCost",
|
|
2977
3013
|
header: () => "Total Cost",
|
|
2978
|
-
cell(
|
|
2979
|
-
const e =
|
|
3014
|
+
cell(p) {
|
|
3015
|
+
const e = p.row.original, { currency: o, ...B } = e.skuAdjustment.amounts[0].cost ?? {
|
|
2980
3016
|
amount: 0,
|
|
2981
3017
|
precision: 0,
|
|
2982
3018
|
currency: ""
|
|
@@ -2985,7 +3021,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2985
3021
|
D(
|
|
2986
3022
|
"span",
|
|
2987
3023
|
{ class: "font-medium" },
|
|
2988
|
-
|
|
3024
|
+
G.toFormatString({
|
|
2989
3025
|
value: B
|
|
2990
3026
|
})
|
|
2991
3027
|
)
|
|
@@ -3014,15 +3050,15 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3014
3050
|
header: "Error Message"
|
|
3015
3051
|
}
|
|
3016
3052
|
], k = M(!1);
|
|
3017
|
-
async function
|
|
3018
|
-
if (
|
|
3053
|
+
async function v() {
|
|
3054
|
+
if (w.value) {
|
|
3019
3055
|
k.value = !0;
|
|
3020
3056
|
try {
|
|
3021
|
-
let
|
|
3057
|
+
let p = {};
|
|
3022
3058
|
const { errors: e, rows: o } = await ho(
|
|
3023
|
-
|
|
3059
|
+
p,
|
|
3024
3060
|
s.skus,
|
|
3025
|
-
|
|
3061
|
+
w.value
|
|
3026
3062
|
);
|
|
3027
3063
|
l.value = e, r.value = Object.values(o);
|
|
3028
3064
|
} catch {
|
|
@@ -3035,8 +3071,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3035
3071
|
}
|
|
3036
3072
|
}
|
|
3037
3073
|
}
|
|
3038
|
-
async function
|
|
3039
|
-
if (
|
|
3074
|
+
async function f() {
|
|
3075
|
+
if (w.value) {
|
|
3040
3076
|
k.value = !0;
|
|
3041
3077
|
try {
|
|
3042
3078
|
if (!c.value) {
|
|
@@ -3046,14 +3082,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3046
3082
|
});
|
|
3047
3083
|
return;
|
|
3048
3084
|
}
|
|
3049
|
-
await
|
|
3085
|
+
await u.setOpeningBalance({
|
|
3050
3086
|
effectiveAt: c.value,
|
|
3051
|
-
skuAdjustments: r.value.map((
|
|
3052
|
-
skuBalances: r.value.map((
|
|
3087
|
+
skuAdjustments: r.value.map((p) => p.skuAdjustment),
|
|
3088
|
+
skuBalances: r.value.map((p) => p.skuBalance)
|
|
3053
3089
|
}), n.open({
|
|
3054
3090
|
message: "Opening balance imported successfully",
|
|
3055
3091
|
type: "success"
|
|
3056
|
-
}), await
|
|
3092
|
+
}), await y.fetchClosingDocumentId();
|
|
3057
3093
|
} catch {
|
|
3058
3094
|
n.open({
|
|
3059
3095
|
message: "Error importing opening balance",
|
|
@@ -3068,17 +3104,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3068
3104
|
get() {
|
|
3069
3105
|
return d.value;
|
|
3070
3106
|
},
|
|
3071
|
-
set(
|
|
3072
|
-
d.value = `${
|
|
3107
|
+
set(p) {
|
|
3108
|
+
d.value = `${p}T15:59:59.999Z`;
|
|
3073
3109
|
}
|
|
3074
3110
|
}), A = z(() => {
|
|
3075
3111
|
if (!d.value) return null;
|
|
3076
|
-
const
|
|
3077
|
-
return isNaN(
|
|
3112
|
+
const p = new Date(d.value);
|
|
3113
|
+
return isNaN(p.getTime()) ? null : ye(p);
|
|
3078
3114
|
});
|
|
3079
|
-
return (
|
|
3115
|
+
return (p, e) => {
|
|
3080
3116
|
const o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"), N = E("FmButton"), H = E("FmRadio"), U = E("FmRadioGroup"), O = E("FmTable");
|
|
3081
|
-
return
|
|
3117
|
+
return S(), V("div", So, [
|
|
3082
3118
|
a("div", wo, [
|
|
3083
3119
|
x(o, { label: "Latest closing" })
|
|
3084
3120
|
]),
|
|
@@ -3087,13 +3123,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3087
3123
|
disabled: ""
|
|
3088
3124
|
}, {
|
|
3089
3125
|
default: R(() => [
|
|
3090
|
-
|
|
3126
|
+
q(j(I(y).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
3091
3127
|
]),
|
|
3092
3128
|
_: 1
|
|
3093
3129
|
}),
|
|
3094
|
-
I(
|
|
3130
|
+
I(y).state.closingDocumentId ? (S(), V("div", Oo, e[6] || (e[6] = [
|
|
3095
3131
|
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)
|
|
3096
|
-
]))) : (
|
|
3132
|
+
]))) : (S(), V("div", ko, [
|
|
3097
3133
|
x(L, {
|
|
3098
3134
|
modelValue: c.value,
|
|
3099
3135
|
"onUpdate:modelValue": e[0] || (e[0] = (T) => c.value = T),
|
|
@@ -3106,7 +3142,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3106
3142
|
label: "Last closing time"
|
|
3107
3143
|
}, {
|
|
3108
3144
|
default: R(() => [
|
|
3109
|
-
|
|
3145
|
+
q(j(A.value), 1)
|
|
3110
3146
|
]),
|
|
3111
3147
|
_: 1
|
|
3112
3148
|
})
|
|
@@ -3118,17 +3154,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3118
3154
|
]),
|
|
3119
3155
|
x(Fe, {
|
|
3120
3156
|
onFileUpload: e[1] || (e[1] = (T) => {
|
|
3121
|
-
T && (
|
|
3157
|
+
T && (w.value = T);
|
|
3122
3158
|
}),
|
|
3123
3159
|
accept: ".xlsx, .xls, .csv"
|
|
3124
3160
|
}, oe({ _: 2 }, [
|
|
3125
|
-
|
|
3161
|
+
w.value ? {
|
|
3126
3162
|
name: "default",
|
|
3127
3163
|
fn: R(({ openFileDialog: T }) => [
|
|
3128
3164
|
a("div", Co, [
|
|
3129
3165
|
a("div", Eo, [
|
|
3130
3166
|
a("div", Fo, [
|
|
3131
|
-
a("div", Lo, j(
|
|
3167
|
+
a("div", Lo, j(w.value.name), 1),
|
|
3132
3168
|
x(N, {
|
|
3133
3169
|
label: I(b)("inventory.ingredient.import.replaceFile"),
|
|
3134
3170
|
variant: "secondary",
|
|
@@ -3143,13 +3179,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3143
3179
|
} : void 0
|
|
3144
3180
|
]), 1024),
|
|
3145
3181
|
x(U, {
|
|
3146
|
-
modelValue:
|
|
3147
|
-
"onUpdate:modelValue": e[2] || (e[2] = (T) =>
|
|
3182
|
+
modelValue: i.value,
|
|
3183
|
+
"onUpdate:modelValue": e[2] || (e[2] = (T) => i.value = T),
|
|
3148
3184
|
label: "Retrieve cost from",
|
|
3149
3185
|
class: "my-5"
|
|
3150
3186
|
}, {
|
|
3151
3187
|
default: R(() => [
|
|
3152
|
-
(
|
|
3188
|
+
(S(!0), V(J, null, $(t.value, (T) => (S(), X(H, {
|
|
3153
3189
|
key: T.value,
|
|
3154
3190
|
value: T.value,
|
|
3155
3191
|
label: T.label,
|
|
@@ -3173,23 +3209,23 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3173
3209
|
variant: "secondary",
|
|
3174
3210
|
"prepend-icon": "troubleshoot",
|
|
3175
3211
|
label: "Verify",
|
|
3176
|
-
disabled: !
|
|
3212
|
+
disabled: !w.value && !k.value,
|
|
3177
3213
|
loading: k.value,
|
|
3178
|
-
onClick:
|
|
3214
|
+
onClick: v
|
|
3179
3215
|
}, null, 8, ["disabled", "loading"])
|
|
3180
3216
|
]),
|
|
3181
|
-
|
|
3217
|
+
w.value && r.value.length > 0 ? (S(), V(J, { key: 0 }, [
|
|
3182
3218
|
e[4] || (e[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
3183
3219
|
x(O, {
|
|
3184
|
-
modelValue:
|
|
3185
|
-
"onUpdate:modelValue": e[3] || (e[3] = (T) =>
|
|
3220
|
+
modelValue: g.value,
|
|
3221
|
+
"onUpdate:modelValue": e[3] || (e[3] = (T) => g.value = T),
|
|
3186
3222
|
"row-data": r.value,
|
|
3187
3223
|
"column-defs": h,
|
|
3188
3224
|
"shrink-at": !1,
|
|
3189
|
-
"search-value":
|
|
3225
|
+
"search-value": m.value
|
|
3190
3226
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
3191
3227
|
], 64)) : _("", !0),
|
|
3192
|
-
l.value.length > 0 ? (
|
|
3228
|
+
l.value.length > 0 ? (S(), V(J, { key: 1 }, [
|
|
3193
3229
|
e[5] || (e[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
3194
3230
|
x(O, {
|
|
3195
3231
|
"row-data": l.value,
|
|
@@ -3197,14 +3233,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3197
3233
|
}, null, 8, ["row-data"])
|
|
3198
3234
|
], 64)) : _("", !0),
|
|
3199
3235
|
a("div", Mo, [
|
|
3200
|
-
r.value.length > 0 && !I(
|
|
3236
|
+
r.value.length > 0 && !I(y).state.closingDocumentId ? (S(), X(N, {
|
|
3201
3237
|
key: 0,
|
|
3202
3238
|
class: "ml-auto mt-4",
|
|
3203
3239
|
"prepend-icon": "file_upload",
|
|
3204
3240
|
variant: "primary",
|
|
3205
3241
|
label: "Import Opening Balance",
|
|
3206
|
-
disabled: !
|
|
3207
|
-
onClick:
|
|
3242
|
+
disabled: !w.value || k.value,
|
|
3243
|
+
onClick: f
|
|
3208
3244
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
3209
3245
|
])
|
|
3210
3246
|
]))
|
|
@@ -3221,26 +3257,26 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3221
3257
|
loading: { type: Boolean }
|
|
3222
3258
|
},
|
|
3223
3259
|
emits: ["update:show"],
|
|
3224
|
-
setup(F, { emit:
|
|
3225
|
-
var
|
|
3226
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
3227
|
-
return (
|
|
3260
|
+
setup(F, { emit: y }) {
|
|
3261
|
+
var g;
|
|
3262
|
+
const s = ie(), n = ae(F, "show"), { t } = P(), i = y, b = W(), w = ((g = b._currentLocation) == null ? void 0 : g.type) || "";
|
|
3263
|
+
return (m, l) => {
|
|
3228
3264
|
var k;
|
|
3229
3265
|
const r = E("FmIcon"), h = E("FmButton"), C = E("FmSideSheet");
|
|
3230
|
-
return
|
|
3266
|
+
return S(), X(C, {
|
|
3231
3267
|
modelValue: I(n),
|
|
3232
|
-
"onUpdate:modelValue": l[1] || (l[1] = (
|
|
3268
|
+
"onUpdate:modelValue": l[1] || (l[1] = (v) => se(n) ? n.value = v : null),
|
|
3233
3269
|
header: "Data migration (Synergy)",
|
|
3234
3270
|
"dismiss-away": "",
|
|
3235
3271
|
"close-button": "",
|
|
3236
3272
|
"max-width": 800
|
|
3237
3273
|
}, oe({
|
|
3238
3274
|
default: R(() => {
|
|
3239
|
-
var
|
|
3275
|
+
var v;
|
|
3240
3276
|
return [
|
|
3241
|
-
(
|
|
3277
|
+
(v = I(s).sessionUser.value) != null && v.role.isAdmin ? (S(), V("div", Uo, [
|
|
3242
3278
|
x(jo)
|
|
3243
|
-
])) : (
|
|
3279
|
+
])) : (S(), V("div", Xo, " Please contact your administrator to apply the changes. "))
|
|
3244
3280
|
];
|
|
3245
3281
|
}),
|
|
3246
3282
|
"side-sheet-footer": R(() => [
|
|
@@ -3248,7 +3284,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3248
3284
|
x(h, {
|
|
3249
3285
|
variant: "tertiary",
|
|
3250
3286
|
label: I(t)("common.close"),
|
|
3251
|
-
onClick: l[0] || (l[0] = (
|
|
3287
|
+
onClick: l[0] || (l[0] = (v) => i("update:show", !1))
|
|
3252
3288
|
}, null, 8, ["label"])
|
|
3253
3289
|
])
|
|
3254
3290
|
]),
|
|
@@ -3257,17 +3293,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3257
3293
|
(k = I(s).sessionUser.value) != null && k.role.isAdmin ? {
|
|
3258
3294
|
name: "side-sheet-header",
|
|
3259
3295
|
fn: R(() => {
|
|
3260
|
-
var
|
|
3296
|
+
var v;
|
|
3261
3297
|
return [
|
|
3262
3298
|
a("div", To, [
|
|
3263
3299
|
a("div", zo, [
|
|
3264
3300
|
l[2] || (l[2] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
3265
3301
|
a("div", Ho, [
|
|
3266
3302
|
x(r, {
|
|
3267
|
-
name: I(
|
|
3303
|
+
name: I(w),
|
|
3268
3304
|
size: "sm"
|
|
3269
3305
|
}, null, 8, ["name"]),
|
|
3270
|
-
a("div", _o, j((
|
|
3306
|
+
a("div", _o, j((v = I(b)._currentLocation) == null ? void 0 : v.name), 1)
|
|
3271
3307
|
])
|
|
3272
3308
|
])
|
|
3273
3309
|
])
|
|
@@ -3281,26 +3317,26 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3281
3317
|
}), Jo = /* @__PURE__ */ Y({
|
|
3282
3318
|
__name: "SynergyView",
|
|
3283
3319
|
setup(F) {
|
|
3284
|
-
const
|
|
3320
|
+
const y = Le(), s = W(), u = M(!1);
|
|
3285
3321
|
async function n() {
|
|
3286
|
-
|
|
3322
|
+
u.value = !0, console.log("Opening Synergy migration dialog");
|
|
3287
3323
|
}
|
|
3288
|
-
return (t,
|
|
3289
|
-
const b = E("FmCardSection"),
|
|
3290
|
-
return I(
|
|
3291
|
-
x(
|
|
3292
|
-
class:
|
|
3324
|
+
return (t, i) => {
|
|
3325
|
+
const b = E("FmCardSection"), w = E("FmCard");
|
|
3326
|
+
return I(y).enabledSynergyOpeningMigration && !I(s).businessLevel ? (S(), V(J, { key: 0 }, [
|
|
3327
|
+
x(w, {
|
|
3328
|
+
class: Z({
|
|
3293
3329
|
"w-full": !0,
|
|
3294
3330
|
border: !0,
|
|
3295
3331
|
"border-fm-color-neutral-gray-100": !0,
|
|
3296
3332
|
"cursor-pointer": !0,
|
|
3297
3333
|
"hover:border-fm-color-primary": !0
|
|
3298
3334
|
}),
|
|
3299
|
-
onClick:
|
|
3335
|
+
onClick: i[0] || (i[0] = (g) => n())
|
|
3300
3336
|
}, {
|
|
3301
3337
|
default: R(() => [
|
|
3302
3338
|
x(b, null, {
|
|
3303
|
-
default: R(() =>
|
|
3339
|
+
default: R(() => i[2] || (i[2] = [
|
|
3304
3340
|
a("div", { class: "flex justify-center" }, [
|
|
3305
3341
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
3306
3342
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Synergy")
|
|
@@ -3316,45 +3352,45 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3316
3352
|
]),
|
|
3317
3353
|
_: 1
|
|
3318
3354
|
}),
|
|
3319
|
-
(
|
|
3355
|
+
(S(), X(ue, { to: "body" }, [
|
|
3320
3356
|
x(Yo, {
|
|
3321
|
-
show:
|
|
3322
|
-
"onUpdate:show":
|
|
3357
|
+
show: u.value,
|
|
3358
|
+
"onUpdate:show": i[1] || (i[1] = (g) => u.value = g)
|
|
3323
3359
|
}, null, 8, ["show"])
|
|
3324
3360
|
]))
|
|
3325
3361
|
], 64)) : _("", !0);
|
|
3326
3362
|
};
|
|
3327
3363
|
}
|
|
3328
|
-
}), Ko = { key: 0 },
|
|
3364
|
+
}), Ko = { key: 0 }, qo = {
|
|
3329
3365
|
key: 1,
|
|
3330
3366
|
class: "flex flex-col items-center my-10 gap-5"
|
|
3331
|
-
},
|
|
3367
|
+
}, Zo = ["src"], Po = {
|
|
3332
3368
|
class: "text-xs text-neutral-400 text-center",
|
|
3333
3369
|
style: { "max-width": "25rem" }
|
|
3334
|
-
},
|
|
3370
|
+
}, Go = {
|
|
3335
3371
|
key: 2,
|
|
3336
3372
|
class: "grid grid-cols-2 gap-5"
|
|
3337
3373
|
}, ls = /* @__PURE__ */ Y({
|
|
3338
3374
|
__name: "IntegrationView",
|
|
3339
3375
|
setup(F) {
|
|
3340
|
-
const
|
|
3376
|
+
const y = W(), s = M(!1), u = We(), { breakpoints: n } = Ve(), t = z(() => n.value.xs || n.value.sm), { t: i } = P();
|
|
3341
3377
|
return fe(async () => {
|
|
3342
|
-
if (
|
|
3378
|
+
if (y._currentLocation) {
|
|
3343
3379
|
s.value = !0;
|
|
3344
3380
|
try {
|
|
3345
|
-
await
|
|
3381
|
+
await u.fetchFoodMarketHubSetting(), await u.fetchNetSuiteSetting();
|
|
3346
3382
|
} finally {
|
|
3347
3383
|
s.value = !1;
|
|
3348
3384
|
}
|
|
3349
3385
|
}
|
|
3350
|
-
}), (b,
|
|
3351
|
-
const
|
|
3352
|
-
return
|
|
3353
|
-
title: I(
|
|
3386
|
+
}), (b, w) => {
|
|
3387
|
+
const g = E("FmCircularProgress");
|
|
3388
|
+
return S(), X(Je, {
|
|
3389
|
+
title: I(i)("inventory.integration.title")
|
|
3354
3390
|
}, {
|
|
3355
3391
|
default: R(() => [
|
|
3356
3392
|
a("div", {
|
|
3357
|
-
class:
|
|
3393
|
+
class: Z([
|
|
3358
3394
|
"flex flex-col gap-8 max-h-full",
|
|
3359
3395
|
{
|
|
3360
3396
|
"p-0": t.value,
|
|
@@ -3366,18 +3402,18 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3366
3402
|
"change-location": "",
|
|
3367
3403
|
showBusiness: ""
|
|
3368
3404
|
}),
|
|
3369
|
-
!I(
|
|
3370
|
-
x(
|
|
3371
|
-
])) : I(
|
|
3405
|
+
!I(y)._currentLocation || s.value ? (S(), V("div", Ko, [
|
|
3406
|
+
x(g, { size: "lg" })
|
|
3407
|
+
])) : I(u).enabledIntegrations == 0 ? (S(), V("div", qo, [
|
|
3372
3408
|
a("div", null, [
|
|
3373
3409
|
a("img", {
|
|
3374
3410
|
src: I(He),
|
|
3375
3411
|
alt: "List is empty"
|
|
3376
|
-
}, null, 8,
|
|
3412
|
+
}, null, 8, Zo)
|
|
3377
3413
|
]),
|
|
3378
|
-
|
|
3379
|
-
a("div",
|
|
3380
|
-
])) : (
|
|
3414
|
+
w[0] || (w[0] = a("div", { class: "font-bold text-lg" }, "Integration", -1)),
|
|
3415
|
+
a("div", Po, j(I(i)("inventory.integration.description")), 1)
|
|
3416
|
+
])) : (S(), V("div", Go, [
|
|
3381
3417
|
x(Qn),
|
|
3382
3418
|
x(Kt),
|
|
3383
3419
|
x(bo),
|