Столкнулся с некорректным вычислением НДС и суммы без и с НДС в Счетах в SuiteCRM. Когда для конечного клиента по той или иной позиции показывают цену без НДС, то все считается превосходно: 40 000 + 18% = 47 200
А вот в случаях, когда озвучиваемая клиенту цена уже содержит в себе НДС, то при составлении Счетов по таким позициям возможны некоторые математические ошибки на одну копейку:
Допустим конечная цена для клиента на позицию = 40 000
тогда стоимость по прайсу: 40 000 / 1.18 = 33 898.305
но дело в том, что в Счетах при редактировании позиций можно указывать цифры только с двумя знаками после запятой. А пятерка на конце цифры 33 898.305 дает некоторую неопределенность в округлении - толи вверх, толи в низ. Из-за этого происходит нарушение расчетов в функции calculateLine в файле modules/AOS_Products_Quotes/line_items.js при вычислении размера налога.
Если в поле "Стоимость по прайсу" ввести значение 33 898.305, то все будет подсчитано корректно. НО! три знака после запятой не сохранится! Сохранится только два! А это значит, что при последующем редактировании в это поле будет подставлено значение 33 898.30. а это приведет к тому, что конечная цена с НДС будет не 40 000 а 39,999.99
Если же в поле ввести 33,898.31, то это тоже даст погрешность в одну копейку:
Решением этой проблемы является округление "вверх" при расчете суммы налога:
Найдите в функции calculateLine строки:
var vat = unformatNumber(document.getElementById(key + 'vat' + ln).value,',','.'); var productTotalPrice = productQty * productUnitPrice; var totalvat=(productTotalPrice * vat) /100;
и добавьте к ним еще одну строчку, чтобы получилось вот так:
var vat = unformatNumber(document.getElementById(key + 'vat' + ln).value,',','.'); var productTotalPrice = productQty * productUnitPrice; var totalvat=(productTotalPrice * vat) /100; totalvat = Math.ceil(totalvat*100)/100;
Тем самым мы строкой totalvat = Math.ceil(totalvat*100)/100; приводим промежуточное значение налога к двум знакам после запятой с округлением "вверх". В итоге НДС будет рассчитан правильно:
Фикс бага проверялся на SuiteCRM 7.3.2, но, думаю будет актуален и для более ранних и более поздних версий SuiteCRM. Так же баг наблюдается во всех модулях SuiteCRM, использующих набор продуктов при помощи модуля AOS_Products_Quotes: Счета, Предложения
Edited by SpravkaCRM.ru
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign In Now