@feedmepos/mf-inventory-portal 1.2.23 → 1.2.25-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/App-svECebjK.js +297 -0
  2. package/dist/{ApprovalView-C15FSJQX.js → ApprovalView-CMSf_J2n.js} +13 -13
  3. package/dist/{BindingsDialog-DyEAwfOs.js → BindingsDialog-DENEjolJ.js} +2 -2
  4. package/dist/{BindingsPicker-BwkIrvXh.js → BindingsPicker-BYImJRaj.js} +1 -1
  5. package/dist/{BindingsTable-DbSRsazC.js → BindingsTable-BrGqgucq.js} +1 -1
  6. package/dist/{ClosingDraftView-DkT7ssTD.js → ClosingDraftView-uGF3mkBd.js} +5 -4
  7. package/dist/ClosingHistoryView-BKgZsXZU.js +355 -0
  8. package/dist/{ClosingTemplateView-pdiWLX1d.js → ClosingTemplateView-BQmC4An_.js} +2 -2
  9. package/dist/{DeliveryOrderPrintPreview-B_bL2AV7.js → DeliveryOrderPrintPreview-CqfFyoTx.js} +9 -9
  10. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-Dl4NAEX2.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CCTMmG94.js} +21 -21
  11. package/dist/{FmMultiselectDialog-CzoBlXFC.js → FmMultiselectDialog-_MlkbNly.js} +1 -1
  12. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-FLXqyc8j.js → FmUnitInput.vue_vue_type_script_setup_true_lang-DmLhEVWi.js} +1 -1
  13. package/dist/{ImportView-BkW7pYIh.js → ImportView-D-d9ATVE.js} +4 -6
  14. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-DgQwpfVr.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-CdX2Uvdb.js} +1 -1
  15. package/dist/{IngredientGroupView-BHUq8eUh.js → IngredientGroupView-BcaX4ZRX.js} +2 -2
  16. package/dist/{IngredientsView-DIVZSAFN.js → IngredientsView-DxA8tI-v.js} +7 -7
  17. package/dist/{IntegrationView-2flRWenk.js → IntegrationView-BtzwigHc.js} +141 -141
  18. package/dist/{InventoryBindingForm-CF9Szzug.js → InventoryBindingForm-CIlQbCPQ.js} +1 -1
  19. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-YxSxYZcR.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-BH6zgB9N.js} +3 -3
  20. package/dist/{InventoryBindingSummary-c6MF5Yb4.js → InventoryBindingSummary-DCLkDnck.js} +1 -1
  21. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-NEHvo5li.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BdUVlwac.js} +1 -1
  22. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-CJMpmYyw.js → PremiumBadge.vue_vue_type_script_setup_true_lang-CNn57Gsw.js} +1 -1
  23. package/dist/{PublishView-C7Xdnzlh.js → PublishView-Cg56zsdv.js} +4 -4
  24. package/dist/{PurchaseOrderPrintPreview-5MhPoeTI.js → PurchaseOrderPrintPreview-ab3npDLz.js} +10 -10
  25. package/dist/{ReceiveRequestView-CN9BtJeF.js → ReceiveRequestView-CZ9GoTB3.js} +8 -8
  26. package/dist/{RecipeView-ClwA5F7r.js → RecipeView-DODYvOxp.js} +3 -3
  27. package/dist/{StockView-CQu_GA9L.js → StockView-P4B0_4cp.js} +18 -17
  28. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-BzuVCffs.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DDGU8k4Y.js} +1 -1
  29. package/dist/{SupplierView-ChW6ZEn_.js → SupplierView-BBFEWOUO.js} +4 -4
  30. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-CVoLy3lQ.js → TransferDetails.vue_vue_type_script_setup_true_lang-CUw4_F1q.js} +174 -174
  31. package/dist/{TransferTemplateView-BXcUq5zc.js → TransferTemplateView-CZapMuRF.js} +7 -7
  32. package/dist/{UnitView-C5cjS8t2.js → UnitView-BBBwzqJ-.js} +3 -3
  33. package/dist/{WarehouseView-YRF4ujMe.js → WarehouseView-Blc2Yput.js} +1 -1
  34. package/dist/api/closing.d.ts +1 -0
  35. package/dist/api/stock.d.ts +2 -44
  36. package/dist/{app-90sUA0QM.js → app-_mYLQuxf.js} +10546 -10269
  37. package/dist/app.d.ts +99 -0
  38. package/dist/app.js +1 -1
  39. package/dist/{decimal-wb2UYLZY.js → decimal-Cb5DEV38.js} +1 -1
  40. package/dist/{format-unit-display-H61kNrbU.js → format-unit-display-DH44zkQq.js} +20 -20
  41. package/dist/{import-export.helper-CvJtTj6v.js → import-export.helper-cLaJAcgW.js} +1 -1
  42. package/dist/{index-Cpl4tL8O.js → index-CCIRnIFI.js} +1 -1
  43. package/dist/{index-4YIXJDBZ.js → index-YHqLg0qR.js} +1 -1
  44. package/dist/{purchase-order-template-DJTIqx45.js → purchase-order-template-Dt5KDXNO.js} +1 -1
  45. package/dist/router/name.d.ts +1 -0
  46. package/dist/stock-CV3z7I58.js +74 -0
  47. package/dist/stock-CrjsQRTg.js +83 -0
  48. package/dist/stores/inventory.d.ts +1 -0
  49. package/dist/{supplier-CezSNyT3.js → supplier-CbaxXdZ-.js} +1 -1
  50. package/dist/tsconfig.app.tsbuildinfo +1 -1
  51. package/dist/{use-ingredient-select-dialog-BSTgdhQt.js → use-ingredient-select-dialog-CaEOT5eK.js} +1 -1
  52. package/dist/{use-inventory-binding-dialog-nVuvOIzy.js → use-inventory-binding-dialog-C6OfhRBn.js} +1 -1
  53. package/dist/views/closing-history/ClosingHistoryView.vue.d.ts +2 -0
  54. package/dist/views/receive-request/components/transfer-form/TransferForm.vue.d.ts +4 -2
  55. package/dist/views/receive-request/composables/use-receive-request-form.d.ts +6 -3
  56. package/dist/views/receive-request/composables/use-receive-request-table.d.ts +6 -3
  57. package/dist/views/stock/components/dialog/RecalculationDialog.vue.d.ts +11 -0
  58. package/dist/views/stock/components/dialog/RecalculationDialogProps.d.ts +3 -0
  59. package/package.json +1 -1
  60. package/dist/App-CzxvakHO.js +0 -286
  61. package/dist/stock-Cg3h8ddl.js +0 -146
