poster-prro-kit
Version:
Цей Kit призначений для роботи з PRRO, а саме для генерації XML документів для податкової, генерації фіскальних чеків для термопринтерів, генерації документів для PRRO в офлайн режимі, розрахунку податків та генераціі посилання на фіскальний чек в кабін
64 lines (58 loc) • 1.41 kB
JavaScript
import { priceFormat } from "../helpers/receipt.js";
const getSummaryBlock = ({ paymentsData, taxesData, roundData, currency }) => [
{
type: "summary",
lines: [
...paymentsBlock(paymentsData, currency),
...taxesBlock(taxesData),
...(roundData ? getRoundData(roundData, currency) : []),
].filter(Boolean),
delimeter: " ",
hideTopBorder: false,
hideBottomBorder: true,
withoutBorder: true,
},
];
const paymentsBlock = (data, currency) => [
{
name: "Готівка",
value: `${priceFormat(data.cash)} ${currency}`,
hidden: !data.cash,
},
{
name: "Безготівкова",
value: `${priceFormat(data.card)} ${currency}`,
hidden: !data.card,
},
{
name: " Картка",
value: " ",
hidden: !data.card,
},
{ type: "ruler" },
{
name: "Сума",
value: `${priceFormat(data.productsSum)} ${currency}`,
bold: true,
},
];
const taxesBlock = (data) =>
[
...data.taxes.map((tax) => ({
name: tax.name,
value: priceFormat(tax.value),
})),
!data.taxes?.length && {
name: "Без ПДВ",
value: " ",
},
].filter(Boolean);
const getRoundData = (data, currency) => [
{ type: "ruler" },
...data.map((item) => ({
name: item.name,
value: `${priceFormat(item.value)} ${currency}`,
hidden: !item.value,
})),
];
export default getSummaryBlock;