1 # -*- coding: utf-8 -*-
5 class Admin::TotalsController < Admin::BaseController
6 before_filter :admin_permission_check_term
11 params[:search] ||= {}
12 [:month, :date_from, :date_to, :sale_start_from, :sale_start_to].each do | key |
13 params[:search][key] = parse_date_select(params[:search], key)
16 #販売元id=ログインしているユーザーの販売元id
17 params[:search][:retailer_id] ||= session[:admin_user].retailer_id
19 #ログインユーザーのショップが無くて販売元idが違ったらエラー
20 if !session[:admin_user].master_shop? && params[:search][:retailer_id] != session[:admin_user].retailer_id
21 raise ActiveRecord::RecordNotFound
25 @search = OpenStruct.new(params[:search])
28 params[:page] ||= 'term'
31 @agent = Totalizer.get_instance(params[:page])
35 params[:page] = 'term'
36 @agent = Totalizer.get_instance(params[:page])
40 @sale_start_enabled = (params[:page] == 'product')
41 params[:type] ||= @agent.default_type
45 @list_view = @agent.columns
47 @labels = @agent.labels
51 @records = @agent.get_records(params)
53 logger.error e.message
54 e.backtrace.each{|bt|logger.error(bt)}
61 flash[:graph] = @agent.graph
63 logger.error(e.message)
64 e.backtrace.each{|bt|logger.error(bt)}
68 @selected_retailer = params[:search][:retailer_id].to_i
73 send_data flash[:graph], :type => 'image/png', :disposition => 'inline'
75 head :status => :not_found
80 totalizer = Object.const_get("#{params[:page]}_totalizer".classify)
81 csv_data, filename = totalizer.csv(params)
82 send_data(csv_data.tosjis, :type => "application/octet-stream; name=#{filename}; charset=shift_jis; header=present",:disposition => 'attachment', :filename => filename)