@@ -0,0 +1,355 @@
1
+ import { defineComponent as H, ref as v, computed as h, resolveComponent as k, openBlock as d, createElementBlock as g, createVNode as f, withModifiers as te, withCtx as A, createElementVNode as s, toDisplayString as u, unref as n, Fragment as K, createTextVNode as M, createBlock as L, createCommentVNode as F, renderList as oe, normalizeClass as le, h as ae, onMounted as ne, Teleport as se } from "vue";
2
+ import { aD as j, ac as x, u as ie, h as ce, I as re, J as ue } from "./app-_mYLQuxf.js";
3
+ import { useI18n as z, useCoreStore as de } from "@feedmepos/mf-common";
4
+ import { useSnackbar as me } from "@feedmepos/ui-library";
5
+ import { u as ve } from "./stock-CrjsQRTg.js";
6
+ const fe = { class: "fm-typo-en-heading-lg-600" }, ye = { class: "flex flex-col gap-16" }, pe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ge = { class: "flex flex-col gap-8" }, _e = { class: "fm-typo-en-body-md-600" }, be = { class: "flex flex-col gap-8" }, he = { class: "fm-typo-en-body-md-600" }, ke = { class: "flex items-center gap-8 mb-8" }, xe = {
7
+ key: 2,
8
+ class: "text-red-500 text-sm mt-2"
9
+ }, De = { class: "fm-typo-en-body-sm-400" }, Ve = {
10
+ key: 1,
11
+ class: "flex flex-col gap-8"
12
+ }, Se = { class: "fm-typo-en-body-md-600" }, we = { class: "flex flex-col gap-8 max-h-[300px] overflow-y-auto" }, Ce = { class: "flex items-center justify-between" }, Re = { class: "fm-typo-en-body-sm-600" }, Fe = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, Ae = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, Le = {
13
+ key: 0,
14
+ class: "fm-typo-en-body-xs-400 text-fm-color-system-error-500"
15
+ }, Te = {
16
+ key: 0,
17
+ class: "flex gap-8 ml-auto"
18
+ }, Be = {
19
+ key: 1,
20
+ class: "flex gap-8 ml-auto"
21
+ }, $e = /* @__PURE__ */ H({
22
+ __name: "RecalculationDialog",
23
+ emits: ["submitted"],
24
+ setup(J, { expose: _, emit: B }) {
25
+ const S = B, { t: a } = z(), D = ve(), w = j(), C = me(), y = v(!1), i = v(""), c = v(""), m = v(!1), V = v([]), t = v(!1), r = v([]), b = v(!1), R = h(() => V.value.map((e) => {
26
+ const o = x(e._id), p = new Date(o);
27
+ return {
28
+ label: `${p.toLocaleDateString()} ${p.toLocaleTimeString()}`,
29
+ value: e._id
30
+ };
31
+ })), G = h(() => i.value ? R.value.filter((e) => e.value > i.value) : []), E = h({
32
+ get: () => {
33
+ if (m.value && c.value) {
34
+ const e = V.value.find((o) => x(o._id) === c.value);
35
+ return (e == null ? void 0 : e._id) || c.value;
36
+ }
37
+ return c.value;
38
+ },
39
+ set: (e) => {
40
+ m.value && e ? c.value = x(e) : c.value = e;
41
+ }
42
+ }), Q = h(() => {
43
+ if (i.value)
44
+ try {
45
+ const e = x(i.value);
46
+ if (e)
47
+ return e;
48
+ } catch (e) {
49
+ console.error("Error parsing date from closing ID:", e);
50
+ }
51
+ }), T = h(() => {
52
+ if (!i.value || !c.value) return "";
53
+ const e = x(i.value), o = c.value;
54
+ if (e && o) {
55
+ const p = new Date(e).getTime();
56
+ if (new Date(o).getTime() <= p)
57
+ return a("inventory.stock.recalculation.error.endDateBeforeOpening");
58
+ }
59
+ return "";
60
+ }), N = h(() => !!i.value && !!c.value && !T.value), U = h(() => r.value.some(
61
+ (e) => !e.completedAt && !e.failedReason
62
+ ));
63
+ async function I() {
64
+ y.value = !0, await Promise.all([X(), P()]), i.value = "", c.value = "", m.value = !1;
65
+ }
66
+ function W() {
67
+ y.value = !1;
68
+ }
69
+ _({
70
+ open: I,
71
+ close: W
72
+ });
73
+ async function X() {
74
+ t.value = !0;
75
+ try {
76
+ const e = await w.getLastNClosings(10);
77
+ V.value = e;
78
+ } catch (e) {
79
+ console.error("Error fetching recent closings:", e), C.open({
80
+ title: a("common.error"),
81
+ message: "Failed to fetch recent closings",
82
+ type: "error"
83
+ });
84
+ } finally {
85
+ t.value = !1;
86
+ }
87
+ }
88
+ async function P() {
89
+ b.value = !0;
90
+ try {
91
+ const e = await D.recalculation.recalculationRequests();
92
+ r.value = e;
93
+ } catch (e) {
94
+ console.error("Error fetching recalculation requests:", e);
95
+ } finally {
96
+ b.value = !1;
97
+ }
98
+ }
99
+ async function Y() {
100
+ if (N.value) {
101
+ t.value = !0;
102
+ try {
103
+ await D.recalculation.scheduleRecalculation(i.value, c.value), C.open({
104
+ title: a("common.success"),
105
+ message: "Stock recalculation has been scheduled successfully",
106
+ type: "success"
107
+ }), await P(), y.value = !1, S("submitted");
108
+ } catch (e) {
109
+ console.error("Error scheduling recalculation:", e), C.open({
110
+ title: a("common.error"),
111
+ message: "Failed to schedule stock recalculation",
112
+ type: "error"
113
+ });
114
+ } finally {
115
+ t.value = !1;
116
+ }
117
+ }
118
+ }
119
+ return (e, o) => {
120
+ const p = k("FmButton"), $ = k("FmSelect"), O = k("FmRadio"), Z = k("FmDatePicker"), q = k("FmAlert"), ee = k("FmDialog");
121
+ return d(), g("div", null, [
122
+ f(p, {
123
+ "prepend-icon": "info",
124
+ variant: "tertiary",
125
+ onClick: te(I, ["stop"])
126
+ }),
127
+ f(ee, {
128
+ modelValue: y.value,
129
+ "onUpdate:modelValue": o[7] || (o[7] = (l) => y.value = l),
130
+ "close-button": "",
131
+ dismissAway: "",
132
+ "max-width": "600px"
133
+ }, {
134
+ "dialog-header": A(() => [
135
+ s("div", fe, u(n(a)("inventory.stock.recalculation.title")), 1)
136
+ ]),
137
+ "dialog-footer": A(() => [
138
+ U.value ? (d(), g("div", Be, [
139
+ f(p, {
140
+ variant: "tertiary",
141
+ onClick: o[6] || (o[6] = (l) => y.value = !1),
142
+ label: n(a)("common.close")
143
+ }, null, 8, ["label"])
144
+ ])) : (d(), g("div", Te, [
145
+ f(p, {
146
+ variant: "tertiary",
147
+ onClick: o[5] || (o[5] = (l) => y.value = !1),
148
+ disabled: t.value,
149
+ label: n(a)("common.cancel")
150
+ }, null, 8, ["disabled", "label"]),
151
+ f(p, {
152
+ variant: "primary",
153
+ onClick: Y,
154
+ disabled: !N.value || t.value,
155
+ loading: t.value,
156
+ label: n(a)("inventory.stock.recalculation.schedule")
157
+ }, null, 8, ["disabled", "loading", "label"])
158
+ ]))
159
+ ]),
160
+ default: A(() => [
161
+ s("div", ye, [
162
+ s("div", pe, u(n(a)("inventory.stock.recalculation.description")), 1),
163
+ U.value ? F("", !0) : (d(), g(K, { key: 0 }, [
164
+ s("div", ge, [
165
+ s("p", _e, [
166
+ M(u(n(a)("inventory.stock.recalculation.openingDate")) + " ", 1),
167
+ o[8] || (o[8] = s("span", { class: "text-fm-color-system-error-300" }, "*", -1))
168
+ ]),
169
+ f($, {
170
+ modelValue: i.value,
171
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => i.value = l),
172
+ items: R.value,
173
+ placeholder: n(a)("inventory.stock.recalculation.selectOpening"),
174
+ loading: t.value,
175
+ disabled: t.value
176
+ }, null, 8, ["modelValue", "items", "placeholder", "loading", "disabled"])
177
+ ]),
178
+ s("div", be, [
179
+ s("p", he, [
180
+ M(u(n(a)("inventory.stock.recalculation.untilDate")) + " ", 1),
181
+ o[9] || (o[9] = s("span", { class: "text-fm-color-system-error-300" }, "*", -1))
182
+ ]),
183
+ s("div", ke, [
184
+ f(O, {
185
+ modelValue: m.value,
186
+ "onUpdate:modelValue": o[1] || (o[1] = (l) => m.value = l),
187
+ value: !1,
188
+ label: n(a)("inventory.stock.recalculation.selectByDate")
189
+ }, null, 8, ["modelValue", "label"]),
190
+ f(O, {
191
+ modelValue: m.value,
192
+ "onUpdate:modelValue": o[2] || (o[2] = (l) => m.value = l),
193
+ value: !0,
194
+ label: n(a)("inventory.stock.recalculation.selectByClosing")
195
+ }, null, 8, ["modelValue", "label"])
196
+ ]),
197
+ m.value ? (d(), L($, {
198
+ key: 1,
199
+ modelValue: E.value,
200
+ "onUpdate:modelValue": o[4] || (o[4] = (l) => E.value = l),
201
+ items: G.value,
202
+ placeholder: n(a)("inventory.stock.recalculation.selectClosing"),
203
+ loading: t.value,
204
+ disabled: !i.value || t.value
205
+ }, null, 8, ["modelValue", "items", "placeholder", "loading", "disabled"])) : (d(), L(Z, {
206
+ key: 0,
207
+ modelValue: c.value,
208
+ "onUpdate:modelValue": o[3] || (o[3] = (l) => c.value = l),
209
+ placeholder: n(a)("inventory.stock.recalculation.selectDate"),
210
+ min: Q.value,
211
+ disabled: !i.value || t.value
212
+ }, null, 8, ["modelValue", "placeholder", "min", "disabled"])),
213
+ T.value ? (d(), g("div", xe, u(T.value), 1)) : F("", !0)
214
+ ]),
215
+ i.value && c.value && !T.value ? (d(), L(q, {
216
+ key: 0,
217
+ type: "info"
218
+ }, {
219
+ default: A(() => [
220
+ s("div", De, u(n(a)("inventory.stock.recalculation.info")), 1)
221
+ ]),
222
+ _: 1
223
+ })) : F("", !0)
224
+ ], 64)),
225
+ r.value.length > 0 ? (d(), g("div", Ve, [
226
+ s("p", Se, u(n(a)("inventory.stock.recalculation.recentRequests")), 1),
227
+ s("div", we, [
228
+ (d(!0), g(K, null, oe(r.value, (l) => (d(), g("div", {
229
+ key: l._id,
230
+ class: "p-12 border border-fm-color-border-primary rounded-8 flex flex-col gap-4"
231
+ }, [
232
+ s("div", Ce, [
233
+ s("div", Re, u(new Date(l.createdAt).toLocaleString()), 1),
234
+ s("div", {
235
+ class: le(["fm-typo-en-body-xs-600 px-8 py-4 rounded-4", {
236
+ "bg-fm-color-system-error-100 text-fm-color-system-error-500": l.failedReason,
237
+ "bg-fm-color-system-success-100 text-fm-color-system-success-500": l.completedAt,
238
+ "bg-fm-color-system-info-100 text-fm-color-system-info-500": !l.failedReason && !l.completedAt
239
+ }])
240
+ }, u(l.failedReason ? n(a)("inventory.stock.recalculation.status.failed") : l.completedAt ? n(a)("inventory.stock.recalculation.status.completed") : n(a)("inventory.stock.recalculation.status.inProgress")), 3)
241
+ ]),
242
+ s("div", Fe, u(n(a)("inventory.stock.recalculation.from")) + ": " + u(new Date(l.recalculateStartDate).toLocaleDateString()), 1),
243
+ s("div", Ae, u(n(a)("inventory.stock.recalculation.to")) + ": " + u(new Date(l.recalculateEndDate).toLocaleDateString()), 1),
244
+ l.failedReason ? (d(), g("div", Le, u(l.failedReason), 1)) : F("", !0)
245
+ ]))), 128))
246
+ ])
247
+ ])) : F("", !0)
248
+ ])
249
+ ]),
250
+ _: 1
251
+ }, 8, ["modelValue"])
252
+ ]);
253
+ };
254
+ }
255
+ }), Ee = { class: "flex flex-col gap-16 p-16" }, Ke = /* @__PURE__ */ H({
256
+ __name: "ClosingHistoryView",
257
+ setup(J) {
258
+ var V;
259
+ const { t: _ } = z(), B = j(), S = ie(), a = de(), D = v([]), w = v(!1), C = h(() => [
260
+ {
261
+ label: _("inventory.stock.recalculation.title", "Stock Recalculation"),
262
+ value: "recalculation",
263
+ prependIcon: "history",
264
+ isAdminOnly: !0
265
+ }
266
+ ]), y = v();
267
+ function i(t) {
268
+ var r;
269
+ switch (t) {
270
+ case "recalculation":
271
+ return (r = y.value) == null ? void 0 : r.open();
272
+ }
273
+ }
274
+ const c = [
275
+ ...(V = a.sessionUser.value) != null && V.role.isAdmin ? [
276
+ {
277
+ accessorKey: "_id",
278
+ header: () => ae(ce, {}, () => `${_("inventory.closing.history.closingId")}`),
279
+ cell: (t) => t.getValue()
280
+ }
281
+ ] : [],
282
+ {
283
+ accessorKey: "_id",
284
+ id: "date",
285
+ header: () => _("inventory.closing.history.date"),
286
+ cell: (t) => {
287
+ const r = t.getValue(), b = x(r);
288
+ return new Date(b).toLocaleDateString();
289
+ }
290
+ },
291
+ {
292
+ accessorKey: "_id",
293
+ id: "time",
294
+ header: () => _("inventory.closing.history.time"),
295
+ cell: (t) => {
296
+ const r = t.getValue(), b = x(r);
297
+ return new Date(b).toLocaleTimeString();
298
+ }
299
+ },
300
+ {
301
+ accessorKey: "ref",
302
+ header: () => _("inventory.closing.history.createdFrom"),
303
+ cell: (t) => t.getValue() || "-"
304
+ }
305
+ ];
306
+ async function m() {
307
+ if (S.currentLocationDBName) {
308
+ w.value = !0;
309
+ try {
310
+ const t = await B.getLastNClosings(10);
311
+ D.value = t;
312
+ } catch (t) {
313
+ console.error("Error fetching closings:", t), D.value = [];
314
+ } finally {
315
+ w.value = !1;
316
+ }
317
+ }
318
+ }
319
+ return ne(async () => {
320
+ S.currentLocationDBName && await m();
321
+ }), S.watchLocation(m), (t, r) => {
322
+ const b = k("FmTable");
323
+ return d(), L(re, {
324
+ actions: C.value,
325
+ title: n(_)("inventory.closing.history.title"),
326
+ "onClick:action": i
327
+ }, {
328
+ default: A(() => [
329
+ s("div", Ee, [
330
+ f(ue, {
331
+ "change-location": "",
332
+ "hide-filter-options": !0
333
+ }),
334
+ f(b, {
335
+ loading: w.value,
336
+ "row-data": D.value,
337
+ "column-defs": c
338
+ }, null, 8, ["loading", "row-data"])
339
+ ]),
340
+ (d(), L(se, { to: "body" }, [
341
+ f($e, {
342
+ ref_key: "recalculationDialogRef",
343
+ ref: y,
344
+ onSubmitted: r[0] || (r[0] = (R) => m())
345
+ }, null, 512)
346
+ ]))
347
+ ]),
348
+ _: 1
349
+ }, 8, ["actions", "title"]);
350
+ };
351
+ }
352
+ });
353
+ export {
354
+ Ke as default
355
+ };
@@ -1,9 +1,9 @@
1
1
  import { ref as F, h as R, defineComponent as Y, resolveComponent as P, openBlock as $, createElementBlock as M, createElementVNode as y, normalizeClass as q, createTextVNode as le, toDisplayString as S, unref as d, createCommentVNode as z, createVNode as C, withCtx as A, Fragment as j, renderList as W, computed as V, watch as Ae, createSlots as Ee, createBlock as U, isRef as Ye, normalizeStyle as Ke, Teleport as Ge, normalizeProps as qe, guardReactiveProps as Je, mergeProps as We } from "vue";
