@feedmepos/mf-inventory-portal 1.8.0-dev.2 → 1.8.0-dev.3

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 (128) hide show
  1. package/dist/{App-DVHgBTHP.js → App-DRXADP0k.js} +11 -12
  2. package/dist/{ApprovalView-RaXuWWSu.js → ApprovalView-hV1msz5Y.js} +9 -9
  3. package/dist/{BindingsDialog-DomvXijP.js → BindingsDialog-BX1Lopf0.js} +2 -2
  4. package/dist/{BindingsPicker-DGnzxEs7.js → BindingsPicker-BNKW8-XY.js} +2 -2
  5. package/dist/{BindingsTable-DfG9kWrv.js → BindingsTable-DiLDsL83.js} +4 -4
  6. package/dist/{BulkReceiveRequestView-DxHWrfbi.js → BulkReceiveRequestView-oQh6kFLc.js} +22 -21
  7. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-CVekIoiN.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-BaMcGU-x.js} +1 -1
  8. package/dist/{ClosingDraftView-C3n66bbh.js → ClosingDraftView-sgLoaSf4.js} +20 -20
  9. package/dist/{ClosingHistoryView-kdpYGy1Y.js → ClosingHistoryView-BnE9HrzA.js} +5 -5
  10. package/dist/{ClosingTemplateView-DwGloYxn.js → ClosingTemplateView-BD3Pa11r.js} +18 -18
  11. package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-9eY_r8LF.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DlbyxkMQ.js} +1 -1
  12. package/dist/{DefaultView-JC_e4xgC.js → DefaultView-CuzvVkfE.js} +5 -5
  13. package/dist/{DeliveryOrderPrintPreview-BBCvI67S.js → DeliveryOrderPrintPreview-w-1aAOY1.js} +2 -2
  14. package/dist/{DeprecateSoonWarningDialog.vue_vue_type_script_setup_true_lang-5Cc08Svt.js → DeprecateSoonWarningDialog.vue_vue_type_script_setup_true_lang-Bp8bjDU1.js} +1 -1
  15. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-H4FWc9ga.js → EmailDialog.vue_vue_type_script_setup_true_lang-CxD12Qct.js} +33 -31
  16. package/dist/{portal-feature-catalog-yGIESKTc.js → FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-CMoQKl_a.js} +84 -22
  17. package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-Q8Mptiv3.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-BqCh_vTP.js} +1 -1
  18. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CE1_yyHe.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CAXnmdUy.js} +2 -2
  19. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CGJi3f86.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-NhOdW33O.js} +2 -2
  20. package/dist/{FmMultiselectDialog-yVPY5aBV.js → FmMultiselectDialog-BqZgHP8s.js} +1 -1
  21. package/dist/{FmMultiselectDialog-DCaRlBIy.js → FmMultiselectDialog-CULwA_hi.js} +2 -2
  22. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-ClaLVtpK.js → FmUnitInput.vue_vue_type_script_setup_true_lang-CI3Y9kDl.js} +6 -6
  23. package/dist/{ImportView-DQrVMzxN.js → ImportView-DqQG673_.js} +6 -6
  24. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-7lT5UZc8.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DfvNUu80.js} +1 -1
  25. package/dist/{IngredientGroupView-BMUnEaY7.js → IngredientGroupView-CyngKxPo.js} +7 -7
  26. package/dist/{IngredientsView-DPj9lBTK.js → IngredientsView-pzpP6oXT.js} +29 -23
  27. package/dist/{IntegrationExplorerView-CO2wpUR_.js → IntegrationExplorerView-C5aAhB6e.js} +4 -4
  28. package/dist/{IntegrationView-DIeZoey0.js → IntegrationView-Bqun7nX0.js} +15 -15
  29. package/dist/{InventoryBindingForm-Cj4_Chue.js → InventoryBindingForm-r_Ua1C4a.js} +1 -1
  30. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-CaBOK7NC.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-CYDuu4kU.js} +5 -5
  31. package/dist/{InventoryBindingSummary-yzGzd7jJ.js → InventoryBindingSummary-BQuZLohR.js} +1 -1
  32. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DzzTPdyF.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-7r-QcJdU.js} +1 -1
  33. package/dist/{ProductionRunDetailView-Cw-ecaey.js → ProductionRunDetailView-95fu_CfH.js} +4 -4
  34. package/dist/{ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-BYyiiAWb.js → ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-CdOca1tV.js} +7 -7
  35. package/dist/{ProductionRunView-C11eseXQ.js → ProductionRunView-DIjor_Ix.js} +3 -3
  36. package/dist/{PublishView-CPK9NeVF.js → PublishView-DYObyHQq.js} +3 -3
  37. package/dist/{PurchaseOrderPrintPreview-DosqWQeN.js → PurchaseOrderPrintPreview-C0jCmI9L.js} +2 -2
  38. package/dist/{ReceiveRequestView-BxSkpK2t.js → ReceiveRequestView-i7ibPfIE.js} +16 -15
  39. package/dist/{RecipeView-oHDWsT0P.js → RecipeView-C5VO7yr3.js} +20 -19
  40. package/dist/{SettingsView-QlUNwFhM.js → SettingsView-CdBloj9k.js} +13 -13
  41. package/dist/{StockView-a8LbVZ_7.js → StockView-g_6eJ62R.js} +28 -25
  42. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-GdGJCuc0.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-C1rKc7MA.js} +1 -1
  43. package/dist/{SupplierView-BKxKoi_0.js → SupplierView-DkYp_Frj.js} +14 -14
  44. package/dist/{SurchargeView-Db4cwhZv.js → SurchargeView-CfkV4Y3y.js} +7 -7
  45. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-CpkF77Ow.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-2MtN1p5t.js} +2 -2
  46. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CCCj4WVF.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CYMjKXq4.js} +1 -1
  47. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-CFNPXqt5.js → TransferDetails.vue_vue_type_script_setup_true_lang-D0zNr_vQ.js} +40 -39
  48. package/dist/{TransferTemplateView-CzwxOBMQ.js → TransferTemplateView-Ne2gYUSn.js} +23 -22
  49. package/dist/{UnitCostHistoryView-CqcyjCCd.js → UnitCostHistoryView-Db0_otOb.js} +4 -4
  50. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-DO80_8SZ.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-BzO1lq7j.js} +4 -4
  51. package/dist/{UnitView-BqdK1AM_.js → UnitView-CiCeQ63i.js} +8 -8
  52. package/dist/{WarehouseView-COJM9IXM.js → WarehouseView-BcuJSOMF.js} +8 -8
  53. package/dist/{WastageTemplateView-DW3viTHN.js → WastageTemplateView-CPQmtOKQ.js} +15 -15
  54. package/dist/api/inventory.d.ts +9 -9
  55. package/dist/{app-yvK__CBL.js → app-DqJp3dcI.js} +19 -18
  56. package/dist/app.js +1 -1
  57. package/dist/{closing-template-DezidSM0.js → closing-template-BNlgZviN.js} +1 -1
  58. package/dist/components/FeatureCapabilityBadge.vue.d.ts +5 -1
  59. package/dist/components/MultiLocationSelector.vue.d.ts +6 -6
  60. package/dist/{feature-CkWaZ-5K.js → core-Js7d-3Pv.js} +1836 -3042
  61. package/dist/{date2-2XjepIqc.js → date2-Ci7521dn.js} +1 -1
  62. package/dist/{dayjs.min-CNp5DLBB.js → dayjs.min-Cyp32v4J.js} +1 -1
  63. package/dist/{decimal-Z7oJdGk8.js → decimal-BGdm5R3A.js} +2 -2
  64. package/dist/{defineDeepModel-CMxJn_H2.js → defineDeepModel-B2cJ-rtd.js} +1 -1
  65. package/dist/{duplicate-template-BetV5oy_.js → duplicate-template-By5WeKZ0.js} +1 -1
  66. package/dist/feature-fG7d73oi.js +371 -0
  67. package/dist/{format-time-from-id-DatSI9uD.js → format-time-from-id-Q8C2P96H.js} +1 -1
  68. package/dist/{format-unit-display-DM5We5cx.js → format-unit-display-CICrmm8r.js} +13 -13
  69. package/dist/{id-to-date-Dxw2jKhy.js → id-to-date-DeN5x0LR.js} +1 -1
  70. package/dist/{import-export.helper-BOmADwUw.js → import-export.helper-BOTQWxr6.js} +28 -28
  71. package/dist/{index-7fz5sGDO.js → index-BbbqCCfp.js} +3 -3
  72. package/dist/{index-ClYgfwW7.js → index-Cxm3Sgfv.js} +1 -1
  73. package/dist/index-Dqf27vLH.js +841 -0
  74. package/dist/{index-CIH9NCvs.js → index-tCYhLCKP.js} +1 -1
  75. package/dist/{lz-string-CCsc2X7t.js → lz-string-Dy4Pg8mh.js} +1 -1
  76. package/dist/{netsuite-COumFXC2.js → netsuite-BaJjkDM8.js} +2 -2
  77. package/dist/{number-gSLvxNqA.js → number-CB36d2PQ.js} +3 -3
  78. package/dist/{predefined-templates-Bw9A9LNA.js → predefined-templates-DLm93Bpx.js} +1 -1
  79. package/dist/{purchase-order-template-BaZjdGq8.js → purchase-order-template-CDhn9ZIF.js} +1 -1
  80. package/dist/{recalculationUtils-t32wAurN.js → recalculationUtils-Cqvefakh.js} +1 -1
  81. package/dist/{row-action.enum-BDeudY4d.js → row-action.enum-NTfVmGY8.js} +1 -1
  82. package/dist/{rules-C1btu0Md.js → rules-C8dfM84-.js} +2 -2
  83. package/dist/{stock-BF86TMW0.js → stock-BGB0Siue.js} +3 -3
  84. package/dist/{stock-B59sfN28.js → stock-Qu5IiN2_.js} +1 -1
  85. package/dist/stores/integration/netsuite.d.ts +2 -2
  86. package/dist/stores/location.d.ts +42 -42
  87. package/dist/stores/supplier.d.ts +48 -48
  88. package/dist/stores/warehouse.d.ts +1 -1
  89. package/dist/{supplier-DnbLJ_cS.js → supplier-CZdNOSMN.js} +17 -17
  90. package/dist/{surcharge-C1uE3uQa.js → surcharge-Cm40oJvU.js} +1 -1
  91. package/dist/tsconfig.app.tsbuildinfo +1 -1
  92. package/dist/{uom-rules-DjfyrFHJ.js → uom-rules-L-IW4Nwk.js} +1 -1
  93. package/dist/{use-ingredient-select-dialog-7A7fWyEH.js → use-ingredient-select-dialog-B2TDVJM6.js} +2 -2
  94. package/dist/{use-inventory-binding-dialog-Cc1tjTfV.js → use-inventory-binding-dialog-BJ00hl5f.js} +2 -2
  95. package/dist/{use-template-enabled-locations-C-Hqqgzt.js → use-template-enabled-locations-DYAPMvo9.js} +2 -2
  96. package/dist/{use-transfer-locations-CqsXvOI2.js → use-transfer-locations-w-9tymYS.js} +2 -2
  97. package/dist/{useHrmPermission-BzwD3Ctc.js → useHrmPermission-BFCIo5sA.js} +1 -1
  98. package/dist/{useNavigationMenu-PrZg9HS7.js → useNavigationMenu-BPHAH5sJ.js} +38 -38
  99. package/dist/{useSseClient-FCyLWq8k.js → useSseClient-CWjRacRs.js} +1 -1
  100. package/dist/views/adjustment-template/wastage-template/actions.d.ts +36 -36
  101. package/dist/views/adjustment-template/wastage-template/table.d.ts +36 -36
  102. package/dist/views/closing-draft/components/closing-draft-dialog/ClosingDraftApprovalDialog.vue.d.ts +6 -6
  103. package/dist/views/closing-draft/components/closing-draft-dialog/ClosingDraftDialog.vue.d.ts +12 -12
  104. package/dist/views/closing-draft/components/closing-draft-groups/ClosingGroupDetailSideSheet.vue.d.ts +6 -6
  105. package/dist/views/closing-draft/composables/use-closing-draft-import.d.ts +3 -3
  106. package/dist/views/closing-draft/composables/use-closing-draft-table.d.ts +18 -18
  107. package/dist/views/closing-template/composables/use-closing-template-actions.d.ts +45 -45
  108. package/dist/views/closing-template/composables/use-closing-template-table.d.ts +36 -36
  109. package/dist/views/integration/components/netsuite/business/AddLocationDialog.vue.d.ts +36 -36
  110. package/dist/views/integration/components/netsuite/business/AddVendorDialog.vue.d.ts +24 -24
  111. package/dist/views/receive-request/components/transfer-form/TransferFormWithController.vue.d.ts +5 -5
  112. package/dist/views/receive-request/composables/use-process-purchase-order.d.ts +5 -5
  113. package/dist/views/receive-request/composables/use-receive-request-form.d.ts +39 -39
  114. package/dist/views/receive-request/composables/use-receive-request-table.d.ts +35 -35
  115. package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-form.d.ts +34 -34
  116. package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-table.d.ts +6 -6
  117. package/dist/views/supplier/components/SupplierForm.vue.d.ts +4 -4
  118. package/dist/views/supplier/composables/use-supplier-table.d.ts +2 -2
  119. package/dist/views/transfer-template/components/transfer-template-dialog/TransferTemplateDialog.vue.d.ts +8 -8
  120. package/dist/views/transfer-template/components/transfer-template-form/composables/use-transfer-locations.d.ts +4 -4
  121. package/dist/views/transfer-template/composables/use-template-item-bulk-editor.d.ts +24 -24
  122. package/dist/views/transfer-template/composables/use-transfer-template-actions.d.ts +48 -48
  123. package/dist/views/transfer-template/composables/use-transfer-template-table.d.ts +48 -48
  124. package/dist/views/warehouse/components/WarehouseForm.vue.d.ts +2 -2
  125. package/dist/{vue-i18n-C34f-Tph.js → vue-i18n-S4YQ9w6a.js} +219 -219
  126. package/dist/{xlsx.util-X4amwe_k.js → xlsx.util-CP8_VajN.js} +2 -2
  127. package/package.json +4 -4
  128. package/dist/FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-C1C8aDA6.js +0 -61
