class Graph::SalesProductSetController < CommLogistics::Base::Controller::PortletController
  include CommLogistics::Modules::FusionchartsHelper
  def index
#    sale_date_conditions = []
#    if params[:start_target_date] && params[:end_target_date]
#      sale_date_conditions = ["target_date between ? AND ? AND state_code = ? AND invalid_flag_code = ?", params[:start_target_date], params[:end_target_date], Comm::Const::MasterCode::MCODE_STATUS2_COMP, Comm::Const::MasterCode::MCODE_FLAG_OFF]
#    end
    sale_date_conditions = setSalesConditions()
    if params[:product_category_id].blank? || params[:product_set_id].blank?
      noDataToDisplay()
      return 
    end
    
    @group = params[:product_category_id].split(',').length == 1 ? 'product_set_id' : 'product_category_id'
    tmp_results = Sale.passign("product_category_id", params[:product_category_id]).passign("product_set_id", params[:product_set_id]).find(:all,
                         :joins => :sale_details,
                         :select => "sale_details.product_category_id, sale_details.product_set_id, sale_details.product_id, SUM(IFNULL(sale_details.quantity,0)) as sum_quantity, ROUND(SUM(sale_details.price * IFNULL(sale_details.quantity,1)),0) AS sum_price, ROUND(SUM(sale_details.price * IFNULL(sale_details.quantity,1)) / SUM(IFNULL(sale_details.quantity,0)),0) AS avg_price",
                         :group  => "sale_details.product_set_id, sale_details.product_id",
                         :order => " sale_details.product_category_id, sale_details.product_set_id, sale_details.product_id",
                         :conditions => sale_date_conditions
                         ).only_hashfy()
    #データが一件もなかったら
    if tmp_results.empty?
      noDataToDisplay()
      return 
    end
    @results = tmp_results.add_disp_names({:nil_str=>'その他'})
    @fc = FCBubbleDataSet.new(:results => @results, :xaxis => 'sum_quantity', :yaxis => 'avg_price', :zaxis=>'sum_price', :group => @group)
#    @fc = FCBubbleDataSet.new(:results => @results,
#                              :xaxis => 'sum_quantity',
#                              :yaxis => 'avg_price',
#                              :zaxis => 'sum_price',
#                              :xtics => 5
#                              )
    
    respond_to do |format|
      format.xml
      format.json
    end
  end
end
