@zosmaai/medusa-documents-v2 0.2.13
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 +1884 -0
- package/.medusa/server/src/admin/index.mjs +1881 -0
- package/.medusa/server/src/api/admin/documents/document-invoice-settings/invoice-template/route.js +40 -0
- package/.medusa/server/src/api/admin/documents/document-invoice-settings/route.js +62 -0
- package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/route.js +62 -0
- package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/template/route.js +40 -0
- package/.medusa/server/src/api/admin/documents/document-settings/document-address/route.js +47 -0
- package/.medusa/server/src/api/admin/documents/document-settings/india-gst/route.js +67 -0
- package/.medusa/server/src/api/admin/documents/document-settings/logo/route.js +67 -0
- package/.medusa/server/src/api/admin/documents/document-settings/route.js +36 -0
- package/.medusa/server/src/api/admin/documents/invoice/display-number/route.js +34 -0
- package/.medusa/server/src/api/admin/documents/invoice/generate/route.js +47 -0
- package/.medusa/server/src/api/admin/documents/invoice/route.js +112 -0
- package/.medusa/server/src/api/admin/documents/packing-slip/preview/route.js +47 -0
- package/.medusa/server/src/api/admin/documents/packing-slip/route.js +112 -0
- package/.medusa/server/src/links/invoice-order.js +13 -0
- package/.medusa/server/src/links/packing-slip-order.js +13 -0
- package/.medusa/server/src/modules/documents/assets/fonts/IBMPlexSans-Bold.ttf +0 -0
- package/.medusa/server/src/modules/documents/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/de-AT/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/en/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/es/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/fr/translation.json +26 -0
- package/.medusa/server/src/modules/documents/assets/i18n/locales/pl/translation.json +26 -0
- package/.medusa/server/src/modules/documents/index.js +26 -0
- package/.medusa/server/src/modules/documents/loaders/i18next.js +49 -0
- package/.medusa/server/src/modules/documents/migrations/Migration20250228142557.js +39 -0
- package/.medusa/server/src/modules/documents/migrations/Migration20260810120000.js +14 -0
- package/.medusa/server/src/modules/documents/models/document-invoice-settings.js +29 -0
- package/.medusa/server/src/modules/documents/models/document-invoice.js +32 -0
- package/.medusa/server/src/modules/documents/models/document-packing-slip-settings.js +29 -0
- package/.medusa/server/src/modules/documents/models/document-packing-slip.js +32 -0
- package/.medusa/server/src/modules/documents/models/document-settings.js +33 -0
- package/.medusa/server/src/modules/documents/service.js +502 -0
- package/.medusa/server/src/modules/documents/services/generators/invoice-generator.js +78 -0
- package/.medusa/server/src/modules/documents/services/generators/packing-slip-generator.js +73 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/basic-logo.js +55 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/basic.js +52 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/customer-info.js +69 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header-for-logo.js +32 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header-logo.js +29 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header.js +35 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/hr.js +23 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/invoice-info.js +35 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/table.js +97 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/india-gst.js +72 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/footer.js +41 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/invoice-meta.js +22 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/seller-info.js +42 -0
- package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/table.js +88 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/basic.js +52 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info-small.js +69 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info.js +65 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header-small.js +37 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header.js +37 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/hr.js +32 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items-small.js +44 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items.js +44 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info-small.js +35 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info.js +36 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/small.js +53 -0
- package/.medusa/server/src/modules/documents/types/api.js +14 -0
- package/.medusa/server/src/modules/documents/types/constants.js +17 -0
- package/.medusa/server/src/modules/documents/types/dto.js +14 -0
- package/.medusa/server/src/modules/documents/types/template-kind.js +26 -0
- package/.medusa/server/src/modules/documents/utils/currency.js +18 -0
- package/.medusa/server/src/ui-components/actions-dropdown/actions-dropdown.js +15 -0
- package/.medusa/server/src/ui-components/actions-dropdown/invoice/button-generate-invoice.js +75 -0
- package/.medusa/server/src/ui-components/actions-dropdown/packing-slip/button-generate-packing-slip.js +72 -0
- package/.medusa/server/src/ui-components/index.js +21 -0
- package/.medusa/server/src/ui-components/orders/order-table/invoice-number-from-order.js +107 -0
- package/.medusa/server/src/ui-components/orders/order-table/packing-slip-number.js +107 -0
- package/.medusa/server/src/ui-components/orders/order-table/use-columns.js +172 -0
- package/.medusa/server/src/ui-components/orders/order-table/use-orders.js +145 -0
- package/.medusa/server/src/ui-components/orders/order-table/utils/currencies.js +1077 -0
- package/.medusa/server/src/ui-components/orders/order-table/utils/time.js +53 -0
- package/.medusa/server/src/ui-components/orders/order-table.js +134 -0
- package/.medusa/server/src/ui-components/settings/settings-address.js +90 -0
- package/.medusa/server/src/ui-components/settings/settings-india-gst.js +90 -0
- package/.medusa/server/src/ui-components/settings/settings-invoice-display-number.js +55 -0
- package/.medusa/server/src/ui-components/settings/settings-invoice.js +139 -0
- package/.medusa/server/src/ui-components/settings/settings-logo.js +108 -0
- package/.medusa/server/src/ui-components/tabs/orders-tab.js +28 -0
- package/.medusa/server/src/ui-components/tabs/pro-tab.js +23 -0
- package/.medusa/server/src/ui-components/tabs/settings-tab.js +29 -0
- package/.medusa/server/src/ui-components/tabs/templates-tab/templates-invoice-tab.js +153 -0
- package/.medusa/server/src/ui-components/tabs/templates-tab/templates-packing-slip-tab.js +155 -0
- package/.medusa/server/src/ui-components/tabs/templates-tab/templates-tab.js +24 -0
- package/.medusa/server/src/ui-components/types/api.js +14 -0
- package/.medusa/server/src/ui-components/types/invoice.js +14 -0
- package/.medusa/server/src/ui-components/types/packing-slip.js +14 -0
- package/.medusa/server/src/ui-components/types/template-kind.js +26 -0
- package/.medusa/server/src/workflows/assign-invoice.js +31 -0
- package/.medusa/server/src/workflows/assign-packing-slip.js +31 -0
- package/README.md +171 -0
- package/package.json +103 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
/*
|
|
5
|
+
* Copyright 2024 RSC-Labs, https://rsoftcon.com/
|
|
6
|
+
*
|
|
7
|
+
* MIT License
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
const material_1 = require("@mui/material");
|
|
16
|
+
const react_1 = require("react");
|
|
17
|
+
const ui_1 = require("@medusajs/ui");
|
|
18
|
+
const material_2 = require("@mui/material");
|
|
19
|
+
const PackingSlipNumber = ({ orderId, packingSlipNumber, }) => {
|
|
20
|
+
const [data, setData] = (0, react_1.useState)(undefined);
|
|
21
|
+
const [error, setError] = (0, react_1.useState)(undefined);
|
|
22
|
+
const [isHovered, setIsHovered] = (0, react_1.useState)(false);
|
|
23
|
+
const [isLoading, setLoading] = (0, react_1.useState)(true);
|
|
24
|
+
const handleClick = async () => {
|
|
25
|
+
ui_1.toast.loading("Packing slip", {
|
|
26
|
+
description: "Preparing packing slip...",
|
|
27
|
+
duration: Infinity,
|
|
28
|
+
});
|
|
29
|
+
const result = new URLSearchParams({
|
|
30
|
+
includeBuffer: "true",
|
|
31
|
+
orderId: orderId,
|
|
32
|
+
});
|
|
33
|
+
fetch(`/admin/documents/packing-slip?${result.toString()}`, {
|
|
34
|
+
credentials: "include",
|
|
35
|
+
})
|
|
36
|
+
.then((res) => res.json())
|
|
37
|
+
.then((result) => {
|
|
38
|
+
if (result && result.buffer) {
|
|
39
|
+
ui_1.toast.dismiss();
|
|
40
|
+
openPdf(result);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
ui_1.toast.dismiss();
|
|
44
|
+
ui_1.toast.error("Packing slip", {
|
|
45
|
+
description: "Problem happened when preparing packing slip",
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.catch((error) => {
|
|
50
|
+
setError(error);
|
|
51
|
+
console.error(error);
|
|
52
|
+
ui_1.toast.dismiss();
|
|
53
|
+
ui_1.toast.error("Packing slip", {
|
|
54
|
+
description: error,
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
const openPdf = (packingSlipResult) => {
|
|
59
|
+
if (packingSlipResult && packingSlipResult.buffer) {
|
|
60
|
+
const anyBuffer = packingSlipResult.buffer;
|
|
61
|
+
const blob = new Blob([new Uint8Array(anyBuffer.data)], {
|
|
62
|
+
type: "application/pdf",
|
|
63
|
+
});
|
|
64
|
+
const pdfURL = URL.createObjectURL(blob);
|
|
65
|
+
window.open(pdfURL, "_blank");
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const result = new URLSearchParams({
|
|
69
|
+
orderId: orderId,
|
|
70
|
+
});
|
|
71
|
+
(0, react_1.useEffect)(() => {
|
|
72
|
+
setLoading(true);
|
|
73
|
+
}, [packingSlipNumber, orderId]);
|
|
74
|
+
(0, react_1.useEffect)(() => {
|
|
75
|
+
if (!isLoading) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
fetch(`/admin/documents/packing-slip?${result.toString()}`, {
|
|
79
|
+
credentials: "include",
|
|
80
|
+
})
|
|
81
|
+
.then((res) => res.json())
|
|
82
|
+
.then((result) => {
|
|
83
|
+
setData(result);
|
|
84
|
+
setLoading(false);
|
|
85
|
+
})
|
|
86
|
+
.catch((error) => {
|
|
87
|
+
setError(error);
|
|
88
|
+
console.error(error);
|
|
89
|
+
});
|
|
90
|
+
}, [isLoading]);
|
|
91
|
+
if (isLoading) {
|
|
92
|
+
return (0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 8 });
|
|
93
|
+
}
|
|
94
|
+
if (data && data.packingSlip) {
|
|
95
|
+
return ((0, jsx_runtime_1.jsx)(material_2.Grid, { item: true, children: (0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 hover:text-violet-60 cursor-pointer pl-2 transition-colors duration-200", onClick: () => handleClick(), style: {
|
|
96
|
+
cursor: "pointer",
|
|
97
|
+
color: isHovered ? "violet" : "grey",
|
|
98
|
+
textDecoration: isHovered ? "underline" : "none",
|
|
99
|
+
transition: "color 0.2s, text-decoration 0.2s",
|
|
100
|
+
}, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: `Packing slip: ${data.packingSlip.displayNumber}` }) }));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
exports.default = PackingSlipNumber;
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2luZy1zbGlwLW51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL29yZGVycy9vcmRlci10YWJsZS9wYWNraW5nLXNsaXAtbnVtYmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgsNENBQWlEO0FBQ2pELGlDQUE0QztBQUM1QyxxQ0FBcUM7QUFFckMsNENBQXFDO0FBRXJDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUN6QixPQUFPLEVBQ1AsaUJBQWlCLEdBSWxCLEVBQUUsRUFBRTtJQUNILE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFrQixTQUFTLENBQUMsQ0FBQztJQUU3RCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBTSxTQUFTLENBQUMsQ0FBQztJQUVuRCxNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVsRCxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUUvQyxNQUFNLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtRQUM3QixVQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUM1QixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFvQixJQUFJLGVBQWUsQ0FBQztZQUNsRCxhQUFhLEVBQUUsTUFBTTtZQUNyQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsaUNBQWlDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzFELFdBQVcsRUFBRSxT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
|
|
@@ -0,0 +1,172 @@
|
|
|
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
|
+
exports.getDecimalDigits = getDecimalDigits;
|
|
7
|
+
exports.normalizeAmount = normalizeAmount;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const moment_1 = __importDefault(require("moment"));
|
|
10
|
+
const react_1 = require("react");
|
|
11
|
+
const ui_1 = require("@medusajs/ui");
|
|
12
|
+
const currencies_1 = require("./utils/currencies");
|
|
13
|
+
const material_1 = require("@mui/material");
|
|
14
|
+
const actions_dropdown_1 = require("../../actions-dropdown/actions-dropdown");
|
|
15
|
+
const invoice_number_from_order_1 = __importDefault(require("./invoice-number-from-order"));
|
|
16
|
+
const packing_slip_number_1 = __importDefault(require("./packing-slip-number"));
|
|
17
|
+
const icons_1 = require("@medusajs/icons");
|
|
18
|
+
/**
|
|
19
|
+
* Checks the list of currencies and returns the divider/multiplier
|
|
20
|
+
* that should be used to calculate the persited and display amount.
|
|
21
|
+
* @param currency
|
|
22
|
+
* @return {number}
|
|
23
|
+
*/
|
|
24
|
+
function getDecimalDigits(currency) {
|
|
25
|
+
const divisionDigits = currencies_1.currencies[currency.toUpperCase()].decimal_digits;
|
|
26
|
+
return Math.pow(10, divisionDigits);
|
|
27
|
+
}
|
|
28
|
+
function normalizeAmount(currency, amount) {
|
|
29
|
+
const divisor = getDecimalDigits(currency);
|
|
30
|
+
return Math.floor(amount) / divisor;
|
|
31
|
+
}
|
|
32
|
+
function formatAmountWithSymbol({ amount, currency, digits, }) {
|
|
33
|
+
let locale = "en-US";
|
|
34
|
+
// We need this to display 'Kr' instead of 'DKK'
|
|
35
|
+
if (currency.toLowerCase() === "dkk") {
|
|
36
|
+
locale = "da-DK";
|
|
37
|
+
}
|
|
38
|
+
const taxRate = 0;
|
|
39
|
+
return new Intl.NumberFormat(locale, {
|
|
40
|
+
style: "currency",
|
|
41
|
+
currency,
|
|
42
|
+
minimumFractionDigits: digits,
|
|
43
|
+
}).format(amount * (1 + taxRate / 100));
|
|
44
|
+
}
|
|
45
|
+
const useOrderTableColumns = () => {
|
|
46
|
+
const [documentNumbers, setDocumentNumbers] = (0, react_1.useState)({});
|
|
47
|
+
const decideStatus = (status) => {
|
|
48
|
+
switch (status) {
|
|
49
|
+
case "captured":
|
|
50
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Paid" }));
|
|
51
|
+
case "awaiting":
|
|
52
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "grey", children: "Awaiting" }));
|
|
53
|
+
case "requires_action":
|
|
54
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "red", children: "Requires action" }));
|
|
55
|
+
case "canceled":
|
|
56
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "orange", children: "Canceled" }));
|
|
57
|
+
default:
|
|
58
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "purple", children: "N/A" }));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const decideFullfillmentStatus = (status) => {
|
|
62
|
+
switch (status) {
|
|
63
|
+
case "not_fulfilled":
|
|
64
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "grey", children: "Not fulfilled" }));
|
|
65
|
+
case "partially_fulfilled":
|
|
66
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "blue", children: "Partially fulfilled" }));
|
|
67
|
+
case "fulfilled":
|
|
68
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Fulfilled" }));
|
|
69
|
+
case "partially_shipped":
|
|
70
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "blue", children: "Partially shipped" }));
|
|
71
|
+
case "shipped":
|
|
72
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Shipped" }));
|
|
73
|
+
case "partially_returned":
|
|
74
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "blue", children: "Partially returned" }));
|
|
75
|
+
case "returned":
|
|
76
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Returned" }));
|
|
77
|
+
case "canceled":
|
|
78
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "red", children: "Canceled" }));
|
|
79
|
+
case "requires_action":
|
|
80
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "purple", children: "Requires action" }));
|
|
81
|
+
default:
|
|
82
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "grey", children: "N/A" }));
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
const updateInvoiceNumber = (orderId, invoiceNumber) => {
|
|
86
|
+
setDocumentNumbers((prev) => ({
|
|
87
|
+
...prev,
|
|
88
|
+
[orderId]: {
|
|
89
|
+
...prev[orderId],
|
|
90
|
+
invoiceNumber,
|
|
91
|
+
},
|
|
92
|
+
}));
|
|
93
|
+
};
|
|
94
|
+
const updatePackingSlipNumber = (orderId, packingSlipNumber) => {
|
|
95
|
+
setDocumentNumbers((prev) => ({
|
|
96
|
+
...prev,
|
|
97
|
+
[orderId]: {
|
|
98
|
+
...prev[orderId],
|
|
99
|
+
packingSlipNumber,
|
|
100
|
+
},
|
|
101
|
+
}));
|
|
102
|
+
};
|
|
103
|
+
const columns = (0, react_1.useMemo)(() => [
|
|
104
|
+
{
|
|
105
|
+
Header: (0, jsx_runtime_1.jsx)("div", { className: "pl-2", children: "Order" }),
|
|
106
|
+
accessor: "display_id",
|
|
107
|
+
Cell: ({ cell: { value } }) => ((0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 pl-2", children: `#${value}` })),
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
Header: ("Date added"),
|
|
111
|
+
accessor: "created_at",
|
|
112
|
+
Cell: ({ cell: { value } }) => {
|
|
113
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.TooltipProvider, { children: (0, jsx_runtime_1.jsx)(ui_1.Tooltip, { content: (0, jsx_runtime_1.jsx)(ui_1.Text, { children: (0, moment_1.default)(value).format("DD MMM YYYY hh:mm a") }), children: (0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 min-w-[40px]", children: (0, moment_1.default)(value).format("DD MMM YYYY") }) }) }));
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
Header: ("Customer"),
|
|
118
|
+
accessor: "customer",
|
|
119
|
+
Cell: ({ row, cell: { value } }) => {
|
|
120
|
+
const customer = {
|
|
121
|
+
first_name: value?.first_name ||
|
|
122
|
+
row.original.shipping_address?.first_name,
|
|
123
|
+
last_name: value?.last_name || row.original.shipping_address?.last_name,
|
|
124
|
+
email: row.original.email,
|
|
125
|
+
};
|
|
126
|
+
return ((0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 min-w-[100px]", children: `${(customer.first_name || customer.last_name)
|
|
127
|
+
? `${customer.first_name} ${customer.last_name}`
|
|
128
|
+
: (customer.email
|
|
129
|
+
? customer.email
|
|
130
|
+
: "-")}` }));
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
Header: ("Fulfillment"),
|
|
135
|
+
accessor: "fulfillment_status",
|
|
136
|
+
Cell: ({ cell: { value } }) => decideFullfillmentStatus(value),
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
Header: ("Payment status"),
|
|
140
|
+
accessor: "payment_status",
|
|
141
|
+
Cell: ({ cell: { value } }) => decideStatus(value),
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
Header: () => ((0, jsx_runtime_1.jsx)("div", { className: "text-right", children: ("Total") })),
|
|
145
|
+
accessor: "total",
|
|
146
|
+
Cell: ({ row, cell: { value } }) => ((0, jsx_runtime_1.jsx)("div", { className: "text-grey-90 group-hover:text-violet-60 text-right", children: formatAmountWithSymbol({
|
|
147
|
+
amount: value,
|
|
148
|
+
currency: row.original.currency_code,
|
|
149
|
+
}) })),
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
Header: ("Documents"),
|
|
153
|
+
id: "documents",
|
|
154
|
+
Cell: ({ row }) => {
|
|
155
|
+
const orderId = row.original.id;
|
|
156
|
+
const currentDocumentNumbers = documentNumbers[orderId] || undefined;
|
|
157
|
+
return ((0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 pl-2", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, justifyContent: 'flex-start', direction: 'column', spacing: 1, children: [(0, jsx_runtime_1.jsx)(invoice_number_from_order_1.default, { orderId: orderId, invoiceNumber: currentDocumentNumbers ? currentDocumentNumbers.invoiceNumber : undefined }), (0, jsx_runtime_1.jsx)(packing_slip_number_1.default, { orderId: orderId, packingSlipNumber: currentDocumentNumbers ? currentDocumentNumbers.packingSlipNumber : undefined })] }) }));
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
Header: () => ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, justifyContent: "flex-end", alignItems: "flex-end", spacing: 1, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.TooltipProvider, { children: (0, jsx_runtime_1.jsx)(ui_1.Tooltip, { content: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, children: [(0, jsx_runtime_1.jsx)(ui_1.Text, { size: "small", children: "We do not store documents. " }), (0, jsx_runtime_1.jsx)(material_1.Link, { fontSize: 12, href: 'https://github.com/RSC-Labs/medusa-documents?tab=readme-ov-file#what-means-we-do-not-store-documents', children: "Learn more what it means." })] }), children: (0, jsx_runtime_1.jsx)(icons_1.InformationCircle, {}) }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: "Actions" })] })),
|
|
162
|
+
id: "actions",
|
|
163
|
+
Cell: ({ row }) => {
|
|
164
|
+
return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, justifyContent: 'flex-end', children: (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(actions_dropdown_1.ActionsDropdown, { order: row.original, updateInvoiceNumber: updateInvoiceNumber, updatePackingSlipNumber: updatePackingSlipNumber }) }) }));
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
], [documentNumbers] // Add documentNumbers as a dependency to ensure it re-renders
|
|
168
|
+
);
|
|
169
|
+
return [columns, documentNumbers];
|
|
170
|
+
};
|
|
171
|
+
exports.default = useOrderTableColumns;
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdWktY29tcG9uZW50cy9vcmRlcnMvb3JkZXItdGFibGUvdXNlLWNvbHVtbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBaUJBLDRDQUdDO0FBRUQsMENBR0M7O0FBekJELG9EQUE0QjtBQUM1QixpQ0FBMEM7QUFFMUMscUNBQTJFO0FBQzNFLG1EQUFnRDtBQUNoRCw0Q0FBMkM7QUFDM0MsOEVBQTBFO0FBQzFFLDRGQUFpRTtBQUNqRSxnRkFBc0Q7QUFDdEQsMkNBQW9EO0FBRXBEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxjQUFjLEdBQUcsdUJBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUE7SUFDeEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFFBQWdCLEVBQUUsTUFBYztJQUM5RCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFBO0FBQ3JDLENBQUM7QUFRRCxTQUFTLHNCQUFzQixDQUFDLEVBQzlCLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxHQUNXO0lBQ2pCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQTtJQUVwQixnREFBZ0Q7SUFDaEQsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxHQUFHLE9BQU8sQ0FBQTtJQUNsQixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1B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
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useOrderFilters = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const time_1 = require("./utils/time");
|
|
6
|
+
const formatDateFilter = (filter) => {
|
|
7
|
+
if (filter === null) {
|
|
8
|
+
return filter;
|
|
9
|
+
}
|
|
10
|
+
const dateFormatted = Object.entries(filter).reduce((acc, [key, value]) => {
|
|
11
|
+
if (value.includes("|")) {
|
|
12
|
+
acc[key] = (0, time_1.relativeDateFormatToTimestamp)(value);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
acc[key] = value;
|
|
16
|
+
}
|
|
17
|
+
return acc;
|
|
18
|
+
}, {});
|
|
19
|
+
return dateFormatted;
|
|
20
|
+
};
|
|
21
|
+
const reducer = (state, action) => {
|
|
22
|
+
switch (action.type) {
|
|
23
|
+
case "setFilters": {
|
|
24
|
+
return {
|
|
25
|
+
...state,
|
|
26
|
+
region: action.payload.region,
|
|
27
|
+
salesChannel: action.payload.salesChannel,
|
|
28
|
+
fulfillment: action.payload.fulfillment,
|
|
29
|
+
payment: action.payload.payment,
|
|
30
|
+
status: action.payload.status,
|
|
31
|
+
date: action.payload.date,
|
|
32
|
+
query: action?.payload?.query,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
case "setQuery": {
|
|
36
|
+
return {
|
|
37
|
+
...state,
|
|
38
|
+
offset: 0, // reset offset when query changes
|
|
39
|
+
query: action.payload,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
case "setDate": {
|
|
43
|
+
const newDateFilters = state.date;
|
|
44
|
+
return {
|
|
45
|
+
...state,
|
|
46
|
+
date: newDateFilters,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
case "setOffset": {
|
|
50
|
+
return {
|
|
51
|
+
...state,
|
|
52
|
+
offset: action.payload,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
case "reset": {
|
|
56
|
+
return action.payload;
|
|
57
|
+
}
|
|
58
|
+
default: {
|
|
59
|
+
return state;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const useOrderFilters = (defaultFilters = null) => {
|
|
64
|
+
const initial = (0, react_1.useMemo)(() => parseQueryString(defaultFilters), [defaultFilters]);
|
|
65
|
+
const [state, dispatch] = (0, react_1.useReducer)(reducer, initial);
|
|
66
|
+
const paginate = (direction) => {
|
|
67
|
+
if (direction > 0) {
|
|
68
|
+
const nextOffset = state.offset + state.limit;
|
|
69
|
+
dispatch({ type: "setOffset", payload: nextOffset });
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const nextOffset = Math.max(state.offset - state.limit, 0);
|
|
73
|
+
dispatch({ type: "setOffset", payload: nextOffset });
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const getQueryObject = () => {
|
|
77
|
+
const toQuery = { ...state.additionalFilters };
|
|
78
|
+
for (const [key, value] of Object.entries(state)) {
|
|
79
|
+
if (key === "query") {
|
|
80
|
+
if (value && typeof value === "string") {
|
|
81
|
+
toQuery["q"] = value;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else if (key === "offset" || key === "limit") {
|
|
85
|
+
toQuery[key] = value;
|
|
86
|
+
}
|
|
87
|
+
else if (value.open) {
|
|
88
|
+
if (key === "date") {
|
|
89
|
+
toQuery[stateFilterMap[key]] = formatDateFilter(value.filter);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
toQuery[stateFilterMap[key]] = value.filter;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return toQuery;
|
|
97
|
+
};
|
|
98
|
+
const queryObject = (0, react_1.useMemo)(() => getQueryObject(), [state]);
|
|
99
|
+
return {
|
|
100
|
+
queryObject,
|
|
101
|
+
paginate,
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
exports.useOrderFilters = useOrderFilters;
|
|
105
|
+
const stateFilterMap = {
|
|
106
|
+
region: "region_id",
|
|
107
|
+
salesChannel: "sales_channel_id",
|
|
108
|
+
status: "status",
|
|
109
|
+
fulfillment: "fulfillment_status",
|
|
110
|
+
payment: "payment_status",
|
|
111
|
+
date: "created_at",
|
|
112
|
+
};
|
|
113
|
+
const parseQueryString = (additionals = null) => {
|
|
114
|
+
const defaultVal = {
|
|
115
|
+
status: {
|
|
116
|
+
open: false,
|
|
117
|
+
filter: null,
|
|
118
|
+
},
|
|
119
|
+
fulfillment: {
|
|
120
|
+
open: false,
|
|
121
|
+
filter: null,
|
|
122
|
+
},
|
|
123
|
+
region: {
|
|
124
|
+
open: false,
|
|
125
|
+
filter: null,
|
|
126
|
+
},
|
|
127
|
+
salesChannel: {
|
|
128
|
+
open: false,
|
|
129
|
+
filter: null,
|
|
130
|
+
},
|
|
131
|
+
payment: {
|
|
132
|
+
open: false,
|
|
133
|
+
filter: null,
|
|
134
|
+
},
|
|
135
|
+
date: {
|
|
136
|
+
open: false,
|
|
137
|
+
filter: null,
|
|
138
|
+
},
|
|
139
|
+
offset: 0,
|
|
140
|
+
limit: 15,
|
|
141
|
+
additionalFilters: additionals,
|
|
142
|
+
};
|
|
143
|
+
return defaultVal;
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW9yZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL29yZGVycy9vcmRlci10YWJsZS91c2Utb3JkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUEyQztBQUMzQyx1Q0FBNEQ7QUFpRDVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUF1QixFQUFFLEVBQUU7SUFDbkQsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN4RSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBQSxvQ0FBNkIsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDbEIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sT0FBTyxhQUFhLENBQUE7QUFDdEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FDZCxLQUF1QixFQUN2QixNQUF5QixFQUNQLEVBQUU7SUFDcEIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07Z0JBQzdCLFlBQVksRUFBRSxNQUFNLENBQUMs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
|