# -*- coding: utf-8 -*-
class Btul2sController < ApplicationController
    $department = 'btul2'
    $department_id = '322'
  before_filter :isAuthorization
  before_filter :set_var

  def index
    @reports = Report.for_department('btul2').in_period(@date_from, @date_to)
    if params[:filter_empl] && params[:filter_empl].to_i != 0
      @reports = @reports.select{ |i| i.done_materials.select{ |c| c.employee_id.to_i == params[:filter_empl].to_i}.size > 0}
    end
    @employee = @reports.map{ |i| i.done_materials.map{|c| [c.employee_name, c.employee_id]}.flatten }.uniq - [[]]
  end
  
  def new
    @category = Category.find params[:category]
    @report = Report.new(:department => 'btul2', :date => Time.now, :status => 2, :category => @category.id)
    @report.done_employees.build(:employee => @current_user, :time_addwork => '', :time_stopwork =>'')
  end

  def create
    @report = Report.new(params[:report])
    if @report.category == 96

      for dm in @report.done_materials do
 if dm.employee_name = "btul2"
        dm.inst_type = 2 ### Меняем тип установки на "установка со склада на объект"        
        dm.employee_id = 777777
      end
end
    else
      for dm in @report.done_materials do
        dm.inst_type = 7 ### Меняем тип установки на "снято с объекта на склад" т.к. по умолчанию снятие происходит на руки сотрудника.
      end
    end
    respond_to do |format|
      if @report.save
        flash[:notice] = 'Запись обновлена'
        format.html { redirect_to btul2_path(:filter_month => @report.date.to_date.month, :filter_year => @report.date.to_date.year)}
      else
        flash[:error] = @report.errors.each_full { |msg| puts msg }
        format.html { redirect_to :action => :new, :category => @report.category}
      end
    end
  end

  def destroy
    @report =   Report.find(params[:id])
    if @boss || @report.status == 0
      if @report.destroy
        flash[:notice] = 'Отчет № ' + params[:id] + ' был удален!'
      else
        messages = ''
        flash[:error] = @report.errors.each_full {|msg| messages += msg + "<br/>"}
      end
    else
      flash[:error] = "Отчет был переведен в статус #{@report.status_name}, правка возможна только superuser."
    end

    respond_to do |format|
      format.html { redirect_to btul2_path(:filter_month => @report.date.to_date.month, :filter_year => @report.date.to_date.year)}
    end
  end


  def stats
    @materials = DoneMaterial.btul2.in_dates(@date_from, @date_to).with_empl(params[:filter_empl]).find(:all, :select => "employee_name, employee_id, material_id id, material_name, SUM(count) as count", :group => "material_id")
    @employee = @materials.map{ |i| [i.employee_name, i.employee_id] }.uniq
  end



  private

  def set_var
    Employee.current_user = Employee.find(session[:user_id]) unless session[:user_id].nil?
    $department = 'btul2'
    $department_id = '322'
    cookies[:sys_dep] = { :value => $department }
    @current_user = Employee.current_user
    @boss = (@current_user.accesses.for_department('btul2').size > 0 && @current_user.accesses.for_department('btul2').first.access_superuser == 1)
     if (params[:date_from] && params[:date_to])
       @date_from = params[:date_from].to_date
       @date_to = params[:date_to].to_date
     else
       @date_from = Date.today.beginning_of_month
       @date_to = Date.today.end_of_month
     end

  end



end
