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