Sha256: 586d07fee585bc39606e7af71b633ad2e9f59ce645d908d2135f073fc410091a
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
class ChargeBookingTemplate < BookingTemplate # Charge Rates def charge_rate(date = nil, params = {}) ChargeRate.by_person(params[:person_id]).current(charge_rate_code, date) end def amount(date = nil, params = {}) rate = charge_rate(date, params) return 0.0 unless rate if self.amount_relates_to.present? return rate.rate / 100 else return rate.rate end end def booking_parameters(params = {}) person_id = params.delete(:person_id) # Prepare parameters set by template booking_params = attributes.reject!{|key, value| !["title", "comments", "credit_account_id", "debit_account_id"].include?(key)} params.stringify_keys! # Lookup reference reference = params['reference'] unless reference ref_type = params['reference_type'] ref_id = params['reference_id'] if ref_type.present? and ref_id.present? reference = ref_type.constantize.find(ref_id) end end if reference # Calculate amount booking_params['value_date'] = reference.value_date booking_amount = self.amount(reference.value_date, :person_id => person_id) case self.amount_relates_to when 'reference_amount' booking_amount *= reference.amount when 'reference_balance' booking_amount *= reference.balance when 'reference_amount_minus_balance' booking_amount *= reference.amount - reference.balance end end booking_amount = booking_amount.try(:round, 2) booking_params['amount'] = booking_amount # Override by passed in parameters booking_params.merge!(params) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bookyt-0.0.1 | app/models/charge_booking_template.rb |