@feedmepos/mf-inventory-portal 1.1.6-dev.3 → 1.1.6
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-B-nI29_9.js → App-eXCck7a5.js} +1 -1
- package/dist/{ApprovalView-BfPeHvSD.js → ApprovalView-B0WnIbbC.js} +12 -12
- package/dist/{BindingsDialog-C7F9iWm8.js → BindingsDialog-CrE8Bq81.js} +2 -2
- package/dist/{BindingsPicker-Co-yI_sT.js → BindingsPicker-BYfPxsQb.js} +1 -1
- package/dist/{BindingsTable-BdIxsyz3.js → BindingsTable-w-9rhRKt.js} +1 -1
- package/dist/{ClosingDraftView-Cb_yM-zH.js → ClosingDraftView-DvOzoK_0.js} +2 -2
- package/dist/ClosingTemplateView-DLL1XO9L.js +1863 -0
- package/dist/{DeliveryOrderPrintPreview-Drere-i3.js → DeliveryOrderPrintPreview-B1IkUCtx.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-Boejs9ce.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-zrZa5u48.js} +16 -16
- package/dist/{FmMultiselectDialog-DY6sGXeT.js → FmMultiselectDialog-bxhXcTjC.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-dJ5ogZkp.js → FmUnitInput.vue_vue_type_script_setup_true_lang-DjryjX5D.js} +20 -20
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-3KMq32uv.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DIwVPQfD.js} +1 -1
- package/dist/{IngredientGroupView-BQ9sVyyo.js → IngredientGroupView-DlqotAv3.js} +2 -2
- package/dist/{IngredientsView-Ckc38Pmx.js → IngredientsView-xysz7RCf.js} +4 -4
- package/dist/{IntegrationView-u4NrNGsu.js → IntegrationView-Bl9tz77r.js} +766 -729
- package/dist/{InventoryBindingForm-DdEH5h1a.js → InventoryBindingForm-Cpyi3HHr.js} +1 -1
- package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-CEBg3W7N.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-DaYCH25K.js} +3 -3
- package/dist/{InventoryBindingSummary-CrJ_gJtY.js → InventoryBindingSummary-Yx9OMEM9.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-T1FCwDNT.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CVYPx1Tq.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang--iqMiaAR.js → PremiumBadge.vue_vue_type_script_setup_true_lang-BH5KgYxB.js} +6 -6
- package/dist/{PublishView-CI0ZcCdg.js → PublishView-B6lG5RXd.js} +23 -22
- package/dist/{PurchaseOrderPrintPreview-N8RQIyXL.js → PurchaseOrderPrintPreview-BYmfHMdm.js} +6 -6
- package/dist/{ReceiveRequestView-BhFmuwna.js → ReceiveRequestView-BRJq_4JE.js} +123 -122
- package/dist/{RecipeView-DGMRC95R.js → RecipeView-_8gHbL19.js} +3 -3
- package/dist/{StockView-DsaJFBfk.js → StockView-ZfGClrtp.js} +6 -6
- package/dist/{SupplierView-CJ8GoKDm.js → SupplierView-BJmiYNly.js} +3 -3
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-D_ZaY1CU.js → TransferDetails.vue_vue_type_script_setup_true_lang-Bi5M4cFg.js} +781 -762
- package/dist/{TransferTemplateView-D3LLpBHC.js → TransferTemplateView-D2DTO0s8.js} +70 -70
- package/dist/{UnitView-y-mN7vfi.js → UnitView-BHKpH-Aq.js} +3 -3
- package/dist/{WarehouseView-DAxqUFNw.js → WarehouseView-DW6OJ2eV.js} +1 -1
- package/dist/api/adjustment-template.d.ts +0 -2
- package/dist/api/closing-template.d.ts +0 -2
- package/dist/api/netsuite.d.ts +1 -0
- package/dist/{app-LANrJGcw.js → app-uQHV9FP_.js} +30143 -32521
- package/dist/app.js +5 -5
- package/dist/components/FmMultiselectDialogTemporary.vue.d.ts +41 -0
- package/dist/components/row-action.enum.d.ts +0 -1
- package/dist/{decimal-BVHw1oWk.js → decimal-DKCv75cs.js} +1 -1
- package/dist/{format-unit-display-DYMpvtXq.js → format-unit-display-X3MUIbit.js} +22 -22
- package/dist/{index-vXejDFcV.js → index-BvaM_9NR.js} +1 -1
- package/dist/{index-ChUdGYpp.js → index-D_mBZNHv.js} +1 -1
- package/dist/router/index.d.ts +2 -2
- package/dist/{stock-C44UfJRT.js → stock-B-RknLfQ.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/{supplier-bSKffDOa.js → supplier-BVmAwcSb.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{use-ingredient-select-dialog-DcC9S3Gs.js → use-ingredient-select-dialog-C-A9SI3K.js} +1 -1
- package/dist/{use-inventory-binding-dialog-BWn08ETN.js → use-inventory-binding-dialog-q_8cEc3p.js} +1 -1
- package/dist/views/receive-request/composables/fn.d.ts +4 -3
- package/dist/views/receive-request/composables/use-receive-request-table.d.ts +1 -618
- package/dist/vue-i18n-4cOdM_m_.js +2365 -0
- package/package.json +4 -4
- package/dist/ClosingTemplateView-BFJfFFAM.js +0 -1908
- package/dist/components/TemplatePublishDialog.d.ts +0 -13
- package/dist/components/TemplatePublishDialog.vue.d.ts +0 -12
- package/dist/views/dev/components/TemplatePublishDialogTest.vue.d.ts +0 -2
|
@@ -1,81 +1,82 @@
|
|
|
1
|
-
import { defineComponent as Y, mergeModels as Oe, useModel as Se, onMounted as fe, ref as M, computed as z, resolveComponent as E, openBlock as
|
|
1
|
+
import { defineComponent as Y, mergeModels as Oe, useModel as Se, onMounted as fe, ref as M, computed as z, resolveComponent as E, openBlock as S, createElementBlock as V, createElementVNode as a, toDisplayString as j, unref as I, createVNode as x, createBlock as X, withCtx as R, Fragment as J, renderList as $, normalizeClass as Z, normalizeStyle as je, createSlots as oe, createCommentVNode as _, withModifiers as Te, reactive as pe, watch as ve, isRef as se, Teleport as ue, h as D, createTextVNode as q, watchEffect as ze } from "vue";
|
|
2
2
|
import { E as He } from "./empty-placeholder-wf6-BWE8.js";
|
|
3
|
-
import {
|
|
4
|
-
import { useDialogChild as qe, useDialog as
|
|
5
|
-
import { useI18n as
|
|
6
|
-
import { a as Ze, b as
|
|
7
|
-
import {
|
|
3
|
+
import { aZ as _e, aN as Xe, f as ee, u as W, a_ as Ue, b as le, j as Qe, aW as ge, al as ye, ay as Ae, a as be, a2 as Ye, Q as G, $ as we, a$ as ke, aE as Be, aR as Ce, s as Ee, y as Fe, a0 as re, c as Le, _ as Je, C as Ke } from "./app-uQHV9FP_.js";
|
|
4
|
+
import { useDialogChild as qe, useDialog as ce, useProxiedModel as ae, useSnackbar as te, useBreakpoints as Ve, components as ne } from "@feedmepos/ui-library";
|
|
5
|
+
import { useI18n as P, useCoreStore as ie } from "@feedmepos/mf-common";
|
|
6
|
+
import { a as Ze, b as Pe, c as Ge, u as We } from "./index-D_mBZNHv.js";
|
|
7
|
+
import { u as de } from "./vue-i18n-4cOdM_m_.js";
|
|
8
|
+
import { _ as $e, F as et } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-DjryjX5D.js";
|
|
8
9
|
const tt = "data:image/svg+xml,%3csvg%20width='200'%20height='101'%20viewBox='0%200%20200%20101'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M98.9161%2038.4456V24.1772H108.527V27.1988H102.12V30.2202H107.347V32.7382H102.12V38.4456H98.9161Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.382%2031.2276C110.382%2027.5345%20113.249%2024.1772%20117.127%2024.1772C121.174%2024.1772%20123.872%2027.7024%20123.872%2031.3953C123.872%2035.0884%20121.005%2038.6133%20117.127%2038.6133C113.08%2038.4456%20110.382%2034.9204%20110.382%2031.2276ZM117.127%2035.5919C119.487%2035.5919%20120.499%2033.4096%20120.499%2031.2276C120.499%2029.0452%20119.319%2027.0309%20117.127%2027.0309C114.935%2027.0309%20113.754%2029.213%20113.754%2031.2276C113.754%2033.5776%20114.935%2035.5919%20117.127%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M126.232%2031.2276C126.232%2027.5345%20129.099%2024.1772%20132.977%2024.1772C137.024%2024.1772%20139.722%2027.7024%20139.722%2031.3953C139.722%2035.0884%20136.855%2038.6133%20132.977%2038.6133C128.93%2038.4456%20126.232%2034.9204%20126.232%2031.2276ZM132.977%2035.5919C135.337%2035.5919%20136.349%2033.4096%20136.349%2031.2276C136.349%2029.0452%20135.169%2027.0309%20132.977%2027.0309C130.785%2027.0309%20129.604%2029.213%20129.604%2031.2276C129.604%2033.5776%20130.785%2035.5919%20132.977%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M142.926%2038.4455V24.345H148.153C152.874%2024.345%20155.235%2027.5343%20155.235%2031.3952C155.235%2035.5918%20152.368%2038.4455%20148.153%2038.4455H142.926ZM148.153%2027.0308H146.129V35.4238H148.153C150.513%2035.4238%20151.862%2033.5775%20151.862%2031.2272C151.862%2028.8773%20150.513%2027.0308%20148.153%2027.0308Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.045%2057.5607V49.1676L107.009%2055.2107H105.324L102.12%2049.1676V57.5607H98.9161V43.4604H102.457L106.167%2050.8465L109.876%2043.4604H113.417V57.5607H110.045Z'%20fill='%235D5359'/%3e%3cpath%20d='M115.947%2057.5607L121.342%2043.4604H124.04L129.436%2057.5607H125.895L124.715%2054.3716H120.331L119.319%2057.5607H115.947ZM122.691%2046.9856L121.005%2052.1893H124.378L122.691%2046.9856Z'%20fill='%235D5359'/%3e%3cpath%20d='M131.965%2057.5607V43.4604H138.373C141.07%2043.4604%20142.925%2045.8105%20142.925%2048.1605C142.925%2049.8393%20142.082%2051.5179%20140.565%2052.1893L143.768%2057.393H140.059L137.192%2052.8607H135V57.393H131.965V57.5607ZM135.169%2050.175H138.204C139.047%2050.175%20139.553%2049.3356%20139.553%2048.1605C139.553%2046.9856%20138.71%2046.3142%20138.035%2046.3142H135.169V50.175Z'%20fill='%235D5359'/%3e%3cpath%20d='M146.635%2057.5607V43.4604H150.007V49.8393L155.403%2043.4604H158.776L153.548%2049.6713L159.281%2057.5607H155.74L151.693%2051.5179L150.007%2053.3642V57.5607H146.635Z'%20fill='%235D5359'/%3e%3cpath%20d='M171.422%2054.7073V57.5607H161.474V43.4604H171.253V46.3142H164.677V48.9999H170.242V51.6856H164.677V54.7073H171.422Z'%20fill='%235D5359'/%3e%3cpath%20d='M185.417%2046.3142H181.202V57.5607H177.829V46.3142H173.614V43.4604H185.417V46.3142Z'%20fill='%235D5359'/%3e%3cpath%20d='M111.057%2062.5967V76.6973H107.853V70.9898H102.12V76.6973H98.9161V62.5967H102.12V68.1361H107.853V62.5967H111.057Z'%20fill='%235D5359'/%3e%3cpath%20d='M124.04%2069.815V62.5967H127.244V69.815C127.244%2073.6758%20125.389%2076.865%20121.005%2076.865C116.453%2076.865%20114.766%2073.5078%20114.766%2069.815V62.5967H117.97V69.815C117.97%2071.997%20118.813%2074.0115%20121.005%2074.0115C123.366%2074.0115%20124.04%2071.997%20124.04%2069.815Z'%20fill='%235D5359'/%3e%3cpath%20d='M138.036%2076.6973H131.122V62.5967H139.047C141.071%2062.5967%20142.251%2064.4433%20142.251%2066.2898C142.251%2067.6327%20141.576%2068.9755%20140.228%2069.4793C141.914%2069.9827%20142.926%2071.1578%20142.926%2073.1721C142.757%2075.5221%20140.733%2076.6973%20138.036%2076.6973ZM134.326%2065.4504V68.3041H137.53C138.204%2068.3041%20138.879%2067.8004%20138.879%2066.7933C138.879%2065.7861%20138.373%2065.2827%20137.698%2065.2827H134.326V65.4504ZM138.204%2070.8221H134.494V73.8435H138.204C139.047%2073.8435%20139.722%2073.1721%20139.722%2072.3327C139.553%2071.6613%20138.879%2070.8221%20138.204%2070.8221Z'%20fill='%235D5359'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M73.4753%2051.4994C78.7281%2050.5396%2082.8911%2046.4891%2083.9954%2041.3137L84.1232%2040.7134L83.9445%2040.1256C80.5804%2029.066%2071.9945%2020.2704%2061.0373%2016.5726C57.4%2015.3451%2053.5046%2014.6804%2049.458%2014.6804C45.4112%2014.6804%2041.5158%2015.3451%2037.8784%2016.5726C26.9214%2020.2704%2018.3354%2029.066%2014.9712%2040.1256L14.7924%2040.7134L14.9206%2041.3137C16.0247%2046.4891%2020.1875%2050.5396%2025.4405%2051.4994V58.8839H14.4183C14.6758%2059.9557%2014.9818%2061.0088%2015.3337%2062.0411C20.1553%2076.1811%2033.6083%2086.3619%2049.458%2086.3619C65.3074%2086.3619%2078.7606%2076.1811%2083.5822%2062.0411C83.9342%2061.0088%2084.2399%2059.9557%2084.4974%2058.8839H73.4753V51.4994ZM41.0517%2020.5973V38.5742C41.0517%2043.1931%2044.8155%2046.9371%2049.458%2046.9371C54.1005%2046.9371%2057.8641%2043.1931%2057.8641%2038.5742V20.5973C55.1919%2019.856%2052.3732%2019.4592%2049.458%2019.4592C46.5428%2019.4592%2043.7241%2019.856%2041.0517%2020.5973ZM62.6675%2022.3673V38.5742C62.6675%2043.1931%2066.431%2046.9371%2071.0735%2046.9371C74.9051%2046.9371%2078.1425%2044.3848%2079.1528%2040.8942C76.4672%2032.6902%2070.4379%2025.9824%2062.6675%2022.3673ZM60.2658%2046.1322C57.8753%2049.5094%2053.9255%2051.7159%2049.458%2051.7159C44.9902%2051.7159%2041.0408%2049.5094%2038.65%2046.1322C36.6982%2048.8894%2033.7074%2050.8662%2030.2439%2051.4994V58.8839H68.6718V51.4994C65.2083%2050.8662%2062.2175%2048.8894%2060.2658%2046.1322ZM21.1583%2063.6628C26.1349%2074.2514%2036.9382%2081.5834%2049.458%2081.5834C61.9776%2081.5834%2072.781%2074.2514%2077.7574%2063.6628H21.1583ZM36.2482%2038.5742V22.3673C28.4779%2025.9824%2022.4486%2032.6902%2019.7631%2040.8942C20.7733%2044.3848%2024.0106%2046.9371%2027.8422%2046.9371C32.4847%2046.9371%2036.2482%2043.1931%2036.2482%2038.5742Z'%20fill='%23FFC35D'/%3e%3c/svg%3e";
|
|
9
10
|
var Ne = { exports: {} };
|
|
10
|
-
(function(F,
|
|
11
|
+
(function(F, y) {
|
|
11
12
|
(function() {
|
|
12
13
|
var s = {};
|
|
13
|
-
F.exports = s, s.simpleFilter = function(
|
|
14
|
+
F.exports = s, s.simpleFilter = function(u, n) {
|
|
14
15
|
return n.filter(function(t) {
|
|
15
|
-
return s.test(
|
|
16
|
+
return s.test(u, t);
|
|
16
17
|
});
|
|
17
|
-
}, s.test = function(
|
|
18
|
-
return s.match(
|
|
19
|
-
}, s.match = function(
|
|
18
|
+
}, s.test = function(u, n) {
|
|
19
|
+
return s.match(u, n) !== null;
|
|
20
|
+
}, s.match = function(u, n, t) {
|
|
20
21
|
t = t || {};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
for (var k = 0; k <
|
|
24
|
-
C = n[k], h[k] === i
|
|
25
|
-
return
|
|
26
|
-
}, s.filter = function(
|
|
27
|
-
return !n || n.length === 0 ? [] : typeof
|
|
28
|
-
var
|
|
29
|
-
t.extract && (
|
|
30
|
-
var l = s.match(
|
|
31
|
-
return l != null && (
|
|
22
|
+
var i = 0, b = [], w = n.length, g = 0, m = 0, l = t.pre || "", r = t.post || "", h = t.caseSensitive && n || n.toLowerCase(), C;
|
|
23
|
+
u = t.caseSensitive && u || u.toLowerCase();
|
|
24
|
+
for (var k = 0; k < w; k++)
|
|
25
|
+
C = n[k], h[k] === u[i] ? (C = l + C + r, i += 1, m += 1 + m) : m = 0, g += m, b[b.length] = C;
|
|
26
|
+
return i === u.length ? (g = h === u ? 1 / 0 : g, { rendered: b.join(""), score: g }) : null;
|
|
27
|
+
}, s.filter = function(u, n, t) {
|
|
28
|
+
return !n || n.length === 0 ? [] : typeof u != "string" ? n : (t = t || {}, n.reduce(function(i, b, w, g) {
|
|
29
|
+
var m = b;
|
|
30
|
+
t.extract && (m = t.extract(b));
|
|
31
|
+
var l = s.match(u, m, t);
|
|
32
|
+
return l != null && (i[i.length] = {
|
|
32
33
|
string: l.rendered,
|
|
33
34
|
score: l.score,
|
|
34
|
-
index:
|
|
35
|
+
index: w,
|
|
35
36
|
original: b
|
|
36
|
-
}),
|
|
37
|
-
}, []).sort(function(
|
|
38
|
-
var
|
|
39
|
-
return
|
|
37
|
+
}), i;
|
|
38
|
+
}, []).sort(function(i, b) {
|
|
39
|
+
var w = b.score - i.score;
|
|
40
|
+
return w || i.index - b.index;
|
|
40
41
|
}));
|
|
41
42
|
};
|
|
42
43
|
})();
|
|
43
44
|
})(Ne);
|
|
44
45
|
var nt = Ne.exports;
|
|
45
46
|
const De = /* @__PURE__ */ _e(nt);
|
|
46
|
-
function he(F,
|
|
47
|
-
return De.filter(F,
|
|
47
|
+
function he(F, y) {
|
|
48
|
+
return De.filter(F, y).length > 0;
|
|
48
49
|
}
|
|
49
|
-
function ot(F,
|
|
50
|
+
function ot(F, y) {
|
|
50
51
|
if (!F)
|
|
51
52
|
return {
|
|
52
|
-
label:
|
|
53
|
+
label: y,
|
|
53
54
|
segments: [
|
|
54
55
|
{
|
|
55
56
|
isMatch: !1,
|
|
56
|
-
segment:
|
|
57
|
+
segment: y
|
|
57
58
|
}
|
|
58
59
|
],
|
|
59
60
|
matched: !1
|
|
60
61
|
};
|
|
61
|
-
const [s] = De.filter(F.toLocaleLowerCase(), [
|
|
62
|
+
const [s] = De.filter(F.toLocaleLowerCase(), [y], {
|
|
62
63
|
pre: "|",
|
|
63
64
|
post: "|"
|
|
64
65
|
});
|
|
65
66
|
if (!s)
|
|
66
67
|
return {
|
|
67
|
-
label:
|
|
68
|
-
segments: [{ segment:
|
|
68
|
+
label: y,
|
|
69
|
+
segments: [{ segment: y, isMatch: !1 }],
|
|
69
70
|
matched: !1
|
|
70
71
|
};
|
|
71
|
-
const
|
|
72
|
+
const u = s.string.toString().replace(/\|\|/g, "").split("|").reduce((n, t, i) => (n.push({
|
|
72
73
|
segment: t,
|
|
73
|
-
isMatch:
|
|
74
|
+
isMatch: i % 2 !== 0
|
|
74
75
|
//e.g. index 1, 3, 5, ...
|
|
75
76
|
}), n), new Array());
|
|
76
77
|
return {
|
|
77
|
-
label:
|
|
78
|
-
segments:
|
|
78
|
+
label: y,
|
|
79
|
+
segments: u,
|
|
79
80
|
matched: !0
|
|
80
81
|
};
|
|
81
82
|
}
|
|
@@ -101,36 +102,36 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
101
102
|
}),
|
|
102
103
|
emits: ["update:modelValue"],
|
|
103
104
|
setup(F) {
|
|
104
|
-
const
|
|
105
|
+
const y = Se(F, "modelValue"), s = qe();
|
|
105
106
|
fe(() => {
|
|
106
|
-
s.emitData(
|
|
107
|
+
s.emitData(y.value);
|
|
107
108
|
});
|
|
108
|
-
const
|
|
109
|
+
const u = M(""), { t: n } = P();
|
|
109
110
|
function t(e) {
|
|
110
111
|
return he(
|
|
111
|
-
|
|
112
|
+
u.value,
|
|
112
113
|
e.sublabel ? [e.label, e.sublabel] : [e.label]
|
|
113
114
|
);
|
|
114
115
|
}
|
|
115
|
-
function
|
|
116
|
-
return t(e) ? !0 : K(e) ? e.children.some(
|
|
116
|
+
function i(e) {
|
|
117
|
+
return t(e) ? !0 : K(e) ? e.children.some(i) : !1;
|
|
117
118
|
}
|
|
118
119
|
function b(e, o) {
|
|
119
|
-
if (!
|
|
120
|
+
if (!u.value)
|
|
120
121
|
return !0;
|
|
121
122
|
const [B, ...L] = e;
|
|
122
123
|
if (typeof B != "number")
|
|
123
124
|
return !1;
|
|
124
125
|
const N = o[B];
|
|
125
126
|
return he(
|
|
126
|
-
|
|
127
|
+
u.value,
|
|
127
128
|
N.sublabel ? [N.label, N.sublabel] : [N.label]
|
|
128
|
-
) ? !0 : L.length === 0 ?
|
|
129
|
+
) ? !0 : L.length === 0 ? i(N) : K(N) ? b(L, N.children) : !1;
|
|
129
130
|
}
|
|
130
|
-
function
|
|
131
|
+
function w(e, o, B = 0, L = !1) {
|
|
131
132
|
if (K(e) && e.children.length) {
|
|
132
133
|
const { children: N, ...H } = e, U = N.flatMap(
|
|
133
|
-
(O, T) =>
|
|
134
|
+
(O, T) => w(O, [...o, T], B + 1, L || e.disabled)
|
|
134
135
|
);
|
|
135
136
|
return [
|
|
136
137
|
{
|
|
@@ -153,16 +154,16 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
153
154
|
}
|
|
154
155
|
];
|
|
155
156
|
}
|
|
156
|
-
const
|
|
157
|
-
(e, o) =>
|
|
157
|
+
const g = z(() => y.value.flatMap(
|
|
158
|
+
(e, o) => w(e, [o]).filter((B) => b(B.keys, y.value))
|
|
158
159
|
));
|
|
159
|
-
function
|
|
160
|
+
function m(e) {
|
|
160
161
|
if (K(e)) {
|
|
161
|
-
if (
|
|
162
|
-
const o = t(e) ? e.children : e.children.filter(
|
|
163
|
-
return o.length === 0 ? !1 : o.every(
|
|
162
|
+
if (i(e)) {
|
|
163
|
+
const o = t(e) ? e.children : e.children.filter(i);
|
|
164
|
+
return o.length === 0 ? !1 : o.every(m);
|
|
164
165
|
}
|
|
165
|
-
return e.children.every(
|
|
166
|
+
return e.children.every(m);
|
|
166
167
|
}
|
|
167
168
|
return e.active ?? !1;
|
|
168
169
|
}
|
|
@@ -171,13 +172,13 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
171
172
|
if (typeof B != "number")
|
|
172
173
|
return !1;
|
|
173
174
|
const N = o[B];
|
|
174
|
-
return L.length === 0 ?
|
|
175
|
+
return L.length === 0 ? m(N ?? []) : K(N) ? l(L, N.children ?? []) : !1;
|
|
175
176
|
}
|
|
176
177
|
function r(e) {
|
|
177
178
|
if (K(e)) {
|
|
178
|
-
if (
|
|
179
|
-
const o = t(e) ? e.children : e.children.filter(
|
|
180
|
-
return o.length === 0 ? !1 : o.some(
|
|
179
|
+
if (i(e)) {
|
|
180
|
+
const o = t(e) ? e.children : e.children.filter(i);
|
|
181
|
+
return o.length === 0 ? !1 : o.some(m) && !o.every(m);
|
|
181
182
|
}
|
|
182
183
|
return !1;
|
|
183
184
|
}
|
|
@@ -194,8 +195,8 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
194
195
|
if (e.disabled)
|
|
195
196
|
return e;
|
|
196
197
|
if (K(e)) {
|
|
197
|
-
if (
|
|
198
|
-
const B = t(e) ? e.children : e.children.filter(
|
|
198
|
+
if (i(e)) {
|
|
199
|
+
const B = t(e) ? e.children : e.children.filter(i);
|
|
199
200
|
return {
|
|
200
201
|
...e,
|
|
201
202
|
children: e.children.map((L) => B.find((H) => Xe(H.value, L.value)) ? C(L, o) : L)
|
|
@@ -220,44 +221,44 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
220
221
|
} : H
|
|
221
222
|
);
|
|
222
223
|
}
|
|
223
|
-
const
|
|
224
|
-
function
|
|
224
|
+
const v = M(new Array());
|
|
225
|
+
function f(e) {
|
|
225
226
|
const o = e.join();
|
|
226
|
-
return
|
|
227
|
+
return v.value.find((B) => o === B);
|
|
227
228
|
}
|
|
228
229
|
function d(e) {
|
|
229
230
|
const o = e.join();
|
|
230
|
-
|
|
231
|
+
f(e) ? v.value = v.value.filter((B) => B !== o) : v.value = [...v.value, o];
|
|
231
232
|
}
|
|
232
233
|
function c(e) {
|
|
233
234
|
const o = e.join();
|
|
234
|
-
return
|
|
235
|
+
return v.value.find((B) => o.startsWith(B) && o !== B);
|
|
235
236
|
}
|
|
236
237
|
const A = z(
|
|
237
|
-
() =>
|
|
238
|
+
() => g.value.filter((e) => b(e.keys, y.value) && e.active).length
|
|
238
239
|
);
|
|
239
|
-
function
|
|
240
|
-
|
|
240
|
+
function p(e, o, B) {
|
|
241
|
+
y.value = k(e, o, B), s.emitData(y.value);
|
|
241
242
|
}
|
|
242
243
|
return (e, o) => {
|
|
243
244
|
const B = E("FmSearch"), L = E("FmCheckbox"), N = E("FmButton"), H = E("FmListItem"), U = E("FmList");
|
|
244
|
-
return
|
|
245
|
+
return S(), V("div", st, [
|
|
245
246
|
a("div", at, [
|
|
246
247
|
a("div", lt, j(I(n)("inventory.formField.itemsSelected", { count: A.value })), 1),
|
|
247
248
|
a("div", it, [
|
|
248
249
|
x(B, {
|
|
249
|
-
modelValue:
|
|
250
|
-
"onUpdate:modelValue": o[0] || (o[0] = (O) =>
|
|
250
|
+
modelValue: u.value,
|
|
251
|
+
"onUpdate:modelValue": o[0] || (o[0] = (O) => u.value = O),
|
|
251
252
|
placeholder: I(n)("inventory.formField.filterItems")
|
|
252
253
|
}, null, 8, ["modelValue", "placeholder"])
|
|
253
254
|
])
|
|
254
255
|
]),
|
|
255
|
-
|
|
256
|
+
g.value.length ? (S(), X(U, {
|
|
256
257
|
key: 0,
|
|
257
258
|
class: "flex-1 overflow-y-auto"
|
|
258
259
|
}, {
|
|
259
260
|
default: R(() => [
|
|
260
|
-
(
|
|
261
|
+
(S(!0), V(J, null, $(g.value, (O) => (S(), V("div", {
|
|
261
262
|
key: O.keys.join(),
|
|
262
263
|
class: Z([
|
|
263
264
|
"transition-all overflow-y-clip",
|
|
@@ -267,7 +268,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
267
268
|
}, [
|
|
268
269
|
x(H, {
|
|
269
270
|
clickable: O.selectable !== !1,
|
|
270
|
-
onClick: () => O.selectable === !1 || O.disabled ||
|
|
271
|
+
onClick: () => O.selectable === !1 || O.disabled || p(O.keys, y.value, !l(O.keys, y.value)),
|
|
271
272
|
style: je({
|
|
272
273
|
paddingLeft: `${16 + O.indent * 16}px`,
|
|
273
274
|
paddingTop: "4px",
|
|
@@ -278,14 +279,14 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
278
279
|
default: R(() => [
|
|
279
280
|
a("div", ut, [
|
|
280
281
|
a("div", ct, [
|
|
281
|
-
(
|
|
282
|
+
(S(!0), V(J, null, $(I(ot)(u.value, O.label).segments, (T, Q) => (S(), V("span", {
|
|
282
283
|
key: Q,
|
|
283
284
|
class: Z({
|
|
284
285
|
"font-bold": T.isMatch
|
|
285
286
|
})
|
|
286
287
|
}, j(T.segment), 3))), 128))
|
|
287
288
|
]),
|
|
288
|
-
O.sublabel ? (
|
|
289
|
+
O.sublabel ? (S(), V("div", {
|
|
289
290
|
key: 0,
|
|
290
291
|
class: Z([
|
|
291
292
|
"fm-typo-en-body-sm-400",
|
|
@@ -301,9 +302,9 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
301
302
|
fn: R(() => [
|
|
302
303
|
x(L, {
|
|
303
304
|
disabled: O.disabled,
|
|
304
|
-
"model-value": l(O.keys,
|
|
305
|
+
"model-value": l(O.keys, y.value),
|
|
305
306
|
value: O.keys,
|
|
306
|
-
indeterminate: h(O.keys,
|
|
307
|
+
indeterminate: h(O.keys, y.value)
|
|
307
308
|
}, null, 8, ["disabled", "model-value", "value", "indeterminate"])
|
|
308
309
|
]),
|
|
309
310
|
key: "0"
|
|
@@ -312,7 +313,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
312
313
|
name: "append",
|
|
313
314
|
fn: R(() => [
|
|
314
315
|
x(N, {
|
|
315
|
-
"prepend-icon":
|
|
316
|
+
"prepend-icon": f(O.keys) ? "expand_less" : "expand_more",
|
|
316
317
|
size: "md",
|
|
317
318
|
variant: "tertiary",
|
|
318
319
|
onClick: Te(() => d(O.keys), ["stop"])
|
|
@@ -324,7 +325,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
324
325
|
], 10, rt))), 128))
|
|
325
326
|
]),
|
|
326
327
|
_: 1
|
|
327
|
-
})) : (
|
|
328
|
+
})) : (S(), V("div", dt, j(I(n)("inventory.formField.noItemsFound")), 1))
|
|
328
329
|
]);
|
|
329
330
|
};
|
|
330
331
|
}
|
|
@@ -354,8 +355,8 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
354
355
|
}
|
|
355
356
|
},
|
|
356
357
|
emits: ["update:modifiers"],
|
|
357
|
-
setup(F, { emit:
|
|
358
|
-
const s = F,
|
|
358
|
+
setup(F, { emit: y }) {
|
|
359
|
+
const s = F, u = y, n = ce(), t = z(() => {
|
|
359
360
|
const l = s.groups.flatMap((r) => r.items.map((h) => {
|
|
360
361
|
const C = s.items.find((k) => k._id === h._id);
|
|
361
362
|
return {
|
|
@@ -365,25 +366,25 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
365
366
|
};
|
|
366
367
|
}));
|
|
367
368
|
return s.modifiers.map((r) => {
|
|
368
|
-
const h = l.find((
|
|
369
|
+
const h = l.find((v) => v.selection === r.selection), C = (h == null ? void 0 : h.name) ?? "-", k = (h == null ? void 0 : h.groupName) ?? "";
|
|
369
370
|
return {
|
|
370
371
|
...r,
|
|
371
372
|
name: C,
|
|
372
373
|
groupName: k
|
|
373
374
|
};
|
|
374
375
|
});
|
|
375
|
-
}),
|
|
376
|
+
}), i = z(() => s.groups.flatMap((l) => l.items.map((r) => ({ ...r, groupId: l._id }))));
|
|
376
377
|
function b({ selection: l }) {
|
|
377
|
-
|
|
378
|
+
u(
|
|
378
379
|
"update:modifiers",
|
|
379
380
|
s.modifiers.filter((r) => r.selection !== l)
|
|
380
381
|
);
|
|
381
382
|
}
|
|
382
|
-
function
|
|
383
|
+
function w({ selection: l }, r) {
|
|
383
384
|
const h = s.modifiers.find((C) => C.selection === l);
|
|
384
385
|
h && (h.code = r);
|
|
385
386
|
}
|
|
386
|
-
function
|
|
387
|
+
function g() {
|
|
387
388
|
let l = [];
|
|
388
389
|
s.groups.forEach((h) => {
|
|
389
390
|
let C = !1;
|
|
@@ -392,18 +393,18 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
392
393
|
sublabel: "Group",
|
|
393
394
|
value: h._id,
|
|
394
395
|
disabled: C,
|
|
395
|
-
children: h.items.reduce((k,
|
|
396
|
+
children: h.items.reduce((k, v) => {
|
|
396
397
|
var c;
|
|
397
|
-
const
|
|
398
|
-
(A) => A.combinationKey === (
|
|
398
|
+
const f = s.items.find((A) => A._id === v._id), d = (c = f == null ? void 0 : f.variant) == null ? void 0 : c.variantCombinations.find(
|
|
399
|
+
(A) => A.combinationKey === (v == null ? void 0 : v.combinationKey)
|
|
399
400
|
);
|
|
400
401
|
return [
|
|
401
402
|
...k,
|
|
402
403
|
{
|
|
403
|
-
label: `${
|
|
404
|
-
value: `${
|
|
404
|
+
label: `${v.name ?? (f == null ? void 0 : f.name)} ${d ? `(${d.name})` : ""}`,
|
|
405
|
+
value: `${v.selection}${d ? `/${d == null ? void 0 : d.combinationKey}` : ""}`,
|
|
405
406
|
disabled: C,
|
|
406
|
-
active: !!s.modifiers.find(({ selection: A }) => A ===
|
|
407
|
+
active: !!s.modifiers.find(({ selection: A }) => A === v.selection)
|
|
407
408
|
}
|
|
408
409
|
];
|
|
409
410
|
}, [])
|
|
@@ -423,61 +424,61 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
423
424
|
}).onPrimary((h) => {
|
|
424
425
|
const C = ee(s.modifiers);
|
|
425
426
|
let k = [];
|
|
426
|
-
function
|
|
427
|
-
if (d(
|
|
428
|
-
for (let c of
|
|
429
|
-
|
|
427
|
+
function v(f, d) {
|
|
428
|
+
if (d(f), K(f))
|
|
429
|
+
for (let c of f.children)
|
|
430
|
+
v(c, d);
|
|
430
431
|
}
|
|
431
|
-
h.forEach((
|
|
432
|
-
|
|
432
|
+
h.forEach((f) => {
|
|
433
|
+
v(f, (d) => {
|
|
433
434
|
var e;
|
|
434
435
|
if (s.groups.find(({ _id: o }) => o === d.value)) return;
|
|
435
|
-
const A =
|
|
436
|
-
!K(d) && d.active &&
|
|
436
|
+
const A = i.value.find(({ selection: o }) => o === d.value), p = k.find(({ selection: o }) => d.value === o);
|
|
437
|
+
!K(d) && d.active && p === void 0 && k.push({
|
|
437
438
|
addonGroupId: (A == null ? void 0 : A.groupId) ?? "",
|
|
438
439
|
selection: d.value,
|
|
439
440
|
code: ((e = C.find(({ selection: o }) => d.value === o)) == null ? void 0 : e.code) ?? ""
|
|
440
441
|
});
|
|
441
442
|
});
|
|
442
|
-
}),
|
|
443
|
+
}), u("update:modifiers", k);
|
|
443
444
|
});
|
|
444
445
|
}
|
|
445
|
-
const { t:
|
|
446
|
+
const { t: m } = P();
|
|
446
447
|
return (l, r) => {
|
|
447
448
|
const h = E("FmButton"), C = E("FmTextField");
|
|
448
|
-
return
|
|
449
|
+
return S(), V("div", mt, [
|
|
449
450
|
a("div", ft, [
|
|
450
|
-
a("div", pt, j(I(
|
|
451
|
+
a("div", pt, j(I(m)("inventory.integration.apply.addons")), 1),
|
|
451
452
|
x(h, {
|
|
452
453
|
type: "button",
|
|
453
454
|
variant: "plain",
|
|
454
455
|
size: "md",
|
|
455
456
|
icon: "link",
|
|
456
|
-
label: I(
|
|
457
|
-
onClick: r[0] || (r[0] = (k) =>
|
|
457
|
+
label: I(m)("inventory.integration.apply.applyAddon"),
|
|
458
|
+
onClick: r[0] || (r[0] = (k) => g())
|
|
458
459
|
}, null, 8, ["label"])
|
|
459
460
|
]),
|
|
460
461
|
a("div", null, [
|
|
461
|
-
t.value.length > 0 ? (
|
|
462
|
+
t.value.length > 0 ? (S(), V("table", vt, [
|
|
462
463
|
a("tr", gt, [
|
|
463
|
-
a("th", yt, j(I(
|
|
464
|
-
a("th", null, j(I(
|
|
464
|
+
a("th", yt, j(I(m)("inventory.integration.apply.name")), 1),
|
|
465
|
+
a("th", null, j(I(m)("inventory.integration.apply.code")), 1),
|
|
465
466
|
r[1] || (r[1] = a("th", { class: "w-1" }, " ", -1))
|
|
466
467
|
]),
|
|
467
|
-
(
|
|
468
|
+
(S(!0), V(J, null, $(t.value, (k, v) => (S(), V(J, { key: v }, [
|
|
468
469
|
r[2] || (r[2] = a("tr", { class: "block h-8" }, null, -1)),
|
|
469
470
|
a("tr", null, [
|
|
470
471
|
a("td", null, [
|
|
471
472
|
a("div", At, [
|
|
472
473
|
a("div", bt, j(k.name), 1),
|
|
473
|
-
k.groupName ? (
|
|
474
|
+
k.groupName ? (S(), V("div", ht, j(k.groupName), 1)) : _("", !0)
|
|
474
475
|
])
|
|
475
476
|
]),
|
|
476
477
|
a("td", null, [
|
|
477
478
|
x(C, {
|
|
478
479
|
disabled: F.loading,
|
|
479
480
|
"model-value": k.code,
|
|
480
|
-
"onUpdate:modelValue": [(
|
|
481
|
+
"onUpdate:modelValue": [(f) => k.code = f, (f) => w(k, f)],
|
|
481
482
|
rules: [
|
|
482
483
|
function(d) {
|
|
483
484
|
return !!d || "Required";
|
|
@@ -493,7 +494,7 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
493
494
|
icon: "delete",
|
|
494
495
|
"icon-color": "#000000",
|
|
495
496
|
size: "md",
|
|
496
|
-
onClick: (
|
|
497
|
+
onClick: (f) => b(k)
|
|
497
498
|
}, null, 8, ["disabled", "onClick"])
|
|
498
499
|
])
|
|
499
500
|
])
|
|
@@ -504,64 +505,64 @@ const st = { class: "flex flex-col gap-12 h-[350px]" }, at = { class: "flex item
|
|
|
504
505
|
};
|
|
505
506
|
}
|
|
506
507
|
});
|
|
507
|
-
function St(F,
|
|
508
|
-
const s =
|
|
508
|
+
function St(F, y = []) {
|
|
509
|
+
const s = y.map((n) => F.find((t) => t._id === n)).filter((n) => !!n);
|
|
509
510
|
return kt(s).reduce((n, t) => (n[t.combinationKey] = t.selectionName.join(" / "), n), {});
|
|
510
511
|
}
|
|
511
|
-
function wt(F,
|
|
512
|
-
const
|
|
513
|
-
var
|
|
514
|
-
const b =
|
|
515
|
-
...
|
|
516
|
-
codeName: [
|
|
512
|
+
function wt(F, y, s) {
|
|
513
|
+
const u = s.reduce((t, i) => {
|
|
514
|
+
var m, l, r;
|
|
515
|
+
const b = i.category || "", w = St(y, (m = i.variant) == null ? void 0 : m.variantGroupIds), g = {
|
|
516
|
+
...i,
|
|
517
|
+
codeName: [i.code, i.name].filter((h) => !!h).join(" "),
|
|
517
518
|
variant: {
|
|
518
|
-
variantGroupIds: ((l =
|
|
519
|
-
variantCombinations: (((r =
|
|
520
|
-
const C = h.code, k = h.name ||
|
|
519
|
+
variantGroupIds: ((l = i.variant) == null ? void 0 : l.variantGroupIds) || [],
|
|
520
|
+
variantCombinations: (((r = i.variant) == null ? void 0 : r.variantCombinations) || []).map((h) => {
|
|
521
|
+
const C = h.code, k = h.name || w[h.combinationKey || ""];
|
|
521
522
|
return {
|
|
522
523
|
...h,
|
|
523
|
-
codeName: [C, k].filter((
|
|
524
|
+
codeName: [C, k].filter((v) => !!v).join(" ").trim() || "-"
|
|
524
525
|
};
|
|
525
526
|
})
|
|
526
527
|
}
|
|
527
528
|
};
|
|
528
|
-
return t[b] = t[b] ? [...t[b],
|
|
529
|
-
}, {}), n = Object.values(
|
|
529
|
+
return t[b] = t[b] ? [...t[b], g] : [g], t;
|
|
530
|
+
}, {}), n = Object.values(u)[0];
|
|
530
531
|
return F.length === 0 && n ? n.map((t) => ({
|
|
531
532
|
id: t._id,
|
|
532
533
|
name: t.name ?? "",
|
|
533
|
-
items:
|
|
534
|
+
items: u[t._id || ""] || []
|
|
534
535
|
})) || [] : F.map((t) => ({
|
|
535
536
|
id: t._id,
|
|
536
537
|
name: t.name ?? "",
|
|
537
|
-
items:
|
|
538
|
+
items: u[t._id || ""] || []
|
|
538
539
|
}));
|
|
539
540
|
}
|
|
540
|
-
function Me(F,
|
|
541
|
+
function Me(F, y) {
|
|
541
542
|
if (F.length == 1)
|
|
542
543
|
return F[0];
|
|
543
|
-
const s = F[0],
|
|
544
|
-
return s.reduce((
|
|
544
|
+
const s = F[0], u = F.slice(1, F.length), n = Me(u, y);
|
|
545
|
+
return s.reduce((i, b) => [...i, ...n.map((w) => y(b, w))], new Array());
|
|
545
546
|
}
|
|
546
547
|
function kt(F) {
|
|
547
548
|
if (F.length === 0) return [];
|
|
548
|
-
const
|
|
549
|
-
(
|
|
549
|
+
const y = F.map(
|
|
550
|
+
(u) => (u.options ?? []).map(
|
|
550
551
|
(n) => ({
|
|
551
|
-
combinationKey: [`${
|
|
552
|
+
combinationKey: [`${u._id}/${n._id}`],
|
|
552
553
|
selectionName: [n.name ?? ""]
|
|
553
554
|
})
|
|
554
555
|
)
|
|
555
556
|
);
|
|
556
|
-
return Me(
|
|
557
|
-
combinationKey: [...
|
|
558
|
-
selectionName: [...
|
|
559
|
-
})).map((
|
|
560
|
-
const n = [...
|
|
557
|
+
return Me(y, (u, n) => ({
|
|
558
|
+
combinationKey: [...u.combinationKey, ...n.combinationKey],
|
|
559
|
+
selectionName: [...u.selectionName, ...n.selectionName]
|
|
560
|
+
})).map((u) => {
|
|
561
|
+
const n = [...u.combinationKey];
|
|
561
562
|
return n.sort(), {
|
|
562
563
|
combinationKey: n.join("/"),
|
|
563
564
|
active: !0,
|
|
564
|
-
selectionName:
|
|
565
|
+
selectionName: u.selectionName
|
|
565
566
|
};
|
|
566
567
|
});
|
|
567
568
|
}
|
|
@@ -596,59 +597,59 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
596
597
|
}
|
|
597
598
|
},
|
|
598
599
|
emits: ["update:bindings"],
|
|
599
|
-
setup(F, { emit:
|
|
600
|
-
const s = F,
|
|
601
|
-
() => wt(
|
|
602
|
-
),
|
|
600
|
+
setup(F, { emit: y }) {
|
|
601
|
+
const s = F, u = y, n = ce(), t = z(() => s.isAddon ? "Addons" : "Products"), i = z(() => s.isAddon ? [] : s.categories), b = z(
|
|
602
|
+
() => wt(i.value, s.variants, s.menus)
|
|
603
|
+
), w = z(() => {
|
|
603
604
|
if (s.isAddon)
|
|
604
605
|
return s.bindings.map((d) => {
|
|
605
|
-
const c = s.menus.find((
|
|
606
|
+
const c = s.menus.find((p) => p._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
606
607
|
return {
|
|
607
608
|
...d,
|
|
608
609
|
name: A,
|
|
609
610
|
itemCode: (c == null ? void 0 : c.code) ?? "-"
|
|
610
611
|
};
|
|
611
612
|
});
|
|
612
|
-
const
|
|
613
|
+
const f = b.value.flatMap((d) => d.items);
|
|
613
614
|
return s.bindings.map((d) => {
|
|
614
615
|
var o;
|
|
615
|
-
const c =
|
|
616
|
-
let
|
|
616
|
+
const c = f.find((B) => B._id === d.productId), A = (c == null ? void 0 : c.name) ?? "-";
|
|
617
|
+
let p = (c == null ? void 0 : c.code) ?? "-", e;
|
|
617
618
|
if (d.combinationKey) {
|
|
618
619
|
const B = (((o = c == null ? void 0 : c.variant) == null ? void 0 : o.variantCombinations) || []).find(
|
|
619
620
|
(L) => L.combinationKey === d.combinationKey
|
|
620
621
|
);
|
|
621
|
-
e = (B == null ? void 0 : B.name) ?? (B == null ? void 0 : B.codeName) ?? "",
|
|
622
|
+
e = (B == null ? void 0 : B.name) ?? (B == null ? void 0 : B.codeName) ?? "", p = (B == null ? void 0 : B.code) ?? p;
|
|
622
623
|
}
|
|
623
624
|
return {
|
|
624
625
|
...d,
|
|
625
626
|
name: A,
|
|
626
|
-
itemCode:
|
|
627
|
+
itemCode: p,
|
|
627
628
|
variantName: e
|
|
628
629
|
};
|
|
629
630
|
});
|
|
630
631
|
});
|
|
631
|
-
function
|
|
632
|
-
|
|
632
|
+
function g(f) {
|
|
633
|
+
u(
|
|
633
634
|
"update:bindings",
|
|
634
635
|
s.bindings.filter(
|
|
635
|
-
(d) => d.productId !==
|
|
636
|
+
(d) => d.productId !== f.productId || d.combinationKey !== f.combinationKey
|
|
636
637
|
)
|
|
637
638
|
);
|
|
638
639
|
}
|
|
639
|
-
function
|
|
640
|
+
function m({ productId: f, combinationKey: d }, c) {
|
|
640
641
|
const A = s.bindings.find(
|
|
641
|
-
(
|
|
642
|
+
(p) => p.productId === f && p.combinationKey === d
|
|
642
643
|
);
|
|
643
644
|
A && (A.code = c);
|
|
644
645
|
}
|
|
645
646
|
function l() {
|
|
646
|
-
return b.value.map((
|
|
647
|
-
label:
|
|
647
|
+
return b.value.map((f) => ({
|
|
648
|
+
label: f.name,
|
|
648
649
|
sublabel: "Category",
|
|
649
|
-
value:
|
|
650
|
+
value: f.name,
|
|
650
651
|
disabled: !1,
|
|
651
|
-
children:
|
|
652
|
+
children: f.items.map((d) => {
|
|
652
653
|
var A;
|
|
653
654
|
const c = (A = d.variant) == null ? void 0 : A.variantCombinations;
|
|
654
655
|
return c != null && c.length ? {
|
|
@@ -662,18 +663,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
662
663
|
productId: d._id
|
|
663
664
|
},
|
|
664
665
|
active: !!s.bindings.find(
|
|
665
|
-
({ productId:
|
|
666
|
+
({ productId: p, combinationKey: e }) => d._id === p && !e
|
|
666
667
|
)
|
|
667
668
|
},
|
|
668
|
-
...c.map((
|
|
669
|
-
label:
|
|
669
|
+
...c.map((p) => ({
|
|
670
|
+
label: p.codeName ?? "",
|
|
670
671
|
value: {
|
|
671
672
|
productId: d._id,
|
|
672
|
-
combinationKey:
|
|
673
|
+
combinationKey: p.combinationKey
|
|
673
674
|
},
|
|
674
675
|
sublabel: "Variant",
|
|
675
676
|
active: !!s.bindings.find(
|
|
676
|
-
({ productId: e, combinationKey: o }) => d._id === e &&
|
|
677
|
+
({ productId: e, combinationKey: o }) => d._id === e && p.combinationKey === o
|
|
677
678
|
)
|
|
678
679
|
}))
|
|
679
680
|
]
|
|
@@ -683,24 +684,24 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
683
684
|
productId: d._id
|
|
684
685
|
},
|
|
685
686
|
active: !!s.bindings.find(
|
|
686
|
-
({ productId:
|
|
687
|
+
({ productId: p, combinationKey: e }) => d._id === p && !e
|
|
687
688
|
)
|
|
688
689
|
};
|
|
689
690
|
})
|
|
690
691
|
}));
|
|
691
692
|
}
|
|
692
693
|
function r() {
|
|
693
|
-
return s.menus.map((
|
|
694
|
-
label:
|
|
695
|
-
value: { productId:
|
|
694
|
+
return s.menus.map((f) => ({
|
|
695
|
+
label: f.name,
|
|
696
|
+
value: { productId: f._id },
|
|
696
697
|
active: !!s.bindings.find(
|
|
697
|
-
({ productId: d, combinationKey: c }) =>
|
|
698
|
+
({ productId: d, combinationKey: c }) => f._id === d && !c
|
|
698
699
|
)
|
|
699
700
|
}));
|
|
700
701
|
}
|
|
701
|
-
function h(
|
|
702
|
+
function h(f) {
|
|
702
703
|
const d = ee(s.bindings);
|
|
703
|
-
return
|
|
704
|
+
return f.flatMap((c) => c.children.flatMap((A) => {
|
|
704
705
|
var e;
|
|
705
706
|
if (K(A))
|
|
706
707
|
return A.children.filter((o) => o.active).map((o) => {
|
|
@@ -719,32 +720,32 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
719
720
|
});
|
|
720
721
|
if (!A.active)
|
|
721
722
|
return [];
|
|
722
|
-
const { productId:
|
|
723
|
+
const { productId: p } = A.value;
|
|
723
724
|
return [
|
|
724
725
|
{
|
|
725
|
-
productId:
|
|
726
|
-
code: ((e = d.find(({ productId: o, combinationKey: B }) =>
|
|
726
|
+
productId: p,
|
|
727
|
+
code: ((e = d.find(({ productId: o, combinationKey: B }) => p === o && !B)) == null ? void 0 : e.code) ?? ""
|
|
727
728
|
}
|
|
728
729
|
];
|
|
729
730
|
}));
|
|
730
731
|
}
|
|
731
|
-
function C(
|
|
732
|
+
function C(f) {
|
|
732
733
|
const d = ee(s.bindings);
|
|
733
|
-
return
|
|
734
|
+
return f.filter((c) => c.active).map(
|
|
734
735
|
(c) => {
|
|
735
736
|
var A;
|
|
736
737
|
return {
|
|
737
738
|
productId: c.value.productId,
|
|
738
|
-
code: ((A = d.find(({ productId:
|
|
739
|
+
code: ((A = d.find(({ productId: p }) => p === c.value.productId)) == null ? void 0 : A.code) ?? ""
|
|
739
740
|
};
|
|
740
741
|
}
|
|
741
742
|
);
|
|
742
743
|
}
|
|
743
744
|
function k() {
|
|
744
|
-
let
|
|
745
|
-
s.isAddon ?
|
|
745
|
+
let f;
|
|
746
|
+
s.isAddon ? f = r() : f = l();
|
|
746
747
|
const d = {
|
|
747
|
-
modelValue:
|
|
748
|
+
modelValue: f
|
|
748
749
|
};
|
|
749
750
|
n.open({
|
|
750
751
|
title: `Select ${t.value}`,
|
|
@@ -756,47 +757,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
756
757
|
}
|
|
757
758
|
}).onPrimary((c) => {
|
|
758
759
|
let A;
|
|
759
|
-
s.isAddon ? A = C(c) : A = h(c),
|
|
760
|
+
s.isAddon ? A = C(c) : A = h(c), u("update:bindings", A);
|
|
760
761
|
});
|
|
761
762
|
}
|
|
762
|
-
const { t:
|
|
763
|
-
return (
|
|
763
|
+
const { t: v } = P();
|
|
764
|
+
return (f, d) => {
|
|
764
765
|
const c = E("FmButton"), A = E("FmTextField");
|
|
765
|
-
return
|
|
766
|
+
return S(), V("div", Bt, [
|
|
766
767
|
a("div", Ct, [
|
|
767
|
-
a("div", Et, j(F.isAddon ? I(
|
|
768
|
+
a("div", Et, j(F.isAddon ? I(v)("inventory.integration.apply.addons") : I(v)("inventory.integration.apply.products")), 1),
|
|
768
769
|
x(c, {
|
|
769
770
|
type: "button",
|
|
770
771
|
variant: "plain",
|
|
771
772
|
size: "md",
|
|
772
773
|
icon: "link",
|
|
773
|
-
label: F.isAddon ? I(
|
|
774
|
-
onClick: d[0] || (d[0] = (
|
|
774
|
+
label: F.isAddon ? I(v)("inventory.integration.apply.applyAddon") : I(v)("inventory.integration.apply.applyProduct"),
|
|
775
|
+
onClick: d[0] || (d[0] = (p) => k())
|
|
775
776
|
}, null, 8, ["label"])
|
|
776
777
|
]),
|
|
777
778
|
a("div", null, [
|
|
778
|
-
|
|
779
|
+
w.value.length > 0 ? (S(), V("table", Ft, [
|
|
779
780
|
a("thead", null, [
|
|
780
781
|
a("tr", Lt, [
|
|
781
|
-
a("th", Vt, j(I(
|
|
782
|
-
a("th", null, j(I(
|
|
782
|
+
a("th", Vt, j(I(v)("inventory.integration.apply.name")), 1),
|
|
783
|
+
a("th", null, j(I(v)("inventory.integration.apply.code")), 1),
|
|
783
784
|
d[1] || (d[1] = a("th", { class: "w-1" }, " ", -1))
|
|
784
785
|
])
|
|
785
786
|
]),
|
|
786
787
|
a("tbody", null, [
|
|
787
|
-
(
|
|
788
|
+
(S(!0), V(J, null, $(w.value, (p, e) => (S(), V(J, { key: e }, [
|
|
788
789
|
d[2] || (d[2] = a("tr", { class: "block h-8" }, null, -1)),
|
|
789
790
|
a("tr", null, [
|
|
790
791
|
a("td", null, [
|
|
791
792
|
a("div", Nt, [
|
|
792
|
-
a("div", Dt, j(
|
|
793
|
-
|
|
793
|
+
a("div", Dt, j(p.itemCode) + " " + j(p.name), 1),
|
|
794
|
+
p.variantName ? (S(), V("div", Rt, j(p.variantName), 1)) : _("", !0)
|
|
794
795
|
])
|
|
795
796
|
]),
|
|
796
797
|
a("td", null, [
|
|
797
798
|
x(A, {
|
|
798
|
-
"model-value":
|
|
799
|
-
"onUpdate:modelValue": [(o) =>
|
|
799
|
+
"model-value": p.code,
|
|
800
|
+
"onUpdate:modelValue": [(o) => p.code = o, (o) => m(p, o)],
|
|
800
801
|
rules: [
|
|
801
802
|
function(B) {
|
|
802
803
|
return !!B || "Required";
|
|
@@ -811,7 +812,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
811
812
|
icon: "delete",
|
|
812
813
|
"icon-color": "#000000",
|
|
813
814
|
size: "md",
|
|
814
|
-
onClick: (o) =>
|
|
815
|
+
onClick: (o) => g(p)
|
|
815
816
|
}, null, 8, ["onClick"])
|
|
816
817
|
])
|
|
817
818
|
])
|
|
@@ -834,28 +835,28 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
834
835
|
loading: { type: Boolean }
|
|
835
836
|
},
|
|
836
837
|
emits: ["update:setting", "update:show", "submit"],
|
|
837
|
-
setup(F, { emit:
|
|
838
|
-
const s = F,
|
|
839
|
-
ve([() => s.show], ([
|
|
840
|
-
if (
|
|
838
|
+
setup(F, { emit: y }) {
|
|
839
|
+
const s = F, u = y, n = pe(ee(s.setting));
|
|
840
|
+
ve([() => s.show], ([m]) => {
|
|
841
|
+
if (m)
|
|
841
842
|
for (const l of Object.keys(s.setting))
|
|
842
843
|
n[l] = s.setting[l];
|
|
843
844
|
});
|
|
844
|
-
const t = M(),
|
|
845
|
+
const t = M(), i = ae(s, "show");
|
|
845
846
|
function b() {
|
|
846
|
-
var
|
|
847
|
-
(l = (
|
|
847
|
+
var m, l;
|
|
848
|
+
(l = (m = t.value) == null ? void 0 : m.validateInputs) == null || l.call(m);
|
|
848
849
|
}
|
|
849
|
-
function
|
|
850
|
-
|
|
850
|
+
function w() {
|
|
851
|
+
u("update:setting", ee(n)), u("submit");
|
|
851
852
|
}
|
|
852
|
-
const { t:
|
|
853
|
-
return (
|
|
853
|
+
const { t: g } = P();
|
|
854
|
+
return (m, l) => {
|
|
854
855
|
const r = E("FmChip"), h = E("FmForm"), C = E("FmButton"), k = E("FmSideSheet");
|
|
855
|
-
return
|
|
856
|
-
modelValue: I(
|
|
857
|
-
"onUpdate:modelValue": l[4] || (l[4] = (
|
|
858
|
-
header: I(
|
|
856
|
+
return S(), X(k, {
|
|
857
|
+
modelValue: I(i),
|
|
858
|
+
"onUpdate:modelValue": l[4] || (l[4] = (v) => se(i) ? i.value = v : null),
|
|
859
|
+
header: I(g)("inventory.integration.apply.title"),
|
|
859
860
|
"dismiss-away": "",
|
|
860
861
|
"close-button": "",
|
|
861
862
|
"max-width": 500
|
|
@@ -868,22 +869,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
868
869
|
x(h, {
|
|
869
870
|
ref_key: "formRef",
|
|
870
871
|
ref: t,
|
|
871
|
-
onValidationSuccess: l[2] || (l[2] = (
|
|
872
|
+
onValidationSuccess: l[2] || (l[2] = (v) => w())
|
|
872
873
|
}, {
|
|
873
874
|
default: R(() => [
|
|
874
875
|
x(me, {
|
|
875
876
|
bindings: n.bindings,
|
|
876
|
-
categories:
|
|
877
|
-
variants:
|
|
878
|
-
menus:
|
|
879
|
-
"onUpdate:bindings": l[0] || (l[0] = (
|
|
877
|
+
categories: m.categories,
|
|
878
|
+
variants: m.variants,
|
|
879
|
+
menus: m.menus,
|
|
880
|
+
"onUpdate:bindings": l[0] || (l[0] = (v) => n.bindings = v)
|
|
880
881
|
}, null, 8, ["bindings", "categories", "variants", "menus"]),
|
|
881
882
|
x(It, {
|
|
882
883
|
form: t.value,
|
|
883
884
|
modifiers: n.modifiers ?? [],
|
|
884
|
-
groups:
|
|
885
|
-
items:
|
|
886
|
-
"onUpdate:modifiers": l[1] || (l[1] = (
|
|
885
|
+
groups: m.groups ?? [],
|
|
886
|
+
items: m.menus ?? [],
|
|
887
|
+
"onUpdate:modifiers": l[1] || (l[1] = (v) => n.modifiers = v)
|
|
887
888
|
}, null, 8, ["form", "modifiers", "groups", "items"])
|
|
888
889
|
]),
|
|
889
890
|
_: 1
|
|
@@ -892,10 +893,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
892
893
|
]),
|
|
893
894
|
"side-sheet-footer": R(() => [
|
|
894
895
|
x(C, {
|
|
895
|
-
loading:
|
|
896
|
+
loading: m.loading,
|
|
896
897
|
type: "submit",
|
|
897
|
-
label: I(
|
|
898
|
-
onClick: l[3] || (l[3] = (
|
|
898
|
+
label: I(g)("common.confirm"),
|
|
899
|
+
onClick: l[3] || (l[3] = (v) => b())
|
|
899
900
|
}, null, 8, ["loading", "label"])
|
|
900
901
|
]),
|
|
901
902
|
_: 1
|
|
@@ -914,40 +915,40 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
914
915
|
loading: { type: Boolean }
|
|
915
916
|
},
|
|
916
917
|
emits: ["update:setting", "update:show", "submit"],
|
|
917
|
-
setup(F, { emit:
|
|
918
|
-
const s = F,
|
|
919
|
-
ve([() => s.show], ([
|
|
920
|
-
if (
|
|
921
|
-
for (const
|
|
922
|
-
n[
|
|
918
|
+
setup(F, { emit: y }) {
|
|
919
|
+
const s = F, u = y, n = pe(ee(s.setting));
|
|
920
|
+
ve([() => s.show], ([v]) => {
|
|
921
|
+
if (v)
|
|
922
|
+
for (const f of Object.keys(s.setting))
|
|
923
|
+
n[f] = s.setting[f];
|
|
923
924
|
});
|
|
924
|
-
const t = z(() => s.menus.filter((
|
|
925
|
-
const
|
|
926
|
-
return
|
|
927
|
-
})), b = z(() => s.menus.filter((
|
|
928
|
-
const
|
|
929
|
-
return
|
|
925
|
+
const t = z(() => s.menus.filter((v) => (v == null ? void 0 : v.category) === null)), i = z(() => n.bindings.filter((v) => {
|
|
926
|
+
const f = s.menus.find((d) => d._id === v.productId);
|
|
927
|
+
return f ? (f == null ? void 0 : f.category) === null : !1;
|
|
928
|
+
})), b = z(() => s.menus.filter((v) => (v == null ? void 0 : v.category) !== null)), w = z(() => n.bindings.filter((v) => {
|
|
929
|
+
const f = s.menus.find((d) => d._id === v.productId);
|
|
930
|
+
return f ? (f == null ? void 0 : f.category) !== null : !1;
|
|
930
931
|
}));
|
|
931
|
-
function
|
|
932
|
-
n.bindings = [...
|
|
932
|
+
function g(v) {
|
|
933
|
+
n.bindings = [...i.value, ...v];
|
|
933
934
|
}
|
|
934
|
-
function v
|
|
935
|
-
n.bindings = [...
|
|
935
|
+
function m(v) {
|
|
936
|
+
n.bindings = [...w.value, ...v];
|
|
936
937
|
}
|
|
937
938
|
const l = M(), r = ae(s, "show");
|
|
938
939
|
function h() {
|
|
939
|
-
var
|
|
940
|
-
(
|
|
940
|
+
var v, f;
|
|
941
|
+
(f = (v = l.value) == null ? void 0 : v.validateInputs) == null || f.call(v);
|
|
941
942
|
}
|
|
942
943
|
function C() {
|
|
943
|
-
|
|
944
|
+
u("update:setting", ee(n)), u("submit");
|
|
944
945
|
}
|
|
945
|
-
const { t: k } =
|
|
946
|
-
return (
|
|
947
|
-
const d = E("FmChip"), c = E("FmForm"), A = E("FmButton"),
|
|
948
|
-
return
|
|
946
|
+
const { t: k } = P();
|
|
947
|
+
return (v, f) => {
|
|
948
|
+
const d = E("FmChip"), c = E("FmForm"), A = E("FmButton"), p = E("FmSideSheet");
|
|
949
|
+
return S(), X(p, {
|
|
949
950
|
modelValue: I(r),
|
|
950
|
-
"onUpdate:modelValue":
|
|
951
|
+
"onUpdate:modelValue": f[4] || (f[4] = (e) => se(r) ? r.value = e : null),
|
|
951
952
|
header: I(k)("inventory.integration.apply.title"),
|
|
952
953
|
"dismiss-away": "",
|
|
953
954
|
"close-button": "",
|
|
@@ -961,23 +962,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
961
962
|
x(c, {
|
|
962
963
|
ref_key: "formRef",
|
|
963
964
|
ref: l,
|
|
964
|
-
onValidationSuccess:
|
|
965
|
+
onValidationSuccess: f[2] || (f[2] = (e) => C())
|
|
965
966
|
}, {
|
|
966
967
|
default: R(() => [
|
|
967
968
|
x(me, {
|
|
968
|
-
categories:
|
|
969
|
-
variants:
|
|
970
|
-
bindings:
|
|
969
|
+
categories: v.categories,
|
|
970
|
+
variants: v.variants,
|
|
971
|
+
bindings: w.value,
|
|
971
972
|
menus: b.value,
|
|
972
|
-
"onUpdate:bindings":
|
|
973
|
+
"onUpdate:bindings": f[0] || (f[0] = (e) => g(e))
|
|
973
974
|
}, null, 8, ["categories", "variants", "bindings", "menus"]),
|
|
974
975
|
x(me, {
|
|
975
976
|
"is-addon": !0,
|
|
976
977
|
categories: [],
|
|
977
|
-
variants:
|
|
978
|
-
bindings:
|
|
978
|
+
variants: v.variants,
|
|
979
|
+
bindings: i.value,
|
|
979
980
|
menus: t.value,
|
|
980
|
-
"onUpdate:bindings":
|
|
981
|
+
"onUpdate:bindings": f[1] || (f[1] = (e) => m(e))
|
|
981
982
|
}, null, 8, ["variants", "bindings", "menus"])
|
|
982
983
|
]),
|
|
983
984
|
_: 1
|
|
@@ -986,10 +987,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
986
987
|
]),
|
|
987
988
|
"side-sheet-footer": R(() => [
|
|
988
989
|
x(A, {
|
|
989
|
-
loading:
|
|
990
|
+
loading: v.loading,
|
|
990
991
|
type: "submit",
|
|
991
992
|
label: I(k)("common.confirm"),
|
|
992
|
-
onClick:
|
|
993
|
+
onClick: f[3] || (f[3] = (e) => h())
|
|
993
994
|
}, null, 8, ["loading", "label"])
|
|
994
995
|
]),
|
|
995
996
|
_: 1
|
|
@@ -999,22 +1000,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
999
1000
|
}), Ht = { key: 0 }, _t = { class: "flex justify-center" }, Xt = ["src"], Ut = { class: "flex flex-col items-center gap-2" }, Qt = { class: "text-lg font-bold" }, Yt = { class: "text-fm-color-neutral-gray-300" }, Jt = { key: 0 }, Kt = /* @__PURE__ */ Y({
|
|
1000
1001
|
__name: "FoodMarketHub",
|
|
1001
1002
|
setup(F) {
|
|
1002
|
-
const
|
|
1003
|
+
const y = ie(), s = te(), u = W(), n = M(!1), t = Ze(), i = z(() => t.state.menu ?? []), b = z(() => t.state.group ?? []), w = z(() => t.state.variants ?? []), g = z(() => t.state.categories ?? []), m = Ue(), l = z(() => {
|
|
1003
1004
|
var c;
|
|
1004
|
-
return (c =
|
|
1005
|
+
return (c = y.currentBusiness.value) == null ? void 0 : c.menuVersion;
|
|
1005
1006
|
});
|
|
1006
|
-
|
|
1007
|
+
u.watchLocation(t.init);
|
|
1007
1008
|
const r = M(!1);
|
|
1008
1009
|
async function h() {
|
|
1009
1010
|
r.value = !0;
|
|
1010
1011
|
}
|
|
1011
|
-
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm),
|
|
1012
|
-
async function
|
|
1012
|
+
const { breakpoints: C } = Ve(), k = z(() => C.value.xs || C.value.sm), v = z(() => k.value);
|
|
1013
|
+
async function f() {
|
|
1013
1014
|
const c = t.state.setting;
|
|
1014
1015
|
if (c) {
|
|
1015
1016
|
n.value = !0;
|
|
1016
1017
|
try {
|
|
1017
|
-
await
|
|
1018
|
+
await m.updateSetting(c), s.open({
|
|
1018
1019
|
title: "Success",
|
|
1019
1020
|
message: "Your changes has been saved",
|
|
1020
1021
|
type: "success"
|
|
@@ -1031,14 +1032,14 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1031
1032
|
}
|
|
1032
1033
|
}
|
|
1033
1034
|
}
|
|
1034
|
-
const { t: d } =
|
|
1035
|
+
const { t: d } = P();
|
|
1035
1036
|
return (c, A) => {
|
|
1036
|
-
const
|
|
1037
|
-
return I(t).isEnabled && !I(t).isBusinessLocation ? (
|
|
1037
|
+
const p = E("FmCardSection"), e = E("FmCard");
|
|
1038
|
+
return I(t).isEnabled && !I(t).isBusinessLocation ? (S(), V("div", Ht, [
|
|
1038
1039
|
x(e, {
|
|
1039
1040
|
class: Z({
|
|
1040
|
-
"w-full":
|
|
1041
|
-
"w-1/2": !
|
|
1041
|
+
"w-full": v.value,
|
|
1042
|
+
"w-1/2": !v.value,
|
|
1042
1043
|
border: !0,
|
|
1043
1044
|
"border-fm-color-neutral-gray-100": !0,
|
|
1044
1045
|
"cursor-pointer": !0,
|
|
@@ -1047,7 +1048,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1047
1048
|
onClick: A[0] || (A[0] = (o) => h())
|
|
1048
1049
|
}, {
|
|
1049
1050
|
default: R(() => [
|
|
1050
|
-
x(
|
|
1051
|
+
x(p, null, {
|
|
1051
1052
|
default: R(() => [
|
|
1052
1053
|
a("div", _t, [
|
|
1053
1054
|
a("img", {
|
|
@@ -1065,39 +1066,39 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1065
1066
|
]),
|
|
1066
1067
|
_: 1
|
|
1067
1068
|
}, 8, ["class"]),
|
|
1068
|
-
I(t).state.setting ? (
|
|
1069
|
-
(
|
|
1070
|
-
l.value === "v3" ? (
|
|
1069
|
+
I(t).state.setting ? (S(), V("div", Jt, [
|
|
1070
|
+
(S(), X(ue, { to: "body" }, [
|
|
1071
|
+
l.value === "v3" ? (S(), X(jt, {
|
|
1071
1072
|
key: 0,
|
|
1072
|
-
menus:
|
|
1073
|
-
variants:
|
|
1074
|
-
categories:
|
|
1073
|
+
menus: i.value,
|
|
1074
|
+
variants: w.value,
|
|
1075
|
+
categories: g.value,
|
|
1075
1076
|
setting: I(t).state.setting,
|
|
1076
1077
|
"onUpdate:setting": A[1] || (A[1] = (o) => I(t).state.setting = o),
|
|
1077
1078
|
show: r.value,
|
|
1078
1079
|
"onUpdate:show": A[2] || (A[2] = (o) => r.value = o),
|
|
1079
1080
|
groups: b.value,
|
|
1080
1081
|
loading: n.value,
|
|
1081
|
-
onSubmit: A[3] || (A[3] = (o) =>
|
|
1082
|
-
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (
|
|
1082
|
+
onSubmit: A[3] || (A[3] = (o) => f())
|
|
1083
|
+
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"])) : (S(), X(zt, {
|
|
1083
1084
|
key: 1,
|
|
1084
|
-
menus:
|
|
1085
|
-
variants:
|
|
1086
|
-
categories:
|
|
1085
|
+
menus: i.value,
|
|
1086
|
+
variants: w.value,
|
|
1087
|
+
categories: g.value,
|
|
1087
1088
|
setting: I(t).state.setting,
|
|
1088
1089
|
"onUpdate:setting": A[4] || (A[4] = (o) => I(t).state.setting = o),
|
|
1089
1090
|
show: r.value,
|
|
1090
1091
|
"onUpdate:show": A[5] || (A[5] = (o) => r.value = o),
|
|
1091
1092
|
groups: b.value,
|
|
1092
1093
|
loading: n.value,
|
|
1093
|
-
onSubmit: A[6] || (A[6] = (o) =>
|
|
1094
|
+
onSubmit: A[6] || (A[6] = (o) => f())
|
|
1094
1095
|
}, null, 8, ["menus", "variants", "categories", "setting", "show", "groups", "loading"]))
|
|
1095
1096
|
]))
|
|
1096
1097
|
])) : _("", !0)
|
|
1097
1098
|
])) : _("", !0);
|
|
1098
1099
|
};
|
|
1099
1100
|
}
|
|
1100
|
-
}), qt = "data:image/svg+xml,%3csvg%20width='200'%20height='100'%20viewBox='0%200%20200%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='200'%20height='100'%20fill='url(%23pattern0_1500_58879)'/%3e%3cdefs%3e%3cpattern%20id='pattern0_1500_58879'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1500_58879'%20transform='matrix(0.002%200%200%200.004%200%200.046)'/%3e%3c/pattern%3e%3cimage%20id='image0_1500_58879'%20width='500'%20height='227'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADjCAYAAABzcuYdAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB9KADAAQAAAABAAAA4wAAAABu8la3AABAAElEQVR4Ae2dCYAcVZnH61V191w5yDU5CDAkIXN0z0wC7C4uAorKpeyysugiuLqKooKIBwsCcguCFwoogqwrIHhzLIKigDeIQDLT3XMlmYSQBHKQhITM1V319v+6p/qorup+1VPd0z3zFXSm6r3vvfe9X1W9792lKHQQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIgMKIAREgApVLoKmp6aCGhoZZqrp/fzi8eU/lakqaEQEiMNkEpqNBZ8Fg00JVr13AfcpizrX5uAlLVVVlhmHwybohSF/lnA/jtwU6bIcu24eHh3du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ASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/onAgQgWwCra2th6mqulBTlEWKYjRyVZ2nKspcnHPO1bjCjW0IsVvhbKvO2OvDw8NbBwcH38iOha6IABEgAqUnULUGvb390DlcmXEbMrCQK8wwUWncPEv9DegKvycS6bk/5eLRSbC99VKmqKcgujEzSpv0GVd4zFD0qyOR/hdMOae/HStWLGW1tfcoijUjukMQmBoXB5TJOrjNE8AZV3Ujfnk0OvD3LGFctLW1BX2qcgtTmB+Xltis0t5f5+pvkwEFDwRjXwyHwy+61SAYDAY0wzhS0dT3KIwfh3wuRxww5ooM6L1AspVz5WXG2J+4zp8Z1fWe/v7+/UXocaimql9HuIMY56nnG9cBQH+4OxL5lts43cqvWLGipq6u5ivg0AEV4iK8eL7xzPjwT7/Oey+ORtPPvlP8TU1NtbNmNIh42g2FJeIRsoxxHzdYH3h9NhqNpt4hazzt7cGPI9mz4T5m835Zxct2DZ1qUKG7vzva+/18iXaEgncj78sYT+c9n7xXfniPxX0a3LV7z2e2bds25FW8FE/lEvBVrmr5NTOMmTWqppwEqQW2RXpGcJUrHe3tK18Ihwf6MpwnfArjciRTlbcVighGAf+pdxSSS/hrWgNKOuQLxUXWUSiXWcKOF9ZY7Ay60NbHVFuDgQdmLozVaY4JlNgjV3+rS1IBZhjfcKmK1hEM/pui8ovA/1iGGwaT4zIK5SCEOQhhgwh4GtOYUqv6utqDbU/AkN0Ho9UjGyGa/zMheyo0EM9DVjBcbcpyKNHF0NCQBoN+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzRgTeHwNr5QIU4hPTf5iwxOT4JDkxdUzB1ppyIvC9z/zgVjDmvgHiP8X431dfXV205nzeD5JlDIO+LlCNdQQ6MDaHMU0ZkVEJhMJdx/y2Q9Ti/LCaTPmRizFAzW1mOwaArykopUcc47D1EnPiJzozMn72wYhiqbZeAznTR1+zYmnKIroTO4/lKMEufG9BTNtH29pajOkMtjzPV+BkKweNwD7x7TpjSqarsMo3xF9FSu0FWp8RzwHnG853OG1fiss+dbHKOcngYR+08Ycxs3e1kE26c2cojnow82oeGDmXLr70GeVx5Yd3Qw1Iwj3lSmJgXd3mfJpYahZ5kAt4VXJOckULJo2Vwekeo9fxCcuQ/vQi0B1s+gK7QJ5O9IqXLOwx0Ldq1J5QuBYqZCBCB6U6gqg06utLRQ5r9S7Zu062ZzGs0fq9F13uLVzddDKrKp58aOpRM3poHuWApfdBiVbN+XnZPALqlRezVdbbO1jxIN7qlYHWG2j6Bit59+GGSWxkOVni8OVMLAz0p6R8Iiz7eMh9izDr1TOFc6CB+uouSYzt0NsNlxiXOZbIkBoLNcGXOfk5yZj5Sf1W7QavsYPo4MxGmXIepH7RzcafKpR2lUyoC02xshS1A1/tXAfNf8fPWOpTqDlG8JSHQGWw5GfbkW4W61yGzB4Mg69G6jmCsYVBlbBsmWe5RMcUdU8REz/hiyCyGZToCdqcJckvhuKgkSk/fSMcwzIN5jqyormuE9SFswA6fGD6Cn9vathlVPUqRooefJpInU4ECfwOYozCkaZU0lbCAxuQ9IQLTzKCjRcCU92DW7KfC4ejtEyJX0sClqGuYcVor7Ka7mSGrv+leqX+t+hfWMxhcOhctl1thjG0LeRED5mf04nc3i8cf7+rvh0FXbOcUWFLzdzQ3LzU0rYWp7GQYeUyGUlohk3jP0LU/gTaamc9quz8WQkVcDo/qt9Vq2k/jano1i2w0jI2NYrL3mTDa19uH4dfFDfYQ/ByfBftwaBFomBgTM15z8i/ozlg0bijnYYoA5hf4J/Bs2KeECgNT1dhIf/86muFuj2jKuU47gy7uICapXIvlSU+7mXU8Ne789DMGdvdNYw0fRQHvPPRi8Nu5+uZV4cjmPXbh87jFuvv7N8Jf/J5ownKtmTNr/4lx7d2Yb3yuXAdzntinqdfAwMBWZF38ijqwemGDY0CuDk5aOcCVN5G2WBqKTh46iMDECUw5g17IZIl2DgrzuZrCRdf76fiZTZ+J00QMTunLNO/sFHCKz5SVVV6MRicP8695lR2DecVV0aVsd4hV6om10AlPR7GcoGbMOR5SDqnQlnaMVUlTLtklnhv1kiVL6jGT/Zxcn6QLStZbu6M9n3Xyd+O+adMm0UX8B/Fbvnz512oaaprdhK9EWTGWnTjMv5WopEUnxgyUc9YnJSmU9LMEKNclumyw1j+wfv162xUA5VKD0pk6BKacQZe9NTDqp7UHg58MR6Ny68NlIy6v3BDq9mthYsUYYNLUmQWtxfCZzoUaA1jzix4M9NTpyut2WTEMba+q8achFcDYMnql0zHbyWe4CUFsxMH/AeztS9cMYZwiT7wbCewX8ulU0mfZ4smrhC+Uwzi3rf4L5sw4EjU6sU7c7ogODY9ebecxUbcNGzbsQBziRwcRIAJEoCQEpq1BFzQxhnolZr0/gQ1nBktCt8SRwpi+oitD7+VG/Z433nhDTLr37NiyZYttq6G3t7cHXcnvjsfjlipD/qQRX1yML2OoUGyugiVchQ5+QNf1T3X3rHth6dKlrsc3nfRHT0UrahO2zz3mXf0QraV9hTQjfyJABIhAJRKwLdgqUdFS6ISW3yJMmLkJcb+/FPGXOs5EC5nXH8A4XNEzbYvQ0RjvSnYd1PCPYUuwGulwhqoOQ1iHcRZ/PTkwLW2lU0SYs/a0kx+5T5xARjfLxCOjGIgAEcghINP1mROoMhwaUmpkrl1OOTqcZMomzhl/X2eo+SMO4gWc3ayTlq87iXFpcWNkbs7o6KiMWIF8lMdb12uhq5mz5N9EXkV+x38K/oqfga3TsdpICHl6oPd+VqYOZrqYGLBXi7OKap2ba6+Tf5OMPIUhFZmY/WHOTBABzPsn30GzUITiyXis75+IsdRHIuXxNf3JvIj8mL9Sp57c/17Fdvzil07XPC99+pTC9CHgeYFZXnTYNSH/kKqUOlhbfP2q1mVHSAlnCqGJTMfUIICVD2pM9eJpmho8KBdEgAhUH4EqN+heAWdLmBYQXe/yzQ6vkqZ4ykvAaSMQxmZpnB9WXmUoNSJABIiAdwTIoJssGTtzVbD1o+Yl/Z2aBAyV9TvlTFOVDzj5kTsRIAJEoNIJkEHPuENYHIUNZ5avyHCi0ylGgOm8C1my3RYAS+TOaW9rO3WKZZmyQwSIwDQhQAY960azJRrz35zlRBdTisDQ2NjzWO4njHrOgVUPNdiy9Qf4lOp7cjzJgQgQASJQ4QSmhUHH1LW9KMR3ytwLFOrv7Qg1U9e7DKwqlBG7cmHfme85qY5lbQu5ov4ihG+XY3vg8nyFzUkZcicCRIAIuCAwLQw61kFtwfcbrxFfN5Jjo6Iwr4aud8br9++37T6Wy+f0lMKHeX6ACt5TTrlHpS6AveyuwI54zwY7Wj+1bNmy2U6y5E4EiAARqBQC8oujK0Xj4vQI7Bse/dGshsA/IPiH80WRqOEwZZGmJLre/x2yzmvTxKeQSzEvPvVRKVH/cK5zQTGfsWDmopY5c/YGYrEJ7xQ3hK3zampq3ijtRjUiTxnQMk6z74vAXrK6SszgsU+rLPAkvje+NDvd5NX4AraVWP19x6y62gtWB4P3YfeeB8Bms5381HUzHyvJunAFgkjkwPktLqvGzm9zWdWgxKYogelh0LEFWF3dfp2PzrlSqVGPx8c5lhW8n+h6X40NZ9ZE+u8pKFsSAZkClC/3MX+Xz4dKhz/gaBqFeunY7IsUBGb1ijKqG/EzIf5MSbJUQZFGIut6Q6GWD6oKexDd7I7fL08YdsbaoPpNfkX57OpQ22MGN356YDT+e/qoRgXd0GpUBd1E9AxV442rXJ2nh0EHf/+BBt/aTQNbVwdbrkSj9wG5W8Kub21d9sfe3sF1cvLllULXsLDODZkNXicN0tY+bdqTsmkDD5kAopw2z0Qk0vf7UKj5ZLTC70Le/8mJnekOmUbUez6iMu1DM2rUbixz/DHX+cNdfX0Dpgz9JQKyBNDBN3dVa+sZkBdbNyde0bjZISIbiY2c+NIgU7Q9XdHoc/AWH26iY5oQmDaFtz7TSLwwa6J9D65qbzkJrfQPF7zHjC32a4GvQO4s/KyWsGDwahMQcwzQWq2Qzsny0ItE+rsxRn5yQ33geuwY+AmkioZ4wUNDZWo1yuDVho9f2hlq+x3Q3b9rz76ntm3bNlQwNAkQARBAGdQM0/vLTBjp6nWmq7tzfCtR7GH5Ij7NeiJ9bMgdu2qX9uL5qQoG2v70tp581LgSvV2DMoqLWe/4zOpHZWQrWUbcaLtf+XW2alF+DawpDg4OvhGO9F2kc34S9pH/bSYpUQ3M98PzMRef7XsfU7VH58876M8dodbPtLS0zLOmQddEwI4Anp+sQ8PD5OaXFXj8IpmO+CgCHdONwLS86V0DA1sx7+xK2ZuNju0bWltb3e/1LpsAyVUEAdEF3xWJnswN/d9R4fsdlHLVXYkW12oMWdxa41OfQyXwgqamJonPxFZE1kmJKUcgNbN2yuWMMuRMYFoadIFDdL1jZ7CfOqNJ+4ixU7+mXZ92obMpTIB3R/t+0R3uOclQ9HdikcNd6L7c4Sq/jK1QVeX2WTMang4Gm9/uKiwJEwFPCIglOHRMNwLT1qCLG23EjMtQYG8rfNMNdITx96PVRXt9F4Y1VSR4ONz3h65wz/kGHzka33K9CBXAZ5E56bV0mI/wFo1pv0Y3/BUIN63ftanyUFRNPjibNvOjquaelEHRaX3Tu/v7N+Jb6F+CtXZcmpYuhYVRV2/uWLHij93r128R94aqwO6fUE1MuYHItQAAD99JREFUuauy3sBIZMMr0Po2TDK6q7bWdxRmxX8Q16dhyPLQXALZcydh1AOQuaEz1NoyEjM+1d/fvz83TK6Lj48ien/OHEV8VTtXuApcPJi8XQW5tFdRzDM1y4rMpwMVxFcwmfIuRcWXez0qTsTzgcmt+HAg34o9JUbsNSLXqUpgWht0cVO7Iv3/09neegpOxUz2vAfDJiRqrU/Mej83r2CVesKCBLDGujotRhmYj68Z/iuS+msodPhC1ag/BRb3wxhvPx7s8nNjyrk1Acx3Sj47meW6reZGXB32+5Ux+45TdohtoNI4Oqx6QM7pmBABGPpXMLxzw4QiocBEIIPAtDfoggUfMy7FZp//jErywRlsbE9RcJ+Dtey/EmPwtgJldeTb4oZ2DZI8wFmxs1rT5bXK8S0yResuaxaqNLFIZON2qP5D/O7HBjXHodX+WUyKOw3Xju8U/M9uDzb3hKP9hQvxkZE9ir/hgAMemaV1DkHlnWfNmlWHt0Osvc8JhOdtuLa2tmDFJCcgOaQIoLKmotenhjaXSSGhkwkScCx8JhhvVQUXXe8dwdbL0cYSBXTBA6bzltbWw0VLTWwIMXkHZ28Mj47eSwXC5N0CpKyL2fH4i01qWk7Cjh7XwnAf46QRGvKXBoMr/y8aHbD94psZLlZfr/qZaJ/nGlM45+8NMCOZ4N94PK7W+AJiyCDnwELn1/DcxXI8yIEIEIFJI1CWgmHScuci4e5o773oOpVqdaPAXlrjq7kRZe0kL0tKdMjWuMhmZYiKzgTzVxkaeaIFDPuTu/e8eaLB2W1OEaKjegZ2mrvIyd90hzF9k3NmOwaKuz5LtOxM2VL9VVVVGPM5dvFjVFhMDkx379gJkRsRIAJlJUAGPQP3WEy5HEZ9S4aT8ylXzkYr5V3OAuXwmc5TjcrB130aW7ZsGQ5HejAjnn/NKTTGTv8VPTyHOfkL90SvC+MOu87xmTC2M/OF98KvRlXnwmI7pMO3Ig0y6F6ApjiIgEcEyKBngOzr69uEbcHEEqOCB8bS0VBn8wsKkkAWAR09yPjCWeqX5TmVLnbuuQaVwxftsoRHZ15A8x9v55fpBlRidr3NwRYEAnyBjYe3Tqq6LPGc28bK3a3Nt42DHIkAEfCSABl0C81E1zvnv7A4T8LlVL0102MeVff27QewfshxOSQqg8FCDxVIbbCTgaFHN7hvqZ2fl24YqXfUER8w3OZlWhQXESACEycwVa3GhMiweKLr3aMWiGnAXOwimpqwTrdnQjdykgOzOHsK4+CjdnvKYAy64NIznWsDTlnQmNru5OeZOzPwARrx/JrPcCrmYYygr09dVfiJGOw39+OfbFXFG23+aMBssu/G1EufLIbNPU18DpPza2y8inTKKRCLjIeCVRMBWPLX0Zp+zU5nzL+YDfe8ZbqhxHvswgo3dOeXdP7GypUr52M2/Sq79LEhyr4Y51Vj0O3yQG5EYCoSIIPucFe7I/13YsbPIw7e5OwRgczxdHE+lQ7DQLuQ2W/BiWdLYkKZbwMM90ZbJlxZhV0LS9btXutnHVjFscI2bUXp6+3tfdXBj5yJABGYJAJk0J3BoyGiX4Zi17aF5RysnD6iM5GOSiWgaZpY8oWNWWwOprwO17w3MBqNvqZw1msTGvUEtkip9Z9u5+eFG+I/1ykebFf6Oyc/cicCRGDyCJBBz8M+HB7oM9hEu94FYsKcB/OU9fL52FuROdtd3dB0d5jBbsHBlV9ZXFKXiOPjHQsXNqQcPDrpaG0NIaoz7aLDcrxRReVP2fmRGxEgApNLgCxNAf5d4b670VR/uIDYJHkzPjIyQrt1TRL9fMkGg8EAttI9z0kGC/f6nPwy3Y248QT65vdkuqXOGVvFG+f/V+raoxOm8c+hC2CWfXQsjK/Q/d3ej1yJABGYTAK09Wth+gaP80sVH3sLVp4vLCxeTgl++Pw5M/+y4KAW3anvNu+sK6iq58zLQrsvuR/5ptF4/DyszRddw3S4JKAxfhGMIr4PkHsIA20Y8b/l+uS6iG2JV4VaHkdc5+T6ou+H86vb21uehZF90c7frVso1Hwu0nKsJGBTnHsRZ9xtvCRPBIhA6QlUtUFHdziMT+k/KClmva8Ktl6JxO4u/S1xkQJjtTC+q1EACyNc1JEbLumCrtW5GAO27S4uKiGZQKnlejLCxcmg5dyJkEcMDw//dnBw8I3iYskfqj0Y/BjmvH3ZUYrzP0ejG9Y7+ls8DJ3drmr83zGunbvdKzY3Yly7LxQ64sxIZJ3teLslOsfLjmDwX/BFQcdtazFBb3BoJPZjxwgq3EOVmIZY4Vkg9YhAXgJV3OWe/hCVuVLW6a94j/fmxVDYc2209x6Dqw+J6oO7n7mKV77ulFgz65COk6biRmb+rHJpNtn6p9cZmzPMk5KoKI0xNlT6ItDc09005uZ1oufA9rsg1qy5uobBakHr+WcNdbXPtofavh0MNr+9qanpIFeROAivamlpWhUMfsfHlLuQRsBKWtwfrEs3DMV5r3e7qLt7e59DmP8RdyY7zuSTqDGj1ce0J1e1N59lF76QW3Nz80x8QvhLTDV+Dh0PynyOLOc3Y0vanYXis/MXPUjJJys7B3ayXruJXirTmKt4vjJ/XqdlF1+y2WGWAxkSqCHRB24yeNDphAnIW5kJJ1X1EXAlrl/Gfdo/V17Xu1dskybDq9gqMR4m1sbBSuEetkK/Vp/q+/Ssmb7+jvbW52Bxnsfa62f3j4wM1tXVDWOWeaGv6YnPX86oDwQ6Vcbei26Ss9C/cXC+fMP/wUik97f5ZOz8RmPGDfie+onQvNnOH300S+H30472tl8zbtwd59rvob+ox4qbandoWPa2WKnVMFOefQICHXZCphtqdo+sDff9j3nt1d/S1xi90rQk8TRgiONIVVdHDM0QdScPDrNTLZaIi3OfGovFdg4MDGz1IHKKosIJkEF3cYNE13t7e/AGFMqO3ZIuoiPRCiGA+wkjqTbD0H8IKg3PqK/bB7f1HaHgIK6xbJHvQMs6NU2BoY8bNQIYbn64ZiSGPBZDzixJnXPFlV4+MnaZs4CzT39//7aOtpUXcE17BLo5zmyHYT9FYdopmsI3w7iv5YayHp903YYvwI0b9rgfn3BtUhhvxpK4VajYzHVONemDhmS/ElMuxhWNnReC5cIflZmQn6l/UFAKa4n+NefA6VpZIbuPpyNxJIt23Lta1e+7FU6fH/egP1OYABl0lzcX/aV3oRB8D34nuwxaVnHx2qcLgbImXe2J1eHe1iETC1E0HpvMDMykWU4mHMwL/DVPC+WaK5sxc/Hc7vXrtxQSdfLv7hl4qjO08qMo/u+FPnnHIzDefijiOdT8cjqM+vhhGgRJ3bnyMsbwP9Dd17vJjIH+ekMA90jcjHpvYrOPBWng2TVy517Yi5NrlRMw3+4qz0am+iJL1l+qNMsULOpcdMPyuH4JV1QsJZLBZ+pSVHKuA2GeIBpfyWAy2uWycp2kywAmD6e/LqNzKY6JlHkn/ouxVjc/RTR87X6ZenH+rB4zTsJY+EuZzsWcd0UGfoKlCe/lXN2a+Ka8JZLsEWq72R6WO24dUzbnMCT+sudiSvxUL/RO7nJr90TmvR2W3E3k0nzerHGUOf0svnY8rPolr03trfc3V1pU4y1VeTF7mI5pQUD+iZoWOOQyGe7rC+MNuUpOmqQqiQB6WF5EN+TjmMW/r9R64RnZg3SuHYrxk7H8rN+r9Nb29v4qxpW3Ie6f4+d5YY0o3+QG/9oYZ++a6Mx5r/JM8RABIlCYQNV2uXNejw4rXiezIzY+9Vg3c6aYO+7dgd017uwIhU5Fj9ZpErH6uSo36cXwG6qaszbcOYXMurionfGMXGb6Ocfg4ANm3KjPiM1BzoWz2Nuc+Xy1+YKYdwlGpU7DsoJ8ssX4YQ/ydQj37ra2tiDGmU9Cl/m70SnZgfTmo3sSc+bcxWqrILqpYWUfjivx75XKIKKnSCx7O6sz2CKGfi7C73g8izPcaY+2XEZ+UTXYjvCP6Qq7PdoTXes2rrzyjOO+Y+1ERnpCHhWHvM9D3jglPcVTZ94na/qGkb/HRjKJvGIof8Ty0sRhTd/UK28EE/VU8w/PTDR6Cl85BKrWoMfj8QM+VfsOSoi5iZVAKabZDRYxgQkTg17b84YxkhLx5iSOF/XzWIe0Di0+MUSZnfB4GnBkKsPWNDy+USZZNqTv5nW+bzvJ6kjGLBysCYpZW05+6fisodI+5lli0peibheMTTcv/uq6/ibn2tehQcCJl0gHHYQqKmsHhnVdGJiSHD09PVFELH7fFB854YHAUYpqYMtTFZ8MVY6AcTwUf8XYo5js5vSe6DpnMVVhw3gOEBfrRr6ewdT4p2FwdyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", Zt = { class: "flex-col items-center" }, Gt = { class: "flex gap-2" }, Pt = {
|
|
1101
|
+
}), qt = "data:image/svg+xml,%3csvg%20width='200'%20height='100'%20viewBox='0%200%20200%20100'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='200'%20height='100'%20fill='url(%23pattern0_1500_58879)'/%3e%3cdefs%3e%3cpattern%20id='pattern0_1500_58879'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_1500_58879'%20transform='matrix(0.002%200%200%200.004%200%200.046)'/%3e%3c/pattern%3e%3cimage%20id='image0_1500_58879'%20width='500'%20height='227'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAADjCAYAAABzcuYdAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB9KADAAQAAAABAAAA4wAAAABu8la3AABAAElEQVR4Ae2dCYAcVZnH61V191w5yDU5CDAkIXN0z0wC7C4uAorKpeyysugiuLqKooKIBwsCcguCFwoogqwrIHhzLIKigDeIQDLT3XMlmYSQBHKQhITM1V319v+6p/qorup+1VPd0z3zFXSm6r3vvfe9X1W9792lKHQQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIgMKIAREgApVLoKmp6aCGhoZZqrp/fzi8eU/lakqaEQEiMNkEpqNBZ8Fg00JVr13AfcpizrX5uAlLVVVlhmHwybohSF/lnA/jtwU6bIcu24eHh3du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ASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARyCTAMi/onAgQgWwCra2th6mqulBTlEWKYjRyVZ2nKspcnHPO1bjCjW0IsVvhbKvO2OvDw8NbBwcH38iOha6IABEgAqUnULUGvb390DlcmXEbMrCQK8wwUWncPEv9DegKvycS6bk/5eLRSbC99VKmqKcgujEzSpv0GVd4zFD0qyOR/hdMOae/HStWLGW1tfcoijUjukMQmBoXB5TJOrjNE8AZV3Ujfnk0OvD3LGFctLW1BX2qcgtTmB+Xltis0t5f5+pvkwEFDwRjXwyHwy+61SAYDAY0wzhS0dT3KIwfh3wuRxww5ooM6L1AspVz5WXG2J+4zp8Z1fWe/v7+/UXocaimql9HuIMY56nnG9cBQH+4OxL5lts43cqvWLGipq6u5ivg0AEV4iK8eL7xzPjwT7/Oey+ORtPPvlP8TU1NtbNmNIh42g2FJeIRsoxxHzdYH3h9NhqNpt4hazzt7cGPI9mz4T5m835Zxct2DZ1qUKG7vzva+/18iXaEgncj78sYT+c9n7xXfniPxX0a3LV7z2e2bds25FW8FE/lEvBVrmr5NTOMmTWqppwEqQW2RXpGcJUrHe3tK18Ihwf6MpwnfArjciRTlbcVighGAf+pdxSSS/hrWgNKOuQLxUXWUSiXWcKOF9ZY7Ay60NbHVFuDgQdmLozVaY4JlNgjV3+rS1IBZhjfcKmK1hEM/pui8ovA/1iGGwaT4zIK5SCEOQhhgwh4GtOYUqv6utqDbU/AkN0Ho9UjGyGa/zMheyo0EM9DVjBcbcpyKNHF0NCQBoN+HPJ0FO55KhVxhqdz8RtvLEUlZ0vK3elk1vCwpsysF5WjIzOigThiYnzR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dyNcyY+uaN9vkMhvVgdXdoLtyaiciHH/ozFwehD+Cv2d+pRjOlOgKkfXPXuOM/57roz+LhLZ8ArCeHro8+fHVEO5D8vi/oqnNz25EApDvZc3bdqUcvM04fHIsIlPRGG+xETWzOcOzyEGS5h4Bkp7cP59PNQHZ06sNBNE5Sn1zppusn+Tb3Kh95n5cX+flo2T5KqbgFn+V3cuSHsi4B0BtnTp0trZODTDWMJ9yiKU+qL1PhstvUTpid3ZGGaNjzBFfw3Dk6/C5r8SiUSEAY95p0bRMSWW0tXW1h4Ma7kcOi+AvjOydGdsN3okdijKyODu3UOvbtu2bajo1CggESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiIBHBP4fA65iItIh5WIAAAAASUVORK5CYII='/%3e%3c/defs%3e%3c/svg%3e", Zt = { class: "flex-col items-center" }, Pt = { class: "flex gap-2" }, Gt = {
|
|
1101
1102
|
key: 0,
|
|
1102
1103
|
class: "text-xs text-red-500 mt-2"
|
|
1103
1104
|
}, Wt = {
|
|
@@ -1117,25 +1118,25 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1117
1118
|
}) }
|
|
1118
1119
|
},
|
|
1119
1120
|
emits: ["update:modelValue"],
|
|
1120
|
-
setup(F, { emit:
|
|
1121
|
-
const s = F,
|
|
1122
|
-
return (t,
|
|
1123
|
-
const b = E("FmSelect"),
|
|
1124
|
-
return
|
|
1125
|
-
a("div",
|
|
1121
|
+
setup(F, { emit: y }) {
|
|
1122
|
+
const s = F, u = z(() => s.modelValue), n = y;
|
|
1123
|
+
return (t, i) => {
|
|
1124
|
+
const b = E("FmSelect"), w = E("FmButton"), g = E("FmIcon");
|
|
1125
|
+
return S(), V("div", Zt, [
|
|
1126
|
+
a("div", Pt, [
|
|
1126
1127
|
x(b, {
|
|
1127
1128
|
placeholder: "Select NetSuite Location",
|
|
1128
1129
|
items: t.nsLocationOptions,
|
|
1129
1130
|
searchable: "",
|
|
1130
1131
|
searchTarget: "label",
|
|
1131
|
-
"model-value":
|
|
1132
|
-
"onUpdate:modelValue":
|
|
1132
|
+
"model-value": u.value,
|
|
1133
|
+
"onUpdate:modelValue": i[0] || (i[0] = (m) => n("update:modelValue", m))
|
|
1133
1134
|
}, null, 8, ["items", "model-value"]),
|
|
1134
|
-
|
|
1135
|
+
u.value.netsuiteId ? (S(), X(w, {
|
|
1135
1136
|
key: 0,
|
|
1136
1137
|
variant: "secondary",
|
|
1137
1138
|
label: "Clear",
|
|
1138
|
-
onClick:
|
|
1139
|
+
onClick: i[1] || (i[1] = (m) => n("update:modelValue", {
|
|
1139
1140
|
netsuiteId: "",
|
|
1140
1141
|
name: "",
|
|
1141
1142
|
subsidiaryName: "",
|
|
@@ -1143,9 +1144,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1143
1144
|
}))
|
|
1144
1145
|
})) : _("", !0)
|
|
1145
1146
|
]),
|
|
1146
|
-
t.isDuplicate ? (
|
|
1147
|
-
|
|
1148
|
-
x(
|
|
1147
|
+
t.isDuplicate ? (S(), V("div", Gt, " NetSuite location being used by another FeedMe location. ")) : _("", !0),
|
|
1148
|
+
u.value.netsuiteId ? (S(), V("div", Wt, [
|
|
1149
|
+
x(g, {
|
|
1149
1150
|
name: "cloud",
|
|
1150
1151
|
color: "neutral-gray-400",
|
|
1151
1152
|
size: "md",
|
|
@@ -1153,9 +1154,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1153
1154
|
outline: ""
|
|
1154
1155
|
}),
|
|
1155
1156
|
a("div", $t, [
|
|
1156
|
-
a("span", en, j(
|
|
1157
|
-
a("span", tn, "ID: " + j(
|
|
1158
|
-
a("span", nn, "Subsidiary: " + j(
|
|
1157
|
+
a("span", en, j(u.value.name), 1),
|
|
1158
|
+
a("span", tn, "ID: " + j(u.value.netsuiteId), 1),
|
|
1159
|
+
a("span", nn, "Subsidiary: " + j(u.value.subsidiaryName), 1)
|
|
1159
1160
|
])
|
|
1160
1161
|
])) : _("", !0)
|
|
1161
1162
|
]);
|
|
@@ -1182,8 +1183,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1182
1183
|
}
|
|
1183
1184
|
},
|
|
1184
1185
|
emits: ["update:loading", "update:showDialog"],
|
|
1185
|
-
setup(F, { emit:
|
|
1186
|
-
const s = le(),
|
|
1186
|
+
setup(F, { emit: y }) {
|
|
1187
|
+
const s = le(), u = te(), n = [
|
|
1187
1188
|
{
|
|
1188
1189
|
id: "fmLocation",
|
|
1189
1190
|
header: "FeedMe Location",
|
|
@@ -1208,29 +1209,29 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1208
1209
|
id: "nsLocation",
|
|
1209
1210
|
header: "NetSuite Location",
|
|
1210
1211
|
cell(h) {
|
|
1211
|
-
const C = h.row.original, k = b.value[C.dbName],
|
|
1212
|
-
([
|
|
1212
|
+
const C = h.row.original, k = b.value[C.dbName], v = Object.entries(b.value).some(
|
|
1213
|
+
([f, d]) => f !== C.dbName && d.netsuiteId === (k == null ? void 0 : k.netsuiteId)
|
|
1213
1214
|
);
|
|
1214
1215
|
return D(on, {
|
|
1215
|
-
isDuplicate:
|
|
1216
|
-
nsLocationOptions:
|
|
1216
|
+
isDuplicate: v,
|
|
1217
|
+
nsLocationOptions: m.value,
|
|
1217
1218
|
modelValue: k,
|
|
1218
1219
|
fmLocation: C,
|
|
1219
|
-
"onUpdate:modelValue": (
|
|
1220
|
-
|
|
1220
|
+
"onUpdate:modelValue": (f) => {
|
|
1221
|
+
f.netsuiteId ? b.value = {
|
|
1221
1222
|
...b.value,
|
|
1222
1223
|
[C.dbName]: {
|
|
1223
|
-
netsuiteId:
|
|
1224
|
-
name:
|
|
1225
|
-
subsidiaryName:
|
|
1226
|
-
subsidiaryId:
|
|
1224
|
+
netsuiteId: f.netsuiteId,
|
|
1225
|
+
name: f.name,
|
|
1226
|
+
subsidiaryName: f.subsidiaryName,
|
|
1227
|
+
subsidiaryId: f.subsidiaryId
|
|
1227
1228
|
}
|
|
1228
1229
|
} : delete b.value[C.dbName];
|
|
1229
1230
|
}
|
|
1230
1231
|
});
|
|
1231
1232
|
}
|
|
1232
1233
|
}
|
|
1233
|
-
], t = F,
|
|
1234
|
+
], t = F, i = y, b = M({}), w = M(), g = M(""), m = z(() => t.nsLocationsNotBeingUsed.map((h) => ({
|
|
1234
1235
|
label: h.name,
|
|
1235
1236
|
value: h
|
|
1236
1237
|
}))), l = z(() => Object.values(b.value).length === 0 || Object.values(b.value).some(
|
|
@@ -1238,22 +1239,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1238
1239
|
));
|
|
1239
1240
|
async function r() {
|
|
1240
1241
|
try {
|
|
1241
|
-
|
|
1242
|
+
i("update:loading", !0), await s.updateLocationConfigs(b.value), u.open({
|
|
1242
1243
|
message: "Locations updated successfully",
|
|
1243
1244
|
type: "success"
|
|
1244
|
-
}),
|
|
1245
|
+
}), i("update:showDialog", !1);
|
|
1245
1246
|
} catch {
|
|
1246
|
-
|
|
1247
|
+
u.open({
|
|
1247
1248
|
message: "Failed to update locations. Please try again.",
|
|
1248
1249
|
type: "error"
|
|
1249
1250
|
});
|
|
1250
1251
|
} finally {
|
|
1251
|
-
|
|
1252
|
+
i("update:loading", !1);
|
|
1252
1253
|
}
|
|
1253
1254
|
}
|
|
1254
1255
|
return (h, C) => {
|
|
1255
|
-
const k = E("FmTable"),
|
|
1256
|
-
return
|
|
1256
|
+
const k = E("FmTable"), v = E("FmForm"), f = E("FmSpacer"), d = E("FmButton"), c = E("FmDialog");
|
|
1257
|
+
return S(), X(c, {
|
|
1257
1258
|
modelValue: F.showDialog,
|
|
1258
1259
|
"onUpdate:modelValue": C[2] || (C[2] = (A) => h.$emit("update:showDialog", A)),
|
|
1259
1260
|
overlay: !0,
|
|
@@ -1263,7 +1264,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1263
1264
|
a("div", null, "Add locations", -1)
|
|
1264
1265
|
])),
|
|
1265
1266
|
"dialog-footer": R(() => [
|
|
1266
|
-
x(
|
|
1267
|
+
x(f, { class: "sm:hidden xs:hidden" }),
|
|
1267
1268
|
x(d, {
|
|
1268
1269
|
class: "sm:w-full xs:w-full",
|
|
1269
1270
|
label: "Submit",
|
|
@@ -1273,19 +1274,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1273
1274
|
}, null, 8, ["disabled"])
|
|
1274
1275
|
]),
|
|
1275
1276
|
default: R(() => [
|
|
1276
|
-
x(
|
|
1277
|
+
x(v, {
|
|
1277
1278
|
ref: "formRef",
|
|
1278
1279
|
class: "mb-4",
|
|
1279
|
-
"model-value":
|
|
1280
|
-
"onUpdate:modelValue": C[1] || (C[1] = (A) =>
|
|
1280
|
+
"model-value": w.value,
|
|
1281
|
+
"onUpdate:modelValue": C[1] || (C[1] = (A) => w.value = A)
|
|
1281
1282
|
}, {
|
|
1282
1283
|
default: R(() => [
|
|
1283
1284
|
x(k, {
|
|
1284
|
-
modelValue:
|
|
1285
|
-
"onUpdate:modelValue": C[0] || (C[0] = (A) =>
|
|
1285
|
+
modelValue: w.value,
|
|
1286
|
+
"onUpdate:modelValue": C[0] || (C[0] = (A) => w.value = A),
|
|
1286
1287
|
"row-data": t.fmLocationNotYetConfigured,
|
|
1287
1288
|
"column-defs": n,
|
|
1288
|
-
"search-value":
|
|
1289
|
+
"search-value": g.value,
|
|
1289
1290
|
"shrink-at": !1
|
|
1290
1291
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1291
1292
|
]),
|
|
@@ -1308,26 +1309,26 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1308
1309
|
loading: { type: Boolean }
|
|
1309
1310
|
},
|
|
1310
1311
|
emits: ["update:setting", "update:show", "update:loading", "submit"],
|
|
1311
|
-
setup(F, { emit:
|
|
1312
|
-
const s = ie(),
|
|
1312
|
+
setup(F, { emit: y }) {
|
|
1313
|
+
const s = ie(), u = W(), n = M(!1), t = F, i = y, b = pe(ee(t.setting));
|
|
1313
1314
|
ve([() => t.show], ([d]) => {
|
|
1314
1315
|
if (d)
|
|
1315
1316
|
for (const c of Object.keys(t.setting))
|
|
1316
1317
|
b[c] = t.setting[c];
|
|
1317
1318
|
});
|
|
1318
|
-
const
|
|
1319
|
+
const w = M(), g = ae(t, "show"), m = M(), l = M(""), r = z(() => t.setting.locations.filter(
|
|
1319
1320
|
(d) => d.name.toLowerCase().includes(l.value.toLowerCase()) || d.netSuiteId.toLowerCase().includes(l.value.toLowerCase())
|
|
1320
1321
|
)), h = [
|
|
1321
1322
|
{
|
|
1322
1323
|
id: "location",
|
|
1323
1324
|
header: () => "FeedMe Location",
|
|
1324
1325
|
cell(d) {
|
|
1325
|
-
const c = d.row.original, A =
|
|
1326
|
+
const c = d.row.original, A = u.locations.find(
|
|
1326
1327
|
(e) => e.type === c.type && e.doc._id === c.id
|
|
1327
1328
|
);
|
|
1328
1329
|
if (!A)
|
|
1329
1330
|
return D("div", "Unknown Location");
|
|
1330
|
-
const
|
|
1331
|
+
const p = D(ne.FmIcon, {
|
|
1331
1332
|
name: A.type,
|
|
1332
1333
|
color: "neutral-gray-400",
|
|
1333
1334
|
size: "md",
|
|
@@ -1335,7 +1336,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1335
1336
|
outline: !0
|
|
1336
1337
|
});
|
|
1337
1338
|
return D("div", { class: "flex items-center" }, [
|
|
1338
|
-
|
|
1339
|
+
p,
|
|
1339
1340
|
D("div", { class: "flex flex-col" }, [
|
|
1340
1341
|
D("span", { class: "font-medium" }, A.name),
|
|
1341
1342
|
D("span", { class: "text-xs text-gray-400" }, A.doc._id)
|
|
@@ -1350,7 +1351,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1350
1351
|
var e;
|
|
1351
1352
|
const c = d.row.original, A = (e = t.nsLocations.find(
|
|
1352
1353
|
(o) => o.netsuiteId === c.netSuiteId
|
|
1353
|
-
)) == null ? void 0 : e.subsidiaryName,
|
|
1354
|
+
)) == null ? void 0 : e.subsidiaryName, p = D(ne.FmIcon, {
|
|
1354
1355
|
name: "cloud",
|
|
1355
1356
|
color: "neutral-gray-400",
|
|
1356
1357
|
size: "md",
|
|
@@ -1358,7 +1359,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1358
1359
|
outline: !0
|
|
1359
1360
|
});
|
|
1360
1361
|
return D("div", { class: "flex items-center" }, [
|
|
1361
|
-
|
|
1362
|
+
p,
|
|
1362
1363
|
D("div", { class: "flex flex-col" }, [
|
|
1363
1364
|
D("span", { class: "font-medium" }, c.name),
|
|
1364
1365
|
D("span", { class: "text-xs text-gray-400" }, `ID: ${c.netSuiteId}`),
|
|
@@ -1367,7 +1368,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1367
1368
|
]);
|
|
1368
1369
|
}
|
|
1369
1370
|
}
|
|
1370
|
-
], { t: C } =
|
|
1371
|
+
], { t: C } = P(), k = [
|
|
1371
1372
|
"Unit Type",
|
|
1372
1373
|
"Inventory Item",
|
|
1373
1374
|
"Location",
|
|
@@ -1376,18 +1377,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1376
1377
|
"Purchase Order",
|
|
1377
1378
|
"Transfer Order",
|
|
1378
1379
|
"Inventory Transfer"
|
|
1379
|
-
],
|
|
1380
|
+
], v = z(() => u.locations.filter(
|
|
1380
1381
|
(d) => !t.setting.locations.some(
|
|
1381
1382
|
(c) => c.id === d.doc._id && c.type === d.type
|
|
1382
1383
|
)
|
|
1383
|
-
)),
|
|
1384
|
+
)), f = z(() => t.nsLocations.filter(
|
|
1384
1385
|
(d) => !t.setting.locations.some((c) => c.netSuiteId === d.netsuiteId)
|
|
1385
1386
|
));
|
|
1386
1387
|
return (d, c) => {
|
|
1387
|
-
const A = E("FmChip"),
|
|
1388
|
-
return
|
|
1389
|
-
modelValue: I(
|
|
1390
|
-
"onUpdate:modelValue": c[6] || (c[6] = (L) => se(
|
|
1388
|
+
const A = E("FmChip"), p = E("FmSearch"), e = E("FmTable"), o = E("FmButton"), B = E("FmSideSheet");
|
|
1389
|
+
return S(), X(B, {
|
|
1390
|
+
modelValue: I(g),
|
|
1391
|
+
"onUpdate:modelValue": c[6] || (c[6] = (L) => se(g) ? g.value = L : null),
|
|
1391
1392
|
header: I(C)("inventory.integration.netsuite.title"),
|
|
1392
1393
|
"dismiss-away": "",
|
|
1393
1394
|
"close-button": "",
|
|
@@ -1396,10 +1397,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1396
1397
|
default: R(() => {
|
|
1397
1398
|
var L;
|
|
1398
1399
|
return [
|
|
1399
|
-
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (
|
|
1400
|
+
(L = I(s).sessionUser.value) != null && L.role.isAdmin ? (S(), V("div", ln, [
|
|
1400
1401
|
c[7] || (c[7] = a("div", { class: "text-sm" }, " This integration keeps your FeedMe system and NetSuite in sync for the following modules: ", -1)),
|
|
1401
1402
|
a("div", rn, [
|
|
1402
|
-
(
|
|
1403
|
+
(S(), V(J, null, $(k, (N) => x(A, {
|
|
1403
1404
|
key: N,
|
|
1404
1405
|
label: N,
|
|
1405
1406
|
compact: ""
|
|
@@ -1408,7 +1409,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1408
1409
|
c[8] || (c[8] = a("div", { class: "text-xs mt-2" }, " Changes made in FeedMe or NetSuite will be reflected in both systems, ensuring data consistency and streamlined operations. ", -1)),
|
|
1409
1410
|
c[9] || (c[9] = a("hr", { class: "my-3" }, null, -1)),
|
|
1410
1411
|
a("div", un, [
|
|
1411
|
-
x(
|
|
1412
|
+
x(p, {
|
|
1412
1413
|
placeholder: "Search by [NetSuite Location]",
|
|
1413
1414
|
class: "w-[300px]",
|
|
1414
1415
|
modelValue: l.value,
|
|
@@ -1416,23 +1417,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1416
1417
|
}, null, 8, ["modelValue"])
|
|
1417
1418
|
]),
|
|
1418
1419
|
x(e, {
|
|
1419
|
-
modelValue:
|
|
1420
|
-
"onUpdate:modelValue": c[1] || (c[1] = (N) =>
|
|
1420
|
+
modelValue: m.value,
|
|
1421
|
+
"onUpdate:modelValue": c[1] || (c[1] = (N) => m.value = N),
|
|
1421
1422
|
"row-data": r.value,
|
|
1422
1423
|
"column-defs": h,
|
|
1423
1424
|
"shrink-at": !1,
|
|
1424
1425
|
"search-value": l.value
|
|
1425
1426
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
1426
|
-
])) : (
|
|
1427
|
+
])) : (S(), V("div", an, " Please contact your administrator to apply the changes. ")),
|
|
1427
1428
|
x(sn, {
|
|
1428
1429
|
"show-dialog": n.value,
|
|
1429
1430
|
"onUpdate:showDialog": [
|
|
1430
1431
|
c[2] || (c[2] = (N) => n.value = N),
|
|
1431
1432
|
c[3] || (c[3] = (N) => n.value = N)
|
|
1432
1433
|
],
|
|
1433
|
-
formRef:
|
|
1434
|
-
fmLocationNotYetConfigured:
|
|
1435
|
-
nsLocationsNotBeingUsed:
|
|
1434
|
+
formRef: w.value,
|
|
1435
|
+
fmLocationNotYetConfigured: v.value,
|
|
1436
|
+
nsLocationsNotBeingUsed: f.value
|
|
1436
1437
|
}, null, 8, ["show-dialog", "formRef", "fmLocationNotYetConfigured", "nsLocationsNotBeingUsed"])
|
|
1437
1438
|
];
|
|
1438
1439
|
}),
|
|
@@ -1447,7 +1448,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1447
1448
|
x(o, {
|
|
1448
1449
|
variant: "tertiary",
|
|
1449
1450
|
label: I(C)("common.close"),
|
|
1450
|
-
onClick: c[5] || (c[5] = (L) =>
|
|
1451
|
+
onClick: c[5] || (c[5] = (L) => i("update:show", !1))
|
|
1451
1452
|
}, null, 8, ["label"])
|
|
1452
1453
|
])
|
|
1453
1454
|
]),
|
|
@@ -1463,10 +1464,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1463
1464
|
},
|
|
1464
1465
|
emits: ["update:modelValue"],
|
|
1465
1466
|
setup(F) {
|
|
1466
|
-
const { t:
|
|
1467
|
+
const { t: y } = de(), s = Se(F, "modelValue"), u = [
|
|
1467
1468
|
{
|
|
1468
1469
|
id: "Code",
|
|
1469
|
-
header: () =>
|
|
1470
|
+
header: () => y("inventory.transfer.form.items.table.Code"),
|
|
1470
1471
|
accessorKey: "code",
|
|
1471
1472
|
size: 200,
|
|
1472
1473
|
cell(n) {
|
|
@@ -1492,7 +1493,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1492
1493
|
},
|
|
1493
1494
|
{
|
|
1494
1495
|
id: "Name",
|
|
1495
|
-
header: () =>
|
|
1496
|
+
header: () => y("inventory.transfer.form.items.table.Name"),
|
|
1496
1497
|
minSize: 300,
|
|
1497
1498
|
cell(n) {
|
|
1498
1499
|
const t = n.row.original;
|
|
@@ -1517,10 +1518,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1517
1518
|
},
|
|
1518
1519
|
{
|
|
1519
1520
|
id: "Amount",
|
|
1520
|
-
header: () =>
|
|
1521
|
+
header: () => y("inventory.transfer.form.items.table.Amount"),
|
|
1521
1522
|
minSize: 200,
|
|
1522
1523
|
cell(n) {
|
|
1523
|
-
const t = n.row.original,
|
|
1524
|
+
const t = n.row.original, i = n.row.index;
|
|
1524
1525
|
return D($e, {
|
|
1525
1526
|
style: {
|
|
1526
1527
|
flex: "1 1 0%"
|
|
@@ -1533,15 +1534,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1533
1534
|
unit: t.sku.unit,
|
|
1534
1535
|
"onUpdate:modelValue": (b) => {
|
|
1535
1536
|
if (!b) return;
|
|
1536
|
-
const
|
|
1537
|
+
const w = {
|
|
1537
1538
|
...t,
|
|
1538
1539
|
quantity: b.amount,
|
|
1539
1540
|
measurement: b.measurement
|
|
1540
1541
|
};
|
|
1541
1542
|
s.value = [
|
|
1542
|
-
...s.value.slice(0,
|
|
1543
|
-
|
|
1544
|
-
...s.value.slice(
|
|
1543
|
+
...s.value.slice(0, i),
|
|
1544
|
+
w,
|
|
1545
|
+
...s.value.slice(i + 1)
|
|
1545
1546
|
];
|
|
1546
1547
|
},
|
|
1547
1548
|
rules: [et(+Qe({ amount: 1, precision: 0 }))],
|
|
@@ -1554,7 +1555,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1554
1555
|
id: "Delete",
|
|
1555
1556
|
header: "",
|
|
1556
1557
|
cell(n) {
|
|
1557
|
-
const t = n.row.original,
|
|
1558
|
+
const t = n.row.original, i = n.row.index;
|
|
1558
1559
|
return D("div", { class: "flex justify-end" }, [
|
|
1559
1560
|
D(ne.FmButton, {
|
|
1560
1561
|
key: t.sku._id,
|
|
@@ -1564,7 +1565,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1564
1565
|
variant: "tertiary",
|
|
1565
1566
|
size: "md",
|
|
1566
1567
|
onClick: () => {
|
|
1567
|
-
s.value = [...s.value.slice(0,
|
|
1568
|
+
s.value = [...s.value.slice(0, i), ...s.value.slice(i + 1)];
|
|
1568
1569
|
}
|
|
1569
1570
|
})
|
|
1570
1571
|
]);
|
|
@@ -1578,12 +1579,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1578
1579
|
}
|
|
1579
1580
|
];
|
|
1580
1581
|
return (n, t) => {
|
|
1581
|
-
const
|
|
1582
|
-
return
|
|
1583
|
-
"column-defs":
|
|
1582
|
+
const i = E("FmTable");
|
|
1583
|
+
return S(), X(i, {
|
|
1584
|
+
"column-defs": u,
|
|
1584
1585
|
"row-data": s.value,
|
|
1585
1586
|
"row-key": (b) => b.sku._id,
|
|
1586
|
-
"empty-text": I(
|
|
1587
|
+
"empty-text": I(y)("inventory.transfer.form.items.table.empty"),
|
|
1587
1588
|
pagination: !1,
|
|
1588
1589
|
"virtual-scroll": { enabled: !0, itemSize: 48 }
|
|
1589
1590
|
}, null, 8, ["row-data", "row-key", "empty-text"]);
|
|
@@ -1592,41 +1593,41 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1592
1593
|
}), fn = { class: "flex items-center gap-8 mb-8" }, pn = /* @__PURE__ */ Y({
|
|
1593
1594
|
__name: "InventoryTransferOutTable",
|
|
1594
1595
|
setup(F) {
|
|
1595
|
-
const
|
|
1596
|
+
const y = M([]), s = ge(), u = M(!1), n = M(!1), t = te(), i = W();
|
|
1596
1597
|
fe(async () => {
|
|
1597
|
-
const
|
|
1598
|
-
l.setDate(l.getDate() - 30),
|
|
1598
|
+
const m = /* @__PURE__ */ new Date(), l = /* @__PURE__ */ new Date();
|
|
1599
|
+
l.setDate(l.getDate() - 30), u.value = !0;
|
|
1599
1600
|
try {
|
|
1600
1601
|
const r = await s.getInventoryTransferHistory(
|
|
1601
|
-
|
|
1602
|
+
i.currentLocationDBName,
|
|
1602
1603
|
l,
|
|
1603
|
-
|
|
1604
|
+
m
|
|
1604
1605
|
);
|
|
1605
|
-
|
|
1606
|
+
y.value = r;
|
|
1606
1607
|
} catch (r) {
|
|
1607
1608
|
console.error("Error fetching inventory transfer history:", r);
|
|
1608
1609
|
} finally {
|
|
1609
|
-
|
|
1610
|
+
u.value = !1;
|
|
1610
1611
|
}
|
|
1611
1612
|
});
|
|
1612
1613
|
async function b() {
|
|
1613
1614
|
try {
|
|
1614
|
-
n.value = !0, await s.manualSyncInventoryTransfer(
|
|
1615
|
+
n.value = !0, await s.manualSyncInventoryTransfer(i.currentLocationDBName), t == null || t.open({
|
|
1615
1616
|
title: "Sync Started",
|
|
1616
1617
|
message: "Inventory transfers sync queued successfully.",
|
|
1617
1618
|
type: "success"
|
|
1618
1619
|
});
|
|
1619
|
-
} catch (
|
|
1620
|
+
} catch (m) {
|
|
1620
1621
|
t == null || t.open({
|
|
1621
1622
|
title: "Sync Failed",
|
|
1622
|
-
message: `Failed to queue inventory transfers sync. ${
|
|
1623
|
+
message: `Failed to queue inventory transfers sync. ${m == null ? void 0 : m.message}`,
|
|
1623
1624
|
type: "error"
|
|
1624
1625
|
});
|
|
1625
1626
|
} finally {
|
|
1626
1627
|
n.value = !1;
|
|
1627
1628
|
}
|
|
1628
1629
|
}
|
|
1629
|
-
const
|
|
1630
|
+
const w = [
|
|
1630
1631
|
// {
|
|
1631
1632
|
// id: 'type',
|
|
1632
1633
|
// header: 'Type',
|
|
@@ -1637,8 +1638,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1637
1638
|
{
|
|
1638
1639
|
id: "destinationLocation",
|
|
1639
1640
|
header: "Destination Location",
|
|
1640
|
-
cell: (
|
|
1641
|
-
const l =
|
|
1641
|
+
cell: (m) => {
|
|
1642
|
+
const l = m.row.original.destinationLocation.netSuiteName;
|
|
1642
1643
|
return l ? D(
|
|
1643
1644
|
ne.FmTooltip,
|
|
1644
1645
|
{ zIndex: 51 },
|
|
@@ -1656,22 +1657,22 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1656
1657
|
{
|
|
1657
1658
|
id: "netsuite",
|
|
1658
1659
|
header: () => "NetSuite",
|
|
1659
|
-
cell(
|
|
1660
|
+
cell(m) {
|
|
1660
1661
|
return D("div", { class: "flex flex-col" }, [
|
|
1661
1662
|
D(
|
|
1662
1663
|
"span",
|
|
1663
1664
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1664
|
-
`ID: ${
|
|
1665
|
+
`ID: ${m.row.original.netsuiteId ?? "N/A"}`
|
|
1665
1666
|
),
|
|
1666
1667
|
D(
|
|
1667
1668
|
"span",
|
|
1668
1669
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1669
|
-
`Transaction ID: ${
|
|
1670
|
+
`Transaction ID: ${m.row.original.netsuiteTranId ?? "N/A"}`
|
|
1670
1671
|
),
|
|
1671
1672
|
D(
|
|
1672
1673
|
"span",
|
|
1673
1674
|
{ class: "fm-typo-en-body-sm-400" },
|
|
1674
|
-
`Transaction Date: ${
|
|
1675
|
+
`Transaction Date: ${m.row.original.netsuiteTranDate ?? "N/A"}`
|
|
1675
1676
|
)
|
|
1676
1677
|
]);
|
|
1677
1678
|
}
|
|
@@ -1679,8 +1680,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1679
1680
|
{
|
|
1680
1681
|
id: "adjustment",
|
|
1681
1682
|
header: () => "Adjustment (FeedMe)",
|
|
1682
|
-
cell(
|
|
1683
|
-
const l =
|
|
1683
|
+
cell(m) {
|
|
1684
|
+
const l = m.row.original.adjustmentId;
|
|
1684
1685
|
return D("div", { class: "flex flex-col" }, [
|
|
1685
1686
|
D("span", { class: "fm-typo-en-body-sm-400" }, `ID: ${l ?? "N/A"}`),
|
|
1686
1687
|
D(
|
|
@@ -1694,8 +1695,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1694
1695
|
{
|
|
1695
1696
|
id: "items",
|
|
1696
1697
|
header: () => "Items",
|
|
1697
|
-
cell(
|
|
1698
|
-
const l =
|
|
1698
|
+
cell(m) {
|
|
1699
|
+
const l = m.row.original.items;
|
|
1699
1700
|
return D(
|
|
1700
1701
|
"div",
|
|
1701
1702
|
{ class: "overflow-auto" },
|
|
@@ -1712,10 +1713,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1712
1713
|
},
|
|
1713
1714
|
size: 150
|
|
1714
1715
|
}
|
|
1715
|
-
],
|
|
1716
|
-
return (
|
|
1716
|
+
], g = M();
|
|
1717
|
+
return (m, l) => {
|
|
1717
1718
|
const r = E("FmButton"), h = E("FmTable");
|
|
1718
|
-
return
|
|
1719
|
+
return S(), V(J, null, [
|
|
1719
1720
|
a("div", fn, [
|
|
1720
1721
|
l[1] || (l[1] = a("span", null, "Last 30 Days:", -1)),
|
|
1721
1722
|
x(r, {
|
|
@@ -1730,11 +1731,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1730
1731
|
}, null, 8, ["loading"])
|
|
1731
1732
|
]),
|
|
1732
1733
|
x(h, {
|
|
1733
|
-
modelValue:
|
|
1734
|
-
"onUpdate:modelValue": l[0] || (l[0] = (C) =>
|
|
1735
|
-
"row-data":
|
|
1736
|
-
"column-defs":
|
|
1737
|
-
loading:
|
|
1734
|
+
modelValue: g.value,
|
|
1735
|
+
"onUpdate:modelValue": l[0] || (l[0] = (C) => g.value = C),
|
|
1736
|
+
"row-data": y.value,
|
|
1737
|
+
"column-defs": w,
|
|
1738
|
+
loading: u.value
|
|
1738
1739
|
}, null, 8, ["modelValue", "row-data", "loading"])
|
|
1739
1740
|
], 64);
|
|
1740
1741
|
};
|
|
@@ -1759,12 +1760,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1759
1760
|
currentLocationSubsidiary: {}
|
|
1760
1761
|
},
|
|
1761
1762
|
setup(F) {
|
|
1762
|
-
const
|
|
1763
|
-
const A = s.currentLocationSetting,
|
|
1763
|
+
const y = ce(), s = le(), u = be(), n = ge(), t = te(), { t: i } = de(), b = M([]), w = [{ label: "Transfer Out" }, { label: "History" }], g = M(w[0]), m = M(!1), l = M(null), r = M(null), h = F, C = z(() => {
|
|
1764
|
+
const A = s.currentLocationSetting, p = s.configuredLocations;
|
|
1764
1765
|
return h.nsLocations.map((e) => ({
|
|
1765
1766
|
label: e.name,
|
|
1766
1767
|
value: e,
|
|
1767
|
-
disabled:
|
|
1768
|
+
disabled: p.some((o) => o.netSuiteId === e.netsuiteId) || e.subsidiaryId !== (A == null ? void 0 : A.subsidiaryId)
|
|
1768
1769
|
}));
|
|
1769
1770
|
}), k = z({
|
|
1770
1771
|
get() {
|
|
@@ -1775,23 +1776,23 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1775
1776
|
l.value = null;
|
|
1776
1777
|
return;
|
|
1777
1778
|
}
|
|
1778
|
-
const
|
|
1779
|
-
|
|
1779
|
+
const p = l.value ?? /* @__PURE__ */ new Date(), e = new Date(A);
|
|
1780
|
+
p.setFullYear(e.getFullYear(), e.getMonth(), e.getDate()), l.value = new Date(p);
|
|
1780
1781
|
}
|
|
1781
|
-
}),
|
|
1782
|
+
}), v = z({
|
|
1782
1783
|
get() {
|
|
1783
1784
|
if (!l.value) return null;
|
|
1784
|
-
const A = String(l.value.getHours()).padStart(2, "0"),
|
|
1785
|
-
return `${A}:${
|
|
1785
|
+
const A = String(l.value.getHours()).padStart(2, "0"), p = String(l.value.getMinutes()).padStart(2, "0");
|
|
1786
|
+
return `${A}:${p}`;
|
|
1786
1787
|
},
|
|
1787
1788
|
set(A) {
|
|
1788
1789
|
if (!A) return;
|
|
1789
|
-
const [
|
|
1790
|
-
o.setHours(
|
|
1790
|
+
const [p, e] = A.split(":").map(Number), o = l.value ?? /* @__PURE__ */ new Date();
|
|
1791
|
+
o.setHours(p, e), l.value = new Date(o);
|
|
1791
1792
|
}
|
|
1792
|
-
}),
|
|
1793
|
+
}), f = z(() => k.value && v.value && r.value && b.value.length > 0 && !m.value);
|
|
1793
1794
|
async function d() {
|
|
1794
|
-
if (
|
|
1795
|
+
if (f.value) {
|
|
1795
1796
|
if (!h.currentLocationSetting) {
|
|
1796
1797
|
t.open({
|
|
1797
1798
|
message: "Current location setting is not available",
|
|
@@ -1799,15 +1800,15 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1799
1800
|
});
|
|
1800
1801
|
return;
|
|
1801
1802
|
}
|
|
1802
|
-
|
|
1803
|
+
m.value = !0;
|
|
1803
1804
|
try {
|
|
1804
1805
|
const A = {
|
|
1805
1806
|
items: b.value,
|
|
1806
1807
|
date: l.value.toISOString(),
|
|
1807
1808
|
netsuiteLocationId: r.value.netsuiteId,
|
|
1808
1809
|
netsuiteLocationName: r.value.name
|
|
1809
|
-
},
|
|
1810
|
-
await n.createInventoryTransfer(
|
|
1810
|
+
}, p = `${h.currentLocationSetting.type}_${h.currentLocationSetting.id}`;
|
|
1811
|
+
await n.createInventoryTransfer(p, A), b.value = [], l.value = null, r.value = null, t.open({
|
|
1811
1812
|
message: "Inventort transfer created successfully",
|
|
1812
1813
|
type: "success"
|
|
1813
1814
|
});
|
|
@@ -1817,12 +1818,12 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1817
1818
|
type: "error"
|
|
1818
1819
|
});
|
|
1819
1820
|
} finally {
|
|
1820
|
-
|
|
1821
|
+
m.value = !1;
|
|
1821
1822
|
}
|
|
1822
1823
|
}
|
|
1823
1824
|
}
|
|
1824
1825
|
function c() {
|
|
1825
|
-
const A = s.currentLocationSubsidiary(),
|
|
1826
|
+
const A = s.currentLocationSubsidiary(), p = s.getAvailableItems(A.id), e = u.skus.filter((L) => p.includes(L._id)).map((L) => L._id), o = u.skus.map(
|
|
1826
1827
|
(L) => ({
|
|
1827
1828
|
label: L.name,
|
|
1828
1829
|
sublabel: L.code,
|
|
@@ -1833,8 +1834,8 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1833
1834
|
var N;
|
|
1834
1835
|
return (N = b.value) == null ? void 0 : N.find((H) => H.sku._id === L.value._id);
|
|
1835
1836
|
}).map((L) => L.value);
|
|
1836
|
-
|
|
1837
|
-
title:
|
|
1837
|
+
y.open({
|
|
1838
|
+
title: i("inventory.transfer.form.items.selectItem"),
|
|
1838
1839
|
closeButton: !0,
|
|
1839
1840
|
contentComponent: Ye,
|
|
1840
1841
|
contentComponentProps: {
|
|
@@ -1843,11 +1844,11 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1843
1844
|
virtualScroll: !0
|
|
1844
1845
|
},
|
|
1845
1846
|
primaryActions: {
|
|
1846
|
-
text:
|
|
1847
|
+
text: i("common.confirm"),
|
|
1847
1848
|
close: !0
|
|
1848
1849
|
},
|
|
1849
1850
|
secondaryActions: {
|
|
1850
|
-
text:
|
|
1851
|
+
text: i("common.close"),
|
|
1851
1852
|
close: !0,
|
|
1852
1853
|
variant: "tertiary"
|
|
1853
1854
|
}
|
|
@@ -1867,18 +1868,18 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1867
1868
|
H.sort((U, O) => U.sku.code.localeCompare(O.sku.code)), b.value = H;
|
|
1868
1869
|
});
|
|
1869
1870
|
}
|
|
1870
|
-
return (A,
|
|
1871
|
+
return (A, p) => {
|
|
1871
1872
|
const e = E("FmButtonGroup"), o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"), N = E("FmTimePicker"), H = E("FmSelect"), U = E("FmIcon"), O = E("FmButton");
|
|
1872
|
-
return
|
|
1873
|
+
return S(), V("div", vn, [
|
|
1873
1874
|
x(e, {
|
|
1874
|
-
modelValue:
|
|
1875
|
-
"onUpdate:modelValue":
|
|
1876
|
-
items:
|
|
1875
|
+
modelValue: g.value,
|
|
1876
|
+
"onUpdate:modelValue": p[0] || (p[0] = (T) => g.value = T),
|
|
1877
|
+
items: w
|
|
1877
1878
|
}, null, 8, ["modelValue"]),
|
|
1878
|
-
|
|
1879
|
-
I(s).inventoryTransferOutEnabled ? (
|
|
1879
|
+
g.value.label === "Transfer Out" ? (S(), V(J, { key: 0 }, [
|
|
1880
|
+
I(s).inventoryTransferOutEnabled ? (S(), V("div", gn, [
|
|
1880
1881
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1881
|
-
default: R(() =>
|
|
1882
|
+
default: R(() => p[6] || (p[6] = [
|
|
1882
1883
|
q("Type")
|
|
1883
1884
|
])),
|
|
1884
1885
|
_: 1
|
|
@@ -1888,13 +1889,13 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1888
1889
|
disabled: "",
|
|
1889
1890
|
"prepend-icon": "lock"
|
|
1890
1891
|
}, {
|
|
1891
|
-
default: R(() =>
|
|
1892
|
+
default: R(() => p[7] || (p[7] = [
|
|
1892
1893
|
q("Transfer out")
|
|
1893
1894
|
])),
|
|
1894
1895
|
_: 1
|
|
1895
1896
|
}),
|
|
1896
1897
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1897
|
-
default: R(() =>
|
|
1898
|
+
default: R(() => p[8] || (p[8] = [
|
|
1898
1899
|
q("Subsidiary")
|
|
1899
1900
|
])),
|
|
1900
1901
|
_: 1
|
|
@@ -1910,42 +1911,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1910
1911
|
_: 1
|
|
1911
1912
|
}),
|
|
1912
1913
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1913
|
-
default: R(() =>
|
|
1914
|
+
default: R(() => p[9] || (p[9] = [
|
|
1914
1915
|
q("Transaction date")
|
|
1915
1916
|
])),
|
|
1916
1917
|
_: 1
|
|
1917
1918
|
}),
|
|
1918
1919
|
x(L, {
|
|
1919
1920
|
modelValue: k.value,
|
|
1920
|
-
"onUpdate:modelValue":
|
|
1921
|
+
"onUpdate:modelValue": p[1] || (p[1] = (T) => k.value = T)
|
|
1921
1922
|
}, null, 8, ["modelValue"]),
|
|
1922
1923
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1923
|
-
default: R(() =>
|
|
1924
|
+
default: R(() => p[10] || (p[10] = [
|
|
1924
1925
|
q("Transaction time")
|
|
1925
1926
|
])),
|
|
1926
1927
|
_: 1
|
|
1927
1928
|
}),
|
|
1928
1929
|
x(N, {
|
|
1929
|
-
modelValue:
|
|
1930
|
-
"onUpdate:modelValue":
|
|
1930
|
+
modelValue: v.value,
|
|
1931
|
+
"onUpdate:modelValue": p[2] || (p[2] = (T) => v.value = T)
|
|
1931
1932
|
}, null, 8, ["modelValue"]),
|
|
1932
1933
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1933
|
-
default: R(() =>
|
|
1934
|
+
default: R(() => p[11] || (p[11] = [
|
|
1934
1935
|
q("NetSuite Location")
|
|
1935
1936
|
])),
|
|
1936
1937
|
_: 1
|
|
1937
1938
|
}),
|
|
1938
1939
|
a("div", yn, [
|
|
1939
|
-
r.value ? _("", !0) : (
|
|
1940
|
+
r.value ? _("", !0) : (S(), X(H, {
|
|
1940
1941
|
key: 0,
|
|
1941
1942
|
class: "my-4 w-full",
|
|
1942
1943
|
modelValue: r.value,
|
|
1943
|
-
"onUpdate:modelValue":
|
|
1944
|
+
"onUpdate:modelValue": p[3] || (p[3] = (T) => r.value = T),
|
|
1944
1945
|
searchable: "",
|
|
1945
1946
|
searchTarget: "label",
|
|
1946
1947
|
items: C.value
|
|
1947
1948
|
}, null, 8, ["modelValue", "items"])),
|
|
1948
|
-
r.value ? (
|
|
1949
|
+
r.value ? (S(), V("div", An, [
|
|
1949
1950
|
x(U, {
|
|
1950
1951
|
name: "cloud",
|
|
1951
1952
|
color: "neutral-gray-400",
|
|
@@ -1962,7 +1963,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1962
1963
|
class: "ml-2",
|
|
1963
1964
|
variant: "secondary",
|
|
1964
1965
|
label: "Clear",
|
|
1965
|
-
onClick:
|
|
1966
|
+
onClick: p[4] || (p[4] = (T) => r.value = null)
|
|
1966
1967
|
})
|
|
1967
1968
|
])) : _("", !0)
|
|
1968
1969
|
]),
|
|
@@ -1977,7 +1978,7 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1977
1978
|
]),
|
|
1978
1979
|
x(mn, {
|
|
1979
1980
|
modelValue: b.value,
|
|
1980
|
-
"onUpdate:modelValue":
|
|
1981
|
+
"onUpdate:modelValue": p[5] || (p[5] = (T) => b.value = T)
|
|
1981
1982
|
}, null, 8, ["modelValue"]),
|
|
1982
1983
|
a("div", wn, [
|
|
1983
1984
|
x(O, {
|
|
@@ -1985,21 +1986,21 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
1985
1986
|
variant: "primary",
|
|
1986
1987
|
"prepend-icon": "add",
|
|
1987
1988
|
label: "Create",
|
|
1988
|
-
disabled: !
|
|
1989
|
-
loading:
|
|
1989
|
+
disabled: !f.value,
|
|
1990
|
+
loading: m.value,
|
|
1990
1991
|
onClick: d
|
|
1991
1992
|
}, null, 8, ["disabled", "loading"])
|
|
1992
1993
|
])
|
|
1993
|
-
])) : (
|
|
1994
|
+
])) : (S(), V("div", kn, [
|
|
1994
1995
|
x(o, { class: "fm-typo-en-body-md-600" }, {
|
|
1995
|
-
default: R(() =>
|
|
1996
|
+
default: R(() => p[12] || (p[12] = [
|
|
1996
1997
|
q(" Feature is not enabled. Please contact your administrator. ")
|
|
1997
1998
|
])),
|
|
1998
1999
|
_: 1
|
|
1999
2000
|
})
|
|
2000
2001
|
]))
|
|
2001
2002
|
], 64)) : _("", !0),
|
|
2002
|
-
|
|
2003
|
+
g.value.label === "History" ? (S(), V("div", Bn, [
|
|
2003
2004
|
x(pn)
|
|
2004
2005
|
])) : _("", !0)
|
|
2005
2006
|
]);
|
|
@@ -2016,42 +2017,78 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2016
2017
|
currentLocationSubsidiary: {}
|
|
2017
2018
|
},
|
|
2018
2019
|
setup(F) {
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
i.value = !0;
|
|
2020
|
+
const y = ce(), s = ge(), u = te(), n = M(!1), t = F, i = M([]);
|
|
2021
|
+
async function b() {
|
|
2022
|
+
var g;
|
|
2023
|
+
n.value = !0;
|
|
2024
2024
|
try {
|
|
2025
|
-
const
|
|
2026
|
-
|
|
2025
|
+
const m = ((g = t.currentLocationSetting) == null ? void 0 : g.id) || "", l = await s.getUnSyncTransferInOrders(m);
|
|
2026
|
+
i.value = l, u.open({
|
|
2027
2027
|
message: "Check unsync transfer in order successfully",
|
|
2028
2028
|
type: "success"
|
|
2029
2029
|
});
|
|
2030
2030
|
} catch {
|
|
2031
|
-
|
|
2031
|
+
u.open({
|
|
2032
2032
|
message: "Failed to check unsync transfer in order",
|
|
2033
2033
|
type: "error"
|
|
2034
2034
|
});
|
|
2035
2035
|
} finally {
|
|
2036
|
-
|
|
2036
|
+
n.value = !1;
|
|
2037
2037
|
}
|
|
2038
2038
|
}
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2039
|
+
async function w() {
|
|
2040
|
+
if (i.value.length === 0) {
|
|
2041
|
+
u.open({
|
|
2042
|
+
message: "No unsynced transfer orders to sync",
|
|
2043
|
+
type: "info"
|
|
2044
|
+
});
|
|
2045
|
+
return;
|
|
2046
|
+
}
|
|
2047
|
+
y.open({
|
|
2048
|
+
title: "Sync Transfer Order",
|
|
2049
|
+
message: "Are you sure you want to sync these transfer orders?",
|
|
2050
|
+
primaryActions: { text: "Proceed", close: !0 }
|
|
2051
|
+
}).onPrimary(async () => {
|
|
2052
|
+
n.value = !0;
|
|
2053
|
+
try {
|
|
2054
|
+
await s.manualSyncMultipleTransferInOrders(i.value), await new Promise((g) => setTimeout(g, 5e3)), u.open({
|
|
2055
|
+
message: "Sync transfer orders request sent successfully",
|
|
2056
|
+
type: "success"
|
|
2057
|
+
});
|
|
2058
|
+
} catch (g) {
|
|
2059
|
+
console.log(g), u.open({
|
|
2060
|
+
message: "Failed to sync transfer orders",
|
|
2061
|
+
type: "error"
|
|
2062
|
+
});
|
|
2063
|
+
} finally {
|
|
2064
|
+
n.value = !1;
|
|
2065
|
+
}
|
|
2066
|
+
});
|
|
2067
|
+
}
|
|
2068
|
+
return (g, m) => {
|
|
2069
|
+
const l = E("FmButton");
|
|
2070
|
+
return S(), V("div", En, [
|
|
2042
2071
|
a("span", null, "Current date and time: " + j((/* @__PURE__ */ new Date()).toLocaleString()), 1),
|
|
2043
|
-
x(
|
|
2072
|
+
x(l, {
|
|
2044
2073
|
label: "Check Unsync Transfer Order (Last 2 months)",
|
|
2045
2074
|
variant: "primary",
|
|
2046
|
-
onClick:
|
|
2047
|
-
disabled:
|
|
2048
|
-
loading:
|
|
2075
|
+
onClick: b,
|
|
2076
|
+
disabled: n.value,
|
|
2077
|
+
loading: n.value
|
|
2049
2078
|
}, null, 8, ["disabled", "loading"]),
|
|
2050
|
-
|
|
2051
|
-
|
|
2079
|
+
i.value.length > 0 ? (S(), V("div", Fn, [
|
|
2080
|
+
m[0] || (m[0] = a("p", null, "Transfer Order NetSuite ID not match with existing orders", -1)),
|
|
2052
2081
|
a("ul", Ln, [
|
|
2053
|
-
(
|
|
2054
|
-
])
|
|
2082
|
+
(S(!0), V(J, null, $(i.value, (r) => (S(), V("li", { key: r }, j(r), 1))), 128))
|
|
2083
|
+
]),
|
|
2084
|
+
i.value.length > 0 ? (S(), X(l, {
|
|
2085
|
+
key: 0,
|
|
2086
|
+
label: "Sync now",
|
|
2087
|
+
variant: "destructive",
|
|
2088
|
+
onClick: w,
|
|
2089
|
+
disabled: n.value,
|
|
2090
|
+
loading: n.value
|
|
2091
|
+
}, null, 8, ["disabled", "loading"])) : _("", !0)
|
|
2055
2092
|
])) : _("", !0)
|
|
2056
2093
|
]);
|
|
2057
2094
|
};
|
|
@@ -2064,9 +2101,9 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2064
2101
|
loading: { type: Boolean }
|
|
2065
2102
|
},
|
|
2066
2103
|
emits: ["update:show"],
|
|
2067
|
-
setup(F, { emit:
|
|
2104
|
+
setup(F, { emit: y }) {
|
|
2068
2105
|
var k;
|
|
2069
|
-
const s = ie(),
|
|
2106
|
+
const s = ie(), u = le(), n = F, t = ae(n, "show"), { t: i } = P(), b = y, w = W(), g = ((k = w._currentLocation) == null ? void 0 : k.type) || "", m = [
|
|
2070
2107
|
{
|
|
2071
2108
|
label: "Inventory Transfer (Out)",
|
|
2072
2109
|
value: "inventoryTransfer"
|
|
@@ -2077,42 +2114,42 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2077
2114
|
value: "transferOrder"
|
|
2078
2115
|
/* TRANSFER_ORDER */
|
|
2079
2116
|
}
|
|
2080
|
-
], l = M(
|
|
2081
|
-
(
|
|
2117
|
+
], l = M(m[0].value), r = z(() => u.currentLocationSubsidiary()), h = z(() => u.currentLocationSetting), C = z(() => n.nsLocations.filter(
|
|
2118
|
+
(v) => v.subsidiaryId === r.value.id || v.netsuiteId === r.value.id
|
|
2082
2119
|
));
|
|
2083
|
-
return (
|
|
2120
|
+
return (v, f) => {
|
|
2084
2121
|
var e;
|
|
2085
|
-
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"),
|
|
2086
|
-
return
|
|
2122
|
+
const d = E("FmIcon"), c = E("FmTabs"), A = E("FmButton"), p = E("FmSideSheet");
|
|
2123
|
+
return S(), X(p, {
|
|
2087
2124
|
modelValue: I(t),
|
|
2088
|
-
"onUpdate:modelValue":
|
|
2125
|
+
"onUpdate:modelValue": f[2] || (f[2] = (o) => se(t) ? t.value = o : null),
|
|
2089
2126
|
header: "Data migration (Xilnex)",
|
|
2090
2127
|
"dismiss-away": "",
|
|
2091
2128
|
"close-button": "",
|
|
2092
2129
|
"max-width": 800
|
|
2093
2130
|
}, oe({
|
|
2094
2131
|
default: R(() => [
|
|
2095
|
-
I(
|
|
2096
|
-
l.value === "inventoryTransfer" ? (
|
|
2132
|
+
I(u).isCurrentLocationBindedToNetSuite ? (S(), V(J, { key: 1 }, [
|
|
2133
|
+
l.value === "inventoryTransfer" ? (S(), X(Cn, {
|
|
2097
2134
|
key: 0,
|
|
2098
2135
|
currentLocationSetting: h.value,
|
|
2099
2136
|
nsLocations: C.value,
|
|
2100
2137
|
currentLocationSubsidiary: r.value
|
|
2101
2138
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0),
|
|
2102
|
-
l.value === "transferOrder" ? (
|
|
2139
|
+
l.value === "transferOrder" ? (S(), X(Vn, {
|
|
2103
2140
|
key: 1,
|
|
2104
2141
|
currentLocationSetting: h.value,
|
|
2105
2142
|
nsLocations: C.value,
|
|
2106
2143
|
currentLocationSubsidiary: r.value
|
|
2107
2144
|
}, null, 8, ["currentLocationSetting", "nsLocations", "currentLocationSubsidiary"])) : _("", !0)
|
|
2108
|
-
], 64)) : (
|
|
2145
|
+
], 64)) : (S(), V("div", On, " Netsuite is not configured for this location. Please contact your administrator. "))
|
|
2109
2146
|
]),
|
|
2110
2147
|
"side-sheet-footer": R(() => [
|
|
2111
2148
|
a("div", jn, [
|
|
2112
2149
|
x(A, {
|
|
2113
2150
|
variant: "tertiary",
|
|
2114
|
-
label: I(
|
|
2115
|
-
onClick:
|
|
2151
|
+
label: I(i)("common.close"),
|
|
2152
|
+
onClick: f[1] || (f[1] = (o) => b("update:show", !1))
|
|
2116
2153
|
}, null, 8, ["label"])
|
|
2117
2154
|
])
|
|
2118
2155
|
]),
|
|
@@ -2125,19 +2162,19 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2125
2162
|
return [
|
|
2126
2163
|
a("div", Nn, [
|
|
2127
2164
|
a("div", Dn, [
|
|
2128
|
-
|
|
2165
|
+
f[3] || (f[3] = a("div", { class: "fm-typo-en-title-md-600" }, "NetSuite Integration", -1)),
|
|
2129
2166
|
a("div", Rn, [
|
|
2130
2167
|
x(d, {
|
|
2131
|
-
name: I(
|
|
2168
|
+
name: I(g),
|
|
2132
2169
|
size: "sm"
|
|
2133
2170
|
}, null, 8, ["name"]),
|
|
2134
|
-
a("div", Mn, j((o = I(
|
|
2171
|
+
a("div", Mn, j((o = I(w)._currentLocation) == null ? void 0 : o.name), 1)
|
|
2135
2172
|
])
|
|
2136
2173
|
]),
|
|
2137
2174
|
x(c, {
|
|
2138
2175
|
"model-value": l.value,
|
|
2139
|
-
"onUpdate:modelValue":
|
|
2140
|
-
items:
|
|
2176
|
+
"onUpdate:modelValue": f[0] || (f[0] = (B) => l.value = B),
|
|
2177
|
+
items: m
|
|
2141
2178
|
}, null, 8, ["model-value"])
|
|
2142
2179
|
])
|
|
2143
2180
|
];
|
|
@@ -2150,31 +2187,31 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2150
2187
|
}), zn = { class: "flex justify-center" }, Hn = ["src"], _n = { class: "flex flex-col items-center gap-2" }, Xn = { class: "text-lg font-bold" }, Un = { class: "text-fm-color-neutral-gray-300" }, Qn = /* @__PURE__ */ Y({
|
|
2151
2188
|
__name: "NetSuite",
|
|
2152
2189
|
setup(F) {
|
|
2153
|
-
const
|
|
2190
|
+
const y = le(), s = te(), u = M(!1), n = M(!1);
|
|
2154
2191
|
async function t() {
|
|
2155
2192
|
n.value = !0;
|
|
2156
2193
|
}
|
|
2157
|
-
const
|
|
2194
|
+
const i = M([]);
|
|
2158
2195
|
ze(async () => {
|
|
2159
|
-
if (
|
|
2160
|
-
|
|
2196
|
+
if (y.isReady && y.isEnabled) {
|
|
2197
|
+
u.value = !0;
|
|
2161
2198
|
try {
|
|
2162
|
-
const
|
|
2163
|
-
|
|
2199
|
+
const w = await y.getNetSuiteLocationOptions();
|
|
2200
|
+
i.value = w;
|
|
2164
2201
|
} catch {
|
|
2165
2202
|
s.open({
|
|
2166
2203
|
message: "Failed to fetch NetSuite locations",
|
|
2167
2204
|
type: "error"
|
|
2168
2205
|
});
|
|
2169
2206
|
} finally {
|
|
2170
|
-
|
|
2207
|
+
u.value = !1;
|
|
2171
2208
|
}
|
|
2172
2209
|
}
|
|
2173
2210
|
});
|
|
2174
|
-
const { t: b } =
|
|
2175
|
-
return (
|
|
2176
|
-
const
|
|
2177
|
-
return I(
|
|
2211
|
+
const { t: b } = P();
|
|
2212
|
+
return (w, g) => {
|
|
2213
|
+
const m = E("FmCardSection"), l = E("FmCard");
|
|
2214
|
+
return I(y).isEnabled ? (S(), V(J, { key: 0 }, [
|
|
2178
2215
|
x(l, {
|
|
2179
2216
|
class: Z({
|
|
2180
2217
|
"w-full": !0,
|
|
@@ -2183,10 +2220,10 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2183
2220
|
"cursor-pointer": !0,
|
|
2184
2221
|
"hover:border-fm-color-primary": !0
|
|
2185
2222
|
}),
|
|
2186
|
-
onClick:
|
|
2223
|
+
onClick: g[0] || (g[0] = (r) => t())
|
|
2187
2224
|
}, {
|
|
2188
2225
|
default: R(() => [
|
|
2189
|
-
x(
|
|
2226
|
+
x(m, null, {
|
|
2190
2227
|
default: R(() => [
|
|
2191
2228
|
a("div", zn, [
|
|
2192
2229
|
a("img", {
|
|
@@ -2204,36 +2241,36 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2204
2241
|
]),
|
|
2205
2242
|
_: 1
|
|
2206
2243
|
}),
|
|
2207
|
-
I(
|
|
2244
|
+
I(y).state.setting ? (S(), X(ue, {
|
|
2208
2245
|
key: 0,
|
|
2209
2246
|
to: "body"
|
|
2210
2247
|
}, [
|
|
2211
|
-
I(
|
|
2248
|
+
I(y).isBusinessLocation ? (S(), X(dn, {
|
|
2212
2249
|
key: 0,
|
|
2213
|
-
setting: I(
|
|
2214
|
-
"onUpdate:setting":
|
|
2215
|
-
nsLocations:
|
|
2216
|
-
"onUpdate:nsLocations":
|
|
2250
|
+
setting: I(y).state.setting,
|
|
2251
|
+
"onUpdate:setting": g[1] || (g[1] = (r) => I(y).state.setting = r),
|
|
2252
|
+
nsLocations: i.value,
|
|
2253
|
+
"onUpdate:nsLocations": g[2] || (g[2] = (r) => i.value = r),
|
|
2217
2254
|
show: n.value,
|
|
2218
2255
|
"onUpdate:show": [
|
|
2219
|
-
|
|
2220
|
-
|
|
2256
|
+
g[3] || (g[3] = (r) => n.value = r),
|
|
2257
|
+
g[4] || (g[4] = (r) => n.value = r)
|
|
2221
2258
|
],
|
|
2222
|
-
loading:
|
|
2223
|
-
"onUpdate:loading":
|
|
2224
|
-
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (
|
|
2259
|
+
loading: u.value,
|
|
2260
|
+
"onUpdate:loading": g[5] || (g[5] = (r) => u.value = r)
|
|
2261
|
+
}, null, 8, ["setting", "nsLocations", "show", "loading"])) : (S(), X(Tn, {
|
|
2225
2262
|
key: 1,
|
|
2226
|
-
setting: I(
|
|
2227
|
-
"onUpdate:setting":
|
|
2228
|
-
nsLocations:
|
|
2229
|
-
"onUpdate:nsLocations":
|
|
2263
|
+
setting: I(y).state.setting,
|
|
2264
|
+
"onUpdate:setting": g[6] || (g[6] = (r) => I(y).state.setting = r),
|
|
2265
|
+
nsLocations: i.value,
|
|
2266
|
+
"onUpdate:nsLocations": g[7] || (g[7] = (r) => i.value = r),
|
|
2230
2267
|
show: n.value,
|
|
2231
2268
|
"onUpdate:show": [
|
|
2232
|
-
|
|
2233
|
-
|
|
2269
|
+
g[8] || (g[8] = (r) => n.value = r),
|
|
2270
|
+
g[9] || (g[9] = (r) => n.value = r)
|
|
2234
2271
|
],
|
|
2235
|
-
loading:
|
|
2236
|
-
"onUpdate:loading":
|
|
2272
|
+
loading: u.value,
|
|
2273
|
+
"onUpdate:loading": g[10] || (g[10] = (r) => u.value = r)
|
|
2237
2274
|
}, null, 8, ["setting", "nsLocations", "show", "loading"]))
|
|
2238
2275
|
])) : _("", !0)
|
|
2239
2276
|
], 64)) : _("", !0);
|
|
@@ -2256,47 +2293,47 @@ const Bt = { class: "flex flex-col rounded border border-fm-color-neutral-gray-1
|
|
|
2256
2293
|
"schemeFranchiseePrice",
|
|
2257
2294
|
"physicalSchemeTotalFranchiseePrice"
|
|
2258
2295
|
];
|
|
2259
|
-
async function Yn(F,
|
|
2260
|
-
var
|
|
2261
|
-
const
|
|
2262
|
-
for (const b in
|
|
2263
|
-
const
|
|
2264
|
-
for (let
|
|
2265
|
-
const
|
|
2296
|
+
async function Yn(F, y, s) {
|
|
2297
|
+
var i;
|
|
2298
|
+
const u = await Jn(s), n = [], t = {};
|
|
2299
|
+
for (const b in u) {
|
|
2300
|
+
const w = u[b];
|
|
2301
|
+
for (let g = 0; g < w.length; g++) {
|
|
2302
|
+
const m = w[g], l = m.itemCode, r = m.itemName, h = m.physicalQty, C = m.customCost;
|
|
2266
2303
|
if (l === "" || l === "undefined") {
|
|
2267
2304
|
n.push({
|
|
2268
|
-
row:
|
|
2305
|
+
row: m.excelRow,
|
|
2269
2306
|
itemCode: l,
|
|
2270
2307
|
itemName: r,
|
|
2271
2308
|
message: "Item code is empty or undefined"
|
|
2272
2309
|
});
|
|
2273
2310
|
continue;
|
|
2274
2311
|
}
|
|
2275
|
-
const k =
|
|
2312
|
+
const k = y.find((A) => A.code === l);
|
|
2276
2313
|
if (!k) {
|
|
2277
2314
|
n.push({
|
|
2278
|
-
row:
|
|
2315
|
+
row: m.excelRow,
|
|
2279
2316
|
itemCode: l,
|
|
2280
2317
|
itemName: r,
|
|
2281
2318
|
qty: h,
|
|
2282
2319
|
message: "Item not found in inventory"
|
|
2283
|
-
}), console.error(`${
|
|
2320
|
+
}), console.error(`${m.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2284
2321
|
continue;
|
|
2285
2322
|
}
|
|
2286
|
-
let
|
|
2287
|
-
const
|
|
2288
|
-
|
|
2289
|
-
const d =
|
|
2323
|
+
let v = Number(m.totalPhysicalCustomCost);
|
|
2324
|
+
const f = F[k._id];
|
|
2325
|
+
f && (v = f * Number(h));
|
|
2326
|
+
const d = G.fromNumber(Number(h)), c = {
|
|
2290
2327
|
amount: d,
|
|
2291
2328
|
cost: {
|
|
2292
|
-
...
|
|
2329
|
+
...G.fromNumber(Number(v)),
|
|
2293
2330
|
currency: "MYR"
|
|
2294
2331
|
}
|
|
2295
2332
|
};
|
|
2296
|
-
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[
|
|
2333
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[i = k._id] ?? (t[i] = {
|
|
2297
2334
|
skuAdjustment: {
|
|
2298
2335
|
sku: k,
|
|
2299
|
-
fromBalance:
|
|
2336
|
+
fromBalance: G.fromNumber(0),
|
|
2300
2337
|
amounts: [
|
|
2301
2338
|
{
|
|
2302
2339
|
_id: null,
|
|
@@ -2325,44 +2362,44 @@ async function Yn(F, g, s) {
|
|
|
2325
2362
|
};
|
|
2326
2363
|
}
|
|
2327
2364
|
async function Jn(F) {
|
|
2328
|
-
const
|
|
2365
|
+
const y = await new Promise((t, i) => {
|
|
2329
2366
|
const b = new FileReader();
|
|
2330
|
-
b.onload = (
|
|
2331
|
-
}), s = ke(
|
|
2332
|
-
for (const t of
|
|
2333
|
-
const
|
|
2334
|
-
n[t] =
|
|
2367
|
+
b.onload = (w) => t(w.target.result), b.onerror = i, b.readAsArrayBuffer(F);
|
|
2368
|
+
}), s = ke(y, { type: "array" }), u = s.SheetNames, n = {};
|
|
2369
|
+
for (const t of u) {
|
|
2370
|
+
const i = await Kn(s.Sheets[t]);
|
|
2371
|
+
n[t] = i;
|
|
2335
2372
|
}
|
|
2336
2373
|
return n;
|
|
2337
2374
|
}
|
|
2338
2375
|
async function Kn(F) {
|
|
2339
|
-
const
|
|
2376
|
+
const y = Be.sheet_to_json(F, {
|
|
2340
2377
|
header: xe,
|
|
2341
2378
|
range: 12
|
|
2342
2379
|
}), s = [];
|
|
2343
|
-
for (let
|
|
2344
|
-
const n =
|
|
2345
|
-
for (const
|
|
2346
|
-
t[
|
|
2380
|
+
for (let u = 0; u < y.length; u++) {
|
|
2381
|
+
const n = y[u], t = {};
|
|
2382
|
+
for (const i of xe)
|
|
2383
|
+
t[i] = String(n[i]).trim();
|
|
2347
2384
|
s.push({
|
|
2348
2385
|
...t,
|
|
2349
|
-
excelRow:
|
|
2386
|
+
excelRow: u + 13
|
|
2350
2387
|
// Excel rows start from 1, and we skip the first 12 rows
|
|
2351
2388
|
});
|
|
2352
2389
|
}
|
|
2353
2390
|
return s;
|
|
2354
2391
|
}
|
|
2355
|
-
const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" },
|
|
2392
|
+
const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Pn = {
|
|
2356
2393
|
key: 0,
|
|
2357
2394
|
class: "flex flex-col gap-4 my-5"
|
|
2358
|
-
},
|
|
2395
|
+
}, Gn = { class: "flex flex-col gap-8" }, Wn = { class: "flex flex-col gap-8" }, $n = {
|
|
2359
2396
|
class: /* @__PURE__ */ Z(["fm-corner-radius-md p-16 flex items-center gap-16"])
|
|
2360
2397
|
}, eo = {
|
|
2361
2398
|
class: /* @__PURE__ */ Z(["fm-typo-en-body-md-400 flex-1 h-[36px] flex items-center gap-3"])
|
|
2362
2399
|
}, to = { class: "line-clamp-2 text-ellipsis break-all" }, no = { class: "flex flex-col" }, oo = { class: "font-medium" }, so = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, ao = { class: "flex" }, lo = { class: "flex" }, io = { key: 1 }, ro = /* @__PURE__ */ Y({
|
|
2363
2400
|
__name: "XilnexOpeningImport",
|
|
2364
2401
|
setup(F) {
|
|
2365
|
-
const
|
|
2402
|
+
const y = Pe(), s = le(), u = be(), n = Ce(), t = te(), i = z(() => [
|
|
2366
2403
|
{
|
|
2367
2404
|
value: "xilnex",
|
|
2368
2405
|
label: "Xilnex",
|
|
@@ -2377,7 +2414,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2377
2414
|
disabledReason: "Current location is not binded to NetSuite"
|
|
2378
2415
|
}
|
|
2379
2416
|
] : []
|
|
2380
|
-
]), b = M(
|
|
2417
|
+
]), b = M(i.value[0].value), { t: w } = de(), g = M(null), m = M(), l = M(""), r = M([]), h = M([]), C = [
|
|
2381
2418
|
{
|
|
2382
2419
|
id: "ingredient",
|
|
2383
2420
|
header: () => "Ingredient",
|
|
@@ -2400,7 +2437,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2400
2437
|
D(
|
|
2401
2438
|
"span",
|
|
2402
2439
|
{ class: "font-medium" },
|
|
2403
|
-
|
|
2440
|
+
G.toFormatString({
|
|
2404
2441
|
value: o.skuAdjustment.amounts[0].amount
|
|
2405
2442
|
})
|
|
2406
2443
|
)
|
|
@@ -2440,7 +2477,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2440
2477
|
D(
|
|
2441
2478
|
"span",
|
|
2442
2479
|
{ class: "font-medium" },
|
|
2443
|
-
|
|
2480
|
+
G.toFormatString({
|
|
2444
2481
|
value: L
|
|
2445
2482
|
})
|
|
2446
2483
|
)
|
|
@@ -2468,17 +2505,17 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2468
2505
|
accessorKey: "message",
|
|
2469
2506
|
header: "Error Message"
|
|
2470
2507
|
}
|
|
2471
|
-
],
|
|
2472
|
-
async function
|
|
2473
|
-
if (
|
|
2474
|
-
|
|
2508
|
+
], v = M(!1);
|
|
2509
|
+
async function f() {
|
|
2510
|
+
if (g.value) {
|
|
2511
|
+
v.value = !0;
|
|
2475
2512
|
try {
|
|
2476
2513
|
let e = {};
|
|
2477
2514
|
b.value === "netsuite" && (e = await s.getItemAverageCosts());
|
|
2478
2515
|
const { errors: o, rows: B } = await Yn(
|
|
2479
2516
|
e,
|
|
2480
|
-
|
|
2481
|
-
|
|
2517
|
+
u.skus,
|
|
2518
|
+
g.value
|
|
2482
2519
|
);
|
|
2483
2520
|
r.value = o, h.value = Object.values(B);
|
|
2484
2521
|
} catch {
|
|
@@ -2487,13 +2524,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2487
2524
|
type: "error"
|
|
2488
2525
|
});
|
|
2489
2526
|
} finally {
|
|
2490
|
-
|
|
2527
|
+
v.value = !1;
|
|
2491
2528
|
}
|
|
2492
2529
|
}
|
|
2493
2530
|
}
|
|
2494
2531
|
async function d() {
|
|
2495
|
-
if (
|
|
2496
|
-
|
|
2532
|
+
if (g.value) {
|
|
2533
|
+
v.value = !0;
|
|
2497
2534
|
try {
|
|
2498
2535
|
if (!A.value) {
|
|
2499
2536
|
t.open({
|
|
@@ -2509,14 +2546,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2509
2546
|
}), t.open({
|
|
2510
2547
|
message: "Opening balance imported successfully",
|
|
2511
2548
|
type: "success"
|
|
2512
|
-
}), await
|
|
2549
|
+
}), await y.fetchClosingDocumentId();
|
|
2513
2550
|
} catch {
|
|
2514
2551
|
t.open({
|
|
2515
2552
|
message: "Error importing opening balance",
|
|
2516
2553
|
type: "error"
|
|
2517
2554
|
});
|
|
2518
2555
|
} finally {
|
|
2519
|
-
|
|
2556
|
+
v.value = !1;
|
|
2520
2557
|
}
|
|
2521
2558
|
}
|
|
2522
2559
|
}
|
|
@@ -2527,14 +2564,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2527
2564
|
set(e) {
|
|
2528
2565
|
c.value = `${e}T15:59:59.999Z`;
|
|
2529
2566
|
}
|
|
2530
|
-
}),
|
|
2567
|
+
}), p = z(() => {
|
|
2531
2568
|
if (!c.value) return null;
|
|
2532
2569
|
const e = new Date(c.value);
|
|
2533
2570
|
return isNaN(e.getTime()) ? null : ye(e);
|
|
2534
2571
|
});
|
|
2535
2572
|
return (e, o) => {
|
|
2536
2573
|
const B = E("FmLabel"), L = E("FmField"), N = E("FmSimpleDatePicker"), H = E("FmButton"), U = E("FmRadio"), O = E("FmRadioGroup"), T = E("FmTable");
|
|
2537
|
-
return
|
|
2574
|
+
return S(), V("div", qn, [
|
|
2538
2575
|
a("div", Zn, [
|
|
2539
2576
|
x(B, { label: "Latest closing" })
|
|
2540
2577
|
]),
|
|
@@ -2543,13 +2580,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2543
2580
|
disabled: ""
|
|
2544
2581
|
}, {
|
|
2545
2582
|
default: R(() => [
|
|
2546
|
-
q(j(I(
|
|
2583
|
+
q(j(I(y).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
2547
2584
|
]),
|
|
2548
2585
|
_: 1
|
|
2549
2586
|
}),
|
|
2550
|
-
I(
|
|
2587
|
+
I(y).state.closingDocumentId ? (S(), V("div", io, o[6] || (o[6] = [
|
|
2551
2588
|
a("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, " Not able to import opening balance as closing document already exists. ", -1)
|
|
2552
|
-
]))) : (
|
|
2589
|
+
]))) : (S(), V("div", Pn, [
|
|
2553
2590
|
x(N, {
|
|
2554
2591
|
modelValue: A.value,
|
|
2555
2592
|
"onUpdate:modelValue": o[0] || (o[0] = (Q) => A.value = Q),
|
|
@@ -2562,31 +2599,31 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2562
2599
|
label: "Last closing time"
|
|
2563
2600
|
}, {
|
|
2564
2601
|
default: R(() => [
|
|
2565
|
-
q(j(
|
|
2602
|
+
q(j(p.value), 1)
|
|
2566
2603
|
]),
|
|
2567
2604
|
_: 1
|
|
2568
2605
|
})
|
|
2569
2606
|
]),
|
|
2570
2607
|
_: 1
|
|
2571
2608
|
}, 8, ["modelValue"]),
|
|
2572
|
-
a("div",
|
|
2609
|
+
a("div", Gn, [
|
|
2573
2610
|
x(B, { label: "Stock take file" })
|
|
2574
2611
|
]),
|
|
2575
2612
|
x(Fe, {
|
|
2576
2613
|
onFileUpload: o[1] || (o[1] = (Q) => {
|
|
2577
|
-
Q && (
|
|
2614
|
+
Q && (g.value = Q);
|
|
2578
2615
|
}),
|
|
2579
2616
|
accept: ".xlsx, .xls, .csv"
|
|
2580
2617
|
}, oe({ _: 2 }, [
|
|
2581
|
-
|
|
2618
|
+
g.value ? {
|
|
2582
2619
|
name: "default",
|
|
2583
2620
|
fn: R(({ openFileDialog: Q }) => [
|
|
2584
2621
|
a("div", Wn, [
|
|
2585
2622
|
a("div", $n, [
|
|
2586
2623
|
a("div", eo, [
|
|
2587
|
-
a("div", to, j(
|
|
2624
|
+
a("div", to, j(g.value.name), 1),
|
|
2588
2625
|
x(H, {
|
|
2589
|
-
label: I(
|
|
2626
|
+
label: I(w)("inventory.ingredient.import.replaceFile"),
|
|
2590
2627
|
variant: "secondary",
|
|
2591
2628
|
"prepend-icon": "autorenew",
|
|
2592
2629
|
onClick: Q
|
|
@@ -2605,7 +2642,7 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2605
2642
|
class: "my-5"
|
|
2606
2643
|
}, {
|
|
2607
2644
|
default: R(() => [
|
|
2608
|
-
(
|
|
2645
|
+
(S(!0), V(J, null, $(i.value, (Q) => (S(), X(U, {
|
|
2609
2646
|
key: Q.value,
|
|
2610
2647
|
value: Q.value,
|
|
2611
2648
|
label: Q.label,
|
|
@@ -2629,23 +2666,23 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2629
2666
|
variant: "secondary",
|
|
2630
2667
|
"prepend-icon": "troubleshoot",
|
|
2631
2668
|
label: "Verify",
|
|
2632
|
-
disabled: !
|
|
2633
|
-
loading:
|
|
2634
|
-
onClick:
|
|
2669
|
+
disabled: !g.value && !v.value,
|
|
2670
|
+
loading: v.value,
|
|
2671
|
+
onClick: f
|
|
2635
2672
|
}, null, 8, ["disabled", "loading"])
|
|
2636
2673
|
]),
|
|
2637
|
-
|
|
2674
|
+
g.value && h.value.length > 0 ? (S(), V(J, { key: 0 }, [
|
|
2638
2675
|
o[4] || (o[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
2639
2676
|
x(T, {
|
|
2640
|
-
modelValue:
|
|
2641
|
-
"onUpdate:modelValue": o[3] || (o[3] = (Q) =>
|
|
2677
|
+
modelValue: m.value,
|
|
2678
|
+
"onUpdate:modelValue": o[3] || (o[3] = (Q) => m.value = Q),
|
|
2642
2679
|
"row-data": h.value,
|
|
2643
2680
|
"column-defs": C,
|
|
2644
2681
|
"shrink-at": !1,
|
|
2645
2682
|
"search-value": l.value
|
|
2646
2683
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
2647
2684
|
], 64)) : _("", !0),
|
|
2648
|
-
r.value.length > 0 ? (
|
|
2685
|
+
r.value.length > 0 ? (S(), V(J, { key: 1 }, [
|
|
2649
2686
|
o[5] || (o[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
2650
2687
|
x(T, {
|
|
2651
2688
|
"row-data": r.value,
|
|
@@ -2653,13 +2690,13 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2653
2690
|
}, null, 8, ["row-data"])
|
|
2654
2691
|
], 64)) : _("", !0),
|
|
2655
2692
|
a("div", lo, [
|
|
2656
|
-
h.value.length > 0 && !I(
|
|
2693
|
+
h.value.length > 0 && !I(y).state.closingDocumentId ? (S(), X(H, {
|
|
2657
2694
|
key: 0,
|
|
2658
2695
|
class: "ml-auto mt-4",
|
|
2659
2696
|
"prepend-icon": "file_upload",
|
|
2660
2697
|
variant: "primary",
|
|
2661
2698
|
label: "Import Opening Balance",
|
|
2662
|
-
disabled: !
|
|
2699
|
+
disabled: !g.value || v.value,
|
|
2663
2700
|
onClick: d
|
|
2664
2701
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
2665
2702
|
])
|
|
@@ -2677,9 +2714,9 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2677
2714
|
loading: { type: Boolean }
|
|
2678
2715
|
},
|
|
2679
2716
|
emits: ["update:show"],
|
|
2680
|
-
setup(F, { emit:
|
|
2717
|
+
setup(F, { emit: y }) {
|
|
2681
2718
|
var l;
|
|
2682
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
2719
|
+
const s = ie(), n = ae(F, "show"), { t } = P(), i = y, b = W(), w = ((l = b._currentLocation) == null ? void 0 : l.type) || "", g = [
|
|
2683
2720
|
{ label: re(
|
|
2684
2721
|
"openingBalance"
|
|
2685
2722
|
/* OPENING_BALANCE */
|
|
@@ -2688,11 +2725,11 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2688
2725
|
"transferNote"
|
|
2689
2726
|
/* TRANSFER_NOTE */
|
|
2690
2727
|
) }
|
|
2691
|
-
],
|
|
2728
|
+
], m = M(g[0]);
|
|
2692
2729
|
return (r, h) => {
|
|
2693
2730
|
var d;
|
|
2694
|
-
const C = E("FmIcon"), k = E("FmButtonGroup"),
|
|
2695
|
-
return
|
|
2731
|
+
const C = E("FmIcon"), k = E("FmButtonGroup"), v = E("FmButton"), f = E("FmSideSheet");
|
|
2732
|
+
return S(), X(f, {
|
|
2696
2733
|
modelValue: I(n),
|
|
2697
2734
|
"onUpdate:modelValue": h[2] || (h[2] = (c) => se(n) ? n.value = c : null),
|
|
2698
2735
|
header: "Data migration (Xilnex)",
|
|
@@ -2703,24 +2740,24 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2703
2740
|
default: R(() => {
|
|
2704
2741
|
var c;
|
|
2705
2742
|
return [
|
|
2706
|
-
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (
|
|
2707
|
-
|
|
2743
|
+
(c = I(s).sessionUser.value) != null && c.role.isAdmin ? (S(), V("div", vo, [
|
|
2744
|
+
m.value.label === I(re)(
|
|
2708
2745
|
"openingBalance"
|
|
2709
2746
|
/* OPENING_BALANCE */
|
|
2710
|
-
) ? (
|
|
2711
|
-
|
|
2747
|
+
) ? (S(), X(ro, { key: 0 })) : _("", !0),
|
|
2748
|
+
m.value.label === I(re)(
|
|
2712
2749
|
"transferNote"
|
|
2713
2750
|
/* TRANSFER_NOTE */
|
|
2714
|
-
) ? (
|
|
2715
|
-
])) : (
|
|
2751
|
+
) ? (S(), V("div", go, " Not available yet. ")) : _("", !0)
|
|
2752
|
+
])) : (S(), V("div", po, " Please contact your administrator to apply the changes. "))
|
|
2716
2753
|
];
|
|
2717
2754
|
}),
|
|
2718
2755
|
"side-sheet-footer": R(() => [
|
|
2719
2756
|
a("div", yo, [
|
|
2720
|
-
x(
|
|
2757
|
+
x(v, {
|
|
2721
2758
|
variant: "tertiary",
|
|
2722
2759
|
label: I(t)("common.close"),
|
|
2723
|
-
onClick: h[1] || (h[1] = (c) =>
|
|
2760
|
+
onClick: h[1] || (h[1] = (c) => i("update:show", !1))
|
|
2724
2761
|
}, null, 8, ["label"])
|
|
2725
2762
|
])
|
|
2726
2763
|
]),
|
|
@@ -2736,16 +2773,16 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2736
2773
|
h[3] || (h[3] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Xilnex)", -1)),
|
|
2737
2774
|
a("div", mo, [
|
|
2738
2775
|
x(C, {
|
|
2739
|
-
name: I(
|
|
2776
|
+
name: I(w),
|
|
2740
2777
|
size: "sm"
|
|
2741
2778
|
}, null, 8, ["name"]),
|
|
2742
2779
|
a("div", fo, j((c = I(b)._currentLocation) == null ? void 0 : c.name), 1)
|
|
2743
2780
|
])
|
|
2744
2781
|
]),
|
|
2745
2782
|
x(k, {
|
|
2746
|
-
modelValue:
|
|
2747
|
-
"onUpdate:modelValue": h[0] || (h[0] = (A) =>
|
|
2748
|
-
items:
|
|
2783
|
+
modelValue: m.value,
|
|
2784
|
+
"onUpdate:modelValue": h[0] || (h[0] = (A) => m.value = A),
|
|
2785
|
+
items: g
|
|
2749
2786
|
}, null, 8, ["modelValue"])
|
|
2750
2787
|
])
|
|
2751
2788
|
];
|
|
@@ -2758,14 +2795,14 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2758
2795
|
}), bo = /* @__PURE__ */ Y({
|
|
2759
2796
|
__name: "XilnexView",
|
|
2760
2797
|
setup(F) {
|
|
2761
|
-
const
|
|
2798
|
+
const y = Le(), s = W(), u = M(!1);
|
|
2762
2799
|
async function n() {
|
|
2763
|
-
|
|
2800
|
+
u.value = !0, console.log("Opening Xilnex migration dialog");
|
|
2764
2801
|
}
|
|
2765
|
-
return (t,
|
|
2766
|
-
const b = E("FmCardSection"),
|
|
2767
|
-
return I(
|
|
2768
|
-
x(
|
|
2802
|
+
return (t, i) => {
|
|
2803
|
+
const b = E("FmCardSection"), w = E("FmCard");
|
|
2804
|
+
return I(y).enabledXilnexOpeningMigration && !I(s).businessLevel ? (S(), V(J, { key: 0 }, [
|
|
2805
|
+
x(w, {
|
|
2769
2806
|
class: Z({
|
|
2770
2807
|
"w-full": !0,
|
|
2771
2808
|
border: !0,
|
|
@@ -2773,11 +2810,11 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2773
2810
|
"cursor-pointer": !0,
|
|
2774
2811
|
"hover:border-fm-color-primary": !0
|
|
2775
2812
|
}),
|
|
2776
|
-
onClick:
|
|
2813
|
+
onClick: i[0] || (i[0] = (g) => n())
|
|
2777
2814
|
}, {
|
|
2778
2815
|
default: R(() => [
|
|
2779
2816
|
x(b, null, {
|
|
2780
|
-
default: R(() =>
|
|
2817
|
+
default: R(() => i[2] || (i[2] = [
|
|
2781
2818
|
a("div", { class: "flex justify-center" }, [
|
|
2782
2819
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
2783
2820
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Xilnex")
|
|
@@ -2793,10 +2830,10 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2793
2830
|
]),
|
|
2794
2831
|
_: 1
|
|
2795
2832
|
}),
|
|
2796
|
-
(
|
|
2833
|
+
(S(), X(ue, { to: "body" }, [
|
|
2797
2834
|
x(Ao, {
|
|
2798
|
-
show:
|
|
2799
|
-
"onUpdate:show":
|
|
2835
|
+
show: u.value,
|
|
2836
|
+
"onUpdate:show": i[1] || (i[1] = (g) => u.value = g)
|
|
2800
2837
|
}, null, 8, ["show"])
|
|
2801
2838
|
]))
|
|
2802
2839
|
], 64)) : _("", !0);
|
|
@@ -2812,45 +2849,45 @@ const qn = { class: "flex flex-col gap-4" }, Zn = { class: "flex flex-col" }, Gn
|
|
|
2812
2849
|
"quantity",
|
|
2813
2850
|
"total"
|
|
2814
2851
|
];
|
|
2815
|
-
async function ho(F,
|
|
2816
|
-
var
|
|
2817
|
-
const
|
|
2818
|
-
for (let
|
|
2819
|
-
const
|
|
2852
|
+
async function ho(F, y, s) {
|
|
2853
|
+
var w;
|
|
2854
|
+
const u = await xo(s), n = [], t = {}, i = Object.keys(u)[0], b = u[i];
|
|
2855
|
+
for (let g = 0; g < b.length; g++) {
|
|
2856
|
+
const m = b[g], l = m.code, r = m.description, h = m.quantity, C = m.unitcost;
|
|
2820
2857
|
if (l === "" || l === "undefined") {
|
|
2821
2858
|
n.push({
|
|
2822
|
-
row:
|
|
2859
|
+
row: m.excelRow,
|
|
2823
2860
|
itemCode: l,
|
|
2824
2861
|
itemName: r,
|
|
2825
2862
|
message: "Item code is empty or undefined"
|
|
2826
2863
|
});
|
|
2827
2864
|
continue;
|
|
2828
2865
|
}
|
|
2829
|
-
const k =
|
|
2866
|
+
const k = y.find((A) => A.code === l);
|
|
2830
2867
|
if (!k) {
|
|
2831
2868
|
n.push({
|
|
2832
|
-
row:
|
|
2869
|
+
row: m.excelRow,
|
|
2833
2870
|
itemCode: l,
|
|
2834
2871
|
itemName: r,
|
|
2835
2872
|
qty: h,
|
|
2836
2873
|
message: "Item not found in inventory"
|
|
2837
|
-
}), console.error(`${
|
|
2874
|
+
}), console.error(`${m.excelRow} Item not found: ${l} ${r} ${h}`);
|
|
2838
2875
|
continue;
|
|
2839
2876
|
}
|
|
2840
|
-
let
|
|
2841
|
-
const
|
|
2842
|
-
|
|
2843
|
-
const d =
|
|
2877
|
+
let v = Number(m.total);
|
|
2878
|
+
const f = F[k._id];
|
|
2879
|
+
f && (v = f * Number(h));
|
|
2880
|
+
const d = G.fromNumber(Number(h)), c = {
|
|
2844
2881
|
amount: d,
|
|
2845
2882
|
cost: {
|
|
2846
|
-
...
|
|
2883
|
+
...G.fromNumber(Number(v)),
|
|
2847
2884
|
currency: "MYR"
|
|
2848
2885
|
}
|
|
2849
2886
|
};
|
|
2850
|
-
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[
|
|
2887
|
+
h != "0" && C == "0" && console.warn(`Item ${l} ${r} has 0 cost.`), t[w = k._id] ?? (t[w] = {
|
|
2851
2888
|
skuAdjustment: {
|
|
2852
2889
|
sku: k,
|
|
2853
|
-
fromBalance:
|
|
2890
|
+
fromBalance: G.fromNumber(0),
|
|
2854
2891
|
amounts: [
|
|
2855
2892
|
{
|
|
2856
2893
|
_id: null,
|
|
@@ -2878,28 +2915,28 @@ async function ho(F, g, s) {
|
|
|
2878
2915
|
};
|
|
2879
2916
|
}
|
|
2880
2917
|
async function xo(F) {
|
|
2881
|
-
const
|
|
2918
|
+
const y = await new Promise((t, i) => {
|
|
2882
2919
|
const b = new FileReader();
|
|
2883
|
-
b.onload = (
|
|
2884
|
-
}), s = ke(
|
|
2885
|
-
for (const t of
|
|
2886
|
-
const
|
|
2887
|
-
n[t] =
|
|
2920
|
+
b.onload = (w) => t(w.target.result), b.onerror = i, b.readAsArrayBuffer(F);
|
|
2921
|
+
}), s = ke(y, { type: "array" }), u = s.SheetNames, n = {};
|
|
2922
|
+
for (const t of u) {
|
|
2923
|
+
const i = await Io(s.Sheets[t]);
|
|
2924
|
+
n[t] = i;
|
|
2888
2925
|
}
|
|
2889
2926
|
return n;
|
|
2890
2927
|
}
|
|
2891
2928
|
async function Io(F) {
|
|
2892
|
-
const
|
|
2929
|
+
const y = Be.sheet_to_json(F, {
|
|
2893
2930
|
header: Ie,
|
|
2894
2931
|
range: 1
|
|
2895
2932
|
}), s = [];
|
|
2896
|
-
for (let
|
|
2897
|
-
const n =
|
|
2898
|
-
for (const
|
|
2899
|
-
t[
|
|
2933
|
+
for (let u = 0; u < y.length; u++) {
|
|
2934
|
+
const n = y[u], t = {};
|
|
2935
|
+
for (const i of Ie)
|
|
2936
|
+
t[i] = String(n[i]).trim();
|
|
2900
2937
|
s.push({
|
|
2901
2938
|
...t,
|
|
2902
|
-
excelRow:
|
|
2939
|
+
excelRow: u + 2
|
|
2903
2940
|
// Excel rows start from 1, and we skip the first row
|
|
2904
2941
|
});
|
|
2905
2942
|
}
|
|
@@ -2915,18 +2952,18 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2915
2952
|
}, Lo = { class: "line-clamp-2 text-ellipsis break-all" }, Vo = { class: "flex flex-col" }, No = { class: "font-medium" }, Do = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Ro = { class: "flex" }, Mo = { class: "flex" }, Oo = { key: 1 }, jo = /* @__PURE__ */ Y({
|
|
2916
2953
|
__name: "SynergyOpeningImport",
|
|
2917
2954
|
setup(F) {
|
|
2918
|
-
const
|
|
2955
|
+
const y = Ge(), s = be(), u = Ce(), n = te(), t = z(() => [
|
|
2919
2956
|
{
|
|
2920
2957
|
value: "synergy",
|
|
2921
2958
|
label: "Synergy",
|
|
2922
2959
|
subLabel: "Based on Synergy's item cost from excel file"
|
|
2923
2960
|
}
|
|
2924
|
-
]),
|
|
2961
|
+
]), i = M(t.value[0].value), { t: b } = de(), w = M(null), g = M(), m = M(""), l = M([]), r = M([]), h = [
|
|
2925
2962
|
{
|
|
2926
2963
|
id: "ingredient",
|
|
2927
2964
|
header: () => "Ingredient",
|
|
2928
|
-
cell(
|
|
2929
|
-
const e =
|
|
2965
|
+
cell(p) {
|
|
2966
|
+
const e = p.row.original;
|
|
2930
2967
|
return D("div", { class: "flex flex-col" }, [
|
|
2931
2968
|
D("span", { class: "font-medium" }, e.skuAdjustment.sku.name),
|
|
2932
2969
|
D("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, [
|
|
@@ -2938,13 +2975,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2938
2975
|
{
|
|
2939
2976
|
id: "openingBalance",
|
|
2940
2977
|
header: () => "Opening Balance",
|
|
2941
|
-
cell(
|
|
2942
|
-
const e =
|
|
2978
|
+
cell(p) {
|
|
2979
|
+
const e = p.row.original;
|
|
2943
2980
|
return D("div", { class: "flex flex-col" }, [
|
|
2944
2981
|
D(
|
|
2945
2982
|
"span",
|
|
2946
2983
|
{ class: "font-medium" },
|
|
2947
|
-
|
|
2984
|
+
G.toFormatString({
|
|
2948
2985
|
value: e.skuAdjustment.amounts[0].amount
|
|
2949
2986
|
})
|
|
2950
2987
|
)
|
|
@@ -2954,8 +2991,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2954
2991
|
{
|
|
2955
2992
|
id: "unit",
|
|
2956
2993
|
header: () => "Unit",
|
|
2957
|
-
cell(
|
|
2958
|
-
const e =
|
|
2994
|
+
cell(p) {
|
|
2995
|
+
const e = p.row.original, o = !e.skuAdjustment.amounts[0].measurement;
|
|
2959
2996
|
let B = e.skuAdjustment.sku.unit.name;
|
|
2960
2997
|
if (!o) {
|
|
2961
2998
|
const L = e.skuAdjustment.sku.unit.measurements.find(
|
|
@@ -2974,8 +3011,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2974
3011
|
{
|
|
2975
3012
|
id: "totalCost",
|
|
2976
3013
|
header: () => "Total Cost",
|
|
2977
|
-
cell(
|
|
2978
|
-
const e =
|
|
3014
|
+
cell(p) {
|
|
3015
|
+
const e = p.row.original, { currency: o, ...B } = e.skuAdjustment.amounts[0].cost ?? {
|
|
2979
3016
|
amount: 0,
|
|
2980
3017
|
precision: 0,
|
|
2981
3018
|
currency: ""
|
|
@@ -2984,7 +3021,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
2984
3021
|
D(
|
|
2985
3022
|
"span",
|
|
2986
3023
|
{ class: "font-medium" },
|
|
2987
|
-
|
|
3024
|
+
G.toFormatString({
|
|
2988
3025
|
value: B
|
|
2989
3026
|
})
|
|
2990
3027
|
)
|
|
@@ -3013,15 +3050,15 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3013
3050
|
header: "Error Message"
|
|
3014
3051
|
}
|
|
3015
3052
|
], k = M(!1);
|
|
3016
|
-
async function
|
|
3017
|
-
if (
|
|
3053
|
+
async function v() {
|
|
3054
|
+
if (w.value) {
|
|
3018
3055
|
k.value = !0;
|
|
3019
3056
|
try {
|
|
3020
|
-
let
|
|
3057
|
+
let p = {};
|
|
3021
3058
|
const { errors: e, rows: o } = await ho(
|
|
3022
|
-
|
|
3059
|
+
p,
|
|
3023
3060
|
s.skus,
|
|
3024
|
-
|
|
3061
|
+
w.value
|
|
3025
3062
|
);
|
|
3026
3063
|
l.value = e, r.value = Object.values(o);
|
|
3027
3064
|
} catch {
|
|
@@ -3034,8 +3071,8 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3034
3071
|
}
|
|
3035
3072
|
}
|
|
3036
3073
|
}
|
|
3037
|
-
async function
|
|
3038
|
-
if (
|
|
3074
|
+
async function f() {
|
|
3075
|
+
if (w.value) {
|
|
3039
3076
|
k.value = !0;
|
|
3040
3077
|
try {
|
|
3041
3078
|
if (!c.value) {
|
|
@@ -3045,14 +3082,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3045
3082
|
});
|
|
3046
3083
|
return;
|
|
3047
3084
|
}
|
|
3048
|
-
await
|
|
3085
|
+
await u.setOpeningBalance({
|
|
3049
3086
|
effectiveAt: c.value,
|
|
3050
|
-
skuAdjustments: r.value.map((
|
|
3051
|
-
skuBalances: r.value.map((
|
|
3087
|
+
skuAdjustments: r.value.map((p) => p.skuAdjustment),
|
|
3088
|
+
skuBalances: r.value.map((p) => p.skuBalance)
|
|
3052
3089
|
}), n.open({
|
|
3053
3090
|
message: "Opening balance imported successfully",
|
|
3054
3091
|
type: "success"
|
|
3055
|
-
}), await
|
|
3092
|
+
}), await y.fetchClosingDocumentId();
|
|
3056
3093
|
} catch {
|
|
3057
3094
|
n.open({
|
|
3058
3095
|
message: "Error importing opening balance",
|
|
@@ -3067,17 +3104,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3067
3104
|
get() {
|
|
3068
3105
|
return d.value;
|
|
3069
3106
|
},
|
|
3070
|
-
set(
|
|
3071
|
-
d.value = `${
|
|
3107
|
+
set(p) {
|
|
3108
|
+
d.value = `${p}T15:59:59.999Z`;
|
|
3072
3109
|
}
|
|
3073
3110
|
}), A = z(() => {
|
|
3074
3111
|
if (!d.value) return null;
|
|
3075
|
-
const
|
|
3076
|
-
return isNaN(
|
|
3112
|
+
const p = new Date(d.value);
|
|
3113
|
+
return isNaN(p.getTime()) ? null : ye(p);
|
|
3077
3114
|
});
|
|
3078
|
-
return (
|
|
3115
|
+
return (p, e) => {
|
|
3079
3116
|
const o = E("FmLabel"), B = E("FmField"), L = E("FmSimpleDatePicker"), N = E("FmButton"), H = E("FmRadio"), U = E("FmRadioGroup"), O = E("FmTable");
|
|
3080
|
-
return
|
|
3117
|
+
return S(), V("div", So, [
|
|
3081
3118
|
a("div", wo, [
|
|
3082
3119
|
x(o, { label: "Latest closing" })
|
|
3083
3120
|
]),
|
|
@@ -3086,13 +3123,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3086
3123
|
disabled: ""
|
|
3087
3124
|
}, {
|
|
3088
3125
|
default: R(() => [
|
|
3089
|
-
q(j(I(
|
|
3126
|
+
q(j(I(y).state.closingDocumentId ? `${I(Ee)(new Date(I(Ae)(I(y).state.closingDocumentId)))}` : "No closing found"), 1)
|
|
3090
3127
|
]),
|
|
3091
3128
|
_: 1
|
|
3092
3129
|
}),
|
|
3093
|
-
I(
|
|
3130
|
+
I(y).state.closingDocumentId ? (S(), V("div", Oo, e[6] || (e[6] = [
|
|
3094
3131
|
a("span", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, " Not able to import opening balance as closing document already exists. ", -1)
|
|
3095
|
-
]))) : (
|
|
3132
|
+
]))) : (S(), V("div", ko, [
|
|
3096
3133
|
x(L, {
|
|
3097
3134
|
modelValue: c.value,
|
|
3098
3135
|
"onUpdate:modelValue": e[0] || (e[0] = (T) => c.value = T),
|
|
@@ -3117,17 +3154,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3117
3154
|
]),
|
|
3118
3155
|
x(Fe, {
|
|
3119
3156
|
onFileUpload: e[1] || (e[1] = (T) => {
|
|
3120
|
-
T && (
|
|
3157
|
+
T && (w.value = T);
|
|
3121
3158
|
}),
|
|
3122
3159
|
accept: ".xlsx, .xls, .csv"
|
|
3123
3160
|
}, oe({ _: 2 }, [
|
|
3124
|
-
|
|
3161
|
+
w.value ? {
|
|
3125
3162
|
name: "default",
|
|
3126
3163
|
fn: R(({ openFileDialog: T }) => [
|
|
3127
3164
|
a("div", Co, [
|
|
3128
3165
|
a("div", Eo, [
|
|
3129
3166
|
a("div", Fo, [
|
|
3130
|
-
a("div", Lo, j(
|
|
3167
|
+
a("div", Lo, j(w.value.name), 1),
|
|
3131
3168
|
x(N, {
|
|
3132
3169
|
label: I(b)("inventory.ingredient.import.replaceFile"),
|
|
3133
3170
|
variant: "secondary",
|
|
@@ -3142,13 +3179,13 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3142
3179
|
} : void 0
|
|
3143
3180
|
]), 1024),
|
|
3144
3181
|
x(U, {
|
|
3145
|
-
modelValue:
|
|
3146
|
-
"onUpdate:modelValue": e[2] || (e[2] = (T) =>
|
|
3182
|
+
modelValue: i.value,
|
|
3183
|
+
"onUpdate:modelValue": e[2] || (e[2] = (T) => i.value = T),
|
|
3147
3184
|
label: "Retrieve cost from",
|
|
3148
3185
|
class: "my-5"
|
|
3149
3186
|
}, {
|
|
3150
3187
|
default: R(() => [
|
|
3151
|
-
(
|
|
3188
|
+
(S(!0), V(J, null, $(t.value, (T) => (S(), X(H, {
|
|
3152
3189
|
key: T.value,
|
|
3153
3190
|
value: T.value,
|
|
3154
3191
|
label: T.label,
|
|
@@ -3172,23 +3209,23 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3172
3209
|
variant: "secondary",
|
|
3173
3210
|
"prepend-icon": "troubleshoot",
|
|
3174
3211
|
label: "Verify",
|
|
3175
|
-
disabled: !
|
|
3212
|
+
disabled: !w.value && !k.value,
|
|
3176
3213
|
loading: k.value,
|
|
3177
|
-
onClick:
|
|
3214
|
+
onClick: v
|
|
3178
3215
|
}, null, 8, ["disabled", "loading"])
|
|
3179
3216
|
]),
|
|
3180
|
-
|
|
3217
|
+
w.value && r.value.length > 0 ? (S(), V(J, { key: 0 }, [
|
|
3181
3218
|
e[4] || (e[4] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4" }, "Results", -1)),
|
|
3182
3219
|
x(O, {
|
|
3183
|
-
modelValue:
|
|
3184
|
-
"onUpdate:modelValue": e[3] || (e[3] = (T) =>
|
|
3220
|
+
modelValue: g.value,
|
|
3221
|
+
"onUpdate:modelValue": e[3] || (e[3] = (T) => g.value = T),
|
|
3185
3222
|
"row-data": r.value,
|
|
3186
3223
|
"column-defs": h,
|
|
3187
3224
|
"shrink-at": !1,
|
|
3188
|
-
"search-value":
|
|
3225
|
+
"search-value": m.value
|
|
3189
3226
|
}, null, 8, ["modelValue", "row-data", "search-value"])
|
|
3190
3227
|
], 64)) : _("", !0),
|
|
3191
|
-
l.value.length > 0 ? (
|
|
3228
|
+
l.value.length > 0 ? (S(), V(J, { key: 1 }, [
|
|
3192
3229
|
e[5] || (e[5] = a("h2", { class: "fm-typo-en-title-md-800 mt-8 mb-4 text-red-600" }, "Errors", -1)),
|
|
3193
3230
|
x(O, {
|
|
3194
3231
|
"row-data": l.value,
|
|
@@ -3196,14 +3233,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3196
3233
|
}, null, 8, ["row-data"])
|
|
3197
3234
|
], 64)) : _("", !0),
|
|
3198
3235
|
a("div", Mo, [
|
|
3199
|
-
r.value.length > 0 && !I(
|
|
3236
|
+
r.value.length > 0 && !I(y).state.closingDocumentId ? (S(), X(N, {
|
|
3200
3237
|
key: 0,
|
|
3201
3238
|
class: "ml-auto mt-4",
|
|
3202
3239
|
"prepend-icon": "file_upload",
|
|
3203
3240
|
variant: "primary",
|
|
3204
3241
|
label: "Import Opening Balance",
|
|
3205
|
-
disabled: !
|
|
3206
|
-
onClick:
|
|
3242
|
+
disabled: !w.value || k.value,
|
|
3243
|
+
onClick: f
|
|
3207
3244
|
}, null, 8, ["disabled"])) : _("", !0)
|
|
3208
3245
|
])
|
|
3209
3246
|
]))
|
|
@@ -3220,26 +3257,26 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3220
3257
|
loading: { type: Boolean }
|
|
3221
3258
|
},
|
|
3222
3259
|
emits: ["update:show"],
|
|
3223
|
-
setup(F, { emit:
|
|
3224
|
-
var
|
|
3225
|
-
const s = ie(), n = ae(F, "show"), { t } =
|
|
3226
|
-
return (
|
|
3260
|
+
setup(F, { emit: y }) {
|
|
3261
|
+
var g;
|
|
3262
|
+
const s = ie(), n = ae(F, "show"), { t } = P(), i = y, b = W(), w = ((g = b._currentLocation) == null ? void 0 : g.type) || "";
|
|
3263
|
+
return (m, l) => {
|
|
3227
3264
|
var k;
|
|
3228
3265
|
const r = E("FmIcon"), h = E("FmButton"), C = E("FmSideSheet");
|
|
3229
|
-
return
|
|
3266
|
+
return S(), X(C, {
|
|
3230
3267
|
modelValue: I(n),
|
|
3231
|
-
"onUpdate:modelValue": l[1] || (l[1] = (
|
|
3268
|
+
"onUpdate:modelValue": l[1] || (l[1] = (v) => se(n) ? n.value = v : null),
|
|
3232
3269
|
header: "Data migration (Synergy)",
|
|
3233
3270
|
"dismiss-away": "",
|
|
3234
3271
|
"close-button": "",
|
|
3235
3272
|
"max-width": 800
|
|
3236
3273
|
}, oe({
|
|
3237
3274
|
default: R(() => {
|
|
3238
|
-
var
|
|
3275
|
+
var v;
|
|
3239
3276
|
return [
|
|
3240
|
-
(
|
|
3277
|
+
(v = I(s).sessionUser.value) != null && v.role.isAdmin ? (S(), V("div", Uo, [
|
|
3241
3278
|
x(jo)
|
|
3242
|
-
])) : (
|
|
3279
|
+
])) : (S(), V("div", Xo, " Please contact your administrator to apply the changes. "))
|
|
3243
3280
|
];
|
|
3244
3281
|
}),
|
|
3245
3282
|
"side-sheet-footer": R(() => [
|
|
@@ -3247,7 +3284,7 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3247
3284
|
x(h, {
|
|
3248
3285
|
variant: "tertiary",
|
|
3249
3286
|
label: I(t)("common.close"),
|
|
3250
|
-
onClick: l[0] || (l[0] = (
|
|
3287
|
+
onClick: l[0] || (l[0] = (v) => i("update:show", !1))
|
|
3251
3288
|
}, null, 8, ["label"])
|
|
3252
3289
|
])
|
|
3253
3290
|
]),
|
|
@@ -3256,17 +3293,17 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3256
3293
|
(k = I(s).sessionUser.value) != null && k.role.isAdmin ? {
|
|
3257
3294
|
name: "side-sheet-header",
|
|
3258
3295
|
fn: R(() => {
|
|
3259
|
-
var
|
|
3296
|
+
var v;
|
|
3260
3297
|
return [
|
|
3261
3298
|
a("div", To, [
|
|
3262
3299
|
a("div", zo, [
|
|
3263
3300
|
l[2] || (l[2] = a("div", { class: "fm-typo-en-title-md-600" }, "Data migration (Synergy)", -1)),
|
|
3264
3301
|
a("div", Ho, [
|
|
3265
3302
|
x(r, {
|
|
3266
|
-
name: I(
|
|
3303
|
+
name: I(w),
|
|
3267
3304
|
size: "sm"
|
|
3268
3305
|
}, null, 8, ["name"]),
|
|
3269
|
-
a("div", _o, j((
|
|
3306
|
+
a("div", _o, j((v = I(b)._currentLocation) == null ? void 0 : v.name), 1)
|
|
3270
3307
|
])
|
|
3271
3308
|
])
|
|
3272
3309
|
])
|
|
@@ -3280,14 +3317,14 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3280
3317
|
}), Jo = /* @__PURE__ */ Y({
|
|
3281
3318
|
__name: "SynergyView",
|
|
3282
3319
|
setup(F) {
|
|
3283
|
-
const
|
|
3320
|
+
const y = Le(), s = W(), u = M(!1);
|
|
3284
3321
|
async function n() {
|
|
3285
|
-
|
|
3322
|
+
u.value = !0, console.log("Opening Synergy migration dialog");
|
|
3286
3323
|
}
|
|
3287
|
-
return (t,
|
|
3288
|
-
const b = E("FmCardSection"),
|
|
3289
|
-
return I(
|
|
3290
|
-
x(
|
|
3324
|
+
return (t, i) => {
|
|
3325
|
+
const b = E("FmCardSection"), w = E("FmCard");
|
|
3326
|
+
return I(y).enabledSynergyOpeningMigration && !I(s).businessLevel ? (S(), V(J, { key: 0 }, [
|
|
3327
|
+
x(w, {
|
|
3291
3328
|
class: Z({
|
|
3292
3329
|
"w-full": !0,
|
|
3293
3330
|
border: !0,
|
|
@@ -3295,11 +3332,11 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3295
3332
|
"cursor-pointer": !0,
|
|
3296
3333
|
"hover:border-fm-color-primary": !0
|
|
3297
3334
|
}),
|
|
3298
|
-
onClick:
|
|
3335
|
+
onClick: i[0] || (i[0] = (g) => n())
|
|
3299
3336
|
}, {
|
|
3300
3337
|
default: R(() => [
|
|
3301
3338
|
x(b, null, {
|
|
3302
|
-
default: R(() =>
|
|
3339
|
+
default: R(() => i[2] || (i[2] = [
|
|
3303
3340
|
a("div", { class: "flex justify-center" }, [
|
|
3304
3341
|
a("div", { class: "size-[100px] bg-gray-200 rounded-lg flex items-center justify-center" }, [
|
|
3305
3342
|
a("span", { class: "text-lg font-bold text-gray-600" }, "Synergy")
|
|
@@ -3315,10 +3352,10 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3315
3352
|
]),
|
|
3316
3353
|
_: 1
|
|
3317
3354
|
}),
|
|
3318
|
-
(
|
|
3355
|
+
(S(), X(ue, { to: "body" }, [
|
|
3319
3356
|
x(Yo, {
|
|
3320
|
-
show:
|
|
3321
|
-
"onUpdate:show":
|
|
3357
|
+
show: u.value,
|
|
3358
|
+
"onUpdate:show": i[1] || (i[1] = (g) => u.value = g)
|
|
3322
3359
|
}, null, 8, ["show"])
|
|
3323
3360
|
]))
|
|
3324
3361
|
], 64)) : _("", !0);
|
|
@@ -3327,29 +3364,29 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3327
3364
|
}), Ko = { key: 0 }, qo = {
|
|
3328
3365
|
key: 1,
|
|
3329
3366
|
class: "flex flex-col items-center my-10 gap-5"
|
|
3330
|
-
}, Zo = ["src"],
|
|
3367
|
+
}, Zo = ["src"], Po = {
|
|
3331
3368
|
class: "text-xs text-neutral-400 text-center",
|
|
3332
3369
|
style: { "max-width": "25rem" }
|
|
3333
|
-
},
|
|
3370
|
+
}, Go = {
|
|
3334
3371
|
key: 2,
|
|
3335
3372
|
class: "grid grid-cols-2 gap-5"
|
|
3336
|
-
},
|
|
3373
|
+
}, ls = /* @__PURE__ */ Y({
|
|
3337
3374
|
__name: "IntegrationView",
|
|
3338
3375
|
setup(F) {
|
|
3339
|
-
const
|
|
3376
|
+
const y = W(), s = M(!1), u = We(), { breakpoints: n } = Ve(), t = z(() => n.value.xs || n.value.sm), { t: i } = P();
|
|
3340
3377
|
return fe(async () => {
|
|
3341
|
-
if (
|
|
3378
|
+
if (y._currentLocation) {
|
|
3342
3379
|
s.value = !0;
|
|
3343
3380
|
try {
|
|
3344
|
-
await
|
|
3381
|
+
await u.fetchFoodMarketHubSetting(), await u.fetchNetSuiteSetting();
|
|
3345
3382
|
} finally {
|
|
3346
3383
|
s.value = !1;
|
|
3347
3384
|
}
|
|
3348
3385
|
}
|
|
3349
|
-
}), (b,
|
|
3350
|
-
const
|
|
3351
|
-
return
|
|
3352
|
-
title: I(
|
|
3386
|
+
}), (b, w) => {
|
|
3387
|
+
const g = E("FmCircularProgress");
|
|
3388
|
+
return S(), X(Je, {
|
|
3389
|
+
title: I(i)("inventory.integration.title")
|
|
3353
3390
|
}, {
|
|
3354
3391
|
default: R(() => [
|
|
3355
3392
|
a("div", {
|
|
@@ -3365,18 +3402,18 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3365
3402
|
"change-location": "",
|
|
3366
3403
|
showBusiness: ""
|
|
3367
3404
|
}),
|
|
3368
|
-
!I(
|
|
3369
|
-
x(
|
|
3370
|
-
])) : I(
|
|
3405
|
+
!I(y)._currentLocation || s.value ? (S(), V("div", Ko, [
|
|
3406
|
+
x(g, { size: "lg" })
|
|
3407
|
+
])) : I(u).enabledIntegrations == 0 ? (S(), V("div", qo, [
|
|
3371
3408
|
a("div", null, [
|
|
3372
3409
|
a("img", {
|
|
3373
3410
|
src: I(He),
|
|
3374
3411
|
alt: "List is empty"
|
|
3375
3412
|
}, null, 8, Zo)
|
|
3376
3413
|
]),
|
|
3377
|
-
|
|
3378
|
-
a("div",
|
|
3379
|
-
])) : (
|
|
3414
|
+
w[0] || (w[0] = a("div", { class: "font-bold text-lg" }, "Integration", -1)),
|
|
3415
|
+
a("div", Po, j(I(i)("inventory.integration.description")), 1)
|
|
3416
|
+
])) : (S(), V("div", Go, [
|
|
3380
3417
|
x(Qn),
|
|
3381
3418
|
x(Kt),
|
|
3382
3419
|
x(bo),
|
|
@@ -3390,5 +3427,5 @@ const So = { class: "flex flex-col gap-4" }, wo = { class: "flex flex-col" }, ko
|
|
|
3390
3427
|
}
|
|
3391
3428
|
});
|
|
3392
3429
|
export {
|
|
3393
|
-
|
|
3430
|
+
ls as default
|
|
3394
3431
|
};
|