0

私が取り組んでいる会計プログラムがあり、従業員オブジェクトにネストされた給与明細のテーブルが含まれています。

給与明細の @stub.date 月を認識し、すべての @stub.net_pay の合計を、特定の年の月のどの四半期 (第 1、第 2、第 3、または第 4) に取得するシステムを実装したいと考えています。

私はこれをレールの方法で達成したいと思っています! 誰かが私を正しい方向に向けることができますか? 私は困惑しています。

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 に答える