Prohlížeč zdrojového kódu

app/examples/invoice_calculator/vat_rounding_runner.rb

ic = InvoiceCalculator.new(currency: 'CZK')
pocet.to_i.times { ic.add_item(unit_price: cena.to_d, vat_rate: 21, currency: 'CZK') }
sum_vat = ic.items.sum(&:vat)
total = ic.items.sum(&:total)
precise = (total * ("21".to_d / 100)).round(2)
delta = precise - sum_vat
puts "=== Před finalize ==="
puts "Součet DPH z položek: #{sum_vat} Kč"
puts "Přesná DPH z celku: #{precise} Kč"
puts "Odchylka: #{delta} Kč"
ic.finalize
puts ""
puts "=== Po finalize — jednotlivé položky ==="
ic.items.each_with_index do |item, i|
puts "Položka #{"%2d" % (i + 1)}: bez DPH=#{item.total} Kč, DPH=#{item.vat} Kč, s DPH=#{item.total_with_vat} Kč"
end
puts ""
puts "Celkem bez DPH: #{ic.items.sum(&:total)} Kč"
puts "Celkem DPH: #{ic.items.sum(&:vat)} Kč"
puts "Celkem s DPH: #{ic.items.sum(&:total_with_vat)} Kč"