@argusoft/medplat-product-management 1.0.2 → 1.0.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 (79) hide show
  1. package/dist/{BrandsPage-CSA3meke.js → BrandsPage-NSvaMXWg.js} +76 -75
  2. package/dist/BrandsPage-NSvaMXWg.js.map +1 -0
  3. package/dist/{CategoriesPage-BrspzkJL.js → CategoriesPage-aZBZrDOi.js} +8 -8
  4. package/dist/{CategoriesPage-BrspzkJL.js.map → CategoriesPage-aZBZrDOi.js.map} +1 -1
  5. package/dist/{DashboardPage-CqaquOs2.js → DashboardPage-DjwlOhrd.js} +22 -22
  6. package/dist/DashboardPage-DjwlOhrd.js.map +1 -0
  7. package/dist/{FacilityPicker-Dv_H95WW.js → FacilityPicker-Chh-ZaR0.js} +2 -2
  8. package/dist/{FacilityPicker-Dv_H95WW.js.map → FacilityPicker-Chh-ZaR0.js.map} +1 -1
  9. package/dist/{InventoryPage-CPbzfDMR.js → InventoryPage-cy76UsMp.js} +109 -119
  10. package/dist/InventoryPage-cy76UsMp.js.map +1 -0
  11. package/dist/{MemberProfileCard-0vjO3Gzd.js → MemberProfileCard-CinPt09F.js} +6 -6
  12. package/dist/MemberProfileCard-CinPt09F.js.map +1 -0
  13. package/dist/{PaymentCreatePage-BYmDZAIB.js → PaymentCreatePage-BJe3LyFF.js} +148 -153
  14. package/dist/PaymentCreatePage-BJe3LyFF.js.map +1 -0
  15. package/dist/{PaymentsPage-BXPvKon-.js → PaymentsPage-DxHoKksN.js} +11 -11
  16. package/dist/{PaymentsPage-BXPvKon-.js.map → PaymentsPage-DxHoKksN.js.map} +1 -1
  17. package/dist/PickupCreatePage-Cq8zJ62Y.js +705 -0
  18. package/dist/PickupCreatePage-Cq8zJ62Y.js.map +1 -0
  19. package/dist/{PickupsPage-D66_Wta4.js → PickupsPage-BOygBQAb.js} +66 -74
  20. package/dist/PickupsPage-BOygBQAb.js.map +1 -0
  21. package/dist/{PmTable-B9970kPY.js → PmTable-CCpaJEA_.js} +4 -4
  22. package/dist/PmTable-CCpaJEA_.js.map +1 -0
  23. package/dist/{ProductEditPage-B8qFTCW9.js → ProductEditPage-DmdHO-fS.js} +109 -109
  24. package/dist/ProductEditPage-DmdHO-fS.js.map +1 -0
  25. package/dist/{ProductsPage-C7_r9cKn.js → ProductsPage-BglMe8EM.js} +6 -6
  26. package/dist/{ProductsPage-C7_r9cKn.js.map → ProductsPage-BglMe8EM.js.map} +1 -1
  27. package/dist/PurchaseCreatePage-1tYk41RS.js +590 -0
  28. package/dist/PurchaseCreatePage-1tYk41RS.js.map +1 -0
  29. package/dist/{PurchaseRequestDetailPage-C7aAwEqw.js → PurchaseRequestDetailPage-BYLx3aBI.js} +14 -14
  30. package/dist/PurchaseRequestDetailPage-BYLx3aBI.js.map +1 -0
  31. package/dist/{PurchaseRequestsPage-BwCkbpaX.js → PurchaseRequestsPage-D2yorc4s.js} +4 -4
  32. package/dist/{PurchaseRequestsPage-BwCkbpaX.js.map → PurchaseRequestsPage-D2yorc4s.js.map} +1 -1
  33. package/dist/{PurchasesPage-CvaZouVy.js → PurchasesPage-CanQTjlw.js} +3 -3
  34. package/dist/{PurchasesPage-CvaZouVy.js.map → PurchasesPage-CanQTjlw.js.map} +1 -1
  35. package/dist/{SaleCreatePage-DP1Qmltu.js → SaleCreatePage-DxFvPvju.js} +145 -170
  36. package/dist/SaleCreatePage-DxFvPvju.js.map +1 -0
  37. package/dist/{SalesPage-CO3cdYX5.js → SalesPage-CPMrdr5-.js} +12 -12
  38. package/dist/SalesPage-CPMrdr5-.js.map +1 -0
  39. package/dist/SettingsPage-CEy922rW.js +662 -0
  40. package/dist/SettingsPage-CEy922rW.js.map +1 -0
  41. package/dist/{StorageUnitsPage-B9Hr_RkW.js → StorageUnitsPage-DfLT6xC_.js} +13 -13
  42. package/dist/{StorageUnitsPage-B9Hr_RkW.js.map → StorageUnitsPage-DfLT6xC_.js.map} +1 -1
  43. package/dist/{TransactionsPage-HKIGwEZN.js → TransactionsPage-KFUJ4O5g.js} +4 -4
  44. package/dist/TransactionsPage-KFUJ4O5g.js.map +1 -0
  45. package/dist/TransferCreatePage-k1tsRGB3.js +315 -0
  46. package/dist/TransferCreatePage-k1tsRGB3.js.map +1 -0
  47. package/dist/TransfersPage-CDafSVO9.js +470 -0
  48. package/dist/TransfersPage-CDafSVO9.js.map +1 -0
  49. package/dist/VialsPage-DPsYFgaQ.js +897 -0
  50. package/dist/VialsPage-DPsYFgaQ.js.map +1 -0
  51. package/dist/{currency-ClRLIEg2.js → currency-bVQ7aEk2.js} +141 -506
  52. package/dist/currency-bVQ7aEk2.js.map +1 -0
  53. package/dist/index.js +1 -1
  54. package/package.json +1 -1
  55. package/dist/BrandsPage-CSA3meke.js.map +0 -1
  56. package/dist/DashboardPage-CqaquOs2.js.map +0 -1
  57. package/dist/InventoryPage-CPbzfDMR.js.map +0 -1
  58. package/dist/MemberProfileCard-0vjO3Gzd.js.map +0 -1
  59. package/dist/PaymentCreatePage-BYmDZAIB.js.map +0 -1
  60. package/dist/PickupCreatePage-CMGwoAXj.js +0 -426
  61. package/dist/PickupCreatePage-CMGwoAXj.js.map +0 -1
  62. package/dist/PickupsPage-D66_Wta4.js.map +0 -1
  63. package/dist/PmTable-B9970kPY.js.map +0 -1
  64. package/dist/ProductEditPage-B8qFTCW9.js.map +0 -1
  65. package/dist/PurchaseCreatePage-CDfNDcKG.js +0 -627
  66. package/dist/PurchaseCreatePage-CDfNDcKG.js.map +0 -1
  67. package/dist/PurchaseRequestDetailPage-C7aAwEqw.js.map +0 -1
  68. package/dist/SaleCreatePage-DP1Qmltu.js.map +0 -1
  69. package/dist/SalesPage-CO3cdYX5.js.map +0 -1
  70. package/dist/SettingsPage-DvVRwSFw.js +0 -711
  71. package/dist/SettingsPage-DvVRwSFw.js.map +0 -1
  72. package/dist/TransactionsPage-HKIGwEZN.js.map +0 -1
  73. package/dist/TransferCreatePage-DMuZqQ3c.js +0 -363
  74. package/dist/TransferCreatePage-DMuZqQ3c.js.map +0 -1
  75. package/dist/TransfersPage-COIyouL4.js +0 -480
  76. package/dist/TransfersPage-COIyouL4.js.map +0 -1
  77. package/dist/VialsPage-BNPUwGCU.js +0 -922
  78. package/dist/VialsPage-BNPUwGCU.js.map +0 -1
  79. package/dist/currency-ClRLIEg2.js.map +0 -1