2
- import { u as de, l as ie, an as Xe, D as ne, j as L, i as Qe, f as Ve, ao as Ze, ap as ae, Y as Ue, aq as pe, X as fe, a as ve, b as et, ar as tt, as as Le, C as nt, E as ot, at as st, e as O, L as G, Q as lt, au as at, r as rt, K as Ne, A as it, ab as se, av as ct, aw as mt, G as ut, I as dt, J as pt } from "./app-90sUA0QM.js";
2
+ import { u as de, l as ie, an as Xe, D as ne, j as L, i as Qe, f as Ve, ao as Ze, ap as ae, Y as Ue, aq as pe, X as fe, a as ve, b as et, ar as tt, as as Le, C as nt, E as ot, at as st, e as O, L as G, Q as lt, au as at, r as rt, K as Ne, A as it, ab as se, av as ct, aw as mt, G as ut, I as dt, J as pt } from "./app-_mYLQuxf.js";
3
3
  import { useI18n as K, useCoreStore as ge } from "@feedmepos/mf-common";
4
4
  import { useDialog as ce, useDialogChild as ft, useSnackbar as me, FmButtonVariant as oe, components as H, useProxiedModel as vt, useBreakpoints as gt } from "@feedmepos/ui-library";
5
5
  import { defineStore as Be, storeToRefs as ze } from "pinia";
