40 lines
999 B
JavaScript
40 lines
999 B
JavaScript
const getOrderItemNames = (invitation) => {
|
|
const rawItems = Array.isArray(invitation?.orderItems)
|
|
? invitation.orderItems
|
|
: Array.isArray(invitation?.items)
|
|
? invitation.items
|
|
: [];
|
|
|
|
return rawItems
|
|
.map((item) => {
|
|
if (typeof item === "string") {
|
|
return item.trim();
|
|
}
|
|
|
|
if (item && typeof item === "object" && typeof item.name === "string") {
|
|
return item.name.trim();
|
|
}
|
|
|
|
return "";
|
|
})
|
|
.filter(Boolean);
|
|
};
|
|
|
|
export const getInvitationReferenceLabel = (invitation) => {
|
|
const invoiceNumbers = [...new Set(getOrderItemNames(invitation))];
|
|
if (invoiceNumbers.length === 1) {
|
|
return `Счет ${invoiceNumbers[0]}`;
|
|
}
|
|
|
|
if (invoiceNumbers.length > 1) {
|
|
return `Счета: ${invoiceNumbers.join(", ")}`;
|
|
}
|
|
|
|
const orderNumber = typeof invitation?.orderNumber === "string" ? invitation.orderNumber.trim() : "";
|
|
if (orderNumber) {
|
|
return `Счет ${orderNumber}`;
|
|
}
|
|
|
|
return "Счет —";
|
|
};
|