@feedmepos/mf-inventory-portal 1.1.6-dev.4 → 1.1.7-dev.1
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-7aDQCs0e.js → App-Bmxlht5n.js} +1 -1
- package/dist/{ApprovalView-DTiHrtmv.js → ApprovalView-BGoVcHKD.js} +2 -2
- package/dist/{BindingsDialog-CwFtThz3.js → BindingsDialog-3wG-ZhhF.js} +2 -2
- package/dist/{BindingsPicker-C-gN6_S_.js → BindingsPicker-DXYDFs9X.js} +1 -1
- package/dist/{BindingsTable-03rYMdPD.js → BindingsTable-CqDjX59W.js} +1 -1
- package/dist/{ClosingDraftView-CFzIsJ47.js → ClosingDraftView-BYJuKDgA.js} +2 -2
- package/dist/{ClosingTemplateView-fQ5i6sqs.js → ClosingTemplateView-u3ybESup.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-CU_7rneV.js → DeliveryOrderPrintPreview-CtzPnmCP.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CJBz08np.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BttZgTad.js} +3 -3
- package/dist/{FmMultiselectDialog-1yDoDij3.js → FmMultiselectDialog-BsM_e7wV.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-Bj0Wj8Xz.js → FmUnitInput.vue_vue_type_script_setup_true_lang-Bm0GjLV5.js} +1 -1
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-PPX_rDZF.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-CMgS9jWs.js} +1 -1
- package/dist/{IngredientGroupView-DM7Inm_j.js → IngredientGroupView-BjR8qP4N.js} +2 -2
- package/dist/{IngredientsView-CYNfI7-d.js → IngredientsView-DZ_RSJUN.js} +4 -4
- package/dist/{IntegrationView-GGqFp4AF.js → IntegrationView-Cnq2BOBh.js} +1619 -1491
- package/dist/{InventoryBindingForm-B2NUQyYC.js → InventoryBindingForm-CzbUP771.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-DWwDEcts.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-D_8QcQ41.js} +3 -3
- package/dist/{InventoryBindingSummary-BS_KPYvV.js → InventoryBindingSummary-D-Us0Qhk.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-KwJ-92ME.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DuHs2p_k.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-c3-rBgMz.js → PremiumBadge.vue_vue_type_script_setup_true_lang-CWlolez1.js} +1 -1
- package/dist/{PublishView-Be-xDCoP.js → PublishView-i1bswBlb.js} +1 -1
- package/dist/{PurchaseOrderPrintPreview-CgBW_CYT.js → PurchaseOrderPrintPreview-G1EuU3ZP.js} +1 -1
- package/dist/{ReceiveRequestView-DMk5uA4T.js → ReceiveRequestView-Byeg8Krf.js} +85 -85
- package/dist/{RecipeView-Btr3k6HN.js → RecipeView-Cdk9CGYO.js} +3 -3
- package/dist/{StockView-B4hURpuW.js → StockView-7LGrVuhD.js} +6 -6
- package/dist/{SupplierView-BAlA5PiP.js → SupplierView-BHcayc1a.js} +3 -3
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-CaxJcFvC.js → TransferDetails.vue_vue_type_script_setup_true_lang-LoAv2JiS.js} +5 -5
- package/dist/{TransferTemplateView-BX9hZLJK.js → TransferTemplateView-CnL3al4R.js} +6 -6
- package/dist/{UnitView-CLHFLa9Y.js → UnitView-CPy175wX.js} +3 -3
- package/dist/{WarehouseView-D7dlQVJG.js → WarehouseView-thUZEZkQ.js} +1 -1
- package/dist/api/netsuite.d.ts +3 -0
- package/dist/{app-BDvExlDk.js → app-CvLygrOG.js} +7076 -7035
- package/dist/app.js +1 -1
- package/dist/{decimal-DH1GxF5C.js → decimal-BBMHB9f0.js} +1 -1
- package/dist/{format-unit-display-D8HvxRH6.js → format-unit-display-utNWK0Mv.js} +2 -2
- package/dist/{index-j96vAh5F.js → index-BuLqGhP1.js} +1 -1
- package/dist/{index-D8hgUJvl.js → index-Dl9m2up1.js} +1 -1
- package/dist/router/index.d.ts +2 -2
- package/dist/{stock-DmyqH5zu.js → stock-cNcGmntS.js} +1 -1
- package/dist/{supplier-XLhXYVot.js → supplier-N9jopXTo.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{use-ingredient-select-dialog-CKqSU8JV.js → use-ingredient-select-dialog-Cb-ZSHs3.js} +1 -1
- package/dist/{use-inventory-binding-dialog-CnWPra3F.js → use-inventory-binding-dialog-DjqtoTx2.js} +1 -1
- package/dist/views/integration/components/netsuite/PurchaseOrder.vue.d.ts +35 -0
- package/dist/views/integration/components/netsuite/TransferOrder.vue.d.ts +0 -13
- package/package.json +2 -2
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import { defineComponent as Y, mergeModels as
|
|
2
|
-
import { E as
|
|
3
|
-
import { b0 as
|
|
4
|
-
import { useDialogChild as
|
|
5
|
-
import { useI18n as
|
|
6
|
-
import { a as
|
|
7
|
-
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { defineComponent as Y, mergeModels as Re, useModel as Se, onMounted as pe, ref as M, computed as _, resolveComponent as F, openBlock as I, createElementBlock as V, createElementVNode as l, toDisplayString as T, unref as S, createVNode as x, createBlock as U, withCtx as O, Fragment as J, renderList as W, normalizeClass as q, normalizeStyle as Te, createSlots as se, createCommentVNode as z, withModifiers as je, reactive as ve, watch as ge, isRef as ae, Teleport as ce, h as D, createTextVNode as P, watchEffect as _e } from "vue";
|
|
2
|
+
import { E as ze } from "./empty-placeholder-wf6-BWE8.js";
|
|
3
|
+
import { b0 as He, aP as Ue, f as te, u as $, b1 as Xe, b as ie, aA as de, j as Qe, aY as me, am as ye, az as Ae, a as be, a2 as Ye, Q as G, $ as we, b2 as ke, aG as Be, aT as Ce, s as Ee, y as Fe, a0 as ue, c as Le, _ as Je, C as Ke } from "./app-CvLygrOG.js";
|
|
4
|
+
import { useDialogChild as Pe, useDialog as re, useProxiedModel as le, useSnackbar as ee, useBreakpoints as Ve, components as ne } from "@feedmepos/ui-library";
|
|
5
|
+
import { useI18n as Z, useCoreStore as oe } from "@feedmepos/mf-common";
|
|
6
|
+
import { a as qe, b as Ze, c as Ge, u as We } from "./index-BuLqGhP1.js";
|
|
7
|
+
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-Bm0GjLV5.js";
|
|
8
8
|
const tt = "data:image/svg+xml,%3csvg%20width='200'%20height='101'%20viewBox='0%200%20200%20101'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M98.9161%2038.4456V24.1772H108.527V27.1988H102.12V30.2202H107.347V32.7382H102.12V38.4456H98.9161Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.382%2031.2276C110.382%2027.5345%20113.249%2024.1772%20117.127%2024.1772C121.174%2024.1772%20123.872%2027.7024%20123.872%2031.3953C123.872%2035.0884%20121.005%2038.6133%20117.127%2038.6133C113.08%2038.4456%20110.382%2034.9204%20110.382%2031.2276ZM117.127%2035.5919C119.487%2035.5919%20120.499%2033.4096%20120.499%2031.2276C120.499%2029.0452%20119.319%2027.0309%20117.127%2027.0309C114.935%2027.0309%20113.754%2029.213%20113.754%2031.2276C113.754%2033.5776%20114.935%2035.5919%20117.127%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M126.232%2031.2276C126.232%2027.5345%20129.099%2024.1772%20132.977%2024.1772C137.024%2024.1772%20139.722%2027.7024%20139.722%2031.3953C139.722%2035.0884%20136.855%2038.6133%20132.977%2038.6133C128.93%2038.4456%20126.232%2034.9204%20126.232%2031.2276ZM132.977%2035.5919C135.337%2035.5919%20136.349%2033.4096%20136.349%2031.2276C136.349%2029.0452%20135.169%2027.0309%20132.977%2027.0309C130.785%2027.0309%20129.604%2029.213%20129.604%2031.2276C129.604%2033.5776%20130.785%2035.5919%20132.977%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M142.926%2038.4455V24.345H148.153C152.874%2024.345%20155.235%2027.5343%20155.235%2031.3952C155.235%2035.5918%20152.368%2038.4455%20148.153%2038.4455H142.926ZM148.153%2027.0308H146.129V35.4238H148.153C150.513%2035.4238%20151.862%2033.5775%20151.862%2031.2272C151.862%2028.8773%20150.513%2027.0308%20148.153%2027.0308Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.045%2057.5607V49.1676L107.009%2055.2107H105.324L102.12%2049.1676V57.5607H98.9161V43.4604H102.457L106.167%2050.8465L109.876%2043.4604H113.417V57.5607H110.045Z'%20fill='%235D5359'/%3e%3cpath%20d='M115.947%2057.5607L121.342%2043.4604H124.04L129.436%2057.5607H125.895L124.715%2054.3716H120.331L119.319%2057.5607H115.947ZM122.691%2046.9856L121.005%2052.1893H124.378L122.691%2046.9856Z'%20fill='%235D5359'/%3e%3cpath%20d='M131.965%2057.5607V43.4604H138.373C141.07%2043.4604%20142.925%2045.8105%20142.925%2048.1605C142.925%2049.8393%20142.082%2051.5179%20140.565%2052.1893L143.768%2057.393H140.059L137.192%2052.8607H135V57.393H131.965V57.5607ZM135.169%2050.175H138.204C139.047%2050.175%20139.553%2049.3356%20139.553%2048.1605C139.553%2046.9856%20138.71%2046.3142%20138.035%2046.3142H135.169V50.175Z'%20fill='%235D5359'/%3e%3cpath%20d='M146.635%2057.5607V43.4604H150.007V49.8393L155.403%2043.4604H158.776L153.548%2049.6713L159.281%2057.5607H155.74L151.693%2051.5179L150.007%2053.3642V57.5607H146.635Z'%20fill='%235D5359'/%3e%3cpath%20d='M171.422%2054.7073V57.5607H161.474V43.4604H171.253V46.3142H164.677V48.9999H170.242V51.6856H164.677V54.7073H171.422Z'%20fill='%235D5359'/%3e%3cpath%20d='M185.417%2046.3142H181.202V57.5607H177.829V46.3142H173.614V43.4604H185.417V46.3142Z'%20fill='%235D5359'/%3e%3cpath%20d='M111.057%2062.5967V76.6973H107.853V70.9898H102.12V76.6973H98.9161V62.5967H102.12V68.1361H107.853V62.5967H111.057Z'%20fill='%235D5359'/%3e%3cpath%20d='M124.04%2069.815V62.5967H127.244V69.815C127.244%2073.6758%20125.389%2076.865%20121.005%2076.865C116.453%2076.865%20114.766%2073.5078%20114.766%2069.815V62.5967H117.97V69.815C117.97%2071.997%20118.813%2074.0115%20121.005%2074.0115C123.366%2074.0115%20124.04%2071.997%20124.04%2069.815Z'%20fill='%235D5359'/%3e%3cpath%20d='M138.036%2076.6973H131.122V62.5967H139.047C141.071%2062.5967%20142.251%2064.4433%20142.251%2066.2898C142.251%2067.6327%20141.576%2068.9755%20140.228%2069.4793C141.914%2069.9827%20142.926%2071.1578%20142.926%2073.1721C142.757%2075.5221%20140.733%2076.6973%20138.036%2076.6973ZM134.326%2065.4504V68.3041H137.53C138.204%2068.3041%20138.879%2067.8004%20138.879%2066.7933C138.879%2065.7861%20138.373%2065.2827%20137.698%2065.2827H134.326V65.4504ZM138.204%2070.8221H134.494V73.8435H138.204C139.047%2073.8435%20139.722%2073.1721%20139.722%2072.3327C139.553%2071.6613%20138.879%2070.8221%20138.204%2070.8221Z'%20fill='%235D5359'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M73.4753%2051.4994C78.7281%2050.5396%2082.8911%2046.4891%2083.9954%2041.3137L84.1232%2040.7134L83.9445%2040.1256C80.5804%2029.066%2071.9945%2020.2704%2061.0373%2016.5726C57.4%2015.3451%2053.5046%2014.6804%2049.458%2014.6804C45.4112%2014.6804%2041.5158%2015.3451%2037.8784%2016.5726C26.9214%2020.2704%2018.3354%2029.066%2014.9712%2040.1256L14.7924%2040.7134L14.9206%2041.3137C16.0247%2046.4891%2020.1875%2050.5396%2025.4405%2051.4994V58.8839H14.4183C14.6758%2059.9557%2014.9818%2061.0088%2015.3337%2062.0411C20.1553%2076.1811%2033.6083%2086.3619%2049.458%2086.3619C65.3074%2086.3619%2078.7606%2076.1811%2083.5822%2062.0411C83.9342%2061.0088%2084.2399%2059.9557%2084.4974%2058.8839H73.4753V51.4994ZM41.0517%2020.5973V38.5742C41.0517%2043.1931%2044.8155%2046.9371%2049.458%2046.9371C54.1005%2046.9371%2057.8641%2043.1931%2057.8641%2038.5742V20.5973C55.1919%2019.856%2052.3732%2019.4592%2049.458%2019.4592C46.5428%2019.4592%2043.7241%2019.856%2041.0517%2020.5973ZM62.6675%2022.3673V38.5742C62.6675%2043.1931%2066.431%2046.9371%2071.0735%2046.9371C74.9051%2046.9371%2078.1425%2044.3848%2079.1528%2040.8942C76.4672%2032.6902%2070.4379%2025.9824%2062.6675%2022.3673ZM60.2658%2046.1322C57.8753%2049.5094%2053.9255%2051.7159%2049.458%2051.7159C44.9902%2051.7159%2041.0408%2049.5094%2038.65%2046.1322C36.6982%2048.8894%2033.7074%2050.8662%2030.2439%2051.4994V58.8839H68.6718V51.4994C65.2083%2050.8662%2062.2175%2048.8894%2060.2658%2046.1322ZM21.1583%2063.6628C26.1349%2074.2514%2036.9382%2081.5834%2049.458%2081.5834C61.9776%2081.5834%2072.781%2074.2514%2077.7574%2063.6628H21.1583ZM36.2482%2038.5742V22.3673C28.4779%2025.9824%2022.4486%2032.6902%2019.7631%2040.8942C20.7733%2044.3848%2024.0106%2046.9371%2027.8422%2046.9371C32.4847%2046.9371%2036.2482%2043.1931%2036.2482%2038.5742Z'%20fill='%23FFC35D'/%3e%3c/svg%3e";
|
|
9
9
|
var Ne = { exports: {} };
|
|
10
|
-
(function(
|
|
10
|
+
(function(E, y) {
|
|
11
11
|
(function() {
|
|
12
12
|
var s = {};
|
|
13
|
-
|
|
14
|
-
return n.filter(function(
|
|
15
|
-
return s.test(
|
|
13
|
+
E.exports = s, s.simpleFilter = function(r, n) {
|
|
14
|
+
return n.filter(function(e) {
|
|
15
|
+
return s.test(r, e);
|
|
16
16
|
});
|
|
17
|
-
}, s.test = function(
|
|
18
|
-
return s.match(
|
|
19
|
-
}, s.match = function(
|
|
20
|
-
|
|
21
|
-
var u = 0,
|
|
22
|
-
|
|
23
|
-
for (var k = 0; k <
|
|
24
|
-
|
|
25
|
-
return u ===
|
|
26
|
-
}, s.filter = function(
|
|
27
|
-
return !n || n.length === 0 ? [] : typeof
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
var
|
|
31
|
-
return
|
|
32
|
-
string:
|
|
33
|
-
score:
|
|
34
|
-
index:
|
|
35
|
-
original:
|
|
17
|
+
}, s.test = function(r, n) {
|
|
18
|
+
return s.match(r, n) !== null;
|
|
19
|
+
}, s.match = function(r, n, e) {
|
|
20
|
+
e = e || {};
|
|
21
|
+
var u = 0, f = [], w = n.length, b = 0, d = 0, o = e.pre || "", i = e.post || "", A = e.caseSensitive && n || n.toLowerCase(), B;
|
|
22
|
+
r = e.caseSensitive && r || r.toLowerCase();
|
|
23
|
+
for (var k = 0; k < w; k++)
|
|
24
|
+
B = n[k], A[k] === r[u] ? (B = o + B + i, u += 1, d += 1 + d) : d = 0, b += d, f[f.length] = B;
|
|
25
|
+
return u === r.length ? (b = A === r ? 1 / 0 : b, { rendered: f.join(""), score: b }) : null;
|
|
26
|
+
}, s.filter = function(r, n, e) {
|
|
27
|
+
return !n || n.length === 0 ? [] : typeof r != "string" ? n : (e = e || {}, n.reduce(function(u, f, w, b) {
|
|
28
|
+
var d = f;
|
|
29
|
+
e.extract && (d = e.extract(f));
|
|
30
|
+
var o = s.match(r, d, e);
|
|
31
|
+
return o != null && (u[u.length] = {
|
|
32
|
+
string: o.rendered,
|
|
33
|
+
score: o.score,
|
|
34
|
+
index: w,
|
|
35
|
+
original: f
|
|
36
36
|
}), u;
|
|
37
|
-
}, []).sort(function(u,
|
|
38
|
-
var
|
|
39
|
-
return
|
|
37
|
+
}, []).sort(function(u, f) {
|
|
38
|
+
var w = f.score - u.score;
|
|
39
|
+
return w || u.index - f.index;
|
|
40
40
|
}));
|
|
41
41
|
};
|
|
42
42
|
})();
|
|
43
43
|
})(Ne);
|
|
44
44
|
var nt = Ne.exports;
|
|
45
|
-
const De = /* @__PURE__ */
|
|
46
|
-
function he(
|
|
47
|
-
return De.filter(
|
|
45
|
+
const De = /* @__PURE__ */ He(nt);
|
|
46
|
+
function he(E, y) {
|
|
47
|
+
return De.filter(E, y).length > 0;
|
|
48
48
|
}
|
|
49
|
-
function ot(
|
|
50
|
-
if (!
|
|
49
|
+
function ot(E, y) {
|
|
50
|
+
if (!E)
|
|
51
51
|
return {
|
|
52
|
-
label:
|
|
52
|
+
label: y,
|
|
53
53
|
segments: [
|
|
54
54
|
{
|
|
55
55
|
isMatch: !1,
|
|
56
|
-
segment:
|
|
56
|
+
segment: y
|
|
57
57
|
}
|
|
58
58
|
],
|
|
59
59
|
matched: !1
|
|
60
60
|
};
|
|
61
|
-
const [s] = De.filter(
|
|
61
|
+
const [s] = De.filter(E.toLocaleLowerCase(), [y], {
|
|
62
62
|
pre: "|",
|
|
63
63
|
post: "|"
|
|
64
64
|
});
|
|
65
65
|
if (!s)
|
|
66
66
|
return {
|
|
67
|
-
label:
|
|
68
|
-
segments: [{ segment:
|
|
67
|
+
label: y,
|
|
68
|
+
segments: [{ segment: y, isMatch: !1 }],
|
|
69
69
|
matched: !1
|
|
70
70
|
};
|
|
71
|
-
const
|
|
72
|
-
segment:
|
|
71
|
+
const r = s.string.toString().replace(/\|\|/g, "").split("|").reduce((n, e, u) => (n.push({
|
|
72
|
+
segment: e,
|
|
73
73
|
isMatch: u % 2 !== 0
|
|
74
74
|
//e.g. index 1, 3, 5, ...
|
|
75
75
|
}), n), new Array());
|
|
76
76
|
return {
|
|
77
|
-
label:
|
|
78
|
-
segments:
|
|
77
|
+
label: y,
|
|
78
|
+
segments: r,
|
|
79
79
|
matched: !0
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
-
function K(
|
|
83
|
-
return Object.prototype.hasOwnProperty.call(
|
|
82
|
+
function K(E) {
|
|
83
|
+
return Object.prototype.hasOwnProperty.call(E, "children");
|
|
84
84
|
}
|
|
85
85
|
const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex items-center" }, lt = {
|
|
86
86
|
class: "flex-1",
|
|
@@ -91,231 +91,231 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
91
91
|
}, rt = ["data-cy"], ut = { class: "flex flex-col" }, ct = { class: "fm-typo-en-body-md-400" }, dt = {
|
|
92
92
|
key: 1,
|
|
93
93
|
class: "w-full py-16 text-fm-color-typo-disabled fm-typo-en-body-md-400 text-center"
|
|
94
|
-
},
|
|
94
|
+
}, Oe = /* @__PURE__ */ Y({
|
|
95
95
|
__name: "FmNestedMultiselectDialog",
|
|
96
|
-
props: /* @__PURE__ */
|
|
96
|
+
props: /* @__PURE__ */ Re({
|
|
97
97
|
modelValue: {}
|
|
98
98
|
}, {
|
|
99
99
|
modelValue: {},
|
|
100
100
|
modelModifiers: {}
|
|
101
101
|
}),
|
|
102
102
|
emits: ["update:modelValue"],
|
|
103
|
-
setup(
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
s.emitData(
|
|
103
|
+
setup(E) {
|
|
104
|
+
const y = Se(E, "modelValue"), s = Pe();
|
|
105
|
+
pe(() => {
|
|
106
|
+
s.emitData(y.value);
|
|
107
107
|
});
|
|
108
|
-
const
|
|
109
|
-
function t
|
|
108
|
+
const r = M(""), { t: n } = Z();
|
|
109
|
+
function e(t) {
|
|
110
110
|
return he(
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
r.value,
|
|
112
|
+
t.sublabel ? [t.label, t.sublabel] : [t.label]
|
|
113
113
|
);
|
|
114
114
|
}
|
|
115
|
-
function u(
|
|
116
|
-
return t
|
|
115
|
+
function u(t) {
|
|
116
|
+
return e(t) ? !0 : K(t) ? t.children.some(u) : !1;
|
|
117
117
|
}
|
|
118
|
-
function
|
|
119
|
-
if (!
|
|
118
|
+
function f(t, a) {
|
|
119
|
+
if (!r.value)
|
|
120
120
|
return !0;
|
|
121
|
-
const [
|
|
122
|
-
if (typeof
|
|
121
|
+
const [C, ...L] = t;
|
|
122
|
+
if (typeof C != "number")
|
|
123
123
|
return !1;
|
|
124
|
-
const N =
|
|
124
|
+
const N = a[C];
|
|
125
125
|
return he(
|
|
126
|
-
|
|
126
|
+
r.value,
|
|
127
127
|
N.sublabel ? [N.label, N.sublabel] : [N.label]
|
|
128
|
-
) ? !0 : L.length === 0 ? u(N) : K(N) ?
|
|
128
|
+
) ? !0 : L.length === 0 ? u(N) : K(N) ? f(L, N.children) : !1;
|
|
129
129
|
}
|
|
130
|
-
function
|
|
131
|
-
if (K(
|
|
132
|
-
const { children: N, ...H } =
|
|
133
|
-
(
|
|
130
|
+
function w(t, a, C = 0, L = !1) {
|
|
131
|
+
if (K(t) && t.children.length) {
|
|
132
|
+
const { children: N, ...H } = t, X = N.flatMap(
|
|
133
|
+
(R, j) => w(R, [...a, j], C + 1, L || t.disabled)
|
|
134
134
|
);
|
|
135
135
|
return [
|
|
136
136
|
{
|
|
137
137
|
...H,
|
|
138
|
-
keys:
|
|
139
|
-
indent:
|
|
138
|
+
keys: a,
|
|
139
|
+
indent: C,
|
|
140
140
|
collapsible: !0,
|
|
141
|
-
disabled: L ||
|
|
141
|
+
disabled: L || t.disabled
|
|
142
142
|
},
|
|
143
|
-
...
|
|
143
|
+
...X
|
|
144
144
|
];
|
|
145
145
|
}
|
|
146
146
|
return [
|
|
147
147
|
{
|
|
148
|
-
...
|
|
149
|
-
keys:
|
|
150
|
-
indent:
|
|
148
|
+
...t,
|
|
149
|
+
keys: a,
|
|
150
|
+
indent: C,
|
|
151
151
|
collapsible: !1,
|
|
152
|
-
disabled: L ||
|
|
152
|
+
disabled: L || t.disabled
|
|
153
153
|
}
|
|
154
154
|
];
|
|
155
155
|
}
|
|
156
|
-
const
|
|
157
|
-
(
|
|
156
|
+
const b = _(() => y.value.flatMap(
|
|
157
|
+
(t, a) => w(t, [a]).filter((C) => f(C.keys, y.value))
|
|
158
158
|
));
|
|
159
|
-
function
|
|
160
|
-
if (K(
|
|
161
|
-
if (u(
|
|
162
|
-
const
|
|
163
|
-
return
|
|
159
|
+
function d(t) {
|
|
160
|
+
if (K(t)) {
|
|
161
|
+
if (u(t)) {
|
|
162
|
+
const a = e(t) ? t.children : t.children.filter(u);
|
|
163
|
+
return a.length === 0 ? !1 : a.every(d);
|
|
164
164
|
}
|
|
165
|
-
return
|
|
165
|
+
return t.children.every(d);
|
|
166
166
|
}
|
|
167
|
-
return
|
|
167
|
+
return t.active ?? !1;
|
|
168
168
|
}
|
|
169
|
-
function
|
|
170
|
-
const [
|
|
171
|
-
if (typeof
|
|
169
|
+
function o(t, a) {
|
|
170
|
+
const [C, ...L] = t;
|
|
171
|
+
if (typeof C != "number")
|
|
172
172
|
return !1;
|
|
173
|
-
const N =
|
|
174
|
-
return L.length === 0 ?
|
|
173
|
+
const N = a[C];
|
|
174
|
+
return L.length === 0 ? d(N ?? []) : K(N) ? o(L, N.children ?? []) : !1;
|
|
175
175
|
}
|
|
176
|
-
function
|
|
177
|
-
if (K(
|
|
178
|
-
if (u(
|
|
179
|
-
const
|
|
180
|
-
return
|
|
176
|
+
function i(t) {
|
|
177
|
+
if (K(t)) {
|
|
178
|
+
if (u(t)) {
|
|
179
|
+
const a = e(t) ? t.children : t.children.filter(u);
|
|
180
|
+
return a.length === 0 ? !1 : a.some(d) && !a.every(d);
|
|
181
181
|
}
|
|
182
182
|
return !1;
|
|
183
183
|
}
|
|
184
184
|
return !1;
|
|
185
185
|
}
|
|
186
|
-
function
|
|
187
|
-
const [
|
|
188
|
-
if (typeof
|
|
186
|
+
function A(t, a) {
|
|
187
|
+
const [C, ...L] = t;
|
|
188
|
+
if (typeof C != "number")
|
|
189
189
|
return !1;
|
|
190
|
-
const N =
|
|
191
|
-
return L.length === 0 ?
|
|
190
|
+
const N = a[C];
|
|
191
|
+
return L.length === 0 ? i(N ?? []) : K(N) ? A(L, (N == null ? void 0 : N.children) ?? []) : !1;
|
|
192
192
|
}
|
|
193
|
-
function
|
|
194
|
-
if (
|
|
195
|
-
return
|
|
196
|
-
if (K(
|
|
197
|
-
if (u(
|
|
198
|
-
const
|
|
193
|
+
function B(t, a) {
|
|
194
|
+
if (t.disabled)
|
|
195
|
+
return t;
|
|
196
|
+
if (K(t)) {
|
|
197
|
+
if (u(t)) {
|
|
198
|
+
const C = e(t) ? t.children : t.children.filter(u);
|
|
199
199
|
return {
|
|
200
|
-
...
|
|
201
|
-
children:
|
|
200
|
+
...t,
|
|
201
|
+
children: t.children.map((L) => C.find((H) => Ue(H.value, L.value)) ? B(L, a) : L)
|
|
202
202
|
};
|
|
203
203
|
}
|
|
204
204
|
return {
|
|
205
|
-
...
|
|
206
|
-
children:
|
|
205
|
+
...t,
|
|
206
|
+
children: t.children.map((C) => B(C, a))
|
|
207
207
|
};
|
|
208
208
|
}
|
|
209
209
|
return {
|
|
210
|
-
...
|
|
211
|
-
active:
|
|
210
|
+
...t,
|
|
211
|
+
active: a
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
|
-
function k(
|
|
215
|
-
const [L, ...N] =
|
|
216
|
-
return typeof L != "number" ?
|
|
217
|
-
(H,
|
|
214
|
+
function k(t, a, C) {
|
|
215
|
+
const [L, ...N] = t;
|
|
216
|
+
return typeof L != "number" ? a : N.length === 0 ? a.map((H, X) => L !== X ? H : B(H, C)) : a.map(
|
|
217
|
+
(H, X) => L === X && K(H) ? {
|
|
218
218
|
...H,
|
|
219
|
-
children: k(N, H.children,
|
|
219
|
+
children: k(N, H.children, C)
|
|
220
220
|
} : H
|
|
221
221
|
);
|
|
222
222
|
}
|
|
223
|
-
const
|
|
224
|
-
function
|
|
225
|
-
const
|
|
226
|
-
return
|
|
223
|
+
const g = M(new Array());
|
|
224
|
+
function p(t) {
|
|
225
|
+
const a = t.join();
|
|
226
|
+
return g.value.find((C) => a === C);
|
|
227
227
|
}
|
|
228
|
-
function
|
|
229
|
-
const
|
|
230
|
-
|
|
228
|
+
function m(t) {
|
|
229
|
+
const a = t.join();
|
|
230
|
+
p(t) ? g.value = g.value.filter((C) => C !== a) : g.value = [...g.value, a];
|
|
231
231
|
}
|
|
232
|
-
function c(
|
|
233
|
-
const
|
|
234
|
-
return
|
|
232
|
+
function c(t) {
|
|
233
|
+
const a = t.join();
|
|
234
|
+
return g.value.find((C) => a.startsWith(C) && a !== C);
|
|
235
235
|
}
|
|
236
|
-
const
|
|
237
|
-
() =>
|
|
236
|
+
const h = _(
|
|
237
|
+
() => b.value.filter((t) => f(t.keys, y.value) && t.active).length
|
|
238
238
|
);
|
|
239
|
-
function
|
|
240
|
-
|
|
239
|
+
function v(t, a, C) {
|
|
240
|
+
y.value = k(t, a, C), s.emitData(y.value);
|
|
241
241
|
}
|
|
242
|
-
return (
|
|
243
|
-
const
|
|
244
|
-
return
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
x(
|
|
249
|
-
modelValue:
|
|
250
|
-
"onUpdate:modelValue":
|
|
251
|
-
placeholder:
|
|
242
|
+
return (t, a) => {
|
|
243
|
+
const C = F("FmSearch"), L = F("FmCheckbox"), N = F("FmButton"), H = F("FmListItem"), X = F("FmList");
|
|
244
|
+
return I(), V("div", st, [
|
|
245
|
+
l("div", at, [
|
|
246
|
+
l("div", lt, T(S(n)("inventory.formField.itemsSelected", { count: h.value })), 1),
|
|
247
|
+
l("div", it, [
|
|
248
|
+
x(C, {
|
|
249
|
+
modelValue: r.value,
|
|
250
|
+
"onUpdate:modelValue": a[0] || (a[0] = (R) => r.value = R),
|
|
251
|
+
placeholder: S(n)("inventory.formField.filterItems")
|
|
252
252
|
}, null, 8, ["modelValue", "placeholder"])
|
|
253
253
|
])
|
|
254
254
|
]),
|
|
255
|
-
|
|
255
|
+
b.value.length ? (I(), U(X, {
|
|
256
256
|
key: 0,
|
|
257
257
|
class: "flex-1 overflow-y-auto"
|
|
258
258
|
}, {
|
|
259
|
-
default:
|
|
260
|
-
(
|
|
261
|
-
key:
|
|
262
|
-
class:
|
|
259
|
+
default: O(() => [
|
|
260
|
+
(I(!0), V(J, null, W(b.value, (R) => (I(), V("div", {
|
|
261
|
+
key: R.keys.join(),
|
|
262
|
+
class: q([
|
|
263
263
|
"transition-all overflow-y-clip",
|
|
264
|
-
c(
|
|
264
|
+
c(R.keys) ? "max-h-0 opacity-0" : "max-h-[50px] opacity-100"
|
|
265
265
|
]),
|
|
266
|
-
"data-cy": `nested-${
|
|
266
|
+
"data-cy": `nested-${R.keys.join("-")}-${R.label}`
|
|
267
267
|
}, [
|
|
268
268
|
x(H, {
|
|
269
|
-
clickable:
|
|
270
|
-
onClick: () =>
|
|
271
|
-
style:
|
|
272
|
-
paddingLeft: `${16 +
|
|
269
|
+
clickable: R.selectable !== !1,
|
|
270
|
+
onClick: () => R.selectable === !1 || R.disabled || v(R.keys, y.value, !o(R.keys, y.value)),
|
|
271
|
+
style: Te({
|
|
272
|
+
paddingLeft: `${16 + R.indent * 16}px`,
|
|
273
273
|
paddingTop: "4px",
|
|
274
274
|
paddingBottom: "4px"
|
|
275
275
|
}),
|
|
276
|
-
disabled:
|
|
277
|
-
},
|
|
278
|
-
default:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
(
|
|
276
|
+
disabled: R.selectable !== !1 && R.disabled
|
|
277
|
+
}, se({
|
|
278
|
+
default: O(() => [
|
|
279
|
+
l("div", ut, [
|
|
280
|
+
l("div", ct, [
|
|
281
|
+
(I(!0), V(J, null, W(S(ot)(r.value, R.label).segments, (j, Q) => (I(), V("span", {
|
|
282
282
|
key: Q,
|
|
283
|
-
class:
|
|
284
|
-
"font-bold":
|
|
283
|
+
class: q({
|
|
284
|
+
"font-bold": j.isMatch
|
|
285
285
|
})
|
|
286
|
-
}, j
|
|
286
|
+
}, T(j.segment), 3))), 128))
|
|
287
287
|
]),
|
|
288
|
-
|
|
288
|
+
R.sublabel ? (I(), V("div", {
|
|
289
289
|
key: 0,
|
|
290
|
-
class:
|
|
290
|
+
class: q([
|
|
291
291
|
"fm-typo-en-body-sm-400",
|
|
292
|
-
|
|
292
|
+
R.disabled ? "" : "text-fm-color-typo-secondary"
|
|
293
293
|
])
|
|
294
|
-
},
|
|
294
|
+
}, T(R.sublabel), 3)) : z("", !0)
|
|
295
295
|
])
|
|
296
296
|
]),
|
|
297
297
|
_: 2
|
|
298
298
|
}, [
|
|
299
|
-
|
|
299
|
+
R.selectable !== !1 ? {
|
|
300
300
|
name: "prepend",
|
|
301
|
-
fn:
|
|
301
|
+
fn: O(() => [
|
|
302
302
|
x(L, {
|
|
303
|
-
disabled:
|
|
304
|
-
"model-value":
|
|
305
|
-
value:
|
|
306
|
-
indeterminate:
|
|
303
|
+
disabled: R.disabled,
|
|
304
|
+
"model-value": o(R.keys, y.value),
|
|
305
|
+
value: R.keys,
|
|
306
|
+
indeterminate: A(R.keys, y.value)
|
|
307
307
|
}, null, 8, ["disabled", "model-value", "value", "indeterminate"])
|
|
308
308
|
]),
|
|
309
309
|
key: "0"
|
|
310
310
|
} : void 0,
|
|
311
|
-
|
|
311
|
+
R.collapsible ? {
|
|
312
312
|
name: "append",
|
|
313
|
-
fn:
|
|
313
|
+
fn: O(() => [
|
|
314
314
|
x(N, {
|
|
315
|
-
"prepend-icon":
|
|
315
|
+
"prepend-icon": p(R.keys) ? "expand_less" : "expand_more",
|
|
316
316
|
size: "md",
|
|
317
317
|
variant: "tertiary",
|
|
318
|
-
onClick:
|
|
318
|
+
onClick: je(() => m(R.keys), ["stop"])
|
|
319
319
|
}, null, 8, ["prepend-icon", "onClick"])
|
|
320
320
|
]),
|
|
321
321
|
key: "1"
|
|
@@ -324,7 +324,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
324
324
|
], 10, rt))), 128))
|
|
325
325
|
]),
|
|
326
326
|
_: 1
|
|
327
|
-
})) : (
|
|
327
|
+
})) : (I(), V("div", dt, T(S(n)("inventory.formField.noItemsFound")), 1))
|
|
328
328
|
]);
|
|
329
329
|
};
|
|
330
330
|
}
|
|
@@ -354,224 +354,224 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
354
354
|
}
|
|
355
355
|
},
|
|
356
356
|
emits: ["update:modifiers"],
|
|
357
|
-
setup(
|
|
358
|
-
const s =
|
|
359
|
-
const
|
|
360
|
-
const
|
|
357
|
+
setup(E, { emit: y }) {
|
|
358
|
+
const s = E, r = y, n = re(), e = _(() => {
|
|
359
|
+
const o = s.groups.flatMap((i) => i.items.map((A) => {
|
|
360
|
+
const B = s.items.find((k) => k._id === A._id);
|
|
361
361
|
return {
|
|
362
|
-
...
|
|
363
|
-
groupName:
|
|
364
|
-
name:
|
|
362
|
+
...A,
|
|
363
|
+
groupName: i.name,
|
|
364
|
+
name: A.name ?? (B == null ? void 0 : B.name) ?? "-"
|
|
365
365
|
};
|
|
366
366
|
}));
|
|
367
|
-
return s.modifiers.map((
|
|
368
|
-
const
|
|
367
|
+
return s.modifiers.map((i) => {
|
|
368
|
+
const A = o.find((g) => g.selection === i.selection), B = (A == null ? void 0 : A.name) ?? "-", k = (A == null ? void 0 : A.groupName) ?? "";
|
|
369
369
|
return {
|
|
370
|
-
...
|
|
371
|
-
name:
|
|
370
|
+
...i,
|
|
371
|
+
name: B,
|
|
372
372
|
groupName: k
|
|
373
373
|
};
|
|
374
374
|
});
|
|
375
|
-
}), u =
|
|
376
|
-
function
|
|
377
|
-
|
|
375
|
+
}), u = _(() => s.groups.flatMap((o) => o.items.map((i) => ({ ...i, groupId: o._id }))));
|
|
376
|
+
function f({ selection: o }) {
|
|
377
|
+
r(
|
|
378
378
|
"update:modifiers",
|
|
379
|
-
s.modifiers.filter((
|
|
379
|
+
s.modifiers.filter((i) => i.selection !== o)
|
|
380
380
|
);
|
|
381
381
|
}
|
|
382
|
-
function
|
|
383
|
-
const
|
|
384
|
-
|
|
382
|
+
function w({ selection: o }, i) {
|
|
383
|
+
const A = s.modifiers.find((B) => B.selection === o);
|
|
384
|
+
A && (A.code = i);
|
|
385
385
|
}
|
|
386
|
-
function
|
|
387
|
-
let
|
|
388
|
-
s.groups.forEach((
|
|
389
|
-
let
|
|
390
|
-
|
|
391
|
-
label:
|
|
386
|
+
function b() {
|
|
387
|
+
let o = [];
|
|
388
|
+
s.groups.forEach((A) => {
|
|
389
|
+
let B = !1;
|
|
390
|
+
A.items.every((k) => k._id.startsWith("item")) && (B = !0), o.push({
|
|
391
|
+
label: A.name,
|
|
392
392
|
sublabel: "Group",
|
|
393
|
-
value:
|
|
394
|
-
disabled:
|
|
395
|
-
children:
|
|
393
|
+
value: A._id,
|
|
394
|
+
disabled: B,
|
|
395
|
+
children: A.items.reduce((k, g) => {
|
|
396
396
|
var c;
|
|
397
|
-
const
|
|
398
|
-
(
|
|
397
|
+
const p = s.items.find((h) => h._id === g._id), m = (c = p == null ? void 0 : p.variant) == null ? void 0 : c.variantCombinations.find(
|
|
398
|
+
(h) => h.combinationKey === (g == null ? void 0 : g.combinationKey)
|
|
399
399
|
);
|
|
400
400
|
return [
|
|
401
401
|
...k,
|
|
402
402
|
{
|
|
403
|
-
label: `${
|
|
404
|
-
value: `${
|
|
405
|
-
disabled:
|
|
406
|
-
active: !!s.modifiers.find(({ selection:
|
|
403
|
+
label: `${g.name ?? (p == null ? void 0 : p.name)} ${m ? `(${m.name})` : ""}`,
|
|
404
|
+
value: `${g.selection}${m ? `/${m == null ? void 0 : m.combinationKey}` : ""}`,
|
|
405
|
+
disabled: B,
|
|
406
|
+
active: !!s.modifiers.find(({ selection: h }) => h === g.selection)
|
|
407
407
|
}
|
|
408
408
|
];
|
|
409
409
|
}, [])
|
|
410
410
|
});
|
|
411
411
|
});
|
|
412
|
-
const
|
|
413
|
-
modelValue:
|
|
412
|
+
const i = {
|
|
413
|
+
modelValue: o
|
|
414
414
|
};
|
|
415
415
|
n.open({
|
|
416
416
|
title: "Select Addons",
|
|
417
|
-
contentComponent:
|
|
418
|
-
contentComponentProps:
|
|
417
|
+
contentComponent: Oe,
|
|
418
|
+
contentComponentProps: i,
|
|
419
419
|
primaryActions: {
|
|
420
420
|
text: "Confirm",
|
|
421
421
|
close: !0
|
|
422
422
|
}
|
|
423
|
-
}).onPrimary((
|
|
424
|
-
const
|
|
423
|
+
}).onPrimary((A) => {
|
|
424
|
+
const B = te(s.modifiers);
|
|
425
425
|
let k = [];
|
|
426
|
-
function p
|
|
427
|
-
if (
|
|
428
|
-
for (let c of
|
|
429
|
-
|
|
426
|
+
function g(p, m) {
|
|
427
|
+
if (m(p), K(p))
|
|
428
|
+
for (let c of p.children)
|
|
429
|
+
g(c, m);
|
|
430
430
|
}
|
|
431
|
-
|
|
432
|
-
p
|
|
433
|
-
var
|
|
434
|
-
if (s.groups.find(({ _id:
|
|
435
|
-
const
|
|
436
|
-
!K(
|
|
437
|
-
addonGroupId: (
|
|
438
|
-
selection:
|
|
439
|
-
code: ((
|
|
431
|
+
A.forEach((p) => {
|
|
432
|
+
g(p, (m) => {
|
|
433
|
+
var t;
|
|
434
|
+
if (s.groups.find(({ _id: a }) => a === m.value)) return;
|
|
435
|
+
const h = u.value.find(({ selection: a }) => a === m.value), v = k.find(({ selection: a }) => m.value === a);
|
|
436
|
+
!K(m) && m.active && v === void 0 && k.push({
|
|
437
|
+
addonGroupId: (h == null ? void 0 : h.groupId) ?? "",
|
|
438
|
+
selection: m.value,
|
|
439
|
+
code: ((t = B.find(({ selection: a }) => m.value === a)) == null ? void 0 : t.code) ?? ""
|
|
440
440
|
});
|
|
441
441
|
});
|
|
442
|
-
}),
|
|
442
|
+
}), r("update:modifiers", k);
|
|
443
443
|
});
|
|
444
444
|
}
|
|
445
|
-
const { t:
|
|
446
|
-
return (
|
|
447
|
-
const
|
|
448
|
-
return
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
x(
|
|
445
|
+
const { t: d } = Z();
|
|
446
|
+
return (o, i) => {
|
|
447
|
+
const A = F("FmButton"), B = F("FmTextField");
|
|
448
|
+
return I(), V("div", mt, [
|
|
449
|
+
l("div", ft, [
|
|
450
|
+
l("div", pt, T(S(d)("inventory.integration.apply.addons")), 1),
|
|
451
|
+
x(A, {
|
|
452
452
|
type: "button",
|
|
453
453
|
variant: "plain",
|
|
454
454
|
size: "md",
|
|
455
455
|
icon: "link",
|
|
456
|
-
label:
|
|
457
|
-
onClick:
|
|
456
|
+
label: S(d)("inventory.integration.apply.applyAddon"),
|
|
457
|
+
onClick: i[0] || (i[0] = (k) => b())
|
|
458
458
|
}, null, 8, ["label"])
|
|
459
459
|
]),
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
460
|
+
l("div", null, [
|
|
461
|
+
e.value.length > 0 ? (I(), V("table", vt, [
|
|
462
|
+
l("tr", gt, [
|
|
463
|
+
l("th", yt, T(S(d)("inventory.integration.apply.name")), 1),
|
|
464
|
+
l("th", null, T(S(d)("inventory.integration.apply.code")), 1),
|
|
465
|
+
i[1] || (i[1] = l("th", { class: "w-1" }, " ", -1))
|
|
466
466
|
]),
|
|
467
|
-
(
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
k.groupName ? (
|
|
467
|
+
(I(!0), V(J, null, W(e.value, (k, g) => (I(), V(J, { key: g }, [
|
|
468
|
+
i[2] || (i[2] = l("tr", { class: "block h-8" }, null, -1)),
|
|
469
|
+
l("tr", null, [
|
|
470
|
+
l("td", null, [
|
|
471
|
+
l("div", At, [
|
|
472
|
+
l("div", bt, T(k.name), 1),
|
|
473
|
+
k.groupName ? (I(), V("div", ht, T(k.groupName), 1)) : z("", !0)
|
|
474
474
|
])
|
|
475
475
|
]),
|
|
476
|
-
|
|
477
|
-
x(
|
|
478
|
-
disabled:
|
|
476
|
+
l("td", null, [
|
|
477
|
+
x(B, {
|
|
478
|
+
disabled: E.loading,
|
|
479
479
|
"model-value": k.code,
|
|
480
|
-
"onUpdate:modelValue": [(
|
|
480
|
+
"onUpdate:modelValue": [(p) => k.code = p, (p) => w(k, p)],
|
|
481
481
|
rules: [
|
|
482
|
-
function(
|
|
483
|
-
return !!
|
|
482
|
+
function(m) {
|
|
483
|
+
return !!m || "Required";
|
|
484
484
|
}
|
|
485
485
|
]
|
|
486
486
|
}, null, 8, ["disabled", "model-value", "onUpdate:modelValue", "rules"])
|
|
487
487
|
]),
|
|
488
|
-
|
|
489
|
-
x(
|
|
490
|
-
disabled:
|
|
488
|
+
l("td", xt, [
|
|
489
|
+
x(A, {
|
|
490
|
+
disabled: E.loading,
|
|
491
491
|
type: "button",
|
|
492
492
|
variant: "tertiary",
|
|
493
493
|
icon: "delete",
|
|
494
494
|
"icon-color": "#000000",
|
|
495
495
|
size: "md",
|
|
496
|
-
onClick: (
|
|
496
|
+
onClick: (p) => f(k)
|
|
497
497
|
}, null, 8, ["disabled", "onClick"])
|
|
498
498
|
])
|
|
499
499
|
])
|
|
500
500
|
], 64))), 128))
|
|
501
|
-
])) :
|
|
501
|
+
])) : z("", !0)
|
|
502
502
|
])
|
|
503
503
|
]);
|
|
504
504
|
};
|
|
505
505
|
}
|
|
506
506
|
});
|
|
507
|
-
function St(
|
|
508
|
-
const s =
|
|
509
|
-
return kt(s).reduce((n,
|
|
507
|
+
function St(E, y = []) {
|
|
508
|
+
const s = y.map((n) => E.find((e) => e._id === n)).filter((n) => !!n);
|
|
509
|
+
return kt(s).reduce((n, e) => (n[e.combinationKey] = e.selectionName.join(" / "), n), {});
|
|
510
510
|
}
|
|
511
|
-
function wt(
|
|
512
|
-
const
|
|
513
|
-
var
|
|
514
|
-
const
|
|
511
|
+
function wt(E, y, s) {
|
|
512
|
+
const r = s.reduce((e, u) => {
|
|
513
|
+
var d, o, i;
|
|
514
|
+
const f = u.category || "", w = St(y, (d = u.variant) == null ? void 0 : d.variantGroupIds), b = {
|
|
515
515
|
...u,
|
|
516
|
-
codeName: [u.code, u.name].filter((
|
|
516
|
+
codeName: [u.code, u.name].filter((A) => !!A).join(" "),
|
|
517
517
|
variant: {
|
|
518
|
-
variantGroupIds: ((
|
|
519
|
-
variantCombinations: (((
|
|
520
|
-
const
|
|
518
|
+
variantGroupIds: ((o = u.variant) == null ? void 0 : o.variantGroupIds) || [],
|
|
519
|
+
variantCombinations: (((i = u.variant) == null ? void 0 : i.variantCombinations) || []).map((A) => {
|
|
520
|
+
const B = A.code, k = A.name || w[A.combinationKey || ""];
|
|
521
521
|
return {
|
|
522
|
-
...
|
|
523
|
-
codeName: [
|
|
522
|
+
...A,
|
|
523
|
+
codeName: [B, k].filter((g) => !!g).join(" ").trim() || "-"
|
|
524
524
|
};
|
|
525
525
|
})
|
|
526
526
|
}
|
|
527
527
|
};
|
|
528
|
-
return
|
|
529
|
-
}, {}), n = Object.values(
|
|
530
|
-
return
|
|
531
|
-
id:
|
|
532
|
-
name:
|
|
533
|
-
items:
|
|
534
|
-
})) || [] :
|
|
535
|
-
id:
|
|
536
|
-
name:
|
|
537
|
-
items:
|
|
528
|
+
return e[f] = e[f] ? [...e[f], b] : [b], e;
|
|
529
|
+
}, {}), n = Object.values(r)[0];
|
|
530
|
+
return E.length === 0 && n ? n.map((e) => ({
|
|
531
|
+
id: e._id,
|
|
532
|
+
name: e.name ?? "",
|
|
533
|
+
items: r[e._id || ""] || []
|
|
534
|
+
})) || [] : E.map((e) => ({
|
|
535
|
+
id: e._id,
|
|
536
|
+
name: e.name ?? "",
|
|
537
|
+
items: r[e._id || ""] || []
|
|
538
538
|
}));
|
|
539
539
|
}
|
|
540
|
-
function Me(
|
|
541
|
-
if (
|
|
542
|
-
return
|
|
543
|
-
const s =
|
|
544
|
-
return s.reduce((u,
|
|
540
|
+
function Me(E, y) {
|
|
541
|
+
if (E.length == 1)
|
|
542
|
+
return E[0];
|
|
543
|
+
const s = E[0], r = E.slice(1, E.length), n = Me(r, y);
|
|
544
|
+
return s.reduce((u, f) => [...u, ...n.map((w) => y(f, w))], new Array());
|
|
545
545
|
}
|
|
546
|
-
function kt(
|
|
547
|
-
if (
|
|
548
|
-
const
|
|
549
|
-
(
|
|
546
|
+
function kt(E) {
|
|
547
|
+
if (E.length === 0) return [];
|
|
548
|
+
const y = E.map(
|
|
549
|
+
(r) => (r.options ?? []).map(
|
|
550
550
|
(n) => ({
|
|
551
|
-
combinationKey: [`${
|
|
551
|
+
combinationKey: [`${r._id}/${n._id}`],
|
|
552
552
|
selectionName: [n.name ?? ""]
|
|
553
553
|
})
|
|
554
554
|
)
|
|
555
555
|
);
|
|
556
|
-
return Me(
|
|
557
|
-
combinationKey: [...
|
|
558
|
-
selectionName: [...
|
|
559
|
-
})).map((
|
|
560
|
-
const n = [...
|
|
556
|
+
return Me(y, (r, n) => ({
|
|
557
|
+
combinationKey: [...r.combinationKey, ...n.combinationKey],
|
|
558
|
+
selectionName: [...r.selectionName, ...n.selectionName]
|
|
559
|
+
})).map((r) => {
|
|
560
|
+
const n = [...r.combinationKey];
|
|
561
561
|
return n.sort(), {
|
|
562
562
|
combinationKey: n.join("/"),
|
|
563
563
|
active: !0,
|
|
564
|
-
selectionName:
|
|
564
|
+
selectionName: r.selectionName
|
|
565
565
|
};
|
|
566
566
|
});
|
|
567
567
|
}
|
|
568
568
|
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 = {
|
|
569
569
|
key: 0,
|
|
570
570
|
class: "table-auto w-full"
|
|
571
|
-
}, Lt = { class: "text-left" }, Vt = { class: "min-w-64" }, Nt = { class: "flex flex-col" }, Dt = { class: "fm-typo-en-body-md-400" },
|
|
571
|
+
}, Lt = { class: "text-left" }, Vt = { class: "min-w-64" }, Nt = { class: "flex flex-col" }, Dt = { class: "fm-typo-en-body-md-400" }, Ot = {
|
|
572
572
|
key: 0,
|
|
573
573
|
class: "fm-typo-en-body-sm-400 text-fm-color-neutral-gray-400"
|
|
574
|
-
}, Mt = { class: "w-1" },
|
|
574
|
+
}, Mt = { class: "w-1" }, fe = /* @__PURE__ */ Y({
|
|
575
575
|
__name: "ApplyProduct",
|
|
576
576
|
props: {
|
|
577
577
|
isAddon: {
|
|
@@ -596,233 +596,233 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
596
596
|
}
|
|
597
597
|
},
|
|
598
598
|
emits: ["update:bindings"],
|
|
599
|
-
setup(
|
|
600
|
-
const s =
|
|
599
|
+
setup(E, { emit: y }) {
|
|
600
|
+
const s = E, r = y, n = re(), e = _(() => s.isAddon ? "Addons" : "Products"), u = _(() => s.isAddon ? [] : s.categories), f = _(
|
|
601
601
|
() => wt(u.value, s.variants, s.menus)
|
|
602
|
-
),
|
|
602
|
+
), w = _(() => {
|
|
603
603
|
if (s.isAddon)
|
|
604
|
-
return s.bindings.map((
|
|
605
|
-
const c = s.menus.find((
|
|
604
|
+
return s.bindings.map((m) => {
|
|
605
|
+
const c = s.menus.find((v) => v._id === m.productId), h = (c == null ? void 0 : c.name) ?? "-";
|
|
606
606
|
return {
|
|
607
|
-
...
|
|
608
|
-
name:
|
|
607
|
+
...m,
|
|
608
|
+
name: h,
|
|
609
609
|
itemCode: (c == null ? void 0 : c.code) ?? "-"
|
|
610
610
|
};
|
|
611
611
|
});
|
|
612
|
-
const
|
|
613
|
-
return s.bindings.map((
|
|
614
|
-
var
|
|
615
|
-
const c =
|
|
616
|
-
let
|
|
617
|
-
if (
|
|
618
|
-
const
|
|
619
|
-
(L) => L.combinationKey ===
|
|
612
|
+
const p = f.value.flatMap((m) => m.items);
|
|
613
|
+
return s.bindings.map((m) => {
|
|
614
|
+
var a;
|
|
615
|
+
const c = p.find((C) => C._id === m.productId), h = (c == null ? void 0 : c.name) ?? "-";
|
|
616
|
+
let v = (c == null ? void 0 : c.code) ?? "-", t;
|
|
617
|
+
if (m.combinationKey) {
|
|
618
|
+
const C = (((a = c == null ? void 0 : c.variant) == null ? void 0 : a.variantCombinations) || []).find(
|
|
619
|
+
(L) => L.combinationKey === m.combinationKey
|
|
620
620
|
);
|
|
621
|
-
|
|
621
|
+
t = (C == null ? void 0 : C.name) ?? (C == null ? void 0 : C.codeName) ?? "", v = (C == null ? void 0 : C.code) ?? v;
|
|
622
622
|
}
|
|
623
623
|
return {
|
|
624
|
-
...
|
|
625
|
-
name:
|
|
626
|
-
itemCode:
|
|
627
|
-
variantName:
|
|
624
|
+
...m,
|
|
625
|
+
name: h,
|
|
626
|
+
itemCode: v,
|
|
627
|
+
variantName: t
|
|
628
628
|
};
|
|
629
629
|
});
|
|
630
630
|
});
|
|
631
|
-
function
|
|
632
|
-
|
|
631
|
+
function b(p) {
|
|
632
|
+
r(
|
|
633
633
|
"update:bindings",
|
|
634
634
|
s.bindings.filter(
|
|
635
|
-
(
|
|
635
|
+
(m) => m.productId !== p.productId || m.combinationKey !== p.combinationKey
|
|
636
636
|
)
|
|
637
637
|
);
|
|
638
638
|
}
|
|
639
|
-
function
|
|
640
|
-
const
|
|
641
|
-
(
|
|
639
|
+
function d({ productId: p, combinationKey: m }, c) {
|
|
640
|
+
const h = s.bindings.find(
|
|
641
|
+
(v) => v.productId === p && v.combinationKey === m
|
|
642
642
|
);
|
|
643
|
-
|
|
643
|
+
h && (h.code = c);
|
|
644
644
|
}
|
|
645
|
-
function
|
|
646
|
-
return
|
|
647
|
-
label:
|
|
645
|
+
function o() {
|
|
646
|
+
return f.value.map((p) => ({
|
|
647
|
+
label: p.name,
|
|
648
648
|
sublabel: "Category",
|
|
649
|
-
value:
|
|
649
|
+
value: p.name,
|
|
650
650
|
disabled: !1,
|
|
651
|
-
children:
|
|
652
|
-
var
|
|
653
|
-
const c = (
|
|
651
|
+
children: p.items.map((m) => {
|
|
652
|
+
var h;
|
|
653
|
+
const c = (h = m.variant) == null ? void 0 : h.variantCombinations;
|
|
654
654
|
return c != null && c.length ? {
|
|
655
|
-
label:
|
|
656
|
-
value:
|
|
655
|
+
label: m.name ?? "",
|
|
656
|
+
value: m._id,
|
|
657
657
|
sublabel: "Product",
|
|
658
658
|
children: [
|
|
659
659
|
{
|
|
660
|
-
label:
|
|
660
|
+
label: m.codeName ?? "",
|
|
661
661
|
value: {
|
|
662
|
-
productId:
|
|
662
|
+
productId: m._id
|
|
663
663
|
},
|
|
664
664
|
active: !!s.bindings.find(
|
|
665
|
-
({ productId:
|
|
665
|
+
({ productId: v, combinationKey: t }) => m._id === v && !t
|
|
666
666
|
)
|
|
667
667
|
},
|
|
668
|
-
...c.map((
|
|
669
|
-
label:
|
|
668
|
+
...c.map((v) => ({
|
|
669
|
+
label: v.codeName ?? "",
|
|
670
670
|
value: {
|
|
671
|
-
productId:
|
|
672
|
-
combinationKey:
|
|
671
|
+
productId: m._id,
|
|
672
|
+
combinationKey: v.combinationKey
|
|
673
673
|
},
|
|
674
674
|
sublabel: "Variant",
|
|
675
675
|
active: !!s.bindings.find(
|
|
676
|
-
({ productId:
|
|
676
|
+
({ productId: t, combinationKey: a }) => m._id === t && v.combinationKey === a
|
|
677
677
|
)
|
|
678
678
|
}))
|
|
679
679
|
]
|
|
680
680
|
} : {
|
|
681
|
-
label:
|
|
681
|
+
label: m.codeName ?? "",
|
|
682
682
|
value: {
|
|
683
|
-
productId:
|
|
683
|
+
productId: m._id
|
|
684
684
|
},
|
|
685
685
|
active: !!s.bindings.find(
|
|
686
|
-
({ productId:
|
|
686
|
+
({ productId: v, combinationKey: t }) => m._id === v && !t
|
|
687
687
|
)
|
|
688
688
|
};
|
|
689
689
|
})
|
|
690
690
|
}));
|
|
691
691
|
}
|
|
692
|
-
function
|
|
693
|
-
return s.menus.map((
|
|
694
|
-
label:
|
|
695
|
-
value: { productId:
|
|
692
|
+
function i() {
|
|
693
|
+
return s.menus.map((p) => ({
|
|
694
|
+
label: p.name,
|
|
695
|
+
value: { productId: p._id },
|
|
696
696
|
active: !!s.bindings.find(
|
|
697
|
-
({ productId:
|
|
697
|
+
({ productId: m, combinationKey: c }) => p._id === m && !c
|
|
698
698
|
)
|
|
699
699
|
}));
|
|
700
700
|
}
|
|
701
|
-
function
|
|
702
|
-
const
|
|
703
|
-
return
|
|
704
|
-
var
|
|
705
|
-
if (K(
|
|
706
|
-
return
|
|
701
|
+
function A(p) {
|
|
702
|
+
const m = te(s.bindings);
|
|
703
|
+
return p.flatMap((c) => c.children.flatMap((h) => {
|
|
704
|
+
var t;
|
|
705
|
+
if (K(h))
|
|
706
|
+
return h.children.filter((a) => a.active).map((a) => {
|
|
707
707
|
var N, H;
|
|
708
|
-
const { productId:
|
|
708
|
+
const { productId: C, combinationKey: L } = a.value;
|
|
709
709
|
return L ? {
|
|
710
|
-
productId:
|
|
710
|
+
productId: C,
|
|
711
711
|
combinationKey: L,
|
|
712
|
-
code: ((N =
|
|
713
|
-
({ productId:
|
|
712
|
+
code: ((N = m.find(
|
|
713
|
+
({ productId: X, combinationKey: R }) => C === X && L === R
|
|
714
714
|
)) == null ? void 0 : N.code) ?? ""
|
|
715
715
|
} : {
|
|
716
|
-
productId:
|
|
717
|
-
code: ((H =
|
|
716
|
+
productId: C,
|
|
717
|
+
code: ((H = m.find(({ productId: X, combinationKey: R }) => C === X && !R)) == null ? void 0 : H.code) ?? ""
|
|
718
718
|
};
|
|
719
719
|
});
|
|
720
|
-
if (!
|
|
720
|
+
if (!h.active)
|
|
721
721
|
return [];
|
|
722
|
-
const { productId:
|
|
722
|
+
const { productId: v } = h.value;
|
|
723
723
|
return [
|
|
724
724
|
{
|
|
725
|
-
productId:
|
|
726
|
-
code: ((
|
|
725
|
+
productId: v,
|
|
726
|
+
code: ((t = m.find(({ productId: a, combinationKey: C }) => v === a && !C)) == null ? void 0 : t.code) ?? ""
|
|
727
727
|
}
|
|
728
728
|
];
|
|
729
729
|
}));
|
|
730
730
|
}
|
|
731
|
-
function
|
|
732
|
-
const
|
|
733
|
-
return
|
|
731
|
+
function B(p) {
|
|
732
|
+
const m = te(s.bindings);
|
|
733
|
+
return p.filter((c) => c.active).map(
|
|
734
734
|
(c) => {
|
|
735
|
-
var
|
|
735
|
+
var h;
|
|
736
736
|
return {
|
|
737
737
|
productId: c.value.productId,
|
|
738
|
-
code: ((
|
|
738
|
+
code: ((h = m.find(({ productId: v }) => v === c.value.productId)) == null ? void 0 : h.code) ?? ""
|
|
739
739
|
};
|
|
740
740
|
}
|
|
741
741
|
);
|
|
742
742
|
}
|
|
743
743
|
function k() {
|
|
744
|
-
let
|
|
745
|
-
s.isAddon ?
|
|
746
|
-
const
|
|
747
|
-
modelValue:
|
|
744
|
+
let p;
|
|
745
|
+
s.isAddon ? p = i() : p = o();
|
|
746
|
+
const m = {
|
|
747
|
+
modelValue: p
|
|
748
748
|
};
|
|
749
749
|
n.open({
|
|
750
|
-
title: `Select ${
|
|
751
|
-
contentComponent:
|
|
752
|
-
contentComponentProps:
|
|
750
|
+
title: `Select ${e.value}`,
|
|
751
|
+
contentComponent: Oe,
|
|
752
|
+
contentComponentProps: m,
|
|
753
753
|
primaryActions: {
|
|
754
754
|
text: "Confirm",
|
|
755
755
|
close: !0
|
|
756
756
|
}
|
|
757
757
|
}).onPrimary((c) => {
|
|
758
|
-
let
|
|
759
|
-
s.isAddon ?
|
|
758
|
+
let h;
|
|
759
|
+
s.isAddon ? h = B(c) : h = A(c), r("update:bindings", h);
|
|
760
760
|
});
|
|
761
761
|
}
|
|
762
|
-
const { t:
|
|
763
|
-
return (
|
|
764
|
-
const c =
|
|
765
|
-
return
|
|
766
|
-
|
|
767
|
-
|
|
762
|
+
const { t: g } = Z();
|
|
763
|
+
return (p, m) => {
|
|
764
|
+
const c = F("FmButton"), h = F("FmTextField");
|
|
765
|
+
return I(), V("div", Bt, [
|
|
766
|
+
l("div", Ct, [
|
|
767
|
+
l("div", Et, T(E.isAddon ? S(g)("inventory.integration.apply.addons") : S(g)("inventory.integration.apply.products")), 1),
|
|
768
768
|
x(c, {
|
|
769
769
|
type: "button",
|
|
770
770
|
variant: "plain",
|
|
771
771
|
size: "md",
|
|
772
772
|
icon: "link",
|
|
773
|
-
label:
|
|
774
|
-
onClick:
|
|
773
|
+
label: E.isAddon ? S(g)("inventory.integration.apply.applyAddon") : S(g)("inventory.integration.apply.applyProduct"),
|
|
774
|
+
onClick: m[0] || (m[0] = (v) => k())
|
|
775
775
|
}, null, 8, ["label"])
|
|
776
776
|
]),
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
777
|
+
l("div", null, [
|
|
778
|
+
w.value.length > 0 ? (I(), V("table", Ft, [
|
|
779
|
+
l("thead", null, [
|
|
780
|
+
l("tr", Lt, [
|
|
781
|
+
l("th", Vt, T(S(g)("inventory.integration.apply.name")), 1),
|
|
782
|
+
l("th", null, T(S(g)("inventory.integration.apply.code")), 1),
|
|
783
|
+
m[1] || (m[1] = l("th", { class: "w-1" }, " ", -1))
|
|
784
784
|
])
|
|
785
785
|
]),
|
|
786
|
-
|
|
787
|
-
(
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
786
|
+
l("tbody", null, [
|
|
787
|
+
(I(!0), V(J, null, W(w.value, (v, t) => (I(), V(J, { key: t }, [
|
|
788
|
+
m[2] || (m[2] = l("tr", { class: "block h-8" }, null, -1)),
|
|
789
|
+
l("tr", null, [
|
|
790
|
+
l("td", null, [
|
|
791
|
+
l("div", Nt, [
|
|
792
|
+
l("div", Dt, T(v.itemCode) + " " + T(v.name), 1),
|
|
793
|
+
v.variantName ? (I(), V("div", Ot, T(v.variantName), 1)) : z("", !0)
|
|
794
794
|
])
|
|
795
795
|
]),
|
|
796
|
-
|
|
797
|
-
x(
|
|
798
|
-
"model-value":
|
|
799
|
-
"onUpdate:modelValue": [(
|
|
796
|
+
l("td", null, [
|
|
797
|
+
x(h, {
|
|
798
|
+
"model-value": v.code,
|
|
799
|
+
"onUpdate:modelValue": [(a) => v.code = a, (a) => d(v, a)],
|
|
800
800
|
rules: [
|
|
801
|
-
function(
|
|
802
|
-
return !!
|
|
801
|
+
function(C) {
|
|
802
|
+
return !!C || "Required";
|
|
803
803
|
}
|
|
804
804
|
]
|
|
805
805
|
}, null, 8, ["model-value", "onUpdate:modelValue", "rules"])
|
|
806
806
|
]),
|
|
807
|
-
|
|
807
|
+
l("td", Mt, [
|
|
808
808
|
x(c, {
|
|
809
809
|
type: "button",
|
|
810
810
|
variant: "tertiary",
|
|
811
811
|
icon: "delete",
|
|
812
812
|
"icon-color": "#000000",
|
|
813
813
|
size: "md",
|
|
814
|
-
onClick: (
|
|
814
|
+
onClick: (a) => b(v)
|
|
815
815
|
}, null, 8, ["onClick"])
|
|
816
816
|
])
|
|
817
817
|
])
|
|
818
818
|
], 64))), 128))
|
|
819
819
|
])
|
|
820
|
-
])) :
|
|
820
|
+
])) : z("", !0)
|
|
821
821
|
])
|
|
822
822
|
]);
|
|
823
823
|
};
|
|
824
824
|
}
|
|
825
|
-
}),
|
|
825
|
+
}), Rt = { class: "flex flex-col gap-8 w-full" }, Tt = /* @__PURE__ */ Y({
|
|
826
826
|
__name: "ApplyProductDialog",
|
|
827
827
|
props: {
|
|
828
828
|
categories: { default: () => [] },
|
|
@@ -834,75 +834,75 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
834
834
|
loading: { type: Boolean }
|
|
835
835
|
},
|
|
836
836
|
emits: ["update:setting", "update:show", "submit"],
|
|
837
|
-
setup(
|
|
838
|
-
const s =
|
|
839
|
-
|
|
840
|
-
if (
|
|
841
|
-
for (const
|
|
842
|
-
n[
|
|
837
|
+
setup(E, { emit: y }) {
|
|
838
|
+
const s = E, r = y, n = ve(te(s.setting));
|
|
839
|
+
ge([() => s.show], ([d]) => {
|
|
840
|
+
if (d)
|
|
841
|
+
for (const o of Object.keys(s.setting))
|
|
842
|
+
n[o] = s.setting[o];
|
|
843
843
|
});
|
|
844
|
-
const
|
|
845
|
-
function
|
|
846
|
-
var
|
|
847
|
-
(
|
|
844
|
+
const e = M(), u = le(s, "show");
|
|
845
|
+
function f() {
|
|
846
|
+
var d, o;
|
|
847
|
+
(o = (d = e.value) == null ? void 0 : d.validateInputs) == null || o.call(d);
|
|
848
848
|
}
|
|
849
|
-
function
|
|
850
|
-
|
|
849
|
+
function w() {
|
|
850
|
+
r("update:setting", te(n)), r("submit");
|
|
851
851
|
}
|
|
852
|
-
const { t:
|
|
853
|
-
return (
|
|
854
|
-
const
|
|
855
|
-
return
|
|
856
|
-
modelValue:
|
|
857
|
-
"onUpdate:modelValue":
|
|
858
|
-
header:
|
|
852
|
+
const { t: b } = Z();
|
|
853
|
+
return (d, o) => {
|
|
854
|
+
const i = F("FmChip"), A = F("FmForm"), B = F("FmButton"), k = F("FmSideSheet");
|
|
855
|
+
return I(), U(k, {
|
|
856
|
+
modelValue: S(u),
|
|
857
|
+
"onUpdate:modelValue": o[4] || (o[4] = (g) => ae(u) ? u.value = g : null),
|
|
858
|
+
header: S(b)("inventory.integration.apply.title"),
|
|
859
859
|
"dismiss-away": "",
|
|
860
860
|
"close-button": "",
|
|
861
861
|
"max-width": 500
|
|
862
862
|
}, {
|
|
863
|
-
default:
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
x(
|
|
863
|
+
default: O(() => [
|
|
864
|
+
l("div", Rt, [
|
|
865
|
+
l("div", null, [
|
|
866
|
+
x(i, { label: "Menu v3" })
|
|
867
867
|
]),
|
|
868
|
-
x(
|
|
868
|
+
x(A, {
|
|
869
869
|
ref_key: "formRef",
|
|
870
|
-
ref:
|
|
871
|
-
onValidationSuccess:
|
|
870
|
+
ref: e,
|
|
871
|
+
onValidationSuccess: o[2] || (o[2] = (g) => w())
|
|
872
872
|
}, {
|
|
873
|
-
default:
|
|
874
|
-
x(
|
|
873
|
+
default: O(() => [
|
|
874
|
+
x(fe, {
|
|
875
875
|
bindings: n.bindings,
|
|
876
|
-
categories:
|
|
877
|
-
variants:
|
|
878
|
-
menus:
|
|
879
|
-
"onUpdate:bindings":
|
|
876
|
+
categories: d.categories,
|
|
877
|
+
variants: d.variants,
|
|
878
|
+
menus: d.menus,
|
|
879
|
+
"onUpdate:bindings": o[0] || (o[0] = (g) => n.bindings = g)
|
|
880
880
|
}, null, 8, ["bindings", "categories", "variants", "menus"]),
|
|
881
881
|
x(It, {
|
|
882
|
-
form:
|
|
882
|
+
form: e.value,
|
|
883
883
|
modifiers: n.modifiers ?? [],
|
|
884
|
-
groups:
|
|
885
|
-
items:
|
|
886
|
-
"onUpdate:modifiers":
|
|
884
|
+
groups: d.groups ?? [],
|
|
885
|
+
items: d.menus ?? [],
|
|
886
|
+
"onUpdate:modifiers": o[1] || (o[1] = (g) => n.modifiers = g)
|
|
887
887
|
}, null, 8, ["form", "modifiers", "groups", "items"])
|
|
888
888
|
]),
|
|
889
889
|
_: 1
|
|
890
890
|
}, 512)
|
|
891
891
|
])
|
|
892
892
|
]),
|
|
893
|
-
"side-sheet-footer":
|
|
894
|
-
x(
|
|
895
|
-
loading:
|
|
893
|
+
"side-sheet-footer": O(() => [
|
|
894
|
+
x(B, {
|
|
895
|
+
loading: d.loading,
|
|
896
896
|
type: "submit",
|
|
897
|
-
label:
|
|
898
|
-
onClick:
|
|
897
|
+
label: S(b)("common.confirm"),
|
|
898
|
+
onClick: o[3] || (o[3] = (g) => f())
|
|
899
899
|
}, null, 8, ["loading", "label"])
|
|
900
900
|
]),
|
|
901
901
|
_: 1
|
|
902
902
|
}, 8, ["modelValue", "header"]);
|
|
903
903
|
};
|
|
904
904
|
}
|
|
905
|
-
}),
|
|
905
|
+
}), jt = { class: "flex flex-col gap-8 w-full" }, _t = /* @__PURE__ */ Y({
|
|
906
906
|
__name: "ApplyProductDialogV4",
|
|
907
907
|
props: {
|
|
908
908
|
categories: { default: () => [] },
|
|
@@ -914,150 +914,150 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
914
914
|
loading: { type: Boolean }
|
|
915
915
|
},
|
|
916
916
|
emits: ["update:setting", "update:show", "submit"],
|
|
917
|
-
setup(
|
|
918
|
-
const s =
|
|
919
|
-
|
|
920
|
-
if (
|
|
921
|
-
for (const
|
|
922
|
-
n[
|
|
917
|
+
setup(E, { emit: y }) {
|
|
918
|
+
const s = E, r = y, n = ve(te(s.setting));
|
|
919
|
+
ge([() => s.show], ([g]) => {
|
|
920
|
+
if (g)
|
|
921
|
+
for (const p of Object.keys(s.setting))
|
|
922
|
+
n[p] = s.setting[p];
|
|
923
923
|
});
|
|
924
|
-
const
|
|
925
|
-
const
|
|
926
|
-
return
|
|
927
|
-
})),
|
|
928
|
-
const
|
|
929
|
-
return
|
|
924
|
+
const e = _(() => s.menus.filter((g) => (g == null ? void 0 : g.category) === null)), u = _(() => n.bindings.filter((g) => {
|
|
925
|
+
const p = s.menus.find((m) => m._id === g.productId);
|
|
926
|
+
return p ? (p == null ? void 0 : p.category) === null : !1;
|
|
927
|
+
})), f = _(() => s.menus.filter((g) => (g == null ? void 0 : g.category) !== null)), w = _(() => n.bindings.filter((g) => {
|
|
928
|
+
const p = s.menus.find((m) => m._id === g.productId);
|
|
929
|
+
return p ? (p == null ? void 0 : p.category) !== null : !1;
|
|
930
930
|
}));
|
|
931
|
-
function
|
|
932
|
-
n.bindings = [...u.value, ...
|
|
931
|
+
function b(g) {
|
|
932
|
+
n.bindings = [...u.value, ...g];
|
|
933
933
|
}
|
|
934
|
-
function
|
|
935
|
-
n.bindings = [...
|
|
934
|
+
function d(g) {
|
|
935
|
+
n.bindings = [...w.value, ...g];
|
|
936
936
|
}
|
|
937
|
-
const
|
|
938
|
-
function
|
|
939
|
-
var
|
|
940
|
-
(
|
|
937
|
+
const o = M(), i = le(s, "show");
|
|
938
|
+
function A() {
|
|
939
|
+
var g, p;
|
|
940
|
+
(p = (g = o.value) == null ? void 0 : g.validateInputs) == null || p.call(g);
|
|
941
941
|
}
|
|
942
|
-
function
|
|
943
|
-
|
|
942
|
+
function B() {
|
|
943
|
+
r("update:setting", te(n)), r("submit");
|
|
944
944
|
}
|
|
945
|
-
const { t: k } =
|
|
946
|
-
return (
|
|
947
|
-
const
|
|
948
|
-
return
|
|
949
|
-
modelValue:
|
|
950
|
-
"onUpdate:modelValue":
|
|
951
|
-
header:
|
|
945
|
+
const { t: k } = Z();
|
|
946
|
+
return (g, p) => {
|
|
947
|
+
const m = F("FmChip"), c = F("FmForm"), h = F("FmButton"), v = F("FmSideSheet");
|
|
948
|
+
return I(), U(v, {
|
|
949
|
+
modelValue: S(i),
|
|
950
|
+
"onUpdate:modelValue": p[4] || (p[4] = (t) => ae(i) ? i.value = t : null),
|
|
951
|
+
header: S(k)("inventory.integration.apply.title"),
|
|
952
952
|
"dismiss-away": "",
|
|
953
953
|
"close-button": "",
|
|
954
954
|
"max-width": 500
|
|
955
955
|
}, {
|
|
956
|
-
default:
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
x(
|
|
956
|
+
default: O(() => [
|
|
957
|
+
l("div", jt, [
|
|
958
|
+
l("div", null, [
|
|
959
|
+
x(m, { label: "Menu v4" })
|
|
960
960
|
]),
|
|
961
961
|
x(c, {
|
|
962
962
|
ref_key: "formRef",
|
|
963
|
-
ref:
|
|
964
|
-
onValidationSuccess:
|
|
963
|
+
ref: o,
|
|
964
|
+
onValidationSuccess: p[2] || (p[2] = (t) => B())
|
|
965
965
|
}, {
|
|
966
|
-
default:
|
|
967
|
-
x(
|
|
968
|
-
categories:
|
|
969
|
-
variants:
|
|
970
|
-
bindings:
|
|
971
|
-
menus:
|
|
972
|
-
"onUpdate:bindings":
|
|
966
|
+
default: O(() => [
|
|
967
|
+
x(fe, {
|
|
968
|
+
categories: g.categories,
|
|
969
|
+
variants: g.variants,
|
|
970
|
+
bindings: w.value,
|
|
971
|
+
menus: f.value,
|
|
972
|
+
"onUpdate:bindings": p[0] || (p[0] = (t) => b(t))
|
|
973
973
|
}, null, 8, ["categories", "variants", "bindings", "menus"]),
|
|
974
|
-
x(
|
|
974
|
+
x(fe, {
|
|
975
975
|
"is-addon": !0,
|
|
976
976
|
categories: [],
|
|
977
|
-
variants:
|
|
977
|
+
variants: g.variants,
|
|
978
978
|
bindings: u.value,
|
|
979
|
-
menus:
|
|
980
|
-
"onUpdate:bindings":
|
|
979
|
+
menus: e.value,
|
|
980
|
+
"onUpdate:bindings": p[1] || (p[1] = (t) => d(t))
|
|
981
981
|
}, null, 8, ["variants", "bindings", "menus"])
|
|
982
982
|
]),
|
|
983
983
|
_: 1
|
|
984
984
|
}, 512)
|
|
985
985
|
])
|
|
986
986
|
]),
|
|
987
|
-
"side-sheet-footer":
|
|
988
|
-
x(
|
|
989
|
-
loading:
|
|
987
|
+
"side-sheet-footer": O(() => [
|
|
988
|
+
x(h, {
|
|
989
|
+
loading: g.loading,
|
|
990
990
|
type: "submit",
|
|
991
|
-
label:
|
|
992
|
-
onClick:
|
|
991
|
+
label: S(k)("common.confirm"),
|
|
992
|
+
onClick: p[3] || (p[3] = (t) => A())
|
|
993
993
|
}, null, 8, ["loading", "label"])
|
|
994
994
|
]),
|
|
995
995
|
_: 1
|
|
996
996
|
}, 8, ["modelValue", "header"]);
|
|
997
997
|
};
|
|
998
998
|
}
|
|
999
|
-
}),
|
|
999
|
+
}), zt = { key: 0 }, Ht = { class: "flex justify-center" }, Ut = ["src"], Xt = { 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({
|
|
1000
1000
|
__name: "FoodMarketHub",
|
|
1001
|
-
setup(
|
|
1002
|
-
const
|
|
1001
|
+
setup(E) {
|
|
1002
|
+
const y = oe(), s = ee(), r = $(), n = M(!1), e = qe(), u = _(() => e.state.menu ?? []), f = _(() => e.state.group ?? []), w = _(() => e.state.variants ?? []), b = _(() => e.state.categories ?? []), d = Xe(), o = _(() => {
|
|
1003
1003
|
var c;
|
|
1004
|
-
return (c =
|
|
1004
|
+
return (c = y.currentBusiness.value) == null ? void 0 : c.menuVersion;
|
|
1005
1005
|
});
|
|
1006
|
-
|
|
1007
|
-
const
|
|
1008
|
-
async function
|
|
1009
|
-
|
|
1006
|
+
r.watchLocation(e.init);
|
|
1007
|
+
const i = M(!1);
|
|
1008
|
+
async function A() {
|
|
1009
|
+
i.value = !0;
|
|
1010
1010
|
}
|
|
1011
|
-
const { breakpoints:
|
|
1012
|
-
async function
|
|
1013
|
-
const c =
|
|
1011
|
+
const { breakpoints: B } = Ve(), k = _(() => B.value.xs || B.value.sm), g = _(() => k.value);
|
|
1012
|
+
async function p() {
|
|
1013
|
+
const c = e.state.setting;
|
|
1014
1014
|
if (c) {
|
|
1015
1015
|
n.value = !0;
|
|
1016
1016
|
try {
|
|
1017
|
-
await
|
|
1017
|
+
await d.updateSetting(c), s.open({
|
|
1018
1018
|
title: "Success",
|
|
1019
1019
|
message: "Your changes has been saved",
|
|
1020
1020
|
type: "success"
|
|
1021
|
-
}),
|
|
1021
|
+
}), i.value = !1, await e.init();
|
|
1022
1022
|
return;
|
|
1023
|
-
} catch (
|
|
1023
|
+
} catch (h) {
|
|
1024
1024
|
s.open({
|
|
1025
1025
|
title: "Something went wrong",
|
|
1026
1026
|
message: "Cannot update integration info. Please try again.",
|
|
1027
1027
|
type: "error"
|
|
1028
|
-
}), console.error("Error at updating integration info",
|
|
1028
|
+
}), console.error("Error at updating integration info", h);
|
|
1029
1029
|
} finally {
|
|
1030
1030
|
n.value = !1;
|
|
1031
1031
|
}
|
|
1032
1032
|
}
|
|
1033
1033
|
}
|
|
1034
|
-
const { t:
|
|
1035
|
-
return (c,
|
|
1036
|
-
const
|
|
1037
|
-
return
|
|
1038
|
-
x(
|
|
1039
|
-
class:
|
|
1040
|
-
"w-full":
|
|
1041
|
-
"w-1/2": !
|
|
1034
|
+
const { t: m } = Z();
|
|
1035
|
+
return (c, h) => {
|
|
1036
|
+
const v = F("FmCardSection"), t = F("FmCard");
|
|
1037
|
+
return S(e).isEnabled && !S(e).isBusinessLocation ? (I(), V("div", zt, [
|
|
1038
|
+
x(t, {
|
|
1039
|
+
class: q({
|
|
1040
|
+
"w-full": g.value,
|
|
1041
|
+
"w-1/2": !g.value,
|
|
1042
1042
|
border: !0,
|
|
1043
1043
|
"border-fm-color-neutral-gray-100": !0,
|
|
1044
1044
|
"cursor-pointer": !0,
|
|
1045
1045
|
"hover:border-fm-color-primary": !0
|
|
1046
1046
|
}),
|
|
1047
|
-
onClick:
|
|
1047
|
+
onClick: h[0] || (h[0] = (a) => A())
|
|
1048
1048
|
}, {
|
|
1049
|
-
default:
|
|
1050
|
-
x(
|
|
1051
|
-
default:
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
src:
|
|
1049
|
+
default: O(() => [
|
|
1050
|
+
x(v, null, {
|
|
1051
|
+
default: O(() => [
|
|
1052
|
+
l("div", Ht, [
|
|
1053
|
+
l("img", {
|
|
1054
|
+
src: S(tt),
|
|
1055
1055
|
alt: "Food Market Hub"
|
|
1056
|
-
}, null, 8,
|
|
1056
|
+
}, null, 8, Ut)
|
|
1057
1057
|
]),
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1058
|
+
l("div", Xt, [
|
|
1059
|
+
l("div", Qt, T(S(m)("inventory.integration.fmh.title")), 1),
|
|
1060
|
+
l("div", Yt, T(S(m)("inventory.integration.fmh.description")), 1)
|
|
1061
1061
|
])
|
|
1062
1062
|
]),
|
|
1063
1063
|
_: 1
|
|
@@ -1065,39 +1065,39 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1065
1065
|
]),
|
|
1066
1066
|
_: 1
|
|
1067
1067
|
}, 8, ["class"]),
|
|
1068
|
-
|
|
1069
|
-
(
|
|
1070
|
-
|
|
1068
|
+
S(e).state.setting ? (I(), V("div", Jt, [
|
|
1069
|
+
(I(), U(ce, { to: "body" }, [
|
|
1070
|
+
o.value === "v3" ? (I(), U(Tt, {
|
|
1071
1071
|
key: 0,
|
|
1072
1072
|
menus: u.value,
|
|
1073
|
-
variants:
|
|
1074
|
-
categories:
|
|
1075
|
-
setting:
|
|
1076
|
-
"onUpdate:setting":
|
|
1077
|
-
show:
|
|
1078
|
-
"onUpdate:show":
|
|
1079
|
-
groups:
|
|
1073
|
+
variants: w.value,
|
|
1074
|
+
categories: b.value,
|
|
1075
|
+
setting: S(e).state.setting,
|
|
1076
|
+
"onUpdate:setting": h[1] || (h[1] = (a) => S(e).state.setting = a),
|
|
1077
|
+
show: i.value,
|
|
1078
|
+
"onUpdate:show": h[2] || (h[2] = (a) => i.value = a),
|
|
1079
|
+
groups: f.value,
|
|
1080
1080
|
loading: n.value,
|
|
1081
|
-
onSubmit:
|
|
1082
|
-
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (
|
|
1081
|
+
onSubmit: h[3] || (h[3] = (a) => p())
|
|
1082
|
+
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (I(), U(_t, {
|
|
1083
1083
|
key: 1,
|
|
1084
1084
|
menus: u.value,
|
|
1085
|
-
variants:
|
|
1086
|
-
categories:
|
|
1087
|
-
setting:
|
|
1088
|
-
"onUpdate:setting":
|
|
1089
|
-
show:
|
|
1090
|
-
"onUpdate:show":
|
|
1091
|
-
groups:
|
|
1085
|
+
variants: w.value,
|
|
1086
|
+
categories: b.value,
|
|
1087
|
+
setting: S(e).state.setting,
|
|
1088
|
+
"onUpdate:setting": h[4] || (h[4] = (a) => S(e).state.setting = a),
|
|
1089
|
+
show: i.value,
|
|
1090
|
+
"onUpdate:show": h[5] || (h[5] = (a) => i.value = a),
|
|
1091
|
+
groups: f.value,
|
|
1092
1092
|
loading: n.value,
|
|
1093
|
-
onSubmit:
|
|
1093
|
+
onSubmit: h[6] || (h[6] = (a) => p())
|
|
1094
1094
|
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"]))
|
|
1095
1095
|
]))
|
|
1096
|
-
])) :
|
|
1097
|
-
])) :
|
|
1096
|
+
])) : z("", !0)
|
|
1097
|
+
])) : z("", !0);
|
|
1098
1098
|
};
|
|
1099
1099
|
}
|
|
1100
|
-
}), qt = "data:image/svg+xml,%3csvg%20width='200'%20height='100'%20viewBox='0%200%20200%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='200'%20height='100'%20fill='url(%23pattern0_1500_58879)'/%3e%3cdefs%3e%3cpattern%20id='pattern0_1500_58879'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1500_58879'%20transform='matrix(0.002%200%200%200.004%200%200.046)'/%3e%3c/pattern%3e%3cimage%20id='image0_1500_58879'%20width='500'%20height='227'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADjCAYAAABzcuYdAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB9KADAAQAAAABAAAA4wAAAABu8la3AABAAElEQVR4Ae2dCYAcVZnH61V191w5yDU5CDAkIXN0z0wC7C4uAorKpeyysugiuLqKooKIBwsCcguCFwoogqwrIHhzLIKigDeIQDLT3XMlmYSQBHKQhITM1V319v+6p/qorup+1VPd0z3zFXSm6r3vvfe9X1W9792lKHQQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIgMKIAREgApVLoKmp6aCGhoZZqrp/fzi8eU/lakqaEQEiMNkEpqNBZ8Fg00JVr13AfcpizrX5uAlLVVVlhmHwybohSF/lnA/jtwU6bIcu24eHh3du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ASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/onAgQgWwCra2th6mqulBTlEWKYjRyVZ2nKspcnHPO1bjCjW0IsVvhbKvO2OvDw8NbBwcH38iOha6IABEgAqUnULUGvb390DlcmXEbMrCQK8wwUWncPEv9DegKvycS6bk/5eLRSbC99VKmqKcgujEzSpv0GVd4zFD0qyOR/hdMOae/HStWLGW1tfcoijUjukMQmBoXB5TJOrjNE8AZV3Ujfnk0OvD3LGFctLW1BX2qcgtTmB+Xltis0t5f5+pvkwEFDwRjXwyHwy+61SAYDAY0wzhS0dT3KIwfh3wuRxww5ooM6L1AspVz5WXG2J+4zp8Z1fWe/v7+/UXocaimql9HuIMY56nnG9cBQH+4OxL5lts43cqvWLGipq6u5ivg0AEV4iK8eL7xzPjwT7/Oey+ORtPPvlP8TU1NtbNmNIh42g2FJeIRsoxxHzdYH3h9NhqNpt4hazzt7cGPI9mz4T5m835Zxct2DZ1qUKG7vzva+/18iXaEgncj78sYT+c9n7xXfniPxX0a3LV7z2e2bds25FW8FE/lEvBVrmr5NTOMmTWqppwEqQW2RXpGcJUrHe3tK18Ihwf6MpwnfArjciRTlbcVighGAf+pdxSSS/hrWgNKOuQLxUXWUSiXWcKOF9ZY7Ay60NbHVFuDgQdmLozVaY4JlNgjV3+rS1IBZhjfcKmK1hEM/pui8ovA/1iGGwaT4zIK5SCEOQhhgwh4GtOYUqv6utqDbU/AkN0Ho9UjGyGa/zMheyo0EM9DVjBcbcpyKNHF0NCQBoN+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzR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dyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", Zt = { class: "flex-col items-center" }, Gt = { class: "flex gap-2" }, Pt = {
|
|
1100
|
+
}), Pt = "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" }, Zt = { class: "flex gap-2" }, Gt = {
|
|
1101
1101
|
key: 0,
|
|
1102
1102
|
class: "text-xs text-red-500 mt-2"
|
|
1103
1103
|
}, Wt = {
|
|
@@ -1117,47 +1117,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1117
1117
|
}) }
|
|
1118
1118
|
},
|
|
1119
1119
|
emits: ["update:modelValue"],
|
|
1120
|
-
setup(
|
|
1121
|
-
const s =
|
|
1122
|
-
return (
|
|
1123
|
-
const
|
|
1124
|
-
return
|
|
1125
|
-
|
|
1126
|
-
x(
|
|
1120
|
+
setup(E, { emit: y }) {
|
|
1121
|
+
const s = E, r = _(() => s.modelValue), n = y;
|
|
1122
|
+
return (e, u) => {
|
|
1123
|
+
const f = F("FmSelect"), w = F("FmButton"), b = F("FmIcon");
|
|
1124
|
+
return I(), V("div", qt, [
|
|
1125
|
+
l("div", Zt, [
|
|
1126
|
+
x(f, {
|
|
1127
1127
|
placeholder: "Select NetSuite Location",
|
|
1128
|
-
items:
|
|
1128
|
+
items: e.nsLocationOptions,
|
|
1129
1129
|
searchable: "",
|
|
1130
1130
|
searchTarget: "label",
|
|
1131
|
-
"model-value":
|
|
1132
|
-
"onUpdate:modelValue": u[0] || (u[0] = (
|
|
1131
|
+
"model-value": r.value,
|
|
1132
|
+
"onUpdate:modelValue": u[0] || (u[0] = (d) => n("update:modelValue", d))
|
|
1133
1133
|
}, null, 8, ["items", "model-value"]),
|
|
1134
|
-
|
|
1134
|
+
r.value.netsuiteId ? (I(), U(w, {
|
|
1135
1135
|
key: 0,
|
|
1136
1136
|
variant: "secondary",
|
|
1137
1137
|
label: "Clear",
|
|
1138
|
-
onClick: u[1] || (u[1] = (
|
|
1138
|
+
onClick: u[1] || (u[1] = (d) => n("update:modelValue", {
|
|
1139
1139
|
netsuiteId: "",
|
|
1140
1140
|
name: "",
|
|
1141
1141
|
subsidiaryName: "",
|
|
1142
1142
|
subsidiaryId: ""
|
|
1143
1143
|
}))
|
|
1144
|
-
})) :
|
|
1144
|
+
})) : z("", !0)
|
|
1145
1145
|
]),
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
x(
|
|
1146
|
+
e.isDuplicate ? (I(), V("div", Gt, " NetSuite location being used by another FeedMe location. ")) : z("", !0),
|
|
1147
|
+
r.value.netsuiteId ? (I(), V("div", Wt, [
|
|
1148
|
+
x(b, {
|
|
1149
1149
|
name: "cloud",
|
|
1150
1150
|
color: "neutral-gray-400",
|
|
1151
1151
|
size: "md",
|
|
1152
1152
|
class: "mr-2",
|
|
1153
1153
|
outline: ""
|
|
1154
1154
|
}),
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1155
|
+
l("div", $t, [
|
|
1156
|
+
l("span", en, T(r.value.name), 1),
|
|
1157
|
+
l("span", tn, "ID: " + T(r.value.netsuiteId), 1),
|
|
1158
|
+
l("span", nn, "Subsidiary: " + T(r.value.subsidiaryName), 1)
|
|
1159
1159
|
])
|
|
1160
|
-
])) :
|
|
1160
|
+
])) : z("", !0)
|
|
1161
1161
|
]);
|
|
1162
1162
|
};
|
|
1163
1163
|
}
|
|
@@ -1182,14 +1182,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1182
1182
|
}
|
|
1183
1183
|
},
|
|
1184
1184
|
emits: ["update:loading", "update:showDialog"],
|
|
1185
|
-
setup(
|
|
1186
|
-
const s =
|
|
1185
|
+
setup(E, { emit: y }) {
|
|
1186
|
+
const s = ie(), r = ee(), n = [
|
|
1187
1187
|
{
|
|
1188
1188
|
id: "fmLocation",
|
|
1189
1189
|
header: "FeedMe Location",
|
|
1190
|
-
cell(
|
|
1191
|
-
const
|
|
1192
|
-
name:
|
|
1190
|
+
cell(A) {
|
|
1191
|
+
const B = A.row.original, k = D(ne.FmIcon, {
|
|
1192
|
+
name: B.type,
|
|
1193
1193
|
color: "neutral-gray-400",
|
|
1194
1194
|
size: "md",
|
|
1195
1195
|
class: "mr-2",
|
|
@@ -1198,8 +1198,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1198
1198
|
return D("div", { class: "flex items-center" }, [
|
|
1199
1199
|
k,
|
|
1200
1200
|
D("div", { class: "flex flex-col" }, [
|
|
1201
|
-
D("span", { class: "font-medium" },
|
|
1202
|
-
D("span", { class: "text-xs text-gray-400" },
|
|
1201
|
+
D("span", { class: "font-medium" }, B.name),
|
|
1202
|
+
D("span", { class: "text-xs text-gray-400" }, B.doc._id)
|
|
1203
1203
|
])
|
|
1204
1204
|
]);
|
|
1205
1205
|
}
|
|
@@ -1207,43 +1207,43 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1207
1207
|
{
|
|
1208
1208
|
id: "nsLocation",
|
|
1209
1209
|
header: "NetSuite Location",
|
|
1210
|
-
cell(
|
|
1211
|
-
const
|
|
1212
|
-
([
|
|
1210
|
+
cell(A) {
|
|
1211
|
+
const B = A.row.original, k = f.value[B.dbName], g = Object.entries(f.value).some(
|
|
1212
|
+
([p, m]) => p !== B.dbName && m.netsuiteId === (k == null ? void 0 : k.netsuiteId)
|
|
1213
1213
|
);
|
|
1214
1214
|
return D(on, {
|
|
1215
|
-
isDuplicate:
|
|
1216
|
-
nsLocationOptions:
|
|
1215
|
+
isDuplicate: g,
|
|
1216
|
+
nsLocationOptions: d.value,
|
|
1217
1217
|
modelValue: k,
|
|
1218
|
-
fmLocation:
|
|
1219
|
-
"onUpdate:modelValue": (
|
|
1220
|
-
|
|
1221
|
-
...
|
|
1222
|
-
[
|
|
1223
|
-
netsuiteId:
|
|
1224
|
-
name:
|
|
1225
|
-
subsidiaryName:
|
|
1226
|
-
subsidiaryId:
|
|
1218
|
+
fmLocation: B,
|
|
1219
|
+
"onUpdate:modelValue": (p) => {
|
|
1220
|
+
p.netsuiteId ? f.value = {
|
|
1221
|
+
...f.value,
|
|
1222
|
+
[B.dbName]: {
|
|
1223
|
+
netsuiteId: p.netsuiteId,
|
|
1224
|
+
name: p.name,
|
|
1225
|
+
subsidiaryName: p.subsidiaryName,
|
|
1226
|
+
subsidiaryId: p.subsidiaryId
|
|
1227
1227
|
}
|
|
1228
|
-
} : delete
|
|
1228
|
+
} : delete f.value[B.dbName];
|
|
1229
1229
|
}
|
|
1230
1230
|
});
|
|
1231
1231
|
}
|
|
1232
1232
|
}
|
|
1233
|
-
],
|
|
1234
|
-
label:
|
|
1235
|
-
value:
|
|
1236
|
-
}))),
|
|
1237
|
-
(
|
|
1233
|
+
], e = E, u = y, f = M({}), w = M(), b = M(""), d = _(() => e.nsLocationsNotBeingUsed.map((A) => ({
|
|
1234
|
+
label: A.name,
|
|
1235
|
+
value: A
|
|
1236
|
+
}))), o = _(() => Object.values(f.value).length === 0 || Object.values(f.value).some(
|
|
1237
|
+
(A) => Object.values(f.value).filter((B) => B.netsuiteId === A.netsuiteId).length > 1
|
|
1238
1238
|
));
|
|
1239
|
-
async function
|
|
1239
|
+
async function i() {
|
|
1240
1240
|
try {
|
|
1241
|
-
u("update:loading", !0), await s.updateLocationConfigs(
|
|
1241
|
+
u("update:loading", !0), await s.updateLocationConfigs(f.value), r.open({
|
|
1242
1242
|
message: "Locations updated successfully",
|
|
1243
1243
|
type: "success"
|
|
1244
1244
|
}), u("update:showDialog", !1);
|
|
1245
1245
|
} catch {
|
|
1246
|
-
|
|
1246
|
+
r.open({
|
|
1247
1247
|
message: "Failed to update locations. Please try again.",
|
|
1248
1248
|
type: "error"
|
|
1249
1249
|
});
|
|
@@ -1251,41 +1251,41 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1251
1251
|
u("update:loading", !1);
|
|
1252
1252
|
}
|
|
1253
1253
|
}
|
|
1254
|
-
return (
|
|
1255
|
-
const k =
|
|
1256
|
-
return
|
|
1257
|
-
modelValue:
|
|
1258
|
-
"onUpdate:modelValue":
|
|
1254
|
+
return (A, B) => {
|
|
1255
|
+
const k = F("FmTable"), g = F("FmForm"), p = F("FmSpacer"), m = F("FmButton"), c = F("FmDialog");
|
|
1256
|
+
return I(), U(c, {
|
|
1257
|
+
modelValue: E.showDialog,
|
|
1258
|
+
"onUpdate:modelValue": B[2] || (B[2] = (h) => A.$emit("update:showDialog", h)),
|
|
1259
1259
|
overlay: !0,
|
|
1260
1260
|
"max-width": "900px"
|
|
1261
1261
|
}, {
|
|
1262
|
-
"dialog-header":
|
|
1263
|
-
|
|
1262
|
+
"dialog-header": O(() => B[3] || (B[3] = [
|
|
1263
|
+
l("div", null, "Add locations", -1)
|
|
1264
1264
|
])),
|
|
1265
|
-
"dialog-footer":
|
|
1266
|
-
x(
|
|
1267
|
-
x(
|
|
1265
|
+
"dialog-footer": O(() => [
|
|
1266
|
+
x(p, { class: "sm:hidden xs:hidden" }),
|
|
1267
|
+
x(m, {
|
|
1268
1268
|
class: "sm:w-full xs:w-full",
|
|
1269
1269
|
label: "Submit",
|
|
1270
1270
|
size: "md",
|
|
1271
|
-
disabled:
|
|
1272
|
-
onClick:
|
|
1271
|
+
disabled: o.value,
|
|
1272
|
+
onClick: i
|
|
1273
1273
|
}, null, 8, ["disabled"])
|
|
1274
1274
|
]),
|
|
1275
|
-
default:
|
|
1276
|
-
x(
|
|
1275
|
+
default: O(() => [
|
|
1276
|
+
x(g, {
|
|
1277
1277
|
ref: "formRef",
|
|
1278
1278
|
class: "mb-4",
|
|
1279
|
-
"model-value":
|
|
1280
|
-
"onUpdate:modelValue":
|
|
1279
|
+
"model-value": w.value,
|
|
1280
|
+
"onUpdate:modelValue": B[1] || (B[1] = (h) => w.value = h)
|
|
1281
1281
|
}, {
|
|
1282
|
-
default:
|
|
1282
|
+
default: O(() => [
|
|
1283
1283
|
x(k, {
|
|
1284
|
-
modelValue:
|
|
1285
|
-
"onUpdate:modelValue":
|
|
1286
|
-
"row-data":
|
|
1284
|
+
modelValue: w.value,
|
|
1285
|
+
"onUpdate:modelValue": B[0] || (B[0] = (h) => w.value = h),
|
|
1286
|
+
"row-data": e.fmLocationNotYetConfigured,
|
|
1287
1287
|
"column-defs": n,
|
|
1288
|
-
"search-value":
|
|
1288
|
+
"search-value": b.value,
|
|
1289
1289
|
"shrink-at": !1
|
|
1290
1290
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1291
1291
|
]),
|
|
@@ -1308,37 +1308,37 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1308
1308
|
loading: { type: Boolean }
|
|
1309
1309
|
},
|
|
1310
1310
|
emits: ["update:setting", "update:show", "update:loading", "submit"],
|
|
1311
|
-
setup(
|
|
1312
|
-
const s =
|
|
1313
|
-
|
|
1314
|
-
if (
|
|
1315
|
-
for (const c of Object.keys(
|
|
1316
|
-
|
|
1311
|
+
setup(E, { emit: y }) {
|
|
1312
|
+
const s = oe(), r = $(), n = M(!1), e = E, u = y, f = ve(te(e.setting));
|
|
1313
|
+
ge([() => e.show], ([m]) => {
|
|
1314
|
+
if (m)
|
|
1315
|
+
for (const c of Object.keys(e.setting))
|
|
1316
|
+
f[c] = e.setting[c];
|
|
1317
1317
|
});
|
|
1318
|
-
const
|
|
1319
|
-
(
|
|
1320
|
-
)),
|
|
1318
|
+
const w = M(), b = le(e, "show"), d = M(), o = M(""), i = _(() => e.setting.locations.filter(
|
|
1319
|
+
(m) => m.name.toLowerCase().includes(o.value.toLowerCase()) || m.netSuiteId.toLowerCase().includes(o.value.toLowerCase())
|
|
1320
|
+
)), A = [
|
|
1321
1321
|
{
|
|
1322
1322
|
id: "location",
|
|
1323
1323
|
header: () => "FeedMe Location",
|
|
1324
|
-
cell(
|
|
1325
|
-
const c =
|
|
1326
|
-
(
|
|
1324
|
+
cell(m) {
|
|
1325
|
+
const c = m.row.original, h = r.locations.find(
|
|
1326
|
+
(t) => t.type === c.type && t.doc._id === c.id
|
|
1327
1327
|
);
|
|
1328
|
-
if (!
|
|
1328
|
+
if (!h)
|
|
1329
1329
|
return D("div", "Unknown Location");
|
|
1330
|
-
const
|
|
1331
|
-
name:
|
|
1330
|
+
const v = D(ne.FmIcon, {
|
|
1331
|
+
name: h.type,
|
|
1332
1332
|
color: "neutral-gray-400",
|
|
1333
1333
|
size: "md",
|
|
1334
1334
|
class: "mr-2",
|
|
1335
1335
|
outline: !0
|
|
1336
1336
|
});
|
|
1337
1337
|
return D("div", { class: "flex items-center" }, [
|
|
1338
|
-
|
|
1338
|
+
v,
|
|
1339
1339
|
D("div", { class: "flex flex-col" }, [
|
|
1340
|
-
D("span", { class: "font-medium" },
|
|
1341
|
-
D("span", { class: "text-xs text-gray-400" },
|
|
1340
|
+
D("span", { class: "font-medium" }, h.name),
|
|
1341
|
+
D("span", { class: "text-xs text-gray-400" }, h.doc._id)
|
|
1342
1342
|
])
|
|
1343
1343
|
]);
|
|
1344
1344
|
}
|
|
@@ -1346,11 +1346,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1346
1346
|
{
|
|
1347
1347
|
id: "netsuite",
|
|
1348
1348
|
header: () => "NetSuite Location",
|
|
1349
|
-
cell(
|
|
1350
|
-
var
|
|
1351
|
-
const c =
|
|
1352
|
-
(
|
|
1353
|
-
)) == null ? void 0 :
|
|
1349
|
+
cell(m) {
|
|
1350
|
+
var t;
|
|
1351
|
+
const c = m.row.original, h = (t = e.nsLocations.find(
|
|
1352
|
+
(a) => a.netsuiteId === c.netSuiteId
|
|
1353
|
+
)) == null ? void 0 : t.subsidiaryName, v = D(ne.FmIcon, {
|
|
1354
1354
|
name: "cloud",
|
|
1355
1355
|
color: "neutral-gray-400",
|
|
1356
1356
|
size: "md",
|
|
@@ -1358,16 +1358,16 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1358
1358
|
outline: !0
|
|
1359
1359
|
});
|
|
1360
1360
|
return D("div", { class: "flex items-center" }, [
|
|
1361
|
-
|
|
1361
|
+
v,
|
|
1362
1362
|
D("div", { class: "flex flex-col" }, [
|
|
1363
1363
|
D("span", { class: "font-medium" }, c.name),
|
|
1364
1364
|
D("span", { class: "text-xs text-gray-400" }, `ID: ${c.netSuiteId}`),
|
|
1365
|
-
D("span", { class: "text-xs text-gray-400" }, `Subsidiary: ${
|
|
1365
|
+
D("span", { class: "text-xs text-gray-400" }, `Subsidiary: ${h}`)
|
|
1366
1366
|
])
|
|
1367
1367
|
]);
|
|
1368
1368
|
}
|
|
1369
1369
|
}
|
|
1370
|
-
], { t:
|
|
1370
|
+
], { t: B } = Z(), k = [
|
|
1371
1371
|
"Unit Type",
|
|
1372
1372
|
"Inventory Item",
|
|
1373
1373
|
"Location",
|
|
@@ -1376,77 +1376,77 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1376
1376
|
"Purchase Order",
|
|
1377
1377
|
"Transfer Order",
|
|
1378
1378
|
"Inventory Transfer"
|
|
1379
|
-
],
|
|
1380
|
-
(
|
|
1381
|
-
(c) => c.id ===
|
|
1379
|
+
], g = _(() => r.locations.filter(
|
|
1380
|
+
(m) => !e.setting.locations.some(
|
|
1381
|
+
(c) => c.id === m.doc._id && c.type === m.type
|
|
1382
1382
|
)
|
|
1383
|
-
)),
|
|
1384
|
-
(
|
|
1383
|
+
)), p = _(() => e.nsLocations.filter(
|
|
1384
|
+
(m) => !e.setting.locations.some((c) => c.netSuiteId === m.netsuiteId)
|
|
1385
1385
|
));
|
|
1386
|
-
return (
|
|
1387
|
-
const
|
|
1388
|
-
return
|
|
1389
|
-
modelValue:
|
|
1390
|
-
"onUpdate:modelValue": c[6] || (c[6] = (L) =>
|
|
1391
|
-
header:
|
|
1386
|
+
return (m, c) => {
|
|
1387
|
+
const h = F("FmChip"), v = F("FmSearch"), t = F("FmTable"), a = F("FmButton"), C = F("FmSideSheet");
|
|
1388
|
+
return I(), U(C, {
|
|
1389
|
+
modelValue: S(b),
|
|
1390
|
+
"onUpdate:modelValue": c[6] || (c[6] = (L) => ae(b) ? b.value = L : null),
|
|
1391
|
+
header: S(B)("inventory.integration.netsuite.title"),
|
|
1392
1392
|
"dismiss-away": "",
|
|
1393
1393
|
"close-button": "",
|
|
1394
1394
|
"max-width": 800
|
|
1395
1395
|
}, {
|
|
1396
|
-
default:
|
|
1396
|
+
default: O(() => {
|
|
1397
1397
|
var L;
|
|
1398
1398
|
return [
|
|
1399
|
-
(L =
|
|
1400
|
-
c[7] || (c[7] =
|
|
1401
|
-
|
|
1402
|
-
(
|
|
1399
|
+
(L = S(s).sessionUser.value) != null && L.role.isAdmin ? (I(), V("div", ln, [
|
|
1400
|
+
c[7] || (c[7] = l("div", { class: "text-sm" }, " This integration keeps your FeedMe system and NetSuite in sync for the following modules: ", -1)),
|
|
1401
|
+
l("div", rn, [
|
|
1402
|
+
(I(), V(J, null, W(k, (N) => x(h, {
|
|
1403
1403
|
key: N,
|
|
1404
1404
|
label: N,
|
|
1405
1405
|
compact: ""
|
|
1406
1406
|
}, null, 8, ["label"])), 64))
|
|
1407
1407
|
]),
|
|
1408
|
-
c[8] || (c[8] =
|
|
1409
|
-
c[9] || (c[9] =
|
|
1410
|
-
|
|
1411
|
-
x(
|
|
1408
|
+
c[8] || (c[8] = l("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)),
|
|
1409
|
+
c[9] || (c[9] = l("hr", { class: "my-3" }, null, -1)),
|
|
1410
|
+
l("div", un, [
|
|
1411
|
+
x(v, {
|
|
1412
1412
|
placeholder: "Search by [NetSuite Location]",
|
|
1413
1413
|
class: "w-[300px]",
|
|
1414
|
-
modelValue:
|
|
1415
|
-
"onUpdate:modelValue": c[0] || (c[0] = (N) =>
|
|
1414
|
+
modelValue: o.value,
|
|
1415
|
+
"onUpdate:modelValue": c[0] || (c[0] = (N) => o.value = N)
|
|
1416
1416
|
}, null, 8, ["modelValue"])
|
|
1417
1417
|
]),
|
|
1418
|
-
x(
|
|
1419
|
-
modelValue:
|
|
1420
|
-
"onUpdate:modelValue": c[1] || (c[1] = (N) =>
|
|
1421
|
-
"row-data":
|
|
1422
|
-
"column-defs":
|
|
1418
|
+
x(t, {
|
|
1419
|
+
modelValue: d.value,
|
|
1420
|
+
"onUpdate:modelValue": c[1] || (c[1] = (N) => d.value = N),
|
|
1421
|
+
"row-data": i.value,
|
|
1422
|
+
"column-defs": A,
|
|
1423
1423
|
"shrink-at": !1,
|
|
1424
|
-
"search-value":
|
|
1424
|
+
"search-value": o.value
|
|
1425
1425
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1426
|
-
])) : (
|
|
1426
|
+
])) : (I(), V("div", an, " Please contact your administrator to apply the changes. ")),
|
|
1427
1427
|
x(sn, {
|
|
1428
1428
|
"show-dialog": n.value,
|
|
1429
1429
|
"onUpdate:showDialog": [
|
|
1430
1430
|
c[2] || (c[2] = (N) => n.value = N),
|
|
1431
1431
|
c[3] || (c[3] = (N) => n.value = N)
|
|
1432
1432
|
],
|
|
1433
|
-
formRef:
|
|
1434
|
-
fmLocationNotYetConfigured:
|
|
1435
|
-
nsLocationsNotBeingUsed:
|
|
1433
|
+
formRef: w.value,
|
|
1434
|
+
fmLocationNotYetConfigured: g.value,
|
|
1435
|
+
nsLocationsNotBeingUsed: p.value
|
|
1436
1436
|
}, null, 8, ["show-dialog", "formRef", "fmLocationNotYetConfigured", "nsLocationsNotBeingUsed"])
|
|
1437
1437
|
];
|
|
1438
1438
|
}),
|
|
1439
|
-
"side-sheet-footer":
|
|
1440
|
-
|
|
1441
|
-
x(
|
|
1439
|
+
"side-sheet-footer": O(() => [
|
|
1440
|
+
l("div", cn, [
|
|
1441
|
+
x(a, {
|
|
1442
1442
|
label: "Add location",
|
|
1443
1443
|
onClick: c[4] || (c[4] = (L) => n.value = !0),
|
|
1444
|
-
loading:
|
|
1445
|
-
disabled:
|
|
1444
|
+
loading: m.loading,
|
|
1445
|
+
disabled: m.loading
|
|
1446
1446
|
}, null, 8, ["loading", "disabled"]),
|
|
1447
|
-
x(
|
|
1447
|
+
x(a, {
|
|
1448
1448
|
variant: "tertiary",
|
|
1449
|
-
label:
|
|
1449
|
+
label: S(B)("common.close"),
|
|
1450
1450
|
onClick: c[5] || (c[5] = (L) => u("update:show", !1))
|
|
1451
1451
|
}, null, 8, ["label"])
|
|
1452
1452
|
])
|
|
@@ -1462,19 +1462,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1462
1462
|
modelModifiers: {}
|
|
1463
1463
|
},
|
|
1464
1464
|
emits: ["update:modelValue"],
|
|
1465
|
-
setup(
|
|
1466
|
-
const { t:
|
|
1465
|
+
setup(E) {
|
|
1466
|
+
const { t: y } = de(), s = Se(E, "modelValue"), r = [
|
|
1467
1467
|
{
|
|
1468
1468
|
id: "Code",
|
|
1469
|
-
header: () =>
|
|
1469
|
+
header: () => y("inventory.transfer.form.items.table.Code"),
|
|
1470
1470
|
accessorKey: "code",
|
|
1471
1471
|
size: 200,
|
|
1472
1472
|
cell(n) {
|
|
1473
|
-
const
|
|
1473
|
+
const e = n.row.original;
|
|
1474
1474
|
return D(
|
|
1475
1475
|
ne.FmTooltip,
|
|
1476
1476
|
{
|
|
1477
|
-
content:
|
|
1477
|
+
content: e.code,
|
|
1478
1478
|
placement: "top",
|
|
1479
1479
|
variant: "plain",
|
|
1480
1480
|
zIndex: 50
|
|
@@ -1484,7 +1484,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1484
1484
|
{
|
|
1485
1485
|
class: "flex-auto line-clamp-2 text-ellipsis break-all"
|
|
1486
1486
|
},
|
|
1487
|
-
|
|
1487
|
+
e.code
|
|
1488
1488
|
)
|
|
1489
1489
|
);
|
|
1490
1490
|
},
|
|
@@ -1492,14 +1492,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1492
1492
|
},
|
|
1493
1493
|
{
|
|
1494
1494
|
id: "Name",
|
|
1495
|
-
header: () =>
|
|
1495
|
+
header: () => y("inventory.transfer.form.items.table.Name"),
|
|
1496
1496
|
minSize: 300,
|
|
1497
1497
|
cell(n) {
|
|
1498
|
-
const
|
|
1498
|
+
const e = n.row.original;
|
|
1499
1499
|
return D(
|
|
1500
1500
|
ne.FmTooltip,
|
|
1501
1501
|
{
|
|
1502
|
-
content:
|
|
1502
|
+
content: e.name,
|
|
1503
1503
|
placement: "top",
|
|
1504
1504
|
variant: "plain",
|
|
1505
1505
|
zIndex: 50
|
|
@@ -1509,7 +1509,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1509
1509
|
{
|
|
1510
1510
|
class: "flex-auto line-clamp-2 text-ellipsis break-all"
|
|
1511
1511
|
},
|
|
1512
|
-
|
|
1512
|
+
e.name
|
|
1513
1513
|
)
|
|
1514
1514
|
);
|
|
1515
1515
|
},
|
|
@@ -1517,30 +1517,30 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1517
1517
|
},
|
|
1518
1518
|
{
|
|
1519
1519
|
id: "Amount",
|
|
1520
|
-
header: () =>
|
|
1520
|
+
header: () => y("inventory.transfer.form.items.table.Amount"),
|
|
1521
1521
|
minSize: 200,
|
|
1522
1522
|
cell(n) {
|
|
1523
|
-
const
|
|
1523
|
+
const e = n.row.original, u = n.row.index;
|
|
1524
1524
|
return D($e, {
|
|
1525
1525
|
style: {
|
|
1526
1526
|
flex: "1 1 0%"
|
|
1527
1527
|
},
|
|
1528
1528
|
modelValue: {
|
|
1529
|
-
amount:
|
|
1530
|
-
measurement:
|
|
1529
|
+
amount: e.quantity ?? { amount: 1, precision: 0 },
|
|
1530
|
+
measurement: e.measurement ?? null
|
|
1531
1531
|
},
|
|
1532
|
-
key:
|
|
1533
|
-
unit:
|
|
1534
|
-
"onUpdate:modelValue": (
|
|
1535
|
-
if (!
|
|
1536
|
-
const
|
|
1537
|
-
...
|
|
1538
|
-
quantity:
|
|
1539
|
-
measurement:
|
|
1532
|
+
key: e.sku._id,
|
|
1533
|
+
unit: e.sku.unit,
|
|
1534
|
+
"onUpdate:modelValue": (f) => {
|
|
1535
|
+
if (!f) return;
|
|
1536
|
+
const w = {
|
|
1537
|
+
...e,
|
|
1538
|
+
quantity: f.amount,
|
|
1539
|
+
measurement: f.measurement
|
|
1540
1540
|
};
|
|
1541
1541
|
s.value = [
|
|
1542
1542
|
...s.value.slice(0, u),
|
|
1543
|
-
|
|
1543
|
+
w,
|
|
1544
1544
|
...s.value.slice(u + 1)
|
|
1545
1545
|
];
|
|
1546
1546
|
},
|
|
@@ -1554,10 +1554,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1554
1554
|
id: "Delete",
|
|
1555
1555
|
header: "",
|
|
1556
1556
|
cell(n) {
|
|
1557
|
-
const
|
|
1557
|
+
const e = n.row.original, u = n.row.index;
|
|
1558
1558
|
return D("div", { class: "flex justify-end" }, [
|
|
1559
1559
|
D(ne.FmButton, {
|
|
1560
|
-
key:
|
|
1560
|
+
key: e.sku._id,
|
|
1561
1561
|
class: "delete-button",
|
|
1562
1562
|
type: "button",
|
|
1563
1563
|
icon: "delete",
|
|
@@ -1577,13 +1577,13 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1577
1577
|
}
|
|
1578
1578
|
}
|
|
1579
1579
|
];
|
|
1580
|
-
return (n,
|
|
1581
|
-
const u =
|
|
1582
|
-
return
|
|
1583
|
-
"column-defs":
|
|
1580
|
+
return (n, e) => {
|
|
1581
|
+
const u = F("FmTable");
|
|
1582
|
+
return I(), U(u, {
|
|
1583
|
+
"column-defs": r,
|
|
1584
1584
|
"row-data": s.value,
|
|
1585
|
-
"row-key": (
|
|
1586
|
-
"empty-text":
|
|
1585
|
+
"row-key": (f) => f.sku._id,
|
|
1586
|
+
"empty-text": S(y)("inventory.transfer.form.items.table.empty"),
|
|
1587
1587
|
pagination: !1,
|
|
1588
1588
|
"virtual-scroll": { enabled: !0, itemSize: 48 }
|
|
1589
1589
|
}, null, 8, ["row-data", "row-key", "empty-text"]);
|
|
@@ -1591,42 +1591,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1591
1591
|
}
|
|
1592
1592
|
}), fn = { class: "flex items-center gap-8 mb-8" }, pn = /* @__PURE__ */ Y({
|
|
1593
1593
|
__name: "InventoryTransferOutTable",
|
|
1594
|
-
setup(
|
|
1595
|
-
const
|
|
1596
|
-
|
|
1597
|
-
const
|
|
1598
|
-
|
|
1594
|
+
setup(E) {
|
|
1595
|
+
const y = M([]), s = me(), r = M(!1), n = M(!1), e = ee(), u = $();
|
|
1596
|
+
pe(async () => {
|
|
1597
|
+
const d = /* @__PURE__ */ new Date(), o = /* @__PURE__ */ new Date();
|
|
1598
|
+
o.setDate(o.getDate() - 30), r.value = !0;
|
|
1599
1599
|
try {
|
|
1600
|
-
const
|
|
1600
|
+
const i = await s.getInventoryTransferHistory(
|
|
1601
1601
|
u.currentLocationDBName,
|
|
1602
|
-
|
|
1603
|
-
|
|
1602
|
+
o,
|
|
1603
|
+
d
|
|
1604
1604
|
);
|
|
1605
|
-
|
|
1606
|
-
} catch (
|
|
1607
|
-
console.error("Error fetching inventory transfer history:",
|
|
1605
|
+
y.value = i;
|
|
1606
|
+
} catch (i) {
|
|
1607
|
+
console.error("Error fetching inventory transfer history:", i);
|
|
1608
1608
|
} finally {
|
|
1609
|
-
|
|
1609
|
+
r.value = !1;
|
|
1610
1610
|
}
|
|
1611
1611
|
});
|
|
1612
|
-
async function
|
|
1612
|
+
async function f() {
|
|
1613
1613
|
try {
|
|
1614
|
-
n.value = !0, await s.manualSyncInventoryTransfer(u.currentLocationDBName),
|
|
1614
|
+
n.value = !0, await s.manualSyncInventoryTransfer(u.currentLocationDBName), e == null || e.open({
|
|
1615
1615
|
title: "Sync Started",
|
|
1616
1616
|
message: "Inventory transfers sync queued successfully.",
|
|
1617
1617
|
type: "success"
|
|
1618
1618
|
});
|
|
1619
|
-
} catch (
|
|
1620
|
-
|
|
1619
|
+
} catch (d) {
|
|
1620
|
+
e == null || e.open({
|
|
1621
1621
|
title: "Sync Failed",
|
|
1622
|
-
message: `Failed to queue inventory transfers sync. ${
|
|
1622
|
+
message: `Failed to queue inventory transfers sync. ${d == null ? void 0 : d.message}`,
|
|
1623
1623
|
type: "error"
|
|
1624
1624
|
});
|
|
1625
1625
|
} finally {
|
|
1626
1626
|
n.value = !1;
|
|
1627
1627
|
}
|
|
1628
1628
|
}
|
|
1629
|
-
const
|
|
1629
|
+
const w = [
|
|
1630
1630
|
// {
|
|
1631
1631
|
// id: 'type',
|
|
1632
1632
|
// header: 'Type',
|
|
@@ -1637,17 +1637,17 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1637
1637
|
{
|
|
1638
1638
|
id: "destinationLocation",
|
|
1639
1639
|
header: "Destination Location",
|
|
1640
|
-
cell: (
|
|
1641
|
-
const
|
|
1642
|
-
return
|
|
1640
|
+
cell: (d) => {
|
|
1641
|
+
const o = d.row.original.destinationLocation.netSuiteName;
|
|
1642
|
+
return o ? D(
|
|
1643
1643
|
ne.FmTooltip,
|
|
1644
1644
|
{ zIndex: 51 },
|
|
1645
1645
|
{
|
|
1646
1646
|
content() {
|
|
1647
|
-
return
|
|
1647
|
+
return o;
|
|
1648
1648
|
},
|
|
1649
1649
|
default() {
|
|
1650
|
-
return D("div", { class: "line-clamp-2 fm-typo-en-body-sm-400" },
|
|
1650
|
+
return D("div", { class: "line-clamp-2 fm-typo-en-body-sm-400" }, o);
|
|
1651
1651
|
}
|
|
1652
1652
|
}
|
|
1653
1653
|
) : "N/A";
|
|
@@ -1656,22 +1656,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1656
1656
|
{
|
|
1657
1657
|
id: "netsuite",
|
|
1658
1658
|
header: () => "NetSuite",
|
|
1659
|
-
cell(
|
|
1659
|
+
cell(d) {
|
|
1660
1660
|
return D("div", { class: "flex flex-col" }, [
|
|
1661
1661
|
D(
|
|
1662
1662
|
"span",
|
|
1663
1663
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1664
|
-
`ID: ${
|
|
1664
|
+
`ID: ${d.row.original.netsuiteId ?? "N/A"}`
|
|
1665
1665
|
),
|
|
1666
1666
|
D(
|
|
1667
1667
|
"span",
|
|
1668
1668
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1669
|
-
`Transaction ID: ${
|
|
1669
|
+
`Transaction ID: ${d.row.original.netsuiteTranId ?? "N/A"}`
|
|
1670
1670
|
),
|
|
1671
1671
|
D(
|
|
1672
1672
|
"span",
|
|
1673
1673
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1674
|
-
`Transaction Date: ${
|
|
1674
|
+
`Transaction Date: ${d.row.original.netsuiteTranDate ?? "N/A"}`
|
|
1675
1675
|
)
|
|
1676
1676
|
]);
|
|
1677
1677
|
}
|
|
@@ -1679,14 +1679,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1679
1679
|
{
|
|
1680
1680
|
id: "adjustment",
|
|
1681
1681
|
header: () => "Adjustment (FeedMe)",
|
|
1682
|
-
cell(
|
|
1683
|
-
const
|
|
1682
|
+
cell(d) {
|
|
1683
|
+
const o = d.row.original.adjustmentId;
|
|
1684
1684
|
return D("div", { class: "flex flex-col" }, [
|
|
1685
|
-
D("span", { class: "fm-typo-en-body-sm-400" }, `ID: ${
|
|
1685
|
+
D("span", { class: "fm-typo-en-body-sm-400" }, `ID: ${o ?? "N/A"}`),
|
|
1686
1686
|
D(
|
|
1687
1687
|
"span",
|
|
1688
1688
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1689
|
-
`Date: ${
|
|
1689
|
+
`Date: ${o ? ye(Ae(o)) : "N/A"}`
|
|
1690
1690
|
)
|
|
1691
1691
|
]);
|
|
1692
1692
|
}
|
|
@@ -1694,17 +1694,17 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1694
1694
|
{
|
|
1695
1695
|
id: "items",
|
|
1696
1696
|
header: () => "Items",
|
|
1697
|
-
cell(
|
|
1698
|
-
const
|
|
1697
|
+
cell(d) {
|
|
1698
|
+
const o = d.row.original.items;
|
|
1699
1699
|
return D(
|
|
1700
1700
|
"div",
|
|
1701
1701
|
{ class: "overflow-auto" },
|
|
1702
1702
|
D("ul", { class: "list-disc pl-5" }, [
|
|
1703
|
-
|
|
1704
|
-
(
|
|
1703
|
+
o == null ? void 0 : o.map(
|
|
1704
|
+
(i) => D(
|
|
1705
1705
|
"li",
|
|
1706
1706
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1707
|
-
`[${
|
|
1707
|
+
`[${i == null ? void 0 : i.itemId}] ${i == null ? void 0 : i.itemName}: ${i == null ? void 0 : i.quantity} ${(i == null ? void 0 : i.uomName) ?? "N/A"}`
|
|
1708
1708
|
)
|
|
1709
1709
|
)
|
|
1710
1710
|
])
|
|
@@ -1712,13 +1712,13 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1712
1712
|
},
|
|
1713
1713
|
size: 150
|
|
1714
1714
|
}
|
|
1715
|
-
],
|
|
1716
|
-
return (
|
|
1717
|
-
const
|
|
1718
|
-
return
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
x(
|
|
1715
|
+
], b = M();
|
|
1716
|
+
return (d, o) => {
|
|
1717
|
+
const i = F("FmButton"), A = F("FmTable");
|
|
1718
|
+
return I(), V(J, null, [
|
|
1719
|
+
l("div", fn, [
|
|
1720
|
+
o[1] || (o[1] = l("span", null, "Last 30 Days:", -1)),
|
|
1721
|
+
x(i, {
|
|
1722
1722
|
"prepend-icon": "sync",
|
|
1723
1723
|
variant: "secondary",
|
|
1724
1724
|
label: "Sync",
|
|
@@ -1726,15 +1726,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1726
1726
|
"text-color": "primary",
|
|
1727
1727
|
"bg-color": "transparent",
|
|
1728
1728
|
"border-color": "primary",
|
|
1729
|
-
onClick:
|
|
1729
|
+
onClick: f
|
|
1730
1730
|
}, null, 8, ["loading"])
|
|
1731
1731
|
]),
|
|
1732
|
-
x(
|
|
1733
|
-
modelValue:
|
|
1734
|
-
"onUpdate:modelValue":
|
|
1735
|
-
"row-data":
|
|
1736
|
-
"column-defs":
|
|
1737
|
-
loading:
|
|
1732
|
+
x(A, {
|
|
1733
|
+
modelValue: b.value,
|
|
1734
|
+
"onUpdate:modelValue": o[0] || (o[0] = (B) => b.value = B),
|
|
1735
|
+
"row-data": y.value,
|
|
1736
|
+
"column-defs": w,
|
|
1737
|
+
loading: r.value
|
|
1738
1738
|
}, null, 8, ["modelValue", "row-data", "loading"])
|
|
1739
1739
|
], 64);
|
|
1740
1740
|
};
|
|
@@ -1758,88 +1758,88 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1758
1758
|
currentLocationSetting: {},
|
|
1759
1759
|
currentLocationSubsidiary: {}
|
|
1760
1760
|
},
|
|
1761
|
-
setup(
|
|
1762
|
-
const
|
|
1763
|
-
const
|
|
1764
|
-
return
|
|
1765
|
-
label:
|
|
1766
|
-
value:
|
|
1767
|
-
disabled:
|
|
1761
|
+
setup(E) {
|
|
1762
|
+
const y = re(), s = ie(), r = be(), n = me(), e = ee(), { t: u } = de(), f = M([]), w = [{ label: "Transfer Out" }, { label: "History" }], b = M(w[0]), d = M(!1), o = M(null), i = M(null), A = E, B = _(() => {
|
|
1763
|
+
const h = s.currentLocationSetting, v = s.configuredLocations;
|
|
1764
|
+
return A.nsLocations.map((t) => ({
|
|
1765
|
+
label: t.name,
|
|
1766
|
+
value: t,
|
|
1767
|
+
disabled: v.some((a) => a.netSuiteId === t.netsuiteId) || t.subsidiaryId !== (h == null ? void 0 : h.subsidiaryId)
|
|
1768
1768
|
}));
|
|
1769
|
-
}), k =
|
|
1769
|
+
}), k = _({
|
|
1770
1770
|
get() {
|
|
1771
|
-
return
|
|
1771
|
+
return o.value ? o.value.toISOString().slice(0, 10) : "";
|
|
1772
1772
|
},
|
|
1773
|
-
set(
|
|
1774
|
-
if (!
|
|
1775
|
-
|
|
1773
|
+
set(h) {
|
|
1774
|
+
if (!h) {
|
|
1775
|
+
o.value = null;
|
|
1776
1776
|
return;
|
|
1777
1777
|
}
|
|
1778
|
-
const
|
|
1779
|
-
|
|
1778
|
+
const v = o.value ?? /* @__PURE__ */ new Date(), t = new Date(h);
|
|
1779
|
+
v.setFullYear(t.getFullYear(), t.getMonth(), t.getDate()), o.value = new Date(v);
|
|
1780
1780
|
}
|
|
1781
|
-
}),
|
|
1781
|
+
}), g = _({
|
|
1782
1782
|
get() {
|
|
1783
|
-
if (!
|
|
1784
|
-
const
|
|
1785
|
-
return `${
|
|
1783
|
+
if (!o.value) return null;
|
|
1784
|
+
const h = String(o.value.getHours()).padStart(2, "0"), v = String(o.value.getMinutes()).padStart(2, "0");
|
|
1785
|
+
return `${h}:${v}`;
|
|
1786
1786
|
},
|
|
1787
|
-
set(
|
|
1788
|
-
if (!
|
|
1789
|
-
const [
|
|
1790
|
-
|
|
1787
|
+
set(h) {
|
|
1788
|
+
if (!h) return;
|
|
1789
|
+
const [v, t] = h.split(":").map(Number), a = o.value ?? /* @__PURE__ */ new Date();
|
|
1790
|
+
a.setHours(v, t), o.value = new Date(a);
|
|
1791
1791
|
}
|
|
1792
|
-
}),
|
|
1793
|
-
async function
|
|
1794
|
-
if (
|
|
1795
|
-
if (!
|
|
1796
|
-
|
|
1792
|
+
}), p = _(() => k.value && g.value && i.value && f.value.length > 0 && !d.value);
|
|
1793
|
+
async function m() {
|
|
1794
|
+
if (p.value) {
|
|
1795
|
+
if (!A.currentLocationSetting) {
|
|
1796
|
+
e.open({
|
|
1797
1797
|
message: "Current location setting is not available",
|
|
1798
1798
|
type: "error"
|
|
1799
1799
|
});
|
|
1800
1800
|
return;
|
|
1801
1801
|
}
|
|
1802
|
-
|
|
1802
|
+
d.value = !0;
|
|
1803
1803
|
try {
|
|
1804
|
-
const
|
|
1805
|
-
items:
|
|
1806
|
-
date:
|
|
1807
|
-
netsuiteLocationId:
|
|
1808
|
-
netsuiteLocationName:
|
|
1809
|
-
},
|
|
1810
|
-
await n.createInventoryTransfer(
|
|
1804
|
+
const h = {
|
|
1805
|
+
items: f.value,
|
|
1806
|
+
date: o.value.toISOString(),
|
|
1807
|
+
netsuiteLocationId: i.value.netsuiteId,
|
|
1808
|
+
netsuiteLocationName: i.value.name
|
|
1809
|
+
}, v = `${A.currentLocationSetting.type}_${A.currentLocationSetting.id}`;
|
|
1810
|
+
await n.createInventoryTransfer(v, h), f.value = [], o.value = null, i.value = null, e.open({
|
|
1811
1811
|
message: "Inventort transfer created successfully",
|
|
1812
1812
|
type: "success"
|
|
1813
1813
|
});
|
|
1814
1814
|
} catch {
|
|
1815
|
-
|
|
1815
|
+
e.open({
|
|
1816
1816
|
message: "Failed to create inventory transfer",
|
|
1817
1817
|
type: "error"
|
|
1818
1818
|
});
|
|
1819
1819
|
} finally {
|
|
1820
|
-
|
|
1820
|
+
d.value = !1;
|
|
1821
1821
|
}
|
|
1822
1822
|
}
|
|
1823
1823
|
}
|
|
1824
1824
|
function c() {
|
|
1825
|
-
const
|
|
1825
|
+
const h = s.currentLocationSubsidiary(), v = s.getAvailableItems(h.id), t = r.skus.filter((L) => v.includes(L._id)).map((L) => L._id), a = r.skus.map(
|
|
1826
1826
|
(L) => ({
|
|
1827
1827
|
label: L.name,
|
|
1828
1828
|
sublabel: L.code,
|
|
1829
1829
|
value: L,
|
|
1830
|
-
disabled: !
|
|
1830
|
+
disabled: !t.includes(L._id)
|
|
1831
1831
|
})
|
|
1832
|
-
),
|
|
1832
|
+
), C = a.filter((L) => {
|
|
1833
1833
|
var N;
|
|
1834
|
-
return (N =
|
|
1834
|
+
return (N = f.value) == null ? void 0 : N.find((H) => H.sku._id === L.value._id);
|
|
1835
1835
|
}).map((L) => L.value);
|
|
1836
|
-
|
|
1836
|
+
y.open({
|
|
1837
1837
|
title: u("inventory.transfer.form.items.selectItem"),
|
|
1838
1838
|
closeButton: !0,
|
|
1839
1839
|
contentComponent: Ye,
|
|
1840
1840
|
contentComponentProps: {
|
|
1841
|
-
modelValue:
|
|
1842
|
-
items:
|
|
1841
|
+
modelValue: C,
|
|
1842
|
+
items: a,
|
|
1843
1843
|
virtualScroll: !0
|
|
1844
1844
|
},
|
|
1845
1845
|
primaryActions: {
|
|
@@ -1852,122 +1852,122 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1852
1852
|
variant: "tertiary"
|
|
1853
1853
|
}
|
|
1854
1854
|
}).onPrimary((L) => {
|
|
1855
|
-
const N =
|
|
1856
|
-
const
|
|
1857
|
-
return
|
|
1858
|
-
sku:
|
|
1859
|
-
code:
|
|
1860
|
-
name:
|
|
1855
|
+
const N = f.value, H = L.map((X) => {
|
|
1856
|
+
const R = N.find((Q) => Q.sku._id === X._id);
|
|
1857
|
+
return R || {
|
|
1858
|
+
sku: X,
|
|
1859
|
+
code: X.code,
|
|
1860
|
+
name: X.name,
|
|
1861
1861
|
quantity: {
|
|
1862
1862
|
amount: 1,
|
|
1863
1863
|
precision: 0
|
|
1864
1864
|
}
|
|
1865
1865
|
};
|
|
1866
1866
|
});
|
|
1867
|
-
H.sort((
|
|
1867
|
+
H.sort((X, R) => X.sku.code.localeCompare(R.sku.code)), f.value = H;
|
|
1868
1868
|
});
|
|
1869
1869
|
}
|
|
1870
|
-
return (
|
|
1871
|
-
const
|
|
1872
|
-
return
|
|
1873
|
-
x(
|
|
1874
|
-
modelValue:
|
|
1875
|
-
"onUpdate:modelValue":
|
|
1876
|
-
items:
|
|
1870
|
+
return (h, v) => {
|
|
1871
|
+
const t = F("FmButtonGroup"), a = F("FmLabel"), C = F("FmField"), L = F("FmSimpleDatePicker"), N = F("FmTimePicker"), H = F("FmSelect"), X = F("FmIcon"), R = F("FmButton");
|
|
1872
|
+
return I(), V("div", vn, [
|
|
1873
|
+
x(t, {
|
|
1874
|
+
modelValue: b.value,
|
|
1875
|
+
"onUpdate:modelValue": v[0] || (v[0] = (j) => b.value = j),
|
|
1876
|
+
items: w
|
|
1877
1877
|
}, null, 8, ["modelValue"]),
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
x(
|
|
1881
|
-
default:
|
|
1882
|
-
|
|
1878
|
+
b.value.label === "Transfer Out" ? (I(), V(J, { key: 0 }, [
|
|
1879
|
+
S(s).inventoryTransferOutEnabled ? (I(), V("div", gn, [
|
|
1880
|
+
x(a, { class: "fm-typo-en-body-md-600" }, {
|
|
1881
|
+
default: O(() => v[6] || (v[6] = [
|
|
1882
|
+
P("Type")
|
|
1883
1883
|
])),
|
|
1884
1884
|
_: 1
|
|
1885
1885
|
}),
|
|
1886
|
-
x(
|
|
1886
|
+
x(C, {
|
|
1887
1887
|
class: "my-4",
|
|
1888
1888
|
disabled: "",
|
|
1889
1889
|
"prepend-icon": "lock"
|
|
1890
1890
|
}, {
|
|
1891
|
-
default:
|
|
1892
|
-
|
|
1891
|
+
default: O(() => v[7] || (v[7] = [
|
|
1892
|
+
P("Transfer out")
|
|
1893
1893
|
])),
|
|
1894
1894
|
_: 1
|
|
1895
1895
|
}),
|
|
1896
|
-
x(
|
|
1897
|
-
default:
|
|
1898
|
-
|
|
1896
|
+
x(a, { class: "fm-typo-en-body-md-600" }, {
|
|
1897
|
+
default: O(() => v[8] || (v[8] = [
|
|
1898
|
+
P("Subsidiary")
|
|
1899
1899
|
])),
|
|
1900
1900
|
_: 1
|
|
1901
1901
|
}),
|
|
1902
|
-
x(
|
|
1902
|
+
x(C, {
|
|
1903
1903
|
class: "my-4",
|
|
1904
1904
|
disabled: "",
|
|
1905
1905
|
"prepend-icon": "lock"
|
|
1906
1906
|
}, {
|
|
1907
|
-
default:
|
|
1908
|
-
|
|
1907
|
+
default: O(() => [
|
|
1908
|
+
P(T(h.currentLocationSubsidiary.fullName), 1)
|
|
1909
1909
|
]),
|
|
1910
1910
|
_: 1
|
|
1911
1911
|
}),
|
|
1912
|
-
x(
|
|
1913
|
-
default:
|
|
1914
|
-
|
|
1912
|
+
x(a, { class: "fm-typo-en-body-md-600" }, {
|
|
1913
|
+
default: O(() => v[9] || (v[9] = [
|
|
1914
|
+
P("Transaction date")
|
|
1915
1915
|
])),
|
|
1916
1916
|
_: 1
|
|
1917
1917
|
}),
|
|
1918
1918
|
x(L, {
|
|
1919
1919
|
modelValue: k.value,
|
|
1920
|
-
"onUpdate:modelValue":
|
|
1920
|
+
"onUpdate:modelValue": v[1] || (v[1] = (j) => k.value = j)
|
|
1921
1921
|
}, null, 8, ["modelValue"]),
|
|
1922
|
-
x(
|
|
1923
|
-
default:
|
|
1924
|
-
|
|
1922
|
+
x(a, { class: "fm-typo-en-body-md-600" }, {
|
|
1923
|
+
default: O(() => v[10] || (v[10] = [
|
|
1924
|
+
P("Transaction time")
|
|
1925
1925
|
])),
|
|
1926
1926
|
_: 1
|
|
1927
1927
|
}),
|
|
1928
1928
|
x(N, {
|
|
1929
|
-
modelValue:
|
|
1930
|
-
"onUpdate:modelValue":
|
|
1929
|
+
modelValue: g.value,
|
|
1930
|
+
"onUpdate:modelValue": v[2] || (v[2] = (j) => g.value = j)
|
|
1931
1931
|
}, null, 8, ["modelValue"]),
|
|
1932
|
-
x(
|
|
1933
|
-
default:
|
|
1934
|
-
|
|
1932
|
+
x(a, { class: "fm-typo-en-body-md-600" }, {
|
|
1933
|
+
default: O(() => v[11] || (v[11] = [
|
|
1934
|
+
P("NetSuite Location")
|
|
1935
1935
|
])),
|
|
1936
1936
|
_: 1
|
|
1937
1937
|
}),
|
|
1938
|
-
|
|
1939
|
-
|
|
1938
|
+
l("div", yn, [
|
|
1939
|
+
i.value ? z("", !0) : (I(), U(H, {
|
|
1940
1940
|
key: 0,
|
|
1941
1941
|
class: "my-4 w-full",
|
|
1942
|
-
modelValue:
|
|
1943
|
-
"onUpdate:modelValue":
|
|
1942
|
+
modelValue: i.value,
|
|
1943
|
+
"onUpdate:modelValue": v[3] || (v[3] = (j) => i.value = j),
|
|
1944
1944
|
searchable: "",
|
|
1945
1945
|
searchTarget: "label",
|
|
1946
|
-
items:
|
|
1946
|
+
items: B.value
|
|
1947
1947
|
}, null, 8, ["modelValue", "items"])),
|
|
1948
|
-
|
|
1949
|
-
x(
|
|
1948
|
+
i.value ? (I(), V("div", An, [
|
|
1949
|
+
x(X, {
|
|
1950
1950
|
name: "cloud",
|
|
1951
1951
|
color: "neutral-gray-400",
|
|
1952
1952
|
size: "md",
|
|
1953
1953
|
class: "mr-2",
|
|
1954
1954
|
outline: ""
|
|
1955
1955
|
}),
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1956
|
+
l("div", bn, [
|
|
1957
|
+
l("span", hn, T(i.value.name), 1),
|
|
1958
|
+
l("span", xn, "ID: " + T(i.value.netsuiteId), 1),
|
|
1959
|
+
l("span", In, "Subsidiary: " + T(i.value.subsidiaryName), 1)
|
|
1960
1960
|
]),
|
|
1961
|
-
x(
|
|
1961
|
+
x(R, {
|
|
1962
1962
|
class: "ml-2",
|
|
1963
1963
|
variant: "secondary",
|
|
1964
1964
|
label: "Clear",
|
|
1965
|
-
onClick:
|
|
1965
|
+
onClick: v[4] || (v[4] = (j) => i.value = null)
|
|
1966
1966
|
})
|
|
1967
|
-
])) :
|
|
1967
|
+
])) : z("", !0)
|
|
1968
1968
|
]),
|
|
1969
|
-
|
|
1970
|
-
x(
|
|
1969
|
+
l("div", Sn, [
|
|
1970
|
+
x(R, {
|
|
1971
1971
|
class: "ml-auto",
|
|
1972
1972
|
variant: "secondary",
|
|
1973
1973
|
"prepend-icon": "add",
|
|
@@ -1976,32 +1976,32 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1976
1976
|
})
|
|
1977
1977
|
]),
|
|
1978
1978
|
x(mn, {
|
|
1979
|
-
modelValue:
|
|
1980
|
-
"onUpdate:modelValue":
|
|
1979
|
+
modelValue: f.value,
|
|
1980
|
+
"onUpdate:modelValue": v[5] || (v[5] = (j) => f.value = j)
|
|
1981
1981
|
}, null, 8, ["modelValue"]),
|
|
1982
|
-
|
|
1983
|
-
x(
|
|
1982
|
+
l("div", wn, [
|
|
1983
|
+
x(R, {
|
|
1984
1984
|
class: "ml-auto mt-4",
|
|
1985
1985
|
variant: "primary",
|
|
1986
1986
|
"prepend-icon": "add",
|
|
1987
1987
|
label: "Create",
|
|
1988
|
-
disabled: !
|
|
1989
|
-
loading:
|
|
1990
|
-
onClick:
|
|
1988
|
+
disabled: !p.value,
|
|
1989
|
+
loading: d.value,
|
|
1990
|
+
onClick: m
|
|
1991
1991
|
}, null, 8, ["disabled", "loading"])
|
|
1992
1992
|
])
|
|
1993
|
-
])) : (
|
|
1994
|
-
x(
|
|
1995
|
-
default:
|
|
1996
|
-
|
|
1993
|
+
])) : (I(), V("div", kn, [
|
|
1994
|
+
x(a, { class: "fm-typo-en-body-md-600" }, {
|
|
1995
|
+
default: O(() => v[12] || (v[12] = [
|
|
1996
|
+
P(" Feature is not enabled. Please contact your administrator. ")
|
|
1997
1997
|
])),
|
|
1998
1998
|
_: 1
|
|
1999
1999
|
})
|
|
2000
2000
|
]))
|
|
2001
|
-
], 64)) :
|
|
2002
|
-
|
|
2001
|
+
], 64)) : z("", !0),
|
|
2002
|
+
b.value.label === "History" ? (I(), V("div", Bn, [
|
|
2003
2003
|
x(pn)
|
|
2004
|
-
])) :
|
|
2004
|
+
])) : z("", !0)
|
|
2005
2005
|
]);
|
|
2006
2006
|
};
|
|
2007
2007
|
}
|
|
@@ -2011,52 +2011,173 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2011
2011
|
}, Ln = { style: { "list-style-type": "initial", "padding-left": "1rem" } }, Vn = /* @__PURE__ */ Y({
|
|
2012
2012
|
__name: "TransferOrder",
|
|
2013
2013
|
props: {
|
|
2014
|
-
|
|
2015
|
-
currentLocationSetting: {},
|
|
2016
|
-
currentLocationSubsidiary: {}
|
|
2014
|
+
currentLocationSetting: {}
|
|
2017
2015
|
},
|
|
2018
|
-
setup(
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
i.value = !0;
|
|
2016
|
+
setup(E) {
|
|
2017
|
+
const y = re(), s = oe(), r = me(), n = ee(), e = M(!1), u = E, f = M([]);
|
|
2018
|
+
async function w() {
|
|
2019
|
+
var d;
|
|
2020
|
+
e.value = !0;
|
|
2024
2021
|
try {
|
|
2025
|
-
const
|
|
2026
|
-
|
|
2022
|
+
const o = ((d = u.currentLocationSetting) == null ? void 0 : d.id) || "", i = await r.getUnSyncTransferInOrders(o);
|
|
2023
|
+
f.value = i, n.open({
|
|
2027
2024
|
message: "Check unsync transfer in order successfully",
|
|
2028
2025
|
type: "success"
|
|
2029
2026
|
});
|
|
2030
2027
|
} catch {
|
|
2031
|
-
|
|
2028
|
+
n.open({
|
|
2032
2029
|
message: "Failed to check unsync transfer in order",
|
|
2033
2030
|
type: "error"
|
|
2034
2031
|
});
|
|
2035
2032
|
} finally {
|
|
2036
|
-
|
|
2033
|
+
e.value = !1;
|
|
2037
2034
|
}
|
|
2038
2035
|
}
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2036
|
+
async function b() {
|
|
2037
|
+
if (f.value.length === 0) {
|
|
2038
|
+
n.open({
|
|
2039
|
+
message: "No unsynced transfer orders to sync",
|
|
2040
|
+
type: "info"
|
|
2041
|
+
});
|
|
2042
|
+
return;
|
|
2043
|
+
}
|
|
2044
|
+
y.open({
|
|
2045
|
+
title: "Sync Transfer Order",
|
|
2046
|
+
message: "Are you sure you want to sync these transfer orders?",
|
|
2047
|
+
primaryActions: { text: "Proceed", close: !0 }
|
|
2048
|
+
}).onPrimary(async () => {
|
|
2049
|
+
e.value = !0;
|
|
2050
|
+
try {
|
|
2051
|
+
await r.manualSyncMultipleTransferInOrders(f.value), await new Promise((d) => setTimeout(d, 5e3)), n.open({
|
|
2052
|
+
message: "Sync transfer orders request sent successfully",
|
|
2053
|
+
type: "success"
|
|
2054
|
+
});
|
|
2055
|
+
} catch (d) {
|
|
2056
|
+
console.log(d), n.open({
|
|
2057
|
+
message: "Failed to sync transfer orders",
|
|
2058
|
+
type: "error"
|
|
2059
|
+
});
|
|
2060
|
+
} finally {
|
|
2061
|
+
e.value = !1;
|
|
2062
|
+
}
|
|
2063
|
+
});
|
|
2064
|
+
}
|
|
2065
|
+
return (d, o) => {
|
|
2066
|
+
var A;
|
|
2067
|
+
const i = F("FmButton");
|
|
2068
|
+
return I(), V("div", En, [
|
|
2069
|
+
l("span", null, "Current date and time: " + T((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
2070
|
+
x(i, {
|
|
2044
2071
|
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
2045
2072
|
variant: "primary",
|
|
2046
|
-
onClick:
|
|
2047
|
-
disabled:
|
|
2048
|
-
loading:
|
|
2073
|
+
onClick: w,
|
|
2074
|
+
disabled: e.value,
|
|
2075
|
+
loading: e.value
|
|
2049
2076
|
}, null, 8, ["disabled", "loading"]),
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
(
|
|
2054
|
-
])
|
|
2055
|
-
|
|
2077
|
+
f.value.length > 0 ? (I(), V("div", Fn, [
|
|
2078
|
+
o[0] || (o[0] = l("p", null, "Transfer Order NetSuite ID not match with existing orders", -1)),
|
|
2079
|
+
l("ul", Ln, [
|
|
2080
|
+
(I(!0), V(J, null, W(f.value, (B) => (I(), V("li", { key: B }, T(B), 1))), 128))
|
|
2081
|
+
]),
|
|
2082
|
+
f.value.length > 0 && ((A = S(s).sessionUser.value) != null && A.role.isAdmin) ? (I(), U(i, {
|
|
2083
|
+
key: 0,
|
|
2084
|
+
label: "Sync now",
|
|
2085
|
+
variant: "destructive",
|
|
2086
|
+
onClick: b,
|
|
2087
|
+
disabled: e.value,
|
|
2088
|
+
loading: e.value
|
|
2089
|
+
}, null, 8, ["disabled", "loading"])) : z("", !0)
|
|
2090
|
+
])) : z("", !0)
|
|
2056
2091
|
]);
|
|
2057
2092
|
};
|
|
2058
2093
|
}
|
|
2059
|
-
}), Nn = { class: "flex flex-col gap-8
|
|
2094
|
+
}), Nn = { class: "flex flex-col gap-8" }, Dn = {
|
|
2095
|
+
key: 0,
|
|
2096
|
+
class: "flex flex-col gap-4"
|
|
2097
|
+
}, On = { style: { "list-style-type": "initial", "padding-left": "1rem" } }, Mn = /* @__PURE__ */ Y({
|
|
2098
|
+
__name: "PurchaseOrder",
|
|
2099
|
+
props: {
|
|
2100
|
+
currentLocationSetting: {}
|
|
2101
|
+
},
|
|
2102
|
+
setup(E) {
|
|
2103
|
+
const y = re(), s = oe(), r = me(), n = ee(), e = M(!1), u = E, f = M([]);
|
|
2104
|
+
async function w() {
|
|
2105
|
+
var d;
|
|
2106
|
+
e.value = !0;
|
|
2107
|
+
try {
|
|
2108
|
+
const o = ((d = u.currentLocationSetting) == null ? void 0 : d.id) || "", i = await r.getUnSyncPurchaseOrders(o);
|
|
2109
|
+
f.value = i, n.open({
|
|
2110
|
+
message: "Check unsync purchase order successfully",
|
|
2111
|
+
type: "success"
|
|
2112
|
+
});
|
|
2113
|
+
} catch {
|
|
2114
|
+
n.open({
|
|
2115
|
+
message: "Failed to check unsync purchase order",
|
|
2116
|
+
type: "error"
|
|
2117
|
+
});
|
|
2118
|
+
} finally {
|
|
2119
|
+
e.value = !1;
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
async function b() {
|
|
2123
|
+
if (f.value.length === 0) {
|
|
2124
|
+
n.open({
|
|
2125
|
+
message: "No unsynced purchase orders to sync",
|
|
2126
|
+
type: "info"
|
|
2127
|
+
});
|
|
2128
|
+
return;
|
|
2129
|
+
}
|
|
2130
|
+
y.open({
|
|
2131
|
+
title: "Sync Purchase Order",
|
|
2132
|
+
message: "Are you sure you want to sync these purchase orders?",
|
|
2133
|
+
primaryActions: { text: "Proceed", close: !0 }
|
|
2134
|
+
}).onPrimary(async () => {
|
|
2135
|
+
e.value = !0;
|
|
2136
|
+
try {
|
|
2137
|
+
await r.manualSyncMultiplePurchaseOrders(f.value), await new Promise((d) => setTimeout(d, 5e3)), n.open({
|
|
2138
|
+
message: "Sync purchase orders request sent successfully",
|
|
2139
|
+
type: "success"
|
|
2140
|
+
});
|
|
2141
|
+
} catch (d) {
|
|
2142
|
+
console.log(d), n.open({
|
|
2143
|
+
message: "Failed to sync purchase orders",
|
|
2144
|
+
type: "error"
|
|
2145
|
+
});
|
|
2146
|
+
} finally {
|
|
2147
|
+
e.value = !1;
|
|
2148
|
+
}
|
|
2149
|
+
});
|
|
2150
|
+
}
|
|
2151
|
+
return (d, o) => {
|
|
2152
|
+
var A;
|
|
2153
|
+
const i = F("FmButton");
|
|
2154
|
+
return I(), V("div", Nn, [
|
|
2155
|
+
l("span", null, "Current date and time: " + T((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
2156
|
+
x(i, {
|
|
2157
|
+
label: "Check Unsync Purchase Order (Last 2 months)",
|
|
2158
|
+
variant: "primary",
|
|
2159
|
+
onClick: w,
|
|
2160
|
+
disabled: e.value,
|
|
2161
|
+
loading: e.value
|
|
2162
|
+
}, null, 8, ["disabled", "loading"]),
|
|
2163
|
+
f.value.length > 0 ? (I(), V("div", Dn, [
|
|
2164
|
+
o[0] || (o[0] = l("p", null, "Purchase Order NetSuite ID not match with existing orders", -1)),
|
|
2165
|
+
l("ul", On, [
|
|
2166
|
+
(I(!0), V(J, null, W(f.value, (B) => (I(), V("li", { key: B }, T(B), 1))), 128))
|
|
2167
|
+
]),
|
|
2168
|
+
f.value.length > 0 && ((A = S(s).sessionUser.value) != null && A.role.isAdmin) ? (I(), U(i, {
|
|
2169
|
+
key: 0,
|
|
2170
|
+
label: "Sync now",
|
|
2171
|
+
variant: "destructive",
|
|
2172
|
+
onClick: b,
|
|
2173
|
+
disabled: e.value,
|
|
2174
|
+
loading: e.value
|
|
2175
|
+
}, null, 8, ["disabled", "loading"])) : z("", !0)
|
|
2176
|
+
])) : z("", !0)
|
|
2177
|
+
]);
|
|
2178
|
+
};
|
|
2179
|
+
}
|
|
2180
|
+
}), Rn = { class: "flex flex-col gap-8 w-full" }, Tn = { class: "flex gap-4 justify-between" }, jn = { 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" }, _n = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, zn = { key: 0 }, Hn = { class: "flex gap-8 items-center justify-start" }, Un = /* @__PURE__ */ Y({
|
|
2060
2181
|
__name: "NetSuiteSideSheet",
|
|
2061
2182
|
props: {
|
|
2062
2183
|
nsLocations: {},
|
|
@@ -2064,9 +2185,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2064
2185
|
loading: { type: Boolean }
|
|
2065
2186
|
},
|
|
2066
2187
|
emits: ["update:show"],
|
|
2067
|
-
setup(
|
|
2188
|
+
setup(E, { emit: y }) {
|
|
2068
2189
|
var k;
|
|
2069
|
-
const s =
|
|
2190
|
+
const s = oe(), r = ie(), n = E, e = le(n, "show"), { t: u } = Z(), f = y, w = $(), b = ((k = w._currentLocation) == null ? void 0 : k.type) || "", d = [
|
|
2070
2191
|
{
|
|
2071
2192
|
label: "Inventory Transfer (Out)",
|
|
2072
2193
|
value: "inventoryTransfer"
|
|
@@ -2076,68 +2197,75 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2076
2197
|
label: "Transfer Order",
|
|
2077
2198
|
value: "transferOrder"
|
|
2078
2199
|
/* TRANSFER_ORDER */
|
|
2200
|
+
},
|
|
2201
|
+
{
|
|
2202
|
+
label: "Purchase Order",
|
|
2203
|
+
value: "purchaseOrder"
|
|
2204
|
+
/* PURCHASE_ORDER */
|
|
2079
2205
|
}
|
|
2080
|
-
],
|
|
2081
|
-
(
|
|
2206
|
+
], o = M(d[0].value), i = _(() => r.currentLocationSubsidiary()), A = _(() => r.currentLocationSetting), B = _(() => n.nsLocations.filter(
|
|
2207
|
+
(g) => g.subsidiaryId === i.value.id || g.netsuiteId === i.value.id
|
|
2082
2208
|
));
|
|
2083
|
-
return (
|
|
2084
|
-
var
|
|
2085
|
-
const
|
|
2086
|
-
return
|
|
2087
|
-
modelValue:
|
|
2088
|
-
"onUpdate:modelValue":
|
|
2209
|
+
return (g, p) => {
|
|
2210
|
+
var t;
|
|
2211
|
+
const m = F("FmIcon"), c = F("FmTabs"), h = F("FmButton"), v = F("FmSideSheet");
|
|
2212
|
+
return I(), U(v, {
|
|
2213
|
+
modelValue: S(e),
|
|
2214
|
+
"onUpdate:modelValue": p[2] || (p[2] = (a) => ae(e) ? e.value = a : null),
|
|
2089
2215
|
header: "Data migration (Xilnex)",
|
|
2090
2216
|
"dismiss-away": "",
|
|
2091
2217
|
"close-button": "",
|
|
2092
2218
|
"max-width": 800
|
|
2093
|
-
},
|
|
2094
|
-
default:
|
|
2095
|
-
|
|
2096
|
-
|
|
2219
|
+
}, se({
|
|
2220
|
+
default: O(() => [
|
|
2221
|
+
S(r).isCurrentLocationBindedToNetSuite ? (I(), V(J, { key: 1 }, [
|
|
2222
|
+
o.value === "inventoryTransfer" ? (I(), U(Cn, {
|
|
2097
2223
|
key: 0,
|
|
2098
|
-
currentLocationSetting:
|
|
2099
|
-
nsLocations:
|
|
2100
|
-
currentLocationSubsidiary:
|
|
2101
|
-
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) :
|
|
2102
|
-
|
|
2224
|
+
currentLocationSetting: A.value,
|
|
2225
|
+
nsLocations: B.value,
|
|
2226
|
+
currentLocationSubsidiary: i.value
|
|
2227
|
+
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : z("", !0),
|
|
2228
|
+
o.value === "transferOrder" ? (I(), U(Vn, {
|
|
2103
2229
|
key: 1,
|
|
2104
|
-
currentLocationSetting:
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2230
|
+
currentLocationSetting: A.value
|
|
2231
|
+
}, null, 8, ["currentLocationSetting"])) : z("", !0),
|
|
2232
|
+
o.value === "purchaseOrder" ? (I(), U(Mn, {
|
|
2233
|
+
key: 2,
|
|
2234
|
+
currentLocationSetting: A.value
|
|
2235
|
+
}, null, 8, ["currentLocationSetting"])) : z("", !0)
|
|
2236
|
+
], 64)) : (I(), V("div", zn, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
2109
2237
|
]),
|
|
2110
|
-
"side-sheet-footer":
|
|
2111
|
-
|
|
2112
|
-
x(
|
|
2238
|
+
"side-sheet-footer": O(() => [
|
|
2239
|
+
l("div", Hn, [
|
|
2240
|
+
x(h, {
|
|
2113
2241
|
variant: "tertiary",
|
|
2114
|
-
label:
|
|
2115
|
-
onClick:
|
|
2242
|
+
label: S(u)("common.close"),
|
|
2243
|
+
onClick: p[1] || (p[1] = (a) => f("update:show", !1))
|
|
2116
2244
|
}, null, 8, ["label"])
|
|
2117
2245
|
])
|
|
2118
2246
|
]),
|
|
2119
2247
|
_: 2
|
|
2120
2248
|
}, [
|
|
2121
|
-
(
|
|
2249
|
+
(t = S(s).sessionUser.value) != null && t.role.isAdmin ? {
|
|
2122
2250
|
name: "side-sheet-header",
|
|
2123
|
-
fn:
|
|
2124
|
-
var
|
|
2251
|
+
fn: O(() => {
|
|
2252
|
+
var a;
|
|
2125
2253
|
return [
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
x(
|
|
2131
|
-
name:
|
|
2254
|
+
l("div", Rn, [
|
|
2255
|
+
l("div", Tn, [
|
|
2256
|
+
p[3] || (p[3] = l("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
2257
|
+
l("div", jn, [
|
|
2258
|
+
x(m, {
|
|
2259
|
+
name: S(b),
|
|
2132
2260
|
size: "sm"
|
|
2133
2261
|
}, null, 8, ["name"]),
|
|
2134
|
-
|
|
2262
|
+
l("div", _n, T((a = S(w)._currentLocation) == null ? void 0 : a.name), 1)
|
|
2135
2263
|
])
|
|
2136
2264
|
]),
|
|
2137
2265
|
x(c, {
|
|
2138
|
-
"model-value":
|
|
2139
|
-
"onUpdate:modelValue":
|
|
2140
|
-
items:
|
|
2266
|
+
"model-value": o.value,
|
|
2267
|
+
"onUpdate:modelValue": p[0] || (p[0] = (C) => o.value = C),
|
|
2268
|
+
items: d
|
|
2141
2269
|
}, null, 8, ["model-value"])
|
|
2142
2270
|
])
|
|
2143
2271
|
];
|
|
@@ -2147,56 +2275,56 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2147
2275
|
]), 1032, ["modelValue"]);
|
|
2148
2276
|
};
|
|
2149
2277
|
}
|
|
2150
|
-
}),
|
|
2278
|
+
}), Xn = { class: "flex justify-center" }, Qn = ["src"], Yn = { class: "flex flex-col items-center gap-2" }, Jn = { class: "text-lg font-bold" }, Kn = { class: "text-fm-color-neutral-gray-300" }, Pn = /* @__PURE__ */ Y({
|
|
2151
2279
|
__name: "NetSuite",
|
|
2152
|
-
setup(
|
|
2153
|
-
const
|
|
2154
|
-
async function
|
|
2280
|
+
setup(E) {
|
|
2281
|
+
const y = ie(), s = ee(), r = M(!1), n = M(!1);
|
|
2282
|
+
async function e() {
|
|
2155
2283
|
n.value = !0;
|
|
2156
2284
|
}
|
|
2157
2285
|
const u = M([]);
|
|
2158
|
-
|
|
2159
|
-
if (
|
|
2160
|
-
|
|
2286
|
+
_e(async () => {
|
|
2287
|
+
if (y.isReady && y.isEnabled) {
|
|
2288
|
+
r.value = !0;
|
|
2161
2289
|
try {
|
|
2162
|
-
const
|
|
2163
|
-
u.value =
|
|
2290
|
+
const w = await y.getNetSuiteLocationOptions();
|
|
2291
|
+
u.value = w;
|
|
2164
2292
|
} catch {
|
|
2165
2293
|
s.open({
|
|
2166
2294
|
message: "Failed to fetch NetSuite locations",
|
|
2167
2295
|
type: "error"
|
|
2168
2296
|
});
|
|
2169
2297
|
} finally {
|
|
2170
|
-
|
|
2298
|
+
r.value = !1;
|
|
2171
2299
|
}
|
|
2172
2300
|
}
|
|
2173
2301
|
});
|
|
2174
|
-
const { t:
|
|
2175
|
-
return (
|
|
2176
|
-
const
|
|
2177
|
-
return
|
|
2178
|
-
x(
|
|
2179
|
-
class:
|
|
2302
|
+
const { t: f } = Z();
|
|
2303
|
+
return (w, b) => {
|
|
2304
|
+
const d = F("FmCardSection"), o = F("FmCard");
|
|
2305
|
+
return S(y).isEnabled ? (I(), V(J, { key: 0 }, [
|
|
2306
|
+
x(o, {
|
|
2307
|
+
class: q({
|
|
2180
2308
|
"w-full": !0,
|
|
2181
2309
|
border: !0,
|
|
2182
2310
|
"border-fm-color-neutral-gray-100": !0,
|
|
2183
2311
|
"cursor-pointer": !0,
|
|
2184
2312
|
"hover:border-fm-color-primary": !0
|
|
2185
2313
|
}),
|
|
2186
|
-
onClick:
|
|
2314
|
+
onClick: b[0] || (b[0] = (i) => e())
|
|
2187
2315
|
}, {
|
|
2188
|
-
default:
|
|
2189
|
-
x(
|
|
2190
|
-
default:
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
src:
|
|
2316
|
+
default: O(() => [
|
|
2317
|
+
x(d, null, {
|
|
2318
|
+
default: O(() => [
|
|
2319
|
+
l("div", Xn, [
|
|
2320
|
+
l("img", {
|
|
2321
|
+
src: S(Pt),
|
|
2194
2322
|
alt: "NetSuite"
|
|
2195
|
-
}, null, 8,
|
|
2323
|
+
}, null, 8, Qn)
|
|
2196
2324
|
]),
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2325
|
+
l("div", Yn, [
|
|
2326
|
+
l("div", Jn, T(S(f)("inventory.integration.netsuite.title")), 1),
|
|
2327
|
+
l("div", Kn, T(S(f)("inventory.integration.netsuite.description")), 1)
|
|
2200
2328
|
])
|
|
2201
2329
|
]),
|
|
2202
2330
|
_: 1
|
|
@@ -2204,39 +2332,39 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2204
2332
|
]),
|
|
2205
2333
|
_: 1
|
|
2206
2334
|
}),
|
|
2207
|
-
|
|
2335
|
+
S(y).state.setting ? (I(), U(ce, {
|
|
2208
2336
|
key: 0,
|
|
2209
2337
|
to: "body"
|
|
2210
2338
|
}, [
|
|
2211
|
-
|
|
2339
|
+
S(y).isBusinessLocation ? (I(), U(dn, {
|
|
2212
2340
|
key: 0,
|
|
2213
|
-
setting:
|
|
2214
|
-
"onUpdate:setting":
|
|
2341
|
+
setting: S(y).state.setting,
|
|
2342
|
+
"onUpdate:setting": b[1] || (b[1] = (i) => S(y).state.setting = i),
|
|
2215
2343
|
nsLocations: u.value,
|
|
2216
|
-
"onUpdate:nsLocations":
|
|
2344
|
+
"onUpdate:nsLocations": b[2] || (b[2] = (i) => u.value = i),
|
|
2217
2345
|
show: n.value,
|
|
2218
2346
|
"onUpdate:show": [
|
|
2219
|
-
|
|
2220
|
-
|
|
2347
|
+
b[3] || (b[3] = (i) => n.value = i),
|
|
2348
|
+
b[4] || (b[4] = (i) => n.value = i)
|
|
2221
2349
|
],
|
|
2222
|
-
loading:
|
|
2223
|
-
"onUpdate:loading":
|
|
2224
|
-
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (
|
|
2350
|
+
loading: r.value,
|
|
2351
|
+
"onUpdate:loading": b[5] || (b[5] = (i) => r.value = i)
|
|
2352
|
+
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (I(), U(Un, {
|
|
2225
2353
|
key: 1,
|
|
2226
|
-
setting:
|
|
2227
|
-
"onUpdate:setting":
|
|
2354
|
+
setting: S(y).state.setting,
|
|
2355
|
+
"onUpdate:setting": b[6] || (b[6] = (i) => S(y).state.setting = i),
|
|
2228
2356
|
nsLocations: u.value,
|
|
2229
|
-
"onUpdate:nsLocations":
|
|
2357
|
+
"onUpdate:nsLocations": b[7] || (b[7] = (i) => u.value = i),
|
|
2230
2358
|
show: n.value,
|
|
2231
2359
|
"onUpdate:show": [
|
|
2232
|
-
|
|
2233
|
-
|
|
2360
|
+
b[8] || (b[8] = (i) => n.value = i),
|
|
2361
|
+
b[9] || (b[9] = (i) => n.value = i)
|
|
2234
2362
|
],
|
|
2235
|
-
loading:
|
|
2236
|
-
"onUpdate:loading":
|
|
2363
|
+
loading: r.value,
|
|
2364
|
+
"onUpdate:loading": b[10] || (b[10] = (i) => r.value = i)
|
|
2237
2365
|
}, null, 8, ["setting", "nsLocations", "show", "loading"]))
|
|
2238
|
-
])) :
|
|
2239
|
-
], 64)) :
|
|
2366
|
+
])) : z("", !0)
|
|
2367
|
+
], 64)) : z("", !0);
|
|
2240
2368
|
};
|
|
2241
2369
|
}
|
|
2242
2370
|
}), xe = [
|
|
@@ -2256,64 +2384,64 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2256
2384
|
"schemeFranchiseePrice",
|
|
2257
2385
|
"physicalSchemeTotalFranchiseePrice"
|
|
2258
2386
|
];
|
|
2259
|
-
async function
|
|
2387
|
+
async function qn(E, y, s) {
|
|
2260
2388
|
var u;
|
|
2261
|
-
const
|
|
2262
|
-
for (const
|
|
2263
|
-
const
|
|
2264
|
-
for (let
|
|
2265
|
-
const
|
|
2266
|
-
if (
|
|
2389
|
+
const r = await Zn(s), n = [], e = {};
|
|
2390
|
+
for (const f in r) {
|
|
2391
|
+
const w = r[f];
|
|
2392
|
+
for (let b = 0; b < w.length; b++) {
|
|
2393
|
+
const d = w[b], o = d.itemCode, i = d.itemName, A = d.physicalQty, B = d.customCost;
|
|
2394
|
+
if (o === "" || o === "undefined") {
|
|
2267
2395
|
n.push({
|
|
2268
|
-
row:
|
|
2269
|
-
itemCode:
|
|
2270
|
-
itemName:
|
|
2396
|
+
row: d.excelRow,
|
|
2397
|
+
itemCode: o,
|
|
2398
|
+
itemName: i,
|
|
2271
2399
|
message: "Item code is empty or undefined"
|
|
2272
2400
|
});
|
|
2273
2401
|
continue;
|
|
2274
2402
|
}
|
|
2275
|
-
const k =
|
|
2403
|
+
const k = y.find((h) => h.code === o);
|
|
2276
2404
|
if (!k) {
|
|
2277
2405
|
n.push({
|
|
2278
|
-
row:
|
|
2279
|
-
itemCode:
|
|
2280
|
-
itemName:
|
|
2281
|
-
qty:
|
|
2406
|
+
row: d.excelRow,
|
|
2407
|
+
itemCode: o,
|
|
2408
|
+
itemName: i,
|
|
2409
|
+
qty: A,
|
|
2282
2410
|
message: "Item not found in inventory"
|
|
2283
|
-
}), console.error(`${
|
|
2411
|
+
}), console.error(`${d.excelRow} Item not found: ${o} ${i} ${A}`);
|
|
2284
2412
|
continue;
|
|
2285
2413
|
}
|
|
2286
|
-
let
|
|
2287
|
-
const
|
|
2288
|
-
|
|
2289
|
-
const
|
|
2290
|
-
amount:
|
|
2414
|
+
let g = Number(d.totalPhysicalCustomCost);
|
|
2415
|
+
const p = E[k._id];
|
|
2416
|
+
p && (g = p * Number(A));
|
|
2417
|
+
const m = G.fromNumber(Number(A)), c = {
|
|
2418
|
+
amount: m,
|
|
2291
2419
|
cost: {
|
|
2292
|
-
...
|
|
2420
|
+
...G.fromNumber(Number(g)),
|
|
2293
2421
|
currency: "MYR"
|
|
2294
2422
|
}
|
|
2295
2423
|
};
|
|
2296
|
-
|
|
2424
|
+
A != "0" && B == "0" && console.warn(`Item ${o} ${i} has 0 cost.`), e[u = k._id] ?? (e[u] = {
|
|
2297
2425
|
skuAdjustment: {
|
|
2298
2426
|
sku: k,
|
|
2299
|
-
fromBalance:
|
|
2427
|
+
fromBalance: G.fromNumber(0),
|
|
2300
2428
|
amounts: [
|
|
2301
2429
|
{
|
|
2302
2430
|
_id: null,
|
|
2303
2431
|
type: we.Enum.CLOSING,
|
|
2304
2432
|
remark: "Opening Balance",
|
|
2305
|
-
amount:
|
|
2433
|
+
amount: m,
|
|
2306
2434
|
measurement: null,
|
|
2307
2435
|
// always the smallest unit
|
|
2308
2436
|
cost: c.cost
|
|
2309
2437
|
}
|
|
2310
2438
|
],
|
|
2311
|
-
toBalance:
|
|
2439
|
+
toBalance: m,
|
|
2312
2440
|
toCostBalances: [c]
|
|
2313
2441
|
},
|
|
2314
2442
|
skuBalance: {
|
|
2315
2443
|
id: k._id,
|
|
2316
|
-
balance:
|
|
2444
|
+
balance: m,
|
|
2317
2445
|
costs: [c]
|
|
2318
2446
|
}
|
|
2319
2447
|
});
|
|
@@ -2321,48 +2449,48 @@ async function Yn(F, g, s) {
|
|
|
2321
2449
|
}
|
|
2322
2450
|
return {
|
|
2323
2451
|
errors: n,
|
|
2324
|
-
rows:
|
|
2452
|
+
rows: e
|
|
2325
2453
|
};
|
|
2326
2454
|
}
|
|
2327
|
-
async function
|
|
2328
|
-
const
|
|
2329
|
-
const
|
|
2330
|
-
|
|
2331
|
-
}), s = ke(
|
|
2332
|
-
for (const
|
|
2333
|
-
const u = await
|
|
2334
|
-
n[
|
|
2455
|
+
async function Zn(E) {
|
|
2456
|
+
const y = await new Promise((e, u) => {
|
|
2457
|
+
const f = new FileReader();
|
|
2458
|
+
f.onload = (w) => e(w.target.result), f.onerror = u, f.readAsArrayBuffer(E);
|
|
2459
|
+
}), s = ke(y, { type: "array" }), r = s.SheetNames, n = {};
|
|
2460
|
+
for (const e of r) {
|
|
2461
|
+
const u = await Gn(s.Sheets[e]);
|
|
2462
|
+
n[e] = u;
|
|
2335
2463
|
}
|
|
2336
2464
|
return n;
|
|
2337
2465
|
}
|
|
2338
|
-
async function
|
|
2339
|
-
const
|
|
2466
|
+
async function Gn(E) {
|
|
2467
|
+
const y = Be.sheet_to_json(E, {
|
|
2340
2468
|
header: xe,
|
|
2341
2469
|
range: 12
|
|
2342
2470
|
}), s = [];
|
|
2343
|
-
for (let
|
|
2344
|
-
const n =
|
|
2471
|
+
for (let r = 0; r < y.length; r++) {
|
|
2472
|
+
const n = y[r], e = {};
|
|
2345
2473
|
for (const u of xe)
|
|
2346
|
-
|
|
2474
|
+
e[u] = String(n[u]).trim();
|
|
2347
2475
|
s.push({
|
|
2348
|
-
...
|
|
2349
|
-
excelRow:
|
|
2476
|
+
...e,
|
|
2477
|
+
excelRow: r + 13
|
|
2350
2478
|
// Excel rows start from 1, and we skip the first 12 rows
|
|
2351
2479
|
});
|
|
2352
2480
|
}
|
|
2353
2481
|
return s;
|
|
2354
2482
|
}
|
|
2355
|
-
const
|
|
2483
|
+
const Wn = { class: "flex flex-col gap-4" }, $n = { class: "flex flex-col" }, eo = {
|
|
2356
2484
|
key: 0,
|
|
2357
2485
|
class: "flex flex-col gap-4 my-5"
|
|
2358
|
-
},
|
|
2359
|
-
class: /* @__PURE__ */
|
|
2360
|
-
},
|
|
2361
|
-
class: /* @__PURE__ */
|
|
2362
|
-
},
|
|
2486
|
+
}, to = { class: "flex flex-col gap-8" }, no = { class: "flex flex-col gap-8" }, oo = {
|
|
2487
|
+
class: /* @__PURE__ */ q(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
2488
|
+
}, so = {
|
|
2489
|
+
class: /* @__PURE__ */ q(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
2490
|
+
}, ao = { class: "line-clamp-2 text-ellipsis break-all" }, lo = { class: "flex flex-col" }, io = { class: "font-medium" }, ro = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, uo = { class: "flex" }, co = { class: "flex" }, mo = { key: 1 }, fo = /* @__PURE__ */ Y({
|
|
2363
2491
|
__name: "XilnexOpeningImport",
|
|
2364
|
-
setup(
|
|
2365
|
-
const
|
|
2492
|
+
setup(E) {
|
|
2493
|
+
const y = Ze(), s = ie(), r = be(), n = Ce(), e = ee(), u = _(() => [
|
|
2366
2494
|
{
|
|
2367
2495
|
value: "xilnex",
|
|
2368
2496
|
label: "Xilnex",
|
|
@@ -2377,16 +2505,16 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2377
2505
|
disabledReason: "Current location is not binded to NetSuite"
|
|
2378
2506
|
}
|
|
2379
2507
|
] : []
|
|
2380
|
-
]),
|
|
2508
|
+
]), f = M(u.value[0].value), { t: w } = de(), b = M(null), d = M(), o = M(""), i = M([]), A = M([]), B = [
|
|
2381
2509
|
{
|
|
2382
2510
|
id: "ingredient",
|
|
2383
2511
|
header: () => "Ingredient",
|
|
2384
|
-
cell(
|
|
2385
|
-
const
|
|
2512
|
+
cell(t) {
|
|
2513
|
+
const a = t.row.original;
|
|
2386
2514
|
return D("div", { class: "flex flex-col" }, [
|
|
2387
|
-
D("span", { class: "font-medium" },
|
|
2515
|
+
D("span", { class: "font-medium" }, a.skuAdjustment.sku.name),
|
|
2388
2516
|
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2389
|
-
|
|
2517
|
+
a.skuAdjustment.sku.code
|
|
2390
2518
|
])
|
|
2391
2519
|
]);
|
|
2392
2520
|
}
|
|
@@ -2394,14 +2522,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2394
2522
|
{
|
|
2395
2523
|
id: "openingBalance",
|
|
2396
2524
|
header: () => "Opening Balance",
|
|
2397
|
-
cell(
|
|
2398
|
-
const
|
|
2525
|
+
cell(t) {
|
|
2526
|
+
const a = t.row.original;
|
|
2399
2527
|
return D("div", { class: "flex flex-col" }, [
|
|
2400
2528
|
D(
|
|
2401
2529
|
"span",
|
|
2402
2530
|
{ class: "font-medium" },
|
|
2403
|
-
|
|
2404
|
-
value:
|
|
2531
|
+
G.toFormatString({
|
|
2532
|
+
value: a.skuAdjustment.amounts[0].amount
|
|
2405
2533
|
})
|
|
2406
2534
|
)
|
|
2407
2535
|
]);
|
|
@@ -2410,19 +2538,19 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2410
2538
|
{
|
|
2411
2539
|
id: "unit",
|
|
2412
2540
|
header: () => "Unit",
|
|
2413
|
-
cell(
|
|
2414
|
-
const
|
|
2415
|
-
let L =
|
|
2416
|
-
if (!
|
|
2417
|
-
const N =
|
|
2418
|
-
(H) => H.id ===
|
|
2541
|
+
cell(t) {
|
|
2542
|
+
const a = t.row.original, C = !a.skuAdjustment.amounts[0].measurement;
|
|
2543
|
+
let L = a.skuAdjustment.sku.unit.name;
|
|
2544
|
+
if (!C) {
|
|
2545
|
+
const N = a.skuAdjustment.sku.unit.measurements.find(
|
|
2546
|
+
(H) => H.id === a.skuAdjustment.amounts[0].measurement.id
|
|
2419
2547
|
);
|
|
2420
2548
|
L = N ? N.name : "Error: Measurement not found";
|
|
2421
2549
|
}
|
|
2422
2550
|
return D("div", { class: "flex flex-col" }, [
|
|
2423
2551
|
D("span", { class: "font-medium" }, L),
|
|
2424
|
-
|
|
2425
|
-
`Base unit: ${
|
|
2552
|
+
C ? null : D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2553
|
+
`Base unit: ${a.skuAdjustment.sku.unit.name}`
|
|
2426
2554
|
])
|
|
2427
2555
|
]);
|
|
2428
2556
|
}
|
|
@@ -2430,8 +2558,8 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2430
2558
|
{
|
|
2431
2559
|
id: "totalCost",
|
|
2432
2560
|
header: () => "Total Cost",
|
|
2433
|
-
cell(
|
|
2434
|
-
const
|
|
2561
|
+
cell(t) {
|
|
2562
|
+
const a = t.row.original, { currency: C, ...L } = a.skuAdjustment.amounts[0].cost ?? {
|
|
2435
2563
|
amount: 0,
|
|
2436
2564
|
precision: 0,
|
|
2437
2565
|
currency: ""
|
|
@@ -2440,7 +2568,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2440
2568
|
D(
|
|
2441
2569
|
"span",
|
|
2442
2570
|
{ class: "font-medium" },
|
|
2443
|
-
|
|
2571
|
+
G.toFormatString({
|
|
2444
2572
|
value: L
|
|
2445
2573
|
})
|
|
2446
2574
|
)
|
|
@@ -2468,125 +2596,125 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2468
2596
|
accessorKey: "message",
|
|
2469
2597
|
header: "Error Message"
|
|
2470
2598
|
}
|
|
2471
|
-
],
|
|
2472
|
-
async function
|
|
2473
|
-
if (
|
|
2474
|
-
|
|
2599
|
+
], g = M(!1);
|
|
2600
|
+
async function p() {
|
|
2601
|
+
if (b.value) {
|
|
2602
|
+
g.value = !0;
|
|
2475
2603
|
try {
|
|
2476
|
-
let
|
|
2477
|
-
|
|
2478
|
-
const { errors:
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2604
|
+
let t = {};
|
|
2605
|
+
f.value === "netsuite" && (t = await s.getItemAverageCosts());
|
|
2606
|
+
const { errors: a, rows: C } = await qn(
|
|
2607
|
+
t,
|
|
2608
|
+
r.skus,
|
|
2609
|
+
b.value
|
|
2482
2610
|
);
|
|
2483
|
-
|
|
2611
|
+
i.value = a, A.value = Object.values(C);
|
|
2484
2612
|
} catch {
|
|
2485
|
-
|
|
2613
|
+
e.open({
|
|
2486
2614
|
message: "Error verifying file",
|
|
2487
2615
|
type: "error"
|
|
2488
2616
|
});
|
|
2489
2617
|
} finally {
|
|
2490
|
-
|
|
2618
|
+
g.value = !1;
|
|
2491
2619
|
}
|
|
2492
2620
|
}
|
|
2493
2621
|
}
|
|
2494
|
-
async function
|
|
2495
|
-
if (
|
|
2496
|
-
|
|
2622
|
+
async function m() {
|
|
2623
|
+
if (b.value) {
|
|
2624
|
+
g.value = !0;
|
|
2497
2625
|
try {
|
|
2498
|
-
if (!
|
|
2499
|
-
|
|
2626
|
+
if (!h.value) {
|
|
2627
|
+
e.open({
|
|
2500
2628
|
message: "Please select a date for the opening balance",
|
|
2501
2629
|
type: "error"
|
|
2502
2630
|
});
|
|
2503
2631
|
return;
|
|
2504
2632
|
}
|
|
2505
2633
|
await n.setOpeningBalance({
|
|
2506
|
-
effectiveAt:
|
|
2507
|
-
skuAdjustments:
|
|
2508
|
-
skuBalances:
|
|
2509
|
-
}),
|
|
2634
|
+
effectiveAt: h.value,
|
|
2635
|
+
skuAdjustments: A.value.map((t) => t.skuAdjustment),
|
|
2636
|
+
skuBalances: A.value.map((t) => t.skuBalance)
|
|
2637
|
+
}), e.open({
|
|
2510
2638
|
message: "Opening balance imported successfully",
|
|
2511
2639
|
type: "success"
|
|
2512
|
-
}), await
|
|
2640
|
+
}), await y.fetchClosingDocumentId();
|
|
2513
2641
|
} catch {
|
|
2514
|
-
|
|
2642
|
+
e.open({
|
|
2515
2643
|
message: "Error importing opening balance",
|
|
2516
2644
|
type: "error"
|
|
2517
2645
|
});
|
|
2518
2646
|
} finally {
|
|
2519
|
-
|
|
2647
|
+
g.value = !1;
|
|
2520
2648
|
}
|
|
2521
2649
|
}
|
|
2522
2650
|
}
|
|
2523
|
-
const c = M(""),
|
|
2651
|
+
const c = M(""), h = _({
|
|
2524
2652
|
get() {
|
|
2525
2653
|
return c.value;
|
|
2526
2654
|
},
|
|
2527
|
-
set(
|
|
2528
|
-
c.value = `${
|
|
2655
|
+
set(t) {
|
|
2656
|
+
c.value = `${t}T15:59:59.999Z`;
|
|
2529
2657
|
}
|
|
2530
|
-
}),
|
|
2658
|
+
}), v = _(() => {
|
|
2531
2659
|
if (!c.value) return null;
|
|
2532
|
-
const
|
|
2533
|
-
return isNaN(
|
|
2660
|
+
const t = new Date(c.value);
|
|
2661
|
+
return isNaN(t.getTime()) ? null : ye(t);
|
|
2534
2662
|
});
|
|
2535
|
-
return (
|
|
2536
|
-
const
|
|
2537
|
-
return
|
|
2538
|
-
|
|
2539
|
-
x(
|
|
2663
|
+
return (t, a) => {
|
|
2664
|
+
const C = F("FmLabel"), L = F("FmField"), N = F("FmSimpleDatePicker"), H = F("FmButton"), X = F("FmRadio"), R = F("FmRadioGroup"), j = F("FmTable");
|
|
2665
|
+
return I(), V("div", Wn, [
|
|
2666
|
+
l("div", $n, [
|
|
2667
|
+
x(C, { label: "Latest closing" })
|
|
2540
2668
|
]),
|
|
2541
2669
|
x(L, {
|
|
2542
2670
|
"prepend-icon": "lock_outline",
|
|
2543
2671
|
disabled: ""
|
|
2544
2672
|
}, {
|
|
2545
|
-
default:
|
|
2546
|
-
|
|
2673
|
+
default: O(() => [
|
|
2674
|
+
P(T(S(y).state.closingDocumentId ? `${S(Ee)(new Date(S(Ae)(S(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
2547
2675
|
]),
|
|
2548
2676
|
_: 1
|
|
2549
2677
|
}),
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
]))) : (
|
|
2678
|
+
S(y).state.closingDocumentId ? (I(), V("div", mo, a[6] || (a[6] = [
|
|
2679
|
+
l("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)
|
|
2680
|
+
]))) : (I(), V("div", eo, [
|
|
2553
2681
|
x(N, {
|
|
2554
|
-
modelValue:
|
|
2555
|
-
"onUpdate:modelValue":
|
|
2682
|
+
modelValue: h.value,
|
|
2683
|
+
"onUpdate:modelValue": a[0] || (a[0] = (Q) => h.value = Q),
|
|
2556
2684
|
label: "Last closing time"
|
|
2557
2685
|
}, {
|
|
2558
|
-
"trigger-button":
|
|
2686
|
+
"trigger-button": O(() => [
|
|
2559
2687
|
x(L, {
|
|
2560
2688
|
"prepend-icon": "calendar_today",
|
|
2561
2689
|
readonly: "",
|
|
2562
2690
|
label: "Last closing time"
|
|
2563
2691
|
}, {
|
|
2564
|
-
default:
|
|
2565
|
-
|
|
2692
|
+
default: O(() => [
|
|
2693
|
+
P(T(v.value), 1)
|
|
2566
2694
|
]),
|
|
2567
2695
|
_: 1
|
|
2568
2696
|
})
|
|
2569
2697
|
]),
|
|
2570
2698
|
_: 1
|
|
2571
2699
|
}, 8, ["modelValue"]),
|
|
2572
|
-
|
|
2573
|
-
x(
|
|
2700
|
+
l("div", to, [
|
|
2701
|
+
x(C, { label: "Stock take file" })
|
|
2574
2702
|
]),
|
|
2575
2703
|
x(Fe, {
|
|
2576
|
-
onFileUpload:
|
|
2577
|
-
Q && (
|
|
2704
|
+
onFileUpload: a[1] || (a[1] = (Q) => {
|
|
2705
|
+
Q && (b.value = Q);
|
|
2578
2706
|
}),
|
|
2579
2707
|
accept: ".xlsx, .xls, .csv"
|
|
2580
|
-
},
|
|
2581
|
-
|
|
2708
|
+
}, se({ _: 2 }, [
|
|
2709
|
+
b.value ? {
|
|
2582
2710
|
name: "default",
|
|
2583
|
-
fn:
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2711
|
+
fn: O(({ openFileDialog: Q }) => [
|
|
2712
|
+
l("div", no, [
|
|
2713
|
+
l("div", oo, [
|
|
2714
|
+
l("div", so, [
|
|
2715
|
+
l("div", ao, T(b.value.name), 1),
|
|
2588
2716
|
x(H, {
|
|
2589
|
-
label:
|
|
2717
|
+
label: S(w)("inventory.ingredient.import.replaceFile"),
|
|
2590
2718
|
variant: "secondary",
|
|
2591
2719
|
"prepend-icon": "autorenew",
|
|
2592
2720
|
onClick: Q
|
|
@@ -2598,24 +2726,24 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2598
2726
|
key: "0"
|
|
2599
2727
|
} : void 0
|
|
2600
2728
|
]), 1024),
|
|
2601
|
-
x(
|
|
2602
|
-
modelValue:
|
|
2603
|
-
"onUpdate:modelValue":
|
|
2729
|
+
x(R, {
|
|
2730
|
+
modelValue: f.value,
|
|
2731
|
+
"onUpdate:modelValue": a[2] || (a[2] = (Q) => f.value = Q),
|
|
2604
2732
|
label: "Retrieve cost from",
|
|
2605
2733
|
class: "my-5"
|
|
2606
2734
|
}, {
|
|
2607
|
-
default:
|
|
2608
|
-
(
|
|
2735
|
+
default: O(() => [
|
|
2736
|
+
(I(!0), V(J, null, W(u.value, (Q) => (I(), U(X, {
|
|
2609
2737
|
key: Q.value,
|
|
2610
2738
|
value: Q.value,
|
|
2611
2739
|
label: Q.label,
|
|
2612
2740
|
sublabel: Q.subLabel,
|
|
2613
2741
|
disabled: Q.disabled
|
|
2614
2742
|
}, {
|
|
2615
|
-
label:
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2743
|
+
label: O(() => [
|
|
2744
|
+
l("div", lo, [
|
|
2745
|
+
l("span", io, T(Q.label), 1),
|
|
2746
|
+
l("span", ro, T(Q.disabled ? Q.disabledReason : Q.subLabel), 1)
|
|
2619
2747
|
])
|
|
2620
2748
|
]),
|
|
2621
2749
|
_: 2
|
|
@@ -2623,129 +2751,129 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2623
2751
|
]),
|
|
2624
2752
|
_: 1
|
|
2625
2753
|
}, 8, ["modelValue"]),
|
|
2626
|
-
|
|
2754
|
+
l("div", uo, [
|
|
2627
2755
|
x(H, {
|
|
2628
2756
|
class: "ml-auto mt-4",
|
|
2629
2757
|
variant: "secondary",
|
|
2630
2758
|
"prepend-icon": "troubleshoot",
|
|
2631
2759
|
label: "Verify",
|
|
2632
|
-
disabled: !
|
|
2633
|
-
loading:
|
|
2634
|
-
onClick:
|
|
2760
|
+
disabled: !b.value && !g.value,
|
|
2761
|
+
loading: g.value,
|
|
2762
|
+
onClick: p
|
|
2635
2763
|
}, null, 8, ["disabled", "loading"])
|
|
2636
2764
|
]),
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
x(
|
|
2640
|
-
modelValue:
|
|
2641
|
-
"onUpdate:modelValue":
|
|
2642
|
-
"row-data":
|
|
2643
|
-
"column-defs":
|
|
2765
|
+
b.value && A.value.length > 0 ? (I(), V(J, { key: 0 }, [
|
|
2766
|
+
a[4] || (a[4] = l("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
2767
|
+
x(j, {
|
|
2768
|
+
modelValue: d.value,
|
|
2769
|
+
"onUpdate:modelValue": a[3] || (a[3] = (Q) => d.value = Q),
|
|
2770
|
+
"row-data": A.value,
|
|
2771
|
+
"column-defs": B,
|
|
2644
2772
|
"shrink-at": !1,
|
|
2645
|
-
"search-value":
|
|
2773
|
+
"search-value": o.value
|
|
2646
2774
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
2647
|
-
], 64)) :
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
x(
|
|
2651
|
-
"row-data":
|
|
2775
|
+
], 64)) : z("", !0),
|
|
2776
|
+
i.value.length > 0 ? (I(), V(J, { key: 1 }, [
|
|
2777
|
+
a[5] || (a[5] = l("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
2778
|
+
x(j, {
|
|
2779
|
+
"row-data": i.value,
|
|
2652
2780
|
"column-defs": k
|
|
2653
2781
|
}, null, 8, ["row-data"])
|
|
2654
|
-
], 64)) :
|
|
2655
|
-
|
|
2656
|
-
|
|
2782
|
+
], 64)) : z("", !0),
|
|
2783
|
+
l("div", co, [
|
|
2784
|
+
A.value.length > 0 && !S(y).state.closingDocumentId ? (I(), U(H, {
|
|
2657
2785
|
key: 0,
|
|
2658
2786
|
class: "ml-auto mt-4",
|
|
2659
2787
|
"prepend-icon": "file_upload",
|
|
2660
2788
|
variant: "primary",
|
|
2661
2789
|
label: "Import Opening Balance",
|
|
2662
|
-
disabled: !
|
|
2663
|
-
onClick:
|
|
2664
|
-
}, null, 8, ["disabled"])) :
|
|
2790
|
+
disabled: !b.value || g.value,
|
|
2791
|
+
onClick: m
|
|
2792
|
+
}, null, 8, ["disabled"])) : z("", !0)
|
|
2665
2793
|
])
|
|
2666
2794
|
]))
|
|
2667
2795
|
]);
|
|
2668
2796
|
};
|
|
2669
2797
|
}
|
|
2670
|
-
}),
|
|
2798
|
+
}), po = { class: "flex flex-col gap-8 w-full" }, vo = { class: "flex gap-4 justify-between" }, go = { 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" }, yo = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, Ao = { key: 0 }, bo = {
|
|
2671
2799
|
key: 1,
|
|
2672
2800
|
class: "flex flex-col gap-8 w-full"
|
|
2673
|
-
},
|
|
2801
|
+
}, ho = { key: 1 }, xo = { class: "flex gap-8 items-center justify-start" }, Io = /* @__PURE__ */ Y({
|
|
2674
2802
|
__name: "XilnexSideSheet",
|
|
2675
2803
|
props: {
|
|
2676
2804
|
show: { type: Boolean },
|
|
2677
2805
|
loading: { type: Boolean }
|
|
2678
2806
|
},
|
|
2679
2807
|
emits: ["update:show"],
|
|
2680
|
-
setup(
|
|
2681
|
-
var
|
|
2682
|
-
const s =
|
|
2683
|
-
{ label:
|
|
2808
|
+
setup(E, { emit: y }) {
|
|
2809
|
+
var o;
|
|
2810
|
+
const s = oe(), n = le(E, "show"), { t: e } = Z(), u = y, f = $(), w = ((o = f._currentLocation) == null ? void 0 : o.type) || "", b = [
|
|
2811
|
+
{ label: ue(
|
|
2684
2812
|
"openingBalance"
|
|
2685
2813
|
/* OPENING_BALANCE */
|
|
2686
2814
|
) },
|
|
2687
|
-
{ label:
|
|
2815
|
+
{ label: ue(
|
|
2688
2816
|
"transferNote"
|
|
2689
2817
|
/* TRANSFER_NOTE */
|
|
2690
2818
|
) }
|
|
2691
|
-
],
|
|
2692
|
-
return (
|
|
2693
|
-
var
|
|
2694
|
-
const
|
|
2695
|
-
return
|
|
2696
|
-
modelValue:
|
|
2697
|
-
"onUpdate:modelValue":
|
|
2819
|
+
], d = M(b[0]);
|
|
2820
|
+
return (i, A) => {
|
|
2821
|
+
var m;
|
|
2822
|
+
const B = F("FmIcon"), k = F("FmButtonGroup"), g = F("FmButton"), p = F("FmSideSheet");
|
|
2823
|
+
return I(), U(p, {
|
|
2824
|
+
modelValue: S(n),
|
|
2825
|
+
"onUpdate:modelValue": A[2] || (A[2] = (c) => ae(n) ? n.value = c : null),
|
|
2698
2826
|
header: "Data migration (Xilnex)",
|
|
2699
2827
|
"dismiss-away": "",
|
|
2700
2828
|
"close-button": "",
|
|
2701
2829
|
"max-width": 800
|
|
2702
|
-
},
|
|
2703
|
-
default:
|
|
2830
|
+
}, se({
|
|
2831
|
+
default: O(() => {
|
|
2704
2832
|
var c;
|
|
2705
2833
|
return [
|
|
2706
|
-
(c =
|
|
2707
|
-
|
|
2834
|
+
(c = S(s).sessionUser.value) != null && c.role.isAdmin ? (I(), V("div", bo, [
|
|
2835
|
+
d.value.label === S(ue)(
|
|
2708
2836
|
"openingBalance"
|
|
2709
2837
|
/* OPENING_BALANCE */
|
|
2710
|
-
) ? (
|
|
2711
|
-
|
|
2838
|
+
) ? (I(), U(fo, { key: 0 })) : z("", !0),
|
|
2839
|
+
d.value.label === S(ue)(
|
|
2712
2840
|
"transferNote"
|
|
2713
2841
|
/* TRANSFER_NOTE */
|
|
2714
|
-
) ? (
|
|
2715
|
-
])) : (
|
|
2842
|
+
) ? (I(), V("div", ho, " Not available yet. ")) : z("", !0)
|
|
2843
|
+
])) : (I(), V("div", Ao, " Please contact your administrator to apply the changes. "))
|
|
2716
2844
|
];
|
|
2717
2845
|
}),
|
|
2718
|
-
"side-sheet-footer":
|
|
2719
|
-
|
|
2720
|
-
x(
|
|
2846
|
+
"side-sheet-footer": O(() => [
|
|
2847
|
+
l("div", xo, [
|
|
2848
|
+
x(g, {
|
|
2721
2849
|
variant: "tertiary",
|
|
2722
|
-
label:
|
|
2723
|
-
onClick:
|
|
2850
|
+
label: S(e)("common.close"),
|
|
2851
|
+
onClick: A[1] || (A[1] = (c) => u("update:show", !1))
|
|
2724
2852
|
}, null, 8, ["label"])
|
|
2725
2853
|
])
|
|
2726
2854
|
]),
|
|
2727
2855
|
_: 2
|
|
2728
2856
|
}, [
|
|
2729
|
-
(
|
|
2857
|
+
(m = S(s).sessionUser.value) != null && m.role.isAdmin ? {
|
|
2730
2858
|
name: "side-sheet-header",
|
|
2731
|
-
fn:
|
|
2859
|
+
fn: O(() => {
|
|
2732
2860
|
var c;
|
|
2733
2861
|
return [
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
x(
|
|
2739
|
-
name:
|
|
2862
|
+
l("div", po, [
|
|
2863
|
+
l("div", vo, [
|
|
2864
|
+
A[3] || (A[3] = l("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
2865
|
+
l("div", go, [
|
|
2866
|
+
x(B, {
|
|
2867
|
+
name: S(w),
|
|
2740
2868
|
size: "sm"
|
|
2741
2869
|
}, null, 8, ["name"]),
|
|
2742
|
-
|
|
2870
|
+
l("div", yo, T((c = S(f)._currentLocation) == null ? void 0 : c.name), 1)
|
|
2743
2871
|
])
|
|
2744
2872
|
]),
|
|
2745
2873
|
x(k, {
|
|
2746
|
-
modelValue:
|
|
2747
|
-
"onUpdate:modelValue":
|
|
2748
|
-
items:
|
|
2874
|
+
modelValue: d.value,
|
|
2875
|
+
"onUpdate:modelValue": A[0] || (A[0] = (h) => d.value = h),
|
|
2876
|
+
items: b
|
|
2749
2877
|
}, null, 8, ["modelValue"])
|
|
2750
2878
|
])
|
|
2751
2879
|
];
|
|
@@ -2755,37 +2883,37 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2755
2883
|
]), 1032, ["modelValue"]);
|
|
2756
2884
|
};
|
|
2757
2885
|
}
|
|
2758
|
-
}),
|
|
2886
|
+
}), So = /* @__PURE__ */ Y({
|
|
2759
2887
|
__name: "XilnexView",
|
|
2760
|
-
setup(
|
|
2761
|
-
const
|
|
2888
|
+
setup(E) {
|
|
2889
|
+
const y = Le(), s = $(), r = M(!1);
|
|
2762
2890
|
async function n() {
|
|
2763
|
-
|
|
2891
|
+
r.value = !0, console.log("Opening Xilnex migration dialog");
|
|
2764
2892
|
}
|
|
2765
|
-
return (
|
|
2766
|
-
const
|
|
2767
|
-
return
|
|
2768
|
-
x(
|
|
2769
|
-
class:
|
|
2893
|
+
return (e, u) => {
|
|
2894
|
+
const f = F("FmCardSection"), w = F("FmCard");
|
|
2895
|
+
return S(y).enabledXilnexOpeningMigration && !S(s).businessLevel ? (I(), V(J, { key: 0 }, [
|
|
2896
|
+
x(w, {
|
|
2897
|
+
class: q({
|
|
2770
2898
|
"w-full": !0,
|
|
2771
2899
|
border: !0,
|
|
2772
2900
|
"border-fm-color-neutral-gray-100": !0,
|
|
2773
2901
|
"cursor-pointer": !0,
|
|
2774
2902
|
"hover:border-fm-color-primary": !0
|
|
2775
2903
|
}),
|
|
2776
|
-
onClick: u[0] || (u[0] = (
|
|
2904
|
+
onClick: u[0] || (u[0] = (b) => n())
|
|
2777
2905
|
}, {
|
|
2778
|
-
default:
|
|
2779
|
-
x(
|
|
2780
|
-
default:
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2906
|
+
default: O(() => [
|
|
2907
|
+
x(f, null, {
|
|
2908
|
+
default: O(() => u[2] || (u[2] = [
|
|
2909
|
+
l("div", { class: "flex justify-center" }, [
|
|
2910
|
+
l("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
2911
|
+
l("span", { class: "text-lg font-bold text-gray-600" }, "Xilnex")
|
|
2784
2912
|
])
|
|
2785
2913
|
], -1),
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2914
|
+
l("div", { class: "flex flex-col items-center gap-2" }, [
|
|
2915
|
+
l("div", { class: "text-lg font-bold" }, "Xilnex"),
|
|
2916
|
+
l("div", { class: "text-fm-color-neutral-gray-300" }, "Data migration from Xilnex")
|
|
2789
2917
|
], -1)
|
|
2790
2918
|
])),
|
|
2791
2919
|
_: 1
|
|
@@ -2793,13 +2921,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2793
2921
|
]),
|
|
2794
2922
|
_: 1
|
|
2795
2923
|
}),
|
|
2796
|
-
(
|
|
2797
|
-
x(
|
|
2798
|
-
show:
|
|
2799
|
-
"onUpdate:show": u[1] || (u[1] = (
|
|
2924
|
+
(I(), U(ce, { to: "body" }, [
|
|
2925
|
+
x(Io, {
|
|
2926
|
+
show: r.value,
|
|
2927
|
+
"onUpdate:show": u[1] || (u[1] = (b) => r.value = b)
|
|
2800
2928
|
}, null, 8, ["show"])
|
|
2801
2929
|
]))
|
|
2802
|
-
], 64)) :
|
|
2930
|
+
], 64)) : z("", !0);
|
|
2803
2931
|
};
|
|
2804
2932
|
}
|
|
2805
2933
|
}), Ie = [
|
|
@@ -2812,125 +2940,125 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2812
2940
|
"quantity",
|
|
2813
2941
|
"total"
|
|
2814
2942
|
];
|
|
2815
|
-
async function
|
|
2816
|
-
var
|
|
2817
|
-
const
|
|
2818
|
-
for (let
|
|
2819
|
-
const
|
|
2820
|
-
if (
|
|
2943
|
+
async function wo(E, y, s) {
|
|
2944
|
+
var w;
|
|
2945
|
+
const r = await ko(s), n = [], e = {}, u = Object.keys(r)[0], f = r[u];
|
|
2946
|
+
for (let b = 0; b < f.length; b++) {
|
|
2947
|
+
const d = f[b], o = d.code, i = d.description, A = d.quantity, B = d.unitcost;
|
|
2948
|
+
if (o === "" || o === "undefined") {
|
|
2821
2949
|
n.push({
|
|
2822
|
-
row:
|
|
2823
|
-
itemCode:
|
|
2824
|
-
itemName:
|
|
2950
|
+
row: d.excelRow,
|
|
2951
|
+
itemCode: o,
|
|
2952
|
+
itemName: i,
|
|
2825
2953
|
message: "Item code is empty or undefined"
|
|
2826
2954
|
});
|
|
2827
2955
|
continue;
|
|
2828
2956
|
}
|
|
2829
|
-
const k =
|
|
2957
|
+
const k = y.find((h) => h.code === o);
|
|
2830
2958
|
if (!k) {
|
|
2831
2959
|
n.push({
|
|
2832
|
-
row:
|
|
2833
|
-
itemCode:
|
|
2834
|
-
itemName:
|
|
2835
|
-
qty:
|
|
2960
|
+
row: d.excelRow,
|
|
2961
|
+
itemCode: o,
|
|
2962
|
+
itemName: i,
|
|
2963
|
+
qty: A,
|
|
2836
2964
|
message: "Item not found in inventory"
|
|
2837
|
-
}), console.error(`${
|
|
2965
|
+
}), console.error(`${d.excelRow} Item not found: ${o} ${i} ${A}`);
|
|
2838
2966
|
continue;
|
|
2839
2967
|
}
|
|
2840
|
-
let
|
|
2841
|
-
const
|
|
2842
|
-
|
|
2843
|
-
const
|
|
2844
|
-
amount:
|
|
2968
|
+
let g = Number(d.total);
|
|
2969
|
+
const p = E[k._id];
|
|
2970
|
+
p && (g = p * Number(A));
|
|
2971
|
+
const m = G.fromNumber(Number(A)), c = {
|
|
2972
|
+
amount: m,
|
|
2845
2973
|
cost: {
|
|
2846
|
-
...
|
|
2974
|
+
...G.fromNumber(Number(g)),
|
|
2847
2975
|
currency: "MYR"
|
|
2848
2976
|
}
|
|
2849
2977
|
};
|
|
2850
|
-
|
|
2978
|
+
A != "0" && B == "0" && console.warn(`Item ${o} ${i} has 0 cost.`), e[w = k._id] ?? (e[w] = {
|
|
2851
2979
|
skuAdjustment: {
|
|
2852
2980
|
sku: k,
|
|
2853
|
-
fromBalance:
|
|
2981
|
+
fromBalance: G.fromNumber(0),
|
|
2854
2982
|
amounts: [
|
|
2855
2983
|
{
|
|
2856
2984
|
_id: null,
|
|
2857
2985
|
type: we.Enum.CLOSING,
|
|
2858
2986
|
remark: "Opening Balance",
|
|
2859
|
-
amount:
|
|
2987
|
+
amount: m,
|
|
2860
2988
|
measurement: null,
|
|
2861
2989
|
// always the smallest unit
|
|
2862
2990
|
cost: c.cost
|
|
2863
2991
|
}
|
|
2864
2992
|
],
|
|
2865
|
-
toBalance:
|
|
2993
|
+
toBalance: m,
|
|
2866
2994
|
toCostBalances: [c]
|
|
2867
2995
|
},
|
|
2868
2996
|
skuBalance: {
|
|
2869
2997
|
id: k._id,
|
|
2870
|
-
balance:
|
|
2998
|
+
balance: m,
|
|
2871
2999
|
costs: [c]
|
|
2872
3000
|
}
|
|
2873
3001
|
});
|
|
2874
3002
|
}
|
|
2875
3003
|
return {
|
|
2876
3004
|
errors: n,
|
|
2877
|
-
rows:
|
|
3005
|
+
rows: e
|
|
2878
3006
|
};
|
|
2879
3007
|
}
|
|
2880
|
-
async function
|
|
2881
|
-
const
|
|
2882
|
-
const
|
|
2883
|
-
|
|
2884
|
-
}), s = ke(
|
|
2885
|
-
for (const
|
|
2886
|
-
const u = await
|
|
2887
|
-
n[
|
|
3008
|
+
async function ko(E) {
|
|
3009
|
+
const y = await new Promise((e, u) => {
|
|
3010
|
+
const f = new FileReader();
|
|
3011
|
+
f.onload = (w) => e(w.target.result), f.onerror = u, f.readAsArrayBuffer(E);
|
|
3012
|
+
}), s = ke(y, { type: "array" }), r = s.SheetNames, n = {};
|
|
3013
|
+
for (const e of r) {
|
|
3014
|
+
const u = await Bo(s.Sheets[e]);
|
|
3015
|
+
n[e] = u;
|
|
2888
3016
|
}
|
|
2889
3017
|
return n;
|
|
2890
3018
|
}
|
|
2891
|
-
async function
|
|
2892
|
-
const
|
|
3019
|
+
async function Bo(E) {
|
|
3020
|
+
const y = Be.sheet_to_json(E, {
|
|
2893
3021
|
header: Ie,
|
|
2894
3022
|
range: 1
|
|
2895
3023
|
}), s = [];
|
|
2896
|
-
for (let
|
|
2897
|
-
const n =
|
|
3024
|
+
for (let r = 0; r < y.length; r++) {
|
|
3025
|
+
const n = y[r], e = {};
|
|
2898
3026
|
for (const u of Ie)
|
|
2899
|
-
|
|
3027
|
+
e[u] = String(n[u]).trim();
|
|
2900
3028
|
s.push({
|
|
2901
|
-
...
|
|
2902
|
-
excelRow:
|
|
3029
|
+
...e,
|
|
3030
|
+
excelRow: r + 2
|
|
2903
3031
|
// Excel rows start from 1, and we skip the first row
|
|
2904
3032
|
});
|
|
2905
3033
|
}
|
|
2906
3034
|
return s;
|
|
2907
3035
|
}
|
|
2908
|
-
const
|
|
3036
|
+
const Co = { class: "flex flex-col gap-4" }, Eo = { class: "flex flex-col" }, Fo = {
|
|
2909
3037
|
key: 0,
|
|
2910
3038
|
class: "flex flex-col gap-4 my-5"
|
|
2911
|
-
},
|
|
2912
|
-
class: /* @__PURE__ */
|
|
2913
|
-
},
|
|
2914
|
-
class: /* @__PURE__ */
|
|
2915
|
-
},
|
|
3039
|
+
}, Lo = { class: "flex flex-col gap-8" }, Vo = { class: "flex flex-col gap-8" }, No = {
|
|
3040
|
+
class: /* @__PURE__ */ q(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
3041
|
+
}, Do = {
|
|
3042
|
+
class: /* @__PURE__ */ q(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
3043
|
+
}, Oo = { class: "line-clamp-2 text-ellipsis break-all" }, Mo = { class: "flex flex-col" }, Ro = { class: "font-medium" }, To = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, jo = { class: "flex" }, _o = { class: "flex" }, zo = { key: 1 }, Ho = /* @__PURE__ */ Y({
|
|
2916
3044
|
__name: "SynergyOpeningImport",
|
|
2917
|
-
setup(
|
|
2918
|
-
const
|
|
3045
|
+
setup(E) {
|
|
3046
|
+
const y = Ge(), s = be(), r = Ce(), n = ee(), e = _(() => [
|
|
2919
3047
|
{
|
|
2920
3048
|
value: "synergy",
|
|
2921
3049
|
label: "Synergy",
|
|
2922
3050
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
2923
3051
|
}
|
|
2924
|
-
]), u = M(
|
|
3052
|
+
]), u = M(e.value[0].value), { t: f } = de(), w = M(null), b = M(), d = M(""), o = M([]), i = M([]), A = [
|
|
2925
3053
|
{
|
|
2926
3054
|
id: "ingredient",
|
|
2927
3055
|
header: () => "Ingredient",
|
|
2928
|
-
cell(
|
|
2929
|
-
const
|
|
3056
|
+
cell(v) {
|
|
3057
|
+
const t = v.row.original;
|
|
2930
3058
|
return D("div", { class: "flex flex-col" }, [
|
|
2931
|
-
D("span", { class: "font-medium" },
|
|
3059
|
+
D("span", { class: "font-medium" }, t.skuAdjustment.sku.name),
|
|
2932
3060
|
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
2933
|
-
|
|
3061
|
+
t.skuAdjustment.sku.code
|
|
2934
3062
|
])
|
|
2935
3063
|
]);
|
|
2936
3064
|
}
|
|
@@ -2938,14 +3066,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2938
3066
|
{
|
|
2939
3067
|
id: "openingBalance",
|
|
2940
3068
|
header: () => "Opening Balance",
|
|
2941
|
-
cell(
|
|
2942
|
-
const
|
|
3069
|
+
cell(v) {
|
|
3070
|
+
const t = v.row.original;
|
|
2943
3071
|
return D("div", { class: "flex flex-col" }, [
|
|
2944
3072
|
D(
|
|
2945
3073
|
"span",
|
|
2946
3074
|
{ class: "font-medium" },
|
|
2947
|
-
|
|
2948
|
-
value:
|
|
3075
|
+
G.toFormatString({
|
|
3076
|
+
value: t.skuAdjustment.amounts[0].amount
|
|
2949
3077
|
})
|
|
2950
3078
|
)
|
|
2951
3079
|
]);
|
|
@@ -2954,19 +3082,19 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2954
3082
|
{
|
|
2955
3083
|
id: "unit",
|
|
2956
3084
|
header: () => "Unit",
|
|
2957
|
-
cell(
|
|
2958
|
-
const
|
|
2959
|
-
let
|
|
2960
|
-
if (!
|
|
2961
|
-
const L =
|
|
2962
|
-
(N) => N.id ===
|
|
3085
|
+
cell(v) {
|
|
3086
|
+
const t = v.row.original, a = !t.skuAdjustment.amounts[0].measurement;
|
|
3087
|
+
let C = t.skuAdjustment.sku.unit.name;
|
|
3088
|
+
if (!a) {
|
|
3089
|
+
const L = t.skuAdjustment.sku.unit.measurements.find(
|
|
3090
|
+
(N) => N.id === t.skuAdjustment.amounts[0].measurement.id
|
|
2963
3091
|
);
|
|
2964
|
-
|
|
3092
|
+
C = L ? L.name : "Error: Measurement not found";
|
|
2965
3093
|
}
|
|
2966
3094
|
return D("div", { class: "flex flex-col" }, [
|
|
2967
|
-
D("span", { class: "font-medium" },
|
|
2968
|
-
|
|
2969
|
-
`Base unit: ${
|
|
3095
|
+
D("span", { class: "font-medium" }, C),
|
|
3096
|
+
a ? null : D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
3097
|
+
`Base unit: ${t.skuAdjustment.sku.unit.name}`
|
|
2970
3098
|
])
|
|
2971
3099
|
]);
|
|
2972
3100
|
}
|
|
@@ -2974,8 +3102,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2974
3102
|
{
|
|
2975
3103
|
id: "totalCost",
|
|
2976
3104
|
header: () => "Total Cost",
|
|
2977
|
-
cell(
|
|
2978
|
-
const
|
|
3105
|
+
cell(v) {
|
|
3106
|
+
const t = v.row.original, { currency: a, ...C } = t.skuAdjustment.amounts[0].cost ?? {
|
|
2979
3107
|
amount: 0,
|
|
2980
3108
|
precision: 0,
|
|
2981
3109
|
currency: ""
|
|
@@ -2984,14 +3112,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2984
3112
|
D(
|
|
2985
3113
|
"span",
|
|
2986
3114
|
{ class: "font-medium" },
|
|
2987
|
-
|
|
2988
|
-
value:
|
|
3115
|
+
G.toFormatString({
|
|
3116
|
+
value: C
|
|
2989
3117
|
})
|
|
2990
3118
|
)
|
|
2991
3119
|
]);
|
|
2992
3120
|
}
|
|
2993
3121
|
}
|
|
2994
|
-
],
|
|
3122
|
+
], B = [
|
|
2995
3123
|
{
|
|
2996
3124
|
accessorKey: "row",
|
|
2997
3125
|
header: "Row"
|
|
@@ -3013,17 +3141,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3013
3141
|
header: "Error Message"
|
|
3014
3142
|
}
|
|
3015
3143
|
], k = M(!1);
|
|
3016
|
-
async function
|
|
3017
|
-
if (
|
|
3144
|
+
async function g() {
|
|
3145
|
+
if (w.value) {
|
|
3018
3146
|
k.value = !0;
|
|
3019
3147
|
try {
|
|
3020
|
-
let
|
|
3021
|
-
const { errors:
|
|
3022
|
-
|
|
3148
|
+
let v = {};
|
|
3149
|
+
const { errors: t, rows: a } = await wo(
|
|
3150
|
+
v,
|
|
3023
3151
|
s.skus,
|
|
3024
|
-
|
|
3152
|
+
w.value
|
|
3025
3153
|
);
|
|
3026
|
-
|
|
3154
|
+
o.value = t, i.value = Object.values(a);
|
|
3027
3155
|
} catch {
|
|
3028
3156
|
n.open({
|
|
3029
3157
|
message: "Error verifying file",
|
|
@@ -3034,8 +3162,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3034
3162
|
}
|
|
3035
3163
|
}
|
|
3036
3164
|
}
|
|
3037
|
-
async function
|
|
3038
|
-
if (
|
|
3165
|
+
async function p() {
|
|
3166
|
+
if (w.value) {
|
|
3039
3167
|
k.value = !0;
|
|
3040
3168
|
try {
|
|
3041
3169
|
if (!c.value) {
|
|
@@ -3045,14 +3173,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3045
3173
|
});
|
|
3046
3174
|
return;
|
|
3047
3175
|
}
|
|
3048
|
-
await
|
|
3176
|
+
await r.setOpeningBalance({
|
|
3049
3177
|
effectiveAt: c.value,
|
|
3050
|
-
skuAdjustments:
|
|
3051
|
-
skuBalances:
|
|
3178
|
+
skuAdjustments: i.value.map((v) => v.skuAdjustment),
|
|
3179
|
+
skuBalances: i.value.map((v) => v.skuBalance)
|
|
3052
3180
|
}), n.open({
|
|
3053
3181
|
message: "Opening balance imported successfully",
|
|
3054
3182
|
type: "success"
|
|
3055
|
-
}), await
|
|
3183
|
+
}), await y.fetchClosingDocumentId();
|
|
3056
3184
|
} catch {
|
|
3057
3185
|
n.open({
|
|
3058
3186
|
message: "Error importing opening balance",
|
|
@@ -3063,76 +3191,76 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3063
3191
|
}
|
|
3064
3192
|
}
|
|
3065
3193
|
}
|
|
3066
|
-
const
|
|
3194
|
+
const m = M(""), c = _({
|
|
3067
3195
|
get() {
|
|
3068
|
-
return
|
|
3196
|
+
return m.value;
|
|
3069
3197
|
},
|
|
3070
|
-
set(
|
|
3071
|
-
|
|
3198
|
+
set(v) {
|
|
3199
|
+
m.value = `${v}T15:59:59.999Z`;
|
|
3072
3200
|
}
|
|
3073
|
-
}),
|
|
3074
|
-
if (!
|
|
3075
|
-
const
|
|
3076
|
-
return isNaN(
|
|
3201
|
+
}), h = _(() => {
|
|
3202
|
+
if (!m.value) return null;
|
|
3203
|
+
const v = new Date(m.value);
|
|
3204
|
+
return isNaN(v.getTime()) ? null : ye(v);
|
|
3077
3205
|
});
|
|
3078
|
-
return (
|
|
3079
|
-
const
|
|
3080
|
-
return
|
|
3081
|
-
|
|
3082
|
-
x(
|
|
3206
|
+
return (v, t) => {
|
|
3207
|
+
const a = F("FmLabel"), C = F("FmField"), L = F("FmSimpleDatePicker"), N = F("FmButton"), H = F("FmRadio"), X = F("FmRadioGroup"), R = F("FmTable");
|
|
3208
|
+
return I(), V("div", Co, [
|
|
3209
|
+
l("div", Eo, [
|
|
3210
|
+
x(a, { label: "Latest closing" })
|
|
3083
3211
|
]),
|
|
3084
|
-
x(
|
|
3212
|
+
x(C, {
|
|
3085
3213
|
"prepend-icon": "lock_outline",
|
|
3086
3214
|
disabled: ""
|
|
3087
3215
|
}, {
|
|
3088
|
-
default:
|
|
3089
|
-
|
|
3216
|
+
default: O(() => [
|
|
3217
|
+
P(T(S(y).state.closingDocumentId ? `${S(Ee)(new Date(S(Ae)(S(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
3090
3218
|
]),
|
|
3091
3219
|
_: 1
|
|
3092
3220
|
}),
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
]))) : (
|
|
3221
|
+
S(y).state.closingDocumentId ? (I(), V("div", zo, t[6] || (t[6] = [
|
|
3222
|
+
l("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)
|
|
3223
|
+
]))) : (I(), V("div", Fo, [
|
|
3096
3224
|
x(L, {
|
|
3097
3225
|
modelValue: c.value,
|
|
3098
|
-
"onUpdate:modelValue":
|
|
3226
|
+
"onUpdate:modelValue": t[0] || (t[0] = (j) => c.value = j),
|
|
3099
3227
|
label: "Last closing time"
|
|
3100
3228
|
}, {
|
|
3101
|
-
"trigger-button":
|
|
3102
|
-
x(
|
|
3229
|
+
"trigger-button": O(() => [
|
|
3230
|
+
x(C, {
|
|
3103
3231
|
"prepend-icon": "calendar_today",
|
|
3104
3232
|
readonly: "",
|
|
3105
3233
|
label: "Last closing time"
|
|
3106
3234
|
}, {
|
|
3107
|
-
default:
|
|
3108
|
-
|
|
3235
|
+
default: O(() => [
|
|
3236
|
+
P(T(h.value), 1)
|
|
3109
3237
|
]),
|
|
3110
3238
|
_: 1
|
|
3111
3239
|
})
|
|
3112
3240
|
]),
|
|
3113
3241
|
_: 1
|
|
3114
3242
|
}, 8, ["modelValue"]),
|
|
3115
|
-
|
|
3116
|
-
x(
|
|
3243
|
+
l("div", Lo, [
|
|
3244
|
+
x(a, { label: "Stock take file" })
|
|
3117
3245
|
]),
|
|
3118
3246
|
x(Fe, {
|
|
3119
|
-
onFileUpload:
|
|
3120
|
-
|
|
3247
|
+
onFileUpload: t[1] || (t[1] = (j) => {
|
|
3248
|
+
j && (w.value = j);
|
|
3121
3249
|
}),
|
|
3122
3250
|
accept: ".xlsx, .xls, .csv"
|
|
3123
|
-
},
|
|
3124
|
-
|
|
3251
|
+
}, se({ _: 2 }, [
|
|
3252
|
+
w.value ? {
|
|
3125
3253
|
name: "default",
|
|
3126
|
-
fn:
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3254
|
+
fn: O(({ openFileDialog: j }) => [
|
|
3255
|
+
l("div", Vo, [
|
|
3256
|
+
l("div", No, [
|
|
3257
|
+
l("div", Do, [
|
|
3258
|
+
l("div", Oo, T(w.value.name), 1),
|
|
3131
3259
|
x(N, {
|
|
3132
|
-
label:
|
|
3260
|
+
label: S(f)("inventory.ingredient.import.replaceFile"),
|
|
3133
3261
|
variant: "secondary",
|
|
3134
3262
|
"prepend-icon": "autorenew",
|
|
3135
|
-
onClick:
|
|
3263
|
+
onClick: j
|
|
3136
3264
|
}, null, 8, ["label", "onClick"])
|
|
3137
3265
|
])
|
|
3138
3266
|
])
|
|
@@ -3141,24 +3269,24 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3141
3269
|
key: "0"
|
|
3142
3270
|
} : void 0
|
|
3143
3271
|
]), 1024),
|
|
3144
|
-
x(
|
|
3272
|
+
x(X, {
|
|
3145
3273
|
modelValue: u.value,
|
|
3146
|
-
"onUpdate:modelValue":
|
|
3274
|
+
"onUpdate:modelValue": t[2] || (t[2] = (j) => u.value = j),
|
|
3147
3275
|
label: "Retrieve cost from",
|
|
3148
3276
|
class: "my-5"
|
|
3149
3277
|
}, {
|
|
3150
|
-
default:
|
|
3151
|
-
(
|
|
3152
|
-
key:
|
|
3153
|
-
value:
|
|
3154
|
-
label:
|
|
3155
|
-
sublabel:
|
|
3156
|
-
disabled:
|
|
3278
|
+
default: O(() => [
|
|
3279
|
+
(I(!0), V(J, null, W(e.value, (j) => (I(), U(H, {
|
|
3280
|
+
key: j.value,
|
|
3281
|
+
value: j.value,
|
|
3282
|
+
label: j.label,
|
|
3283
|
+
sublabel: j.subLabel,
|
|
3284
|
+
disabled: j.disabled
|
|
3157
3285
|
}, {
|
|
3158
|
-
label:
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3286
|
+
label: O(() => [
|
|
3287
|
+
l("div", Mo, [
|
|
3288
|
+
l("span", Ro, T(j.label), 1),
|
|
3289
|
+
l("span", To, T(j.disabled ? j.disabledReason : j.subLabel), 1)
|
|
3162
3290
|
])
|
|
3163
3291
|
]),
|
|
3164
3292
|
_: 2
|
|
@@ -3166,107 +3294,107 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3166
3294
|
]),
|
|
3167
3295
|
_: 1
|
|
3168
3296
|
}, 8, ["modelValue"]),
|
|
3169
|
-
|
|
3297
|
+
l("div", jo, [
|
|
3170
3298
|
x(N, {
|
|
3171
3299
|
class: "ml-auto mt-4",
|
|
3172
3300
|
variant: "secondary",
|
|
3173
3301
|
"prepend-icon": "troubleshoot",
|
|
3174
3302
|
label: "Verify",
|
|
3175
|
-
disabled: !
|
|
3303
|
+
disabled: !w.value && !k.value,
|
|
3176
3304
|
loading: k.value,
|
|
3177
|
-
onClick:
|
|
3305
|
+
onClick: g
|
|
3178
3306
|
}, null, 8, ["disabled", "loading"])
|
|
3179
3307
|
]),
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
x(
|
|
3183
|
-
modelValue:
|
|
3184
|
-
"onUpdate:modelValue":
|
|
3185
|
-
"row-data":
|
|
3186
|
-
"column-defs":
|
|
3308
|
+
w.value && i.value.length > 0 ? (I(), V(J, { key: 0 }, [
|
|
3309
|
+
t[4] || (t[4] = l("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
3310
|
+
x(R, {
|
|
3311
|
+
modelValue: b.value,
|
|
3312
|
+
"onUpdate:modelValue": t[3] || (t[3] = (j) => b.value = j),
|
|
3313
|
+
"row-data": i.value,
|
|
3314
|
+
"column-defs": A,
|
|
3187
3315
|
"shrink-at": !1,
|
|
3188
|
-
"search-value":
|
|
3316
|
+
"search-value": d.value
|
|
3189
3317
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
3190
|
-
], 64)) :
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
x(
|
|
3194
|
-
"row-data":
|
|
3195
|
-
"column-defs":
|
|
3318
|
+
], 64)) : z("", !0),
|
|
3319
|
+
o.value.length > 0 ? (I(), V(J, { key: 1 }, [
|
|
3320
|
+
t[5] || (t[5] = l("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
3321
|
+
x(R, {
|
|
3322
|
+
"row-data": o.value,
|
|
3323
|
+
"column-defs": B
|
|
3196
3324
|
}, null, 8, ["row-data"])
|
|
3197
|
-
], 64)) :
|
|
3198
|
-
|
|
3199
|
-
|
|
3325
|
+
], 64)) : z("", !0),
|
|
3326
|
+
l("div", _o, [
|
|
3327
|
+
i.value.length > 0 && !S(y).state.closingDocumentId ? (I(), U(N, {
|
|
3200
3328
|
key: 0,
|
|
3201
3329
|
class: "ml-auto mt-4",
|
|
3202
3330
|
"prepend-icon": "file_upload",
|
|
3203
3331
|
variant: "primary",
|
|
3204
3332
|
label: "Import Opening Balance",
|
|
3205
|
-
disabled: !
|
|
3206
|
-
onClick:
|
|
3207
|
-
}, null, 8, ["disabled"])) :
|
|
3333
|
+
disabled: !w.value || k.value,
|
|
3334
|
+
onClick: p
|
|
3335
|
+
}, null, 8, ["disabled"])) : z("", !0)
|
|
3208
3336
|
])
|
|
3209
3337
|
]))
|
|
3210
3338
|
]);
|
|
3211
3339
|
};
|
|
3212
3340
|
}
|
|
3213
|
-
}),
|
|
3341
|
+
}), Uo = { class: "flex flex-col gap-8 w-full" }, Xo = { class: "flex gap-4 justify-between" }, Qo = { 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" }, Yo = { class: "fm-typo-en-body-md-600 select-none text-ellipsis overflow-hidden whitespace-nowrap" }, Jo = { key: 0 }, Ko = {
|
|
3214
3342
|
key: 1,
|
|
3215
3343
|
class: "flex flex-col gap-8 w-full"
|
|
3216
|
-
},
|
|
3344
|
+
}, Po = { class: "flex gap-8 items-center justify-start" }, qo = /* @__PURE__ */ Y({
|
|
3217
3345
|
__name: "SynergySideSheet",
|
|
3218
3346
|
props: {
|
|
3219
3347
|
show: { type: Boolean },
|
|
3220
3348
|
loading: { type: Boolean }
|
|
3221
3349
|
},
|
|
3222
3350
|
emits: ["update:show"],
|
|
3223
|
-
setup(
|
|
3224
|
-
var
|
|
3225
|
-
const s =
|
|
3226
|
-
return (
|
|
3351
|
+
setup(E, { emit: y }) {
|
|
3352
|
+
var b;
|
|
3353
|
+
const s = oe(), n = le(E, "show"), { t: e } = Z(), u = y, f = $(), w = ((b = f._currentLocation) == null ? void 0 : b.type) || "";
|
|
3354
|
+
return (d, o) => {
|
|
3227
3355
|
var k;
|
|
3228
|
-
const
|
|
3229
|
-
return
|
|
3230
|
-
modelValue:
|
|
3231
|
-
"onUpdate:modelValue":
|
|
3356
|
+
const i = F("FmIcon"), A = F("FmButton"), B = F("FmSideSheet");
|
|
3357
|
+
return I(), U(B, {
|
|
3358
|
+
modelValue: S(n),
|
|
3359
|
+
"onUpdate:modelValue": o[1] || (o[1] = (g) => ae(n) ? n.value = g : null),
|
|
3232
3360
|
header: "Data migration (Synergy)",
|
|
3233
3361
|
"dismiss-away": "",
|
|
3234
3362
|
"close-button": "",
|
|
3235
3363
|
"max-width": 800
|
|
3236
|
-
},
|
|
3237
|
-
default:
|
|
3238
|
-
var
|
|
3364
|
+
}, se({
|
|
3365
|
+
default: O(() => {
|
|
3366
|
+
var g;
|
|
3239
3367
|
return [
|
|
3240
|
-
(
|
|
3241
|
-
x(
|
|
3242
|
-
])) : (
|
|
3368
|
+
(g = S(s).sessionUser.value) != null && g.role.isAdmin ? (I(), V("div", Ko, [
|
|
3369
|
+
x(Ho)
|
|
3370
|
+
])) : (I(), V("div", Jo, " Please contact your administrator to apply the changes. "))
|
|
3243
3371
|
];
|
|
3244
3372
|
}),
|
|
3245
|
-
"side-sheet-footer":
|
|
3246
|
-
|
|
3247
|
-
x(
|
|
3373
|
+
"side-sheet-footer": O(() => [
|
|
3374
|
+
l("div", Po, [
|
|
3375
|
+
x(A, {
|
|
3248
3376
|
variant: "tertiary",
|
|
3249
|
-
label:
|
|
3250
|
-
onClick:
|
|
3377
|
+
label: S(e)("common.close"),
|
|
3378
|
+
onClick: o[0] || (o[0] = (g) => u("update:show", !1))
|
|
3251
3379
|
}, null, 8, ["label"])
|
|
3252
3380
|
])
|
|
3253
3381
|
]),
|
|
3254
3382
|
_: 2
|
|
3255
3383
|
}, [
|
|
3256
|
-
(k =
|
|
3384
|
+
(k = S(s).sessionUser.value) != null && k.role.isAdmin ? {
|
|
3257
3385
|
name: "side-sheet-header",
|
|
3258
|
-
fn:
|
|
3259
|
-
var
|
|
3386
|
+
fn: O(() => {
|
|
3387
|
+
var g;
|
|
3260
3388
|
return [
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
x(
|
|
3266
|
-
name:
|
|
3389
|
+
l("div", Uo, [
|
|
3390
|
+
l("div", Xo, [
|
|
3391
|
+
o[2] || (o[2] = l("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
3392
|
+
l("div", Qo, [
|
|
3393
|
+
x(i, {
|
|
3394
|
+
name: S(w),
|
|
3267
3395
|
size: "sm"
|
|
3268
3396
|
}, null, 8, ["name"]),
|
|
3269
|
-
|
|
3397
|
+
l("div", Yo, T((g = S(f)._currentLocation) == null ? void 0 : g.name), 1)
|
|
3270
3398
|
])
|
|
3271
3399
|
])
|
|
3272
3400
|
])
|
|
@@ -3277,37 +3405,37 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3277
3405
|
]), 1032, ["modelValue"]);
|
|
3278
3406
|
};
|
|
3279
3407
|
}
|
|
3280
|
-
}),
|
|
3408
|
+
}), Zo = /* @__PURE__ */ Y({
|
|
3281
3409
|
__name: "SynergyView",
|
|
3282
|
-
setup(
|
|
3283
|
-
const
|
|
3410
|
+
setup(E) {
|
|
3411
|
+
const y = Le(), s = $(), r = M(!1);
|
|
3284
3412
|
async function n() {
|
|
3285
|
-
|
|
3413
|
+
r.value = !0, console.log("Opening Synergy migration dialog");
|
|
3286
3414
|
}
|
|
3287
|
-
return (
|
|
3288
|
-
const
|
|
3289
|
-
return
|
|
3290
|
-
x(
|
|
3291
|
-
class:
|
|
3415
|
+
return (e, u) => {
|
|
3416
|
+
const f = F("FmCardSection"), w = F("FmCard");
|
|
3417
|
+
return S(y).enabledSynergyOpeningMigration && !S(s).businessLevel ? (I(), V(J, { key: 0 }, [
|
|
3418
|
+
x(w, {
|
|
3419
|
+
class: q({
|
|
3292
3420
|
"w-full": !0,
|
|
3293
3421
|
border: !0,
|
|
3294
3422
|
"border-fm-color-neutral-gray-100": !0,
|
|
3295
3423
|
"cursor-pointer": !0,
|
|
3296
3424
|
"hover:border-fm-color-primary": !0
|
|
3297
3425
|
}),
|
|
3298
|
-
onClick: u[0] || (u[0] = (
|
|
3426
|
+
onClick: u[0] || (u[0] = (b) => n())
|
|
3299
3427
|
}, {
|
|
3300
|
-
default:
|
|
3301
|
-
x(
|
|
3302
|
-
default:
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3428
|
+
default: O(() => [
|
|
3429
|
+
x(f, null, {
|
|
3430
|
+
default: O(() => u[2] || (u[2] = [
|
|
3431
|
+
l("div", { class: "flex justify-center" }, [
|
|
3432
|
+
l("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
3433
|
+
l("span", { class: "text-lg font-bold text-gray-600" }, "Synergy")
|
|
3306
3434
|
])
|
|
3307
3435
|
], -1),
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3436
|
+
l("div", { class: "flex flex-col items-center gap-2" }, [
|
|
3437
|
+
l("div", { class: "text-lg font-bold" }, "Synergy"),
|
|
3438
|
+
l("div", { class: "text-fm-color-neutral-gray-300" }, "Data migration from Synergy")
|
|
3311
3439
|
], -1)
|
|
3312
3440
|
])),
|
|
3313
3441
|
_: 1
|
|
@@ -3315,49 +3443,49 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3315
3443
|
]),
|
|
3316
3444
|
_: 1
|
|
3317
3445
|
}),
|
|
3318
|
-
(
|
|
3319
|
-
x(
|
|
3320
|
-
show:
|
|
3321
|
-
"onUpdate:show": u[1] || (u[1] = (
|
|
3446
|
+
(I(), U(ce, { to: "body" }, [
|
|
3447
|
+
x(qo, {
|
|
3448
|
+
show: r.value,
|
|
3449
|
+
"onUpdate:show": u[1] || (u[1] = (b) => r.value = b)
|
|
3322
3450
|
}, null, 8, ["show"])
|
|
3323
3451
|
]))
|
|
3324
|
-
], 64)) :
|
|
3452
|
+
], 64)) : z("", !0);
|
|
3325
3453
|
};
|
|
3326
3454
|
}
|
|
3327
|
-
}),
|
|
3455
|
+
}), Go = { key: 0 }, Wo = {
|
|
3328
3456
|
key: 1,
|
|
3329
3457
|
class: "flex flex-col items-center my-10 gap-5"
|
|
3330
|
-
},
|
|
3458
|
+
}, $o = ["src"], es = {
|
|
3331
3459
|
class: "text-xs text-neutral-400 text-center",
|
|
3332
3460
|
style: { "max-width": "25rem" }
|
|
3333
|
-
},
|
|
3461
|
+
}, ts = {
|
|
3334
3462
|
key: 2,
|
|
3335
3463
|
class: "grid grid-cols-2 gap-5"
|
|
3336
|
-
},
|
|
3464
|
+
}, us = /* @__PURE__ */ Y({
|
|
3337
3465
|
__name: "IntegrationView",
|
|
3338
|
-
setup(
|
|
3339
|
-
const
|
|
3340
|
-
return
|
|
3341
|
-
if (
|
|
3466
|
+
setup(E) {
|
|
3467
|
+
const y = $(), s = M(!1), r = We(), { breakpoints: n } = Ve(), e = _(() => n.value.xs || n.value.sm), { t: u } = Z();
|
|
3468
|
+
return pe(async () => {
|
|
3469
|
+
if (y._currentLocation) {
|
|
3342
3470
|
s.value = !0;
|
|
3343
3471
|
try {
|
|
3344
|
-
await
|
|
3472
|
+
await r.fetchFoodMarketHubSetting(), await r.fetchNetSuiteSetting();
|
|
3345
3473
|
} finally {
|
|
3346
3474
|
s.value = !1;
|
|
3347
3475
|
}
|
|
3348
3476
|
}
|
|
3349
|
-
}), (
|
|
3350
|
-
const
|
|
3351
|
-
return
|
|
3352
|
-
title:
|
|
3477
|
+
}), (f, w) => {
|
|
3478
|
+
const b = F("FmCircularProgress");
|
|
3479
|
+
return I(), U(Je, {
|
|
3480
|
+
title: S(u)("inventory.integration.title")
|
|
3353
3481
|
}, {
|
|
3354
|
-
default:
|
|
3355
|
-
|
|
3356
|
-
class:
|
|
3482
|
+
default: O(() => [
|
|
3483
|
+
l("div", {
|
|
3484
|
+
class: q([
|
|
3357
3485
|
"flex flex-col gap-8 max-h-full",
|
|
3358
3486
|
{
|
|
3359
|
-
"p-0":
|
|
3360
|
-
"px-24 ": !
|
|
3487
|
+
"p-0": e.value,
|
|
3488
|
+
"px-24 ": !e.value
|
|
3361
3489
|
}
|
|
3362
3490
|
])
|
|
3363
3491
|
}, [
|
|
@@ -3365,22 +3493,22 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3365
3493
|
"change-location": "",
|
|
3366
3494
|
showBusiness: ""
|
|
3367
3495
|
}),
|
|
3368
|
-
!
|
|
3369
|
-
x(
|
|
3370
|
-
])) :
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
src:
|
|
3496
|
+
!S(y)._currentLocation || s.value ? (I(), V("div", Go, [
|
|
3497
|
+
x(b, { size: "lg" })
|
|
3498
|
+
])) : S(r).enabledIntegrations == 0 ? (I(), V("div", Wo, [
|
|
3499
|
+
l("div", null, [
|
|
3500
|
+
l("img", {
|
|
3501
|
+
src: S(ze),
|
|
3374
3502
|
alt: "List is empty"
|
|
3375
|
-
}, null, 8,
|
|
3503
|
+
}, null, 8, $o)
|
|
3376
3504
|
]),
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
])) : (
|
|
3380
|
-
x(
|
|
3505
|
+
w[0] || (w[0] = l("div", { class: "font-bold text-lg" }, "Integration", -1)),
|
|
3506
|
+
l("div", es, T(S(u)("inventory.integration.description")), 1)
|
|
3507
|
+
])) : (I(), V("div", ts, [
|
|
3508
|
+
x(Pn),
|
|
3381
3509
|
x(Kt),
|
|
3382
|
-
x(
|
|
3383
|
-
x(
|
|
3510
|
+
x(So),
|
|
3511
|
+
x(Zo)
|
|
3384
3512
|
]))
|
|
3385
3513
|
], 2)
|
|
3386
3514
|
]),
|
|
@@ -3390,5 +3518,5 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3390
3518
|
}
|
|
3391
3519
|
});
|
|
3392
3520
|
export {
|
|
3393
|
-
|
|
3521
|
+
us as default
|
|
3394
3522
|
};
|