poster-prro-kit
Version:
Цей Kit призначений для роботи з PRRO, а саме для генерації XML документів для податкової, генерації фіскальних чеків для термопринтерів, генерації документів для PRRO в офлайн режимі, розрахунку податків та генераціі посилання на фіскальний чек в кабін
55 lines (44 loc) • 1.81 kB
JavaScript
import { DECIMAL_PLACES } from "../modules/receiptGenerator/const/receipt.js";
export const formatToFixedDecimal = (sum) =>
Number(sum).toFixed(DECIMAL_PLACES);
export const formatNumber = (num, format) =>
num.toString().padStart(format.length, "0");
export const combineSstDateTime = (date, time) => {
if (!date || !time) return null;
const [day, month, year] = date.split(".").map(Number);
const [hours, minutes, seconds] = time.split(":").map(Number);
const dateTime = new Date(year, month - 1, day, hours, minutes, seconds);
return dateTime.toISOString();
};
export const getDateTime = ({ date, format }) => {
if (!Date.parse(date)) return null;
const localISOTime = new Date(date);
const year = formatNumber(localISOTime.getFullYear(), "yyyy");
const month = formatNumber(localISOTime.getMonth() + 1, "MM");
const day = formatNumber(localISOTime.getDate(), "dd");
const hours = formatNumber(localISOTime.getHours(), "HH");
const minutes = formatNumber(localISOTime.getMinutes(), "mm");
const seconds = formatNumber(localISOTime.getSeconds(), "ss");
if (format === "date") {
return `${day}.${month}.${year}`;
}
if (format === "dateDfsLink") {
return `${year}${month}${day}`;
}
if (format === "time") {
return `${hours}:${minutes}:${seconds}`;
}
if (format === "timeDfsLink") {
return `${hours}${minutes}${seconds}`;
}
if (format === "DDMMYYYYHHMMSS") {
return `${day}${month}${year}${hours}${minutes}${seconds}`;
}
return `${day}.${month}.${year} ${hours}:${minutes}:${seconds}`;
};
const SORT_GREATER = 1;
const SORT_LESS = -1;
export const sortByPayFormCode = (a, b) =>
a.payFormCode > b.payFormCode ? SORT_GREATER : SORT_LESS;
export const sortByProgram = (a, b) =>
a.program > b.program ? SORT_GREATER : SORT_LESS;