6
- import { u as yt } from "./use-ingredient-select-dialog-BSTgdhQt.js";
6
+ import { u as yt } from "./use-ingredient-select-dialog-CaEOT5eK.js";
7
7
  const ue = Be(
8
8
  "closingTemplateTable",
9
9
  function() {
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as x, computed as f, ref as h, onMounted as g, openBlock as u, createElementBlock as i, createElementVNode as t, createTextVNode as n, toDisplayString as e, createCommentVNode as d, Fragment as o, renderList as p, normalizeClass as _ } from "vue";
2
2
  import { useRoute as k } from "vue-router";
3
- import { aK as y, aw as w } from "./app-90sUA0QM.js";
3
+ import { aL as y, aw as w } from "./app-_mYLQuxf.js";
4
4
  const c = { class: "purchase-box" }, A = { valign: "bottom" }, N = { class: "sub-header" }, O = ["src"], P = { style: { "padding-left": "10px" } }, C = { class: "address" }, D = { class: "text-right" }, R = {
5
5
  key: 0,
6
6
  class: "subtitle"
7
- }, S = { class: "sub-header" }, E = { class: "caption" }, T = { class: "address" }, q = { class: "text-right" }, F = { class: "sub-header" }, I = { class: "address" }, U = { class: "purchase-body" }, B = { class: "text-left" }, H = { class: "text-left" }, L = { class: "text-left" }, M = { class: "text-left" }, V = { class: "text-left" }, J = { class: "text-right" }, j = { key: 0 }, z = {
7
+ }, S = { class: "sub-header" }, E = { class: "caption" }, T = { class: "address" }, q = { class: "text-right" }, F = { class: "sub-header" }, I = { class: "address" }, L = { class: "purchase-body" }, U = { class: "text-left" }, B = { class: "text-left" }, H = { class: "text-left" }, M = { class: "text-left" }, V = { class: "text-left" }, J = { class: "text-right" }, j = { key: 0 }, z = {
8
8
  key: 1,
9
9
  style: { "padding-top": "30px" }
10
- }, G = { valign: "bottom" }, K = { class: "header" }, Q = { class: "caption" }, W = {
10
+ }, G = { valign: "bottom" }, Q = { class: "header" }, K = { class: "caption" }, W = {
11
11
  class: "text-left",
12
12
  style: { width: "20%" }
13
13
  }, X = { class: "text-left" }, Y = {
@@ -106,7 +106,7 @@ const c = { class: "purchase-box" }, A = { valign: "bottom" }, N = { class: "sub
106
106
  ])
107
107
  ])
