@lodashventure/medusa-quotation 1.5.18 → 1.5.22
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/quote-store/quote-seq/[id]/route.js +133 -0
- package/.medusa/server/src/api/admin/quote-store/quote-seq/route.js +77 -0
- package/.medusa/server/src/api/store/customers/me/quotes/[id]/download/route.js +28 -19
- package/package.json +1 -1
- package/.medusa/server/src/api/admin/quote-seq/[id]/route.js +0 -133
- package/.medusa/server/src/api/admin/quote-seq/route.js +0 -77
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PUT = PUT;
|
|
4
|
+
exports.GET = GET;
|
|
5
|
+
exports.DELETE = DELETE;
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const quote_1 = require("../../../../../modules/quote");
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
// Validation schema for updating quote sequence
|
|
10
|
+
const updateQuoteSeqSchema = zod_1.z.object({
|
|
11
|
+
start_at: zod_1.z.coerce.date().optional(),
|
|
12
|
+
end_at: zod_1.z.coerce.date().optional(),
|
|
13
|
+
next_seq: zod_1.z.number().min(1, "Next sequence must be at least 1").optional(),
|
|
14
|
+
});
|
|
15
|
+
// PUT /admin/quote-seq/:id - Update specific quote sequence
|
|
16
|
+
async function PUT(req, res) {
|
|
17
|
+
try {
|
|
18
|
+
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
19
|
+
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
20
|
+
const { id } = req.params;
|
|
21
|
+
if (!id) {
|
|
22
|
+
return res.status(400).json({ message: "Sequence ID is required" });
|
|
23
|
+
}
|
|
24
|
+
// Validate request body
|
|
25
|
+
const validationResult = updateQuoteSeqSchema.safeParse(req.body);
|
|
26
|
+
if (!validationResult.success) {
|
|
27
|
+
return res.status(400).json({
|
|
28
|
+
message: "Validation error",
|
|
29
|
+
errors: validationResult.error.issues,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const updateData = validationResult.data;
|
|
33
|
+
// Get the current store ID
|
|
34
|
+
const stores = await storeService.listStores();
|
|
35
|
+
if (!stores.length) {
|
|
36
|
+
return res.status(404).json({ message: "No store found" });
|
|
37
|
+
}
|
|
38
|
+
const storeId = stores[0].id;
|
|
39
|
+
// Find existing sequence to verify it exists and belongs to the store
|
|
40
|
+
const existingSequences = await quoteModuleService.listQuoteSeqs({
|
|
41
|
+
id,
|
|
42
|
+
store_id: storeId,
|
|
43
|
+
});
|
|
44
|
+
if (existingSequences.length === 0) {
|
|
45
|
+
return res.status(404).json({
|
|
46
|
+
message: "Quote sequence not found",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// Use the service method that handles validation (including overlap checking)
|
|
50
|
+
const updatedSequence = await quoteModuleService.updateQuoteSequenceWithValidation(id, updateData);
|
|
51
|
+
return res.json({ quote_sequence: updatedSequence });
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error("Error updating quote sequence:", error);
|
|
55
|
+
return res.status(500).json({
|
|
56
|
+
message: error instanceof Error ? error.message : "Unknown error",
|
|
57
|
+
error: "Internal server error",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// GET /admin/quote-seq/:id - Get specific quote sequence
|
|
62
|
+
async function GET(req, res) {
|
|
63
|
+
try {
|
|
64
|
+
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
65
|
+
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
66
|
+
const { id } = req.params;
|
|
67
|
+
if (!id) {
|
|
68
|
+
return res.status(400).json({ message: "Sequence ID is required" });
|
|
69
|
+
}
|
|
70
|
+
// Get the current store ID
|
|
71
|
+
const stores = await storeService.listStores();
|
|
72
|
+
if (!stores.length) {
|
|
73
|
+
return res.status(404).json({ message: "No store found" });
|
|
74
|
+
}
|
|
75
|
+
const storeId = stores[0].id;
|
|
76
|
+
// Find the specific sequence
|
|
77
|
+
const sequences = await quoteModuleService.listQuoteSeqs({
|
|
78
|
+
id,
|
|
79
|
+
store_id: storeId,
|
|
80
|
+
});
|
|
81
|
+
if (sequences.length === 0) {
|
|
82
|
+
return res.status(404).json({
|
|
83
|
+
message: "Quote sequence not found",
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return res.json({ quote_sequence: sequences[0] });
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
console.error("Error fetching quote sequence:", error);
|
|
90
|
+
return res.status(500).json({
|
|
91
|
+
message: "Internal server error",
|
|
92
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// DELETE /admin/quote-seq/:id - Delete specific quote sequence
|
|
97
|
+
async function DELETE(req, res) {
|
|
98
|
+
try {
|
|
99
|
+
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
100
|
+
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
101
|
+
const { id } = req.params;
|
|
102
|
+
if (!id) {
|
|
103
|
+
return res.status(400).json({ message: "Sequence ID is required" });
|
|
104
|
+
}
|
|
105
|
+
// Get the current store ID
|
|
106
|
+
const stores = await storeService.listStores();
|
|
107
|
+
if (!stores.length) {
|
|
108
|
+
return res.status(404).json({ message: "No store found" });
|
|
109
|
+
}
|
|
110
|
+
const storeId = stores[0].id;
|
|
111
|
+
// Find existing sequence to verify it exists and belongs to the store
|
|
112
|
+
const existingSequences = await quoteModuleService.listQuoteSeqs({
|
|
113
|
+
id,
|
|
114
|
+
store_id: storeId,
|
|
115
|
+
});
|
|
116
|
+
if (existingSequences.length === 0) {
|
|
117
|
+
return res.status(404).json({
|
|
118
|
+
message: "Quote sequence not found",
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
// Delete the sequence
|
|
122
|
+
await quoteModuleService.deleteQuoteSeqs([id]);
|
|
123
|
+
return res.status(204).send();
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
console.error("Error deleting quote sequence:", error);
|
|
127
|
+
return res.status(500).json({
|
|
128
|
+
message: error instanceof Error ? error.message : "Unknown error",
|
|
129
|
+
error: "Internal server error",
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3F1b3RlLXN0b3JlL3F1b3RlLXNlcS9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLGtCQTJEQztBQUdELGtCQXlDQztBQUdELHdCQTRDQztBQW5LRCxxREFBb0Q7QUFDcEQsd0RBQTREO0FBRTVELDZCQUF3QjtBQUV4QixnREFBZ0Q7QUFDaEQsTUFBTSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzNFLENBQUMsQ0FBQztBQUVILDREQUE0RDtBQUNyRCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBcUIsb0JBQVksQ0FBQyxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUUxQixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFF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
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.POST = POST;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const quote_1 = require("../../../../modules/quote");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
// Validation schemas
|
|
9
|
+
const createQuoteSeqSchema = zod_1.z.object({
|
|
10
|
+
start_at: zod_1.z.coerce.date().optional(),
|
|
11
|
+
end_at: zod_1.z.coerce.date().optional(),
|
|
12
|
+
next_seq: zod_1.z
|
|
13
|
+
.number()
|
|
14
|
+
.min(1, "Next sequence must be at least 1")
|
|
15
|
+
.optional()
|
|
16
|
+
.default(1),
|
|
17
|
+
config: zod_1.z.string().min(1, "Config reference is required"),
|
|
18
|
+
});
|
|
19
|
+
// GET /admin/quote-seq - Get quote sequences for current store
|
|
20
|
+
async function GET(req, res) {
|
|
21
|
+
try {
|
|
22
|
+
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
23
|
+
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
24
|
+
// Get the current store ID
|
|
25
|
+
const stores = await storeService.listStores();
|
|
26
|
+
if (!stores.length) {
|
|
27
|
+
return res.status(404).json({ message: "No store found" });
|
|
28
|
+
}
|
|
29
|
+
const storeId = stores[0].id;
|
|
30
|
+
const sequences = await quoteModuleService.listQuoteSeqs({
|
|
31
|
+
store_id: storeId,
|
|
32
|
+
});
|
|
33
|
+
return res.json({ quote_sequences: sequences });
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error("Error fetching quote sequences:", error);
|
|
37
|
+
return res.status(500).json({
|
|
38
|
+
error: "Internal server error",
|
|
39
|
+
message: error instanceof Error ? error.message : "Unknown error",
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// POST /admin/quote-seq - Create quote sequence
|
|
44
|
+
async function POST(req, res) {
|
|
45
|
+
try {
|
|
46
|
+
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
47
|
+
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
48
|
+
// Validate request body
|
|
49
|
+
const validationResult = createQuoteSeqSchema.safeParse(req.body);
|
|
50
|
+
if (!validationResult.success) {
|
|
51
|
+
return res.status(400).json({
|
|
52
|
+
message: "Validation error",
|
|
53
|
+
errors: validationResult.error.issues,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const { start_at, end_at, next_seq, config } = validationResult.data;
|
|
57
|
+
// Get the current store ID
|
|
58
|
+
const stores = await storeService.listStores();
|
|
59
|
+
if (!stores.length) {
|
|
60
|
+
return res.status(404).json({ message: "No store found" });
|
|
61
|
+
}
|
|
62
|
+
const storeId = stores[0].id;
|
|
63
|
+
// Use the service method that handles date generation and validation
|
|
64
|
+
const sequence = await quoteModuleService.createQuoteSequenceForConfig(storeId, config, start_at, // Optional - will auto-generate if not provided
|
|
65
|
+
end_at, // Optional - will auto-generate if not provided
|
|
66
|
+
next_seq || 1);
|
|
67
|
+
return res.status(201).json({ quote_sequence: sequence[0] });
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
console.error("Error creating quote sequence:", error);
|
|
71
|
+
return res.status(500).json({
|
|
72
|
+
message: error instanceof Error ? error.message : "Unknown error",
|
|
73
|
+
error: "Internal server error",
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3F1b3RlLXN0b3JlL3F1b3RlLXNlcS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNCQSxrQkE0QkM7QUFHRCxvQkE0Q0M7QUE3RkQscURBQW9EO0FBQ3BELHFEQUF5RDtBQUV6RCw2QkFBd0I7QUFFeEIscUJBQXFCO0FBQ3JCLE1BQU0sb0JBQW9CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxPQUFDO1NBQ1IsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQztTQUMxQyxRQUFRLEVBQUU7U0FDVixPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2IsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLDhCQUE4QixDQUFDO0NBQzFELENBQUMsQ0FBQztBQUVILCtEQUErRDtBQUN4RCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBcUIsb0JBQVksQ0FBQyxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCwyQkFBMkI7UUFDM0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0s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
|
|
@@ -4,11 +4,25 @@ exports.GET = void 0;
|
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const quote_1 = require("../../../../../../../modules/quote");
|
|
6
6
|
const generate_quote_pdf_1 = require("../../../../../../../utils/generate-quote-pdf");
|
|
7
|
+
const normalizeAmount = (value) => {
|
|
8
|
+
const normalized = Number(value);
|
|
9
|
+
return Number.isFinite(normalized) ? normalized : null;
|
|
10
|
+
};
|
|
11
|
+
const pickAmount = (...values) => {
|
|
12
|
+
for (const value of values) {
|
|
13
|
+
const normalized = normalizeAmount(value);
|
|
14
|
+
if (normalized !== null) {
|
|
15
|
+
return normalized;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
};
|
|
7
20
|
const formatCurrency = (amount, currency) => {
|
|
8
|
-
|
|
21
|
+
const normalizedAmount = normalizeAmount(amount);
|
|
22
|
+
if (normalizedAmount === null) {
|
|
9
23
|
return "-";
|
|
10
24
|
}
|
|
11
|
-
const normalized =
|
|
25
|
+
const normalized = normalizedAmount / 100;
|
|
12
26
|
try {
|
|
13
27
|
return new Intl.NumberFormat("th-TH", {
|
|
14
28
|
style: "currency",
|
|
@@ -59,29 +73,25 @@ const extractItems = (quote, currency) => {
|
|
|
59
73
|
item?.subtotal ??
|
|
60
74
|
item?.total ??
|
|
61
75
|
0;
|
|
62
|
-
const
|
|
76
|
+
const normalizedUnitPrice = normalizeAmount(unitPrice) ?? 0;
|
|
77
|
+
const normalizedQty = normalizeAmount(qty) ?? 1;
|
|
78
|
+
const totalPrice = pickAmount(item?.total, normalizedUnitPrice * normalizedQty) ?? 0;
|
|
63
79
|
return {
|
|
64
80
|
code,
|
|
65
81
|
description,
|
|
66
|
-
qty,
|
|
67
|
-
price: formatCurrency(
|
|
82
|
+
qty: normalizedQty,
|
|
83
|
+
price: formatCurrency(normalizedUnitPrice, currency),
|
|
68
84
|
total: formatCurrency(totalPrice, currency),
|
|
69
85
|
};
|
|
70
86
|
});
|
|
71
87
|
};
|
|
72
88
|
const extractTotals = (quote, currency) => {
|
|
73
89
|
const summary = quote?.draft_order?.summary ?? {};
|
|
74
|
-
const subtotal = summary.current_subtotal ??
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const discount = summary.current_discount_total ??
|
|
80
|
-
quote?.draft_order?.discount_total ??
|
|
81
|
-
0;
|
|
82
|
-
const total = summary.current_total ?? quote?.draft_order?.total ?? subtotal - discount;
|
|
83
|
-
const vat = summary.current_tax_total ?? quote?.draft_order?.tax_total ?? 0;
|
|
84
|
-
const totalDue = summary.current_total ?? quote?.draft_order?.total ?? total;
|
|
90
|
+
const subtotal = pickAmount(summary.current_subtotal, summary.current_items_total, quote?.draft_order?.item_total, quote?.draft_order?.subtotal) ?? 0;
|
|
91
|
+
const discount = pickAmount(summary.current_discount_total, quote?.draft_order?.discount_total) ?? 0;
|
|
92
|
+
const total = pickAmount(summary.current_total, quote?.draft_order?.total, subtotal - discount) ?? 0;
|
|
93
|
+
const vat = pickAmount(summary.current_tax_total, quote?.draft_order?.tax_total) ?? 0;
|
|
94
|
+
const totalDue = pickAmount(summary.current_total, quote?.draft_order?.total, total) ?? 0;
|
|
85
95
|
const vatRate = subtotal > 0 && vat > 0
|
|
86
96
|
? `${((vat / subtotal) * 100).toFixed(2)}%`
|
|
87
97
|
: "-";
|
|
@@ -116,8 +126,7 @@ const formatQuoteDate = (value) => {
|
|
|
116
126
|
};
|
|
117
127
|
const buildPdfPayload = (quote, store) => {
|
|
118
128
|
const currency = quote?.draft_order?.currency_code || "THB";
|
|
119
|
-
const amountDue = quote?.draft_order?.summary?.current_total
|
|
120
|
-
quote?.draft_order?.total;
|
|
129
|
+
const amountDue = pickAmount(quote?.draft_order?.summary?.current_total, quote?.draft_order?.total);
|
|
121
130
|
return {
|
|
122
131
|
companyInfo: {
|
|
123
132
|
name: store?.name || "",
|
|
@@ -174,4 +183,4 @@ const GET = async (req, res) => {
|
|
|
174
183
|
return res.send(pdfBuffer);
|
|
175
184
|
};
|
|
176
185
|
exports.GET = GET;
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9xdW90ZXMvW2lkXS9kb3dubG9hZC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBK0U7QUFDL0UsOERBQWtFO0FBRWxFLHNGQUFpRjtBQUdqRixNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWUsRUFBaUIsRUFBRTtJQUN6RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN6RCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsTUFBaUIsRUFBRSxFQUFFO0lBQzFDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQWdCLEVBQUUsUUFBaUIsRUFBRSxFQUFFO0lBQzdELE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRWpELElBQUksZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0lBRTFDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxJQUFJLENBQUMs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
|
package/package.json
CHANGED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PUT = PUT;
|
|
4
|
-
exports.GET = GET;
|
|
5
|
-
exports.DELETE = DELETE;
|
|
6
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
-
const quote_1 = require("../../../../modules/quote");
|
|
8
|
-
const zod_1 = require("zod");
|
|
9
|
-
// Validation schema for updating quote sequence
|
|
10
|
-
const updateQuoteSeqSchema = zod_1.z.object({
|
|
11
|
-
start_at: zod_1.z.coerce.date().optional(),
|
|
12
|
-
end_at: zod_1.z.coerce.date().optional(),
|
|
13
|
-
next_seq: zod_1.z.number().min(1, "Next sequence must be at least 1").optional(),
|
|
14
|
-
});
|
|
15
|
-
// PUT /admin/quote-seq/:id - Update specific quote sequence
|
|
16
|
-
async function PUT(req, res) {
|
|
17
|
-
try {
|
|
18
|
-
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
19
|
-
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
20
|
-
const { id } = req.params;
|
|
21
|
-
if (!id) {
|
|
22
|
-
return res.status(400).json({ message: "Sequence ID is required" });
|
|
23
|
-
}
|
|
24
|
-
// Validate request body
|
|
25
|
-
const validationResult = updateQuoteSeqSchema.safeParse(req.body);
|
|
26
|
-
if (!validationResult.success) {
|
|
27
|
-
return res.status(400).json({
|
|
28
|
-
message: "Validation error",
|
|
29
|
-
errors: validationResult.error.issues,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const updateData = validationResult.data;
|
|
33
|
-
// Get the current store ID
|
|
34
|
-
const stores = await storeService.listStores();
|
|
35
|
-
if (!stores.length) {
|
|
36
|
-
return res.status(404).json({ message: "No store found" });
|
|
37
|
-
}
|
|
38
|
-
const storeId = stores[0].id;
|
|
39
|
-
// Find existing sequence to verify it exists and belongs to the store
|
|
40
|
-
const existingSequences = await quoteModuleService.listQuoteSeqs({
|
|
41
|
-
id,
|
|
42
|
-
store_id: storeId,
|
|
43
|
-
});
|
|
44
|
-
if (existingSequences.length === 0) {
|
|
45
|
-
return res.status(404).json({
|
|
46
|
-
message: "Quote sequence not found",
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
// Use the service method that handles validation (including overlap checking)
|
|
50
|
-
const updatedSequence = await quoteModuleService.updateQuoteSequenceWithValidation(id, updateData);
|
|
51
|
-
return res.json({ quote_sequence: updatedSequence });
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
console.error("Error updating quote sequence:", error);
|
|
55
|
-
return res.status(500).json({
|
|
56
|
-
message: error instanceof Error ? error.message : "Unknown error",
|
|
57
|
-
error: "Internal server error",
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// GET /admin/quote-seq/:id - Get specific quote sequence
|
|
62
|
-
async function GET(req, res) {
|
|
63
|
-
try {
|
|
64
|
-
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
65
|
-
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
66
|
-
const { id } = req.params;
|
|
67
|
-
if (!id) {
|
|
68
|
-
return res.status(400).json({ message: "Sequence ID is required" });
|
|
69
|
-
}
|
|
70
|
-
// Get the current store ID
|
|
71
|
-
const stores = await storeService.listStores();
|
|
72
|
-
if (!stores.length) {
|
|
73
|
-
return res.status(404).json({ message: "No store found" });
|
|
74
|
-
}
|
|
75
|
-
const storeId = stores[0].id;
|
|
76
|
-
// Find the specific sequence
|
|
77
|
-
const sequences = await quoteModuleService.listQuoteSeqs({
|
|
78
|
-
id,
|
|
79
|
-
store_id: storeId,
|
|
80
|
-
});
|
|
81
|
-
if (sequences.length === 0) {
|
|
82
|
-
return res.status(404).json({
|
|
83
|
-
message: "Quote sequence not found",
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
return res.json({ quote_sequence: sequences[0] });
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
console.error("Error fetching quote sequence:", error);
|
|
90
|
-
return res.status(500).json({
|
|
91
|
-
message: "Internal server error",
|
|
92
|
-
error: error instanceof Error ? error.message : "Unknown error",
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// DELETE /admin/quote-seq/:id - Delete specific quote sequence
|
|
97
|
-
async function DELETE(req, res) {
|
|
98
|
-
try {
|
|
99
|
-
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
100
|
-
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
101
|
-
const { id } = req.params;
|
|
102
|
-
if (!id) {
|
|
103
|
-
return res.status(400).json({ message: "Sequence ID is required" });
|
|
104
|
-
}
|
|
105
|
-
// Get the current store ID
|
|
106
|
-
const stores = await storeService.listStores();
|
|
107
|
-
if (!stores.length) {
|
|
108
|
-
return res.status(404).json({ message: "No store found" });
|
|
109
|
-
}
|
|
110
|
-
const storeId = stores[0].id;
|
|
111
|
-
// Find existing sequence to verify it exists and belongs to the store
|
|
112
|
-
const existingSequences = await quoteModuleService.listQuoteSeqs({
|
|
113
|
-
id,
|
|
114
|
-
store_id: storeId,
|
|
115
|
-
});
|
|
116
|
-
if (existingSequences.length === 0) {
|
|
117
|
-
return res.status(404).json({
|
|
118
|
-
message: "Quote sequence not found",
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
// Delete the sequence
|
|
122
|
-
await quoteModuleService.deleteQuoteSeqs([id]);
|
|
123
|
-
return res.status(204).send();
|
|
124
|
-
}
|
|
125
|
-
catch (error) {
|
|
126
|
-
console.error("Error deleting quote sequence:", error);
|
|
127
|
-
return res.status(500).json({
|
|
128
|
-
message: error instanceof Error ? error.message : "Unknown error",
|
|
129
|
-
error: "Internal server error",
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3F1b3RlLXNlcS9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLGtCQTJEQztBQUdELGtCQXlDQztBQUdELHdCQTRDQztBQW5LRCxxREFBb0Q7QUFDcEQscURBQXlEO0FBRXpELDZCQUF3QjtBQUV4QixnREFBZ0Q7QUFDaEQsTUFBTSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzNFLENBQUMsQ0FBQztBQUVILDREQUE0RDtBQUNyRCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBcUIsb0JBQVksQ0FBQyxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUUxQixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUN0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
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GET = GET;
|
|
4
|
-
exports.POST = POST;
|
|
5
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
-
const quote_1 = require("../../../modules/quote");
|
|
7
|
-
const zod_1 = require("zod");
|
|
8
|
-
// Validation schemas
|
|
9
|
-
const createQuoteSeqSchema = zod_1.z.object({
|
|
10
|
-
start_at: zod_1.z.coerce.date().optional(),
|
|
11
|
-
end_at: zod_1.z.coerce.date().optional(),
|
|
12
|
-
next_seq: zod_1.z
|
|
13
|
-
.number()
|
|
14
|
-
.min(1, "Next sequence must be at least 1")
|
|
15
|
-
.optional()
|
|
16
|
-
.default(1),
|
|
17
|
-
config: zod_1.z.string().min(1, "Config reference is required"),
|
|
18
|
-
});
|
|
19
|
-
// GET /admin/quote-seq - Get quote sequences for current store
|
|
20
|
-
async function GET(req, res) {
|
|
21
|
-
try {
|
|
22
|
-
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
23
|
-
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
24
|
-
// Get the current store ID
|
|
25
|
-
const stores = await storeService.listStores();
|
|
26
|
-
if (!stores.length) {
|
|
27
|
-
return res.status(404).json({ message: "No store found" });
|
|
28
|
-
}
|
|
29
|
-
const storeId = stores[0].id;
|
|
30
|
-
const sequences = await quoteModuleService.listQuoteSeqs({
|
|
31
|
-
store_id: storeId,
|
|
32
|
-
});
|
|
33
|
-
return res.json({ quote_sequences: sequences });
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
console.error("Error fetching quote sequences:", error);
|
|
37
|
-
return res.status(500).json({
|
|
38
|
-
error: "Internal server error",
|
|
39
|
-
message: error instanceof Error ? error.message : "Unknown error",
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// POST /admin/quote-seq - Create quote sequence
|
|
44
|
-
async function POST(req, res) {
|
|
45
|
-
try {
|
|
46
|
-
const quoteModuleService = req.scope.resolve(quote_1.QUOTE_MODULE);
|
|
47
|
-
const storeService = req.scope.resolve(utils_1.Modules.STORE);
|
|
48
|
-
// Validate request body
|
|
49
|
-
const validationResult = createQuoteSeqSchema.safeParse(req.body);
|
|
50
|
-
if (!validationResult.success) {
|
|
51
|
-
return res.status(400).json({
|
|
52
|
-
message: "Validation error",
|
|
53
|
-
errors: validationResult.error.issues,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
const { start_at, end_at, next_seq, config } = validationResult.data;
|
|
57
|
-
// Get the current store ID
|
|
58
|
-
const stores = await storeService.listStores();
|
|
59
|
-
if (!stores.length) {
|
|
60
|
-
return res.status(404).json({ message: "No store found" });
|
|
61
|
-
}
|
|
62
|
-
const storeId = stores[0].id;
|
|
63
|
-
// Use the service method that handles date generation and validation
|
|
64
|
-
const sequence = await quoteModuleService.createQuoteSequenceForConfig(storeId, config, start_at, // Optional - will auto-generate if not provided
|
|
65
|
-
end_at, // Optional - will auto-generate if not provided
|
|
66
|
-
next_seq || 1);
|
|
67
|
-
return res.status(201).json({ quote_sequence: sequence[0] });
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
console.error("Error creating quote sequence:", error);
|
|
71
|
-
return res.status(500).json({
|
|
72
|
-
message: error instanceof Error ? error.message : "Unknown error",
|
|
73
|
-
error: "Internal server error",
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3F1b3RlLXNlcS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNCQSxrQkE0QkM7QUFHRCxvQkE0Q0M7QUE3RkQscURBQW9EO0FBQ3BELGtEQUFzRDtBQUV0RCw2QkFBd0I7QUFFeEIscUJBQXFCO0FBQ3JCLE1BQU0sb0JBQW9CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxPQUFDO1NBQ1IsTUFBTSxFQUFFO1NBQ1IsR0FBRyxDQUFDLENBQUMsRUFBRSxrQ0FBa0MsQ0FBQztTQUMxQyxRQUFRLEVBQUU7U0FDVixPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2IsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLDhCQUE4QixDQUFDO0NBQzFELENBQUMsQ0FBQztBQUVILCtEQUErRDtBQUN4RCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBcUIsb0JBQVksQ0FBQyxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCwyQkFBMkI7UUFDM0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUs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
|