@devx-retailos/cms 0.0.1
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/admin/index.js +23 -0
- package/.medusa/server/src/admin/index.mjs +24 -0
- package/.medusa/server/src/api/admin/retailos/cms/accumulation/[storeId]/route.js +34 -0
- package/.medusa/server/src/api/admin/retailos/cms/export/route.js +52 -0
- package/.medusa/server/src/api/admin/retailos/cms/handovers/[id]/route.js +35 -0
- package/.medusa/server/src/api/admin/retailos/cms/handovers/route.js +78 -0
- package/.medusa/server/src/api/admin/retailos/cms/operation/route.js +124 -0
- package/.medusa/server/src/api/admin/retailos/cms/petty-cash/route.js +31 -0
- package/.medusa/server/src/api/admin/retailos/cms/shift-logs/route.js +36 -0
- package/.medusa/server/src/links/employee-to-cms-handover.js +13 -0
- package/.medusa/server/src/links/store-to-cms-handover.js +13 -0
- package/.medusa/server/src/modules/cms/constants.js +5 -0
- package/.medusa/server/src/modules/cms/index.js +53 -0
- package/.medusa/server/src/modules/cms/migrations/Migration20260622000000.js +30 -0
- package/.medusa/server/src/modules/cms/migrations/Migration20260622000001.js +16 -0
- package/.medusa/server/src/modules/cms/models/cms-accumulation.js +11 -0
- package/.medusa/server/src/modules/cms/models/cms-handover.js +17 -0
- package/.medusa/server/src/modules/cms/models/index.js +15 -0
- package/.medusa/server/src/modules/cms/models/petty-cash-transaction.js +24 -0
- package/.medusa/server/src/modules/cms/models/petty-cash.js +11 -0
- package/.medusa/server/src/modules/cms/permissions.js +36 -0
- package/.medusa/server/src/modules/cms/services/cms-module-service.js +210 -0
- package/.medusa/server/src/modules/cms/services/index.js +9 -0
- package/README.md +155 -0
- package/package.json +60 -0
- package/src/admin/.gitkeep +0 -0
- package/src/api/admin/retailos/cms/accumulation/[storeId]/__tests__/route.test.ts +68 -0
- package/src/api/admin/retailos/cms/accumulation/[storeId]/route.ts +35 -0
- package/src/api/admin/retailos/cms/export/__tests__/route.test.ts +126 -0
- package/src/api/admin/retailos/cms/export/route.ts +58 -0
- package/src/api/admin/retailos/cms/handovers/[id]/__tests__/route.test.ts +68 -0
- package/src/api/admin/retailos/cms/handovers/[id]/route.ts +36 -0
- package/src/api/admin/retailos/cms/handovers/__tests__/route.test.ts +104 -0
- package/src/api/admin/retailos/cms/handovers/route.ts +79 -0
- package/src/api/admin/retailos/cms/operation/__tests__/route.test.ts +169 -0
- package/src/api/admin/retailos/cms/operation/route.ts +130 -0
- package/src/api/admin/retailos/cms/petty-cash/__tests__/route.test.ts +73 -0
- package/src/api/admin/retailos/cms/petty-cash/route.ts +35 -0
- package/src/api/admin/retailos/cms/shift-logs/__tests__/route.test.ts +77 -0
- package/src/api/admin/retailos/cms/shift-logs/route.ts +38 -0
- package/src/links/employee-to-cms-handover.ts +11 -0
- package/src/links/store-to-cms-handover.ts +11 -0
- package/src/modules/cms/__tests__/cms-module-service.test.ts +333 -0
- package/src/modules/cms/__tests__/permissions.test.ts +36 -0
- package/src/modules/cms/constants.ts +1 -0
- package/src/modules/cms/index.ts +24 -0
- package/src/modules/cms/migrations/Migration20260622000000.ts +58 -0
- package/src/modules/cms/migrations/Migration20260622000001.ts +17 -0
- package/src/modules/cms/models/cms-accumulation.ts +10 -0
- package/src/modules/cms/models/cms-handover.ts +16 -0
- package/src/modules/cms/models/index.ts +4 -0
- package/src/modules/cms/models/petty-cash-transaction.ts +23 -0
- package/src/modules/cms/models/petty-cash.ts +10 -0
- package/src/modules/cms/permissions.ts +34 -0
- package/src/modules/cms/services/cms-module-service.ts +284 -0
- package/src/modules/cms/services/index.ts +13 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
require("@medusajs/admin-shared");
|
|
3
|
+
const widgetModule = { widgets: [] };
|
|
4
|
+
const routeModule = {
|
|
5
|
+
routes: []
|
|
6
|
+
};
|
|
7
|
+
const menuItemModule = {
|
|
8
|
+
menuItems: []
|
|
9
|
+
};
|
|
10
|
+
const formModule = { customFields: {} };
|
|
11
|
+
const displayModule = {
|
|
12
|
+
displays: {}
|
|
13
|
+
};
|
|
14
|
+
const i18nModule = { resources: {} };
|
|
15
|
+
const plugin = {
|
|
16
|
+
widgetModule,
|
|
17
|
+
routeModule,
|
|
18
|
+
menuItemModule,
|
|
19
|
+
formModule,
|
|
20
|
+
displayModule,
|
|
21
|
+
i18nModule
|
|
22
|
+
};
|
|
23
|
+
module.exports = plugin;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import "@medusajs/admin-shared";
|
|
2
|
+
const widgetModule = { widgets: [] };
|
|
3
|
+
const routeModule = {
|
|
4
|
+
routes: []
|
|
5
|
+
};
|
|
6
|
+
const menuItemModule = {
|
|
7
|
+
menuItems: []
|
|
8
|
+
};
|
|
9
|
+
const formModule = { customFields: {} };
|
|
10
|
+
const displayModule = {
|
|
11
|
+
displays: {}
|
|
12
|
+
};
|
|
13
|
+
const i18nModule = { resources: {} };
|
|
14
|
+
const plugin = {
|
|
15
|
+
widgetModule,
|
|
16
|
+
routeModule,
|
|
17
|
+
menuItemModule,
|
|
18
|
+
formModule,
|
|
19
|
+
displayModule,
|
|
20
|
+
i18nModule
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
plugin as default
|
|
24
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const constants_1 = require("../../../../../../modules/cms/constants");
|
|
5
|
+
function getService(req) {
|
|
6
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
7
|
+
}
|
|
8
|
+
function getLogger(req) {
|
|
9
|
+
try {
|
|
10
|
+
return req.scope.resolve("logger");
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const GET = async (req, res) => {
|
|
17
|
+
const { storeId } = req.params;
|
|
18
|
+
try {
|
|
19
|
+
const service = getService(req);
|
|
20
|
+
const accumulation = await service.getAccumulation(storeId);
|
|
21
|
+
return res.status(200).json({
|
|
22
|
+
accumulation: accumulation ?? { store_id: storeId, cash_in_store: 0 },
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
getLogger(req).error("[retailos/cms] get accumulation failed", {
|
|
27
|
+
store_id: storeId,
|
|
28
|
+
error: err instanceof Error ? err.message : String(err),
|
|
29
|
+
});
|
|
30
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.GET = GET;
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9hY2N1bXVsYXRpb24vW3N0b3JlSWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHVFQUFvRTtBQUdwRSxTQUFTLFVBQVUsQ0FBQyxHQUErQjtJQUNqRCxPQUFRLEdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFVLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBK0I7SUFDaEQsSUFBSSxDQUFDO1FBQ0gsT0FBUSxHQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsQ0FBQTtJQUM3RSxDQUFDO0FBQ0gsQ0FBQztBQUVNLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNoRixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUM5QixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzNELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsWUFBWSxFQUFFLFlBQVksSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRTtTQUN0RSxDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsd0NBQXdDLEVBQUU7WUFDN0QsUUFBUSxFQUFFLE9BQU87WUFDakIsS0FBSyxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDeEQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUcsR0FBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQWZZLFFBQUEsR0FBRyxPQWVmIn0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const constants_1 = require("../../../../../modules/cms/constants");
|
|
5
|
+
function getService(req) {
|
|
6
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
7
|
+
}
|
|
8
|
+
function getLogger(req) {
|
|
9
|
+
try {
|
|
10
|
+
return req.scope.resolve("logger");
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function escapeCSV(val) {
|
|
17
|
+
if (val == null)
|
|
18
|
+
return "";
|
|
19
|
+
const s = String(val);
|
|
20
|
+
if (s.includes(",") || s.includes('"') || s.includes("\n")) {
|
|
21
|
+
return `"${s.replace(/"/g, '""')}"`;
|
|
22
|
+
}
|
|
23
|
+
return s;
|
|
24
|
+
}
|
|
25
|
+
const GET = async (req, res) => {
|
|
26
|
+
const query = req.query;
|
|
27
|
+
const store_id = query.store_id;
|
|
28
|
+
try {
|
|
29
|
+
const service = getService(req);
|
|
30
|
+
const filters = {};
|
|
31
|
+
if (store_id)
|
|
32
|
+
filters.store_id = [store_id];
|
|
33
|
+
const [handovers] = await service.listAndCountCmsHandovers(filters, {
|
|
34
|
+
take: 10000,
|
|
35
|
+
order: { created_at: "DESC" },
|
|
36
|
+
});
|
|
37
|
+
const headers = ["id", "store_id", "employee_id", "handover_id", "handover_amount", "total_cash", "type", "remark", "created_at"];
|
|
38
|
+
const rows = handovers.map((h) => headers.map((k) => escapeCSV(h[k])).join(","));
|
|
39
|
+
const csv = [headers.join(","), ...rows].join("\n");
|
|
40
|
+
res.setHeader("Content-Type", "text/csv");
|
|
41
|
+
res.setHeader("Content-Disposition", `attachment; filename="cms-handovers-${Date.now()}.csv"`);
|
|
42
|
+
return res.status(200).send(csv);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
getLogger(req).error("[retailos/cms] export failed", {
|
|
46
|
+
error: err instanceof Error ? err.message : String(err),
|
|
47
|
+
});
|
|
48
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.GET = GET;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9leHBvcnQvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsb0VBQWlFO0FBR2pFLFNBQVMsVUFBVSxDQUFDLEdBQStCO0lBQ2pELE9BQVEsR0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQVUsQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUErQjtJQUNoRCxJQUFJLENBQUM7UUFDSCxPQUFRLEdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxDQUFBO0lBQzdFLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBWTtJQUM3QixJQUFJLEdBQUcsSUFBSSxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUE7SUFDMUIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3JCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQTtJQUNyQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRU0sTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQStCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ2hGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUErQixDQUFBO0lBQ2pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUE7SUFFL0IsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQy9CLE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUE7UUFDM0MsSUFBSSxRQUFRO1lBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDbEUsSUFBSSxFQUFFLEtBQUs7WUFDWCxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO1NBQzlCLENBQUMsQ0FBQTtRQUVGLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ2pJLE1BQU0sSUFBSSxHQUFJLFNBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFFLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUN2RCxDQUFBO1FBQ0QsTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRW5ELEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ3pDLEdBQUcsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsdUNBQXVDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDOUYsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUU7WUFDbkQsS0FBSyxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDeEQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUcsR0FBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQTdCWSxRQUFBLEdBQUcsT0E2QmYifQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const constants_1 = require("../../../../../../modules/cms/constants");
|
|
5
|
+
function getService(req) {
|
|
6
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
7
|
+
}
|
|
8
|
+
function getLogger(req) {
|
|
9
|
+
try {
|
|
10
|
+
return req.scope.resolve("logger");
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const GET = async (req, res) => {
|
|
17
|
+
const { id } = req.params;
|
|
18
|
+
try {
|
|
19
|
+
const service = getService(req);
|
|
20
|
+
const handover = await service.retrieveCmsHandover(id);
|
|
21
|
+
if (!handover) {
|
|
22
|
+
return res.status(404).json({ code: "NOT_FOUND", message: "Handover not found" });
|
|
23
|
+
}
|
|
24
|
+
return res.status(200).json({ handover });
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
getLogger(req).error("[retailos/cms] retrieve handover failed", {
|
|
28
|
+
id,
|
|
29
|
+
error: err instanceof Error ? err.message : String(err),
|
|
30
|
+
});
|
|
31
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
exports.GET = GET;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9oYW5kb3ZlcnMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSx1RUFBb0U7QUFHcEUsU0FBUyxVQUFVLENBQUMsR0FBK0I7SUFDakQsT0FBUSxHQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBVSxDQUFDLENBQUE7QUFDL0MsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEdBQStCO0lBQ2hELElBQUksQ0FBQztRQUNILE9BQVEsR0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLENBQUE7SUFDN0UsQ0FBQztBQUNILENBQUM7QUFFTSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBK0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDaEYsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDekIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQy9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3RELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUE7UUFDbkYsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRTtZQUM5RCxFQUFFO1lBQ0YsS0FBSyxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDeEQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUcsR0FBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQWhCWSxRQUFBLEdBQUcsT0FnQmYifQ==
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../../../../modules/cms/constants");
|
|
6
|
+
const createSchema = zod_1.z.object({
|
|
7
|
+
store_id: zod_1.z.string().min(1),
|
|
8
|
+
employee_id: zod_1.z.string().min(1),
|
|
9
|
+
handover_id: zod_1.z.string().nullable().optional(),
|
|
10
|
+
handover_amount: zod_1.z.number().nonnegative(),
|
|
11
|
+
total_cash: zod_1.z.number().nullable().optional(),
|
|
12
|
+
type: zod_1.z.enum(["DB", "CR"]).nullable().optional(),
|
|
13
|
+
image_url: zod_1.z.string().nullable().optional(),
|
|
14
|
+
remark: zod_1.z.string().nullable().optional(),
|
|
15
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullable().optional(),
|
|
16
|
+
});
|
|
17
|
+
function getService(req) {
|
|
18
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
19
|
+
}
|
|
20
|
+
function getLogger(req) {
|
|
21
|
+
try {
|
|
22
|
+
return req.scope.resolve("logger");
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const GET = async (req, res) => {
|
|
29
|
+
try {
|
|
30
|
+
const service = getService(req);
|
|
31
|
+
const filters = (req.filterableFields ?? {});
|
|
32
|
+
const [data, count] = await service.listAndCountCmsHandovers(filters, {
|
|
33
|
+
take: 100,
|
|
34
|
+
order: { created_at: "DESC" },
|
|
35
|
+
});
|
|
36
|
+
return res.status(200).json({ handovers: data, count });
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
getLogger(req).error("[retailos/cms] list handovers failed", {
|
|
40
|
+
error: err instanceof Error ? err.message : String(err),
|
|
41
|
+
});
|
|
42
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.GET = GET;
|
|
46
|
+
const POST = async (req, res) => {
|
|
47
|
+
const parsed = createSchema.safeParse(req.body);
|
|
48
|
+
if (!parsed.success) {
|
|
49
|
+
return res.status(400).json({
|
|
50
|
+
code: "BAD_REQUEST",
|
|
51
|
+
message: "Invalid handover input",
|
|
52
|
+
details: parsed.error.flatten(),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
const service = getService(req);
|
|
57
|
+
const created = await service.handover({
|
|
58
|
+
store_id: parsed.data.store_id,
|
|
59
|
+
employee_id: parsed.data.employee_id,
|
|
60
|
+
handover_id: parsed.data.handover_id ?? null,
|
|
61
|
+
handover_amount: parsed.data.handover_amount,
|
|
62
|
+
total_cash: parsed.data.total_cash ?? null,
|
|
63
|
+
type: parsed.data.type ?? null,
|
|
64
|
+
image_url: parsed.data.image_url ?? null,
|
|
65
|
+
remark: parsed.data.remark ?? null,
|
|
66
|
+
metadata: parsed.data.metadata ?? null,
|
|
67
|
+
});
|
|
68
|
+
return res.status(201).json({ handover: created });
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
getLogger(req).error("[retailos/cms] create handover failed", {
|
|
72
|
+
error: err instanceof Error ? err.message : String(err),
|
|
73
|
+
});
|
|
74
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
exports.POST = POST;
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9oYW5kb3ZlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsNkJBQXVCO0FBQ3ZCLG9FQUFpRTtBQUdqRSxNQUFNLFlBQVksR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0MsZUFBZSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUU7SUFDekMsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsSUFBSSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNsRSxDQUFDLENBQUE7QUFFRixTQUFTLFVB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
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../../../../modules/cms/constants");
|
|
6
|
+
const OPERATIONS = ["day_start", "day_end", "handover", "add_petty_cash", "add_expense"];
|
|
7
|
+
const operationSchema = zod_1.z.object({
|
|
8
|
+
operation: zod_1.z.enum(OPERATIONS),
|
|
9
|
+
store_id: zod_1.z.string().min(1),
|
|
10
|
+
employee_id: zod_1.z.string().min(1),
|
|
11
|
+
opening_amount: zod_1.z.number().nonnegative().optional(),
|
|
12
|
+
closing_amount: zod_1.z.number().nonnegative().optional(),
|
|
13
|
+
handover_id: zod_1.z.string().nullable().optional(),
|
|
14
|
+
handover_amount: zod_1.z.number().nonnegative().optional(),
|
|
15
|
+
total_cash: zod_1.z.number().nullable().optional(),
|
|
16
|
+
type: zod_1.z.enum(["DB", "CR"]).nullable().optional(),
|
|
17
|
+
image_url: zod_1.z.string().nullable().optional(),
|
|
18
|
+
remark: zod_1.z.string().nullable().optional(),
|
|
19
|
+
amount: zod_1.z.number().positive().optional(),
|
|
20
|
+
source: zod_1.z.enum(["self", "from_petty_cash"]).nullable().optional(),
|
|
21
|
+
category: zod_1.z.string().nullable().optional(),
|
|
22
|
+
sub_category: zod_1.z.string().nullable().optional(),
|
|
23
|
+
reason: zod_1.z.string().nullable().optional(),
|
|
24
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).nullable().optional(),
|
|
25
|
+
});
|
|
26
|
+
function getService(req) {
|
|
27
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
28
|
+
}
|
|
29
|
+
function getLogger(req) {
|
|
30
|
+
try {
|
|
31
|
+
return req.scope.resolve("logger");
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const POST = async (req, res) => {
|
|
38
|
+
const parsed = operationSchema.safeParse(req.body);
|
|
39
|
+
if (!parsed.success) {
|
|
40
|
+
return res.status(400).json({
|
|
41
|
+
code: "BAD_REQUEST",
|
|
42
|
+
message: "Invalid operation input",
|
|
43
|
+
details: parsed.error.flatten(),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const data = parsed.data;
|
|
47
|
+
const service = getService(req);
|
|
48
|
+
const logger = getLogger(req);
|
|
49
|
+
try {
|
|
50
|
+
switch (data.operation) {
|
|
51
|
+
case "day_start": {
|
|
52
|
+
if (data.opening_amount == null) {
|
|
53
|
+
return res.status(400).json({ code: "BAD_REQUEST", message: "opening_amount is required for day_start" });
|
|
54
|
+
}
|
|
55
|
+
await service.dayStart({ store_id: data.store_id, employee_id: data.employee_id, opening_amount: data.opening_amount });
|
|
56
|
+
return res.status(200).json({ operation: "day_start", store_id: data.store_id });
|
|
57
|
+
}
|
|
58
|
+
case "day_end": {
|
|
59
|
+
if (data.closing_amount == null) {
|
|
60
|
+
return res.status(400).json({ code: "BAD_REQUEST", message: "closing_amount is required for day_end" });
|
|
61
|
+
}
|
|
62
|
+
await service.dayEnd({ store_id: data.store_id, employee_id: data.employee_id, closing_amount: data.closing_amount });
|
|
63
|
+
return res.status(200).json({ operation: "day_end", store_id: data.store_id });
|
|
64
|
+
}
|
|
65
|
+
case "handover": {
|
|
66
|
+
if (data.handover_amount == null) {
|
|
67
|
+
return res.status(400).json({ code: "BAD_REQUEST", message: "handover_amount is required for handover" });
|
|
68
|
+
}
|
|
69
|
+
const handover = await service.handover({
|
|
70
|
+
store_id: data.store_id,
|
|
71
|
+
employee_id: data.employee_id,
|
|
72
|
+
handover_id: data.handover_id ?? null,
|
|
73
|
+
handover_amount: data.handover_amount,
|
|
74
|
+
total_cash: data.total_cash ?? null,
|
|
75
|
+
type: data.type ?? null,
|
|
76
|
+
image_url: data.image_url ?? null,
|
|
77
|
+
remark: data.remark ?? null,
|
|
78
|
+
metadata: data.metadata ?? null,
|
|
79
|
+
});
|
|
80
|
+
return res.status(201).json({ operation: "handover", handover });
|
|
81
|
+
}
|
|
82
|
+
case "add_petty_cash": {
|
|
83
|
+
if (data.amount == null) {
|
|
84
|
+
return res.status(400).json({ code: "BAD_REQUEST", message: "amount is required for add_petty_cash" });
|
|
85
|
+
}
|
|
86
|
+
const tx = await service.addPettyCash({
|
|
87
|
+
store_id: data.store_id,
|
|
88
|
+
employee_id: data.employee_id,
|
|
89
|
+
amount: data.amount,
|
|
90
|
+
source: data.source ?? null,
|
|
91
|
+
});
|
|
92
|
+
return res.status(201).json({ operation: "add_petty_cash", transaction: tx });
|
|
93
|
+
}
|
|
94
|
+
case "add_expense": {
|
|
95
|
+
if (data.amount == null) {
|
|
96
|
+
return res.status(400).json({ code: "BAD_REQUEST", message: "amount is required for add_expense" });
|
|
97
|
+
}
|
|
98
|
+
const tx = await service.addExpense({
|
|
99
|
+
store_id: data.store_id,
|
|
100
|
+
employee_id: data.employee_id,
|
|
101
|
+
amount: data.amount,
|
|
102
|
+
category: data.category ?? null,
|
|
103
|
+
sub_category: data.sub_category ?? null,
|
|
104
|
+
reason: data.reason ?? null,
|
|
105
|
+
image_url: data.image_url ?? null,
|
|
106
|
+
metadata: data.metadata ?? null,
|
|
107
|
+
});
|
|
108
|
+
return res.status(201).json({ operation: "add_expense", transaction: tx });
|
|
109
|
+
}
|
|
110
|
+
default:
|
|
111
|
+
return res.status(400).json({ code: "BAD_REQUEST", message: "Unknown operation" });
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
logger.error("[retailos/cms] operation failed", {
|
|
116
|
+
operation: data.operation,
|
|
117
|
+
store_id: data.store_id,
|
|
118
|
+
error: err instanceof Error ? err.message : String(err),
|
|
119
|
+
});
|
|
120
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
exports.POST = POST;
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9vcGVyYXRpb24vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsNkJBQXVCO0FBQ3ZCLG9FQUFpRTtBQUdqRSxNQUFNLFVBQVUsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBVSxDQUFBO0FBR2pHLE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsU0FBUyxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzdCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUIsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkQsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbkQsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0MsZUFBZSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDcEQsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsSUFBSSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqRSxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2xFLENBQUMsQ0FBQTtBQUVGLFNBQVMsVUFBVSxDQUFDLEdBQStCO0lBQ2pELE9BQVEsR0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQVUsQ0FBQyxDQUFBO0FBQy9DLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUErQjtJQUNoRCxJQUFJLENBQUM7UUFDSCxPQUFRLEdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxDQUFBO0lBQzdFLENBQUM7QUFDSCxDQUFDO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQStCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ2pGLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixJQUFJLEVBQUUsYUFBYTtZQUNuQixPQUFPLEVBQUUseUJBQXlCO1lBQ2xDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtTQUNoQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUN4QixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDL0IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTdCLElBQUksQ0FBQztRQUNILFFBQVEsSUFBSSxDQUFDLFNBQXNCLEVBQUUsQ0FBQztZQUNwQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLENBQUMsQ0FBQTtnQkFDM0csQ0FBQztnQkFDRCxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7Z0JBQ3ZILE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUNsRixDQUFDO1lBQ0QsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLENBQUMsQ0FBQTtnQkFDekcsQ0FBQztnQkFDRCxNQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUE7Z0JBQ3JILE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUNoRixDQUFDO1lBQ0QsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSwwQ0FBMEMsRUFBRSxDQUFDLENBQUE7Z0JBQzNHLENBQUM7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSTtvQkFDckMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO29CQUNyQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJO29CQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO29CQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJO29CQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJO29CQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJO2lCQUNoQyxDQUFDLENBQUE7Z0JBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUNsRSxDQUFDO1lBQ0QsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLENBQUMsQ0FBQTtnQkFDeEcsQ0FBQztnQkFDRCxNQUFNLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUM7b0JBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7aUJBQzVCLENBQUMsQ0FBQTtnQkFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQy9FLENBQUM7WUFDRCxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLENBQUMsQ0FBQTtnQkFDckcsQ0FBQztnQkFDRCxNQUFNLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUM7b0JBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtvQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUk7b0JBQy9CLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUk7b0JBQ3ZDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUk7b0JBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUk7b0JBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUk7aUJBQ2hDLENBQUMsQ0FBQTtnQkFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtZQUM1RSxDQUFDO1lBQ0Q7Z0JBQ0UsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQTtRQUN0RixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixNQUFNLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFO1lBQzlDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsS0FBSyxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDeEQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUcsR0FBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQXRGWSxRQUFBLElBQUksUUFzRmhCIn0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const constants_1 = require("../../../../../modules/cms/constants");
|
|
5
|
+
function getService(req) {
|
|
6
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
7
|
+
}
|
|
8
|
+
function getLogger(req) {
|
|
9
|
+
try {
|
|
10
|
+
return req.scope.resolve("logger");
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const GET = async (req, res) => {
|
|
17
|
+
try {
|
|
18
|
+
const service = getService(req);
|
|
19
|
+
const filters = (req.filterableFields ?? {});
|
|
20
|
+
const [transactions, count] = await service.listAndCountPettyCashTransactions({ ...filters, transaction_type: ["open", "close", "petty_cash"] }, { take: 100, order: { created_at: "DESC" } });
|
|
21
|
+
return res.status(200).json({ transactions, count });
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
getLogger(req).error("[retailos/cms] list petty cash failed", {
|
|
25
|
+
error: err instanceof Error ? err.message : String(err),
|
|
26
|
+
});
|
|
27
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.GET = GET;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9wZXR0eS1jYXNoL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLG9FQUFpRTtBQUdqRSxTQUFTLFVBQVUsQ0FBQyxHQUErQjtJQUNqRCxPQUFRLEdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFVLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBK0I7SUFDaEQsSUFBSSxDQUFDO1FBQ0gsT0FBUSxHQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsQ0FBQTtJQUM3RSxDQUFDO0FBQ0gsQ0FBQztBQUVNLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNoRixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUE0QixDQUFBO1FBQ3ZFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsaUNBQWlDLENBQzNFLEVBQUUsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQ2pFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDN0MsQ0FBQTtRQUNELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEVBQUU7WUFDNUQsS0FBSyxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDeEQsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUcsR0FBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7SUFDMUYsQ0FBQztBQUNILENBQUMsQ0FBQTtBQWZZLFFBQUEsR0FBRyxPQWVmIn0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const constants_1 = require("../../../../../modules/cms/constants");
|
|
5
|
+
function getService(req) {
|
|
6
|
+
return req.scope.resolve(constants_1.CMS_MODULE);
|
|
7
|
+
}
|
|
8
|
+
function getLogger(req) {
|
|
9
|
+
try {
|
|
10
|
+
return req.scope.resolve("logger");
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const GET = async (req, res) => {
|
|
17
|
+
const query = req.query;
|
|
18
|
+
const store_id = query.store_id;
|
|
19
|
+
const limit = query.limit ? Number(query.limit) : 50;
|
|
20
|
+
try {
|
|
21
|
+
const service = getService(req);
|
|
22
|
+
const logs = await service.getShiftLogs({
|
|
23
|
+
store_id: store_id || undefined,
|
|
24
|
+
limit,
|
|
25
|
+
});
|
|
26
|
+
return res.status(200).json({ shift_logs: logs, count: logs.length });
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
getLogger(req).error("[retailos/cms] list shift logs failed", {
|
|
30
|
+
error: err instanceof Error ? err.message : String(err),
|
|
31
|
+
});
|
|
32
|
+
return res.status(500).json({ code: "INTERNAL_ERROR", message: err.message });
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.GET = GET;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldGFpbG9zL2Ntcy9zaGlmdC1sb2dzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLG9FQUFpRTtBQUdqRSxTQUFTLFVBQVUsQ0FBQyxHQUErQjtJQUNqRCxPQUFRLEdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFVLENBQUMsQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBK0I7SUFDaEQsSUFBSSxDQUFDO1FBQ0gsT0FBUSxHQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsQ0FBQTtJQUM3RSxDQUFDO0FBQ0gsQ0FBQztBQUVNLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNoRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBK0IsQ0FBQTtJQUNqRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFBO0lBQy9CLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUVwRCxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ3RDLFFBQVEsRUFBRSxRQUFRLElBQUksU0FBUztZQUMvQixLQUFLO1NBQ04sQ0FBQyxDQUFBO1FBQ0YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZFLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRTtZQUM1RCxLQUFLLEVBQUUsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUN4RCxDQUFDLENBQUE7UUFDRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRyxHQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUMxRixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBbEJZLFFBQUEsR0FBRyxPQWtCZiJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const employee_1 = __importDefault(require("@devx-retailos/employee"));
|
|
8
|
+
const cms_1 = __importDefault(require("../modules/cms"));
|
|
9
|
+
exports.default = (0, utils_1.defineLink)(employee_1.default.linkable.retailosEmployee, {
|
|
10
|
+
linkable: cms_1.default.linkable.retailosCmsHandover,
|
|
11
|
+
isList: true,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtdG8tY21zLWhhbmRvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL2VtcGxveWVlLXRvLWNtcy1oYW5kb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCx1RUFBb0Q7QUFDcEQseURBQXNDO0FBRXRDLGtCQUFlLElBQUEsa0JBQVUsRUFDdEIsa0JBQXNCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUNqRDtJQUNFLFFBQVEsRUFBRyxhQUFpQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7SUFDekQsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const rbac_1 = __importDefault(require("@devx-retailos/rbac"));
|
|
8
|
+
const cms_1 = __importDefault(require("../modules/cms"));
|
|
9
|
+
exports.default = (0, utils_1.defineLink)(rbac_1.default.linkable.retailosStore, {
|
|
10
|
+
linkable: cms_1.default.linkable.retailosCmsHandover,
|
|
11
|
+
isList: true,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdG8tY21zLWhhbmRvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpbmtzL3N0b3JlLXRvLWNtcy1oYW5kb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUFzRDtBQUN0RCwrREFBNEM7QUFDNUMseURBQXNDO0FBRXRDLGtCQUFlLElBQUEsa0JBQVUsRUFDdEIsY0FBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUMxQztJQUNFLFFBQVEsRUFBRyxhQUFpQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7SUFDekQsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CMS_MODULE = void 0;
|
|
4
|
+
exports.CMS_MODULE = "cms";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvY21zL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFVBQVUsR0FBRyxLQUFLLENBQUEifQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.models = exports.CMS_PERMISSIONS = exports.CmsModuleService = exports.CMS_MODULE = void 0;
|
|
40
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
41
|
+
const constants_1 = require("./constants");
|
|
42
|
+
const cms_module_service_1 = __importDefault(require("./services/cms-module-service"));
|
|
43
|
+
exports.default = (0, utils_1.Module)(constants_1.CMS_MODULE, {
|
|
44
|
+
service: cms_module_service_1.default,
|
|
45
|
+
});
|
|
46
|
+
var constants_2 = require("./constants");
|
|
47
|
+
Object.defineProperty(exports, "CMS_MODULE", { enumerable: true, get: function () { return constants_2.CMS_MODULE; } });
|
|
48
|
+
var services_1 = require("./services");
|
|
49
|
+
Object.defineProperty(exports, "CmsModuleService", { enumerable: true, get: function () { return services_1.CmsModuleService; } });
|
|
50
|
+
var permissions_1 = require("./permissions");
|
|
51
|
+
Object.defineProperty(exports, "CMS_PERMISSIONS", { enumerable: true, get: function () { return permissions_1.CMS_PERMISSIONS; } });
|
|
52
|
+
exports.models = __importStar(require("./models"));
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jbXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQWtEO0FBQ2xELDJDQUF3QztBQUN4Qyx1RkFBNEQ7QUFFNUQsa0JBQWUsSUFBQSxjQUFNLEVBQUMsc0JBQVUsRUFBRTtJQUNoQyxPQUFPLEVBQUUsNEJBQWdCO0NBQzFCLENBQUMsQ0FBQTtBQUVGLHlDQUF3QztBQUEvQix1R0FBQSxVQUFVLE9BQUE7QUFDbkIsdUNBQTZDO0FBQXBDLDRHQUFBLGdCQUFnQixPQUFBO0FBYXpCLDZDQUErQztBQUF0Qyw4R0FBQSxlQUFlLE9BQUE7QUFDeEIsbURBQWtDIn0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20260622000000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20260622000000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "retailos_cms_handover" ("id" text not null, "store_id" text not null, "employee_id" text not null, "handover_id" text null, "handover_amount" integer null, "total_cash" integer null, "type" text null, "image_url" text null, "remark" text null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "retailos_cms_handover_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_cms_handover_store_id" ON "retailos_cms_handover" ("store_id") WHERE deleted_at IS NULL;`);
|
|
9
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_cms_handover_employee_id" ON "retailos_cms_handover" ("employee_id") WHERE deleted_at IS NULL;`);
|
|
10
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_cms_handover_deleted_at" ON "retailos_cms_handover" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
11
|
+
this.addSql(`create table if not exists "retailos_cms_accumulation" ("id" text not null, "store_id" text not null, "cash_in_store" integer not null default 0, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "retailos_cms_accumulation_pkey" primary key ("id"));`);
|
|
12
|
+
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_retailos_cms_accumulation_store_id_unique" ON "retailos_cms_accumulation" ("store_id") WHERE deleted_at IS NULL;`);
|
|
13
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_cms_accumulation_deleted_at" ON "retailos_cms_accumulation" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
14
|
+
this.addSql(`create table if not exists "retailos_petty_cash" ("id" text not null, "store_id" text not null, "balance" integer not null default 0, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "retailos_petty_cash_pkey" primary key ("id"));`);
|
|
15
|
+
this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_retailos_petty_cash_store_id_unique" ON "retailos_petty_cash" ("store_id") WHERE deleted_at IS NULL;`);
|
|
16
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_petty_cash_deleted_at" ON "retailos_petty_cash" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
17
|
+
this.addSql(`create table if not exists "retailos_petty_cash_transaction" ("id" text not null, "store_id" text not null, "employee_id" text not null, "transaction_type" text not null, "entry_type" text null, "source" text null, "amount" integer not null default 0, "opening_balance" integer null, "closing_balance" integer null, "expense_amount" integer not null default 0, "difference_amount" integer not null default 0, "category" text null, "sub_category" text null, "reason" text null, "image_url" text null, "date" timestamptz null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "retailos_petty_cash_transaction_pkey" primary key ("id"));`);
|
|
18
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_petty_cash_transaction_store_id" ON "retailos_petty_cash_transaction" ("store_id") WHERE deleted_at IS NULL;`);
|
|
19
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_petty_cash_transaction_type" ON "retailos_petty_cash_transaction" ("transaction_type") WHERE deleted_at IS NULL;`);
|
|
20
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_retailos_petty_cash_transaction_deleted_at" ON "retailos_petty_cash_transaction" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
21
|
+
}
|
|
22
|
+
async down() {
|
|
23
|
+
this.addSql(`drop table if exists "retailos_petty_cash_transaction" cascade;`);
|
|
24
|
+
this.addSql(`drop table if exists "retailos_petty_cash" cascade;`);
|
|
25
|
+
this.addSql(`drop table if exists "retailos_cms_accumulation" cascade;`);
|
|
26
|
+
this.addSql(`drop table if exists "retailos_cms_handover" cascade;`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.Migration20260622000000 = Migration20260622000000;
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA2MjIwMDAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jbXMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MDYyMjAwMDAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBb0U7QUFFcEUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQ1Qsc2VBQXNlLENBQ3ZlLENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUNULG1JQUFtSSxDQUNwSSxDQUFBO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FDVCx5SUFBeUksQ0FDMUksQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsdUlBQXVJLENBQ3hJLENBQUE7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUNULHFWQUFxVixDQUN0VixDQUFBO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FDVCx5SkFBeUosQ0FDMUosQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsK0lBQStJLENBQ2hKLENBQUE7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUNULG1VQUFtVSxDQUNwVSxDQUFBO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FDVCw2SUFBNkksQ0FDOUksQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsbUlBQW1JLENBQ3BJLENBQUE7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUNULDZ1QkFBNnVCLENBQzl1QixDQUFBO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FDVCx1SkFBdUosQ0FDeEosQ0FBQTtRQUNELElBQUksQ0FBQyxNQUFNLENBQ1QsMkpBQTJKLENBQzVKLENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUNULDJKQUEySixDQUM1SixDQUFBO0lBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUVBQWlFLENBQUMsQ0FBQTtRQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxDQUFDLENBQUE7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQywyREFBMkQsQ0FBQyxDQUFBO1FBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtJQUN0RSxDQUFDO0NBQ0Y7QUF2REQsMERBdURDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20260622000001 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20260622000001 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`alter table if exists "retailos_cms_accumulation" add column if not exists "metadata" jsonb null;`);
|
|
8
|
+
this.addSql(`alter table if exists "retailos_petty_cash" add column if not exists "metadata" jsonb null;`);
|
|
9
|
+
}
|
|
10
|
+
async down() {
|
|
11
|
+
this.addSql(`alter table if exists "retailos_cms_accumulation" drop column if exists "metadata";`);
|
|
12
|
+
this.addSql(`alter table if exists "retailos_petty_cash" drop column if exists "metadata";`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Migration20260622000001 = Migration20260622000001;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA2MjIwMDAwMDEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jbXMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MDYyMjAwMDAwMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBb0U7QUFFcEUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQ1QsbUdBQW1HLENBQ3BHLENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUNULDZGQUE2RixDQUM5RixDQUFBO0lBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMscUZBQXFGLENBQUMsQ0FBQTtRQUNsRyxJQUFJLENBQUMsTUFBTSxDQUFDLCtFQUErRSxDQUFDLENBQUE7SUFDOUYsQ0FBQztDQUNGO0FBZEQsMERBY0MifQ==
|