mirror of
https://github.com/internetee/registry.git
synced 2025-06-04 11:47:30 +02:00
Change Invoice::Item price scale to 3 places
This commit is contained in:
parent
3decec8b02
commit
d62e55e6a1
5 changed files with 18 additions and 16 deletions
|
@ -82,7 +82,7 @@ class Invoice < ApplicationRecord
|
|||
end
|
||||
|
||||
def vat_amount
|
||||
subtotal * vat_rate / 100
|
||||
(subtotal * vat_rate / 100)
|
||||
end
|
||||
|
||||
def total
|
||||
|
@ -118,9 +118,8 @@ class Invoice < ApplicationRecord
|
|||
|
||||
vat = VatRateCalculator.new(registrar: registrar_user).calculate
|
||||
wo_vat = (transaction.sum / (1 + (vat / 100)))
|
||||
|
||||
registrar_user.issue_prepayment_invoice(wo_vat, 'Direct top-up via bank transfer',
|
||||
payable: false, total: transaction.sum)
|
||||
payable: false)
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -130,6 +129,6 @@ class Invoice < ApplicationRecord
|
|||
end
|
||||
|
||||
def calculate_total
|
||||
self.total = subtotal + vat_amount
|
||||
self.total = (subtotal + vat_amount).round(3)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@ class InvoiceItem < ApplicationRecord
|
|||
delegate :vat_rate, to: :invoice
|
||||
|
||||
def item_sum_without_vat
|
||||
(price * quantity).round(2)
|
||||
(price * quantity).round(3)
|
||||
end
|
||||
alias_method :subtotal, :item_sum_without_vat
|
||||
|
||||
|
@ -14,6 +14,6 @@ class InvoiceItem < ApplicationRecord
|
|||
end
|
||||
|
||||
def total
|
||||
subtotal + vat_amount
|
||||
(subtotal + vat_amount)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -54,7 +54,7 @@ class Registrar < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def issue_prepayment_invoice(amount, description = nil, payable: true, total: nil)
|
||||
def issue_prepayment_invoice(amount, description = nil, payable: true)
|
||||
vat_rate = ::Invoice::VatRateCalculator.new(registrar: self).calculate
|
||||
|
||||
invoice = invoices.create!(
|
||||
|
@ -90,7 +90,6 @@ class Registrar < ApplicationRecord
|
|||
buyer_email: email,
|
||||
reference_no: reference_no,
|
||||
vat_rate: vat_rate,
|
||||
total: total,
|
||||
items_attributes: [
|
||||
{
|
||||
description: 'prepayment',
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class ChangeInvoiceItemPriceScaleToThreePlaces < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
change_column :invoice_items, :price, :decimal, precision: 10, scale: 3
|
||||
end
|
||||
end
|
|
@ -1,7 +1,3 @@
|
|||
---
|
||||
--- PostgreSQL database dump
|
||||
---
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
|
@ -371,7 +367,6 @@ CREATE TABLE public.bank_statements (
|
|||
id integer NOT NULL,
|
||||
bank_code character varying,
|
||||
iban character varying,
|
||||
import_file_path character varying,
|
||||
queried_at timestamp without time zone,
|
||||
created_at timestamp without time zone,
|
||||
updated_at timestamp without time zone,
|
||||
|
@ -963,7 +958,7 @@ CREATE TABLE public.invoice_items (
|
|||
description character varying NOT NULL,
|
||||
unit character varying NOT NULL,
|
||||
quantity integer NOT NULL,
|
||||
price numeric(10,2) NOT NULL,
|
||||
price numeric(10,3) NOT NULL,
|
||||
created_at timestamp without time zone,
|
||||
updated_at timestamp without time zone,
|
||||
creator_str character varying,
|
||||
|
@ -4850,4 +4845,8 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||
('20200807110611'),
|
||||
('20200811074839'),
|
||||
('20200812090409'),
|
||||
('20200812125810');
|
||||
('20200812125810'),
|
||||
('20200908131554'),
|
||||
('20200910085157');
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue