2012-07-27 41 views
0

我有一个会计计划,我正在工作,它包含一个嵌套在员工对象中的工资存根表。Rails 3:会计季度

我想实现一个系统,可以识别我的薪资存根的@ stub.date月,并获取所有@ stub.net_pay的总和,无论这个月在第一,第二,第三或第四季度出现在任何季度给定年份。

我希望能够完成这个轨道!有人能指引我朝着正确的方向吗?我很难过。

+0

是不是第一季度总是一月/二月/三月? – 2012-07-27 03:50:08

+0

是的。 1st = [Jan,Feb,March],2nd = [April,May,June]等。 我在想一个可能的解决方案:如果我在@stub对象上有一个:quarter字段,我可以从那里开始。只是不太确定我将如何查询每个季度,然后得到它的总和 – jbearden 2012-07-27 03:52:57

回答

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 
+0

谢谢这是我需要的一脚。感谢帮助! – jbearden 2012-07-27 04:53:09