私が取り組んでいる会計プログラムがあり、従業員オブジェクトにネストされた給与明細のテーブルが含まれています。
給与明細の @stub.date 月を認識し、すべての @stub.net_pay の合計を、特定の年の月のどの四半期 (第 1、第 2、第 3、または第 4) に取得するシステムを実装したいと考えています。
私はこれをレールの方法で達成したいと思っています! 誰かが私を正しい方向に向けることができますか? 私は困惑しています。
私が取り組んでいる会計プログラムがあり、従業員オブジェクトにネストされた給与明細のテーブルが含まれています。
給与明細の @stub.date 月を認識し、すべての @stub.net_pay の合計を、特定の年の月のどの四半期 (第 1、第 2、第 3、または第 4) に取得するシステムを実装したいと考えています。
私はこれをレールの方法で達成したいと思っています! 誰かが私を正しい方向に向けることができますか? 私は困惑しています。
これは、いくつかの異なるもの(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