@@ -0,0 +1,705 @@
1
+ import { F as e, M as t, P as n, Z as r, i, n as a, o, r as s } from "./currency-bVQ7aEk2.js";
2
+ import { o as c, r as l } from "./PmTable-CCpaJEA_.js";
3
+ import { t as u } from "./format-UOyOu75i.js";
4
+ import { useMemo as d, useState as f } from "react";
5
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
6
+ import { v4 as h } from "uuid";
7
+ import { Alert as g, Autocomplete as _, Box as v, Button as y, Card as b, CardContent as x, Chip as S, Grid as C, Stack as w, TextField as T } from "@mui/material";
8
+ import { showToast as E } from "@/common/toaster/toaster";
9
+ import { useNavigate as D } from "react-router-dom";
10
+ import ee from "@mui/icons-material/SaveRounded";
11
+ import { DateTimePicker as O, LocalizationProvider as k } from "@mui/x-date-pickers";
12
+ import { AdapterDayjs as A } from "@mui/x-date-pickers/AdapterDayjs";
13
+ //#region \0rolldown/runtime.js
14
+ var j = Object.create, M = Object.defineProperty, N = Object.getOwnPropertyDescriptor, P = Object.getOwnPropertyNames, F = Object.getPrototypeOf, I = Object.prototype.hasOwnProperty, te = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), ne = (e, t, n, r) => {
15
+ if (t && typeof t == "object" || typeof t == "function") for (var i = P(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !I.call(e, s) && s !== n && M(e, s, {
16
+ get: ((e) => t[e]).bind(null, s),
17
+ enumerable: !(r = N(t, s)) || r.enumerable
18
+ });
19
+ return e;
20
+ }, L = /* @__PURE__ */ ((e, t, n) => (n = e == null ? {} : j(F(e)), ne(t || !e || !e.__esModule ? M(n, "default", {
21
+ value: e,
22
+ enumerable: !0
23
+ }) : n, e)))((/* @__PURE__ */ te(((e, t) => {
24
+ (function(n, r) {
25
+ typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs = r();
26
+ })(e, (function() {
27
+ var e = 1e3, t = 6e4, n = 36e5, r = "millisecond", i = "second", a = "minute", o = "hour", s = "day", c = "week", l = "month", u = "quarter", d = "year", f = "date", p = "Invalid Date", m = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, h = /\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, g = {
28
+ name: "en",
29
+ weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
30
+ months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
31
+ ordinal: function(e) {
32
+ var t = [
33
+ "th",
34
+ "st",
35
+ "nd",
36
+ "rd"
37
+ ], n = e % 100;
38
+ return "[" + e + (t[(n - 20) % 10] || t[n] || t[0]) + "]";
39
+ }
40
+ }, _ = function(e, t, n) {
41
+ var r = String(e);
42
+ return !r || r.length >= t ? e : "" + Array(t + 1 - r.length).join(n) + e;
43
+ }, v = {
44
+ s: _,
45
+ z: function(e) {
46
+ var t = -e.utcOffset(), n = Math.abs(t), r = Math.floor(n / 60), i = n % 60;
47
+ return (t <= 0 ? "+" : "-") + _(r, 2, "0") + ":" + _(i, 2, "0");
48
+ },
49
+ m: function e(t, n) {
50
+ if (t.date() < n.date()) return -e(n, t);
51
+ var r = 12 * (n.year() - t.year()) + (n.month() - t.month()), i = t.clone().add(r, l), a = n - i < 0, o = t.clone().add(r + (a ? -1 : 1), l);
52
+ return +(-(r + (n - i) / (a ? i - o : o - i)) || 0);
53
+ },
54
+ a: function(e) {
55
+ return e < 0 ? Math.ceil(e) || 0 : Math.floor(e);
56
+ },
57
+ p: function(e) {
58
+ return {
59
+ M: l,
60
+ y: d,
61
+ w: c,
62
+ d: s,
63
+ D: f,
64
+ h: o,
65
+ m: a,
66
+ s: i,
67
+ ms: r,
68
+ Q: u
69
+ }[e] || String(e || "").toLowerCase().replace(/s$/, "");
70
+ },
71
+ u: function(e) {
72
+ return e === void 0;
73
+ }
74
+ }, y = "en", b = {};
75
+ b[y] = g;
76
+ var x = "$isDayjsObject", S = function(e) {
77
+ return e instanceof E || !(!e || !e[x]);
78
+ }, C = function e(t, n, r) {
79
+ var i;
80
+ if (!t) return y;
81
+ if (typeof t == "string") {
82
+ var a = t.toLowerCase();
83
+ b[a] && (i = a), n && (b[a] = n, i = a);
84
+ var o = t.split("-");
85
+ if (!i && o.length > 1) return e(o[0]);
86
+ } else {
87
+ var s = t.name;
88
+ b[s] = t, i = s;
89
+ }
90
+ return !r && i && (y = i), i || !r && y;
91
+ }, w = function(e, t) {
92
+ if (S(e)) return e.clone();
93
+ var n = typeof t == "object" ? t : {};
94
+ return n.date = e, n.args = arguments, new E(n);
95
+ }, T = v;
96
+ T.l = C, T.i = S, T.w = function(e, t) {
97
+ return w(e, {
98
+ locale: t.$L,
99
+ utc: t.$u,
100
+ x: t.$x,
101
+ $offset: t.$offset
102
+ });
103
+ };
104
+ var E = function() {
105
+ function g(e) {
106
+ this.$L = C(e.locale, null, !0), this.parse(e), this.$x = this.$x || e.x || {}, this[x] = !0;
107
+ }
108
+ var _ = g.prototype;
109
+ return _.parse = function(e) {
110
+ this.$d = function(e) {
111
+ var t = e.date, n = e.utc;
112
+ if (t === null) return /* @__PURE__ */ new Date(NaN);
113
+ if (T.u(t)) return /* @__PURE__ */ new Date();
114
+ if (t instanceof Date) return new Date(t);
115
+ if (typeof t == "string" && !/Z$/i.test(t)) {
116
+ var r = t.match(m);
117
+ if (r) {
118
+ var i = r[2] - 1 || 0, a = (r[7] || "0").substring(0, 3);
119
+ return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, a)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, a);
120
+ }
121
+ }
122
+ return new Date(t);
123
+ }(e), this.init();
124
+ }, _.init = function() {
125
+ var e = this.$d;
126
+ this.$y = e.getFullYear(), this.$M = e.getMonth(), this.$D = e.getDate(), this.$W = e.getDay(), this.$H = e.getHours(), this.$m = e.getMinutes(), this.$s = e.getSeconds(), this.$ms = e.getMilliseconds();
127
+ }, _.$utils = function() {
128
+ return T;
129
+ }, _.isValid = function() {
130
+ return this.$d.toString() !== p;
131
+ }, _.isSame = function(e, t) {
132
+ var n = w(e);
133
+ return this.startOf(t) <= n && n <= this.endOf(t);
134
+ }, _.isAfter = function(e, t) {
135
+ return w(e) < this.startOf(t);
136
+ }, _.isBefore = function(e, t) {
137
+ return this.endOf(t) < w(e);
138
+ }, _.$g = function(e, t, n) {
139
+ return T.u(e) ? this[t] : this.set(n, e);
140
+ }, _.unix = function() {
141
+ return Math.floor(this.valueOf() / 1e3);
142
+ }, _.valueOf = function() {
143
+ return this.$d.getTime();
144
+ }, _.startOf = function(e, t) {
145
+ var n = this, r = !!T.u(t) || t, u = T.p(e), p = function(e, t) {
146
+ var i = T.w(n.$u ? Date.UTC(n.$y, t, e) : new Date(n.$y, t, e), n);
147
+ return r ? i : i.endOf(s);
148
+ }, m = function(e, t) {
149
+ return T.w(n.toDate()[e].apply(n.toDate("s"), (r ? [
150
+ 0,
151
+ 0,
152
+ 0,
153
+ 0
154
+ ] : [
155
+ 23,
156
+ 59,
157
+ 59,
158
+ 999
159
+ ]).slice(t)), n);
160
+ }, h = this.$W, g = this.$M, _ = this.$D, v = "set" + (this.$u ? "UTC" : "");
161
+ switch (u) {
162
+ case d: return r ? p(1, 0) : p(31, 11);
163
+ case l: return r ? p(1, g) : p(0, g + 1);
164
+ case c:
165
+ var y = this.$locale().weekStart || 0, b = (h < y ? h + 7 : h) - y;
166
+ return p(r ? _ - b : _ + (6 - b), g);
167
+ case s:
168
+ case f: return m(v + "Hours", 0);
169
+ case o: return m(v + "Minutes", 1);
170
+ case a: return m(v + "Seconds", 2);
171
+ case i: return m(v + "Milliseconds", 3);
172
+ default: return this.clone();
173
+ }
174
+ }, _.endOf = function(e) {
175
+ return this.startOf(e, !1);
176
+ }, _.$set = function(e, t) {
177
+ var n, c = T.p(e), u = "set" + (this.$u ? "UTC" : ""), p = (n = {}, n[s] = u + "Date", n[f] = u + "Date", n[l] = u + "Month", n[d] = u + "FullYear", n[o] = u + "Hours", n[a] = u + "Minutes", n[i] = u + "Seconds", n[r] = u + "Milliseconds", n)[c], m = c === s ? this.$D + (t - this.$W) : t;
178
+ if (c === l || c === d) {
179
+ var h = this.clone().set(f, 1);
180
+ h.$d[p](m), h.init(), this.$d = h.set(f, Math.min(this.$D, h.daysInMonth())).$d;
181
+ } else p && this.$d[p](m);
182
+ return this.init(), this;
183
+ }, _.set = function(e, t) {
184
+ return this.clone().$set(e, t);
185
+ }, _.get = function(e) {
186
+ return this[T.p(e)]();
187
+ }, _.add = function(r, u) {
188
+ var f, p = this;
189
+ r = Number(r);
190
+ var m = T.p(u), h = function(e) {
191
+ var t = w(p);
192
+ return T.w(t.date(t.date() + Math.round(e * r)), p);
193
+ };
194
+ if (m === l) return this.set(l, this.$M + r);
195
+ if (m === d) return this.set(d, this.$y + r);
196
+ if (m === s) return h(1);
197
+ if (m === c) return h(7);
198
+ var g = (f = {}, f[a] = t, f[o] = n, f[i] = e, f)[m] || 1, _ = this.$d.getTime() + r * g;
199
+ return T.w(_, this);
200
+ }, _.subtract = function(e, t) {
201
+ return this.add(-1 * e, t);
202
+ }, _.format = function(e) {
203
+ var t = this, n = this.$locale();
204
+ if (!this.isValid()) return n.invalidDate || p;
205
+ var r = e || "YYYY-MM-DDTHH:mm:ssZ", i = T.z(this), a = this.$H, o = this.$m, s = this.$M, c = n.weekdays, l = n.months, u = n.meridiem, d = function(e, n, i, a) {
206
+ return e && (e[n] || e(t, r)) || i[n].slice(0, a);
207
+ }, f = function(e) {
208
+ return T.s(a % 12 || 12, e, "0");
209
+ }, m = u || function(e, t, n) {
210
+ var r = e < 12 ? "AM" : "PM";
211
+ return n ? r.toLowerCase() : r;
212
+ };
213
+ return r.replace(h, (function(e, r) {
214
+ return r || function(e) {
215
+ switch (e) {
216
+ case "YY": return String(t.$y).slice(-2);
217
+ case "YYYY": return T.s(t.$y, 4, "0");
218
+ case "M": return s + 1;
219
+ case "MM": return T.s(s + 1, 2, "0");
220
+ case "MMM": return d(n.monthsShort, s, l, 3);
221
+ case "MMMM": return d(l, s);
222
+ case "D": return t.$D;
223
+ case "DD": return T.s(t.$D, 2, "0");
224
+ case "d": return String(t.$W);
225
+ case "dd": return d(n.weekdaysMin, t.$W, c, 2);
226
+ case "ddd": return d(n.weekdaysShort, t.$W, c, 3);
227
+ case "dddd": return c[t.$W];
228
+ case "H": return String(a);
229
+ case "HH": return T.s(a, 2, "0");
230
+ case "h": return f(1);
231
+ case "hh": return f(2);
232
+ case "a": return m(a, o, !0);
233
+ case "A": return m(a, o, !1);
234
+ case "m": return String(o);
235
+ case "mm": return T.s(o, 2, "0");
236
+ case "s": return String(t.$s);
237
+ case "ss": return T.s(t.$s, 2, "0");
238
+ case "SSS": return T.s(t.$ms, 3, "0");
239
+ case "Z": return i;
240
+ }
241
+ return null;
242
+ }(e) || i.replace(":", "");
243
+ }));
244
+ }, _.utcOffset = function() {
245
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
246
+ }, _.diff = function(r, f, p) {
247
+ var m, h = this, g = T.p(f), _ = w(r), v = (_.utcOffset() - this.utcOffset()) * t, y = this - _, b = function() {
248
+ return T.m(h, _);
249
+ };
250
+ switch (g) {
251
+ case d:
252
+ m = b() / 12;
253
+ break;
254
+ case l:
255
+ m = b();
256
+ break;
257
+ case u:
258
+ m = b() / 3;
259
+ break;
260
+ case c:
261
+ m = (y - v) / 6048e5;
262
+ break;
263
+ case s:
264
+ m = (y - v) / 864e5;
265
+ break;
266
+ case o:
267
+ m = y / n;
268
+ break;
269
+ case a:
270
+ m = y / t;
271
+ break;
272
+ case i:
273
+ m = y / e;
274
+ break;
275
+ default: m = y;
276
+ }
277
+ return p ? m : T.a(m);
278
+ }, _.daysInMonth = function() {
279
+ return this.endOf(l).$D;
280
+ }, _.$locale = function() {
281
+ return b[this.$L];
282
+ }, _.locale = function(e, t) {
283
+ if (!e) return this.$L;
284
+ var n = this.clone(), r = C(e, t, !0);
285
+ return r && (n.$L = r), n;
286
+ }, _.clone = function() {
287
+ return T.w(this.$d, this);
288
+ }, _.toDate = function() {
289
+ return new Date(this.valueOf());
290
+ }, _.toJSON = function() {
291
+ return this.isValid() ? this.toISOString() : null;
292
+ }, _.toISOString = function() {
293
+ return this.$d.toISOString();
294
+ }, _.toString = function() {
295
+ return this.$d.toUTCString();
296
+ }, g;
297
+ }(), D = E.prototype;
298
+ return w.prototype = D, [
299
+ ["$ms", r],
300
+ ["$s", i],
301
+ ["$m", a],
302
+ ["$H", o],
303
+ ["$W", s],
304
+ ["$M", l],
305
+ ["$y", d],
306
+ ["$D", f]
307
+ ].forEach((function(e) {
308
+ D[e[1]] = function(t) {
309
+ return this.$g(t, e[0], e[1]);
310
+ };
311
+ })), w.extend = function(e, t) {
312
+ return e.$i ||= (e(t, E, w), !0), w;
313
+ }, w.locale = C, w.isDayjs = S, w.unix = function(e) {
314
+ return w(1e3 * e);
315
+ }, w.en = b[y], w.Ls = b, w.p = {}, w;
316
+ }));
317
+ })))(), 1);
318
+ function re(e) {
319
+ return !(e.ownerType !== "FACILITY" || Number(e.qtyRemaining ?? 0) <= 0 || e.status === "EXPIRED" || e.status === "EXHAUSTED" || e.status === "QUARANTINED");
320
+ }
321
+ function ie() {
322
+ let j = D(), [M, N] = f([]), [P, F] = f([]), [I, te] = f([]), [ne, ie] = f(!0), [ae, oe] = f(!1), [R, z] = f(""), [B, V] = f({
323
+ id: h(),
324
+ personalBatchId: h(),
325
+ facilityId: "",
326
+ sourceBatchId: "",
327
+ pickedQty: 1,
328
+ notes: "",
329
+ sessionName: "",
330
+ sessionDescription: "",
331
+ sessionStartTime: (0, L.default)(),
332
+ sessionExpectedEndTime: null,
333
+ sessionSite: ""
334
+ });
335
+ i("update.manage.productManagement.pickup", () => {
336
+ async function r() {
337
+ try {
338
+ let [r, i, a] = await Promise.all([
339
+ n(),
340
+ t(),
341
+ e().catch(() => [])
342
+ ]);
343
+ N(r), F(i), te(a);
344
+ } catch (e) {
345
+ z(e?.response?.data?.message ?? e?.message ?? "Failed to load reference data");
346
+ } finally {
347
+ ie(!1);
348
+ }
349
+ }
350
+ r();
351
+ }, []);
352
+ let H = I.length > 0, U = d(() => B.facilityId ? P.filter(re).filter((e) => e.ownerId === B.facilityId) : [], [P, B.facilityId]), W = d(() => P.find((e) => e.id === B.sourceBatchId) ?? null, [P, B.sourceBatchId]);
353
+ function G(e, t) {
354
+ V((n) => ({
355
+ ...n,
356
+ [e]: t
357
+ }));
358
+ }
359
+ function se(e) {
360
+ V((t) => ({
361
+ ...t,
362
+ facilityId: e,
363
+ sourceBatchId: ""
364
+ }));
365
+ }
366
+ let K = Number(B.pickedQty), q = Number(W?.qtyRemaining ?? 0), J = W ? !Number.isInteger(K) || K <= 0 ? "Enter a whole number greater than 0." : K > q ? `Only ${q} available in this batch.` : "" : "", Y = B.sessionName.trim() ? "" : "Session name is required.", X = B.sessionStartTime && L.default.isDayjs(B.sessionStartTime) && B.sessionStartTime.isValid(), Z = X ? B.sessionStartTime.valueOf() < Date.now() - 300 * 1e3 ? "Start time cannot be in the past." : "" : "Start time is required.", Q = B.sessionExpectedEndTime && L.default.isDayjs(B.sessionExpectedEndTime) && B.sessionExpectedEndTime.isValid(), $ = Q ? X && !B.sessionExpectedEndTime.isAfter(B.sessionStartTime) ? "Expected end must be after the start time." : "" : "Expected end time is required.", ce = !!B.facilityId && !!B.sourceBatchId && !J && !H && !Y && !Z && !$;
367
+ async function le() {
368
+ if (ce) {
369
+ oe(!0), z("");
370
+ try {
371
+ await r({
372
+ id: B.id,
373
+ personalBatchId: B.personalBatchId,
374
+ sourceBatchId: B.sourceBatchId,
375
+ pickedQty: K,
376
+ notes: B.notes || null,
377
+ sessionName: B.sessionName.trim(),
378
+ sessionDescription: B.sessionDescription.trim() || null,
379
+ sessionStartTime: X ? B.sessionStartTime.toISOString() : null,
380
+ sessionExpectedEndTime: Q ? B.sessionExpectedEndTime.toISOString() : null,
381
+ sessionSite: B.sessionSite.trim() || null
382
+ }), E({
383
+ message: "Pickup recorded successfully",
384
+ type: "success"
385
+ }), j("/ui/medplat/manage/pm/pickups");
386
+ } catch (e) {
387
+ z(e?.response?.data?.message ?? e?.message ?? "Failed to record pickup");
388
+ } finally {
389
+ oe(!1);
390
+ }
391
+ }
392
+ }
393
+ return /* @__PURE__ */ m(v, { children: [/* @__PURE__ */ p(s, {}), /* @__PURE__ */ p(a, {
394
+ perm: "update.manage.productManagement.pickup",
395
+ title: "You don’t have permission to record pickups",
396
+ children: /* @__PURE__ */ m(o, {
397
+ title: "Record Pickup",
398
+ subtitle: "Check out stock from a facility for your field work. Record returns and wastage when you bring stock back.",
399
+ actions: /* @__PURE__ */ m(w, {
400
+ direction: "row",
401
+ spacing: 1,
402
+ children: [/* @__PURE__ */ p(y, {
403
+ variant: "outlined",
404
+ onClick: () => j("/ui/medplat/manage/pm/pickups"),
405
+ children: "Cancel"
406
+ }), /* @__PURE__ */ p(y, {
407
+ variant: "contained",
408
+ startIcon: /* @__PURE__ */ p(ee, {}),
409
+ disabled: !ce || ae,
410
+ onClick: () => void le(),
411
+ children: ae ? "Recording…" : "Record Pickup"
412
+ })]
413
+ }),
414
+ children: [
415
+ R ? /* @__PURE__ */ p(g, {
416
+ severity: "error",
417
+ sx: { mb: 2 },
418
+ children: R
419
+ }) : null,
420
+ H ? /* @__PURE__ */ m(g, {
421
+ severity: "warning",
422
+ sx: { mb: 2 },
423
+ action: /* @__PURE__ */ p(y, {
424
+ color: "inherit",
425
+ size: "small",
426
+ onClick: () => j("/ui/medplat/manage/pm/pickups"),
427
+ children: "Go to Pickups"
428
+ }),
429
+ children: [
430
+ "You already have ",
431
+ /* @__PURE__ */ p("strong", { children: I.length }),
432
+ " open outreach session",
433
+ I.length === 1 ? "" : "s",
434
+ ". End the active session",
435
+ I.length === 1 ? "" : "s",
436
+ " before starting a new pickup, or use ",
437
+ /* @__PURE__ */ p("strong", { children: "Top Up" }),
438
+ " on the Pickups page to add more stock to an active session."
439
+ ]
440
+ }) : null,
441
+ /* @__PURE__ */ p(b, {
442
+ sx: {
443
+ borderRadius: 1.5,
444
+ mb: 2,
445
+ border: "1px solid",
446
+ borderColor: "divider",
447
+ boxShadow: "0 12px 32px rgba(15, 23, 42, 0.045)"
448
+ },
449
+ children: /* @__PURE__ */ m(x, {
450
+ sx: { p: 2.5 },
451
+ children: [/* @__PURE__ */ p(l, {
452
+ eyebrow: "Step 1",
453
+ title: "Source",
454
+ hint: "Select a facility and then the batch to pick up.",
455
+ sx: { mb: 2 }
456
+ }), /* @__PURE__ */ m(C, {
457
+ container: !0,
458
+ spacing: 2,
459
+ children: [/* @__PURE__ */ p(C, {
460
+ item: !0,
461
+ xs: 12,
462
+ md: 5,
463
+ children: /* @__PURE__ */ p(_, {
464
+ size: "small",
465
+ options: M,
466
+ getOptionLabel: (e) => e?.name ?? "",
467
+ isOptionEqualToValue: (e, t) => e?.id === t?.id,
468
+ value: M.find((e) => e.id === B.facilityId) ?? null,
469
+ onChange: (e, t) => se(t?.id ?? ""),
470
+ loading: ne,
471
+ renderInput: (e) => /* @__PURE__ */ p(T, {
472
+ ...e,
473
+ required: !0,
474
+ label: "Source Facility",
475
+ placeholder: "Pick a facility you're assigned to"
476
+ })
477
+ })
478
+ }), /* @__PURE__ */ p(C, {
479
+ item: !0,
480
+ xs: 12,
481
+ md: 7,
482
+ children: /* @__PURE__ */ p(c, {
483
+ label: "Source Batch",
484
+ required: !0,
485
+ disabled: !B.facilityId,
486
+ value: B.sourceBatchId,
487
+ onChange: (e) => G("sourceBatchId", e),
488
+ options: U.map((e) => ({
489
+ value: e.id,
490
+ label: `${e.productName} · qty ${e.qtyRemaining}${e.lotNumber ? ` · ${e.lotNumber}` : ""}${e.expiryDate ? ` · exp ${u(e.expiryDate)}` : ""}`
491
+ })),
492
+ noOptionsText: "No pickable stock in this facility",
493
+ helperText: B.facilityId ? U.length === 0 ? "This facility has no in-stock batches you can pick up right now." : "Active facility batches only — quarantined / expired / exhausted stock is hidden." : "Pick a facility first."
494
+ })
495
+ })]
496
+ })]
497
+ })
498
+ }),
499
+ /* @__PURE__ */ p(b, {
500
+ sx: {
501
+ borderRadius: 1.5,
502
+ mb: 2,
503
+ border: "1px solid",
504
+ borderColor: "divider",
505
+ boxShadow: "0 12px 32px rgba(15, 23, 42, 0.045)"
506
+ },
507
+ children: /* @__PURE__ */ m(x, {
508
+ sx: { p: 2.5 },
509
+ children: [/* @__PURE__ */ p(l, {
510
+ eyebrow: "Session",
511
+ title: "Outreach session details",
512
+ hint: "Records the purpose, timing and location of this outreach session. Shown when administering from this stock.",
513
+ sx: { mb: 2 }
514
+ }), /* @__PURE__ */ m(C, {
515
+ container: !0,
516
+ spacing: 2,
517
+ children: [
518
+ /* @__PURE__ */ p(C, {
519
+ item: !0,
520
+ xs: 12,
521
+ md: 6,
522
+ children: /* @__PURE__ */ p(T, {
523
+ required: !0,
524
+ fullWidth: !0,
525
+ size: "small",
526
+ label: "Session name",
527
+ inputProps: { maxLength: 150 },
528
+ value: B.sessionName,
529
+ onChange: (e) => G("sessionName", e.target.value),
530
+ error: !!Y && B.sessionName !== "",
531
+ helperText: B.sessionName === "" ? "e.g. Anganwadi camp – Ward 4" : Y
532
+ })
533
+ }),
534
+ /* @__PURE__ */ p(C, {
535
+ item: !0,
536
+ xs: 12,
537
+ md: 6,
538
+ children: /* @__PURE__ */ p(T, {
539
+ fullWidth: !0,
540
+ size: "small",
541
+ label: "Session site (optional)",
542
+ placeholder: "Location / site reference",
543
+ inputProps: { maxLength: 200 },
544
+ value: B.sessionSite,
545
+ onChange: (e) => G("sessionSite", e.target.value)
546
+ })
547
+ }),
548
+ /* @__PURE__ */ p(C, {
549
+ item: !0,
550
+ xs: 12,
551
+ md: 6,
552
+ children: /* @__PURE__ */ p(k, {
553
+ dateAdapter: A,
554
+ adapterLocale: "en",
555
+ children: /* @__PURE__ */ p(O, {
556
+ label: "Start time",
557
+ value: B.sessionStartTime,
558
+ onChange: (e) => G("sessionStartTime", e),
559
+ ampm: !1,
560
+ minDateTime: (0, L.default)().subtract(5, "minute"),
561
+ slotProps: {
562
+ actionBar: { actions: ["clear"] },
563
+ textField: {
564
+ size: "small",
565
+ fullWidth: !0,
566
+ required: !0,
567
+ error: !!Z && B.sessionStartTime !== null,
568
+ helperText: B.sessionStartTime !== null && Z || "Cannot be in the past. (5 minutes buffer allowed)"
569
+ }
570
+ }
571
+ })
572
+ })
573
+ }),
574
+ /* @__PURE__ */ p(C, {
575
+ item: !0,
576
+ xs: 12,
577
+ md: 6,
578
+ children: /* @__PURE__ */ p(k, {
579
+ dateAdapter: A,
580
+ adapterLocale: "en",
581
+ children: /* @__PURE__ */ p(O, {
582
+ label: "Expected End Time",
583
+ value: B.sessionExpectedEndTime,
584
+ onChange: (e) => G("sessionExpectedEndTime", e),
585
+ ampm: !1,
586
+ minDateTime: X ? B.sessionStartTime : void 0,
587
+ slotProps: {
588
+ actionBar: { actions: ["clear"] },
589
+ textField: {
590
+ size: "small",
591
+ fullWidth: !0,
592
+ required: !0,
593
+ error: !!$ && B.sessionExpectedEndTime !== null,
594
+ helperText: B.sessionExpectedEndTime !== null && $ || "When the session is expected to end."
595
+ }
596
+ }
597
+ })
598
+ })
599
+ }),
600
+ /* @__PURE__ */ p(C, {
601
+ item: !0,
602
+ xs: 12,
603
+ children: /* @__PURE__ */ p(T, {
604
+ fullWidth: !0,
605
+ size: "small",
606
+ multiline: !0,
607
+ minRows: 2,
608
+ label: "Purpose / description (optional)",
609
+ value: B.sessionDescription,
610
+ onChange: (e) => G("sessionDescription", e.target.value)
611
+ })
612
+ })
613
+ ]
614
+ })]
615
+ })
616
+ }),
617
+ W ? /* @__PURE__ */ p(b, {
618
+ sx: {
619
+ borderRadius: 1.5,
620
+ mb: 2,
621
+ border: "1px solid",
622
+ borderColor: "divider",
623
+ boxShadow: "0 12px 32px rgba(15, 23, 42, 0.045)"
624
+ },
625
+ children: /* @__PURE__ */ m(x, {
626
+ sx: { p: 2.5 },
627
+ children: [
628
+ /* @__PURE__ */ p(l, {
629
+ eyebrow: "Step 2",
630
+ title: "Quantity",
631
+ hint: `Available: ${q}. You can pick up to this amount.`,
632
+ sx: { mb: 2 }
633
+ }),
634
+ /* @__PURE__ */ m(C, {
635
+ container: !0,
636
+ spacing: 2,
637
+ children: [/* @__PURE__ */ p(C, {
638
+ item: !0,
639
+ xs: 12,
640
+ md: 4,
641
+ children: /* @__PURE__ */ p(T, {
642
+ required: !0,
643
+ fullWidth: !0,
644
+ size: "small",
645
+ type: "number",
646
+ label: "Pick Quantity",
647
+ inputProps: {
648
+ min: 1,
649
+ max: q
650
+ },
651
+ value: B.pickedQty,
652
+ onChange: (e) => G("pickedQty", e.target.value),
653
+ error: !!J,
654
+ helperText: J || `Out of ${q} available`
655
+ })
656
+ }), /* @__PURE__ */ p(C, {
657
+ item: !0,
658
+ xs: 12,
659
+ md: 8,
660
+ children: /* @__PURE__ */ p(T, {
661
+ fullWidth: !0,
662
+ size: "small",
663
+ label: "Notes (optional)",
664
+ placeholder: "Anything worth recording about this pickup",
665
+ value: B.notes,
666
+ onChange: (e) => G("notes", e.target.value)
667
+ })
668
+ })]
669
+ }),
670
+ /* @__PURE__ */ m(w, {
671
+ direction: "row",
672
+ spacing: 1,
673
+ sx: { mt: 2 },
674
+ flexWrap: "wrap",
675
+ useFlexGap: !0,
676
+ children: [
677
+ /* @__PURE__ */ p(S, {
678
+ size: "small",
679
+ label: `Product · ${W.productName}`
680
+ }),
681
+ W.lotNumber ? /* @__PURE__ */ p(S, {
682
+ size: "small",
683
+ label: `Lot · ${W.lotNumber}`
684
+ }) : null,
685
+ W.expiryDate ? /* @__PURE__ */ p(S, {
686
+ size: "small",
687
+ label: `Expiry · ${u(W.expiryDate)}`
688
+ }) : null,
689
+ W.storageUnitName ? /* @__PURE__ */ p(S, {
690
+ size: "small",
691
+ label: `From · ${W.storageUnitName}`
692
+ }) : null
693
+ ]
694
+ })
695
+ ]
696
+ })
697
+ }) : null
698
+ ]
699
+ })
700
+ })] });
701
+ }
702
+ //#endregion
703
+ export { ie as default };
704
+
705
+ //# sourceMappingURL=PickupCreatePage-Cq8zJ62Y.js.map