Fiscali provides ONE thing:
- Additional methods on your Date and Time classes to jump around dates in your Financial Year.
- Not sure it's a point to be said, but YES, you can specify your financial year zone and if you dont know your zone, just provide the first month your financial year to the Date/Time class.
sudo gem install fiscali
In Rails projects, include the gem in the Gemfile and run "bundle install" to install the gem.
gem "fiscali"
Next step is to provide your Date/Time class your start zone. Stick this in an initializer file. (If you didnt understand that, put it in $ENV[RAILS_ROOT]/config/initializers/fiscali.rb)
Date.fiscal_zone = :india
Time.fiscal_zone = :india
or Date.start_month = 4
you can also determine the default for Year Forward by adding this to the same initializer file:
Date.use_forward_year!
Time.use_forward_year!
or if you wish to revert back to the default
Date.reset_forward_year!
Time.reset_forward_year!
Year Forward refers to the standard name for a fiscal year. For example:
- If FY 2008 spans 2008 - 2009, set to false or don't include in initializer file.
- If FY 2008 spans 2007 - 2008, set to true in initializer file.
By default, the financial year start in January. (Correct me, but thats not a common start of financial year!) Known Zones are -
{:india => 4, :uk => 4, :us => 10, :pakistan => 7, :australia => 7, :ireland => 1, :nz => 7, :japan => 4}
By default, the Year Forward option is set to false, meaning the term FY 2008 spans 2008-2009 years.
Date.fy_start_month
=> 1
Date.fiscal_zone = :india
=> :india
Date.fy_start_month
=> 4
Date.fiscal_zone
=> :india
Date.fy_start_month = 7
=> 7
Date.fy_start_month
=> 7
Date.fiscal_zone
=> nil
Date.uses_forward_year?
=> false
Date.today.financial_year
=> 2009
Date.use_forward_year!
=> true
Date.today.financial_year
=> 2010
Date.uses_forward_year?
=> true
If you want to add your own fiscal zone
RisingSun::Fiscali::FISCAL_ZONE.merge!(:my_own_zone => 2)
should do the trick.
Date.fiscal_zone = :india
=> :india
Date.fy_start_month
=> 4
Indian Fiscal Year starts from 1st of April Assume Date.today is 1st May 2009
Date.today.financial_year
=> 2009
Date.today.beginning_of_year.financial_year
=> 2008
Since 1st Jan 2009 in India falls in the 2008-09 financial year
Date.today.beginning_of_financial_year
=> 1st April 2009
Date.today.beginning_of_year.beginning_of_financial_year
=> 1st April 2008
Date.today.financial_quarter
=> Q1 2009
Date.today.beginning_of_year.financial_quarter
=> Q4 2009
Date.today.financial_half
=> H1
Date.today.beginning_of_year.financial_half
=> H2
Date.today.next_financial_quarter
=> 1st July 2009
Date.today.next_financial_half
=> 1st October 2009
beginning_of_financial_quarter -> Takes you to the beginning of a quarter in the current financial year (defaults to current quarter)
Date.today.beginning_of_financial_quarter
=> 1st April 2009
Date.today.beginning_of_year.beginning_of_financial_quarter
=> 1st Jan 2009
Date.today.beginning_of_financial_quarter(3)
=> 1st July 2009
end_of_financial_quarter -> Takes you to the end of a quarter in the current financial year (defaults to current quarter)
Date.today.end_of_financial_quarter
=> 30th June 2009
Date.today.beginning_of_year.end_of_financial_quarter
=> 31st March 2009
Date.today.end_of_financial_quarter(3)
=> 30th September 2009
Date.today.beginning_of_financial_half
=> 1st April 2009
Date.today.beginning_of_year.beginning_of_financial_quarter
=> 1st Oct 2008
Date.today.previous_financial_quarter
=> 1st Jan 2009
Date.today.beginning_of_year.previous_financial_quarter
=> 1st Oct 2008
Date.today.previous_financial_half
=> 1st Oct 2008
Date.today.beginning_of_year.previous_financial_quarter
=> 1st Apr 2008