UNPKG

poster-prro-kit

Version:

Цей Kit призначений для роботи з PRRO, а саме для генерації XML документів для податкової, генерації фіскальних чеків для термопринтерів, генерації документів для PRRO в офлайн режимі, розрахунку податків та генераціі посилання на фіскальний чек в кабін

71 lines (67 loc) 1.84 kB
import qrcode from "qrcode-generator"; import PosterLogo from "../../../../i/public/Poster.js"; import { getControlSum, getCashboxStatus, getCashboxInfo, } from "../../helpers/receiptData.js"; import { DEFAULT_QR_MARGIN, DEFAULT_QR_SIZE } from "../../const/receipt.js"; const generateSvgQrCode = (data) => { const qrCode = qrcode(0, "L"); qrCode.addData(data.fiscalLink); qrCode.make(); const qrCodeSvgTag = qrCode.createSvgTag( data?.qrOptions?.size || DEFAULT_QR_SIZE, data?.qrOptions?.margin || DEFAULT_QR_MARGIN, ); return qrCodeSvgTag; }; const htmlFooterBlock = (data) => [ { type: "ruler" }, { type: "footer", lines: [ data.fiscalId ? { type: "footer-text", value: data.fiscalId.toString(), align: "center", } : null, data.dateTime ? { type: "footer-text", value: data.dateTime, align: "center", } : null, data.footerData ? { type: "footer-text", value: getCashboxStatus(data), align: "center", } : null, getControlSum(data) ? { type: "footer-text", value: getControlSum(data), align: "center" } : null, data?.cashboxData?.cashbox ? { type: "footer-text", value: getCashboxInfo(data), align: "center", } : null, data?.footerData?.docType ? { type: "footer-text", value: data.footerData.docType, align: "center", } : null, { type: "footer-logo", value: PosterLogo, align: "center" }, { type: "footer-qr", value: generateSvgQrCode(data), align: "center" }, ].filter(Boolean), }, ]; export default htmlFooterBlock;