@argusoft/medplat-product-management 1.0.2 → 1.0.4

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