# coding: utf-8
class AuditsController < ApplicationController

  def show
    @report = Report.find params[:id]
    @audit_groups = @report.audits.group_by{|i| [i.created_at+3.hours, i.employee_nic]}
  end

  def destroyed
    
    #  @reports = Report.include_deleted_in{Report.find(:all, :conditions =>"department = '#{params[:department]}' AND closed_at IS NOT NULL")}
        if (params[:filter_month] && params[:filter_month] != '' && params[:filter_year])
      month = params[:filter_month].to_s
      year = params[:filter_year].to_s
    else
      month = Date.today.month.to_s
      year = Date.today.year.to_s
    end
    if params[:filter_day] && params[:filter_day] != ""
      @date = (month +'/'+params[:filter_day]+'/' + year).to_date
      date_from = @date
      date_to = @date
    else
      @date = (month +'/01/' + year).to_date
      date_from = @date
      date_to = @date.end_of_month
    end
    @categories = Category.find(:all, :conditions =>"department = '#{params[:department]}'")
    cond = []

   
    cond << "r.closed_at IS NOT NULL"
    cond << "r.category = #{params[:category]}" unless params[:category].to_i == 0
    cond << "status = #{params[:filter_status]}" if params[:filter_status] && params[:filter_status] != '5'
    cond = cond.join(" AND ")

    @reports = 
        Report.find_by_sql(
                           "SELECT GROUP_CONCAT(DISTINCT CONCAT('<li>', done_employees.empl_name, '  (', done_employees.sum, '<font class=currency> руб.</font>)</li>') SEPARATOR ' ') as empls,
                                   (SELECT GROUP_CONCAT(CONCAT('<li>', 
#{DoneMaterial.inst_type_for_sql}, ': ',
dm.material_name, ' ',
(IF((dm.count > 1), (CONCAT(dm.count, ' шт. ')), '')),
IF((dm.price>0), (CONCAT(' (цена - ', dm.price, ') ')), ''),
'</li>') SEPARATOR ' ') as mats FROM done_materials dm WHERE dm.report_id = r.id AND (dm.inst_type != 6 OR dm.pay_type != 4) GROUP BY dm.report_id) as mats, 
                                   GROUP_CONCAT(DISTINCT CONCAT('<li>', IFNULL(w.name, p.name), ' - ', dw.count, '</li>') SEPARATOR ' ') as wrks, 
                                   IF((r.get_money_sum = 0 OR r.get_money_sum = NULL), '', CONCAT('<li>', 'НЕСТАНДАРТНАЯ РАБОТА: ', r.com_conflicts, ' - ', r.get_money_sum, '</li>') ) as not_standart_wrks, 
                            
                            r.id as id, r.request_id, r.name, r.date, r.sum, r.status, ct.name as cat_n, r.weld, r.com_imperfection, r.com_stay_work as comment, ed.login as ed_name, r.request_closed, r.request_bonus_sum, r.total_sum_get_money, r.money_type, r.closed_at
                               FROM reports r 
                                    LEFT JOIN done_employees on done_employees.report_id = r.id 
                                    LEFT JOIN pricelist.pl_people ed on r.update_user_id = ed.id                                     
                                    LEFT JOIN category ct ON ct.id = r.category 
                                    LEFT JOIN done_works dw ON dw.report_id = r.id
                                    LEFT JOIN works AS w ON dw.work_id=w.id && dw.pricelist=0
                                    LEFT JOIN pricelist.pl_items AS p ON dw.work_id=p.id && dw.pricelist=1
                                         WHERE DATE(r.date) BETWEEN DATE('#{date_from}') AND DATE('#{date_to}') AND #{cond}
                                               GROUP BY r.id ORDER BY r.request_id, r.date,r.name")

   

  end

  def open
    @report = Report.include_deleted_in{ Report.find params[:id]}
    if @report.open!
      flash[:notice] = 'Запись восстановлена!'
    else
      flash[:error] = @report.errors.each_full { |msg| puts msg }
    end
    respond_to do |f|
      f.html { redirect_to destroyed_audits_path(:filter_month => @report.date.to_date.month, :filter_year => @report.date.to_date.year, :department => @report.department)}
    end
  end
  
  
  
end
