- последна редакция на: 2021-07-17
Алгоритми за закръгляване във фискалните устройства в България
Продажбите чрез фискални устройства не могат да се приравнят към прост печат на обикновен ESC/POS принтер. Изчисленията са изнесени във фискалните устройства, които се проверяват и сертифицират преди да бъдат пуснати на пазара.
В много практически случаи се налага документа, който ще бъде отпечатан от фискалното устройство да бъде визуализиран предварително. В тези случаи, а също и когато трябва да се отпечата фактура, към която да се прикрепи фискалната бележка – разработчиците на софтуер трябва да са наясно с алгоритъма за закръгление, който се използва от фискалните устройства. Неправилното закръгляване може да Ви изиграе твърде лоша шега. Като пример мога да дам отпечатването на фактура, в която крайната сума се различава от сумата върху фискалната бележка. Като друг пример мога да дам натрупване на разликата в сумите с времето. Ако приходните суми в базите данни на търговските обекти и справките отпечатани на тяхна база се различават с тези, отпечатани от фискалните устройства, се получава сериозен проблем с отчитането в края на месеца (или годината). За да се избегнат подобни неприятности - в тази статия са предоставени алгоритми, който се използват в най-широко разпространените фискални устройства в България – производство на Датекс ООД.
Когато изчислявате (за нуждите на визуализация, запис или печат на фактура) необходимите Ви суми – редно е да се съобразявате с модела на фискалното устройство. В зависимост от модела е възможно да се използва един или друг алгоритъм за закръгляване. Разликата в алгоритмите (по модели) съществува по „исторически“ причини. В продължение на голям период от време – фирмуера на голяма част от моделите на Датекс ООД е произвеждан във външна фирма. Към настоящия момент тази фирма е закупена от Датекс, но тъй като моделите са на пазара от години, смяната на алгоритъма за изчисление не е възможна без това да навреди на клиентите, които използват вече разработения и също съществуващ от години софтуер. Изискването за съвместимост налага към настоящия момент да се поддържат същите алгоритми за закръгляване и разпределяне на суми по данъчни групи, с които дадения модел е влязъл в употреба преди години. В статиитe по-долу са посочени разликите в алгоритмите, когато това е необходимо. За по-голяма яснота ще разделим фискалните устройства на Датекс по групи в зависимост от модела на устойството:
- Група "A" - FP-2000, FP-800, FP-650, SK-21F, SK-31F, FMP-10, FP-700;
- Група "B" - DP-05, DP-15, DP-25, DP-35, DP-150, WP-50;
- Група "C" - FP-700X, DP-25X, DP-150X, WP-50X, WP-500X, FMP-55X, FMP-350X, DP-05C;
- Алгоритъм за: изчисляване на сумата за даден ред от продажбите във фискална бележка;
- Алгоритъм за: изчисляване на корекция върху ред от продажбата, чрез процент;
- Алгоритъм за: изчисляване на корекция върху ред от продажбата, чрез твърдо определена сума;
- Алгоритъм за: изчисляване на натрупване на суми по данъчни групи и текуща обща сума;
- Алгоритми за изчисляване на корекции върху текущо натрупана сума (субтотал):
- Алгоритъм за: корекция на текущо натрупаната сума с точно определена сума;
- Алгоритми за: корекция на текущо натрупаната сума с даден процент;
- Алгоритъм за: калкулиране на натрупани нето суми и суми по данъци;
- Алгоритъм за: преизчисляване при Z-отчет;
Към датата на написване на тази статия - нормативните документи, с които се определят единиците за измерване, разрешени за използване в Република България можете да намерите тук. Когато говорим за закръгляване на някаква сума при фискалните устройства, законодателството в България определя то да става до втория знак след десетичния разделител. Ако говорим за количество, тогава закръгляването трябва да става до третия знак.
В България се използва математическо закръгляване (в някои програмни езици има така нареченото банкерско закръгляване, което не трябва да се използва в този случай). За допълнително изясняване - ето и примери за математическо закръгляване:
- сумата 0.014 се закръглява до една стотинка: 0.01
- сумата 0.015 се закръглява до две стотинки 0.02
- количество 1.1954 се закръглява до 1.195
- количество 1.1954478 се закръглява до 1.196
Обикновено единичната цена на даден артикул в базите данни се пази без съответния начислен данък.
Всеки един от продаваните артикули може да бъде само в една данъчна група.
В общия случай на продажба чрез фискално устройство, продаваните артикули са повече от един, като софтуера трябва да подаде към фискалното устройство сума с вече начислен данък в съответната данъчна група.
Ако данните в тази статия са непълни или некоректни - моля пишете ми, за да коригирам статията

