Rails 3:会计季度

时间:2012-07-27 03:23:48

标签: ruby-on-rails ruby-on-rails-3 activerecord

我正在处理一个会计程序,它包含一个嵌套在员工对象中的工资存根表。

我想实现一个能够识别我的工资存根@ stub.date月份的系统,并获得所有@stud.net_pay的总和到该月所在的任何季度(第1,第2,第3或第4)年。

我希望以轨道方式实现这一目标!有人能指出我正确的方向吗?我很难过。

1 个答案:

答案 0 :(得分:1)

这假设了几个不同的东西(比如employee_id现有),但应该得到你需要的东西。我没有在数据库中进行求和,因为您可能需要检查所有存根以进行验证。

require "active_support"

class Stub < ActiveRecord::Base

  def self.net_pay_for_quarter
    stubs = where(:employee_id => employee_id).
            where("date >= ?", Quarter.begin_of_quarter(date)).
            where("date < ?", Quarter.end_of_quarter(date))
    stubs.map(&:net_pay).sum
  end

end


class Quarter
  def self.begin_of_quarter(date)
    "2012-#{date.month}-01".to_date.beginning_of_month
  end

  def self.end_of_quarter(date)
    "2012-#{date.month}-01".to_date.end_of_month
  end

  def self.quarter_integer(date)
    (date.month / 4) + 1
  end
end