@feedmepos/mf-inventory-portal 1.1.3 → 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-7pfxxU67.js → App-CyCxXYWb.js} +1 -1
- package/dist/{ApprovalView-BPuTnf49.js → ApprovalView-U_0mloUl.js} +2 -2
- package/dist/{BindingsDialog-CuyWRRf1.js → BindingsDialog-MU1VXpRz.js} +2 -2
- package/dist/{BindingsPicker-AVNl8VqU.js → BindingsPicker-B0DtgYMV.js} +1 -1
- package/dist/{BindingsTable-Vz_DNwDO.js → BindingsTable-CSZw1l9L.js} +1 -1
- package/dist/{ClosingDraftView-Bjy4WCBc.js → ClosingDraftView-DwUlj7ta.js} +2 -2
- package/dist/{ClosingTemplateView-DMZTVSqn.js → ClosingTemplateView-DcUMrx5w.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-BAQBk7_H.js → DeliveryOrderPrintPreview-D7-jS3K1.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BR6tNNBB.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BnL2z9Or.js} +3 -3
- package/dist/{FmMultiselectDialog-D9unDoYT.js → FmMultiselectDialog-BTjE3FDA.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-rDMN4_5t.js → FmUnitInput.vue_vue_type_script_setup_true_lang-D-hrdDvI.js} +1 -1
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-BNd_NpKL.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DqY-ppJ9.js} +1 -1
- package/dist/{IngredientGroupView-gThcKla6.js → IngredientGroupView-R5cNGeUG.js} +2 -2
- package/dist/{IngredientsView-DoCcrxwc.js → IngredientsView-BkRv5-9o.js} +4 -4
- package/dist/{IntegrationView-CcDzstyV.js → IntegrationView-DJzLUlBA.js} +1436 -1338
- package/dist/{InventoryBindingForm-luAeyRmK.js → InventoryBindingForm-SBCpdUlA.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-BebYp6fM.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-DQ9-3Y3R.js} +3 -3
- package/dist/{InventoryBindingSummary-DDZfiPuy.js → InventoryBindingSummary-DRJTEG5M.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CtGyGGGt.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BTyKsubT.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-C868Hs20.js → PremiumBadge.vue_vue_type_script_setup_true_lang-Bn5b1Ur-.js} +1 -1
- package/dist/{PublishView-Csf_e3sH.js → PublishView-ClOkwACw.js} +2 -2
- package/dist/{PurchaseOrderPrintPreview-Clh2ukEu.js → PurchaseOrderPrintPreview-BV_-rfm2.js} +1 -1
- package/dist/{ReceiveRequestView-D6CvyWy2.js → ReceiveRequestView-BEA8WYAJ.js} +9 -9
- package/dist/{RecipeView-D4DVr3mq.js → RecipeView-CgS5UMwE.js} +3 -3
- package/dist/{StockView-COKXyOft.js → StockView-DfNZOW1U.js} +6 -6
- package/dist/{SupplierView-CJmmt4I4.js → SupplierView-nAtRIngl.js} +3 -3
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-BFoS4ho1.js → TransferDetails.vue_vue_type_script_setup_true_lang-0fKqK-Yg.js} +5 -5
- package/dist/{TransferTemplateView-Dk7DwWZa.js → TransferTemplateView-B7P8MaPd.js} +6 -6
- package/dist/{UnitView-Cr8zt1Hi.js → UnitView-B5bqeT_p.js} +3 -3
- package/dist/{WarehouseView-Bw5I6Hp6.js → WarehouseView-yIhVXIOL.js} +1 -1
- package/dist/api/netsuite.d.ts +2 -0
- package/dist/{app-C0Y7yPPu.js → app-CktPIZfH.js} +23 -11
- package/dist/app.js +1 -1
- package/dist/{decimal-CEYzcA0t.js → decimal-ClHMtypx.js} +1 -1
- package/dist/{format-unit-display-C3Pbd4WN.js → format-unit-display--5ianNK1.js} +2 -2
- package/dist/{index-CnFpVkfR.js → index-KMubbPxS.js} +1 -1
- package/dist/{index-BYwEDYDd.js → index-ynBWdY_c.js} +1 -1
- package/dist/{stock-C2LXvLfC.js → stock-Bsrt9B9a.js} +1 -1
- package/dist/{supplier-CWw85jvz.js → supplier-BXmGBQ24.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{use-ingredient-select-dialog-C3SRP5IT.js → use-ingredient-select-dialog-Pg9yaoJS.js} +1 -1
- package/dist/{use-inventory-binding-dialog-CTS4AFEC.js → use-inventory-binding-dialog-Deyh6NeE.js} +1 -1
- package/dist/views/integration/components/netsuite/TransferOrder.vue.d.ts +48 -0
- package/dist/{vue-i18n-CILu1cUc.js → vue-i18n-Dybwy_8K.js} +111 -111
- package/package.json +1 -1
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
import { defineComponent as Y, mergeModels 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
|
|
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
|
|
25
|
-
C = n[
|
|
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:
|
|
36
|
-
original:
|
|
37
|
-
}),
|
|
38
|
-
}, []).sort(function(
|
|
39
|
-
var
|
|
40
|
-
return
|
|
35
|
+
index: w,
|
|
36
|
+
original: b
|
|
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
|
-
const
|
|
47
|
-
function
|
|
48
|
-
return
|
|
46
|
+
const De = /* @__PURE__ */ _e(nt);
|
|
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] =
|
|
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
|
}
|
|
@@ -89,12 +89,12 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
89
89
|
}, it = {
|
|
90
90
|
class: "flex-1",
|
|
91
91
|
"data-cy": "filter-field"
|
|
92
|
-
}, rt = ["data-cy"], ut = { class: "flex flex-col" },
|
|
92
|
+
}, rt = ["data-cy"], ut = { class: "flex flex-col" }, ct = { class: "fm-typo-en-body-md-400" }, dt = {
|
|
93
93
|
key: 1,
|
|
94
94
|
class: "w-full py-16 text-fm-color-typo-disabled fm-typo-en-body-md-400 text-center"
|
|
95
|
-
},
|
|
95
|
+
}, Re = /* @__PURE__ */ Y({
|
|
96
96
|
__name: "FmNestedMultiselectDialog",
|
|
97
|
-
props: /* @__PURE__ */
|
|
97
|
+
props: /* @__PURE__ */ Oe({
|
|
98
98
|
modelValue: {}
|
|
99
99
|
}, {
|
|
100
100
|
modelValue: {},
|
|
@@ -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
|
|
106
|
-
|
|
107
|
-
s.emitData(
|
|
105
|
+
const y = Se(F, "modelValue"), s = qe();
|
|
106
|
+
fe(() => {
|
|
107
|
+
s.emitData(y.value);
|
|
108
108
|
});
|
|
109
|
-
const
|
|
109
|
+
const u = M(""), { t: n } = P();
|
|
110
110
|
function t(e) {
|
|
111
|
-
return
|
|
112
|
-
|
|
111
|
+
return he(
|
|
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
|
-
function
|
|
120
|
-
if (!
|
|
119
|
+
function b(e, o) {
|
|
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
|
-
const
|
|
126
|
-
return
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
) ? !0 : L.length === 0 ?
|
|
125
|
+
const N = o[B];
|
|
126
|
+
return he(
|
|
127
|
+
u.value,
|
|
128
|
+
N.sublabel ? [N.label, N.sublabel] : [N.label]
|
|
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
|
-
const { children:
|
|
134
|
-
(
|
|
133
|
+
const { children: N, ...H } = e, U = N.flatMap(
|
|
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
|
}
|
|
@@ -171,32 +171,32 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
171
171
|
const [B, ...L] = e;
|
|
172
172
|
if (typeof B != "number")
|
|
173
173
|
return !1;
|
|
174
|
-
const
|
|
175
|
-
return L.length === 0 ?
|
|
174
|
+
const N = o[B];
|
|
175
|
+
return L.length === 0 ? m(N ?? []) : K(N) ? l(L, N.children ?? []) : !1;
|
|
176
176
|
}
|
|
177
|
-
function
|
|
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
|
}
|
|
185
185
|
return !1;
|
|
186
186
|
}
|
|
187
|
-
function
|
|
187
|
+
function h(e, o) {
|
|
188
188
|
const [B, ...L] = e;
|
|
189
189
|
if (typeof B != "number")
|
|
190
190
|
return !1;
|
|
191
|
-
const
|
|
192
|
-
return L.length === 0 ?
|
|
191
|
+
const N = o[B];
|
|
192
|
+
return L.length === 0 ? r(N ?? []) : K(N) ? h(L, (N == null ? void 0 : N.children) ?? []) : !1;
|
|
193
193
|
}
|
|
194
194
|
function C(e, o) {
|
|
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)
|
|
@@ -212,111 +212,111 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
212
212
|
active: o
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
|
-
function
|
|
216
|
-
const [L, ...
|
|
217
|
-
return typeof L != "number" ? o :
|
|
215
|
+
function k(e, o, B) {
|
|
216
|
+
const [L, ...N] = e;
|
|
217
|
+
return typeof L != "number" ? o : N.length === 0 ? o.map((H, U) => L !== U ? H : C(H, B)) : o.map(
|
|
218
218
|
(H, U) => L === U && K(H) ? {
|
|
219
219
|
...H,
|
|
220
|
-
children:
|
|
220
|
+
children: k(N, H.children, B)
|
|
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
|
-
function
|
|
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
|
-
function
|
|
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
|
-
const
|
|
238
|
-
() =>
|
|
237
|
+
const A = z(
|
|
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
|
-
const B = E("FmSearch"), L = E("FmCheckbox"),
|
|
245
|
-
return
|
|
244
|
+
const B = E("FmSearch"), L = E("FmCheckbox"), N = E("FmButton"), H = E("FmListItem"), U = E("FmList");
|
|
245
|
+
return S(), V("div", st, [
|
|
246
246
|
a("div", at, [
|
|
247
|
-
a("div", lt,
|
|
247
|
+
a("div", lt, j(I(n)("inventory.formField.itemsSelected", { count: A.value })), 1),
|
|
248
248
|
a("div", it, [
|
|
249
|
-
|
|
250
|
-
modelValue:
|
|
251
|
-
"onUpdate:modelValue": o[0] || (o[0] = (
|
|
252
|
-
placeholder:
|
|
249
|
+
x(B, {
|
|
250
|
+
modelValue: u.value,
|
|
251
|
+
"onUpdate:modelValue": o[0] || (o[0] = (O) => u.value = O),
|
|
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
|
-
default:
|
|
261
|
-
(
|
|
262
|
-
key:
|
|
263
|
-
class:
|
|
260
|
+
default: R(() => [
|
|
261
|
+
(S(!0), V(J, null, $(g.value, (O) => (S(), V("div", {
|
|
262
|
+
key: O.keys.join(),
|
|
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
|
]),
|
|
267
|
-
"data-cy": `nested-${
|
|
267
|
+
"data-cy": `nested-${O.keys.join("-")}-${O.label}`
|
|
268
268
|
}, [
|
|
269
|
-
|
|
270
|
-
clickable:
|
|
271
|
-
onClick: () =>
|
|
272
|
-
style:
|
|
273
|
-
paddingLeft: `${16 +
|
|
269
|
+
x(H, {
|
|
270
|
+
clickable: O.selectable !== !1,
|
|
271
|
+
onClick: () => O.selectable === !1 || O.disabled || p(O.keys, y.value, !l(O.keys, y.value)),
|
|
272
|
+
style: je({
|
|
273
|
+
paddingLeft: `${16 + O.indent * 16}px`,
|
|
274
274
|
paddingTop: "4px",
|
|
275
275
|
paddingBottom: "4px"
|
|
276
276
|
}),
|
|
277
|
-
disabled:
|
|
277
|
+
disabled: O.selectable !== !1 && O.disabled
|
|
278
278
|
}, oe({
|
|
279
|
-
default:
|
|
279
|
+
default: R(() => [
|
|
280
280
|
a("div", ut, [
|
|
281
|
-
a("div",
|
|
282
|
-
(
|
|
281
|
+
a("div", ct, [
|
|
282
|
+
(S(!0), V(J, null, $(I(ot)(u.value, O.label).segments, (T, Q) => (S(), V("span", {
|
|
283
283
|
key: Q,
|
|
284
|
-
class:
|
|
285
|
-
"font-bold":
|
|
284
|
+
class: Z({
|
|
285
|
+
"font-bold": T.isMatch
|
|
286
286
|
})
|
|
287
|
-
}, T
|
|
287
|
+
}, j(T.segment), 3))), 128))
|
|
288
288
|
]),
|
|
289
|
-
|
|
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
|
])
|
|
295
|
-
},
|
|
295
|
+
}, j(O.sublabel), 3)) : _("", !0)
|
|
296
296
|
])
|
|
297
297
|
]),
|
|
298
298
|
_: 2
|
|
299
299
|
}, [
|
|
300
|
-
|
|
300
|
+
O.selectable !== !1 ? {
|
|
301
301
|
name: "prepend",
|
|
302
|
-
fn:
|
|
303
|
-
|
|
304
|
-
disabled:
|
|
305
|
-
"model-value": l(
|
|
306
|
-
value:
|
|
307
|
-
indeterminate:
|
|
302
|
+
fn: R(() => [
|
|
303
|
+
x(L, {
|
|
304
|
+
disabled: O.disabled,
|
|
305
|
+
"model-value": l(O.keys, y.value),
|
|
306
|
+
value: O.keys,
|
|
307
|
+
indeterminate: h(O.keys, y.value)
|
|
308
308
|
}, null, 8, ["disabled", "model-value", "value", "indeterminate"])
|
|
309
309
|
]),
|
|
310
310
|
key: "0"
|
|
311
311
|
} : void 0,
|
|
312
|
-
|
|
312
|
+
O.collapsible ? {
|
|
313
313
|
name: "append",
|
|
314
|
-
fn:
|
|
315
|
-
|
|
316
|
-
"prepend-icon":
|
|
314
|
+
fn: R(() => [
|
|
315
|
+
x(N, {
|
|
316
|
+
"prepend-icon": f(O.keys) ? "expand_less" : "expand_more",
|
|
317
317
|
size: "md",
|
|
318
318
|
variant: "tertiary",
|
|
319
|
-
onClick: Te(() =>
|
|
319
|
+
onClick: Te(() => d(O.keys), ["stop"])
|
|
320
320
|
}, null, 8, ["prepend-icon", "onClick"])
|
|
321
321
|
]),
|
|
322
322
|
key: "1"
|
|
@@ -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
|
}
|
|
@@ -335,7 +335,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
335
335
|
}, gt = { class: "text-left" }, yt = { class: "min-w-64" }, At = { class: "flex flex-col" }, bt = { class: "fm-typo-en-body-md-400" }, ht = {
|
|
336
336
|
key: 0,
|
|
337
337
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
338
|
-
},
|
|
338
|
+
}, xt = { class: "w-1" }, It = /* @__PURE__ */ Y({
|
|
339
339
|
__name: "ApplyAddon",
|
|
340
340
|
props: {
|
|
341
341
|
groups: {
|
|
@@ -355,146 +355,146 @@ 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,
|
|
360
|
-
const l = s.groups.flatMap((
|
|
361
|
-
const C = s.items.find((
|
|
358
|
+
setup(F, { emit: y }) {
|
|
359
|
+
const s = F, u = y, n = ce(), t = z(() => {
|
|
360
|
+
const l = s.groups.flatMap((r) => r.items.map((h) => {
|
|
361
|
+
const C = s.items.find((k) => k._id === h._id);
|
|
362
362
|
return {
|
|
363
|
-
...
|
|
364
|
-
groupName:
|
|
365
|
-
name:
|
|
363
|
+
...h,
|
|
364
|
+
groupName: r.name,
|
|
365
|
+
name: h.name ?? (C == null ? void 0 : C.name) ?? "-"
|
|
366
366
|
};
|
|
367
367
|
}));
|
|
368
|
-
return s.modifiers.map((
|
|
369
|
-
const
|
|
368
|
+
return s.modifiers.map((r) => {
|
|
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
|
-
groupName:
|
|
373
|
+
groupName: k
|
|
374
374
|
};
|
|
375
375
|
});
|
|
376
|
-
}),
|
|
377
|
-
function
|
|
378
|
-
|
|
376
|
+
}), i = z(() => s.groups.flatMap((l) => l.items.map((r) => ({ ...r, groupId: l._id }))));
|
|
377
|
+
function b({ selection: l }) {
|
|
378
|
+
u(
|
|
379
379
|
"update:modifiers",
|
|
380
|
-
s.modifiers.filter((
|
|
380
|
+
s.modifiers.filter((r) => r.selection !== l)
|
|
381
381
|
);
|
|
382
382
|
}
|
|
383
|
-
function
|
|
384
|
-
const
|
|
385
|
-
|
|
383
|
+
function w({ selection: l }, r) {
|
|
384
|
+
const h = s.modifiers.find((C) => C.selection === l);
|
|
385
|
+
h && (h.code = r);
|
|
386
386
|
}
|
|
387
|
-
function
|
|
387
|
+
function g() {
|
|
388
388
|
let l = [];
|
|
389
|
-
s.groups.forEach((
|
|
389
|
+
s.groups.forEach((h) => {
|
|
390
390
|
let C = !1;
|
|
391
|
-
|
|
392
|
-
label:
|
|
391
|
+
h.items.every((k) => k._id.startsWith("item")) && (C = !0), l.push({
|
|
392
|
+
label: h.name,
|
|
393
393
|
sublabel: "Group",
|
|
394
|
-
value:
|
|
394
|
+
value: h._id,
|
|
395
395
|
disabled: C,
|
|
396
|
-
children:
|
|
397
|
-
var
|
|
398
|
-
const
|
|
399
|
-
(
|
|
396
|
+
children: h.items.reduce((k, v) => {
|
|
397
|
+
var c;
|
|
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:
|
|
407
|
+
active: !!s.modifiers.find(({ selection: A }) => A === v.selection)
|
|
408
408
|
}
|
|
409
409
|
];
|
|
410
410
|
}, [])
|
|
411
411
|
});
|
|
412
412
|
});
|
|
413
|
-
const
|
|
413
|
+
const r = {
|
|
414
414
|
modelValue: l
|
|
415
415
|
};
|
|
416
416
|
n.open({
|
|
417
417
|
title: "Select Addons",
|
|
418
|
-
contentComponent:
|
|
419
|
-
contentComponentProps:
|
|
418
|
+
contentComponent: Re,
|
|
419
|
+
contentComponentProps: r,
|
|
420
420
|
primaryActions: {
|
|
421
421
|
text: "Confirm",
|
|
422
422
|
close: !0
|
|
423
423
|
}
|
|
424
|
-
}).onPrimary((
|
|
425
|
-
const C =
|
|
426
|
-
let
|
|
427
|
-
function
|
|
428
|
-
if (
|
|
429
|
-
for (let
|
|
430
|
-
|
|
424
|
+
}).onPrimary((h) => {
|
|
425
|
+
const C = ee(s.modifiers);
|
|
426
|
+
let k = [];
|
|
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
|
-
|
|
433
|
-
|
|
432
|
+
h.forEach((f) => {
|
|
433
|
+
v(f, (d) => {
|
|
434
434
|
var e;
|
|
435
|
-
if (s.groups.find(({ _id: o }) => o ===
|
|
436
|
-
const
|
|
437
|
-
!K(
|
|
438
|
-
addonGroupId: (
|
|
439
|
-
selection:
|
|
440
|
-
code: ((e = C.find(({ selection: o }) =>
|
|
435
|
+
if (s.groups.find(({ _id: o }) => o === d.value)) return;
|
|
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
|
+
addonGroupId: (A == null ? void 0 : A.groupId) ?? "",
|
|
439
|
+
selection: d.value,
|
|
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:
|
|
447
|
-
return (l,
|
|
448
|
-
const
|
|
449
|
-
return
|
|
446
|
+
const { t: m } = P();
|
|
447
|
+
return (l, r) => {
|
|
448
|
+
const h = E("FmButton"), C = E("FmTextField");
|
|
449
|
+
return S(), V("div", mt, [
|
|
450
450
|
a("div", ft, [
|
|
451
|
-
a("div", pt,
|
|
452
|
-
|
|
451
|
+
a("div", pt, j(I(m)("inventory.integration.apply.addons")), 1),
|
|
452
|
+
x(h, {
|
|
453
453
|
type: "button",
|
|
454
454
|
variant: "plain",
|
|
455
455
|
size: "md",
|
|
456
456
|
icon: "link",
|
|
457
|
-
label:
|
|
458
|
-
onClick:
|
|
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,
|
|
465
|
-
a("th", null,
|
|
466
|
-
|
|
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
|
+
r[1] || (r[1] = a("th", { class: "w-1" }, " ", -1))
|
|
467
467
|
]),
|
|
468
|
-
(
|
|
469
|
-
|
|
468
|
+
(S(!0), V(J, null, $(t.value, (k, v) => (S(), V(J, { key: v }, [
|
|
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
|
-
a("div", bt,
|
|
474
|
-
|
|
473
|
+
a("div", bt, j(k.name), 1),
|
|
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
|
-
"model-value":
|
|
481
|
-
"onUpdate:modelValue": [(
|
|
480
|
+
"model-value": k.code,
|
|
481
|
+
"onUpdate:modelValue": [(f) => k.code = f, (f) => w(k, f)],
|
|
482
482
|
rules: [
|
|
483
|
-
function(
|
|
484
|
-
return !!
|
|
483
|
+
function(d) {
|
|
484
|
+
return !!d || "Required";
|
|
485
485
|
}
|
|
486
486
|
]
|
|
487
487
|
}, null, 8, ["disabled", "model-value", "onUpdate:modelValue", "rules"])
|
|
488
488
|
]),
|
|
489
|
-
a("td",
|
|
490
|
-
|
|
489
|
+
a("td", xt, [
|
|
490
|
+
x(h, {
|
|
491
491
|
disabled: F.loading,
|
|
492
492
|
type: "button",
|
|
493
493
|
variant: "tertiary",
|
|
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,74 +505,74 @@ 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
|
|
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: (((
|
|
521
|
-
const C =
|
|
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
|
-
...
|
|
524
|
-
codeName: [C,
|
|
523
|
+
...h,
|
|
524
|
+
codeName: [C, k].filter((v) => !!v).join(" ").trim() || "-"
|
|
525
525
|
};
|
|
526
526
|
})
|
|
527
527
|
}
|
|
528
528
|
};
|
|
529
|
-
return t[
|
|
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
|
}
|
|
569
569
|
const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-100 px-5 py-5 gap-5 mb-3" }, Ct = { class: "flex items-center" }, Et = { class: "text-lg font-bold flex-grow" }, Ft = {
|
|
570
570
|
key: 0,
|
|
571
571
|
class: "table-auto w-full"
|
|
572
|
-
}, Lt = { class: "text-left" }, Vt = { class: "min-w-64" }, Nt = { class: "flex flex-col" },
|
|
572
|
+
}, Lt = { class: "text-left" }, Vt = { class: "min-w-64" }, Nt = { class: "flex flex-col" }, Dt = { class: "fm-typo-en-body-md-400" }, Rt = {
|
|
573
573
|
key: 0,
|
|
574
574
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
575
|
-
}, Mt = { class: "w-1" },
|
|
575
|
+
}, Mt = { class: "w-1" }, me = /* @__PURE__ */ Y({
|
|
576
576
|
__name: "ApplyProduct",
|
|
577
577
|
props: {
|
|
578
578
|
isAddon: {
|
|
@@ -597,207 +597,207 @@ 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
|
-
return s.bindings.map((
|
|
606
|
-
const
|
|
605
|
+
return s.bindings.map((d) => {
|
|
606
|
+
const c = s.menus.find((p) => p._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
607
607
|
return {
|
|
608
|
-
...
|
|
609
|
-
name:
|
|
610
|
-
itemCode: (
|
|
608
|
+
...d,
|
|
609
|
+
name: A,
|
|
610
|
+
itemCode: (c == null ? void 0 : c.code) ?? "-"
|
|
611
611
|
};
|
|
612
612
|
});
|
|
613
|
-
const
|
|
614
|
-
return s.bindings.map((
|
|
613
|
+
const f = b.value.flatMap((d) => d.items);
|
|
614
|
+
return s.bindings.map((d) => {
|
|
615
615
|
var o;
|
|
616
|
-
const
|
|
617
|
-
let
|
|
618
|
-
if (
|
|
619
|
-
const B = (((o =
|
|
620
|
-
(L) => L.combinationKey ===
|
|
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
|
+
if (d.combinationKey) {
|
|
619
|
+
const B = (((o = c == null ? void 0 : c.variant) == null ? void 0 : o.variantCombinations) || []).find(
|
|
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
|
-
...
|
|
626
|
-
name:
|
|
627
|
-
itemCode:
|
|
625
|
+
...d,
|
|
626
|
+
name: A,
|
|
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
|
-
(
|
|
636
|
+
(d) => d.productId !== f.productId || d.combinationKey !== f.combinationKey
|
|
637
637
|
)
|
|
638
638
|
);
|
|
639
639
|
}
|
|
640
|
-
function
|
|
641
|
-
const
|
|
642
|
-
(
|
|
640
|
+
function m({ productId: f, combinationKey: d }, c) {
|
|
641
|
+
const A = s.bindings.find(
|
|
642
|
+
(p) => p.productId === f && p.combinationKey === d
|
|
643
643
|
);
|
|
644
|
-
|
|
644
|
+
A && (A.code = c);
|
|
645
645
|
}
|
|
646
646
|
function l() {
|
|
647
|
-
return
|
|
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:
|
|
653
|
-
var
|
|
654
|
-
const
|
|
655
|
-
return
|
|
656
|
-
label:
|
|
657
|
-
value:
|
|
652
|
+
children: f.items.map((d) => {
|
|
653
|
+
var A;
|
|
654
|
+
const c = (A = d.variant) == null ? void 0 : A.variantCombinations;
|
|
655
|
+
return c != null && c.length ? {
|
|
656
|
+
label: d.name ?? "",
|
|
657
|
+
value: d._id,
|
|
658
658
|
sublabel: "Product",
|
|
659
659
|
children: [
|
|
660
660
|
{
|
|
661
|
-
label:
|
|
661
|
+
label: d.codeName ?? "",
|
|
662
662
|
value: {
|
|
663
|
-
productId:
|
|
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
|
-
...
|
|
670
|
-
label:
|
|
669
|
+
...c.map((p) => ({
|
|
670
|
+
label: p.codeName ?? "",
|
|
671
671
|
value: {
|
|
672
|
-
productId:
|
|
673
|
-
combinationKey:
|
|
672
|
+
productId: d._id,
|
|
673
|
+
combinationKey: p.combinationKey
|
|
674
674
|
},
|
|
675
675
|
sublabel: "Variant",
|
|
676
676
|
active: !!s.bindings.find(
|
|
677
|
-
({ productId: e, combinationKey: o }) =>
|
|
677
|
+
({ productId: e, combinationKey: o }) => d._id === e && p.combinationKey === o
|
|
678
678
|
)
|
|
679
679
|
}))
|
|
680
680
|
]
|
|
681
681
|
} : {
|
|
682
|
-
label:
|
|
682
|
+
label: d.codeName ?? "",
|
|
683
683
|
value: {
|
|
684
|
-
productId:
|
|
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
|
-
function
|
|
694
|
-
return s.menus.map((
|
|
695
|
-
label:
|
|
696
|
-
value: { productId:
|
|
693
|
+
function r() {
|
|
694
|
+
return s.menus.map((f) => ({
|
|
695
|
+
label: f.name,
|
|
696
|
+
value: { productId: f._id },
|
|
697
697
|
active: !!s.bindings.find(
|
|
698
|
-
({ productId:
|
|
698
|
+
({ productId: d, combinationKey: c }) => f._id === d && !c
|
|
699
699
|
)
|
|
700
700
|
}));
|
|
701
701
|
}
|
|
702
|
-
function
|
|
703
|
-
const
|
|
704
|
-
return
|
|
702
|
+
function h(f) {
|
|
703
|
+
const d = ee(s.bindings);
|
|
704
|
+
return f.flatMap((c) => c.children.flatMap((A) => {
|
|
705
705
|
var e;
|
|
706
|
-
if (K(
|
|
707
|
-
return
|
|
708
|
-
var
|
|
706
|
+
if (K(A))
|
|
707
|
+
return A.children.filter((o) => o.active).map((o) => {
|
|
708
|
+
var N, H;
|
|
709
709
|
const { productId: B, combinationKey: L } = o.value;
|
|
710
710
|
return L ? {
|
|
711
711
|
productId: B,
|
|
712
712
|
combinationKey: L,
|
|
713
|
-
code: ((
|
|
714
|
-
({ productId: U, combinationKey:
|
|
715
|
-
)) == null ? void 0 :
|
|
713
|
+
code: ((N = d.find(
|
|
714
|
+
({ productId: U, combinationKey: O }) => B === U && L === O
|
|
715
|
+
)) == null ? void 0 : N.code) ?? ""
|
|
716
716
|
} : {
|
|
717
717
|
productId: B,
|
|
718
|
-
code: ((H =
|
|
718
|
+
code: ((H = d.find(({ productId: U, combinationKey: O }) => B === U && !O)) == null ? void 0 : H.code) ?? ""
|
|
719
719
|
};
|
|
720
720
|
});
|
|
721
|
-
if (!
|
|
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 =
|
|
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(
|
|
733
|
-
const
|
|
734
|
-
return
|
|
735
|
-
(
|
|
736
|
-
var
|
|
732
|
+
function C(f) {
|
|
733
|
+
const d = ee(s.bindings);
|
|
734
|
+
return f.filter((c) => c.active).map(
|
|
735
|
+
(c) => {
|
|
736
|
+
var A;
|
|
737
737
|
return {
|
|
738
|
-
productId:
|
|
739
|
-
code: ((
|
|
738
|
+
productId: c.value.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
|
-
function
|
|
745
|
-
let
|
|
746
|
-
s.isAddon ?
|
|
747
|
-
const
|
|
748
|
-
modelValue:
|
|
744
|
+
function k() {
|
|
745
|
+
let f;
|
|
746
|
+
s.isAddon ? f = r() : f = l();
|
|
747
|
+
const d = {
|
|
748
|
+
modelValue: f
|
|
749
749
|
};
|
|
750
750
|
n.open({
|
|
751
751
|
title: `Select ${t.value}`,
|
|
752
|
-
contentComponent:
|
|
753
|
-
contentComponentProps:
|
|
752
|
+
contentComponent: Re,
|
|
753
|
+
contentComponentProps: d,
|
|
754
754
|
primaryActions: {
|
|
755
755
|
text: "Confirm",
|
|
756
756
|
close: !0
|
|
757
757
|
}
|
|
758
|
-
}).onPrimary((
|
|
759
|
-
let
|
|
760
|
-
s.isAddon ?
|
|
758
|
+
}).onPrimary((c) => {
|
|
759
|
+
let A;
|
|
760
|
+
s.isAddon ? A = C(c) : A = h(c), u("update:bindings", A);
|
|
761
761
|
});
|
|
762
762
|
}
|
|
763
|
-
const { t:
|
|
764
|
-
return (
|
|
765
|
-
const
|
|
766
|
-
return
|
|
763
|
+
const { t: v } = P();
|
|
764
|
+
return (f, d) => {
|
|
765
|
+
const c = E("FmButton"), A = E("FmTextField");
|
|
766
|
+
return S(), V("div", Bt, [
|
|
767
767
|
a("div", Ct, [
|
|
768
|
-
a("div", Et,
|
|
769
|
-
|
|
768
|
+
a("div", Et, j(F.isAddon ? I(v)("inventory.integration.apply.addons") : I(v)("inventory.integration.apply.products")), 1),
|
|
769
|
+
x(c, {
|
|
770
770
|
type: "button",
|
|
771
771
|
variant: "plain",
|
|
772
772
|
size: "md",
|
|
773
773
|
icon: "link",
|
|
774
|
-
label: F.isAddon ?
|
|
775
|
-
onClick:
|
|
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,
|
|
783
|
-
a("th", null,
|
|
784
|
-
|
|
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
|
+
d[1] || (d[1] = a("th", { class: "w-1" }, " ", -1))
|
|
785
785
|
])
|
|
786
786
|
]),
|
|
787
787
|
a("tbody", null, [
|
|
788
|
-
(
|
|
789
|
-
|
|
788
|
+
(S(!0), V(J, null, $(w.value, (p, e) => (S(), V(J, { key: e }, [
|
|
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",
|
|
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
|
-
|
|
799
|
-
"model-value":
|
|
800
|
-
"onUpdate:modelValue": [(o) =>
|
|
798
|
+
x(A, {
|
|
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";
|
|
@@ -806,13 +806,13 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
806
806
|
}, null, 8, ["model-value", "onUpdate:modelValue", "rules"])
|
|
807
807
|
]),
|
|
808
808
|
a("td", Mt, [
|
|
809
|
-
|
|
809
|
+
x(c, {
|
|
810
810
|
type: "button",
|
|
811
811
|
variant: "tertiary",
|
|
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
|
])
|
|
@@ -823,7 +823,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
823
823
|
]);
|
|
824
824
|
};
|
|
825
825
|
}
|
|
826
|
-
}),
|
|
826
|
+
}), Ot = { class: "flex flex-col gap-8 w-full" }, jt = /* @__PURE__ */ Y({
|
|
827
827
|
__name: "ApplyProductDialog",
|
|
828
828
|
props: {
|
|
829
829
|
categories: { default: () => [] },
|
|
@@ -835,68 +835,68 @@ 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
|
-
|
|
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 =
|
|
846
|
-
function
|
|
847
|
-
var
|
|
848
|
-
(l = (
|
|
845
|
+
const t = M(), i = ae(s, "show");
|
|
846
|
+
function b() {
|
|
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 (
|
|
855
|
-
const
|
|
856
|
-
return
|
|
857
|
-
modelValue:
|
|
858
|
-
"onUpdate:modelValue": l[4] || (l[4] = (
|
|
859
|
-
header:
|
|
853
|
+
const { t: g } = P();
|
|
854
|
+
return (m, l) => {
|
|
855
|
+
const r = E("FmChip"), h = E("FmForm"), C = E("FmButton"), k = E("FmSideSheet");
|
|
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
|
|
863
863
|
}, {
|
|
864
|
-
default:
|
|
865
|
-
a("div",
|
|
864
|
+
default: R(() => [
|
|
865
|
+
a("div", Ot, [
|
|
866
866
|
a("div", null, [
|
|
867
|
-
|
|
867
|
+
x(r, { label: "Menu v3" })
|
|
868
868
|
]),
|
|
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
|
-
default:
|
|
875
|
-
|
|
874
|
+
default: R(() => [
|
|
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
|
|
891
891
|
}, 512)
|
|
892
892
|
])
|
|
893
893
|
]),
|
|
894
|
-
"side-sheet-footer":
|
|
895
|
-
|
|
896
|
-
loading:
|
|
894
|
+
"side-sheet-footer": R(() => [
|
|
895
|
+
x(C, {
|
|
896
|
+
loading: m.loading,
|
|
897
897
|
type: "submit",
|
|
898
|
-
label:
|
|
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,82 +915,82 @@ 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
|
-
|
|
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
|
-
})),
|
|
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
|
|
936
|
-
n.bindings = [...
|
|
935
|
+
function m(v) {
|
|
936
|
+
n.bindings = [...w.value, ...v];
|
|
937
937
|
}
|
|
938
|
-
const l =
|
|
939
|
-
function
|
|
940
|
-
var
|
|
941
|
-
(
|
|
938
|
+
const l = M(), r = ae(s, "show");
|
|
939
|
+
function h() {
|
|
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:
|
|
947
|
-
return (
|
|
948
|
-
const
|
|
949
|
-
return
|
|
950
|
-
modelValue:
|
|
951
|
-
"onUpdate:modelValue":
|
|
952
|
-
header:
|
|
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
|
+
modelValue: I(r),
|
|
951
|
+
"onUpdate:modelValue": f[4] || (f[4] = (e) => se(r) ? r.value = e : null),
|
|
952
|
+
header: I(k)("inventory.integration.apply.title"),
|
|
953
953
|
"dismiss-away": "",
|
|
954
954
|
"close-button": "",
|
|
955
955
|
"max-width": 500
|
|
956
956
|
}, {
|
|
957
|
-
default:
|
|
957
|
+
default: R(() => [
|
|
958
958
|
a("div", Tt, [
|
|
959
959
|
a("div", null, [
|
|
960
|
-
|
|
960
|
+
x(d, { label: "Menu v4" })
|
|
961
961
|
]),
|
|
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
|
-
default:
|
|
968
|
-
|
|
969
|
-
categories:
|
|
970
|
-
variants:
|
|
971
|
-
bindings:
|
|
972
|
-
menus:
|
|
973
|
-
"onUpdate:bindings":
|
|
967
|
+
default: R(() => [
|
|
968
|
+
x(me, {
|
|
969
|
+
categories: v.categories,
|
|
970
|
+
variants: v.variants,
|
|
971
|
+
bindings: w.value,
|
|
972
|
+
menus: b.value,
|
|
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
|
|
985
985
|
}, 512)
|
|
986
986
|
])
|
|
987
987
|
]),
|
|
988
|
-
"side-sheet-footer":
|
|
989
|
-
|
|
990
|
-
loading:
|
|
988
|
+
"side-sheet-footer": R(() => [
|
|
989
|
+
x(A, {
|
|
990
|
+
loading: v.loading,
|
|
991
991
|
type: "submit",
|
|
992
|
-
label:
|
|
993
|
-
onClick:
|
|
992
|
+
label: I(k)("common.confirm"),
|
|
993
|
+
onClick: f[3] || (f[3] = (e) => h())
|
|
994
994
|
}, null, 8, ["loading", "label"])
|
|
995
995
|
]),
|
|
996
996
|
_: 1
|
|
@@ -1000,65 +1000,65 @@ 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
|
|
1004
|
-
var
|
|
1005
|
-
return (
|
|
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
|
+
var c;
|
|
1005
|
+
return (c = y.currentBusiness.value) == null ? void 0 : c.menuVersion;
|
|
1006
1006
|
});
|
|
1007
|
-
|
|
1008
|
-
const
|
|
1009
|
-
async function
|
|
1010
|
-
|
|
1007
|
+
u.watchLocation(t.init);
|
|
1008
|
+
const r = M(!1);
|
|
1009
|
+
async function h() {
|
|
1010
|
+
r.value = !0;
|
|
1011
1011
|
}
|
|
1012
|
-
const { breakpoints: C } = Ve(),
|
|
1013
|
-
async function
|
|
1014
|
-
const
|
|
1015
|
-
if (
|
|
1012
|
+
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm), v = z(() => k.value);
|
|
1013
|
+
async function f() {
|
|
1014
|
+
const c = t.state.setting;
|
|
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"
|
|
1022
|
-
}),
|
|
1022
|
+
}), r.value = !1, await t.init();
|
|
1023
1023
|
return;
|
|
1024
|
-
} catch (
|
|
1024
|
+
} catch (A) {
|
|
1025
1025
|
s.open({
|
|
1026
1026
|
title: "Something went wrong",
|
|
1027
1027
|
message: "Cannot update integration info. Please try again.",
|
|
1028
1028
|
type: "error"
|
|
1029
|
-
}), console.error("Error at updating integration info",
|
|
1029
|
+
}), console.error("Error at updating integration info", A);
|
|
1030
1030
|
} finally {
|
|
1031
1031
|
n.value = !1;
|
|
1032
1032
|
}
|
|
1033
1033
|
}
|
|
1034
1034
|
}
|
|
1035
|
-
const { t:
|
|
1036
|
-
return (
|
|
1037
|
-
const
|
|
1038
|
-
return
|
|
1039
|
-
|
|
1040
|
-
class:
|
|
1041
|
-
"w-full":
|
|
1042
|
-
"w-1/2": !
|
|
1035
|
+
const { t: d } = P();
|
|
1036
|
+
return (c, A) => {
|
|
1037
|
+
const p = E("FmCardSection"), e = E("FmCard");
|
|
1038
|
+
return I(t).isEnabled && !I(t).isBusinessLocation ? (S(), V("div", Ht, [
|
|
1039
|
+
x(e, {
|
|
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,
|
|
1046
1046
|
"hover:border-fm-color-primary": !0
|
|
1047
1047
|
}),
|
|
1048
|
-
onClick:
|
|
1048
|
+
onClick: A[0] || (A[0] = (o) => h())
|
|
1049
1049
|
}, {
|
|
1050
|
-
default:
|
|
1051
|
-
|
|
1052
|
-
default:
|
|
1050
|
+
default: R(() => [
|
|
1051
|
+
x(p, null, {
|
|
1052
|
+
default: R(() => [
|
|
1053
1053
|
a("div", _t, [
|
|
1054
1054
|
a("img", {
|
|
1055
|
-
src:
|
|
1055
|
+
src: I(tt),
|
|
1056
1056
|
alt: "Food Market Hub"
|
|
1057
1057
|
}, null, 8, Xt)
|
|
1058
1058
|
]),
|
|
1059
1059
|
a("div", Ut, [
|
|
1060
|
-
a("div", Qt,
|
|
1061
|
-
a("div", Yt,
|
|
1060
|
+
a("div", Qt, j(I(d)("inventory.integration.fmh.title")), 1),
|
|
1061
|
+
a("div", Yt, j(I(d)("inventory.integration.fmh.description")), 1)
|
|
1062
1062
|
])
|
|
1063
1063
|
]),
|
|
1064
1064
|
_: 1
|
|
@@ -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
|
-
|
|
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:
|
|
1076
|
-
setting:
|
|
1077
|
-
"onUpdate:setting":
|
|
1078
|
-
show:
|
|
1079
|
-
"onUpdate:show":
|
|
1080
|
-
groups:
|
|
1073
|
+
menus: i.value,
|
|
1074
|
+
variants: w.value,
|
|
1075
|
+
categories: g.value,
|
|
1076
|
+
setting: I(t).state.setting,
|
|
1077
|
+
"onUpdate:setting": A[1] || (A[1] = (o) => I(t).state.setting = o),
|
|
1078
|
+
show: r.value,
|
|
1079
|
+
"onUpdate:show": A[2] || (A[2] = (o) => r.value = o),
|
|
1080
|
+
groups: b.value,
|
|
1081
1081
|
loading: n.value,
|
|
1082
|
-
onSubmit:
|
|
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:
|
|
1088
|
-
setting:
|
|
1089
|
-
"onUpdate:setting":
|
|
1090
|
-
show:
|
|
1091
|
-
"onUpdate:show":
|
|
1092
|
-
groups:
|
|
1085
|
+
menus: i.value,
|
|
1086
|
+
variants: w.value,
|
|
1087
|
+
categories: g.value,
|
|
1088
|
+
setting: I(t).state.setting,
|
|
1089
|
+
"onUpdate:setting": A[4] || (A[4] = (o) => I(t).state.setting = o),
|
|
1090
|
+
show: r.value,
|
|
1091
|
+
"onUpdate:show": A[5] || (A[5] = (o) => r.value = o),
|
|
1092
|
+
groups: b.value,
|
|
1093
1093
|
loading: n.value,
|
|
1094
|
-
onSubmit:
|
|
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+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", 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/jtwU6bIcu24eHh3du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ASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/onAgQgWwCra2th6mqulBTlEWKYjRyVZ2nKspcnHPO1bjCjW0IsVvhbKvO2OvDw8NbBwcH38iOha6IABEgAqUnULUGvb390DlcmXEbMrCQK8wwUWncPEv9DegKvycS6bk/5eLRSbC99VKmqKcgujEzSpv0GVd4zFD0qyOR/hdMOae/HStWLGW1tfcoijUjukMQmBoXB5TJOrjNE8AZV3Ujfnk0OvD3LGFctLW1BX2qcgtTmB+Xltis0t5f5+pvkwEFDwRjXwyHwy+61SAYDAY0wzhS0dT3KIwfh3wuRxww5ooM6L1AspVz5WXG2J+4zp8Z1fWe/v7+/UXocaimql9HuIMY56nnG9cBQH+4OxL5lts43cqvWLGipq6u5ivg0AEV4iK8eL7xzPjwT7/Oey+ORtPPvlP8TU1NtbNmNIh42g2FJeIRsoxxHzdYH3h9NhqNpt4hazzt7cGPI9mz4T5m835Zxct2DZ1qUKG7vzva+/18iXaEgncj78sYT+c9n7xXfniPxX0a3LV7z2e2bds25FW8FE/lEvBVrmr5NTOMmTWqppwEqQW2RXpGcJUrHe3tK18Ihwf6MpwnfArjciRTlbcVighGAf+pdxSSS/hrWgNKOuQLxUXWUSiXWcKOF9ZY7Ay60NbHVFuDgQdmLozVaY4JlNgjV3+rS1IBZhjfcKmK1hEM/pui8ovA/1iGGwaT4zIK5SCEOQhhgwh4GtOYUqv6utqDbU/AkN0Ho9UjGyGa/zMheyo0EM9DVjBcbcpyKNHF0NCQBoN+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzR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dyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", Zt = { class: "flex-col items-center" }, Pt = { class: "flex gap-2" }, Gt = {
|
|
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
|
|
1125
|
-
return
|
|
1126
|
-
a("div",
|
|
1127
|
-
|
|
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
|
+
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
|
-
|
|
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,
|
|
1158
|
-
a("span", tn, "ID: " +
|
|
1159
|
-
a("span", nn, "Subsidiary: " +
|
|
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,24 +1183,24 @@ 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",
|
|
1191
|
-
cell(
|
|
1192
|
-
const C =
|
|
1191
|
+
cell(h) {
|
|
1192
|
+
const C = h.row.original, k = D(ne.FmIcon, {
|
|
1193
1193
|
name: C.type,
|
|
1194
1194
|
color: "neutral-gray-400",
|
|
1195
1195
|
size: "md",
|
|
1196
1196
|
class: "mr-2",
|
|
1197
1197
|
outline: !0
|
|
1198
1198
|
});
|
|
1199
|
-
return
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1199
|
+
return D("div", { class: "flex items-center" }, [
|
|
1200
|
+
k,
|
|
1201
|
+
D("div", { class: "flex flex-col" }, [
|
|
1202
|
+
D("span", { class: "font-medium" }, C.name),
|
|
1203
|
+
D("span", { class: "text-xs text-gray-400" }, C.doc._id)
|
|
1204
1204
|
])
|
|
1205
1205
|
]);
|
|
1206
1206
|
}
|
|
@@ -1208,85 +1208,85 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1208
1208
|
{
|
|
1209
1209
|
id: "nsLocation",
|
|
1210
1210
|
header: "NetSuite Location",
|
|
1211
|
-
cell(
|
|
1212
|
-
const C =
|
|
1213
|
-
([
|
|
1211
|
+
cell(h) {
|
|
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
|
-
return
|
|
1216
|
-
isDuplicate:
|
|
1217
|
-
nsLocationOptions:
|
|
1218
|
-
modelValue:
|
|
1215
|
+
return D(on, {
|
|
1216
|
+
isDuplicate: v,
|
|
1217
|
+
nsLocationOptions: m.value,
|
|
1218
|
+
modelValue: k,
|
|
1219
1219
|
fmLocation: C,
|
|
1220
|
-
"onUpdate:modelValue": (
|
|
1221
|
-
|
|
1222
|
-
...
|
|
1220
|
+
"onUpdate:modelValue": (f) => {
|
|
1221
|
+
f.netsuiteId ? b.value = {
|
|
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
|
-
} : delete
|
|
1229
|
+
} : delete b.value[C.dbName];
|
|
1230
1230
|
}
|
|
1231
1231
|
});
|
|
1232
1232
|
}
|
|
1233
1233
|
}
|
|
1234
|
-
], t = F,
|
|
1235
|
-
label:
|
|
1236
|
-
value:
|
|
1237
|
-
}))), l = z(() => Object.values(
|
|
1238
|
-
(
|
|
1234
|
+
], t = F, i = y, b = M({}), w = M(), g = M(""), m = z(() => t.nsLocationsNotBeingUsed.map((h) => ({
|
|
1235
|
+
label: h.name,
|
|
1236
|
+
value: h
|
|
1237
|
+
}))), l = z(() => Object.values(b.value).length === 0 || Object.values(b.value).some(
|
|
1238
|
+
(h) => Object.values(b.value).filter((C) => C.netsuiteId === h.netsuiteId).length > 1
|
|
1239
1239
|
));
|
|
1240
|
-
async function
|
|
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
|
-
return (
|
|
1256
|
-
const
|
|
1257
|
-
return
|
|
1255
|
+
return (h, C) => {
|
|
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
|
-
"onUpdate:modelValue": C[2] || (C[2] = (
|
|
1259
|
+
"onUpdate:modelValue": C[2] || (C[2] = (A) => h.$emit("update:showDialog", A)),
|
|
1260
1260
|
overlay: !0,
|
|
1261
1261
|
"max-width": "900px"
|
|
1262
1262
|
}, {
|
|
1263
|
-
"dialog-header":
|
|
1263
|
+
"dialog-header": R(() => C[3] || (C[3] = [
|
|
1264
1264
|
a("div", null, "Add locations", -1)
|
|
1265
1265
|
])),
|
|
1266
|
-
"dialog-footer":
|
|
1267
|
-
|
|
1268
|
-
|
|
1266
|
+
"dialog-footer": R(() => [
|
|
1267
|
+
x(f, { class: "sm:hidden xs:hidden" }),
|
|
1268
|
+
x(d, {
|
|
1269
1269
|
class: "sm:w-full xs:w-full",
|
|
1270
1270
|
label: "Submit",
|
|
1271
1271
|
size: "md",
|
|
1272
1272
|
disabled: l.value,
|
|
1273
|
-
onClick:
|
|
1273
|
+
onClick: r
|
|
1274
1274
|
}, null, 8, ["disabled"])
|
|
1275
1275
|
]),
|
|
1276
|
-
default:
|
|
1277
|
-
|
|
1276
|
+
default: R(() => [
|
|
1277
|
+
x(v, {
|
|
1278
1278
|
ref: "formRef",
|
|
1279
1279
|
class: "mb-4",
|
|
1280
|
-
"model-value":
|
|
1281
|
-
"onUpdate:modelValue": C[1] || (C[1] = (
|
|
1280
|
+
"model-value": w.value,
|
|
1281
|
+
"onUpdate:modelValue": C[1] || (C[1] = (A) => w.value = A)
|
|
1282
1282
|
}, {
|
|
1283
|
-
default:
|
|
1284
|
-
|
|
1285
|
-
modelValue:
|
|
1286
|
-
"onUpdate:modelValue": C[0] || (C[0] = (
|
|
1283
|
+
default: R(() => [
|
|
1284
|
+
x(k, {
|
|
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
|
]),
|
|
@@ -1300,7 +1300,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1300
1300
|
}), an = { key: 0 }, ln = {
|
|
1301
1301
|
key: 1,
|
|
1302
1302
|
class: "flex flex-col gap-8 w-full"
|
|
1303
|
-
}, rn = { class: "flex gap-2 flex-wrap" }, un = { class: "p-8" },
|
|
1303
|
+
}, rn = { class: "flex gap-2 flex-wrap" }, un = { class: "p-8" }, cn = { class: "flex gap-8 items-center justify-start" }, dn = /* @__PURE__ */ Y({
|
|
1304
1304
|
__name: "BusinessNetSuiteSideSheet",
|
|
1305
1305
|
props: {
|
|
1306
1306
|
setting: {},
|
|
@@ -1309,37 +1309,37 @@ 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(),
|
|
1314
|
-
|
|
1315
|
-
if (
|
|
1316
|
-
for (const
|
|
1317
|
-
|
|
1312
|
+
setup(F, { emit: y }) {
|
|
1313
|
+
const s = ie(), u = W(), n = M(!1), t = F, i = y, b = pe(ee(t.setting));
|
|
1314
|
+
ve([() => t.show], ([d]) => {
|
|
1315
|
+
if (d)
|
|
1316
|
+
for (const c of Object.keys(t.setting))
|
|
1317
|
+
b[c] = t.setting[c];
|
|
1318
1318
|
});
|
|
1319
|
-
const
|
|
1320
|
-
(
|
|
1321
|
-
)),
|
|
1319
|
+
const w = M(), g = ae(t, "show"), m = M(), l = M(""), r = z(() => t.setting.locations.filter(
|
|
1320
|
+
(d) => d.name.toLowerCase().includes(l.value.toLowerCase()) || d.netSuiteId.toLowerCase().includes(l.value.toLowerCase())
|
|
1321
|
+
)), h = [
|
|
1322
1322
|
{
|
|
1323
1323
|
id: "location",
|
|
1324
1324
|
header: () => "FeedMe Location",
|
|
1325
|
-
cell(
|
|
1326
|
-
const
|
|
1327
|
-
(e) => e.type ===
|
|
1325
|
+
cell(d) {
|
|
1326
|
+
const c = d.row.original, A = u.locations.find(
|
|
1327
|
+
(e) => e.type === c.type && e.doc._id === c.id
|
|
1328
1328
|
);
|
|
1329
|
-
if (!
|
|
1330
|
-
return
|
|
1331
|
-
const
|
|
1332
|
-
name:
|
|
1329
|
+
if (!A)
|
|
1330
|
+
return D("div", "Unknown Location");
|
|
1331
|
+
const p = D(ne.FmIcon, {
|
|
1332
|
+
name: A.type,
|
|
1333
1333
|
color: "neutral-gray-400",
|
|
1334
1334
|
size: "md",
|
|
1335
1335
|
class: "mr-2",
|
|
1336
1336
|
outline: !0
|
|
1337
1337
|
});
|
|
1338
|
-
return
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1338
|
+
return D("div", { class: "flex items-center" }, [
|
|
1339
|
+
p,
|
|
1340
|
+
D("div", { class: "flex flex-col" }, [
|
|
1341
|
+
D("span", { class: "font-medium" }, A.name),
|
|
1342
|
+
D("span", { class: "text-xs text-gray-400" }, A.doc._id)
|
|
1343
1343
|
])
|
|
1344
1344
|
]);
|
|
1345
1345
|
}
|
|
@@ -1347,28 +1347,28 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1347
1347
|
{
|
|
1348
1348
|
id: "netsuite",
|
|
1349
1349
|
header: () => "NetSuite Location",
|
|
1350
|
-
cell(
|
|
1350
|
+
cell(d) {
|
|
1351
1351
|
var e;
|
|
1352
|
-
const
|
|
1353
|
-
(o) => o.netsuiteId ===
|
|
1354
|
-
)) == null ? void 0 : e.subsidiaryName,
|
|
1352
|
+
const c = d.row.original, A = (e = t.nsLocations.find(
|
|
1353
|
+
(o) => o.netsuiteId === c.netSuiteId
|
|
1354
|
+
)) == null ? void 0 : e.subsidiaryName, p = D(ne.FmIcon, {
|
|
1355
1355
|
name: "cloud",
|
|
1356
1356
|
color: "neutral-gray-400",
|
|
1357
1357
|
size: "md",
|
|
1358
1358
|
class: "mr-2",
|
|
1359
1359
|
outline: !0
|
|
1360
1360
|
});
|
|
1361
|
-
return
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1361
|
+
return D("div", { class: "flex items-center" }, [
|
|
1362
|
+
p,
|
|
1363
|
+
D("div", { class: "flex flex-col" }, [
|
|
1364
|
+
D("span", { class: "font-medium" }, c.name),
|
|
1365
|
+
D("span", { class: "text-xs text-gray-400" }, `ID: ${c.netSuiteId}`),
|
|
1366
|
+
D("span", { class: "text-xs text-gray-400" }, `Subsidiary: ${A}`)
|
|
1367
1367
|
])
|
|
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,78 +1377,78 @@ 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
|
-
],
|
|
1381
|
-
(
|
|
1382
|
-
(
|
|
1380
|
+
], v = z(() => u.locations.filter(
|
|
1381
|
+
(d) => !t.setting.locations.some(
|
|
1382
|
+
(c) => c.id === d.doc._id && c.type === d.type
|
|
1383
1383
|
)
|
|
1384
|
-
)),
|
|
1385
|
-
(
|
|
1384
|
+
)), f = z(() => t.nsLocations.filter(
|
|
1385
|
+
(d) => !t.setting.locations.some((c) => c.netSuiteId === d.netsuiteId)
|
|
1386
1386
|
));
|
|
1387
|
-
return (
|
|
1388
|
-
const
|
|
1389
|
-
return
|
|
1390
|
-
modelValue:
|
|
1391
|
-
"onUpdate:modelValue":
|
|
1392
|
-
header:
|
|
1387
|
+
return (d, c) => {
|
|
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
|
+
header: I(C)("inventory.integration.netsuite.title"),
|
|
1393
1393
|
"dismiss-away": "",
|
|
1394
1394
|
"close-button": "",
|
|
1395
1395
|
"max-width": 800
|
|
1396
1396
|
}, {
|
|
1397
|
-
default:
|
|
1397
|
+
default: R(() => {
|
|
1398
1398
|
var L;
|
|
1399
1399
|
return [
|
|
1400
|
-
(L =
|
|
1401
|
-
|
|
1400
|
+
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (S(), V("div", ln, [
|
|
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
|
-
(
|
|
1404
|
-
key:
|
|
1405
|
-
label:
|
|
1403
|
+
(S(), V(J, null, $(k, (N) => x(A, {
|
|
1404
|
+
key: N,
|
|
1405
|
+
label: N,
|
|
1406
1406
|
compact: ""
|
|
1407
1407
|
}, null, 8, ["label"])), 64))
|
|
1408
1408
|
]),
|
|
1409
|
-
|
|
1410
|
-
|
|
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
|
+
c[9] || (c[9] = a("hr", { class: "my-3" }, null, -1)),
|
|
1411
1411
|
a("div", un, [
|
|
1412
|
-
|
|
1412
|
+
x(p, {
|
|
1413
1413
|
placeholder: "Search by [NetSuite Location]",
|
|
1414
1414
|
class: "w-[300px]",
|
|
1415
1415
|
modelValue: l.value,
|
|
1416
|
-
"onUpdate:modelValue":
|
|
1416
|
+
"onUpdate:modelValue": c[0] || (c[0] = (N) => l.value = N)
|
|
1417
1417
|
}, null, 8, ["modelValue"])
|
|
1418
1418
|
]),
|
|
1419
|
-
|
|
1420
|
-
modelValue:
|
|
1421
|
-
"onUpdate:modelValue":
|
|
1422
|
-
"row-data":
|
|
1423
|
-
"column-defs":
|
|
1419
|
+
x(e, {
|
|
1420
|
+
modelValue: m.value,
|
|
1421
|
+
"onUpdate:modelValue": c[1] || (c[1] = (N) => m.value = N),
|
|
1422
|
+
"row-data": r.value,
|
|
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
|
-
])) : (
|
|
1428
|
-
|
|
1427
|
+
])) : (S(), V("div", an, " Please contact your administrator to apply the changes. ")),
|
|
1428
|
+
x(sn, {
|
|
1429
1429
|
"show-dialog": n.value,
|
|
1430
1430
|
"onUpdate:showDialog": [
|
|
1431
|
-
|
|
1432
|
-
|
|
1431
|
+
c[2] || (c[2] = (N) => n.value = N),
|
|
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
|
}),
|
|
1440
|
-
"side-sheet-footer":
|
|
1441
|
-
a("div",
|
|
1442
|
-
|
|
1440
|
+
"side-sheet-footer": R(() => [
|
|
1441
|
+
a("div", cn, [
|
|
1442
|
+
x(o, {
|
|
1443
1443
|
label: "Add location",
|
|
1444
|
-
onClick:
|
|
1445
|
-
loading:
|
|
1446
|
-
disabled:
|
|
1444
|
+
onClick: c[4] || (c[4] = (L) => n.value = !0),
|
|
1445
|
+
loading: d.loading,
|
|
1446
|
+
disabled: d.loading
|
|
1447
1447
|
}, null, 8, ["loading", "disabled"]),
|
|
1448
|
-
|
|
1448
|
+
x(o, {
|
|
1449
1449
|
variant: "tertiary",
|
|
1450
|
-
label:
|
|
1451
|
-
onClick:
|
|
1450
|
+
label: I(C)("common.close"),
|
|
1451
|
+
onClick: c[5] || (c[5] = (L) => i("update:show", !1))
|
|
1452
1452
|
}, null, 8, ["label"])
|
|
1453
1453
|
])
|
|
1454
1454
|
]),
|
|
@@ -1464,23 +1464,23 @@ 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) {
|
|
1474
1474
|
const t = n.row.original;
|
|
1475
|
-
return
|
|
1476
|
-
|
|
1475
|
+
return D(
|
|
1476
|
+
ne.FmTooltip,
|
|
1477
1477
|
{
|
|
1478
1478
|
content: t.code,
|
|
1479
1479
|
placement: "top",
|
|
1480
1480
|
variant: "plain",
|
|
1481
1481
|
zIndex: 50
|
|
1482
1482
|
},
|
|
1483
|
-
|
|
1483
|
+
D(
|
|
1484
1484
|
"span",
|
|
1485
1485
|
{
|
|
1486
1486
|
class: "flex-auto line-clamp-2 text-ellipsis break-all"
|
|
@@ -1493,19 +1493,19 @@ 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;
|
|
1500
|
-
return
|
|
1501
|
-
|
|
1500
|
+
return D(
|
|
1501
|
+
ne.FmTooltip,
|
|
1502
1502
|
{
|
|
1503
1503
|
content: t.name,
|
|
1504
1504
|
placement: "top",
|
|
1505
1505
|
variant: "plain",
|
|
1506
1506
|
zIndex: 50
|
|
1507
1507
|
},
|
|
1508
|
-
|
|
1508
|
+
D(
|
|
1509
1509
|
"span",
|
|
1510
1510
|
{
|
|
1511
1511
|
class: "flex-auto line-clamp-2 text-ellipsis break-all"
|
|
@@ -1518,11 +1518,11 @@ 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,
|
|
1525
|
-
return
|
|
1524
|
+
const t = n.row.original, i = n.row.index;
|
|
1525
|
+
return D($e, {
|
|
1526
1526
|
style: {
|
|
1527
1527
|
flex: "1 1 0%"
|
|
1528
1528
|
},
|
|
@@ -1532,17 +1532,17 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1532
1532
|
},
|
|
1533
1533
|
key: t.sku._id,
|
|
1534
1534
|
unit: t.sku.unit,
|
|
1535
|
-
"onUpdate:modelValue": (
|
|
1536
|
-
if (!
|
|
1537
|
-
const
|
|
1535
|
+
"onUpdate:modelValue": (b) => {
|
|
1536
|
+
if (!b) return;
|
|
1537
|
+
const w = {
|
|
1538
1538
|
...t,
|
|
1539
|
-
quantity:
|
|
1540
|
-
measurement:
|
|
1539
|
+
quantity: b.amount,
|
|
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,9 +1555,9 @@ 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,
|
|
1559
|
-
return
|
|
1560
|
-
|
|
1558
|
+
const t = n.row.original, i = n.row.index;
|
|
1559
|
+
return D("div", { class: "flex justify-end" }, [
|
|
1560
|
+
D(ne.FmButton, {
|
|
1561
1561
|
key: t.sku._id,
|
|
1562
1562
|
class: "delete-button",
|
|
1563
1563
|
type: "button",
|
|
@@ -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
|
-
"row-key": (
|
|
1587
|
-
"empty-text":
|
|
1586
|
+
"row-key": (b) => b.sku._id,
|
|
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
|
|
1597
|
-
|
|
1598
|
-
const
|
|
1599
|
-
l.setDate(l.getDate() - 30),
|
|
1596
|
+
const y = M([]), s = ge(), u = M(!1), n = M(!1), t = te(), i = W();
|
|
1597
|
+
fe(async () => {
|
|
1598
|
+
const m = /* @__PURE__ */ new Date(), l = /* @__PURE__ */ new Date();
|
|
1599
|
+
l.setDate(l.getDate() - 30), u.value = !0;
|
|
1600
1600
|
try {
|
|
1601
|
-
const
|
|
1602
|
-
|
|
1601
|
+
const r = await s.getInventoryTransferHistory(
|
|
1602
|
+
i.currentLocationDBName,
|
|
1603
1603
|
l,
|
|
1604
|
-
|
|
1604
|
+
m
|
|
1605
1605
|
);
|
|
1606
|
-
|
|
1607
|
-
} catch (
|
|
1608
|
-
console.error("Error fetching inventory transfer history:",
|
|
1606
|
+
y.value = r;
|
|
1607
|
+
} catch (r) {
|
|
1608
|
+
console.error("Error fetching inventory transfer history:", r);
|
|
1609
1609
|
} finally {
|
|
1610
|
-
|
|
1610
|
+
u.value = !1;
|
|
1611
1611
|
}
|
|
1612
1612
|
});
|
|
1613
|
-
async function
|
|
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,17 +1638,17 @@ 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 =
|
|
1643
|
-
return l ?
|
|
1644
|
-
|
|
1641
|
+
cell: (m) => {
|
|
1642
|
+
const l = m.row.original.destinationLocation.netSuiteName;
|
|
1643
|
+
return l ? D(
|
|
1644
|
+
ne.FmTooltip,
|
|
1645
1645
|
{ zIndex: 51 },
|
|
1646
1646
|
{
|
|
1647
1647
|
content() {
|
|
1648
1648
|
return l;
|
|
1649
1649
|
},
|
|
1650
1650
|
default() {
|
|
1651
|
-
return
|
|
1651
|
+
return D("div", { class: "line-clamp-2 fm-typo-en-body-sm-400" }, l);
|
|
1652
1652
|
}
|
|
1653
1653
|
}
|
|
1654
1654
|
) : "N/A";
|
|
@@ -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(
|
|
1661
|
-
return
|
|
1662
|
-
|
|
1660
|
+
cell(m) {
|
|
1661
|
+
return D("div", { class: "flex flex-col" }, [
|
|
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,14 +1680,14 @@ 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 =
|
|
1685
|
-
return
|
|
1686
|
-
|
|
1687
|
-
|
|
1683
|
+
cell(m) {
|
|
1684
|
+
const l = m.row.original.adjustmentId;
|
|
1685
|
+
return D("div", { class: "flex flex-col" }, [
|
|
1686
|
+
D("span", { class: "fm-typo-en-body-sm-400" }, `ID: ${l ?? "N/A"}`),
|
|
1687
|
+
D(
|
|
1688
1688
|
"span",
|
|
1689
1689
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1690
|
-
`Date: ${l ?
|
|
1690
|
+
`Date: ${l ? ye(Ae(l)) : "N/A"}`
|
|
1691
1691
|
)
|
|
1692
1692
|
]);
|
|
1693
1693
|
}
|
|
@@ -1695,17 +1695,17 @@ 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 =
|
|
1700
|
-
return
|
|
1698
|
+
cell(m) {
|
|
1699
|
+
const l = m.row.original.items;
|
|
1700
|
+
return D(
|
|
1701
1701
|
"div",
|
|
1702
1702
|
{ class: "overflow-auto" },
|
|
1703
|
-
|
|
1703
|
+
D("ul", { class: "list-disc pl-5" }, [
|
|
1704
1704
|
l == null ? void 0 : l.map(
|
|
1705
|
-
(
|
|
1705
|
+
(r) => D(
|
|
1706
1706
|
"li",
|
|
1707
1707
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1708
|
-
`[${
|
|
1708
|
+
`[${r == null ? void 0 : r.itemId}] ${r == null ? void 0 : r.itemName}: ${r == null ? void 0 : r.quantity} ${(r == null ? void 0 : r.uomName) ?? "N/A"}`
|
|
1709
1709
|
)
|
|
1710
1710
|
)
|
|
1711
1711
|
])
|
|
@@ -1713,13 +1713,13 @@ 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 (
|
|
1718
|
-
const
|
|
1719
|
-
return
|
|
1716
|
+
], g = M();
|
|
1717
|
+
return (m, l) => {
|
|
1718
|
+
const r = E("FmButton"), h = E("FmTable");
|
|
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, {
|
|
1723
1723
|
"prepend-icon": "sync",
|
|
1724
1724
|
variant: "secondary",
|
|
1725
1725
|
label: "Sync",
|
|
@@ -1727,15 +1727,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1727
1727
|
"text-color": "primary",
|
|
1728
1728
|
"bg-color": "transparent",
|
|
1729
1729
|
"border-color": "primary",
|
|
1730
|
-
onClick:
|
|
1730
|
+
onClick: b
|
|
1731
1731
|
}, null, 8, ["loading"])
|
|
1732
1732
|
]),
|
|
1733
|
-
|
|
1734
|
-
modelValue:
|
|
1735
|
-
"onUpdate:modelValue": l[0] || (l[0] = (C) =>
|
|
1736
|
-
"row-data":
|
|
1737
|
-
"column-defs":
|
|
1738
|
-
loading:
|
|
1733
|
+
x(h, {
|
|
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
|
};
|
|
@@ -1746,7 +1746,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1746
1746
|
}, yn = { class: "flex gap-2" }, An = {
|
|
1747
1747
|
key: 1,
|
|
1748
1748
|
class: "flex items-center my-2 border rounded-lg p-2"
|
|
1749
|
-
}, bn = { class: "flex flex-col" }, hn = { class: "font-medium" },
|
|
1749
|
+
}, bn = { class: "flex flex-col" }, hn = { class: "font-medium" }, xn = { class: "text-xs text-gray-400" }, In = { class: "text-xs text-gray-400" }, Sn = { class: "flex my-4" }, wn = { class: "flex" }, kn = {
|
|
1750
1750
|
key: 1,
|
|
1751
1751
|
class: "flex flex-col"
|
|
1752
1752
|
}, Bn = {
|
|
@@ -1760,55 +1760,55 @@ 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
|
|
1765
|
-
return
|
|
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
|
+
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() {
|
|
1772
1772
|
return l.value ? l.value.toISOString().slice(0, 10) : "";
|
|
1773
1773
|
},
|
|
1774
|
-
set(
|
|
1775
|
-
if (!
|
|
1774
|
+
set(A) {
|
|
1775
|
+
if (!A) {
|
|
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
|
|
1786
|
-
return `${
|
|
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
|
-
set(
|
|
1789
|
-
if (!
|
|
1790
|
-
const [
|
|
1791
|
-
o.setHours(
|
|
1788
|
+
set(A) {
|
|
1789
|
+
if (!A) return;
|
|
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
|
-
}),
|
|
1794
|
-
async function
|
|
1795
|
-
if (
|
|
1796
|
-
if (!
|
|
1793
|
+
}), f = z(() => k.value && v.value && r.value && b.value.length > 0 && !m.value);
|
|
1794
|
+
async function d() {
|
|
1795
|
+
if (f.value) {
|
|
1796
|
+
if (!h.currentLocationSetting) {
|
|
1797
1797
|
t.open({
|
|
1798
1798
|
message: "Current location setting is not available",
|
|
1799
1799
|
type: "error"
|
|
1800
1800
|
});
|
|
1801
1801
|
return;
|
|
1802
1802
|
}
|
|
1803
|
-
|
|
1803
|
+
m.value = !0;
|
|
1804
1804
|
try {
|
|
1805
|
-
const
|
|
1806
|
-
items:
|
|
1805
|
+
const A = {
|
|
1806
|
+
items: b.value,
|
|
1807
1807
|
date: l.value.toISOString(),
|
|
1808
|
-
netsuiteLocationId:
|
|
1809
|
-
netsuiteLocationName:
|
|
1810
|
-
},
|
|
1811
|
-
await n.createInventoryTransfer(
|
|
1808
|
+
netsuiteLocationId: r.value.netsuiteId,
|
|
1809
|
+
netsuiteLocationName: r.value.name
|
|
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
|
-
function
|
|
1826
|
-
const
|
|
1825
|
+
function c() {
|
|
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,
|
|
@@ -1831,11 +1831,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1831
1831
|
disabled: !e.includes(L._id)
|
|
1832
1832
|
})
|
|
1833
1833
|
), B = o.filter((L) => {
|
|
1834
|
-
var
|
|
1835
|
-
return (
|
|
1834
|
+
var N;
|
|
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,18 +1844,18 @@ 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
|
}
|
|
1855
1855
|
}).onPrimary((L) => {
|
|
1856
|
-
const
|
|
1857
|
-
const
|
|
1858
|
-
return
|
|
1856
|
+
const N = b.value, H = L.map((U) => {
|
|
1857
|
+
const O = N.find((Q) => Q.sku._id === U._id);
|
|
1858
|
+
return O || {
|
|
1859
1859
|
sku: U,
|
|
1860
1860
|
code: U.code,
|
|
1861
1861
|
name: U.name,
|
|
@@ -1865,89 +1865,89 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1865
1865
|
}
|
|
1866
1866
|
};
|
|
1867
1867
|
});
|
|
1868
|
-
H.sort((U,
|
|
1868
|
+
H.sort((U, O) => U.sku.code.localeCompare(O.sku.code)), b.value = H;
|
|
1869
1869
|
});
|
|
1870
1870
|
}
|
|
1871
|
-
return (
|
|
1872
|
-
const e = E("FmButtonGroup"), o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"),
|
|
1873
|
-
return
|
|
1874
|
-
|
|
1875
|
-
modelValue:
|
|
1876
|
-
"onUpdate:modelValue":
|
|
1877
|
-
items:
|
|
1871
|
+
return (A, p) => {
|
|
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 S(), V("div", vn, [
|
|
1874
|
+
x(e, {
|
|
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
|
-
|
|
1881
|
-
|
|
1882
|
-
default:
|
|
1883
|
-
|
|
1879
|
+
g.value.label === "Transfer Out" ? (S(), V(J, { key: 0 }, [
|
|
1880
|
+
I(s).inventoryTransferOutEnabled ? (S(), V("div", gn, [
|
|
1881
|
+
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1882
|
+
default: R(() => p[6] || (p[6] = [
|
|
1883
|
+
q("Type")
|
|
1884
1884
|
])),
|
|
1885
1885
|
_: 1
|
|
1886
1886
|
}),
|
|
1887
|
-
|
|
1887
|
+
x(B, {
|
|
1888
1888
|
class: "my-4",
|
|
1889
1889
|
disabled: "",
|
|
1890
1890
|
"prepend-icon": "lock"
|
|
1891
1891
|
}, {
|
|
1892
|
-
default:
|
|
1893
|
-
|
|
1892
|
+
default: R(() => p[7] || (p[7] = [
|
|
1893
|
+
q("Transfer out")
|
|
1894
1894
|
])),
|
|
1895
1895
|
_: 1
|
|
1896
1896
|
}),
|
|
1897
|
-
|
|
1898
|
-
default:
|
|
1899
|
-
|
|
1897
|
+
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1898
|
+
default: R(() => p[8] || (p[8] = [
|
|
1899
|
+
q("Subsidiary")
|
|
1900
1900
|
])),
|
|
1901
1901
|
_: 1
|
|
1902
1902
|
}),
|
|
1903
|
-
|
|
1903
|
+
x(B, {
|
|
1904
1904
|
class: "my-4",
|
|
1905
1905
|
disabled: "",
|
|
1906
1906
|
"prepend-icon": "lock"
|
|
1907
1907
|
}, {
|
|
1908
|
-
default:
|
|
1909
|
-
|
|
1908
|
+
default: R(() => [
|
|
1909
|
+
q(j(A.currentLocationSubsidiary.fullName), 1)
|
|
1910
1910
|
]),
|
|
1911
1911
|
_: 1
|
|
1912
1912
|
}),
|
|
1913
|
-
|
|
1914
|
-
default:
|
|
1915
|
-
|
|
1913
|
+
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1914
|
+
default: R(() => p[9] || (p[9] = [
|
|
1915
|
+
q("Transaction date")
|
|
1916
1916
|
])),
|
|
1917
1917
|
_: 1
|
|
1918
1918
|
}),
|
|
1919
|
-
|
|
1920
|
-
modelValue:
|
|
1921
|
-
"onUpdate:modelValue":
|
|
1919
|
+
x(L, {
|
|
1920
|
+
modelValue: k.value,
|
|
1921
|
+
"onUpdate:modelValue": p[1] || (p[1] = (T) => k.value = T)
|
|
1922
1922
|
}, null, 8, ["modelValue"]),
|
|
1923
|
-
|
|
1924
|
-
default:
|
|
1925
|
-
|
|
1923
|
+
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1924
|
+
default: R(() => p[10] || (p[10] = [
|
|
1925
|
+
q("Transaction time")
|
|
1926
1926
|
])),
|
|
1927
1927
|
_: 1
|
|
1928
1928
|
}),
|
|
1929
|
-
|
|
1930
|
-
modelValue:
|
|
1931
|
-
"onUpdate:modelValue":
|
|
1929
|
+
x(N, {
|
|
1930
|
+
modelValue: v.value,
|
|
1931
|
+
"onUpdate:modelValue": p[2] || (p[2] = (T) => v.value = T)
|
|
1932
1932
|
}, null, 8, ["modelValue"]),
|
|
1933
|
-
|
|
1934
|
-
default:
|
|
1935
|
-
|
|
1933
|
+
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1934
|
+
default: R(() => p[11] || (p[11] = [
|
|
1935
|
+
q("NetSuite Location")
|
|
1936
1936
|
])),
|
|
1937
1937
|
_: 1
|
|
1938
1938
|
}),
|
|
1939
1939
|
a("div", yn, [
|
|
1940
|
-
|
|
1940
|
+
r.value ? _("", !0) : (S(), X(H, {
|
|
1941
1941
|
key: 0,
|
|
1942
1942
|
class: "my-4 w-full",
|
|
1943
|
-
modelValue:
|
|
1944
|
-
"onUpdate:modelValue":
|
|
1943
|
+
modelValue: r.value,
|
|
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
|
-
|
|
1950
|
-
|
|
1949
|
+
r.value ? (S(), V("div", An, [
|
|
1950
|
+
x(U, {
|
|
1951
1951
|
name: "cloud",
|
|
1952
1952
|
color: "neutral-gray-400",
|
|
1953
1953
|
size: "md",
|
|
@@ -1955,58 +1955,145 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1955
1955
|
outline: ""
|
|
1956
1956
|
}),
|
|
1957
1957
|
a("div", bn, [
|
|
1958
|
-
a("span", hn,
|
|
1959
|
-
a("span",
|
|
1960
|
-
a("span",
|
|
1958
|
+
a("span", hn, j(r.value.name), 1),
|
|
1959
|
+
a("span", xn, "ID: " + j(r.value.netsuiteId), 1),
|
|
1960
|
+
a("span", In, "Subsidiary: " + j(r.value.subsidiaryName), 1)
|
|
1961
1961
|
]),
|
|
1962
|
-
|
|
1962
|
+
x(O, {
|
|
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
|
]),
|
|
1970
1970
|
a("div", Sn, [
|
|
1971
|
-
|
|
1971
|
+
x(O, {
|
|
1972
1972
|
class: "ml-auto",
|
|
1973
1973
|
variant: "secondary",
|
|
1974
1974
|
"prepend-icon": "add",
|
|
1975
1975
|
label: "Ingredients",
|
|
1976
|
-
onClick:
|
|
1976
|
+
onClick: c
|
|
1977
1977
|
})
|
|
1978
1978
|
]),
|
|
1979
|
-
|
|
1980
|
-
modelValue:
|
|
1981
|
-
"onUpdate:modelValue":
|
|
1979
|
+
x(mn, {
|
|
1980
|
+
modelValue: b.value,
|
|
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, {
|
|
1985
1985
|
class: "ml-auto mt-4",
|
|
1986
1986
|
variant: "primary",
|
|
1987
1987
|
"prepend-icon": "add",
|
|
1988
1988
|
label: "Create",
|
|
1989
|
-
disabled: !
|
|
1990
|
-
loading:
|
|
1991
|
-
onClick:
|
|
1989
|
+
disabled: !f.value,
|
|
1990
|
+
loading: m.value,
|
|
1991
|
+
onClick: d
|
|
1992
1992
|
}, null, 8, ["disabled", "loading"])
|
|
1993
1993
|
])
|
|
1994
|
-
])) : (
|
|
1995
|
-
|
|
1996
|
-
default:
|
|
1997
|
-
|
|
1994
|
+
])) : (S(), V("div", kn, [
|
|
1995
|
+
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
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
|
-
|
|
2004
|
-
|
|
2003
|
+
g.value.label === "History" ? (S(), V("div", Bn, [
|
|
2004
|
+
x(pn)
|
|
2005
2005
|
])) : _("", !0)
|
|
2006
2006
|
]);
|
|
2007
2007
|
};
|
|
2008
2008
|
}
|
|
2009
|
-
}), En = { class: "flex flex-col gap-8
|
|
2009
|
+
}), En = { class: "flex flex-col gap-8" }, Fn = {
|
|
2010
|
+
key: 0,
|
|
2011
|
+
class: "flex flex-col gap-4"
|
|
2012
|
+
}, Ln = { style: { "list-style-type": "initial", "padding-left": "1rem" } }, Vn = /* @__PURE__ */ Y({
|
|
2013
|
+
__name: "TransferOrder",
|
|
2014
|
+
props: {
|
|
2015
|
+
nsLocations: {},
|
|
2016
|
+
currentLocationSetting: {},
|
|
2017
|
+
currentLocationSubsidiary: {}
|
|
2018
|
+
},
|
|
2019
|
+
setup(F) {
|
|
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;
|
|
2024
|
+
try {
|
|
2025
|
+
const m = ((g = t.currentLocationSetting) == null ? void 0 : g.id) || "", l = await s.getUnSyncTransferInOrders(m);
|
|
2026
|
+
i.value = l, u.open({
|
|
2027
|
+
message: "Check unsync transfer in order successfully",
|
|
2028
|
+
type: "success"
|
|
2029
|
+
});
|
|
2030
|
+
} catch {
|
|
2031
|
+
u.open({
|
|
2032
|
+
message: "Failed to check unsync transfer in order",
|
|
2033
|
+
type: "error"
|
|
2034
|
+
});
|
|
2035
|
+
} finally {
|
|
2036
|
+
n.value = !1;
|
|
2037
|
+
}
|
|
2038
|
+
}
|
|
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, [
|
|
2071
|
+
a("span", null, "Current date and time: " + j((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
2072
|
+
x(l, {
|
|
2073
|
+
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
2074
|
+
variant: "primary",
|
|
2075
|
+
onClick: b,
|
|
2076
|
+
disabled: n.value,
|
|
2077
|
+
loading: n.value
|
|
2078
|
+
}, null, 8, ["disabled", "loading"]),
|
|
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)),
|
|
2081
|
+
a("ul", Ln, [
|
|
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)
|
|
2092
|
+
])) : _("", !0)
|
|
2093
|
+
]);
|
|
2094
|
+
};
|
|
2095
|
+
}
|
|
2096
|
+
}), Nn = { class: "flex flex-col gap-8 w-full" }, Dn = { class: "flex gap-4 justify-between" }, Rn = { class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 bg-fm-color-neutral-gray-100 text-fm-color-neutral-gray-400" }, Mn = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, On = { key: 0 }, jn = { class: "flex gap-8 items-center justify-start" }, Tn = /* @__PURE__ */ Y({
|
|
2010
2097
|
__name: "NetSuiteSideSheet",
|
|
2011
2098
|
props: {
|
|
2012
2099
|
nsLocations: {},
|
|
@@ -2014,69 +2101,80 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2014
2101
|
loading: { type: Boolean }
|
|
2015
2102
|
},
|
|
2016
2103
|
emits: ["update:show"],
|
|
2017
|
-
setup(F, { emit:
|
|
2018
|
-
var
|
|
2019
|
-
const s = ie(),
|
|
2104
|
+
setup(F, { emit: y }) {
|
|
2105
|
+
var k;
|
|
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 = [
|
|
2020
2107
|
{
|
|
2021
2108
|
label: "Inventory Transfer (Out)",
|
|
2022
2109
|
value: "inventoryTransfer"
|
|
2023
2110
|
/* INVENTORY_TRANSFER */
|
|
2111
|
+
},
|
|
2112
|
+
{
|
|
2113
|
+
label: "Transfer Order",
|
|
2114
|
+
value: "transferOrder"
|
|
2115
|
+
/* TRANSFER_ORDER */
|
|
2024
2116
|
}
|
|
2025
|
-
], l =
|
|
2026
|
-
(
|
|
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
|
|
2027
2119
|
));
|
|
2028
|
-
return (
|
|
2120
|
+
return (v, f) => {
|
|
2029
2121
|
var e;
|
|
2030
|
-
const
|
|
2031
|
-
return
|
|
2032
|
-
modelValue:
|
|
2033
|
-
"onUpdate:modelValue":
|
|
2122
|
+
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"), p = E("FmSideSheet");
|
|
2123
|
+
return S(), X(p, {
|
|
2124
|
+
modelValue: I(t),
|
|
2125
|
+
"onUpdate:modelValue": f[2] || (f[2] = (o) => se(t) ? t.value = o : null),
|
|
2034
2126
|
header: "Data migration (Xilnex)",
|
|
2035
2127
|
"dismiss-away": "",
|
|
2036
2128
|
"close-button": "",
|
|
2037
2129
|
"max-width": 800
|
|
2038
2130
|
}, oe({
|
|
2039
|
-
default:
|
|
2040
|
-
|
|
2041
|
-
l.value === "inventoryTransfer" ? (
|
|
2131
|
+
default: R(() => [
|
|
2132
|
+
I(u).isCurrentLocationBindedToNetSuite ? (S(), V(J, { key: 1 }, [
|
|
2133
|
+
l.value === "inventoryTransfer" ? (S(), X(Cn, {
|
|
2042
2134
|
key: 0,
|
|
2043
|
-
currentLocationSetting:
|
|
2135
|
+
currentLocationSetting: h.value,
|
|
2136
|
+
nsLocations: C.value,
|
|
2137
|
+
currentLocationSubsidiary: r.value
|
|
2138
|
+
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0),
|
|
2139
|
+
l.value === "transferOrder" ? (S(), X(Vn, {
|
|
2140
|
+
key: 1,
|
|
2141
|
+
currentLocationSetting: h.value,
|
|
2044
2142
|
nsLocations: C.value,
|
|
2045
|
-
currentLocationSubsidiary:
|
|
2143
|
+
currentLocationSubsidiary: r.value
|
|
2046
2144
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0)
|
|
2047
|
-
], 64)) : (
|
|
2145
|
+
], 64)) : (S(), V("div", On, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
2048
2146
|
]),
|
|
2049
|
-
"side-sheet-footer":
|
|
2050
|
-
a("div",
|
|
2051
|
-
|
|
2147
|
+
"side-sheet-footer": R(() => [
|
|
2148
|
+
a("div", jn, [
|
|
2149
|
+
x(A, {
|
|
2052
2150
|
variant: "tertiary",
|
|
2053
|
-
label:
|
|
2054
|
-
onClick:
|
|
2151
|
+
label: I(i)("common.close"),
|
|
2152
|
+
onClick: f[1] || (f[1] = (o) => b("update:show", !1))
|
|
2055
2153
|
}, null, 8, ["label"])
|
|
2056
2154
|
])
|
|
2057
2155
|
]),
|
|
2058
2156
|
_: 2
|
|
2059
2157
|
}, [
|
|
2060
|
-
(e =
|
|
2158
|
+
(e = I(s).sessionUser.value) != null && e.role.isAdmin ? {
|
|
2061
2159
|
name: "side-sheet-header",
|
|
2062
|
-
fn:
|
|
2160
|
+
fn: R(() => {
|
|
2063
2161
|
var o;
|
|
2064
2162
|
return [
|
|
2065
|
-
a("div",
|
|
2066
|
-
a("div",
|
|
2067
|
-
|
|
2068
|
-
a("div",
|
|
2069
|
-
|
|
2070
|
-
name:
|
|
2163
|
+
a("div", Nn, [
|
|
2164
|
+
a("div", Dn, [
|
|
2165
|
+
f[3] || (f[3] = a("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
2166
|
+
a("div", Rn, [
|
|
2167
|
+
x(d, {
|
|
2168
|
+
name: I(g),
|
|
2071
2169
|
size: "sm"
|
|
2072
2170
|
}, null, 8, ["name"]),
|
|
2073
|
-
a("div",
|
|
2171
|
+
a("div", Mn, j((o = I(w)._currentLocation) == null ? void 0 : o.name), 1)
|
|
2074
2172
|
])
|
|
2075
2173
|
]),
|
|
2076
|
-
|
|
2174
|
+
x(c, {
|
|
2077
2175
|
"model-value": l.value,
|
|
2078
|
-
"onUpdate:modelValue":
|
|
2079
|
-
items:
|
|
2176
|
+
"onUpdate:modelValue": f[0] || (f[0] = (B) => l.value = B),
|
|
2177
|
+
items: m
|
|
2080
2178
|
}, null, 8, ["model-value"])
|
|
2081
2179
|
])
|
|
2082
2180
|
];
|
|
@@ -2086,56 +2184,56 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2086
2184
|
]), 1032, ["modelValue"]);
|
|
2087
2185
|
};
|
|
2088
2186
|
}
|
|
2089
|
-
}),
|
|
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({
|
|
2090
2188
|
__name: "NetSuite",
|
|
2091
2189
|
setup(F) {
|
|
2092
|
-
const
|
|
2190
|
+
const y = le(), s = te(), u = M(!1), n = M(!1);
|
|
2093
2191
|
async function t() {
|
|
2094
2192
|
n.value = !0;
|
|
2095
2193
|
}
|
|
2096
|
-
const
|
|
2194
|
+
const i = M([]);
|
|
2097
2195
|
ze(async () => {
|
|
2098
|
-
if (
|
|
2099
|
-
|
|
2196
|
+
if (y.isReady && y.isEnabled) {
|
|
2197
|
+
u.value = !0;
|
|
2100
2198
|
try {
|
|
2101
|
-
const
|
|
2102
|
-
|
|
2199
|
+
const w = await y.getNetSuiteLocationOptions();
|
|
2200
|
+
i.value = w;
|
|
2103
2201
|
} catch {
|
|
2104
2202
|
s.open({
|
|
2105
2203
|
message: "Failed to fetch NetSuite locations",
|
|
2106
2204
|
type: "error"
|
|
2107
2205
|
});
|
|
2108
2206
|
} finally {
|
|
2109
|
-
|
|
2207
|
+
u.value = !1;
|
|
2110
2208
|
}
|
|
2111
2209
|
}
|
|
2112
2210
|
});
|
|
2113
|
-
const { t:
|
|
2114
|
-
return (
|
|
2115
|
-
const
|
|
2116
|
-
return
|
|
2117
|
-
|
|
2118
|
-
class:
|
|
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 }, [
|
|
2215
|
+
x(l, {
|
|
2216
|
+
class: Z({
|
|
2119
2217
|
"w-full": !0,
|
|
2120
2218
|
border: !0,
|
|
2121
2219
|
"border-fm-color-neutral-gray-100": !0,
|
|
2122
2220
|
"cursor-pointer": !0,
|
|
2123
2221
|
"hover:border-fm-color-primary": !0
|
|
2124
2222
|
}),
|
|
2125
|
-
onClick:
|
|
2223
|
+
onClick: g[0] || (g[0] = (r) => t())
|
|
2126
2224
|
}, {
|
|
2127
|
-
default:
|
|
2128
|
-
|
|
2129
|
-
default:
|
|
2130
|
-
a("div",
|
|
2225
|
+
default: R(() => [
|
|
2226
|
+
x(m, null, {
|
|
2227
|
+
default: R(() => [
|
|
2228
|
+
a("div", zn, [
|
|
2131
2229
|
a("img", {
|
|
2132
|
-
src:
|
|
2230
|
+
src: I(qt),
|
|
2133
2231
|
alt: "NetSuite"
|
|
2134
|
-
}, null, 8,
|
|
2232
|
+
}, null, 8, Hn)
|
|
2135
2233
|
]),
|
|
2136
|
-
a("div",
|
|
2137
|
-
a("div",
|
|
2138
|
-
a("div",
|
|
2234
|
+
a("div", _n, [
|
|
2235
|
+
a("div", Xn, j(I(b)("inventory.integration.netsuite.title")), 1),
|
|
2236
|
+
a("div", Un, j(I(b)("inventory.integration.netsuite.description")), 1)
|
|
2139
2237
|
])
|
|
2140
2238
|
]),
|
|
2141
2239
|
_: 1
|
|
@@ -2143,42 +2241,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2143
2241
|
]),
|
|
2144
2242
|
_: 1
|
|
2145
2243
|
}),
|
|
2146
|
-
|
|
2244
|
+
I(y).state.setting ? (S(), X(ue, {
|
|
2147
2245
|
key: 0,
|
|
2148
2246
|
to: "body"
|
|
2149
2247
|
}, [
|
|
2150
|
-
|
|
2248
|
+
I(y).isBusinessLocation ? (S(), X(dn, {
|
|
2151
2249
|
key: 0,
|
|
2152
|
-
setting:
|
|
2153
|
-
"onUpdate:setting":
|
|
2154
|
-
nsLocations:
|
|
2155
|
-
"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),
|
|
2156
2254
|
show: n.value,
|
|
2157
2255
|
"onUpdate:show": [
|
|
2158
|
-
|
|
2159
|
-
|
|
2256
|
+
g[3] || (g[3] = (r) => n.value = r),
|
|
2257
|
+
g[4] || (g[4] = (r) => n.value = r)
|
|
2160
2258
|
],
|
|
2161
|
-
loading:
|
|
2162
|
-
"onUpdate:loading":
|
|
2163
|
-
}, 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, {
|
|
2164
2262
|
key: 1,
|
|
2165
|
-
setting:
|
|
2166
|
-
"onUpdate:setting":
|
|
2167
|
-
nsLocations:
|
|
2168
|
-
"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),
|
|
2169
2267
|
show: n.value,
|
|
2170
2268
|
"onUpdate:show": [
|
|
2171
|
-
|
|
2172
|
-
|
|
2269
|
+
g[8] || (g[8] = (r) => n.value = r),
|
|
2270
|
+
g[9] || (g[9] = (r) => n.value = r)
|
|
2173
2271
|
],
|
|
2174
|
-
loading:
|
|
2175
|
-
"onUpdate:loading":
|
|
2272
|
+
loading: u.value,
|
|
2273
|
+
"onUpdate:loading": g[10] || (g[10] = (r) => u.value = r)
|
|
2176
2274
|
}, null, 8, ["setting", "nsLocations", "show", "loading"]))
|
|
2177
2275
|
])) : _("", !0)
|
|
2178
2276
|
], 64)) : _("", !0);
|
|
2179
2277
|
};
|
|
2180
2278
|
}
|
|
2181
|
-
}),
|
|
2279
|
+
}), xe = [
|
|
2182
2280
|
"store",
|
|
2183
2281
|
"issueBy",
|
|
2184
2282
|
"verifiedBy",
|
|
@@ -2195,65 +2293,65 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2195
2293
|
"schemeFranchiseePrice",
|
|
2196
2294
|
"physicalSchemeTotalFranchiseePrice"
|
|
2197
2295
|
];
|
|
2198
|
-
async function
|
|
2199
|
-
var
|
|
2200
|
-
const
|
|
2201
|
-
for (const
|
|
2202
|
-
const
|
|
2203
|
-
for (let
|
|
2204
|
-
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;
|
|
2205
2303
|
if (l === "" || l === "undefined") {
|
|
2206
2304
|
n.push({
|
|
2207
|
-
row:
|
|
2305
|
+
row: m.excelRow,
|
|
2208
2306
|
itemCode: l,
|
|
2209
|
-
itemName:
|
|
2307
|
+
itemName: r,
|
|
2210
2308
|
message: "Item code is empty or undefined"
|
|
2211
2309
|
});
|
|
2212
2310
|
continue;
|
|
2213
2311
|
}
|
|
2214
|
-
const
|
|
2215
|
-
if (!
|
|
2312
|
+
const k = y.find((A) => A.code === l);
|
|
2313
|
+
if (!k) {
|
|
2216
2314
|
n.push({
|
|
2217
|
-
row:
|
|
2315
|
+
row: m.excelRow,
|
|
2218
2316
|
itemCode: l,
|
|
2219
|
-
itemName:
|
|
2220
|
-
qty:
|
|
2317
|
+
itemName: r,
|
|
2318
|
+
qty: h,
|
|
2221
2319
|
message: "Item not found in inventory"
|
|
2222
|
-
}), console.error(`${
|
|
2320
|
+
}), console.error(`${m.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2223
2321
|
continue;
|
|
2224
2322
|
}
|
|
2225
|
-
let
|
|
2226
|
-
const
|
|
2227
|
-
|
|
2228
|
-
const
|
|
2229
|
-
amount:
|
|
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 = {
|
|
2327
|
+
amount: d,
|
|
2230
2328
|
cost: {
|
|
2231
|
-
...
|
|
2329
|
+
...G.fromNumber(Number(v)),
|
|
2232
2330
|
currency: "MYR"
|
|
2233
2331
|
}
|
|
2234
2332
|
};
|
|
2235
|
-
|
|
2333
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[i = k._id] ?? (t[i] = {
|
|
2236
2334
|
skuAdjustment: {
|
|
2237
|
-
sku:
|
|
2238
|
-
fromBalance:
|
|
2335
|
+
sku: k,
|
|
2336
|
+
fromBalance: G.fromNumber(0),
|
|
2239
2337
|
amounts: [
|
|
2240
2338
|
{
|
|
2241
2339
|
_id: null,
|
|
2242
2340
|
type: we.Enum.CLOSING,
|
|
2243
2341
|
remark: "Opening Balance",
|
|
2244
|
-
amount:
|
|
2342
|
+
amount: d,
|
|
2245
2343
|
measurement: null,
|
|
2246
2344
|
// always the smallest unit
|
|
2247
|
-
cost:
|
|
2345
|
+
cost: c.cost
|
|
2248
2346
|
}
|
|
2249
2347
|
],
|
|
2250
|
-
toBalance:
|
|
2251
|
-
toCostBalances: [
|
|
2348
|
+
toBalance: d,
|
|
2349
|
+
toCostBalances: [c]
|
|
2252
2350
|
},
|
|
2253
2351
|
skuBalance: {
|
|
2254
|
-
id:
|
|
2255
|
-
balance:
|
|
2256
|
-
costs: [
|
|
2352
|
+
id: k._id,
|
|
2353
|
+
balance: d,
|
|
2354
|
+
costs: [c]
|
|
2257
2355
|
}
|
|
2258
2356
|
});
|
|
2259
2357
|
}
|
|
@@ -2263,45 +2361,45 @@ async function _n(F, v, s) {
|
|
|
2263
2361
|
rows: t
|
|
2264
2362
|
};
|
|
2265
2363
|
}
|
|
2266
|
-
async function
|
|
2267
|
-
const
|
|
2268
|
-
const
|
|
2269
|
-
|
|
2270
|
-
}), s = ke(
|
|
2271
|
-
for (const t of
|
|
2272
|
-
const
|
|
2273
|
-
n[t] =
|
|
2364
|
+
async function Jn(F) {
|
|
2365
|
+
const y = await new Promise((t, i) => {
|
|
2366
|
+
const b = new FileReader();
|
|
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;
|
|
2274
2372
|
}
|
|
2275
2373
|
return n;
|
|
2276
2374
|
}
|
|
2277
|
-
async function
|
|
2278
|
-
const
|
|
2279
|
-
header:
|
|
2375
|
+
async function Kn(F) {
|
|
2376
|
+
const y = Be.sheet_to_json(F, {
|
|
2377
|
+
header: xe,
|
|
2280
2378
|
range: 12
|
|
2281
2379
|
}), s = [];
|
|
2282
|
-
for (let
|
|
2283
|
-
const n =
|
|
2284
|
-
for (const
|
|
2285
|
-
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();
|
|
2286
2384
|
s.push({
|
|
2287
2385
|
...t,
|
|
2288
|
-
excelRow:
|
|
2386
|
+
excelRow: u + 13
|
|
2289
2387
|
// Excel rows start from 1, and we skip the first 12 rows
|
|
2290
2388
|
});
|
|
2291
2389
|
}
|
|
2292
2390
|
return s;
|
|
2293
2391
|
}
|
|
2294
|
-
const
|
|
2392
|
+
const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn = {
|
|
2295
2393
|
key: 0,
|
|
2296
2394
|
class: "flex flex-col gap-4 my-5"
|
|
2297
|
-
},
|
|
2298
|
-
class: /* @__PURE__ */
|
|
2299
|
-
},
|
|
2300
|
-
class: /* @__PURE__ */
|
|
2301
|
-
},
|
|
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"])
|
|
2397
|
+
}, eo = {
|
|
2398
|
+
class: /* @__PURE__ */ Z(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
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({
|
|
2302
2400
|
__name: "XilnexOpeningImport",
|
|
2303
2401
|
setup(F) {
|
|
2304
|
-
const
|
|
2402
|
+
const y = Pe(), s = le(), u = be(), n = Ce(), t = te(), i = z(() => [
|
|
2305
2403
|
{
|
|
2306
2404
|
value: "xilnex",
|
|
2307
2405
|
label: "Xilnex",
|
|
@@ -2316,15 +2414,15 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2316
2414
|
disabledReason: "Current location is not binded to NetSuite"
|
|
2317
2415
|
}
|
|
2318
2416
|
] : []
|
|
2319
|
-
]),
|
|
2417
|
+
]), b = M(i.value[0].value), { t: w } = de(), g = M(null), m = M(), l = M(""), r = M([]), h = M([]), C = [
|
|
2320
2418
|
{
|
|
2321
2419
|
id: "ingredient",
|
|
2322
2420
|
header: () => "Ingredient",
|
|
2323
2421
|
cell(e) {
|
|
2324
2422
|
const o = e.row.original;
|
|
2325
|
-
return
|
|
2326
|
-
|
|
2327
|
-
|
|
2423
|
+
return D("div", { class: "flex flex-col" }, [
|
|
2424
|
+
D("span", { class: "font-medium" }, o.skuAdjustment.sku.name),
|
|
2425
|
+
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2328
2426
|
o.skuAdjustment.sku.code
|
|
2329
2427
|
])
|
|
2330
2428
|
]);
|
|
@@ -2335,11 +2433,11 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2335
2433
|
header: () => "Opening Balance",
|
|
2336
2434
|
cell(e) {
|
|
2337
2435
|
const o = e.row.original;
|
|
2338
|
-
return
|
|
2339
|
-
|
|
2436
|
+
return D("div", { class: "flex flex-col" }, [
|
|
2437
|
+
D(
|
|
2340
2438
|
"span",
|
|
2341
2439
|
{ class: "font-medium" },
|
|
2342
|
-
|
|
2440
|
+
G.toFormatString({
|
|
2343
2441
|
value: o.skuAdjustment.amounts[0].amount
|
|
2344
2442
|
})
|
|
2345
2443
|
)
|
|
@@ -2353,14 +2451,14 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2353
2451
|
const o = e.row.original, B = !o.skuAdjustment.amounts[0].measurement;
|
|
2354
2452
|
let L = o.skuAdjustment.sku.unit.name;
|
|
2355
2453
|
if (!B) {
|
|
2356
|
-
const
|
|
2454
|
+
const N = o.skuAdjustment.sku.unit.measurements.find(
|
|
2357
2455
|
(H) => H.id === o.skuAdjustment.amounts[0].measurement.id
|
|
2358
2456
|
);
|
|
2359
|
-
L =
|
|
2457
|
+
L = N ? N.name : "Error: Measurement not found";
|
|
2360
2458
|
}
|
|
2361
|
-
return
|
|
2362
|
-
|
|
2363
|
-
B ? null :
|
|
2459
|
+
return D("div", { class: "flex flex-col" }, [
|
|
2460
|
+
D("span", { class: "font-medium" }, L),
|
|
2461
|
+
B ? null : D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2364
2462
|
`Base unit: ${o.skuAdjustment.sku.unit.name}`
|
|
2365
2463
|
])
|
|
2366
2464
|
]);
|
|
@@ -2375,18 +2473,18 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2375
2473
|
precision: 0,
|
|
2376
2474
|
currency: ""
|
|
2377
2475
|
};
|
|
2378
|
-
return
|
|
2379
|
-
|
|
2476
|
+
return D("div", { class: "flex flex-col" }, [
|
|
2477
|
+
D(
|
|
2380
2478
|
"span",
|
|
2381
2479
|
{ class: "font-medium" },
|
|
2382
|
-
|
|
2480
|
+
G.toFormatString({
|
|
2383
2481
|
value: L
|
|
2384
2482
|
})
|
|
2385
2483
|
)
|
|
2386
2484
|
]);
|
|
2387
2485
|
}
|
|
2388
2486
|
}
|
|
2389
|
-
],
|
|
2487
|
+
], k = [
|
|
2390
2488
|
{
|
|
2391
2489
|
accessorKey: "row",
|
|
2392
2490
|
header: "Row"
|
|
@@ -2407,34 +2505,34 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2407
2505
|
accessorKey: "message",
|
|
2408
2506
|
header: "Error Message"
|
|
2409
2507
|
}
|
|
2410
|
-
],
|
|
2411
|
-
async function
|
|
2412
|
-
if (
|
|
2413
|
-
|
|
2508
|
+
], v = M(!1);
|
|
2509
|
+
async function f() {
|
|
2510
|
+
if (g.value) {
|
|
2511
|
+
v.value = !0;
|
|
2414
2512
|
try {
|
|
2415
2513
|
let e = {};
|
|
2416
|
-
|
|
2417
|
-
const { errors: o, rows: B } = await
|
|
2514
|
+
b.value === "netsuite" && (e = await s.getItemAverageCosts());
|
|
2515
|
+
const { errors: o, rows: B } = await Yn(
|
|
2418
2516
|
e,
|
|
2419
|
-
|
|
2420
|
-
|
|
2517
|
+
u.skus,
|
|
2518
|
+
g.value
|
|
2421
2519
|
);
|
|
2422
|
-
|
|
2520
|
+
r.value = o, h.value = Object.values(B);
|
|
2423
2521
|
} catch {
|
|
2424
2522
|
t.open({
|
|
2425
2523
|
message: "Error verifying file",
|
|
2426
2524
|
type: "error"
|
|
2427
2525
|
});
|
|
2428
2526
|
} finally {
|
|
2429
|
-
|
|
2527
|
+
v.value = !1;
|
|
2430
2528
|
}
|
|
2431
2529
|
}
|
|
2432
2530
|
}
|
|
2433
|
-
async function
|
|
2434
|
-
if (
|
|
2435
|
-
|
|
2531
|
+
async function d() {
|
|
2532
|
+
if (g.value) {
|
|
2533
|
+
v.value = !0;
|
|
2436
2534
|
try {
|
|
2437
|
-
if (!
|
|
2535
|
+
if (!A.value) {
|
|
2438
2536
|
t.open({
|
|
2439
2537
|
message: "Please select a date for the opening balance",
|
|
2440
2538
|
type: "error"
|
|
@@ -2442,90 +2540,90 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2442
2540
|
return;
|
|
2443
2541
|
}
|
|
2444
2542
|
await n.setOpeningBalance({
|
|
2445
|
-
effectiveAt:
|
|
2446
|
-
skuAdjustments:
|
|
2447
|
-
skuBalances:
|
|
2543
|
+
effectiveAt: A.value,
|
|
2544
|
+
skuAdjustments: h.value.map((e) => e.skuAdjustment),
|
|
2545
|
+
skuBalances: h.value.map((e) => e.skuBalance)
|
|
2448
2546
|
}), t.open({
|
|
2449
2547
|
message: "Opening balance imported successfully",
|
|
2450
2548
|
type: "success"
|
|
2451
|
-
}), await
|
|
2549
|
+
}), await y.fetchClosingDocumentId();
|
|
2452
2550
|
} catch {
|
|
2453
2551
|
t.open({
|
|
2454
2552
|
message: "Error importing opening balance",
|
|
2455
2553
|
type: "error"
|
|
2456
2554
|
});
|
|
2457
2555
|
} finally {
|
|
2458
|
-
|
|
2556
|
+
v.value = !1;
|
|
2459
2557
|
}
|
|
2460
2558
|
}
|
|
2461
2559
|
}
|
|
2462
|
-
const
|
|
2560
|
+
const c = M(""), A = z({
|
|
2463
2561
|
get() {
|
|
2464
|
-
return
|
|
2562
|
+
return c.value;
|
|
2465
2563
|
},
|
|
2466
2564
|
set(e) {
|
|
2467
|
-
|
|
2565
|
+
c.value = `${e}T15:59:59.999Z`;
|
|
2468
2566
|
}
|
|
2469
|
-
}),
|
|
2470
|
-
if (!
|
|
2471
|
-
const e = new Date(
|
|
2472
|
-
return isNaN(e.getTime()) ? null :
|
|
2567
|
+
}), p = z(() => {
|
|
2568
|
+
if (!c.value) return null;
|
|
2569
|
+
const e = new Date(c.value);
|
|
2570
|
+
return isNaN(e.getTime()) ? null : ye(e);
|
|
2473
2571
|
});
|
|
2474
2572
|
return (e, o) => {
|
|
2475
|
-
const B = E("FmLabel"), L = E("FmField"),
|
|
2476
|
-
return
|
|
2477
|
-
a("div",
|
|
2478
|
-
|
|
2573
|
+
const B = E("FmLabel"), L = E("FmField"), N = E("FmSimpleDatePicker"), H = E("FmButton"), U = E("FmRadio"), O = E("FmRadioGroup"), T = E("FmTable");
|
|
2574
|
+
return S(), V("div", qn, [
|
|
2575
|
+
a("div", Zn, [
|
|
2576
|
+
x(B, { label: "Latest closing" })
|
|
2479
2577
|
]),
|
|
2480
|
-
|
|
2578
|
+
x(L, {
|
|
2481
2579
|
"prepend-icon": "lock_outline",
|
|
2482
2580
|
disabled: ""
|
|
2483
2581
|
}, {
|
|
2484
|
-
default:
|
|
2485
|
-
|
|
2582
|
+
default: R(() => [
|
|
2583
|
+
q(j(I(y).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
2486
2584
|
]),
|
|
2487
2585
|
_: 1
|
|
2488
2586
|
}),
|
|
2489
|
-
|
|
2587
|
+
I(y).state.closingDocumentId ? (S(), V("div", io, o[6] || (o[6] = [
|
|
2490
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)
|
|
2491
|
-
]))) : (
|
|
2492
|
-
|
|
2493
|
-
modelValue:
|
|
2494
|
-
"onUpdate:modelValue": o[0] || (o[0] = (Q) =>
|
|
2589
|
+
]))) : (S(), V("div", Pn, [
|
|
2590
|
+
x(N, {
|
|
2591
|
+
modelValue: A.value,
|
|
2592
|
+
"onUpdate:modelValue": o[0] || (o[0] = (Q) => A.value = Q),
|
|
2495
2593
|
label: "Last closing time"
|
|
2496
2594
|
}, {
|
|
2497
|
-
"trigger-button":
|
|
2498
|
-
|
|
2595
|
+
"trigger-button": R(() => [
|
|
2596
|
+
x(L, {
|
|
2499
2597
|
"prepend-icon": "calendar_today",
|
|
2500
2598
|
readonly: "",
|
|
2501
2599
|
label: "Last closing time"
|
|
2502
2600
|
}, {
|
|
2503
|
-
default:
|
|
2504
|
-
|
|
2601
|
+
default: R(() => [
|
|
2602
|
+
q(j(p.value), 1)
|
|
2505
2603
|
]),
|
|
2506
2604
|
_: 1
|
|
2507
2605
|
})
|
|
2508
2606
|
]),
|
|
2509
2607
|
_: 1
|
|
2510
2608
|
}, 8, ["modelValue"]),
|
|
2511
|
-
a("div",
|
|
2512
|
-
|
|
2609
|
+
a("div", Gn, [
|
|
2610
|
+
x(B, { label: "Stock take file" })
|
|
2513
2611
|
]),
|
|
2514
|
-
|
|
2612
|
+
x(Fe, {
|
|
2515
2613
|
onFileUpload: o[1] || (o[1] = (Q) => {
|
|
2516
|
-
Q && (
|
|
2614
|
+
Q && (g.value = Q);
|
|
2517
2615
|
}),
|
|
2518
2616
|
accept: ".xlsx, .xls, .csv"
|
|
2519
2617
|
}, oe({ _: 2 }, [
|
|
2520
|
-
|
|
2618
|
+
g.value ? {
|
|
2521
2619
|
name: "default",
|
|
2522
|
-
fn:
|
|
2523
|
-
a("div",
|
|
2524
|
-
a("div",
|
|
2525
|
-
a("div",
|
|
2526
|
-
a("div",
|
|
2527
|
-
|
|
2528
|
-
label:
|
|
2620
|
+
fn: R(({ openFileDialog: Q }) => [
|
|
2621
|
+
a("div", Wn, [
|
|
2622
|
+
a("div", $n, [
|
|
2623
|
+
a("div", eo, [
|
|
2624
|
+
a("div", to, j(g.value.name), 1),
|
|
2625
|
+
x(H, {
|
|
2626
|
+
label: I(w)("inventory.ingredient.import.replaceFile"),
|
|
2529
2627
|
variant: "secondary",
|
|
2530
2628
|
"prepend-icon": "autorenew",
|
|
2531
2629
|
onClick: Q
|
|
@@ -2537,24 +2635,24 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2537
2635
|
key: "0"
|
|
2538
2636
|
} : void 0
|
|
2539
2637
|
]), 1024),
|
|
2540
|
-
|
|
2541
|
-
modelValue:
|
|
2542
|
-
"onUpdate:modelValue": o[2] || (o[2] = (Q) =>
|
|
2638
|
+
x(O, {
|
|
2639
|
+
modelValue: b.value,
|
|
2640
|
+
"onUpdate:modelValue": o[2] || (o[2] = (Q) => b.value = Q),
|
|
2543
2641
|
label: "Retrieve cost from",
|
|
2544
2642
|
class: "my-5"
|
|
2545
2643
|
}, {
|
|
2546
|
-
default:
|
|
2547
|
-
(
|
|
2644
|
+
default: R(() => [
|
|
2645
|
+
(S(!0), V(J, null, $(i.value, (Q) => (S(), X(U, {
|
|
2548
2646
|
key: Q.value,
|
|
2549
2647
|
value: Q.value,
|
|
2550
2648
|
label: Q.label,
|
|
2551
2649
|
sublabel: Q.subLabel,
|
|
2552
2650
|
disabled: Q.disabled
|
|
2553
2651
|
}, {
|
|
2554
|
-
label:
|
|
2555
|
-
a("div",
|
|
2556
|
-
a("span",
|
|
2557
|
-
a("span",
|
|
2652
|
+
label: R(() => [
|
|
2653
|
+
a("div", no, [
|
|
2654
|
+
a("span", oo, j(Q.label), 1),
|
|
2655
|
+
a("span", so, j(Q.disabled ? Q.disabledReason : Q.subLabel), 1)
|
|
2558
2656
|
])
|
|
2559
2657
|
]),
|
|
2560
2658
|
_: 2
|
|
@@ -2562,63 +2660,63 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2562
2660
|
]),
|
|
2563
2661
|
_: 1
|
|
2564
2662
|
}, 8, ["modelValue"]),
|
|
2565
|
-
a("div",
|
|
2566
|
-
|
|
2663
|
+
a("div", ao, [
|
|
2664
|
+
x(H, {
|
|
2567
2665
|
class: "ml-auto mt-4",
|
|
2568
2666
|
variant: "secondary",
|
|
2569
2667
|
"prepend-icon": "troubleshoot",
|
|
2570
2668
|
label: "Verify",
|
|
2571
|
-
disabled: !
|
|
2572
|
-
loading:
|
|
2573
|
-
onClick:
|
|
2669
|
+
disabled: !g.value && !v.value,
|
|
2670
|
+
loading: v.value,
|
|
2671
|
+
onClick: f
|
|
2574
2672
|
}, null, 8, ["disabled", "loading"])
|
|
2575
2673
|
]),
|
|
2576
|
-
|
|
2674
|
+
g.value && h.value.length > 0 ? (S(), V(J, { key: 0 }, [
|
|
2577
2675
|
o[4] || (o[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
2578
|
-
|
|
2579
|
-
modelValue:
|
|
2580
|
-
"onUpdate:modelValue": o[3] || (o[3] = (Q) =>
|
|
2581
|
-
"row-data":
|
|
2676
|
+
x(T, {
|
|
2677
|
+
modelValue: m.value,
|
|
2678
|
+
"onUpdate:modelValue": o[3] || (o[3] = (Q) => m.value = Q),
|
|
2679
|
+
"row-data": h.value,
|
|
2582
2680
|
"column-defs": C,
|
|
2583
2681
|
"shrink-at": !1,
|
|
2584
2682
|
"search-value": l.value
|
|
2585
2683
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
2586
2684
|
], 64)) : _("", !0),
|
|
2587
|
-
|
|
2685
|
+
r.value.length > 0 ? (S(), V(J, { key: 1 }, [
|
|
2588
2686
|
o[5] || (o[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
2589
|
-
|
|
2590
|
-
"row-data":
|
|
2591
|
-
"column-defs":
|
|
2687
|
+
x(T, {
|
|
2688
|
+
"row-data": r.value,
|
|
2689
|
+
"column-defs": k
|
|
2592
2690
|
}, null, 8, ["row-data"])
|
|
2593
2691
|
], 64)) : _("", !0),
|
|
2594
|
-
a("div",
|
|
2595
|
-
|
|
2692
|
+
a("div", lo, [
|
|
2693
|
+
h.value.length > 0 && !I(y).state.closingDocumentId ? (S(), X(H, {
|
|
2596
2694
|
key: 0,
|
|
2597
2695
|
class: "ml-auto mt-4",
|
|
2598
2696
|
"prepend-icon": "file_upload",
|
|
2599
2697
|
variant: "primary",
|
|
2600
2698
|
label: "Import Opening Balance",
|
|
2601
|
-
disabled: !
|
|
2602
|
-
onClick:
|
|
2699
|
+
disabled: !g.value || v.value,
|
|
2700
|
+
onClick: d
|
|
2603
2701
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
2604
2702
|
])
|
|
2605
2703
|
]))
|
|
2606
2704
|
]);
|
|
2607
2705
|
};
|
|
2608
2706
|
}
|
|
2609
|
-
}),
|
|
2707
|
+
}), uo = { class: "flex flex-col gap-8 w-full" }, co = { class: "flex gap-4 justify-between" }, mo = { class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 bg-fm-color-neutral-gray-100 text-fm-color-neutral-gray-400" }, fo = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, po = { key: 0 }, vo = {
|
|
2610
2708
|
key: 1,
|
|
2611
2709
|
class: "flex flex-col gap-8 w-full"
|
|
2612
|
-
},
|
|
2710
|
+
}, go = { key: 1 }, yo = { class: "flex gap-8 items-center justify-start" }, Ao = /* @__PURE__ */ Y({
|
|
2613
2711
|
__name: "XilnexSideSheet",
|
|
2614
2712
|
props: {
|
|
2615
2713
|
show: { type: Boolean },
|
|
2616
2714
|
loading: { type: Boolean }
|
|
2617
2715
|
},
|
|
2618
2716
|
emits: ["update:show"],
|
|
2619
|
-
setup(F, { emit:
|
|
2717
|
+
setup(F, { emit: y }) {
|
|
2620
2718
|
var l;
|
|
2621
|
-
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 = [
|
|
2622
2720
|
{ label: re(
|
|
2623
2721
|
"openingBalance"
|
|
2624
2722
|
/* OPENING_BALANCE */
|
|
@@ -2627,64 +2725,64 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2627
2725
|
"transferNote"
|
|
2628
2726
|
/* TRANSFER_NOTE */
|
|
2629
2727
|
) }
|
|
2630
|
-
],
|
|
2631
|
-
return (
|
|
2632
|
-
var
|
|
2633
|
-
const C = E("FmIcon"),
|
|
2634
|
-
return
|
|
2635
|
-
modelValue:
|
|
2636
|
-
"onUpdate:modelValue":
|
|
2728
|
+
], m = M(g[0]);
|
|
2729
|
+
return (r, h) => {
|
|
2730
|
+
var d;
|
|
2731
|
+
const C = E("FmIcon"), k = E("FmButtonGroup"), v = E("FmButton"), f = E("FmSideSheet");
|
|
2732
|
+
return S(), X(f, {
|
|
2733
|
+
modelValue: I(n),
|
|
2734
|
+
"onUpdate:modelValue": h[2] || (h[2] = (c) => se(n) ? n.value = c : null),
|
|
2637
2735
|
header: "Data migration (Xilnex)",
|
|
2638
2736
|
"dismiss-away": "",
|
|
2639
2737
|
"close-button": "",
|
|
2640
2738
|
"max-width": 800
|
|
2641
2739
|
}, oe({
|
|
2642
|
-
default:
|
|
2643
|
-
var
|
|
2740
|
+
default: R(() => {
|
|
2741
|
+
var c;
|
|
2644
2742
|
return [
|
|
2645
|
-
(
|
|
2646
|
-
|
|
2743
|
+
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (S(), V("div", vo, [
|
|
2744
|
+
m.value.label === I(re)(
|
|
2647
2745
|
"openingBalance"
|
|
2648
2746
|
/* OPENING_BALANCE */
|
|
2649
|
-
) ? (
|
|
2650
|
-
|
|
2747
|
+
) ? (S(), X(ro, { key: 0 })) : _("", !0),
|
|
2748
|
+
m.value.label === I(re)(
|
|
2651
2749
|
"transferNote"
|
|
2652
2750
|
/* TRANSFER_NOTE */
|
|
2653
|
-
) ? (
|
|
2654
|
-
])) : (
|
|
2751
|
+
) ? (S(), V("div", go, " Not available yet. ")) : _("", !0)
|
|
2752
|
+
])) : (S(), V("div", po, " Please contact your administrator to apply the changes. "))
|
|
2655
2753
|
];
|
|
2656
2754
|
}),
|
|
2657
|
-
"side-sheet-footer":
|
|
2658
|
-
a("div",
|
|
2659
|
-
|
|
2755
|
+
"side-sheet-footer": R(() => [
|
|
2756
|
+
a("div", yo, [
|
|
2757
|
+
x(v, {
|
|
2660
2758
|
variant: "tertiary",
|
|
2661
|
-
label:
|
|
2662
|
-
onClick:
|
|
2759
|
+
label: I(t)("common.close"),
|
|
2760
|
+
onClick: h[1] || (h[1] = (c) => i("update:show", !1))
|
|
2663
2761
|
}, null, 8, ["label"])
|
|
2664
2762
|
])
|
|
2665
2763
|
]),
|
|
2666
2764
|
_: 2
|
|
2667
2765
|
}, [
|
|
2668
|
-
(
|
|
2766
|
+
(d = I(s).sessionUser.value) != null && d.role.isAdmin ? {
|
|
2669
2767
|
name: "side-sheet-header",
|
|
2670
|
-
fn:
|
|
2671
|
-
var
|
|
2768
|
+
fn: R(() => {
|
|
2769
|
+
var c;
|
|
2672
2770
|
return [
|
|
2673
|
-
a("div",
|
|
2674
|
-
a("div",
|
|
2675
|
-
|
|
2676
|
-
a("div",
|
|
2677
|
-
|
|
2678
|
-
name:
|
|
2771
|
+
a("div", uo, [
|
|
2772
|
+
a("div", co, [
|
|
2773
|
+
h[3] || (h[3] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
2774
|
+
a("div", mo, [
|
|
2775
|
+
x(C, {
|
|
2776
|
+
name: I(w),
|
|
2679
2777
|
size: "sm"
|
|
2680
2778
|
}, null, 8, ["name"]),
|
|
2681
|
-
a("div",
|
|
2779
|
+
a("div", fo, j((c = I(b)._currentLocation) == null ? void 0 : c.name), 1)
|
|
2682
2780
|
])
|
|
2683
2781
|
]),
|
|
2684
|
-
|
|
2685
|
-
modelValue:
|
|
2686
|
-
"onUpdate:modelValue":
|
|
2687
|
-
items:
|
|
2782
|
+
x(k, {
|
|
2783
|
+
modelValue: m.value,
|
|
2784
|
+
"onUpdate:modelValue": h[0] || (h[0] = (A) => m.value = A),
|
|
2785
|
+
items: g
|
|
2688
2786
|
}, null, 8, ["modelValue"])
|
|
2689
2787
|
])
|
|
2690
2788
|
];
|
|
@@ -2694,29 +2792,29 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2694
2792
|
]), 1032, ["modelValue"]);
|
|
2695
2793
|
};
|
|
2696
2794
|
}
|
|
2697
|
-
}),
|
|
2795
|
+
}), bo = /* @__PURE__ */ Y({
|
|
2698
2796
|
__name: "XilnexView",
|
|
2699
2797
|
setup(F) {
|
|
2700
|
-
const
|
|
2798
|
+
const y = Le(), s = W(), u = M(!1);
|
|
2701
2799
|
async function n() {
|
|
2702
|
-
|
|
2800
|
+
u.value = !0, console.log("Opening Xilnex migration dialog");
|
|
2703
2801
|
}
|
|
2704
|
-
return (t,
|
|
2705
|
-
const
|
|
2706
|
-
return
|
|
2707
|
-
|
|
2708
|
-
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({
|
|
2709
2807
|
"w-full": !0,
|
|
2710
2808
|
border: !0,
|
|
2711
2809
|
"border-fm-color-neutral-gray-100": !0,
|
|
2712
2810
|
"cursor-pointer": !0,
|
|
2713
2811
|
"hover:border-fm-color-primary": !0
|
|
2714
2812
|
}),
|
|
2715
|
-
onClick:
|
|
2813
|
+
onClick: i[0] || (i[0] = (g) => n())
|
|
2716
2814
|
}, {
|
|
2717
|
-
default:
|
|
2718
|
-
|
|
2719
|
-
default:
|
|
2815
|
+
default: R(() => [
|
|
2816
|
+
x(b, null, {
|
|
2817
|
+
default: R(() => i[2] || (i[2] = [
|
|
2720
2818
|
a("div", { class: "flex justify-center" }, [
|
|
2721
2819
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
2722
2820
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Xilnex")
|
|
@@ -2732,10 +2830,10 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2732
2830
|
]),
|
|
2733
2831
|
_: 1
|
|
2734
2832
|
}),
|
|
2735
|
-
(
|
|
2736
|
-
|
|
2737
|
-
show:
|
|
2738
|
-
"onUpdate:show":
|
|
2833
|
+
(S(), X(ue, { to: "body" }, [
|
|
2834
|
+
x(Ao, {
|
|
2835
|
+
show: u.value,
|
|
2836
|
+
"onUpdate:show": i[1] || (i[1] = (g) => u.value = g)
|
|
2739
2837
|
}, null, 8, ["show"])
|
|
2740
2838
|
]))
|
|
2741
2839
|
], 64)) : _("", !0);
|
|
@@ -2751,63 +2849,63 @@ const Qn = { class: "flex flex-col gap-4" }, Yn = { class: "flex flex-col" }, Jn
|
|
|
2751
2849
|
"quantity",
|
|
2752
2850
|
"total"
|
|
2753
2851
|
];
|
|
2754
|
-
async function
|
|
2755
|
-
var
|
|
2756
|
-
const
|
|
2757
|
-
for (let
|
|
2758
|
-
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;
|
|
2759
2857
|
if (l === "" || l === "undefined") {
|
|
2760
2858
|
n.push({
|
|
2761
|
-
row:
|
|
2859
|
+
row: m.excelRow,
|
|
2762
2860
|
itemCode: l,
|
|
2763
|
-
itemName:
|
|
2861
|
+
itemName: r,
|
|
2764
2862
|
message: "Item code is empty or undefined"
|
|
2765
2863
|
});
|
|
2766
2864
|
continue;
|
|
2767
2865
|
}
|
|
2768
|
-
const
|
|
2769
|
-
if (!
|
|
2866
|
+
const k = y.find((A) => A.code === l);
|
|
2867
|
+
if (!k) {
|
|
2770
2868
|
n.push({
|
|
2771
|
-
row:
|
|
2869
|
+
row: m.excelRow,
|
|
2772
2870
|
itemCode: l,
|
|
2773
|
-
itemName:
|
|
2774
|
-
qty:
|
|
2871
|
+
itemName: r,
|
|
2872
|
+
qty: h,
|
|
2775
2873
|
message: "Item not found in inventory"
|
|
2776
|
-
}), console.error(`${
|
|
2874
|
+
}), console.error(`${m.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2777
2875
|
continue;
|
|
2778
2876
|
}
|
|
2779
|
-
let
|
|
2780
|
-
const
|
|
2781
|
-
|
|
2782
|
-
const
|
|
2783
|
-
amount:
|
|
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 = {
|
|
2881
|
+
amount: d,
|
|
2784
2882
|
cost: {
|
|
2785
|
-
...
|
|
2883
|
+
...G.fromNumber(Number(v)),
|
|
2786
2884
|
currency: "MYR"
|
|
2787
2885
|
}
|
|
2788
2886
|
};
|
|
2789
|
-
|
|
2887
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[w = k._id] ?? (t[w] = {
|
|
2790
2888
|
skuAdjustment: {
|
|
2791
|
-
sku:
|
|
2792
|
-
fromBalance:
|
|
2889
|
+
sku: k,
|
|
2890
|
+
fromBalance: G.fromNumber(0),
|
|
2793
2891
|
amounts: [
|
|
2794
2892
|
{
|
|
2795
2893
|
_id: null,
|
|
2796
2894
|
type: we.Enum.CLOSING,
|
|
2797
2895
|
remark: "Opening Balance",
|
|
2798
|
-
amount:
|
|
2896
|
+
amount: d,
|
|
2799
2897
|
measurement: null,
|
|
2800
2898
|
// always the smallest unit
|
|
2801
|
-
cost:
|
|
2899
|
+
cost: c.cost
|
|
2802
2900
|
}
|
|
2803
2901
|
],
|
|
2804
|
-
toBalance:
|
|
2805
|
-
toCostBalances: [
|
|
2902
|
+
toBalance: d,
|
|
2903
|
+
toCostBalances: [c]
|
|
2806
2904
|
},
|
|
2807
2905
|
skuBalance: {
|
|
2808
|
-
id:
|
|
2809
|
-
balance:
|
|
2810
|
-
costs: [
|
|
2906
|
+
id: k._id,
|
|
2907
|
+
balance: d,
|
|
2908
|
+
costs: [c]
|
|
2811
2909
|
}
|
|
2812
2910
|
});
|
|
2813
2911
|
}
|
|
@@ -2816,59 +2914,59 @@ async function go(F, v, s) {
|
|
|
2816
2914
|
rows: t
|
|
2817
2915
|
};
|
|
2818
2916
|
}
|
|
2819
|
-
async function
|
|
2820
|
-
const
|
|
2821
|
-
const
|
|
2822
|
-
|
|
2823
|
-
}), s = ke(
|
|
2824
|
-
for (const t of
|
|
2825
|
-
const
|
|
2826
|
-
n[t] =
|
|
2917
|
+
async function xo(F) {
|
|
2918
|
+
const y = await new Promise((t, i) => {
|
|
2919
|
+
const b = new FileReader();
|
|
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;
|
|
2827
2925
|
}
|
|
2828
2926
|
return n;
|
|
2829
2927
|
}
|
|
2830
|
-
async function
|
|
2831
|
-
const
|
|
2928
|
+
async function Io(F) {
|
|
2929
|
+
const y = Be.sheet_to_json(F, {
|
|
2832
2930
|
header: Ie,
|
|
2833
2931
|
range: 1
|
|
2834
2932
|
}), s = [];
|
|
2835
|
-
for (let
|
|
2836
|
-
const n =
|
|
2837
|
-
for (const
|
|
2838
|
-
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();
|
|
2839
2937
|
s.push({
|
|
2840
2938
|
...t,
|
|
2841
|
-
excelRow:
|
|
2939
|
+
excelRow: u + 2
|
|
2842
2940
|
// Excel rows start from 1, and we skip the first row
|
|
2843
2941
|
});
|
|
2844
2942
|
}
|
|
2845
2943
|
return s;
|
|
2846
2944
|
}
|
|
2847
|
-
const
|
|
2945
|
+
const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko = {
|
|
2848
2946
|
key: 0,
|
|
2849
2947
|
class: "flex flex-col gap-4 my-5"
|
|
2850
|
-
},
|
|
2851
|
-
class: /* @__PURE__ */
|
|
2852
|
-
},
|
|
2853
|
-
class: /* @__PURE__ */
|
|
2854
|
-
},
|
|
2948
|
+
}, Bo = { class: "flex flex-col gap-8" }, Co = { class: "flex flex-col gap-8" }, Eo = {
|
|
2949
|
+
class: /* @__PURE__ */ Z(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
2950
|
+
}, Fo = {
|
|
2951
|
+
class: /* @__PURE__ */ Z(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
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({
|
|
2855
2953
|
__name: "SynergyOpeningImport",
|
|
2856
2954
|
setup(F) {
|
|
2857
|
-
const
|
|
2955
|
+
const y = Ge(), s = be(), u = Ce(), n = te(), t = z(() => [
|
|
2858
2956
|
{
|
|
2859
2957
|
value: "synergy",
|
|
2860
2958
|
label: "Synergy",
|
|
2861
2959
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
2862
2960
|
}
|
|
2863
|
-
]),
|
|
2961
|
+
]), i = M(t.value[0].value), { t: b } = de(), w = M(null), g = M(), m = M(""), l = M([]), r = M([]), h = [
|
|
2864
2962
|
{
|
|
2865
2963
|
id: "ingredient",
|
|
2866
2964
|
header: () => "Ingredient",
|
|
2867
|
-
cell(
|
|
2868
|
-
const e =
|
|
2869
|
-
return
|
|
2870
|
-
|
|
2871
|
-
|
|
2965
|
+
cell(p) {
|
|
2966
|
+
const e = p.row.original;
|
|
2967
|
+
return D("div", { class: "flex flex-col" }, [
|
|
2968
|
+
D("span", { class: "font-medium" }, e.skuAdjustment.sku.name),
|
|
2969
|
+
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2872
2970
|
e.skuAdjustment.sku.code
|
|
2873
2971
|
])
|
|
2874
2972
|
]);
|
|
@@ -2877,13 +2975,13 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
2877
2975
|
{
|
|
2878
2976
|
id: "openingBalance",
|
|
2879
2977
|
header: () => "Opening Balance",
|
|
2880
|
-
cell(
|
|
2881
|
-
const e =
|
|
2882
|
-
return
|
|
2883
|
-
|
|
2978
|
+
cell(p) {
|
|
2979
|
+
const e = p.row.original;
|
|
2980
|
+
return D("div", { class: "flex flex-col" }, [
|
|
2981
|
+
D(
|
|
2884
2982
|
"span",
|
|
2885
2983
|
{ class: "font-medium" },
|
|
2886
|
-
|
|
2984
|
+
G.toFormatString({
|
|
2887
2985
|
value: e.skuAdjustment.amounts[0].amount
|
|
2888
2986
|
})
|
|
2889
2987
|
)
|
|
@@ -2893,18 +2991,18 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
2893
2991
|
{
|
|
2894
2992
|
id: "unit",
|
|
2895
2993
|
header: () => "Unit",
|
|
2896
|
-
cell(
|
|
2897
|
-
const e =
|
|
2994
|
+
cell(p) {
|
|
2995
|
+
const e = p.row.original, o = !e.skuAdjustment.amounts[0].measurement;
|
|
2898
2996
|
let B = e.skuAdjustment.sku.unit.name;
|
|
2899
2997
|
if (!o) {
|
|
2900
2998
|
const L = e.skuAdjustment.sku.unit.measurements.find(
|
|
2901
|
-
(
|
|
2999
|
+
(N) => N.id === e.skuAdjustment.amounts[0].measurement.id
|
|
2902
3000
|
);
|
|
2903
3001
|
B = L ? L.name : "Error: Measurement not found";
|
|
2904
3002
|
}
|
|
2905
|
-
return
|
|
2906
|
-
|
|
2907
|
-
o ? null :
|
|
3003
|
+
return D("div", { class: "flex flex-col" }, [
|
|
3004
|
+
D("span", { class: "font-medium" }, B),
|
|
3005
|
+
o ? null : D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2908
3006
|
`Base unit: ${e.skuAdjustment.sku.unit.name}`
|
|
2909
3007
|
])
|
|
2910
3008
|
]);
|
|
@@ -2913,17 +3011,17 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
2913
3011
|
{
|
|
2914
3012
|
id: "totalCost",
|
|
2915
3013
|
header: () => "Total Cost",
|
|
2916
|
-
cell(
|
|
2917
|
-
const e =
|
|
3014
|
+
cell(p) {
|
|
3015
|
+
const e = p.row.original, { currency: o, ...B } = e.skuAdjustment.amounts[0].cost ?? {
|
|
2918
3016
|
amount: 0,
|
|
2919
3017
|
precision: 0,
|
|
2920
3018
|
currency: ""
|
|
2921
3019
|
};
|
|
2922
|
-
return
|
|
2923
|
-
|
|
3020
|
+
return D("div", { class: "flex flex-col" }, [
|
|
3021
|
+
D(
|
|
2924
3022
|
"span",
|
|
2925
3023
|
{ class: "font-medium" },
|
|
2926
|
-
|
|
3024
|
+
G.toFormatString({
|
|
2927
3025
|
value: B
|
|
2928
3026
|
})
|
|
2929
3027
|
)
|
|
@@ -2951,127 +3049,127 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
2951
3049
|
accessorKey: "message",
|
|
2952
3050
|
header: "Error Message"
|
|
2953
3051
|
}
|
|
2954
|
-
],
|
|
2955
|
-
async function
|
|
2956
|
-
if (
|
|
2957
|
-
|
|
3052
|
+
], k = M(!1);
|
|
3053
|
+
async function v() {
|
|
3054
|
+
if (w.value) {
|
|
3055
|
+
k.value = !0;
|
|
2958
3056
|
try {
|
|
2959
|
-
let
|
|
2960
|
-
const { errors: e, rows: o } = await
|
|
2961
|
-
|
|
3057
|
+
let p = {};
|
|
3058
|
+
const { errors: e, rows: o } = await ho(
|
|
3059
|
+
p,
|
|
2962
3060
|
s.skus,
|
|
2963
|
-
|
|
3061
|
+
w.value
|
|
2964
3062
|
);
|
|
2965
|
-
l.value = e,
|
|
3063
|
+
l.value = e, r.value = Object.values(o);
|
|
2966
3064
|
} catch {
|
|
2967
3065
|
n.open({
|
|
2968
3066
|
message: "Error verifying file",
|
|
2969
3067
|
type: "error"
|
|
2970
3068
|
});
|
|
2971
3069
|
} finally {
|
|
2972
|
-
|
|
3070
|
+
k.value = !1;
|
|
2973
3071
|
}
|
|
2974
3072
|
}
|
|
2975
3073
|
}
|
|
2976
|
-
async function
|
|
2977
|
-
if (
|
|
2978
|
-
|
|
3074
|
+
async function f() {
|
|
3075
|
+
if (w.value) {
|
|
3076
|
+
k.value = !0;
|
|
2979
3077
|
try {
|
|
2980
|
-
if (!
|
|
3078
|
+
if (!c.value) {
|
|
2981
3079
|
n.open({
|
|
2982
3080
|
message: "Please select a date for the opening balance",
|
|
2983
3081
|
type: "error"
|
|
2984
3082
|
});
|
|
2985
3083
|
return;
|
|
2986
3084
|
}
|
|
2987
|
-
await
|
|
2988
|
-
effectiveAt:
|
|
2989
|
-
skuAdjustments:
|
|
2990
|
-
skuBalances:
|
|
3085
|
+
await u.setOpeningBalance({
|
|
3086
|
+
effectiveAt: c.value,
|
|
3087
|
+
skuAdjustments: r.value.map((p) => p.skuAdjustment),
|
|
3088
|
+
skuBalances: r.value.map((p) => p.skuBalance)
|
|
2991
3089
|
}), n.open({
|
|
2992
3090
|
message: "Opening balance imported successfully",
|
|
2993
3091
|
type: "success"
|
|
2994
|
-
}), await
|
|
3092
|
+
}), await y.fetchClosingDocumentId();
|
|
2995
3093
|
} catch {
|
|
2996
3094
|
n.open({
|
|
2997
3095
|
message: "Error importing opening balance",
|
|
2998
3096
|
type: "error"
|
|
2999
3097
|
});
|
|
3000
3098
|
} finally {
|
|
3001
|
-
|
|
3099
|
+
k.value = !1;
|
|
3002
3100
|
}
|
|
3003
3101
|
}
|
|
3004
3102
|
}
|
|
3005
|
-
const
|
|
3103
|
+
const d = M(""), c = z({
|
|
3006
3104
|
get() {
|
|
3007
|
-
return
|
|
3105
|
+
return d.value;
|
|
3008
3106
|
},
|
|
3009
|
-
set(
|
|
3010
|
-
|
|
3107
|
+
set(p) {
|
|
3108
|
+
d.value = `${p}T15:59:59.999Z`;
|
|
3011
3109
|
}
|
|
3012
|
-
}),
|
|
3013
|
-
if (!
|
|
3014
|
-
const
|
|
3015
|
-
return isNaN(
|
|
3110
|
+
}), A = z(() => {
|
|
3111
|
+
if (!d.value) return null;
|
|
3112
|
+
const p = new Date(d.value);
|
|
3113
|
+
return isNaN(p.getTime()) ? null : ye(p);
|
|
3016
3114
|
});
|
|
3017
|
-
return (
|
|
3018
|
-
const o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"),
|
|
3019
|
-
return
|
|
3020
|
-
a("div",
|
|
3021
|
-
|
|
3115
|
+
return (p, e) => {
|
|
3116
|
+
const o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"), N = E("FmButton"), H = E("FmRadio"), U = E("FmRadioGroup"), O = E("FmTable");
|
|
3117
|
+
return S(), V("div", So, [
|
|
3118
|
+
a("div", wo, [
|
|
3119
|
+
x(o, { label: "Latest closing" })
|
|
3022
3120
|
]),
|
|
3023
|
-
|
|
3121
|
+
x(B, {
|
|
3024
3122
|
"prepend-icon": "lock_outline",
|
|
3025
3123
|
disabled: ""
|
|
3026
3124
|
}, {
|
|
3027
|
-
default:
|
|
3028
|
-
|
|
3125
|
+
default: R(() => [
|
|
3126
|
+
q(j(I(y).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
3029
3127
|
]),
|
|
3030
3128
|
_: 1
|
|
3031
3129
|
}),
|
|
3032
|
-
|
|
3130
|
+
I(y).state.closingDocumentId ? (S(), V("div", Oo, e[6] || (e[6] = [
|
|
3033
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)
|
|
3034
|
-
]))) : (
|
|
3035
|
-
|
|
3036
|
-
modelValue:
|
|
3037
|
-
"onUpdate:modelValue": e[0] || (e[0] = (
|
|
3132
|
+
]))) : (S(), V("div", ko, [
|
|
3133
|
+
x(L, {
|
|
3134
|
+
modelValue: c.value,
|
|
3135
|
+
"onUpdate:modelValue": e[0] || (e[0] = (T) => c.value = T),
|
|
3038
3136
|
label: "Last closing time"
|
|
3039
3137
|
}, {
|
|
3040
|
-
"trigger-button":
|
|
3041
|
-
|
|
3138
|
+
"trigger-button": R(() => [
|
|
3139
|
+
x(B, {
|
|
3042
3140
|
"prepend-icon": "calendar_today",
|
|
3043
3141
|
readonly: "",
|
|
3044
3142
|
label: "Last closing time"
|
|
3045
3143
|
}, {
|
|
3046
|
-
default:
|
|
3047
|
-
|
|
3144
|
+
default: R(() => [
|
|
3145
|
+
q(j(A.value), 1)
|
|
3048
3146
|
]),
|
|
3049
3147
|
_: 1
|
|
3050
3148
|
})
|
|
3051
3149
|
]),
|
|
3052
3150
|
_: 1
|
|
3053
3151
|
}, 8, ["modelValue"]),
|
|
3054
|
-
a("div",
|
|
3055
|
-
|
|
3152
|
+
a("div", Bo, [
|
|
3153
|
+
x(o, { label: "Stock take file" })
|
|
3056
3154
|
]),
|
|
3057
|
-
|
|
3058
|
-
onFileUpload: e[1] || (e[1] = (
|
|
3059
|
-
|
|
3155
|
+
x(Fe, {
|
|
3156
|
+
onFileUpload: e[1] || (e[1] = (T) => {
|
|
3157
|
+
T && (w.value = T);
|
|
3060
3158
|
}),
|
|
3061
3159
|
accept: ".xlsx, .xls, .csv"
|
|
3062
3160
|
}, oe({ _: 2 }, [
|
|
3063
|
-
|
|
3161
|
+
w.value ? {
|
|
3064
3162
|
name: "default",
|
|
3065
|
-
fn:
|
|
3066
|
-
a("div",
|
|
3067
|
-
a("div",
|
|
3068
|
-
a("div",
|
|
3069
|
-
a("div",
|
|
3070
|
-
|
|
3071
|
-
label:
|
|
3163
|
+
fn: R(({ openFileDialog: T }) => [
|
|
3164
|
+
a("div", Co, [
|
|
3165
|
+
a("div", Eo, [
|
|
3166
|
+
a("div", Fo, [
|
|
3167
|
+
a("div", Lo, j(w.value.name), 1),
|
|
3168
|
+
x(N, {
|
|
3169
|
+
label: I(b)("inventory.ingredient.import.replaceFile"),
|
|
3072
3170
|
variant: "secondary",
|
|
3073
3171
|
"prepend-icon": "autorenew",
|
|
3074
|
-
onClick:
|
|
3172
|
+
onClick: T
|
|
3075
3173
|
}, null, 8, ["label", "onClick"])
|
|
3076
3174
|
])
|
|
3077
3175
|
])
|
|
@@ -3080,24 +3178,24 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
3080
3178
|
key: "0"
|
|
3081
3179
|
} : void 0
|
|
3082
3180
|
]), 1024),
|
|
3083
|
-
|
|
3084
|
-
modelValue:
|
|
3085
|
-
"onUpdate:modelValue": e[2] || (e[2] = (
|
|
3181
|
+
x(U, {
|
|
3182
|
+
modelValue: i.value,
|
|
3183
|
+
"onUpdate:modelValue": e[2] || (e[2] = (T) => i.value = T),
|
|
3086
3184
|
label: "Retrieve cost from",
|
|
3087
3185
|
class: "my-5"
|
|
3088
3186
|
}, {
|
|
3089
|
-
default:
|
|
3090
|
-
(
|
|
3091
|
-
key:
|
|
3092
|
-
value:
|
|
3093
|
-
label:
|
|
3094
|
-
sublabel:
|
|
3095
|
-
disabled:
|
|
3187
|
+
default: R(() => [
|
|
3188
|
+
(S(!0), V(J, null, $(t.value, (T) => (S(), X(H, {
|
|
3189
|
+
key: T.value,
|
|
3190
|
+
value: T.value,
|
|
3191
|
+
label: T.label,
|
|
3192
|
+
sublabel: T.subLabel,
|
|
3193
|
+
disabled: T.disabled
|
|
3096
3194
|
}, {
|
|
3097
|
-
label:
|
|
3098
|
-
a("div",
|
|
3099
|
-
a("span",
|
|
3100
|
-
a("span",
|
|
3195
|
+
label: R(() => [
|
|
3196
|
+
a("div", Vo, [
|
|
3197
|
+
a("span", No, j(T.label), 1),
|
|
3198
|
+
a("span", Do, j(T.disabled ? T.disabledReason : T.subLabel), 1)
|
|
3101
3199
|
])
|
|
3102
3200
|
]),
|
|
3103
3201
|
_: 2
|
|
@@ -3105,107 +3203,107 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
3105
3203
|
]),
|
|
3106
3204
|
_: 1
|
|
3107
3205
|
}, 8, ["modelValue"]),
|
|
3108
|
-
a("div",
|
|
3109
|
-
|
|
3206
|
+
a("div", Ro, [
|
|
3207
|
+
x(N, {
|
|
3110
3208
|
class: "ml-auto mt-4",
|
|
3111
3209
|
variant: "secondary",
|
|
3112
3210
|
"prepend-icon": "troubleshoot",
|
|
3113
3211
|
label: "Verify",
|
|
3114
|
-
disabled: !
|
|
3115
|
-
loading:
|
|
3116
|
-
onClick:
|
|
3212
|
+
disabled: !w.value && !k.value,
|
|
3213
|
+
loading: k.value,
|
|
3214
|
+
onClick: v
|
|
3117
3215
|
}, null, 8, ["disabled", "loading"])
|
|
3118
3216
|
]),
|
|
3119
|
-
|
|
3217
|
+
w.value && r.value.length > 0 ? (S(), V(J, { key: 0 }, [
|
|
3120
3218
|
e[4] || (e[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
3121
|
-
|
|
3122
|
-
modelValue:
|
|
3123
|
-
"onUpdate:modelValue": e[3] || (e[3] = (
|
|
3124
|
-
"row-data":
|
|
3125
|
-
"column-defs":
|
|
3219
|
+
x(O, {
|
|
3220
|
+
modelValue: g.value,
|
|
3221
|
+
"onUpdate:modelValue": e[3] || (e[3] = (T) => g.value = T),
|
|
3222
|
+
"row-data": r.value,
|
|
3223
|
+
"column-defs": h,
|
|
3126
3224
|
"shrink-at": !1,
|
|
3127
|
-
"search-value":
|
|
3225
|
+
"search-value": m.value
|
|
3128
3226
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
3129
3227
|
], 64)) : _("", !0),
|
|
3130
|
-
l.value.length > 0 ? (
|
|
3228
|
+
l.value.length > 0 ? (S(), V(J, { key: 1 }, [
|
|
3131
3229
|
e[5] || (e[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
3132
|
-
|
|
3230
|
+
x(O, {
|
|
3133
3231
|
"row-data": l.value,
|
|
3134
3232
|
"column-defs": C
|
|
3135
3233
|
}, null, 8, ["row-data"])
|
|
3136
3234
|
], 64)) : _("", !0),
|
|
3137
|
-
a("div",
|
|
3138
|
-
|
|
3235
|
+
a("div", Mo, [
|
|
3236
|
+
r.value.length > 0 && !I(y).state.closingDocumentId ? (S(), X(N, {
|
|
3139
3237
|
key: 0,
|
|
3140
3238
|
class: "ml-auto mt-4",
|
|
3141
3239
|
"prepend-icon": "file_upload",
|
|
3142
3240
|
variant: "primary",
|
|
3143
3241
|
label: "Import Opening Balance",
|
|
3144
|
-
disabled: !
|
|
3145
|
-
onClick:
|
|
3242
|
+
disabled: !w.value || k.value,
|
|
3243
|
+
onClick: f
|
|
3146
3244
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
3147
3245
|
])
|
|
3148
3246
|
]))
|
|
3149
3247
|
]);
|
|
3150
3248
|
};
|
|
3151
3249
|
}
|
|
3152
|
-
}),
|
|
3250
|
+
}), To = { class: "flex flex-col gap-8 w-full" }, zo = { class: "flex gap-4 justify-between" }, Ho = { class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 bg-fm-color-neutral-gray-100 text-fm-color-neutral-gray-400" }, _o = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, Xo = { key: 0 }, Uo = {
|
|
3153
3251
|
key: 1,
|
|
3154
3252
|
class: "flex flex-col gap-8 w-full"
|
|
3155
|
-
},
|
|
3253
|
+
}, Qo = { class: "flex gap-8 items-center justify-start" }, Yo = /* @__PURE__ */ Y({
|
|
3156
3254
|
__name: "SynergySideSheet",
|
|
3157
3255
|
props: {
|
|
3158
3256
|
show: { type: Boolean },
|
|
3159
3257
|
loading: { type: Boolean }
|
|
3160
3258
|
},
|
|
3161
3259
|
emits: ["update:show"],
|
|
3162
|
-
setup(F, { emit:
|
|
3163
|
-
var
|
|
3164
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
3165
|
-
return (
|
|
3166
|
-
var
|
|
3167
|
-
const
|
|
3168
|
-
return
|
|
3169
|
-
modelValue:
|
|
3170
|
-
"onUpdate:modelValue": l[1] || (l[1] = (
|
|
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) => {
|
|
3264
|
+
var k;
|
|
3265
|
+
const r = E("FmIcon"), h = E("FmButton"), C = E("FmSideSheet");
|
|
3266
|
+
return S(), X(C, {
|
|
3267
|
+
modelValue: I(n),
|
|
3268
|
+
"onUpdate:modelValue": l[1] || (l[1] = (v) => se(n) ? n.value = v : null),
|
|
3171
3269
|
header: "Data migration (Synergy)",
|
|
3172
3270
|
"dismiss-away": "",
|
|
3173
3271
|
"close-button": "",
|
|
3174
3272
|
"max-width": 800
|
|
3175
3273
|
}, oe({
|
|
3176
|
-
default:
|
|
3177
|
-
var
|
|
3274
|
+
default: R(() => {
|
|
3275
|
+
var v;
|
|
3178
3276
|
return [
|
|
3179
|
-
(
|
|
3180
|
-
|
|
3181
|
-
])) : (
|
|
3277
|
+
(v = I(s).sessionUser.value) != null && v.role.isAdmin ? (S(), V("div", Uo, [
|
|
3278
|
+
x(jo)
|
|
3279
|
+
])) : (S(), V("div", Xo, " Please contact your administrator to apply the changes. "))
|
|
3182
3280
|
];
|
|
3183
3281
|
}),
|
|
3184
|
-
"side-sheet-footer":
|
|
3185
|
-
a("div",
|
|
3186
|
-
|
|
3282
|
+
"side-sheet-footer": R(() => [
|
|
3283
|
+
a("div", Qo, [
|
|
3284
|
+
x(h, {
|
|
3187
3285
|
variant: "tertiary",
|
|
3188
|
-
label:
|
|
3189
|
-
onClick: l[0] || (l[0] = (
|
|
3286
|
+
label: I(t)("common.close"),
|
|
3287
|
+
onClick: l[0] || (l[0] = (v) => i("update:show", !1))
|
|
3190
3288
|
}, null, 8, ["label"])
|
|
3191
3289
|
])
|
|
3192
3290
|
]),
|
|
3193
3291
|
_: 2
|
|
3194
3292
|
}, [
|
|
3195
|
-
(
|
|
3293
|
+
(k = I(s).sessionUser.value) != null && k.role.isAdmin ? {
|
|
3196
3294
|
name: "side-sheet-header",
|
|
3197
|
-
fn:
|
|
3198
|
-
var
|
|
3295
|
+
fn: R(() => {
|
|
3296
|
+
var v;
|
|
3199
3297
|
return [
|
|
3200
|
-
a("div",
|
|
3201
|
-
a("div",
|
|
3298
|
+
a("div", To, [
|
|
3299
|
+
a("div", zo, [
|
|
3202
3300
|
l[2] || (l[2] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
3203
|
-
a("div",
|
|
3204
|
-
|
|
3205
|
-
name:
|
|
3301
|
+
a("div", Ho, [
|
|
3302
|
+
x(r, {
|
|
3303
|
+
name: I(w),
|
|
3206
3304
|
size: "sm"
|
|
3207
3305
|
}, null, 8, ["name"]),
|
|
3208
|
-
a("div",
|
|
3306
|
+
a("div", _o, j((v = I(b)._currentLocation) == null ? void 0 : v.name), 1)
|
|
3209
3307
|
])
|
|
3210
3308
|
])
|
|
3211
3309
|
])
|
|
@@ -3216,29 +3314,29 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
3216
3314
|
]), 1032, ["modelValue"]);
|
|
3217
3315
|
};
|
|
3218
3316
|
}
|
|
3219
|
-
}),
|
|
3317
|
+
}), Jo = /* @__PURE__ */ Y({
|
|
3220
3318
|
__name: "SynergyView",
|
|
3221
3319
|
setup(F) {
|
|
3222
|
-
const
|
|
3320
|
+
const y = Le(), s = W(), u = M(!1);
|
|
3223
3321
|
async function n() {
|
|
3224
|
-
|
|
3322
|
+
u.value = !0, console.log("Opening Synergy migration dialog");
|
|
3225
3323
|
}
|
|
3226
|
-
return (t,
|
|
3227
|
-
const
|
|
3228
|
-
return
|
|
3229
|
-
|
|
3230
|
-
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({
|
|
3231
3329
|
"w-full": !0,
|
|
3232
3330
|
border: !0,
|
|
3233
3331
|
"border-fm-color-neutral-gray-100": !0,
|
|
3234
3332
|
"cursor-pointer": !0,
|
|
3235
3333
|
"hover:border-fm-color-primary": !0
|
|
3236
3334
|
}),
|
|
3237
|
-
onClick:
|
|
3335
|
+
onClick: i[0] || (i[0] = (g) => n())
|
|
3238
3336
|
}, {
|
|
3239
|
-
default:
|
|
3240
|
-
|
|
3241
|
-
default:
|
|
3337
|
+
default: R(() => [
|
|
3338
|
+
x(b, null, {
|
|
3339
|
+
default: R(() => i[2] || (i[2] = [
|
|
3242
3340
|
a("div", { class: "flex justify-center" }, [
|
|
3243
3341
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
3244
3342
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Synergy")
|
|
@@ -3254,45 +3352,45 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
3254
3352
|
]),
|
|
3255
3353
|
_: 1
|
|
3256
3354
|
}),
|
|
3257
|
-
(
|
|
3258
|
-
|
|
3259
|
-
show:
|
|
3260
|
-
"onUpdate:show":
|
|
3355
|
+
(S(), X(ue, { to: "body" }, [
|
|
3356
|
+
x(Yo, {
|
|
3357
|
+
show: u.value,
|
|
3358
|
+
"onUpdate:show": i[1] || (i[1] = (g) => u.value = g)
|
|
3261
3359
|
}, null, 8, ["show"])
|
|
3262
3360
|
]))
|
|
3263
3361
|
], 64)) : _("", !0);
|
|
3264
3362
|
};
|
|
3265
3363
|
}
|
|
3266
|
-
}),
|
|
3364
|
+
}), Ko = { key: 0 }, qo = {
|
|
3267
3365
|
key: 1,
|
|
3268
3366
|
class: "flex flex-col items-center my-10 gap-5"
|
|
3269
|
-
},
|
|
3367
|
+
}, Zo = ["src"], Po = {
|
|
3270
3368
|
class: "text-xs text-neutral-400 text-center",
|
|
3271
3369
|
style: { "max-width": "25rem" }
|
|
3272
|
-
},
|
|
3370
|
+
}, Go = {
|
|
3273
3371
|
key: 2,
|
|
3274
3372
|
class: "grid grid-cols-2 gap-5"
|
|
3275
|
-
},
|
|
3373
|
+
}, ls = /* @__PURE__ */ Y({
|
|
3276
3374
|
__name: "IntegrationView",
|
|
3277
3375
|
setup(F) {
|
|
3278
|
-
const
|
|
3279
|
-
return
|
|
3280
|
-
if (
|
|
3376
|
+
const y = W(), s = M(!1), u = We(), { breakpoints: n } = Ve(), t = z(() => n.value.xs || n.value.sm), { t: i } = P();
|
|
3377
|
+
return fe(async () => {
|
|
3378
|
+
if (y._currentLocation) {
|
|
3281
3379
|
s.value = !0;
|
|
3282
3380
|
try {
|
|
3283
|
-
await
|
|
3381
|
+
await u.fetchFoodMarketHubSetting(), await u.fetchNetSuiteSetting();
|
|
3284
3382
|
} finally {
|
|
3285
3383
|
s.value = !1;
|
|
3286
3384
|
}
|
|
3287
3385
|
}
|
|
3288
|
-
}), (
|
|
3289
|
-
const
|
|
3290
|
-
return
|
|
3291
|
-
title:
|
|
3386
|
+
}), (b, w) => {
|
|
3387
|
+
const g = E("FmCircularProgress");
|
|
3388
|
+
return S(), X(Je, {
|
|
3389
|
+
title: I(i)("inventory.integration.title")
|
|
3292
3390
|
}, {
|
|
3293
|
-
default:
|
|
3391
|
+
default: R(() => [
|
|
3294
3392
|
a("div", {
|
|
3295
|
-
class:
|
|
3393
|
+
class: Z([
|
|
3296
3394
|
"flex flex-col gap-8 max-h-full",
|
|
3297
3395
|
{
|
|
3298
3396
|
"p-0": t.value,
|
|
@@ -3300,26 +3398,26 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
3300
3398
|
}
|
|
3301
3399
|
])
|
|
3302
3400
|
}, [
|
|
3303
|
-
|
|
3401
|
+
x(Ke, {
|
|
3304
3402
|
"change-location": "",
|
|
3305
3403
|
showBusiness: ""
|
|
3306
3404
|
}),
|
|
3307
|
-
!
|
|
3308
|
-
|
|
3309
|
-
])) :
|
|
3405
|
+
!I(y)._currentLocation || s.value ? (S(), V("div", Ko, [
|
|
3406
|
+
x(g, { size: "lg" })
|
|
3407
|
+
])) : I(u).enabledIntegrations == 0 ? (S(), V("div", qo, [
|
|
3310
3408
|
a("div", null, [
|
|
3311
3409
|
a("img", {
|
|
3312
|
-
src:
|
|
3410
|
+
src: I(He),
|
|
3313
3411
|
alt: "List is empty"
|
|
3314
|
-
}, null, 8,
|
|
3412
|
+
}, null, 8, Zo)
|
|
3315
3413
|
]),
|
|
3316
|
-
|
|
3317
|
-
a("div",
|
|
3318
|
-
])) : (
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
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, [
|
|
3417
|
+
x(Qn),
|
|
3418
|
+
x(Kt),
|
|
3419
|
+
x(bo),
|
|
3420
|
+
x(Jo)
|
|
3323
3421
|
]))
|
|
3324
3422
|
], 2)
|
|
3325
3423
|
]),
|
|
@@ -3329,5 +3427,5 @@ const bo = { class: "flex flex-col gap-4" }, ho = { class: "flex flex-col" }, Io
|
|
|
3329
3427
|
}
|
|
3330
3428
|
});
|
|
3331
3429
|
export {
|
|
3332
|
-
|
|
3430
|
+
ls as default
|
|
3333
3431
|
};
|