I strongly advise you to start again with this query - you have nested sub-queries four levels deep! Even if you eventually get the right results, performance is going to be abysmal.
Take this lowest level section of code :
select id from dbo.vp_kalkulacija_lista where magacin = (select vp_magacin from dbo.podaci_o_korisniku))
That could be replaced with a simple inner join e.g.
select id from dbo.vp_kalkulacija_lista a
inner join dbo.podaci_o_korisniku b on a.magacin = b.vp_magacin
You can then look again at that simplified section which is now
select roba as naziv
,sifra
,convert(float, kolicina) as kolicina
from vp_kalkulacija_roba
where id_fakture IN
(
select id from dbo.vp_kalkulacija_lista a inner join dbo.podaci_o_korisniku b on a.magacin = b.vp_magacin
)
Which could now be written as
select roba as naziv
,sifra
,convert(float, kolicina) as kolicina
from vp_kalkulacija_roba kr
inner join dbo.vp_kalkulacija_lista a on a.id = kr.id_fakture
inner join dbo.podaci_o_korisniku b on a.magacin = b.vp_magacin
I'm not going to continue without sample data and table schemas but hopefully you get the idea.
Another reason your code is difficult to read is all those CONVERT functions - make sure you are storing data in the correct format on the database first, but if you do have to convert it, do that at the last minute. Also - make use of whitespace to make your code more readable, rather than just a single stream of characters.