medusa-pos-plugin 0.0.19 → 0.0.23
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.
- package/.medusa/server/src/api/admin/pos/orders/[id]/cancel/route.js +4 -3
- package/.medusa/server/src/api/admin/pos/orders/route.js +14 -1
- package/.medusa/server/src/api/admin/pos/orders/run-pos-order-return.js +89 -49
- package/.medusa/server/src/api/admin/pos/reports/daily/route.js +35 -0
- package/.medusa/server/src/utils/payment-refund-money.js +97 -0
- package/.medusa/server/src/utils/pos-daily-report.js +344 -0
- package/.medusa/server/src/utils/pos-order-list.js +180 -88
- package/.medusa/server/src/utils/pos-returns.js +14 -1
- package/.medusa/server/src/utils/pos-void-payment.js +56 -0
- package/package.json +1 -1
|
@@ -11,7 +11,8 @@ const PosCancelOrderSchema = zod_1.z.object({
|
|
|
11
11
|
/**
|
|
12
12
|
* POST /admin/pos/orders/:id/cancel
|
|
13
13
|
*
|
|
14
|
-
* Void a completed POS sale: full return of all returnable lines
|
|
14
|
+
* Void a completed POS sale: full return of all returnable lines for stock,
|
|
15
|
+
* then zero/cancel the original payment (no refund row).
|
|
15
16
|
* Sets metadata.pos_voided (does not use Medusa order.cancel).
|
|
16
17
|
*/
|
|
17
18
|
async function POST(req, res) {
|
|
@@ -72,7 +73,7 @@ async function POST(req, res) {
|
|
|
72
73
|
items,
|
|
73
74
|
refund_method: "cash",
|
|
74
75
|
location_id: body.location_id,
|
|
75
|
-
note: body.note ?? "POS cancel / void sale
|
|
76
|
+
note: body.note ?? "POS cancel / void sale",
|
|
76
77
|
mark_voided: true,
|
|
77
78
|
mark_returned: false,
|
|
78
79
|
});
|
|
@@ -86,4 +87,4 @@ async function POST(req, res) {
|
|
|
86
87
|
}
|
|
87
88
|
res.status(result.status).json(result.body);
|
|
88
89
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9vcmRlcnMvW2lkXS9jYW5jZWwvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsb0JBdUZDO0FBN0dELHFEQUFxRTtBQUNyRSw2QkFBdUI7QUFDdkIscUVBS21DO0FBR25DLE1BQU0sb0JBQW9CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDNUIsQ0FBQyxDQUFBO0FBRUY7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBWSxDQUFBO0lBQ3ZDLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDbkMsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFBO0lBQzdCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FNOUQs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
|
|
@@ -31,6 +31,12 @@ const LIST_FIELDS = [
|
|
|
31
31
|
"items.metadata",
|
|
32
32
|
"items.adjustments.code",
|
|
33
33
|
"items.adjustments.amount",
|
|
34
|
+
"items.detail.quantity",
|
|
35
|
+
"items.detail.return_requested_quantity",
|
|
36
|
+
"items.detail.return_received_quantity",
|
|
37
|
+
"items.detail.returned_quantity",
|
|
38
|
+
"items.detail.return_dismissed_quantity",
|
|
39
|
+
"items.detail.written_off_quantity",
|
|
34
40
|
];
|
|
35
41
|
function orderByIds(orders, ids) {
|
|
36
42
|
const byId = new Map();
|
|
@@ -62,6 +68,10 @@ async function GET(req, res) {
|
|
|
62
68
|
entity: "order",
|
|
63
69
|
fields: LIST_FIELDS,
|
|
64
70
|
filters: { id: page.ids },
|
|
71
|
+
pagination: {
|
|
72
|
+
skip: 0,
|
|
73
|
+
take: page.ids.length,
|
|
74
|
+
},
|
|
65
75
|
});
|
|
66
76
|
orders = orderByIds(Array.isArray(data) ? data : [], page.ids);
|
|
67
77
|
}
|
|
@@ -94,11 +104,14 @@ async function GET(req, res) {
|
|
|
94
104
|
orders = Array.isArray(data) ? data : [];
|
|
95
105
|
count = metadata?.count ?? orders.length;
|
|
96
106
|
}
|
|
107
|
+
const hidePriorDay = filters.statuses.length === 1 &&
|
|
108
|
+
["completed", "canceled", "cancelled", "draft"].includes(filters.statuses[0]);
|
|
97
109
|
const body = {
|
|
98
110
|
orders,
|
|
99
111
|
count,
|
|
100
112
|
limit,
|
|
101
113
|
offset,
|
|
114
|
+
prior_day_returns: hasOccurredRange && !hidePriorDay ? await (0, pos_order_list_1.listPriorDayReturns)(knex, filters) : [],
|
|
102
115
|
};
|
|
103
116
|
if (includeSalesTotal) {
|
|
104
117
|
if (hasOccurredRange) {
|
|
@@ -119,4 +132,4 @@ async function GET(req, res) {
|
|
|
119
132
|
});
|
|
120
133
|
}
|
|
121
134
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9vcmRlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnRkEsa0JBb0ZDO0FBNUpELHFEQUFxRTtBQUNyRSxxRUFTeUM7QUFlekMsTUFBTSxXQUFXLEdBQUc7SUFDbEIsSUFBSTtJQUNKLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLFFBQVE7SUFDUixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLE9BQU87SUFDUCxlQUFlO0lBQ2YsT0FBTztJQUNQLFVBQVU7SUFDVixZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLFVBQVU7SUFDVixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4QiwwQkFBMEI7SUFDMUIsdUJBQXVCO0lBQ3ZCLHdDQUF3QztJQUN4Qyx1Q0FBdUM7SUFDdkMsZ0NBQWdDO0lBQ2hDLHdDQUF3QztJQUN4QyxtQ0FBbUM7Q0FDcEMsQ0FBQTtBQUVELFNBQVMsVUFBVSxDQUFDLE1BQWlCLEVBQUUsR0FBYTtJQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQTtJQUN2QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzNCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEQsTUFBTSxFQUFFLEdBQUksS0FBMEIsQ0FBQyxFQUFFLENBQUE7WUFDekMsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRO2dCQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtB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
|
|
@@ -10,6 +10,7 @@ const core_flows_1 = require("@medusajs/core-flows");
|
|
|
10
10
|
const utils_1 = require("@medusajs/framework/utils");
|
|
11
11
|
const pos_returns_1 = require("../../../../utils/pos-returns");
|
|
12
12
|
Object.defineProperty(exports, "getReturnableQuantity", { enumerable: true, get: function () { return pos_returns_1.getReturnableQuantity; } });
|
|
13
|
+
const pos_void_payment_1 = require("../../../../utils/pos-void-payment");
|
|
13
14
|
const WALLET_MODULE = "wallet_ledger";
|
|
14
15
|
const REFUND_PAYMENT_MAPPING_MODULE = "refund_payment_mapping";
|
|
15
16
|
function isRecord(value) {
|
|
@@ -221,22 +222,6 @@ async function abortReturn(container, returnId) {
|
|
|
221
222
|
.catch(() => undefined);
|
|
222
223
|
});
|
|
223
224
|
}
|
|
224
|
-
function extractPaymentId(order) {
|
|
225
|
-
const collections = Array.isArray(order.payment_collections)
|
|
226
|
-
? order.payment_collections
|
|
227
|
-
: [];
|
|
228
|
-
for (const collection of collections) {
|
|
229
|
-
if (!isRecord(collection))
|
|
230
|
-
continue;
|
|
231
|
-
const payments = Array.isArray(collection.payments) ? collection.payments : [];
|
|
232
|
-
for (const payment of payments) {
|
|
233
|
-
if (!isRecord(payment) || typeof payment.id !== "string")
|
|
234
|
-
continue;
|
|
235
|
-
return payment.id;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return null;
|
|
239
|
-
}
|
|
240
225
|
exports.POS_RETURN_ORDER_FIELDS = [
|
|
241
226
|
"id",
|
|
242
227
|
"status",
|
|
@@ -574,41 +559,89 @@ async function runPosOrderReturn(input) {
|
|
|
574
559
|
};
|
|
575
560
|
}
|
|
576
561
|
}
|
|
577
|
-
const
|
|
578
|
-
|
|
562
|
+
const paymentIds = (0, pos_void_payment_1.extractPosPaymentIds)(order);
|
|
563
|
+
const paymentId = paymentIds[0] ?? null;
|
|
564
|
+
if (!paymentId) {
|
|
565
|
+
return {
|
|
566
|
+
ok: false,
|
|
567
|
+
status: 500,
|
|
568
|
+
body: {
|
|
569
|
+
message: mark_voided
|
|
570
|
+
? "Sale was returned but the order has no payment to void"
|
|
571
|
+
: "Return created but the order has no payment to refund",
|
|
572
|
+
type: mark_voided ? "PAYMENT_VOID_FAILED" : "REFUND_RECORD_FAILED",
|
|
573
|
+
return_id: returnId,
|
|
574
|
+
},
|
|
575
|
+
};
|
|
576
|
+
}
|
|
577
|
+
if (mark_voided) {
|
|
578
|
+
try {
|
|
579
|
+
const paymentModule = req.scope.resolve(utils_1.Modules.PAYMENT);
|
|
580
|
+
await (0, pos_void_payment_1.voidPosCollectedPayments)(paymentModule, paymentIds);
|
|
581
|
+
const knex = req.scope.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
582
|
+
await (0, pos_void_payment_1.zeroPosPaymentAmounts)(knex, paymentIds);
|
|
583
|
+
}
|
|
584
|
+
catch (error) {
|
|
585
|
+
const message = (0, pos_returns_1.getThrownErrorMessage)(error, "Failed to void payment");
|
|
586
|
+
return {
|
|
587
|
+
ok: false,
|
|
588
|
+
status: 500,
|
|
589
|
+
body: {
|
|
590
|
+
message: "Sale was returned but the payment was not voided",
|
|
591
|
+
error: message,
|
|
592
|
+
type: "PAYMENT_VOID_FAILED",
|
|
593
|
+
return_id: returnId,
|
|
594
|
+
},
|
|
595
|
+
};
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
else {
|
|
579
599
|
const noteText = refund_method === "wallet"
|
|
580
600
|
? `POS wallet refund for return ${returnId}`
|
|
581
601
|
: refund_method === "gift_card"
|
|
582
602
|
? `POS gift card ${giftCardPayload && typeof giftCardPayload.code === "string" ? giftCardPayload.code : ""} issued for return ${returnId}`
|
|
583
603
|
: `POS cash refund for return ${returnId}`;
|
|
584
|
-
|
|
585
|
-
.run({
|
|
586
|
-
|
|
604
|
+
try {
|
|
605
|
+
await (0, core_flows_1.refundPaymentWorkflow)(req.scope).run({
|
|
606
|
+
input: {
|
|
607
|
+
payment_id: paymentId,
|
|
608
|
+
amount: refundAmount,
|
|
609
|
+
created_by: actorId,
|
|
610
|
+
note: noteText,
|
|
611
|
+
},
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
catch (error) {
|
|
615
|
+
const message = (0, pos_returns_1.getThrownErrorMessage)(error, "Failed to record refund");
|
|
616
|
+
return {
|
|
617
|
+
ok: false,
|
|
618
|
+
status: 500,
|
|
619
|
+
body: {
|
|
620
|
+
message: "Return created but refund was not recorded",
|
|
621
|
+
error: message,
|
|
622
|
+
type: "REFUND_RECORD_FAILED",
|
|
623
|
+
return_id: returnId,
|
|
624
|
+
},
|
|
625
|
+
};
|
|
626
|
+
}
|
|
627
|
+
try {
|
|
628
|
+
const mappingService = req.scope.resolve(REFUND_PAYMENT_MAPPING_MODULE);
|
|
629
|
+
const details = refund_method === "wallet"
|
|
630
|
+
? `POS wallet refund${refundCustomer?.email ? ` to ${refundCustomer.email}` : ""}`
|
|
631
|
+
: refund_method === "gift_card"
|
|
632
|
+
? `POS gift card issued${giftCardPayload && typeof giftCardPayload.code === "string" ? ` ${giftCardPayload.code}` : ""}`
|
|
633
|
+
: "POS cash refund";
|
|
634
|
+
await mappingService.createMapping({
|
|
635
|
+
return_id: returnId,
|
|
587
636
|
payment_id: paymentId,
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
}
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
const mappingService = req.scope.resolve(REFUND_PAYMENT_MAPPING_MODULE);
|
|
597
|
-
const details = refund_method === "wallet"
|
|
598
|
-
? `POS wallet refund${refundCustomer?.email ? ` to ${refundCustomer.email}` : ""}`
|
|
599
|
-
: refund_method === "gift_card"
|
|
600
|
-
? `POS gift card issued${giftCardPayload && typeof giftCardPayload.code === "string" ? ` ${giftCardPayload.code}` : ""}`
|
|
601
|
-
: "POS cash refund";
|
|
602
|
-
await mappingService.createMapping({
|
|
603
|
-
return_id: returnId,
|
|
604
|
-
payment_id: paymentId,
|
|
605
|
-
refund_mode: "offline",
|
|
606
|
-
details,
|
|
607
|
-
});
|
|
608
|
-
await mappingService.markRefunded(returnId);
|
|
609
|
-
}
|
|
610
|
-
catch {
|
|
611
|
-
// audit-only
|
|
637
|
+
refund_mode: "offline",
|
|
638
|
+
details,
|
|
639
|
+
});
|
|
640
|
+
await mappingService.markRefunded(returnId);
|
|
641
|
+
}
|
|
642
|
+
catch {
|
|
643
|
+
// audit-only
|
|
644
|
+
}
|
|
612
645
|
}
|
|
613
646
|
try {
|
|
614
647
|
const orderModule = req.scope.resolve(utils_1.Modules.ORDER);
|
|
@@ -619,9 +652,16 @@ async function runPosOrderReturn(input) {
|
|
|
619
652
|
prevMeta.pos_void_return_id = returnId;
|
|
620
653
|
}
|
|
621
654
|
if (mark_returned) {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
655
|
+
const returnedQtyThisTime = items.reduce((sum, item) => sum + Math.max(0, Math.floor((0, pos_returns_1.toAmount)(item.quantity))), 0);
|
|
656
|
+
const remainingReturnable = orderItems.reduce((sum, item) => {
|
|
657
|
+
const selected = items.find((selection) => selection.id === item.id)?.quantity ?? 0;
|
|
658
|
+
return sum + Math.max(0, (0, pos_returns_1.getReturnableQuantity)(item) - selected);
|
|
659
|
+
}, 0);
|
|
660
|
+
Object.assign(prevMeta, (0, pos_returns_1.nextPosReturnMetadata)(prevMeta, {
|
|
661
|
+
returnId: returnId,
|
|
662
|
+
returnedQtyThisTime,
|
|
663
|
+
remainingReturnable,
|
|
664
|
+
}));
|
|
625
665
|
}
|
|
626
666
|
if (refund_method === "gift_card" && giftCardPayload) {
|
|
627
667
|
prevMeta.pos_refund_method = "gift_card";
|
|
@@ -676,4 +716,4 @@ async function loadPosReturnOrder(query, orderId) {
|
|
|
676
716
|
.catch(() => ({ data: [] }));
|
|
677
717
|
return data[0] ?? null;
|
|
678
718
|
}
|
|
679
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXBvcy1vcmRlci1yZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9vcmRlcnMvcnVuLXBvcy1vcmRlci1yZXR1cm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUlBLGdDQVNDO0FBT0Qsc0NBUUM7QUFxREQsMENBb0JDO0FBMk1ELDhDQXdjQztBQUVELGdEQVlDO0FBbDRCRCxxREFVNkI7QUFDN0IscURBQThFO0FBRTlFLCtEQWlCc0M7QUFzMkI3QixzR0FwM0JQLG1DQUFxQixPQW8zQk87QUFwMkI5QixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUE7QUFDckMsTUFBTSw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQTtBQXNFOUQsU0FBUyxRQUFRLENBQUMsS0FBYztJQUM5QixPQUFPLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUE7QUFDcEQsQ0FBQztBQVNELFNBQVMsWUFBWSxDQUNuQixNQUE4RDtJQUU5RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFBO0lBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0QsT0FBTyxTQUFTLENBQUE7QUFDbEIsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLEtBQWM7SUFDNUIsT0FBTyxLQUFLLEtBQUssSUFBSSxJ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
|
|
719
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXBvcy1vcmRlci1yZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9vcmRlcnMvcnVuLXBvcy1vcmRlci1yZXR1cm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUlBLGdDQVNDO0FBT0Qsc0NBUUM7QUFxREQsMENBb0JDO0FBNExELDhDQXFnQkM7QUFFRCxnREFZQztBQXQ3QkQscURBVTZCO0FBQzdCLHFEQUE4RTtBQUU5RSwrREFrQnNDO0FBeTVCN0Isc0dBeDZCUCxtQ0FBcUIsT0F3NkJPO0FBeDVCOUIseUVBSTJDO0FBRTNDLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQTtBQUNyQyxNQUFNLDZCQUE2QixHQUFHLHdCQUF3QixDQUFBO0FBc0U5RCxTQUFTLFFBQVEsQ0FBQyxLQUFjO0lBQzlCLE9BQU8sT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQTtBQUNwRCxDQUFDO0FBU0QsU0FBUyxZQUFZLENBQ25CLE1BQThEO0lBRTlELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUE7SUFDNUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN4RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvRCxPQUFPLFNBQVMsQ0FBQTtBQUNsQixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsS0FBYztJQUM1QixPQUFPLEtB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
|
|
@@ -0,0 +1,35 @@
|
|
|
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_daily_report_1 = require("../../../../../utils/pos-daily-report");
|
|
6
|
+
const pos_order_list_1 = require("../../../../../utils/pos-order-list");
|
|
7
|
+
async function GET(req, res) {
|
|
8
|
+
const query = (req.query || {});
|
|
9
|
+
const from = (0, pos_order_list_1.parseIsoDate)(query.from);
|
|
10
|
+
const to = (0, pos_order_list_1.parseIsoDate)(query.to);
|
|
11
|
+
if (!from || !to) {
|
|
12
|
+
res.status(400).json({
|
|
13
|
+
message: "from and to are required",
|
|
14
|
+
type: "INVALID_DATA",
|
|
15
|
+
});
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const knex = req.scope.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
20
|
+
const report = await (0, pos_daily_report_1.loadPosDailyReport)(knex, from, to);
|
|
21
|
+
const csv = (0, pos_daily_report_1.buildDailyReportCsv)(report, new Date().toISOString());
|
|
22
|
+
const filename = `pos-daily-report-${report.days[0]?.date || "period"}.csv`;
|
|
23
|
+
res.setHeader("Content-Type", "text/csv; charset=utf-8");
|
|
24
|
+
res.setHeader("Content-Disposition", `attachment; filename="${filename}"`);
|
|
25
|
+
res.status(200).send(csv);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.error("GET /admin/pos/reports/daily error:", err);
|
|
29
|
+
res.status(500).json({
|
|
30
|
+
message: err instanceof Error ? err.message : "Failed to build daily report",
|
|
31
|
+
type: "POS_DAILY_REPORT_FAILED",
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy9yZXBvcnRzL2RhaWx5L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esa0JBMkJDO0FBL0JELHFEQUFxRTtBQUNyRSw0RUFBK0Y7QUFDL0Ysd0VBQWlGO0FBRTFFLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUMvRCxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFtQyxDQUFBO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLElBQUEsNkJBQVksRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDckMsTUFBTSxFQUFFLEdBQUcsSUFBQSw2QkFBWSxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNqQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxJQUFJLEVBQUUsY0FBYztTQUNyQixDQUFDLENBQUE7UUFDRixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFXLGlDQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2pGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQ0FBa0IsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sR0FBRyxHQUFHLElBQUEsc0NBQW1CLEVBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUNqRSxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksUUFBUSxNQUFNLENBQUE7UUFDM0UsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUMsQ0FBQTtRQUN4RCxHQUFHLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLHlCQUF5QixRQUFRLEdBQUcsQ0FBQyxDQUFBO1FBQzFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUN6RCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCO1lBQzVFLElBQUksRUFBRSx5QkFBeUI7U0FDaEMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.roundMoney = roundMoney;
|
|
4
|
+
exports.classifyRefundNote = classifyRefundNote;
|
|
5
|
+
exports.netCollected = netCollected;
|
|
6
|
+
exports.resolveCollectedAmount = resolveCollectedAmount;
|
|
7
|
+
exports.allocateRefundAcrossLines = allocateRefundAcrossLines;
|
|
8
|
+
exports.emptyRefundsByKind = emptyRefundsByKind;
|
|
9
|
+
exports.sumRefundsByKind = sumRefundsByKind;
|
|
10
|
+
exports.netByDay = netByDay;
|
|
11
|
+
const KINDS = ["cash", "wallet", "gift_card"];
|
|
12
|
+
function roundMoney(value) {
|
|
13
|
+
return Math.round(value * 100) / 100;
|
|
14
|
+
}
|
|
15
|
+
/** POS refund note written by the return route. Website cancels have an empty note. */
|
|
16
|
+
function classifyRefundNote(note) {
|
|
17
|
+
const text = typeof note === "string" ? note.trim().toLowerCase() : "";
|
|
18
|
+
if (text.startsWith("pos wallet refund"))
|
|
19
|
+
return "wallet";
|
|
20
|
+
if (text.startsWith("pos gift card"))
|
|
21
|
+
return "gift_card";
|
|
22
|
+
return "cash";
|
|
23
|
+
}
|
|
24
|
+
function netCollected(collected, refunded) {
|
|
25
|
+
return roundMoney(collected - refunded);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Captured payment when one exists.
|
|
29
|
+
* POS sales with no payment row keep the order payable so older tickets are not dropped.
|
|
30
|
+
* A website cancel that was never captured is not money in.
|
|
31
|
+
*/
|
|
32
|
+
function resolveCollectedAmount(input) {
|
|
33
|
+
if (input.canceled && input.isPos)
|
|
34
|
+
return 0;
|
|
35
|
+
if (input.captured != null && input.captured > 0)
|
|
36
|
+
return roundMoney(input.captured);
|
|
37
|
+
if (!input.isPos && input.canceled)
|
|
38
|
+
return 0;
|
|
39
|
+
return roundMoney(Math.max(0, input.fallback));
|
|
40
|
+
}
|
|
41
|
+
/** Split a refund across lines. The last line absorbs rounding so the parts sum to the refund. */
|
|
42
|
+
function allocateRefundAcrossLines(amount, lines) {
|
|
43
|
+
if (lines.length === 0 || amount === 0)
|
|
44
|
+
return [];
|
|
45
|
+
const total = lines.reduce((sum, line) => sum + Math.max(0, line.weight), 0);
|
|
46
|
+
if (total <= 0) {
|
|
47
|
+
return lines.map((line, index) => ({
|
|
48
|
+
key: line.key,
|
|
49
|
+
amount: index === 0 ? roundMoney(amount) : 0,
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
let assigned = 0;
|
|
53
|
+
return lines.map((line, index) => {
|
|
54
|
+
if (index === lines.length - 1) {
|
|
55
|
+
return { key: line.key, amount: roundMoney(amount - assigned) };
|
|
56
|
+
}
|
|
57
|
+
const share = roundMoney((amount * Math.max(0, line.weight)) / total);
|
|
58
|
+
assigned = roundMoney(assigned + share);
|
|
59
|
+
return { key: line.key, amount: share };
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function emptyRefundsByKind() {
|
|
63
|
+
return { cash: 0, wallet: 0, gift_card: 0 };
|
|
64
|
+
}
|
|
65
|
+
function sumRefundsByKind(refunds) {
|
|
66
|
+
const totals = emptyRefundsByKind();
|
|
67
|
+
for (const refund of refunds) {
|
|
68
|
+
if (!KINDS.includes(refund.kind))
|
|
69
|
+
continue;
|
|
70
|
+
totals[refund.kind] = roundMoney(totals[refund.kind] + refund.amount);
|
|
71
|
+
}
|
|
72
|
+
return totals;
|
|
73
|
+
}
|
|
74
|
+
/** Collected on the sale day, refunds on the refund day. */
|
|
75
|
+
function netByDay(input) {
|
|
76
|
+
const days = new Map();
|
|
77
|
+
const bucket = (day) => {
|
|
78
|
+
const current = days.get(day) ?? { collected: 0, refunded: 0 };
|
|
79
|
+
days.set(day, current);
|
|
80
|
+
return current;
|
|
81
|
+
};
|
|
82
|
+
for (const row of input.collected) {
|
|
83
|
+
bucket(row.day).collected = roundMoney(bucket(row.day).collected + row.amount);
|
|
84
|
+
}
|
|
85
|
+
for (const row of input.refunds) {
|
|
86
|
+
bucket(row.day).refunded = roundMoney(bucket(row.day).refunded + row.amount);
|
|
87
|
+
}
|
|
88
|
+
return [...days.entries()]
|
|
89
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
90
|
+
.map(([day, row]) => ({
|
|
91
|
+
day,
|
|
92
|
+
collected: row.collected,
|
|
93
|
+
refunded: row.refunded,
|
|
94
|
+
net: netCollected(row.collected, row.refunded),
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1yZWZ1bmQtbW9uZXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcGF5bWVudC1yZWZ1bmQtbW9uZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsZ0NBRUM7QUFHRCxnREFLQztBQUVELG9DQUVDO0FBT0Qsd0RBS0M7QUFHRCw4REFxQkM7QUFFRCxnREFFQztBQUVELDRDQVNDO0FBVUQsNEJBd0JDO0FBckdELE1BQU0sS0FBSyxHQUFpQixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUE7QUFFM0QsU0FBZ0IsVUFBVSxDQUFDLEtBQWE7SUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUE7QUFDdEMsQ0FBQztBQUVELHVGQUF1RjtBQUN2RixTQUFnQixrQkFBa0IsQ0FBQyxJQUFhO0lBQzlDLE1BQU0sSUFBSSxHQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDdEUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDO1FBQUUsT0FBTyxRQUFRLENBQUE7SUFDekQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUFFLE9BQU8sV0FBVyxDQUFBO0lBQ3hELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVELFNBQWdCLFlBQVksQ0FBQyxTQUFpQixFQUFFLFFBQWdCO0lBQzlELE9BQU8sVUFBVSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQTtBQUN6QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLEtBQTJCO0lBQ2hFLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsS0FBSztR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
|