How to distinguish between products with and without VAT in Visma Global

BxLogistics does not handle VAT, but can choose to retrieve prices either with or without VAT and have separate fields on labels for prices with or without VAT

Most of our customers sell to businesses and only deal with net prices on the handheld terminal, labels, etc. For those who want prices including VAT, most choose the simplest solution: adding a SQL field based on the price and then multiplying it by 1.25.

select
..
A.Price1 as price,
A.Price1 * 1.25 as priceincmva,
..

On the labels, you can then choose to print priceincmva instead of  price, while the value in price is displayed on the handheld terminals. If you want to display the price including VAT on the handheld terminal as well, you can choose to multiply this price too, but it is important not to let the handheld terminal control the price when sending data to the terminal (this is off by default) since Global expects to receive the price without VAT.

If you have products without VAT (e.g., books) and want to display prices including VAT for all products, you cannot simply multiply everything by 1.25. Instead, you can differentiate the products based on the selected posting template.

As a standard, Global has posting templates for several VAT rates, where template 2 is usually without VAT. Then, we can change the SQL to:

select
..
case a.PostingTemplateNo
when 2 then A.Price1
else
A.Price1*1.25
end AS priceincmva,
..

Note that the ID for the posting template may depend on the setup in Global.

It is also possible to retrieve the actual VAT rate per posting template based on a given date, if necessary, but this solution is quick to set up and places less load on the SQL server.