Class: IncomingPayment

Inherits:
Ekylibre::Record::Base show all
Includes:
Attachable, Customizable, PeriodicCalculable
Defined in:
app/models/incoming_payment.rb

Overview

Informations

License

Ekylibre - Simple agricultural ERP Copyright (C) 2008-2009 Brice Texier, Thibaud Merigon Copyright (C) 2010-2012 Brice Texier Copyright (C) 2012-2016 Brice Texier, David Joulin

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see www.gnu.org/licenses.

Table: incoming_payments

accounted_at          :datetime
affair_id             :integer
amount                :decimal(19, 4)   not null
bank_account_number   :string
bank_check_number     :string
bank_name             :string
commission_account_id :integer
commission_amount     :decimal(19, 4)   default(0.0), not null
created_at            :datetime         not null
creator_id            :integer
currency              :string           not null
custom_fields         :jsonb
deposit_id            :integer
downpayment           :boolean          default(TRUE), not null
id                    :integer          not null, primary key
journal_entry_id      :integer
lock_version          :integer          default(0), not null
mode_id               :integer          not null
number                :string
paid_at               :datetime
payer_id              :integer
receipt               :text
received              :boolean          default(TRUE), not null
responsible_id        :integer
scheduled             :boolean          default(FALSE), not null
to_bank_at            :datetime         not null
updated_at            :datetime         not null
updater_id            :integer

Constant Summary

Constants included from PeriodicCalculable

PeriodicCalculable::PARAMETERS

Instance Method Summary collapse

Methods included from Customizable

#custom_value, #set_custom_value, #validate_custom_fields

Methods inherited from Ekylibre::Record::Base

#already_updated?, attr_readonly_with_conditions, #check_if_destroyable?, #check_if_updateable?, columns_definition, complex_scopes, customizable?, #customizable?, #customized?, #destroyable?, #editable?, has_picture, #human_attribute_name, human_attribute_name_with_id, nomenclature_reflections, #old_record, #others, refers_to, scope_with_registration, simple_scopes, #updateable?

Instance Method Details

#deposited?Boolean Also known as: deposit?

Returns true if payment is already deposited

Returns:

  • (Boolean)

148
149
150
# File 'app/models/incoming_payment.rb', line 148

def deposited?
  !!deposit
end

#labelObject

Build and return a label for the payment


159
160
161
# File 'app/models/incoming_payment.rb', line 159

def label
  tc(:label, amount: amount.l(currency: mode.cash.currency), date: self.to_bank_at.l, mode: mode.name, payer: payer.full_name, number: number)
end

#with_commission?Boolean

Returns if a commission is taken

Returns:

  • (Boolean)

154
155
156
# File 'app/models/incoming_payment.rb', line 154

def with_commission?
  mode && mode.with_commission?
end