108
108
  ]),
109
- t("div", U, [
109
+ t("div", L, [
110
110
  t("table", null, [
111
111
  l[19] || (l[19] = t("thead", { class: "item-header" }, [
112
112
  t("tr", null, [
@@ -126,9 +126,9 @@ const c = { class: "purchase-box" }, A = { valign: "bottom" }, N = { class: "sub
126
126
  ], -1)),
127
127
  t("tbody", null, [
128
128
  t("tr", null, [
129
- t("td", B, e(s.value.orderNumber), 1),
130
- t("td", H, e(s.value.ref), 1),
131
- t("td", L, e(s.value.supplier.phoneNumber), 1)
129
+ t("td", U, e(s.value.orderNumber), 1),
130
+ t("td", B, e(s.value.ref), 1),
131
+ t("td", H, e(s.value.supplier.phoneNumber), 1)
132
132
  ])
133
133
  ])
134
134
  ]),
@@ -178,8 +178,8 @@ const c = { class: "purchase-box" }, A = { valign: "bottom" }, N = { class: "sub
178
178
  t("table", null, [
179
179
  t("tr", G, [
180
180
  t("td", null, [
181
- t("div", K, "Ref: " + e(r.ref), 1),
182
- t("div", Q, e(r.createdAt), 1),
181
+ t("div", Q, "Ref: " + e(r.ref), 1),
182
+ t("div", K, e(r.createdAt), 1),
183
183
  t("div", null, "Remark: " + e(r.remark), 1)
184
184
  ])
185
185
  ])
@@ -1,8 +1,8 @@
1
- import { n as C, t as E, aH as g, u as R, aM as B, aW as H, p as D, aX as U } from "./app-90sUA0QM.js";
2
- import { u as z } from "./supplier-CezSNyT3.js";
3
- import { P as T } from "./format-unit-display-H61kNrbU.js";
4
- import { computed as f, defineComponent as W, mergeModels as j, useModel as q, ref as x, resolveComponent as w, openBlock as L, createElementBlock as O, normalizeStyle as $, createElementVNode as I, createVNode as X, withCtx as J, createBlock as M, createCommentVNode as N, Fragment as K, renderList as Q, unref as V } from "vue";
5
- function Y(e, a, r) {
1
+ import { n as C, t as E, aI as M, u as R, aN as B, aX as D, p as H, aY as U } from "./app-_mYLQuxf.js";
2
+ import { u as z } from "./supplier-CbaxXdZ-.js";
3
+ import { P as T } from "./format-unit-display-DH44zkQq.js";
4
+ import { computed as f, defineComponent as j, mergeModels as q, useModel as x, ref as W, resolveComponent as w, openBlock as L, createElementBlock as O, normalizeStyle as $, createElementVNode as I, createVNode as X, withCtx as Y, createBlock as V, createCommentVNode as N, Fragment as J, renderList as K, unref as g } from "vue";
5
+ function Q(e, a, r) {
6
6
  var o;
7
7
  if (!!a.measurement === !!r && ((o = a.measurement) == null ? void 0 : o.id) === r)
8
8
  return a;
@@ -29,22 +29,22 @@ function oe(e, a, r, u) {
29
29
  skuDefaultCost: e.defaultCost ?? void 0,
30
30
  supplierOverrideCost: l ?? void 0
31
31
  };
32
- const n = e.defaultCost ? Y(e.unit, e.defaultCost, e.trackingMeasurement) : void 0, o = l ?? n, p = o == null ? void 0 : o.costPerUnit, v = p ? o != null && o.measurement ? +C(p) / +C(o == null ? void 0 : o.measurement.conversion) : +C(p) : void 0, b = v ? r ? v * +C(r.conversion) : v : void 0, h = b ? +C(a) * b : void 0;
32
+ const n = e.defaultCost ? Q(e.unit, e.defaultCost, e.trackingMeasurement) : void 0, o = l ?? n, p = o == null ? void 0 : o.costPerUnit, v = p ? o != null && o.measurement ? +C(p) / +C(o == null ? void 0 : o.measurement.conversion) : +C(p) : void 0, b = v ? r ? v * +C(r.conversion) : v : void 0, h = b ? +C(a) * b : void 0;
33
33
  return {
34
34
  cost: h ? {
35
35
  ...E(h ?? 0, 2),
36
- currency: g()
36
+ currency: M()
37
37
  } : {
38
38
  amount: 0,
39
39
  precision: 0,
40
- currency: g()
40
+ currency: M()
41
41
  },
42
42
  skuDefaultCost: e.defaultCost ?? void 0,
43
43
  supplierOverrideCost: l ?? void 0
44
44
  };
45
45
  }
46
46
  function k(e) {
47
- const a = H.safeParse(e);
47
+ const a = D.safeParse(e);
48
48
  if (a.success) return a.data;
49
49
  throw new Error("Invalid supplier data");
50
50
  }
@@ -153,9 +153,9 @@ function ne(e, a, r = !1, u = !1) {
153
153
  selectedLocation: _
154
154
  };
155
155
  }
156
- const Z = { class: "overflow-y-auto h-full pb-8" }, ae = /* @__PURE__ */ W({
156
+ const Z = { class: "overflow-y-auto h-full pb-8" }, ae = /* @__PURE__ */ j({
157
157
  __name: "FmFilterableMenuOptions",
158
- props: /* @__PURE__ */ j({
158
+ props: /* @__PURE__ */ q({
159
159
  modelValue: {},
160
160
  maxHeight: {},
161
161
  width: {},
@@ -168,12 +168,12 @@ const Z = { class: "overflow-y-auto h-full pb-8" }, ae = /* @__PURE__ */ W({
168
168
  }),
169
169
  emits: ["update:search"],
170
170
  setup(e) {
171
- const a = e, r = q(e, "search"), u = f(
172
- () => new D(a.items, ["label", "sublabel"], {
171
+ const a = e, r = x(e, "search"), u = f(
172
+ () => new H(a.items, ["label", "sublabel"], {
173
173
  caseSensitive: !1,
174
174
  sort: !0
175
175
  })
176
- ), l = f(() => u.value.search(r.value)), n = x();
176
+ ), l = f(() => u.value.search(r.value)), n = W();
177
177
  return console.log({ stickyRef: n }), (o, p) => {
178
178
  const v = w("FmButton"), b = w("FmTextField"), h = w("FmMenuItem");
179
179
  return L(), O("div", {
@@ -190,8 +190,8 @@ const Z = { class: "overflow-y-auto h-full pb-8" }, ae = /* @__PURE__ */ W({
190
190
  "onUpdate:modelValue": p[1] || (p[1] = (c) => r.value = c),
191
191
  placeholder: "Filter options"
192
192
  }, {
193
- append: J(() => [
194
- r.value ? (L(), M(v, {
193
+ append: Y(() => [
194
+ r.value ? (L(), V(v, {
195
195
  key: 0,
196
196
  variant: "tertiary",
197
197
  "prepend-icon": "close",
@@ -202,18 +202,18 @@ const Z = { class: "overflow-y-auto h-full pb-8" }, ae = /* @__PURE__ */ W({
202
202
  }, 8, ["modelValue"])
203
203
  ], 512),
204
204
  I("div", Z, [
205
- (L(!0), O(K, null, Q(l.value, (c, P) => (L(), M(h, {
205
+ (L(!0), O(J, null, K(l.value, (c, P) => (L(), V(h, {
206
206
  key: P,
207
207
  label: c.label,
208
208
  sublabel: c.sublabel,
209
- "model-value": V(U)(o.modelValue, c.value),
210
- onClick: () => o.handleItemChange(V(U)(o.modelValue, c.value), c),
209
+ "model-value": g(U)(o.modelValue, c.value),
210
+ onClick: () => o.handleItemChange(g(U)(o.modelValue, c.value), c),
211
211
  onVnodeMounted: (_) => {
212
212
  var s, t;
213
- return V(U)(o.modelValue, c.value) && ((s = _.el) == null || s.scrollIntoView({ behavior: "instant", block: "end" }), (t = _.el) == null || t.scrollIntoView({ behavior: "smooth", block: "center" })), void 0;
213
+ return g(U)(o.modelValue, c.value) && ((s = _.el) == null || s.scrollIntoView({ behavior: "instant", block: "end" }), (t = _.el) == null || t.scrollIntoView({ behavior: "smooth", block: "center" })), void 0;
214
214
  }
215
215
  }, null, 8, ["label", "sublabel", "model-value", "onClick", "onVnodeMounted"]))), 128)),
216
- l.value.length ? N("", !0) : (L(), M(h, {
216
+ l.value.length ? N("", !0) : (L(), V(h, {
217
217
  key: 0,
218
218
  disabled: "",
219
219
  label: "No options available"
@@ -1,7 +1,7 @@
1
1
  import { defineStore as p } from "pinia";
2
2
  import { useDialog as y } from "@feedmepos/ui-library";
3
3
  import { useI18n as v } from "@feedmepos/mf-common";
4
- import { x as a } from "./app-90sUA0QM.js";
4
+ import { x as a } from "./app-_mYLQuxf.js";
5
5
  import { h as S } from "vue";
6
6
  const w = p("inventoryMultiSelectDialog", () => {
7
7
  const l = y(), { t: n } = v();
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as ie, mergeModels as W, useModel as ae, computed as v, ref as B, watch as E, onBeforeUnmount as le, inject as ue, resolveComponent as b, openBlock as d, createElementBlock as y, createElementVNode as u, createVNode as h, withCtx as F, renderSlot as G, normalizeClass as $, toDisplayString as A, withDirectives as re, vModelText as me, createCommentVNode as I, createTextVNode as ce, createBlock as U, Fragment as de, renderList as pe } from "vue";
2
- import { $ as D, P as R, z as j, a0 as fe, n as M, aV as ve, t as be, bf as ye, Z as he, aA as Me, aT as ge, aS as xe } from "./app-90sUA0QM.js";
2
+ import { $ as D, P as R, z as j, a0 as fe, n as M, aW as ve, t as be, bf as ye, Z as he, aA as Me, aU as ge, aT as xe } from "./app-_mYLQuxf.js";
3
3
  import "@feedmepos/ui-library";
4
4
  function H() {
5
5
  return {
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as De, ref as F, computed as J, watch as ze, resolveComponent as Y, openBlock as N, createElementBlock as D, createVNode as A, normalizeClass as ce, unref as i, createSlots as Ke, withCtx as Q, createElementVNode as n, createBlock as se, toDisplayString as a, createCommentVNode as Z, Fragment as Be, renderList as Pe, shallowRef as $e, h as Ie, createTextVNode as k } from "vue";
2
- import { a as ie, as as je, a0 as Fe, aq as Ve, X as We, n as pe, ap as Re, C as Le, E as Je, G as Xe, I as ke, c as qe } from "./app-90sUA0QM.js";
2
+ import { a as ie, as as je, a0 as Fe, aq as Ve, X as We, n as pe, ap as Re, C as Le, E as Je, G as Xe, I as ke, c as qe } from "./app-_mYLQuxf.js";
3
3
  import { useCoreStore as Ce, useI18n as Oe } from "@feedmepos/mf-common";
4
4
  import { useDialogChild as Qe, useSnackbar as He, useDialog as Ye, useBreakpoints as Ze } from "@feedmepos/ui-library";
5
- import { s as et, g as tt, b as nt, d as Ae } from "./import-export.helper-CvJtTj6v.js";
5
+ import { s as et, g as tt, b as nt, d as Ae } from "./import-export.helper-cLaJAcgW.js";
6
6
  import { r as ot } from "./random-CSbEbElR.js";
7
7
  function Ee() {
8
8
  return `measurement_${(/* @__PURE__ */ new Date()).toISOString()}_${ot()}`;
@@ -41,8 +41,7 @@ function st(U) {
41
41
  const e = rt(U).filter((r) => {
42
42
  const { name: l, symbol: s, precision: u, measurement_name: v, measurement_symbol: p, measurement_conversion: b } = r.data;
43
43
  return l || s || u || v || p || b;
44
- }), g = ie().units, h = [], E = [];
45
- let x = {};
44
+ }), g = ie().units, h = [], E = [], x = {};
46
45
  for (const r of e)
47
46
  if (r.data.name && r.data.symbol)
48
47
  x[r.data.name] = {
@@ -121,8 +120,7 @@ function st(U) {
121
120
  function it(U, { ignoreErrors: e = !1 } = {}) {
122
121
  var R;
123
122
  try {
124
- const g = ie(), h = g.skuByCode, E = g.recipeByName, x = g.skuGroupById, r = g.skuGroups, l = g.units, s = [];
125
- let u = {};
123
+ const g = ie(), h = g.skuByCode, E = g.recipeByName, x = g.skuGroupById, r = g.skuGroups, l = g.units, s = [], u = {};
126
124
  for (const o of U) {
127
125
  const y = [];
128
126
  let _ = "";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as p, openBlock as n, createElementBlock as s, createElementVNode as r, toDisplayString as o, unref as l, Fragment as d, renderList as x } from "vue";
2
- import { n as a, Z as y } from "./app-90sUA0QM.js";
2
+ import { n as a, Z as y } from "./app-_mYLQuxf.js";
3
3
  import { useI18n as _ } from "@feedmepos/mf-common";
4
4
  const v = { class: "flex flex-col" }, g = { class: "flex flex-row fm-typo-en-body-md-600 bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary h-48 items-center" }, h = { class: "flex-1 py-8 px-16" }, b = {
5
5
  class: "flex-0 py-8 px-16",
@@ -1,9 +1,9 @@
1
1
  import { ref as A, computed as F, h as C, defineComponent as j, watch as re, resolveComponent as R, openBlock as G, createElementBlock as B, createVNode as b, unref as l, createElementVNode as c, toDisplayString as $, createBlock as M, withCtx as T, Fragment as pe, renderList as ve, createTextVNode as ye, createCommentVNode as se, isRef as ge, normalizeClass as _e, normalizeStyle as be, createSlots as ke, Teleport as xe, normalizeProps as he, guardReactiveProps as we } from "vue";
2
- import { a as P, e as S, f as L, i as Re, D as oe, j as K, P as Ie, A as Se, U as Ge, Q as ue, T as Fe, N as Ve, r as de, V as Ce, y as ae, u as De, G as Ae, I as $e, J as Te, K as Ee, L as le } from "./app-90sUA0QM.js";
2
+ import { a as P, e as S, f as L, i as Re, D as oe, j as K, P as Ie, A as Se, U as Ge, Q as ue, T as Fe, N as Ve, r as de, V as Ce, y as ae, u as De, G as Ae, I as $e, J as Te, K as Ee, L as le } from "./app-_mYLQuxf.js";
3
3
  import { useDialog as Me, useSnackbar as J, components as U, useProxiedModel as Ue, useBreakpoints as Be } from "@feedmepos/ui-library";
4
4
  import { useI18n as z, useCoreStore as Le } from "@feedmepos/mf-common";
5
5
  import { defineStore as ce, storeToRefs as ie } from "pinia";
6
- import { u as Pe } from "./FmMultiselectDialog-CzoBlXFC.js";
6
+ import { u as Pe } from "./FmMultiselectDialog-_MlkbNly.js";
7
7
  import { r as me } from "./random-CSbEbElR.js";
8
8
  import { u as ze, R as Ne } from "./usePromise-CbVUCxhj.js";
9
9
  const H = ce(
@@ -1,17 +1,17 @@
1
1
  import { ref as B, defineComponent as pe, computed as g, resolveComponent as F, openBlock as u, createElementBlock as w, Fragment as X, unref as o, createVNode as a, withModifiers as Bt, createCommentVNode as L, withCtx as y, createElementVNode as l, toDisplayString as A, normalizeClass as te, renderList as ue, createBlock as D, h as Q, renderSlot as xe, createSlots as Ye, createTextVNode as Ge, mergeModels as it, onMounted as Ot, watch as kt, useModel as Dt, isRef as dt, normalizeStyle as Nt, Teleport as ut, normalizeProps as zt, guardReactiveProps as Lt } from "vue";
2
- import { a as Ce, e as H, f as Tt, S as jt, b as Fe, h as He, i as Wt, D as ct, j as Me, A as Pe, k as wt, l as Vt, n as Ht, o as mt, t as qt, p as Yt, q as pt, r as De, U as Gt, s as Kt, M as Jt, v as vt, w as ft, c as It, x as Ne, _ as Zt, y as yt, z as Qt, B as gt, C as Xt, E as en, N as tn, H as nn, u as ln, G as on, I as an, J as sn, K as rn, L as bt, O as dn } from "./app-90sUA0QM.js";
2
+ import { a as Ce, e as H, f as Tt, S as jt, b as Fe, h as He, i as Wt, D as ct, j as Me, A as Pe, k as wt, l as Vt, n as Ht, o as mt, t as qt, p as Yt, q as pt, r as De, U as Gt, s as Kt, M as Jt, v as vt, w as ft, c as It, x as Ne, _ as Zt, y as yt, z as Qt, B as gt, C as Xt, E as en, N as tn, H as nn, u as ln, G as on, I as an, J as sn, K as rn, L as bt, O as dn } from "./app-_mYLQuxf.js";
3
3
  import { useDialog as Re, useSnackbar as Ae, components as ze, useProxiedModel as ht, useDialogChild as un, useBreakpoints as cn } from "@feedmepos/ui-library";
4
4
  import { i as mn, _ as pn } from "./is-linked-ingredient-error-fJ2TJb3z.js";
5
5
  import { useI18n as ve, useCoreStore as St } from "@feedmepos/mf-common";
6
6
  import { defineStore as vn, storeToRefs as fn } from "pinia";
7
- import { g as yn, _ as Le, S as je, a as gn } from "./SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-BzuVCffs.js";
8
- import { _ as bn } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-YxSxYZcR.js";
9
- import { _ as We } from "./IngredientBindedItem.vue_vue_type_script_setup_true_lang-DgQwpfVr.js";
7
+ import { g as yn, _ as Le, S as je, a as gn } from "./SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DDGU8k4Y.js";
8
+ import { _ as bn } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-BH6zgB9N.js";
9
+ import { _ as We } from "./IngredientBindedItem.vue_vue_type_script_setup_true_lang-CdX2Uvdb.js";
10
10
  import { _ as he } from "./PreviewBadge.vue_vue_type_script_setup_true_lang-CRZiQHjx.js";
11
- import { d as Ue, g as hn, e as _n, a as xn } from "./import-export.helper-CvJtTj6v.js";
11
+ import { d as Ue, g as hn, e as _n, a as xn } from "./import-export.helper-cLaJAcgW.js";
12
12
  import { _ as kn } from "./FmCustomAttribute.vue_vue_type_script_setup_true_lang-D-IWRjRD.js";
13
- import { u as Ct } from "./purchase-order-template-DJTIqx45.js";
14
- import { u as Tn } from "./FmMultiselectDialog-CzoBlXFC.js";
13
+ import { u as Ct } from "./purchase-order-template-Dt5KDXNO.js";
14
+ import { u as Tn } from "./FmMultiselectDialog-_MlkbNly.js";
15
15
  const qe = vn("ingredientForm", function() {
16
16
  const s = Re(), T = Ae(), r = Ce(), b = B(!1), { t: S } = ve(), U = B();
17
17
  function k() {