medusa-pos-plugin 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -68,9 +68,8 @@ function isDraftOrder(order) {
|
|
|
68
68
|
}
|
|
69
69
|
async function loadDraftOrder(scope, id) {
|
|
70
70
|
const orderModule = scope.resolve(utils_1.Modules.ORDER);
|
|
71
|
-
let order = null;
|
|
72
71
|
try {
|
|
73
|
-
|
|
72
|
+
return (await orderModule.retrieveOrder(id, {
|
|
74
73
|
select: [
|
|
75
74
|
"id",
|
|
76
75
|
"display_id",
|
|
@@ -83,7 +82,7 @@ async function loadDraftOrder(scope, id) {
|
|
|
83
82
|
"discount_total",
|
|
84
83
|
"metadata",
|
|
85
84
|
],
|
|
86
|
-
relations: ["items", "items.adjustments"
|
|
85
|
+
relations: ["items", "items.adjustments"],
|
|
87
86
|
}));
|
|
88
87
|
}
|
|
89
88
|
catch {
|
|
@@ -103,33 +102,11 @@ async function loadDraftOrder(scope, id) {
|
|
|
103
102
|
"metadata",
|
|
104
103
|
"items.*",
|
|
105
104
|
"items.adjustments.*",
|
|
106
|
-
"promotions.*",
|
|
107
105
|
],
|
|
108
106
|
filters: { id },
|
|
109
107
|
});
|
|
110
|
-
|
|
108
|
+
return (Array.isArray(data) ? data[0] : null);
|
|
111
109
|
}
|
|
112
|
-
if (!order)
|
|
113
|
-
return null;
|
|
114
|
-
// Open POS edit can leave confirmed order totals at 0 — prefer preview for payable math.
|
|
115
|
-
try {
|
|
116
|
-
const preview = await orderModule.previewOrderChange(id);
|
|
117
|
-
const previewItems = Array.isArray(preview?.items) ? preview.items : [];
|
|
118
|
-
if (previewItems.length > 0) {
|
|
119
|
-
return {
|
|
120
|
-
...order,
|
|
121
|
-
items: previewItems,
|
|
122
|
-
total: preview.total ?? order.total,
|
|
123
|
-
subtotal: preview.subtotal ?? order.subtotal,
|
|
124
|
-
discount_total: preview.discount_total ?? order.discount_total,
|
|
125
|
-
promotions: preview.promotions ?? order.promotions,
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
catch {
|
|
130
|
-
// no active change
|
|
131
|
-
}
|
|
132
|
-
return order;
|
|
133
110
|
}
|
|
134
111
|
/** Gross item prices before any POSMAN — 10% must use this, never already-discounted totals. */
|
|
135
112
|
function computeGrossForManualPercent(order) {
|
|
@@ -246,25 +223,25 @@ async function POST(req, res) {
|
|
|
246
223
|
applied_at: appliedAt,
|
|
247
224
|
};
|
|
248
225
|
const promotionModule = req.scope.resolve(utils_1.Modules.PROMOTION);
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
226
|
+
const [created] = await Promise.all([
|
|
227
|
+
promotionModule.createPromotions({
|
|
228
|
+
code,
|
|
229
|
+
type: "standard",
|
|
230
|
+
status: "active",
|
|
231
|
+
is_automatic: false,
|
|
232
|
+
limit: 1,
|
|
233
|
+
metadata: promoMetadata,
|
|
234
|
+
application_method: {
|
|
235
|
+
type: "fixed",
|
|
236
|
+
target_type: "order",
|
|
237
|
+
allocation: "across",
|
|
238
|
+
value: calculatedAmount,
|
|
239
|
+
currency_code: currency,
|
|
240
|
+
},
|
|
241
|
+
}),
|
|
242
|
+
(0, pos_draft_edit_1.beginEditSafe)(req.scope, draftOrderId),
|
|
243
|
+
]);
|
|
265
244
|
const createdPromo = Array.isArray(created) ? created[0] : created;
|
|
266
|
-
// Single edit session: remove old POSMAN (if any) → add new → confirm-lite once
|
|
267
|
-
await (0, pos_draft_edit_1.beginEditSafe)(req.scope, draftOrderId);
|
|
268
245
|
if (existingManualCodes.length) {
|
|
269
246
|
await (0, core_flows_1.removeDraftOrderPromotionsWorkflow)(req.scope).run({
|
|
270
247
|
input: { order_id: draftOrderId, promo_codes: existingManualCodes },
|
|
@@ -274,26 +251,24 @@ async function POST(req, res) {
|
|
|
274
251
|
input: { order_id: draftOrderId, promo_codes: [code] },
|
|
275
252
|
});
|
|
276
253
|
await (0, pos_draft_edit_1.confirmEditLite)(req.scope, draftOrderId, confirmedBy);
|
|
277
|
-
if (existingManualCodes.length) {
|
|
278
|
-
await deactivateManualPromos(req.scope, existingManualCodes);
|
|
279
|
-
}
|
|
280
254
|
const orderModule = req.scope.resolve(utils_1.Modules.ORDER);
|
|
281
255
|
const prevMeta = order.metadata && typeof order.metadata === "object" ? order.metadata : {};
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
applied_at: appliedAt,
|
|
293
|
-
},
|
|
256
|
+
const nextMeta = {
|
|
257
|
+
...prevMeta,
|
|
258
|
+
pos_manual_discount: {
|
|
259
|
+
code,
|
|
260
|
+
discount_type: discountType,
|
|
261
|
+
discount_value: discountValue,
|
|
262
|
+
amount: calculatedAmount,
|
|
263
|
+
currency_code: currency,
|
|
264
|
+
applied_by: actorId,
|
|
265
|
+
applied_at: appliedAt,
|
|
294
266
|
},
|
|
295
|
-
}
|
|
296
|
-
|
|
267
|
+
};
|
|
268
|
+
await orderModule.updateOrders(draftOrderId, { metadata: nextMeta });
|
|
269
|
+
if (existingManualCodes.length) {
|
|
270
|
+
void deactivateManualPromos(req.scope, existingManualCodes);
|
|
271
|
+
}
|
|
297
272
|
const ms = Math.round(performance.now() - t0);
|
|
298
273
|
console.log(`[pos manual-discount] draft=${draftOrderId} ms=${ms} code=${code}`);
|
|
299
274
|
res.json({
|
|
@@ -304,7 +279,11 @@ async function POST(req, res) {
|
|
|
304
279
|
currency_code: currency,
|
|
305
280
|
metadata: promoMetadata,
|
|
306
281
|
promotion_id: createdPromo?.id ?? null,
|
|
307
|
-
draft_order:
|
|
282
|
+
draft_order: {
|
|
283
|
+
id: draftOrderId,
|
|
284
|
+
metadata: nextMeta,
|
|
285
|
+
discount_total: calculatedAmount,
|
|
286
|
+
},
|
|
308
287
|
_pos_timings_ms: { total: ms },
|
|
309
288
|
});
|
|
310
289
|
});
|
|
@@ -347,8 +326,10 @@ async function DELETE(req, res) {
|
|
|
347
326
|
delete prevMeta.pos_manual_discount;
|
|
348
327
|
await orderModule.updateOrders(draftOrderId, { metadata: prevMeta });
|
|
349
328
|
}
|
|
350
|
-
|
|
351
|
-
|
|
329
|
+
res.json({
|
|
330
|
+
removed: true,
|
|
331
|
+
draft_order: { id: draftOrderId, metadata: prevMeta, discount_total: 0 },
|
|
332
|
+
});
|
|
352
333
|
return;
|
|
353
334
|
}
|
|
354
335
|
const confirmedBy = req.auth_context?.actor_id ||
|
|
@@ -366,13 +347,12 @@ async function DELETE(req, res) {
|
|
|
366
347
|
: {};
|
|
367
348
|
delete prevMeta.pos_manual_discount;
|
|
368
349
|
await orderModule.updateOrders(draftOrderId, { metadata: prevMeta });
|
|
369
|
-
const draft_order = await (0, pos_draft_edit_1.retrievePosCart)(req.scope, draftOrderId);
|
|
370
350
|
const ms = Math.round(performance.now() - t0);
|
|
371
351
|
console.log(`[pos manual-discount] DELETE draft=${draftOrderId} ms=${ms}`);
|
|
372
352
|
res.json({
|
|
373
353
|
removed: true,
|
|
374
354
|
codes,
|
|
375
|
-
draft_order:
|
|
355
|
+
draft_order: { id: draftOrderId, metadata: prevMeta, discount_total: 0 },
|
|
376
356
|
_pos_timings_ms: { total: ms },
|
|
377
357
|
});
|
|
378
358
|
}
|
|
@@ -383,4 +363,4 @@ async function DELETE(req, res) {
|
|
|
383
363
|
});
|
|
384
364
|
}
|
|
385
365
|
}
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9kcmFmdC1vcmRlcnMvW2lkXS9tYW51YWwtZGlzY291bnQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyTUEsb0JBc01DO0FBS0Qsd0JBOEVDO0FBbmVELHFEQUdrQztBQUNsQyw0REFHb0M7QUFDcEMsMkVBSytDO0FBRS9DLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQTtBQUUvQixNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFBO0FBRTVELEtBQUssVUFBVSxzQkFBc0IsQ0FBSSxZQUFvQixFQUFFLEVBQW9CO0lBQ2pGLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDdkUsSUFBSSxPQUFPLEdBQWUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDekMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUNuQixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbEMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzQyxNQUFNLElBQUksQ0FBQTtJQUNWLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQTtJQUNuQixDQUFDO1lBQVMsQ0FBQztRQUNULE9BQU8sRUFBRSxDQUFBO1FBQ1QsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkQsbUJBQW1CLENBQUMs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
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9kcmFmdC1vcmRlcnMvW2lkXS9tYW51YWwtZGlzY291bnQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpTEEsb0JBd01DO0FBS0Qsd0JBK0VDO0FBNWNELHFEQUdrQztBQUNsQyw0REFHb0M7QUFDcEMsMkVBSStDO0FBRS9DLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQTtBQUUvQixNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFBO0FBRTVELEtBQUssVUFBVSxzQkFBc0IsQ0FBSSxZQUFvQixFQUFFLEVBQW9CO0lBQ2pGLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDdkUsSUFBSSxPQUFPLEdBQWUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDekMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtJQUNuQixDQUFDLENBQUMsQ0FBQTtJQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbEMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzQyxNQUFNLElBQUksQ0FBQTtJQUNWLElBQUksQ0FBQztRQUNILE9BQU8sTUFBTSxFQUFFLEVBQUUsQ0FBQTtJQUNuQixDQUFDO1lBQVMsQ0FBQztRQUNULE9BQU8sRUFBRSxDQUFBO1FBQ1QsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkQsbUJBQW1CLENBQUMs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
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const pos_order_list_1 = require("../../../../utils/pos-order-list");
|
|
6
|
+
const LIST_FIELDS = [
|
|
7
|
+
"id",
|
|
8
|
+
"display_id",
|
|
9
|
+
"created_at",
|
|
10
|
+
"updated_at",
|
|
11
|
+
"status",
|
|
12
|
+
"payment_status",
|
|
13
|
+
"fulfillment_status",
|
|
14
|
+
"email",
|
|
15
|
+
"currency_code",
|
|
16
|
+
"total",
|
|
17
|
+
"subtotal",
|
|
18
|
+
"item_total",
|
|
19
|
+
"discount_total",
|
|
20
|
+
"metadata",
|
|
21
|
+
"customer.id",
|
|
22
|
+
"customer.email",
|
|
23
|
+
"customer.phone",
|
|
24
|
+
"customer.first_name",
|
|
25
|
+
"customer.last_name",
|
|
26
|
+
"items.id",
|
|
27
|
+
"items.quantity",
|
|
28
|
+
"items.unit_price",
|
|
29
|
+
"items.total",
|
|
30
|
+
"items.subtotal",
|
|
31
|
+
"items.metadata",
|
|
32
|
+
"items.adjustments.code",
|
|
33
|
+
"items.adjustments.amount",
|
|
34
|
+
];
|
|
35
|
+
function orderByIds(orders, ids) {
|
|
36
|
+
const byId = new Map();
|
|
37
|
+
for (const order of orders) {
|
|
38
|
+
if (order && typeof order === "object" && "id" in order) {
|
|
39
|
+
const id = order.id;
|
|
40
|
+
if (typeof id === "string")
|
|
41
|
+
byId.set(id, order);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ids.map((id) => byId.get(id)).filter(Boolean);
|
|
45
|
+
}
|
|
46
|
+
async function GET(req, res) {
|
|
47
|
+
const queryParams = (req.query || {});
|
|
48
|
+
const { limit, offset } = (0, pos_order_list_1.parseLimitOffset)(queryParams.limit, queryParams.offset);
|
|
49
|
+
const filters = (0, pos_order_list_1.buildPosOrderListFilters)(queryParams);
|
|
50
|
+
const includeSalesTotal = (0, pos_order_list_1.truthyFlag)(queryParams.include_sales_total);
|
|
51
|
+
const hasOccurredRange = !!(filters.from || filters.to);
|
|
52
|
+
try {
|
|
53
|
+
const knex = req.scope.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
54
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
55
|
+
let orders = [];
|
|
56
|
+
let count = 0;
|
|
57
|
+
if (hasOccurredRange) {
|
|
58
|
+
const page = await (0, pos_order_list_1.listOrderIdsByOccurredAt)(knex, filters, limit, offset);
|
|
59
|
+
count = page.count;
|
|
60
|
+
if (page.ids.length > 0) {
|
|
61
|
+
const { data = [] } = await query.graph({
|
|
62
|
+
entity: "order",
|
|
63
|
+
fields: LIST_FIELDS,
|
|
64
|
+
filters: { id: page.ids },
|
|
65
|
+
});
|
|
66
|
+
orders = orderByIds(Array.isArray(data) ? data : [], page.ids);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// No date range: page by created_at (Medusa default).
|
|
71
|
+
const graphFilters = {};
|
|
72
|
+
if (filters.statuses.length === 1)
|
|
73
|
+
graphFilters.status = filters.statuses[0];
|
|
74
|
+
else if (filters.statuses.length > 1)
|
|
75
|
+
graphFilters.status = filters.statuses;
|
|
76
|
+
if (filters.customerIds.length === 1)
|
|
77
|
+
graphFilters.customer_id = filters.customerIds[0];
|
|
78
|
+
else if (filters.customerIds.length > 1)
|
|
79
|
+
graphFilters.customer_id = filters.customerIds;
|
|
80
|
+
if (filters.q)
|
|
81
|
+
graphFilters.q = filters.q;
|
|
82
|
+
const { data = [], metadata } = await query.graph({
|
|
83
|
+
entity: "order",
|
|
84
|
+
fields: LIST_FIELDS,
|
|
85
|
+
filters: graphFilters,
|
|
86
|
+
pagination: {
|
|
87
|
+
skip: offset,
|
|
88
|
+
take: limit || 20,
|
|
89
|
+
order: { created_at: "DESC" },
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
orders = Array.isArray(data) ? data : [];
|
|
93
|
+
count = metadata?.count ?? orders.length;
|
|
94
|
+
}
|
|
95
|
+
const body = {
|
|
96
|
+
orders,
|
|
97
|
+
count,
|
|
98
|
+
limit,
|
|
99
|
+
offset,
|
|
100
|
+
};
|
|
101
|
+
if (includeSalesTotal) {
|
|
102
|
+
if (hasOccurredRange) {
|
|
103
|
+
body.sales_total = await (0, pos_order_list_1.aggregateSalesTotal)(knex, filters);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
// Avoid full-table scan when "All dates" is selected.
|
|
107
|
+
body.sales_total = { amount: 0, currency: "INR", sale_count: 0, skipped: true };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
res.json(body);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
console.error("GET /admin/pos/orders error:", err);
|
|
114
|
+
res.status(500).json({
|
|
115
|
+
message: err instanceof Error ? err.message : "Failed to list POS orders",
|
|
116
|
+
type: "POS_ORDERS_LIST_FAILED",
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9vcmRlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5RUEsa0JBeUVDO0FBMUlELHFEQUFxRTtBQUNyRSxxRUFReUM7QUFlekMsTUFBTSxXQUFXLEdBQUc7SUFDbEIsSUFBSTtJQUNKLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLE9BQU87SUFDUCxlQUFlO0lBQ2YsT0FBTztJQUNQLFVBQVU7SUFDVixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLFVBQVU7SUFDVixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4QiwwQkFBMEI7Q0FDM0IsQ0FBQTtBQUVELFNBQVMsVUFBVSxDQUFDLE1BQWlCLEVBQUUsR0FBYTtJQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQTtJQUN2QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEQsTUFBTSxFQUFFLEdBQUksS0FBMEIsQ0FBQyxFQUFFLENBQUE7WUFDekMsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRO2dCQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFF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
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Helpers for GET /admin/pos/orders — filter by sale time (pos_completed_at)
|
|
4
|
+
* instead of raw created_at so held drafts still land on the completion day.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.knexRows = knexRows;
|
|
8
|
+
exports.parseIsoDate = parseIsoDate;
|
|
9
|
+
exports.parseLimitOffset = parseLimitOffset;
|
|
10
|
+
exports.parseStringList = parseStringList;
|
|
11
|
+
exports.truthyFlag = truthyFlag;
|
|
12
|
+
exports.litePayableAmount = litePayableAmount;
|
|
13
|
+
exports.buildPosOrderListFilters = buildPosOrderListFilters;
|
|
14
|
+
exports.buildOrderWhere = buildOrderWhere;
|
|
15
|
+
exports.listOrderIdsByOccurredAt = listOrderIdsByOccurredAt;
|
|
16
|
+
exports.aggregateSalesTotal = aggregateSalesTotal;
|
|
17
|
+
const OCCURRED_AT_SQL = `COALESCE(
|
|
18
|
+
CASE
|
|
19
|
+
WHEN o.metadata->>'pos_completed_at' ~ '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
|
|
20
|
+
THEN (o.metadata->>'pos_completed_at')::timestamptz
|
|
21
|
+
ELSE NULL
|
|
22
|
+
END,
|
|
23
|
+
o.created_at
|
|
24
|
+
)`;
|
|
25
|
+
function isRecord(value) {
|
|
26
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
27
|
+
}
|
|
28
|
+
function knexRows(result) {
|
|
29
|
+
if (!result)
|
|
30
|
+
return [];
|
|
31
|
+
if (Array.isArray(result.rows))
|
|
32
|
+
return result.rows.filter(isRecord);
|
|
33
|
+
if (Array.isArray(result[0])) {
|
|
34
|
+
return result[0].filter(isRecord);
|
|
35
|
+
}
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
function parseIsoDate(value) {
|
|
39
|
+
if (!value || !String(value).trim())
|
|
40
|
+
return null;
|
|
41
|
+
const d = new Date(String(value).trim());
|
|
42
|
+
return Number.isNaN(d.getTime()) ? null : d;
|
|
43
|
+
}
|
|
44
|
+
function parseLimitOffset(limitRaw, offsetRaw, defaults = { limit: 20, maxLimit: 100 }) {
|
|
45
|
+
const parsedLimit = limitRaw === undefined || limitRaw === ""
|
|
46
|
+
? defaults.limit
|
|
47
|
+
: Number(limitRaw);
|
|
48
|
+
const limit = Math.min(Math.max(Number.isFinite(parsedLimit) ? parsedLimit : defaults.limit, 0), defaults.maxLimit);
|
|
49
|
+
const parsedOffset = Number(offsetRaw);
|
|
50
|
+
const offset = Math.max(Number.isFinite(parsedOffset) ? parsedOffset : 0, 0);
|
|
51
|
+
return { limit, offset };
|
|
52
|
+
}
|
|
53
|
+
function parseStringList(value) {
|
|
54
|
+
if (!value)
|
|
55
|
+
return [];
|
|
56
|
+
const parts = Array.isArray(value) ? value : String(value).split(",");
|
|
57
|
+
return parts.map((p) => String(p).trim()).filter(Boolean);
|
|
58
|
+
}
|
|
59
|
+
function truthyFlag(value) {
|
|
60
|
+
if (!value)
|
|
61
|
+
return false;
|
|
62
|
+
const v = value.trim().toLowerCase();
|
|
63
|
+
return v === "1" || v === "true" || v === "yes";
|
|
64
|
+
}
|
|
65
|
+
function asAmount(value) {
|
|
66
|
+
if (typeof value === "number")
|
|
67
|
+
return Number.isFinite(value) ? value : 0;
|
|
68
|
+
if (typeof value === "string" && value.trim()) {
|
|
69
|
+
const n = Number(value);
|
|
70
|
+
return Number.isFinite(n) ? n : 0;
|
|
71
|
+
}
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
/** Prefer charged total from finalize metadata; else Medusa total. */
|
|
75
|
+
function litePayableAmount(row) {
|
|
76
|
+
const status = String(row.status || "").toLowerCase();
|
|
77
|
+
if (status === "canceled" || status === "cancelled" || status === "draft")
|
|
78
|
+
return 0;
|
|
79
|
+
const meta = isRecord(row.metadata) ? row.metadata : {};
|
|
80
|
+
const charged = asAmount(meta.pos_charged_total);
|
|
81
|
+
if (charged > 0)
|
|
82
|
+
return Math.round(charged * 100) / 100;
|
|
83
|
+
return Math.round(asAmount(row.total) * 100) / 100;
|
|
84
|
+
}
|
|
85
|
+
function buildPosOrderListFilters(query) {
|
|
86
|
+
return {
|
|
87
|
+
from: parseIsoDate(query.from),
|
|
88
|
+
to: parseIsoDate(query.to),
|
|
89
|
+
statuses: parseStringList(query.status),
|
|
90
|
+
customerIds: parseStringList(query.customer_id),
|
|
91
|
+
q: query.q?.trim() || null,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Build WHERE clause + bindings for occurred-at (or created_at when no range).
|
|
96
|
+
* Alias the order table as `o`.
|
|
97
|
+
*/
|
|
98
|
+
function buildOrderWhere(filters) {
|
|
99
|
+
const clauses = ["o.deleted_at IS NULL"];
|
|
100
|
+
const bindings = [];
|
|
101
|
+
if (filters.from) {
|
|
102
|
+
clauses.push(`${OCCURRED_AT_SQL} >= ?::timestamptz`);
|
|
103
|
+
bindings.push(filters.from.toISOString());
|
|
104
|
+
}
|
|
105
|
+
if (filters.to) {
|
|
106
|
+
clauses.push(`${OCCURRED_AT_SQL} <= ?::timestamptz`);
|
|
107
|
+
bindings.push(filters.to.toISOString());
|
|
108
|
+
}
|
|
109
|
+
if (filters.statuses.length === 1) {
|
|
110
|
+
clauses.push(`o.status = ?`);
|
|
111
|
+
bindings.push(filters.statuses[0]);
|
|
112
|
+
}
|
|
113
|
+
else if (filters.statuses.length > 1) {
|
|
114
|
+
clauses.push(`o.status IN (${filters.statuses.map(() => "?").join(", ")})`);
|
|
115
|
+
bindings.push(...filters.statuses);
|
|
116
|
+
}
|
|
117
|
+
if (filters.customerIds.length === 1) {
|
|
118
|
+
clauses.push(`o.customer_id = ?`);
|
|
119
|
+
bindings.push(filters.customerIds[0]);
|
|
120
|
+
}
|
|
121
|
+
else if (filters.customerIds.length > 1) {
|
|
122
|
+
clauses.push(`o.customer_id IN (${filters.customerIds.map(() => "?").join(", ")})`);
|
|
123
|
+
bindings.push(...filters.customerIds);
|
|
124
|
+
}
|
|
125
|
+
if (filters.q) {
|
|
126
|
+
const like = `%${filters.q.replace(/[%_]/g, "\\$&")}%`;
|
|
127
|
+
// display_id is numeric; also match email / id substring
|
|
128
|
+
clauses.push(`(
|
|
129
|
+
o.email ILIKE ? OR
|
|
130
|
+
o.id ILIKE ? OR
|
|
131
|
+
CAST(o.display_id AS text) ILIKE ?
|
|
132
|
+
)`);
|
|
133
|
+
bindings.push(like, like, like);
|
|
134
|
+
}
|
|
135
|
+
return { whereSql: clauses.join(" AND "), bindings };
|
|
136
|
+
}
|
|
137
|
+
async function listOrderIdsByOccurredAt(knex, filters, limit, offset) {
|
|
138
|
+
const { whereSql, bindings } = buildOrderWhere(filters);
|
|
139
|
+
const countResult = await knex.raw(`SELECT COUNT(*)::int AS count FROM "order" o WHERE ${whereSql}`, bindings);
|
|
140
|
+
const countRow = knexRows(countResult)[0];
|
|
141
|
+
const count = Math.max(0, Number(countRow?.count ?? 0) || 0);
|
|
142
|
+
if (count === 0 || limit === 0) {
|
|
143
|
+
return { ids: [], count };
|
|
144
|
+
}
|
|
145
|
+
const pageResult = await knex.raw(`SELECT o.id
|
|
146
|
+
FROM "order" o
|
|
147
|
+
WHERE ${whereSql}
|
|
148
|
+
ORDER BY ${OCCURRED_AT_SQL} DESC, o.created_at DESC
|
|
149
|
+
LIMIT ? OFFSET ?`, [...bindings, limit, offset]);
|
|
150
|
+
const ids = knexRows(pageResult)
|
|
151
|
+
.map((row) => (typeof row.id === "string" ? row.id : null))
|
|
152
|
+
.filter((id) => !!id);
|
|
153
|
+
return { ids, count };
|
|
154
|
+
}
|
|
155
|
+
async function aggregateSalesTotal(knex, filters) {
|
|
156
|
+
const { whereSql, bindings } = buildOrderWhere(filters);
|
|
157
|
+
const result = await knex.raw(`SELECT
|
|
158
|
+
o.status,
|
|
159
|
+
o.total,
|
|
160
|
+
o.currency_code,
|
|
161
|
+
o.metadata
|
|
162
|
+
FROM "order" o
|
|
163
|
+
WHERE ${whereSql}`, bindings);
|
|
164
|
+
let amount = 0;
|
|
165
|
+
let saleCount = 0;
|
|
166
|
+
let currency = "INR";
|
|
167
|
+
for (const row of knexRows(result)) {
|
|
168
|
+
const payable = litePayableAmount(row);
|
|
169
|
+
if (payable <= 0)
|
|
170
|
+
continue;
|
|
171
|
+
const status = String(row.status || "").toLowerCase();
|
|
172
|
+
if (status === "canceled" || status === "cancelled" || status === "draft")
|
|
173
|
+
continue;
|
|
174
|
+
amount += payable;
|
|
175
|
+
saleCount += 1;
|
|
176
|
+
if (typeof row.currency_code === "string" && row.currency_code) {
|
|
177
|
+
currency = row.currency_code;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return {
|
|
181
|
+
amount: Math.round(amount * 100) / 100,
|
|
182
|
+
currency,
|
|
183
|
+
sale_count: saleCount,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zLW9yZGVyLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcG9zLW9yZGVyLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7QUFtQ0gsNEJBT0M7QUFFRCxvQ0FJQztBQUVELDRDQWdCQztBQUVELDBDQUlDO0FBRUQsZ0NBSUM7QUFZRCw4Q0FXQztBQVVELDREQVFDO0FBTUQsMENBMkNDO0FBRUQsNERBaUNDO0FBRUQsa0RBc0NDO0FBN05ELE1BQU0sZUFBZSxHQUFHOzs7Ozs7O0VBT3RCLENBQUE7QUFFRixTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFDN0UsQ0FBQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxNQUF3QztJQUMvRCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFBO0lBQ3RCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNuRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFRLE1BQU0sQ0FBQyxDQUFDLENBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFtQyxDQUFBO0lBQ3BGLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsS0FBeUI7SUFDcEQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNoRCxN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
|
package/README.md
CHANGED
|
@@ -32,6 +32,12 @@ Razorpay credentials also fall back to `RAZORPAY_KEY_ID` / `RAZORPAY_KEY_SECRET`
|
|
|
32
32
|
|
|
33
33
|
All routes keep the `/admin/pos/*` paths used by the `medusa-pos` client.
|
|
34
34
|
|
|
35
|
+
| Method | Path | Purpose |
|
|
36
|
+
|--------|------|---------|
|
|
37
|
+
| GET | `/admin/pos/orders` | Orders tab list + optional sales total, filtered by sale time (`pos_completed_at`) |
|
|
38
|
+
| GET | `/admin/pos/draft-orders` | Held carts |
|
|
39
|
+
| … | `/admin/pos/*` | Finalize, payments, returns, catalog, etc. |
|
|
40
|
+
|
|
35
41
|
## Build
|
|
36
42
|
|
|
37
43
|
```bash
|
package/package.json
CHANGED