@@ -1,4 +1,4 @@
1
- import { d as l } from "./dayjs.min-CNp5DLBB.js";
1
+ import { d as l } from "./dayjs.min-Cyp32v4J.js";
2
2
  const T = new Intl.DateTimeFormat("en-US", {
3
3
  year: "numeric",
4
4
  month: "2-digit",
@@ -1,4 +1,4 @@
1
- import { y as Q, a1 as K } from "./app-yvK__CBL.js";
1
+ import { y as Q, a1 as K } from "./app-DqJp3dcI.js";
2
2
  var E = { exports: {} };
3
3
  (function(V, X) {
4
4
  (function(W, k) {
@@ -1,5 +1,5 @@
1
- import "./dayjs.min-CNp5DLBB.js";
2
- import "./app-yvK__CBL.js";
1
+ import "./dayjs.min-Cyp32v4J.js";
2
+ import "./app-DqJp3dcI.js";
3
3
  function m(a) {
4
4
  function t(o, n = !0) {
5
5
  const e = Math.round(Math.log10(o));
@@ -1,4 +1,4 @@
1
- import { c, aa as u } from "./app-yvK__CBL.js";
1
+ import { c, aa as u } from "./app-DqJp3dcI.js";
2
2
  import { getCurrentInstance as d, reactive as l, watch as o } from "vue";
3
3
  function g(i = "modelValue", e) {
4
4
  var n, a;
@@ -1,4 +1,4 @@
1
- import { d as p } from "./app-yvK__CBL.js";
1
+ import { d as p } from "./app-DqJp3dcI.js";
2
2
  import { useCoreStore as c } from "@feedmepos/mf-common";
3
3
  const u = p((s, n) => {
4
4
  function o() {
@@ -0,0 +1,371 @@
1
+ import { useCoreStore as c } from "@feedmepos/mf-common";
2
+ import { a as R, u as m, k as P } from "./app-DqJp3dcI.js";
3
+ import { u as p, h as I, p as x } from "./index-Dqf27vLH.js";
4
+ import { ref as C } from "vue";
5
+ import { I as n } from "./core-Js7d-3Pv.js";
6
+ var q = { development: { appEndpoint: { licenseV2: "https://license-v2-dev.feedmeapi.com" } } };
7
+ function W() {
8
+ return q.development.appEndpoint.licenseV2.replace(/\/$/, "");
9
+ }
10
+ async function T(a) {
11
+ var s;
12
+ const t = c(), o = await fetch(`${W()}${a}`, {
13
+ headers: { authorization: `Bearer ${((s = t.sessionUser.value) == null ? void 0 : s.token) ?? ""}` },
14
+ mode: "cors"
15
+ });
16
+ if (!o.ok)
17
+ throw new Error(`License API request failed (${o.status}): ${await o.text()}`);
18
+ return await o.text();
19
+ }
20
+ function F() {
21
+ return {
22
+ async getWarehouseQuota(a) {
23
+ const t = await T(`/api/business/${a}/feature/warehouse`);
24
+ return JSON.parse(t);
25
+ },
26
+ async getInventoryPlan(a) {
27
+ const t = (await T(`/api/restaurant-features/${a}/inventory`)).trim();
28
+ if (!t || t === "null") return null;
29
+ if (t === "Standard" || t === "Premium") return t;
30
+ throw new Error(`Unexpected inventory plan response: ${t}`);
31
+ }
32
+ };
33
+ }
34
+ const B = /* @__PURE__ */ new Set([
35
+ // vivo pizza prod
36
+ "business_6687e91fa7240b001ba3f4c2",
37
+ // vivo dev
38
+ "business_669a1d2efc050a001cfbb5a2"
39
+ ]), L = /* @__PURE__ */ new Set([
40
+ // zus dev
41
+ "business_671005de24a7f4001c87e25e",
42
+ // zus prod
43
+ "business_6776a1fe205a52001c516efa"
44
+ ]);
45
+ function w() {
46
+ return {
47
+ isLoaded: !1,
48
+ planTier: "standard",
49
+ inventoryPlan: null,
50
+ warehouseQuota: [],
51
+ autoReceiveWarehouse: !1,
52
+ businessSupplierOnly: !1,
53
+ enableBackdatePo: !1,
54
+ enableClosingTemplate: !1,
55
+ enableIngredientGroup: !1,
56
+ enablePoTemplate: !1,
57
+ enableTotalCost: !1,
58
+ enableWastageTemplate: !1,
59
+ manualReceive: !1,
60
+ mustUseDefaultCost: !1,
61
+ mustUsePoTemplate: !1,
62
+ enableXilnexTransferNote: !1,
63
+ enableCustomAttribute: !1,
64
+ usePurchaseOrderV2: !1,
65
+ acceptRequireFulfillment: !1,
66
+ useOperatePurchaseOrderV2: !1,
67
+ inventory_xilnex_opening_migration: !1,
68
+ inventory_synergy_opening_migration: !1,
69
+ inventory_netsuite_inventory_transfer_out: !1,
70
+ inventory_portal_supplier_preparation_time: !1,
71
+ inventory_portal_delivery_order_write: !1,
72
+ inventory_pos_transfer_require_fulfillment: !1,
73
+ inventory_backdate_receive: !1,
74
+ inventory_purchase_order_custom_cost: !1,
75
+ inventory_bulk_import: !1,
76
+ inventory_portal_surcharge: !1,
77
+ inventory_purchase_order_cost_edit: !1,
78
+ inventory_purchase_order_price_adjustment: !1,
79
+ inventory_purchase_order_workflow_allow_to_mark_completed: !1,
80
+ inventory_recipe_v2: !1,
81
+ inventory_print_template: !1,
82
+ inventory_purchase_order_email: !1,
83
+ inventory_bulk_edit_recipes: !1,
84
+ inventory_receive_request_beta: !1,
85
+ inventory_portal_production_item: !1,
86
+ report_portal_po_forecast_days_constraint: null,
87
+ report_portal_po_forecast_days_default: 7
88
+ };
89
+ }
90
+ const e = C(w()), G = () => ({
91
+ get businessDbName() {
92
+ var o;
93
+ return `business_${((o = c().currentBusiness.value) == null ? void 0 : o._id) ?? ""}`;
94
+ },
95
+ get isWarehouse() {
96
+ var t;
97
+ return ((t = m()._currentLocation) == null ? void 0 : t.type) === P.enum.warehouse;
98
+ },
99
+ get restaurantPosVersion() {
100
+ var o;
101
+ const a = m();
102
+ return (o = c().restaurants.value.find(
103
+ (s) => {
104
+ var i;
105
+ return s._id === ((i = a._currentLocation) == null ? void 0 : i.doc._id);
106
+ }
107
+ )) == null ? void 0 : o.posVersion;
108
+ },
109
+ get enableTotalCost() {
110
+ return e.value.enableTotalCost;
111
+ },
112
+ get enableBackdatePo() {
113
+ return e.value.enableBackdatePo;
114
+ },
115
+ /** @deprecated TODO: remove */
116
+ get autoReceiveWarehouse() {
117
+ return e.value.autoReceiveWarehouse;
118
+ },
119
+ /** @deprecated TODO: remove */
120
+ get manualReceive() {
121
+ return e.value.manualReceive;
122
+ },
123
+ get isLoaded() {
124
+ return e.value.isLoaded;
125
+ },
126
+ get planTier() {
127
+ return e.value.planTier;
128
+ },
129
+ get inventoryPlan() {
130
+ return e.value.inventoryPlan;
131
+ },
132
+ get warehouseQuota() {
133
+ return e.value.warehouseQuota;
134
+ },
135
+ hasPlanTier(a) {
136
+ return I(e.value.planTier, a);
137
+ },
138
+ get enablePoTemplate() {
139
+ return e.value.enablePoTemplate;
140
+ },
141
+ get enableClosingTemplate() {
142
+ return e.value.enableClosingTemplate;
143
+ },
144
+ get enableWastageTemplate() {
145
+ return e.value.enableWastageTemplate;
146
+ },
147
+ get enableIngredientGroup() {
148
+ return e.value.enableIngredientGroup;
149
+ },
150
+ get mustUsePoTemplate() {
151
+ return e.value.mustUsePoTemplate;
152
+ },
153
+ get businessSupplierOnly() {
154
+ return e.value.businessSupplierOnly;
155
+ },
156
+ get enableXilnexTransferNote() {
157
+ return e.value.enableXilnexTransferNote;
158
+ },
159
+ get enabledXilnexOpeningMigration() {
160
+ return e.value.inventory_xilnex_opening_migration;
161
+ },
162
+ get enabledSynergyOpeningMigration() {
163
+ return e.value.inventory_synergy_opening_migration;
164
+ },
165
+ get enableCustomAttribute() {
166
+ return e.value.enableCustomAttribute;
167
+ },
168
+ get usePurchaseOrderV2() {
169
+ return e.value.usePurchaseOrderV2;
170
+ },
171
+ get acceptRequireFulfillment() {
172
+ return e.value.acceptRequireFulfillment;
173
+ },
174
+ get useOperatePurchaseOrderV2() {
175
+ return e.value.useOperatePurchaseOrderV2;
176
+ },
177
+ get isNetSuiteInventoryTransferOutEnabled() {
178
+ return e.value.inventory_netsuite_inventory_transfer_out;
179
+ },
180
+ get enableSupplierPreparationTime() {
181
+ return e.value.inventory_portal_supplier_preparation_time;
182
+ },
183
+ get enablePortalDeliveryOrderWrite() {
184
+ return e.value.inventory_portal_delivery_order_write ?? !0;
185
+ },
186
+ get enablePOSTransferRequireFulfillment() {
187
+ return e.value.inventory_pos_transfer_require_fulfillment;
188
+ },
189
+ get enableBackdateReceive() {
190
+ return e.value.inventory_backdate_receive;
191
+ },
192
+ get enablePurchaseOrderReceiveWithCustomCost() {
193
+ return e.value.inventory_purchase_order_custom_cost;
194
+ },
195
+ get enableBulkImport() {
196
+ return e.value.inventory_bulk_import;
197
+ },
198
+ get enableSurcharge() {
199
+ return e.value.inventory_portal_surcharge;
200
+ },
201
+ get enablePurchaseOrderCostEdit() {
202
+ return e.value.inventory_purchase_order_cost_edit;
203
+ },
204
+ get enablePurchaseOrderPriceAdjustment() {
205
+ return e.value.inventory_purchase_order_price_adjustment;
206
+ },
207
+ get poWorkflowAllowToMarkCompleted() {
208
+ return e.value.inventory_purchase_order_workflow_allow_to_mark_completed;
209
+ },
210
+ get enableRecipeV2() {
211
+ return e.value.inventory_recipe_v2;
212
+ },
213
+ get enablePrintTemplate() {
214
+ return e.value.inventory_print_template;
215
+ },
216
+ get enablePurchaseOrderEmail() {
217
+ return e.value.inventory_purchase_order_email;
218
+ },
219
+ get enableBulkEditRecipes() {
220
+ return e.value.inventory_bulk_edit_recipes;
221
+ },
222
+ get enableReceiveRequestBeta() {
223
+ return e.value.inventory_receive_request_beta;
224
+ },
225
+ get enableProductionRun() {
226
+ return e.value.inventory_portal_production_item;
227
+ },
228
+ get poForecastDaysConstraint() {
229
+ return e.value.report_portal_po_forecast_days_constraint;
230
+ },
231
+ get poForecastDaysDefault() {
232
+ return e.value.report_portal_po_forecast_days_default;
233
+ },
234
+ async init() {
235
+ const a = c(), { init: t, setBusiness: o } = p(), s = F(), i = R(), u = a.namespace.value === "prod";
236
+ await t({
237
+ apiKey: u ? "6GhcttsJ9Rj9cTevcdrpin" : "MaGoXrEWuEJNpWgKTqseee"
238
+ // url: 'https://flag.feedme.farm/api/v1/', // optional -> this is a default URL value
239
+ // enableAnalytics: true, // optional, defaults to true
240
+ // cacheFlags: true // optional, defaults to true
241
+ }), m().watchLocation(async (v) => {
242
+ var g, b, h;
243
+ if (!v) {
244
+ e.value = w();
245
+ return;
246
+ }
247
+ const d = ((g = a.currentBusiness.value) == null ? void 0 : g._id) ?? "";
248
+ await o(d);
249
+ const [l, _] = await Promise.allSettled([
250
+ s.getInventoryPlan(v.doc._id),
251
+ s.getWarehouseQuota(d)
252
+ ]);
253
+ l.status === "rejected" && console.error(
254
+ "Unable to load the inventory plan from the license API",
255
+ l.reason
256
+ ), _.status === "rejected" && console.error(
257
+ "Unable to load the warehouse quota from the license API",
258
+ _.reason
259
+ );
260
+ const k = `business_${d}`, S = v.type === P.enum.warehouse, f = (
261
+ // if menu v4, must manual receive && must use outlet app
262
+ ((b = a.currentBusiness.value) == null ? void 0 : b.menuVersion) === "v4" && // more guard for businesses using menu v4, only those listed for manual receive will be included
263
+ // TODO: may be removed to use menu version only
264
+ B.has(this.businessDbName)
265
+ ), y = L.has(k) || r(n.inventory_portal_must_use_transfer_template), O = r(n.inventory_purchase_order_backdate) && (this.isWarehouse || i.state.closing !== null);
266
+ e.value = {
267
+ isLoaded: !0,
268
+ planTier: x(
269
+ l.status === "fulfilled" ? l.value : null
270
+ ),
271
+ inventoryPlan: l.status === "fulfilled" ? l.value : null,
272
+ warehouseQuota: _.status === "fulfilled" ? _.value : [],
273
+ enableTotalCost: ((h = a.currentBusiness.value) == null ? void 0 : h.menuVersion) === "v4",
274
+ enableBackdatePo: O,
275
+ autoReceiveWarehouse: S && !f,
276
+ manualReceive: f,
277
+ enablePoTemplate: y,
278
+ enableClosingTemplate: r(n.inventory_pos_closing_v2),
279
+ enableWastageTemplate: r(n.inventory_pos_adjust_v2_wastage),
280
+ enableIngredientGroup: r(n.inventory_ingredient_group),
281
+ mustUsePoTemplate: y,
282
+ businessSupplierOnly: y,
283
+ enableXilnexTransferNote: r(n.inventory_portal_xilnex_transfer_note),
284
+ enableCustomAttribute: r(n.inventory_portal_custom_attribute),
285
+ usePurchaseOrderV2: r(n.inventory_portal_purchase_order_v2),
286
+ acceptRequireFulfillment: r(
287
+ n.inventory_portal_accept_require_fulfillment
288
+ ),
289
+ useOperatePurchaseOrderV2: r(n.inventory_portal_po_operate_v2),
290
+ inventory_xilnex_opening_migration: r(
291
+ n.inventory_xilnex_opening_migration
292
+ ),
293
+ inventory_synergy_opening_migration: r(
294
+ n.inventory_synergy_opening_migration
295
+ ),
296
+ inventory_netsuite_inventory_transfer_out: r(
297
+ n.inventory_netsuite_inventory_transfer_out
298
+ ),
299
+ inventory_portal_supplier_preparation_time: r(
300
+ n.inventory_portal_supplier_preparation_time
301
+ ),
302
+ inventory_portal_delivery_order_write: r(
303
+ n.inventory_portal_delivery_order_write
304
+ ),
305
+ inventory_pos_transfer_require_fulfillment: r(
306
+ n.inventory_pos_transfer_require_fulfillment
307
+ ),
308
+ inventory_backdate_receive: r(n.inventory_backdate_receive),
309
+ inventory_purchase_order_custom_cost: r(
310
+ n.inventory_purchase_order_custom_cost
311
+ ),
312
+ inventory_bulk_import: r(n.inventory_bulk_import),
313
+ inventory_portal_surcharge: r(n.inventory_portal_surcharge),
314
+ inventory_purchase_order_cost_edit: r(
315
+ n.inventory_purchase_order_cost_edit
316
+ ),
317
+ inventory_purchase_order_price_adjustment: r(
318
+ n.inventory_purchase_order_price_adjustment
319
+ ),
320
+ inventory_purchase_order_workflow_allow_to_mark_completed: r(
321
+ n.inventory_purchase_order_workflow_allow_to_mark_completed
322
+ ),
323
+ inventory_recipe_v2: r(n.inventory_recipe_v2),
324
+ inventory_print_template: r(n.inventory_print_template),
325
+ inventory_purchase_order_email: r(n.inventory_purchase_order_email),
326
+ inventory_bulk_edit_recipes: r(n.inventory_bulk_edit_recipes),
327
+ inventory_receive_request_beta: r(
328
+ "inventory_receive_request_beta"
329
+ ),
330
+ inventory_portal_production_item: r(
331
+ n.inventory_portal_production_item
332
+ ),
333
+ report_portal_po_forecast_days_constraint: N(
334
+ "report_portal_po_forecast_days_constraint"
335
+ ),
336
+ report_portal_po_forecast_days_default: V(
337
+ "report_portal_po_forecast_days_default",
338
+ 7
339
+ )
340
+ };
341
+ }, "feature");
342
+ },
343
+ async awaitFeatureLoaded(a) {
344
+ return new Promise((t) => {
345
+ const o = () => {
346
+ e.value.isLoaded ? t(a()) : setTimeout(o, 100);
347
+ };
348
+ o();
349
+ });
350
+ }
351
+ });
352
+ function r(a, t) {
353
+ t = t === void 0 ? null : t;
354
+ const { getFlagValue: o } = p();
355
+ return o(a, (s) => s === "true") ?? t;
356
+ }
357
+ function N(a) {
358
+ const { getFlagValue: t } = p();
359
+ return t(a, (s) => s.trim() ? s.trim() : null) ?? null;
360
+ }
361
+ function V(a, t) {
362
+ const { getFlagValue: o } = p();
363
+ return o(a, (i) => {
364
+ const u = parseInt(i, 10);
365
+ return isNaN(u) ? null : u;
366
+ }) ?? t;
367
+ }
368
+ export {
369
+ n as InventoryFeatureFlags,
370
+ G as useFeatureStore
371
+ };
@@ -1,4 +1,4 @@
1
- import { h as n } from "./date2-2XjepIqc.js";
1
+ import { h as n } from "./date2-Ci7521dn.js";
2
2
  function d(r) {
3
3
  const t = a(r);
4
4
  return t === null ? "" : n(t);
@@ -1,24 +1,24 @@
1
1
  import { components as ce, useDialogChild as Pe, useSnackbar as de, useDialog as Me, FmButtonVariant as te } from "@feedmepos/ui-library";
2
2
  import { defineStore as pe } from "pinia";
3
3
  import { F as xe } from "./form-mode.enum-BKiNVH6A.js";
4
- import { u as fe } from "./purchase-order-template-BaZjdGq8.js";
4
+ import { u as fe } from "./purchase-order-template-CDhn9ZIF.js";
5
5
  import { ref as I, h as oe, defineComponent as ye, resolveComponent as W, createElementBlock as F, openBlock as O, createElementVNode as N, createCommentVNode as J, normalizeClass as Z, createTextVNode as Be, toDisplayString as q, unref as B, createVNode as z, withCtx as me, Fragment as Y, renderList as ae, onMounted as Le, computed as H, watch as Qe, createSlots as Ue, createBlock as re } from "vue";
6
- import { a as X, c as ve, r as L, u as ie, m as qe, k as _e, s as Ve, R as we } from "./app-yvK__CBL.js";
6
+ import { a as X, c as ve, r as L, u as ie, m as qe, k as _e, s as Ve, R as we } from "./app-DqJp3dcI.js";
7
7
  import { useRouter as He } from "vue-router";
8
- import { a as ze } from "./FmMultiselectDialog-DCaRlBIy.js";
9
- import { D as ne, R as U } from "./row-action.enum-BDeudY4d.js";
8
+ import { a as ze } from "./FmMultiselectDialog-CULwA_hi.js";
9
+ import { D as ne, R as U } from "./row-action.enum-NTfVmGY8.js";
10
10
  import { c as je } from "./component-BmLAdDiY.js";
11
- import { f as Ye } from "./format-time-from-id-DatSI9uD.js";
11
+ import { f as Ye } from "./format-time-from-id-Q8C2P96H.js";
12
12
  import { useI18n as he, useCoreStore as Ie } from "@feedmepos/mf-common";
13
- import { t as K, a as Ce, d as Oe, s as Ae, r as Ke } from "./xlsx.util-X4amwe_k.js";
13
+ import { t as K, a as Ce, d as Oe, s as Ae, r as Ke } from "./xlsx.util-CP8_VajN.js";
14
14
  import { F as Ge } from "./FmDroppableField-J0tG_U3w.js";
15
- import { a as G, c as We, t as se, g as ue } from "./number-gSLvxNqA.js";
16
- import { f as Je } from "./date2-2XjepIqc.js";
17
- import { u as ge } from "./supplier-DnbLJ_cS.js";
18
- import { a as Ze, B as Xe } from "./rules-C1btu0Md.js";
19
- import { u as Te } from "./netsuite-COumFXC2.js";
20
- import { u as et } from "./duplicate-template-BetV5oy_.js";
21
- import { u as tt } from "./vue-i18n-C34f-Tph.js";
15
+ import { a as G, c as We, t as se, g as ue } from "./number-CB36d2PQ.js";
16
+ import { f as Je } from "./date2-Ci7521dn.js";
17
+ import { u as ge } from "./supplier-CZdNOSMN.js";
18
+ import { a as Ze, B as Xe } from "./rules-C8dfM84-.js";
19
+ import { u as Te } from "./netsuite-BaJjkDM8.js";
20
+ import { u as et } from "./duplicate-template-By5WeKZ0.js";
21
+ import { u as tt } from "./vue-i18n-S4YQ9w6a.js";
22
22
  function De(n) {
23
23
  const e = X(), o = n.sku, d = e.skuById[o._id];
24
24
  if (d.unit._id !== o.unit._id) return !0;
@@ -1,4 +1,4 @@
1
- import { d as p, u as F } from "./app-yvK__CBL.js";
1
+ import { d as p, u as F } from "./app-DqJp3dcI.js";
2
2
  import { useCoreStore as y } from "@feedmepos/mf-common";
3
3
  import { ref as v } from "vue";
4
4
  const l = p((e, r) => {
@@ -1,10 +1,10 @@
1
- import { a as w, t as H, f as T } from "./number-gSLvxNqA.js";
2
- import { u as P } from "./feature-CkWaZ-5K.js";
1
+ import { a as w, t as H, f as T } from "./number-CB36d2PQ.js";
2
+ import { useFeatureStore as P } from "./feature-fG7d73oi.js";
3
3
  import { useCoreStore as y } from "@feedmepos/mf-common";
4
- import { a as g, g as k, m as j, e as S } from "./app-yvK__CBL.js";
5
- import { b as N, d as $, s as I } from "./xlsx.util-X4amwe_k.js";
6
- import { f as _ } from "./date2-2XjepIqc.js";
7
- import { I as O } from "./rules-C1btu0Md.js";
4
+ import { a as g, g as k, m as j, e as S } from "./app-DqJp3dcI.js";
5
+ import { b as N, d as $, s as I } from "./xlsx.util-CP8_VajN.js";
6
+ import { f as _ } from "./date2-Ci7521dn.js";
7
+ import { I as O } from "./rules-C8dfM84-.js";
8
8
  function U() {
9
9
  return {
10
10
  low: 6,
@@ -28,14 +28,14 @@ function A(e) {
28
28
  for (const r of i) {
29
29
  const n = r.indexOf(":");
30
30
  if (n > 0) {
31
- const u = r.substring(0, n).trim(), a = r.substring(n + 1).trim();
32
- u && a && (t[u] = a);
31
+ const m = r.substring(0, n).trim(), a = r.substring(n + 1).trim();
32
+ m && a && (t[m] = a);
33
33
  }
34
34
  }
35
35
  return Object.keys(t).length > 0 ? t : void 0;
36
36
  }
37
37
  function V(e) {
38
- var i, r, n, u, a;
38
+ var i, r, n, m, a;
39
39
  return {
40
40
  code: e.code,
41
41
  name: e.name,
@@ -44,7 +44,7 @@ function V(e) {
44
44
  measurementName: ((i = e.unit.measurements.find((c) => c.id === e.trackingMeasurement)) == null ? void 0 : i.abbrev) ?? e.unit.abbrev,
45
45
  valuationMethod: e.valuation ?? "WAVG",
46
46
  pricePerUnit: (r = e.defaultCost) != null && r.costPerUnit ? +w((n = e.defaultCost) == null ? void 0 : n.costPerUnit) : 0,
47
- thresholdLow: ((u = e.thresholds) == null ? void 0 : u.low) ?? U().low,
47
+ thresholdLow: ((m = e.thresholds) == null ? void 0 : m.low) ?? U().low,
48
48
  thresholdMid: ((a = e.thresholds) == null ? void 0 : a.mid) ?? U().mid,
49
49
  customAttributes: B(e.customAttributes)
50
50
  };
@@ -97,14 +97,14 @@ function E() {
97
97
  }), e;
98
98
  }
99
99
  function X(e) {
100
- const t = g(), i = (e ?? t.skus).map(V), n = y().currentBusiness.value, u = E(), a = [
100
+ const t = g(), i = (e ?? t.skus).map(V), n = y().currentBusiness.value, m = E(), a = [
101
101
  ["Business name:", n == null ? void 0 : n.name],
102
102
  ["Business ID:", n == null ? void 0 : n._id],
103
103
  ["Menu version", n == null ? void 0 : n.menuVersion],
104
104
  [],
105
- u.map((s) => s.name),
106
- ...i.map((s) => u.map((d) => s[d.id]))
107
- ], c = u.map((s) => `system:${s.id}`), l = N(a, c), o = `${n == null ? void 0 : n.name} ingredients (${_(/* @__PURE__ */ new Date())}).xlsx`;
105
+ m.map((s) => s.name),
106
+ ...i.map((s) => m.map((d) => s[d.id]))
107
+ ], c = m.map((s) => `system:${s.id}`), l = N(a, c), o = `${n == null ? void 0 : n.name} ingredients (${_(/* @__PURE__ */ new Date())}).xlsx`;
108
108
  return $(l, o), o;
109
109
  }
110
110
  function Z() {
@@ -114,8 +114,8 @@ function Z() {
114
114
  ["Menu version", t == null ? void 0 : t.menuVersion],
115
115
  [],
116
116
  i.map((c) => c.name)
117
- ], n = i.map((c) => `system:${c.id}`), u = N(r, n), a = "FeedMe ingredients template.xlsx";
118
- return $(u, a), a;
117
+ ], n = i.map((c) => `system:${c.id}`), m = N(r, n), a = "FeedMe ingredients template.xlsx";
118
+ return $(m, a), a;
119
119
  }
120
120
  function L(e) {
121
121
  const [
@@ -123,7 +123,7 @@ function L(e) {
123
123
  i,
124
124
  r,
125
125
  n,
126
- u,
126
+ m,
127
127
  a,
128
128
  ...c
129
129
  ] = I(e);
@@ -148,27 +148,27 @@ function L(e) {
148
148
  }
149
149
  function R(e, t, i, { ignoreErrors: r = !1 } = {}) {
150
150
  var M;
151
- const u = g().units, a = new Array(), c = i.filter((m) => m.data.code === e.code);
151
+ const m = g().units, a = new Array(), c = i.filter((u) => u.data.code === e.code);
152
152
  c.length > 1 && a.push(
153
- `Code ${e.code} is already used in row ${c.map((m) => m.index + 6).join()}.`
153
+ `Code ${e.code} is already used in row ${c.map((u) => u.index + 6).join()}.`
154
154
  );
155
- const l = u.find((m) => {
155
+ const l = m.find((u) => {
156
156
  var x, C;
157
- return m.abbrev === e.baseUnit && ((x = m.name) == null ? void 0 : x.trim()) === ((C = e.unit) == null ? void 0 : C.trim());
158
- }), o = l == null ? void 0 : l.measurements.find((m) => m.abbrev === e.measurementName);
157
+ return u.abbrev === e.baseUnit && ((x = u.name) == null ? void 0 : x.trim()) === ((C = e.unit) == null ? void 0 : C.trim());
158
+ }), o = l == null ? void 0 : l.measurements.find((u) => u.abbrev === e.measurementName);
159
159
  if (!l)
160
160
  a.push(`Cannot find unit with symbol ${e.baseUnit}.`);
161
161
  else if (e.baseUnit !== e.measurementName && !o) {
162
- const m = `Cannot find measurement symbol ${e.measurementName || "[empty]"} for unit symbol ${e.baseUnit}.`;
163
- a.push(m);
162
+ const u = `Cannot find measurement symbol ${e.measurementName || "[empty]"} for unit symbol ${e.baseUnit}.`;
163
+ a.push(u);
164
164
  }
165
165
  const s = S.options.find(
166
- (m) => m === e.valuationMethod
166
+ (u) => u === e.valuationMethod
167
167
  );
168
168
  e.valuationMethod && !s && a.push(
169
169
  `Expected valuation method to be one of ${S.options.join()} but got ${e.valuationMethod} instead.`
170
170
  );
171
- const p = y().currentCountry.value, h = (m) => `${m}`.length && O()(m) === !0, f = h(`${e.pricePerUnit}`) === !0 ? {
171
+ const p = y().currentCountry.value, h = (u) => `${u}`.length && O()(u) === !0, f = h(`${e.pricePerUnit}`) === !0 ? {
172
172
  costPerUnit: {
173
173
  ...H(Number(e.pricePerUnit) || 0, T(Number(e.pricePerUnit) || 0)),
174
174
  currency: ((M = k(p)) == null ? void 0 : M.currency) ?? "MYR"
@@ -183,7 +183,7 @@ function R(e, t, i, { ignoreErrors: r = !1 } = {}) {
183
183
  sku: {
184
184
  code: e.code,
185
185
  name: e.name,
186
- unit: l ?? u.find((m) => m) ?? D,
186
+ unit: l ?? m.find((u) => u) ?? D,
187
187
  trackingMeasurement: o == null ? void 0 : o.id,
188
188
  valuation: s,
189
189
  defaultCost: f,
@@ -196,7 +196,7 @@ function R(e, t, i, { ignoreErrors: r = !1 } = {}) {
196
196
  }
197
197
  function ee(e) {
198
198
  try {
199
- const t = L(e).filter((o) => o.data.code), r = g().skus, n = j(r, "code"), u = t.filter((o) => !n[o.data.code]), a = t.filter((o) => n[o.data.code]), c = u.map(
199
+ const t = L(e).filter((o) => o.data.code), r = g().skus, n = j(r, "code"), m = t.filter((o) => !n[o.data.code]), a = t.filter((o) => n[o.data.code]), c = m.map(
200
200
  (o) => R(o.data, o.index, t)
201
201
  ), l = a.map((o) => {
202
202
  const s = R(o.data, o.index, t), d = n[o.data.code];
@@ -1,9 +1,9 @@
1
1
  import { ref as v, computed as f } from "vue";
2
- import { u as w } from "./netsuite-COumFXC2.js";
3
- import { A as L, a as p, u as y, d as k, G as h } from "./app-yvK__CBL.js";
2
+ import { u as w } from "./netsuite-BaJjkDM8.js";
3
+ import { A as L, a as p, u as y, d as k, G as h } from "./app-DqJp3dcI.js";
4
4
  import { useSnackbar as B } from "@feedmepos/ui-library";
5
5
  import { useCoreStore as E } from "@feedmepos/mf-common";
6
- import { u as S } from "./feature-CkWaZ-5K.js";
6
+ import { useFeatureStore as S } from "./feature-fG7d73oi.js";
7
7
  function C() {
8
8
  return {
9
9
  setting: {
@@ -1,4 +1,4 @@
1
- import { y as L, aw as V, ax as je, ay as X, ap as Bl, a1 as Ar, az as Te, aA as Yt, aB as Wt } from "./app-yvK__CBL.js";
1
+ import { y as L, aw as V, ax as je, ay as X, ap as Bl, a1 as Ar, az as Te, aA as Yt, aB as Wt } from "./app-DqJp3dcI.js";
2
2
  import { d as wl, _ as zl } from "./dinero-DMLEtkS9.js";
3
3
  function Ul(t, e) {
4
4
  for (var r = 0; r < e.length; r++) {