Class: CashSession

Inherits:
Ekylibre::Record::Base show all
Defined in:
app/models/cash_session.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: cash_sessions

cash_id              :integer          not null
created_at           :datetime         not null
creator_id           :integer
currency             :string
expected_stop_amount :decimal(19, 4)   default(0.0)
id                   :integer          not null, primary key
lock_version         :integer          default(0), not null
noticed_start_amount :decimal(19, 4)   default(0.0)
noticed_stop_amount  :decimal(19, 4)   default(0.0)
number               :string
started_at           :datetime         not null
stopped_at           :datetime
updated_at           :datetime         not null
updater_id           :integer

Instance Method Summary collapse

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

#zticketObject


68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'app/models/cash_session.rb', line 68

def zticket
  {
    cash_id: id,
    open_cash: noticed_start_amount,
    close_cash: noticed_stop_amount,
    ticket_count: affairs.map(&:deals_count).inject(:+),
    customers_count: 1,
    payment_count: affairs.count,
    consolidated_sales: affairs.map(&:credit).inject(:+),
    payments: affairs.inject([]) do |array, affair|
      array << affair.incoming_payments.map do |payment|
        {
          id: payment.id,
          _type: payment.mode.name,
          amount: payment.amount,
          currency: payment.currency,
          currency_amount: nil
        }.to_struct
      end
    end.flatten,
    taxes: [],
    category_sales: []
  }.to_struct
end