# -*- coding: utf-8 -*-
# Закрытие периода и начисление ЗП.
class PeriodsController < ApplicationController
  layout "constr_works"

  before_filter :isAuthorization
  before_filter :set_vars
  around_filter :isAccessSuper
  
  def index
    
  end


  def check_closed_period
    if @period
    @reports_not_closed = @period.reports.select{|i| i.status == 0}
    if @reports_not_closed.size > 0
      redirect_to :action => :check_reports, :department => params[:department], :reports_not_closed => @reports_not_closed
    else
      @reports_to_delete = Report.in_month(@period.month).with_status(1).for_department(@period.department)
      @payrolls = Payroll.calculate_for_period(@period).group_by{|i| i.employee}    
    end    
    else
      redirect_to(periods_path())
    end
  end

  def open_prev_period
    if @prev_period
      if @prev_period.open
        flash[:notice] = "Период #{@prev_period.month} открыт!"
      else
        flash[:error] = "Ошибка!"
      end
    else
      flash[:error] = "Период не найден!"
    end
    redirect_to(periods_path())
  end


  def check_reports
    @reports_not_closed = @period.reports.select{|i| i.status == 0}
  end


  
  def close_period
 #   if @reports_without_money.size == 0
      @period = @period.close
      respond_to do |format|
        if @period.errors.size == 0
          flash[:notice] = "Период закрыт!"
          format.html { redirect_to periods_path()}
        else
          flash[:error] = "Ошибка!"
          format.html { render :action => "new"}
        end      
      end
  end


  private

  def set_vars
      @period = Period.actives.for_department("construction").first
      @prev_period =  Period.find(:last, :conditions => "closed is true", :order => :month)
  end
  

  
end
