Updating Bill Calculator to include a minimum billable turnover. Shopfronts are not charged if their tunrover is under the minimum billable.

This commit is contained in:
Lynne Davis
2016-03-17 11:15:06 +00:00
parent b43e770420
commit bfaefa4dc9
2 changed files with 339 additions and 60 deletions

View File

@@ -1,6 +1,6 @@
module OpenFoodNetwork
class BillCalculator
attr_accessor :turnover, :fixed, :rate, :cap, :tax_rate
attr_accessor :turnover, :fixed, :rate, :cap, :tax_rate, :min_bill_to
def initialize(opts={})
@turnover = opts[:turnover] || 0
@@ -8,11 +8,13 @@ module OpenFoodNetwork
@rate = opts[:rate] || Spree::Config[:account_invoices_monthly_rate]
@cap = opts[:cap] || Spree::Config[:account_invoices_monthly_cap]
@tax_rate = opts[:tax_rate] || Spree::Config[:account_invoices_tax_rate]
@min_bill_to = opts[:min_bill_to] || Spree::Config[:minimum_billable_turnover]
end
def bill
bill = fixed + (turnover * rate)
bill = cap > 0 ? [bill, cap].min : bill
bill = turnover > min_bill_to ? bill : 0
bill * (1 + tax_rate)
end
end