git-svn-id: https://192.168.0.254/svn/Rodax.redmine_rodax_crm/trunk@2 ff88604e-da85-c949-a72f-fc3aa3ba3724
49 lines
2.5 KiB
Ruby
49 lines
2.5 KiB
Ruby
class SaleFunelController < ApplicationController
|
|
unloadable
|
|
|
|
before_filter :find_optional_project
|
|
|
|
helper :timelog
|
|
helper :deals
|
|
include DealsHelper
|
|
|
|
def index
|
|
@sale_funel = []
|
|
deal_statuses.each do |status|
|
|
retrieve_date_range(params[:period])
|
|
scope = DealProcess.scoped({})
|
|
scope = scope.scoped(:conditions => ["#{Deal.table_name}.project_id = ?", @project.id]) if @project
|
|
scope = scope.scoped(:conditions => ["#{Deal.table_name}.category_id = ?", params[:category_id]]) if !params[:category_id].blank?
|
|
scope = scope.scoped(:conditions => ["#{DealProcess.table_name}.value = ?", status.id])
|
|
scope = scope.scoped(:conditions => ["#{DealStatus.table_name}.is_closed = ?", params[:is_closed]]) if !params[:is_closed].blank?
|
|
scope = scope.scoped(:conditions => ["#{DealProcess.table_name}.author_id = ?", params[:author_id]]) if !params[:author_id].blank?
|
|
scope = scope.scoped(:conditions => ["#{DealProcess.table_name}.created_at BETWEEN ? AND ?", @from, @to]) if (@from && @to)
|
|
# cond = ARCondition.new
|
|
# cond << ["#{Deal.table_name}.project_id = ?", @project.id] if @project
|
|
# cond << ["#{Deal.table_name}.category_id = ?", params[:category_id]] if !params[:category_id].blank?
|
|
# cond << ["#{DealProcess.table_name}.value = ?", status.id]
|
|
# cond << ["#{DealStatus.table_name}.is_closed = ?", params[:is_closed]] if !params[:is_closed].blank?
|
|
# cond << ["#{DealProcess.table_name}.author_id = ?", params[:author_id]] if !params[:author_id].blank?
|
|
#
|
|
# retrieve_date_range
|
|
# cond << ["#{DealProcess.table_name}.created_at BETWEEN ? AND ?", @from, @to] if (@from && @to)
|
|
|
|
@sale_funel << [status,
|
|
scope.count(:select => "DISTINCT deal_id", :include => {:deal => :status}),
|
|
scope.sum(:price,
|
|
:select => "DISTINCT #{Deal.table_name}.price",
|
|
:include => {:deal => :status},
|
|
:group => :currency)
|
|
]
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.html{ render( :partial => "sale_funel", :layout => false) if request.xhr? }
|
|
format.xml { render :xml => @sale_funel}
|
|
format.json { render :text => @sale_funel.to_json, :layout => false }
|
|
end
|
|
|
|
|
|
end
|
|
end
|