0

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

我想实现一个系统,该系统可以识别我的工资单的@stub.date 月份,并将所有@stub.net_pay 的总和计算到给定年份该月所在的任何季度(第一、第二、第三或第四)。

我希望以这种方式完成这个!有人可以指出我正确的方向吗?我难住了。

4

1 回答 1

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
于 2012-07-27T04:19:12.857 回答