1 # -*- coding: utf-8 -*-
5 class Admin::TotalsController < Admin::BaseController
6 before_filter :admin_permission_check_term
10 params[:search] ||= {}
11 [:month, :date_from, :date_to, :sale_start_from, :sale_start_to].each do | key |
12 params[:search][key] = parse_date_select(params[:search], key)
14 params[:search][:retailer_id] ||= session[:admin_user].retailer_id
15 if !session[:admin_user].master_shop? && params[:search][:retailer_id] != session[:admin_user].retailer_id
16 raise ActiveRecord::RecordNotFound
18 @search = OpenStruct.new(params[:search])
19 params[:page] ||= 'term'
20 @agent = Totalizer.get_instance(params[:page])
22 params[:page] = 'term'
23 @agent = Totalizer.get_instance(params[:page])
25 @sale_start_enabled = (params[:page] == 'product')
26 params[:type] ||= @agent.default_type
28 @list_view = @agent.columns
30 @labels = @agent.labels
32 @records = @agent.get_records(params)
34 logger.error e.message
35 e.backtrace.each{|bt|logger.error(bt)}
39 flash[:graph] = @agent.graph
41 logger.error(e.message)
42 e.backtrace.each{|bt|logger.error(bt)}
44 @selected_retailer = params[:search][:retailer_id].to_i
49 send_data flash[:graph], :type => 'image/png', :disposition => 'inline'
51 head :status => :not_found
56 totalizer = Object.const_get("#{params[:page]}_totalizer".classify)
57 csv_data, filename = totalizer.csv(params)
58 send_data(csv_data.tosjis, :type => "application/octet-stream; name=#{filename}; charset=shift_jis; header=present",:disposition => 'attachment', :filename => filename)