Fix bugs and add filters.

This commit is contained in:
BoHung Chiu 2020-11-03 11:03:27 +08:00
parent bd1d8f5c5c
commit 3860ce7f78
9 changed files with 210 additions and 181 deletions

View File

@ -49,14 +49,31 @@ class Admin::VenueManagementBillsController < Admin::VenueAdminController
(render_html('<%= org_datetime_picker("filters[accounting_month_end]", {:no_label => true, :format=>"yyyy/MM", :new_record=>false, :value=>(DateTime.parse(params[:filters]["accounting_month_end"]) rescue nil)}) %>' ) ) + (render_html('<%= org_datetime_picker("filters[accounting_month_end]", {:no_label => true, :format=>"yyyy/MM", :new_record=>false, :value=>(DateTime.parse(params[:filters]["accounting_month_end"]) rescue nil)}) %>' ) ) +
render_html("<%= submit_tag(I18n.t('venue_management.search')) %>") + render_html("<%= submit_tag(I18n.t('venue_management.search')) %>") +
'</div></div>') '</div></div>')
filter_bill
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
if request.xhr?
render :partial => 'index'
end
end
def filter_bill
if defined?(params).blank?
params = @params
end
@ext_filename = ""
@bills = nil
@categories = @module_app.categories.enabled
@filter_fields = filter_fields(@categories)
filter_tags = params[:filters]["type"].to_a rescue [] filter_tags = params[:filters]["type"].to_a rescue []
@main_ids = nil @main_ids = nil
if !filter_tags.blank? if !filter_tags.blank?
@ext_filename += (I18n.t("vm_inviting.type") + ": #{Tag.where(:id.in=>filter_tags).map{|t| t.name}.join(',')}")
@main_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:venue_management_main_id) @main_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:venue_management_main_id)
if !filters("category").blank? if !filters("category").blank?
@main_ids = VenueManagementMain.where(:id.in=>@main_ids).with_categories(filters("category")).pluck(:id) @main_ids = VenueManagementMain.where(:id.in=>@main_ids).with_categories(filters("category")).pluck(:id)
end end
elsif !filters("category").blank? elsif !filters("category").blank?
@ext_filename += (I18n.t(:category) + ": #{Category.where(:id.in=>filters("category")).map{|t| t.title}.join(',')}") if @ext_filename.blank?
@main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id) @main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id)
end end
if ( !params[:filters]["bill_typeA"].blank? rescue false) if ( !params[:filters]["bill_typeA"].blank? rescue false)
@ -69,18 +86,24 @@ class Admin::VenueManagementBillsController < Admin::VenueAdminController
end end
if @bills.nil? if @bills.nil?
if accounting_month_start != 0 && accounting_month_end != 0 if accounting_month_start != 0 && accounting_month_end != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~#{accounting_month_end}") if @ext_filename.blank?
@bills = VenueManagementBill.where(:accounting_month.gte=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10) @bills = VenueManagementBill.where(:accounting_month.gte=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
elsif accounting_month_start != 0 elsif accounting_month_start != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~") if @ext_filename.blank?
@bills = VenueManagementBill.where(:accounting_month.gte=>accounting_month_start).page(params[:page]).per(10) @bills = VenueManagementBill.where(:accounting_month.gte=>accounting_month_start).page(params[:page]).per(10)
elsif accounting_month_end != 0 elsif accounting_month_end != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": ~#{accounting_month_end}") if @ext_filename.blank?
@bills = VenueManagementBill.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10) @bills = VenueManagementBill.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
end end
else else
if accounting_month_start != 0 && accounting_month_end != 0 if accounting_month_start != 0 && accounting_month_end != 0
@bills = @bills.where(:accounting_month.gte=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10) @ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~#{accounting_month_end}") if @ext_filename.blank?
@bills = @bills.where(:accounting_month.gt=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
elsif accounting_month_start != 0 elsif accounting_month_start != 0
@bills = @bills.where(:accounting_month.gte=>accounting_month_start).page(params[:page]).per(10) @ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~") if @ext_filename.blank?
@bills = @bills.where(:accounting_month.gt=>accounting_month_start).page(params[:page]).per(10)
elsif accounting_month_end != 0 elsif accounting_month_end != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": ~#{accounting_month_end}") if @ext_filename.blank?
@bills = @bills.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10) @bills = @bills.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
end end
end end
@ -91,12 +114,24 @@ class Admin::VenueManagementBillsController < Admin::VenueAdminController
@bills = @bills.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10) @bills = @bills.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10)
end end
end end
if @bills.nil? if @bills.nil? && params[:id].blank?
@bills = VenueManagementBill.all.page(params[:page]).per(10) @bills = VenueManagementBill.all.page(params[:page]).per(10)
elsif @bills.nil?
@bills = VenueManagementBill.where(:venue_management_main_id=>params[:id])
elsif !params[:id].blank?
@bills = @bills.where(:venue_management_main_id=>params[:id])
end end
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" if params[:keywords].present?
if request.xhr? @main_ids = @bills.pluck(:venue_management_main_id)
render '_index' @venue_managements = VenueManagementMain.where(:id.in=>@main_ids)
if params[:keywords] == I18n.t(:empty)
ids = @bills.map{|bill| ((bill.contractor.display_contractors.blank?) rescue true) ? bill.id : nil }
else
ids = @bills.map{|bill| (bill.contractor.display_contractors.include?(params[:keywords]) rescue false) ? bill.id : nil }
end
@main_ids = search_data(@venue_managements,[:title]).pluck(:id)
ids1 = VenueManagementBill.where(:venue_management_main_id.in=>@main_ids).pluck(:id)
@bills = VenueManagementBill.where(:id.in=>(ids + ids1)).page(params[:page]).per(10)
end end
end end
@ -147,83 +182,23 @@ class Admin::VenueManagementBillsController < Admin::VenueAdminController
render_to_string(:inline=>code,:locals=>pass_variables) render_to_string(:inline=>code,:locals=>pass_variables)
end end
def export def export
filename = "" filter_bill
@bills = nil
@categories = @module_app.categories.enabled
@filter_fields = filter_fields(@categories)
filter_tags = params[:filters]["type"].to_a rescue []
@main_ids = nil
if !filter_tags.blank?
filename += (I18n.t("vm_inviting.type") + ": #{Tag.where(:id.in=>filter_tags).map{|t| t.name}.join(',')}")
@main_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:venue_management_main_id)
if !filters("category").blank?
@main_ids = VenueManagementMain.where(:id.in=>@main_ids).with_categories(filters("category")).pluck(:id)
end
elsif !filters("category").blank?
filename += (I18n.t(:category) + ": #{Category.where(:id.in=>filters("category")).map{|t| t.title}.join(',')}") if filename.blank?
@main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id)
end
if ( !params[:filters]["bill_typeA"].blank? rescue false)
@bills = VenueManagementBill.where(:bill_typeA=>params[:filters]["bill_typeA"],:bill_typeB=>params[:filters]["bill_typeB"]).page(params[:page]).per(10)
end
accounting_month_start = DateTime.parse(params[:filters]["accounting_month_start"]) rescue 0
accounting_month_end = DateTime.parse(params[:filters]["accounting_month_end"]) rescue 0
if(accounting_month_end != 0)
accounting_month_end = accounting_month_end + 1.month - 1.day
end
if @bills.nil?
if accounting_month_start != 0 && accounting_month_end != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~#{accounting_month_end}") if filename.blank?
@bills = VenueManagementBill.where(:accounting_month.gte=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
elsif accounting_month_start != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~") if filename.blank?
@bills = VenueManagementBill.where(:accounting_month.gte=>accounting_month_start).page(params[:page]).per(10)
elsif accounting_month_end != 0
filename += (I18n.t("vm_bill.accounting_month") + ": ~#{accounting_month_end}") if filename.blank?
@bills = VenueManagementBill.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
end
else
if accounting_month_start != 0 && accounting_month_end != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~#{accounting_month_end}") if filename.blank?
@bills = @bills.where(:accounting_month.gt=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
elsif accounting_month_start != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{accounting_month_start}~") if filename.blank?
@bills = @bills.where(:accounting_month.gt=>accounting_month_start).page(params[:page]).per(10)
elsif accounting_month_end != 0
filename += (I18n.t("vm_bill.accounting_month") + ": ~#{accounting_month_end}") if filename.blank?
@bills = @bills.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10)
end
end
if !@main_ids.nil?
if @bills.nil?
@bills = VenueManagementBill.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10)
else
@bills = @bills.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10)
end
end
if @bills.nil? && params[:id].blank?
@bills = VenueManagementBill.all.page(params[:page]).per(10)
elsif @bills.nil?
@bills = VenueManagementBill.where(:venue_management_main_id=>params[:id])
elsif !params[:id].blank?
@bills = @bills.where(:venue_management_main_id=>params[:id])
end
@bills = @bills.page(1).per(@bills.count) @bills = @bills.page(1).per(@bills.count)
@protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme)
@host = "#{@protocol}://#{request.host_with_port}" @host = "#{@protocol}://#{request.host_with_port}"
@site_in_use_locales = Site.first.in_use_locales @site_in_use_locales = Site.first.in_use_locales
filename = "export_bills" if filename.blank? @ext_filename = "export_bills" if @ext_filename.blank?
filename = filename + "_export.xlsx" @ext_filename = @ext_filename + "_export.xlsx"
@id = params[:id] @id = params[:id]
respond_to do |format| respond_to do |format|
format.xlsx { format.xlsx {
response.headers['Content-Transfer-Encoding'] = 'binary' response.headers['Content-Transfer-Encoding'] = 'binary'
response.headers['Content-Type'] = 'binary/octet-stream' response.headers['Content-Type'] = 'binary/octet-stream'
response.headers['Content-Disposition'] = 'attachment; filename="' + filename + '"' response.headers['Content-Disposition'] = 'attachment; filename="' + @ext_filename + '"'
} }
end end
render :layout => false render :layout => false
# file_path = "tmp/cache/#{filename}" # file_path = "tmp/cache/#{@ext_filename}"
# File.open(file_path, 'w') do |f| # File.open(file_path, 'w') do |f|
# f.write render_to_string( handlers: [:axlsx], formats: [:xlsx] ,locals: {:@bills=>@bills,:@protocol=>@protocol,:@host=>@host,:@site_in_use_locales=>@site_in_use_locales}, :layout=>false ) # f.write render_to_string( handlers: [:axlsx], formats: [:xlsx] ,locals: {:@bills=>@bills,:@protocol=>@protocol,:@host=>@host,:@site_in_use_locales=>@site_in_use_locales}, :layout=>false )
# end # end

View File

@ -48,31 +48,47 @@ class Admin::VenueManagementContractsController < Admin::VenueAdminController
(render_html('<%= org_datetime_picker("filters[contract_end_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["contract_end_date"]) rescue nil)}) %>' ) ) + (render_html('<%= org_datetime_picker("filters[contract_end_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["contract_end_date"]) rescue nil)}) %>' ) ) +
render_html("<%= submit_tag(I18n.t('venue_management.search')) %>") + render_html("<%= submit_tag(I18n.t('venue_management.search')) %>") +
'</div></div>') '</div></div>')
filter_contract
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
if request.xhr?
render :partial => 'index'
end
end
def filter_contract
@ext_filename = ""
filter_tags = params[:filters]["type"].to_a rescue [] filter_tags = params[:filters]["type"].to_a rescue []
@main_ids = nil @main_ids = nil
@inviting_ids = nil @inviting_ids = nil
if !filter_tags.blank? if !filter_tags.blank?
@ext_filename += (I18n.t("vm_bill.type") + ": #{Tag.where(:id.in=>filter_tags).map{|t| t.name}.join(',')}")
@inviting_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:id) @inviting_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:id)
end end
if !filters("category").blank? if !filters("category").blank?
@ext_filename += (I18n.t(:category) + ": #{Category.where(:id.in=>filters("category")).map{|t| t.title}.join(',')}") if @ext_filename.blank?
@main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id) @main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id)
end end
contract_start_date = DateTime.parse(params[:filters]["contract_start_date"]) rescue 0 contract_start_date = DateTime.parse(params[:filters]["contract_start_date"]) rescue 0
contract_end_date = DateTime.parse(params[:filters]["contract_end_date"]) rescue 0 contract_end_date = DateTime.parse(params[:filters]["contract_end_date"]) rescue 0
if @contracts.nil? if @contracts.nil?
if contract_start_date != 0 && contract_end_date != 0 if contract_start_date != 0 && contract_end_date != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~#{contract_end_date}") if @ext_filename.blank?
@contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date,:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10) @contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date,:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
elsif contract_start_date != 0 elsif contract_start_date != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~") if @ext_filename.blank?
@contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10) @contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10)
elsif contract_end_date != 0 elsif contract_end_date != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": ~#{contract_end_date}") if @ext_filename.blank?
@contracts = VenueManagementContract.where(:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10) @contracts = VenueManagementContract.where(:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
end end
else else
if contract_start_date != 0 && contract_end_date != 0 if contract_start_date != 0 && contract_end_date != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~#{contract_end_date}") if @ext_filename.blank?
@contracts = @contracts.where(:contract_start_date.gte=>contract_start_date,:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10) @contracts = @contracts.where(:contract_start_date.gte=>contract_start_date,:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
elsif contract_start_date != 0 elsif contract_start_date != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~") if @ext_filename.blank?
@contracts = @contracts.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10) @contracts = @contracts.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10)
elsif contract_end_date != 0 elsif contract_end_date != 0
@ext_filename += (I18n.t("vm_bill.accounting_month") + ": ~#{contract_end_date}") if @ext_filename.blank?
@contracts = @contracts.where(:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10) @contracts = @contracts.where(:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
end end
end end
@ -89,10 +105,25 @@ class Admin::VenueManagementContractsController < Admin::VenueAdminController
if !@inviting_ids.nil? if !@inviting_ids.nil?
@contracts = @contracts.where(:venue_management_inviting_id.in=>@inviting_ids) @contracts = @contracts.where(:venue_management_inviting_id.in=>@inviting_ids)
end end
@contracts = @contracts.order(updated_at: :desc).page(params[:page]).per(10) if params[:id].present?
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" @ext_filename = "#{VenueManagementMain.find(params[:id]).title rescue ''}_export_invitings" if @ext_filename.blank?
@contracts = @contracts.and(:venue_management_main_id=>params[:id])
end
if params[:keywords].present?
@main_ids = @contracts.pluck(:venue_management_main_id)
@venue_managements = VenueManagementMain.where(:id.in=>@main_ids)
@main_ids = search_data(@venue_managements,[:title]).pluck(:id)
if params[:keywords] == I18n.t(:empty)
@contracts = @contracts.where(:case_no=>"")
else
@contracts = search_data(@contracts,[:case_no])
end
ids = @contracts.pluck(:id)
ids1 = VenueManagementContract.where(:venue_management_main_id.in=>@main_ids).pluck(:id)
@contracts = VenueManagementContract.where(:id.in=>(ids + ids1)).page(params[:page]).per(10)
end
@contracts = @contracts.order(updated_at: :desc).page(params[:page]).per(10)
end end
def render_html(code,pass_variables={}) def render_html(code,pass_variables={})
render_to_string(:inline=>code,:locals=>pass_variables) render_to_string(:inline=>code,:locals=>pass_variables)
end end
@ -127,72 +158,19 @@ class Admin::VenueManagementContractsController < Admin::VenueAdminController
redirect_to venue_management_contracts_admin_venue_management_path(@venue_management_main_id) redirect_to venue_management_contracts_admin_venue_management_path(@venue_management_main_id)
end end
def export def export
filename = "" filter_contract
filter_tags = params[:filters]["type"].to_a rescue []
@main_ids = nil
@inviting_ids = nil
if !filter_tags.blank?
filename += (I18n.t("vm_bill.type") + ": #{Tag.where(:id.in=>filter_tags).map{|t| t.name}.join(',')}")
@inviting_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:id)
end
if !filters("category").blank?
filename += (I18n.t(:category) + ": #{Category.where(:id.in=>filters("category")).map{|t| t.title}.join(',')}") if filename.blank?
@main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id)
end
contract_start_date = DateTime.parse(params[:filters]["contract_start_date"]) rescue 0
contract_end_date = DateTime.parse(params[:filters]["contract_end_date"]) rescue 0
if @contracts.nil?
if contract_start_date != 0 && contract_end_date != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~#{contract_end_date}") if filename.blank?
@contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date,:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
elsif contract_start_date != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~") if filename.blank?
@contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10)
elsif contract_end_date != 0
filename += (I18n.t("vm_bill.accounting_month") + ": ~#{contract_end_date}") if filename.blank?
@contracts = VenueManagementContract.where(:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
end
else
if contract_start_date != 0 && contract_end_date != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~#{contract_end_date}") if filename.blank?
@contracts = @contracts.where(:contract_start_date.gte=>contract_start_date,:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
elsif contract_start_date != 0
filename += (I18n.t("vm_bill.accounting_month") + ": #{contract_start_date}~") if filename.blank?
@contracts = @contracts.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10)
elsif contract_end_date != 0
filename += (I18n.t("vm_bill.accounting_month") + ": ~#{contract_end_date}") if filename.blank?
@contracts = @contracts.where(:contract_end_date.lte=>contract_end_date).page(params[:page]).per(10)
end
end
if !@main_ids.nil?
if @contracts.nil?
@contracts = VenueManagementContract.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10)
else
@contracts = @contracts.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10)
end
end
if @contracts.nil?
@contracts = VenueManagementContract.all.page(params[:page]).per(10)
end
if !@inviting_ids.nil?
@contracts = @contracts.where(:venue_management_inviting_id.in=>@inviting_ids)
end
if params[:id].present?
filename = "#{VenueManagementMain.find(params[:id]).title rescue ''}_export_invitings" if filename.blank?
@contracts = @contracts.and(:venue_management_main_id=>params[:id])
end
@contracts = @contracts.order(updated_at: :desc).page(1).per(@contracts.count) @contracts = @contracts.order(updated_at: :desc).page(1).per(@contracts.count)
@protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme)
@host = "#{@protocol}://#{request.host_with_port}" @host = "#{@protocol}://#{request.host_with_port}"
@site_in_use_locales = Site.first.in_use_locales @site_in_use_locales = Site.first.in_use_locales
filename = "export_contracts" if filename.blank? @ext_filename = "export_contracts" if @ext_filename.blank?
filename = filename + "_export.xlsx" @ext_filename = @ext_filename + "_export.xlsx"
@id = params[:id] @id = params[:id]
respond_to do |format| respond_to do |format|
format.xlsx { format.xlsx {
response.headers['Content-Transfer-Encoding'] = 'binary' response.headers['Content-Transfer-Encoding'] = 'binary'
response.headers['Content-Type'] = 'binary/octet-stream' response.headers['Content-Type'] = 'binary/octet-stream'
response.headers['Content-Disposition'] = 'attachment; filename="' + filename + '"' response.headers['Content-Disposition'] = 'attachment; filename="' + @ext_filename + '"'
} }
end end
render :layout => false render :layout => false

View File

@ -33,33 +33,48 @@ class Admin::VenueManagementInvitingsController < Admin::VenueAdminController
(render_html('<%= org_datetime_picker("filters[end_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["end_date"]) rescue nil)}) %>' ) ) + (render_html('<%= org_datetime_picker("filters[end_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["end_date"]) rescue nil)}) %>' ) ) +
render_html("<%= submit_tag(I18n.t('venue_management.search')) %>") + render_html("<%= submit_tag(I18n.t('venue_management.search')) %>") +
'</div></div>') '</div></div>')
filter_tags = params[:filters]["type"].to_a rescue [] filter_inviting
start_date = DateTime.parse(params[:filters]["start_date"]) rescue 0
end_date = DateTime.parse(params[:filters]["end_date"]) rescue 0
@invitings = VenueManagementInviting.with_tags(filter_tags).order(updated_at: :desc).page(params[:page]).per(10)
if @invitings.nil?
if start_date != 0 && end_date != 0
@invitings = VenueManagementInviting.where(:start_date.gte=>start_date,:end_date.lte=>end_date).page(params[:page]).per(10)
elsif start_date != 0
@invitings = VenueManagementInviting.where(:start_date.gte=>start_date).page(params[:page]).per(10)
elsif end_date != 0
@invitings = VenueManagementInviting.where(:end_date.lte=>end_date).page(params[:page]).per(10)
end
else
if start_date != 0 && end_date != 0
@invitings = @invitings.where(:start_date.gte=>start_date,:end_date.lte=>end_date).page(params[:page]).per(10)
elsif start_date != 0
@invitings = @invitings.where(:start_date.gte=>start_date).page(params[:page]).per(10)
elsif end_date != 0
@invitings = @invitings.where(:end_date.lte=>end_date).page(params[:page]).per(10)
end
end
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
if request.xhr? if request.xhr?
render :partial => 'index' render :partial => 'index'
end end
end end
def filter_inviting
@ext_filename = ""
filter_tags = params[:filters]["type"].to_a rescue []
start_date = DateTime.parse(params[:filters]["start_date"]) rescue 0
end_date = DateTime.parse(params[:filters]["end_date"]) rescue 0
@invitings = VenueManagementInviting.with_tags(filter_tags).order(updated_at: :desc).page(params[:page]).per(10)
@ext_filename += (I18n.t("vm_inviting.type") + ": #{Tag.where(:id.in=>filter_tags).map{|t| t.name}.join(',')}") if !filter_tags.blank?
if start_date != 0 && end_date != 0
@ext_filename += (I18n.t("vm_inviting.start_end") + ": #{start_date}~#{end_date}") if @ext_filename.blank?
@invitings = @invitings.where(:start_date.gte=>start_date,:end_date.lte=>end_date).page(params[:page]).per(10)
elsif start_date != 0
@ext_filename += (I18n.t("vm_inviting.start_end") + ": #{start_date}~") if @ext_filename.blank?
@invitings = @invitings.where(:start_date.gte=>start_date).page(params[:page]).per(10)
elsif end_date != 0
@ext_filename += (I18n.t("vm_inviting.start_end") + ": ~#{end_date}") if @ext_filename.blank?
@invitings = @invitings.where(:end_date.lte=>end_date).page(params[:page]).per(10)
end
if params[:id].present?
@ext_filename = "#{VenueManagementMain.find(params[:id]).title rescue ''}_export_invitings" if @ext_filename.blank?
@invitings = @invitings.where(:venue_management_main_id=>params[:id])
end
if params[:keywords].present?
@main_ids = @invitings.pluck(:venue_management_main_id)
@venue_managements = VenueManagementMain.where(:id.in=>@main_ids)
@main_ids = search_data(@venue_managements,[:title]).pluck(:id)
if params[:keywords] == I18n.t(:empty)
@invitings = @invitings.where(:case_no=>"")
else
@invitings = search_data(@invitings,[:case_no])
end
ids = @invitings.pluck(:id)
ids1 = VenueManagementInviting.where(:venue_management_main_id.in=>@main_ids).pluck(:id)
@invitings = VenueManagementInviting.where(:id.in=>(ids + ids1)).page(params[:page]).per(10)
end
end
def new def new
@venue_management = VenueManagementMain.find(params[:id]) @venue_management = VenueManagementMain.find(params[:id])
@venue_management_inviting = @venue_management.venue_management_invitings.build @venue_management_inviting = @venue_management.venue_management_invitings.build
@ -92,38 +107,19 @@ class Admin::VenueManagementInvitingsController < Admin::VenueAdminController
render_to_string(:inline=>code,:locals=>pass_variables) render_to_string(:inline=>code,:locals=>pass_variables)
end end
def export def export
filename = "" filter_inviting
filter_tags = params[:filters]["type"].to_a rescue []
start_date = DateTime.parse(params[:filters]["start_date"]) rescue 0
end_date = DateTime.parse(params[:filters]["end_date"]) rescue 0
@invitings = VenueManagementInviting.with_tags(filter_tags).order(updated_at: :desc).page(params[:page]).per(10)
filename += (I18n.t("vm_inviting.type") + ": #{Tag.where(:id.in=>filter_tags).map{|t| t.name}.join(',')}") if !filter_tags.blank?
if start_date != 0 && end_date != 0
filename += (I18n.t("vm_inviting.start_end") + ": #{start_date}~#{end_date}") if filename.blank?
@invitings = @invitings.where(:start_date.gte=>start_date,:end_date.lte=>end_date).page(params[:page]).per(10)
elsif start_date != 0
filename += (I18n.t("vm_inviting.start_end") + ": #{start_date}~") if filename.blank?
@invitings = @invitings.where(:start_date.gte=>start_date).page(params[:page]).per(10)
elsif end_date != 0
filename += (I18n.t("vm_inviting.start_end") + ": ~#{end_date}") if filename.blank?
@invitings = @invitings.where(:end_date.lte=>end_date).page(params[:page]).per(10)
end
if params[:id].present?
filename = "#{VenueManagementMain.find(params[:id]).title rescue ''}_export_invitings" if filename.blank?
@invitings = @invitings.where(:venue_management_main_id=>params[:id])
end
@invitings = @invitings.page(1).per(@invitings.count) @invitings = @invitings.page(1).per(@invitings.count)
@protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme)
@host = "#{@protocol}://#{request.host_with_port}" @host = "#{@protocol}://#{request.host_with_port}"
@site_in_use_locales = Site.first.in_use_locales @site_in_use_locales = Site.first.in_use_locales
filename = "export_invitings" if filename.blank? @ext_filename = "export_invitings" if @ext_filename.blank?
filename = filename + "_export.xlsx" @ext_filename = @ext_filename + "_export.xlsx"
@id = params[:id] @id = params[:id]
respond_to do |format| respond_to do |format|
format.xlsx { format.xlsx {
response.headers['Content-Transfer-Encoding'] = 'binary' response.headers['Content-Transfer-Encoding'] = 'binary'
response.headers['Content-Type'] = 'binary/octet-stream' response.headers['Content-Type'] = 'binary/octet-stream'
response.headers['Content-Disposition'] = 'attachment; filename="' + filename + '"' response.headers['Content-Disposition'] = 'attachment; filename="' + @ext_filename + '"'
} }
end end
render :layout => false render :layout => false

View File

@ -15,10 +15,32 @@ class Admin::VenueManagementMemorabiliasController < Admin::VenueAdminController
'vm_memorabilia.event_date', 'vm_memorabilia.event_date',
'vm_memorabilia.details', 'vm_memorabilia.details',
] ]
@memorabilias = VenueManagementMemorabilia.order(updated_at: :desc).page(params[:page]).per(10) filter_memorabilia
@memorabilias = @memorabilias.order(updated_at: :desc).page(params[:page]).per(10)
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
if request.xhr?
render :partial => 'index'
end
end
def filter_memorabilia
@memorabilias = VenueManagementMemorabilia.all
@filter_fields = {}
if params[:keywords].present?
@main_ids = @memorabilias.pluck(:venue_management_main_id)
@invintings = VenueManagementInviting.where(:id.in => VenueManagementMemorabilia.all.pluck(:venue_management_inviting_id))
@venue_managements = VenueManagementMain.where(:id.in=>@main_ids)
@main_ids = search_data(@venue_managements,[:title]).pluck(:id)
if params[:keywords] == I18n.t(:empty)
@invintings = @invintings.where(:case_no=>"")
else
@invintings = search_data(@invintings,[:case_no])
end
ids = VenueManagementMemorabilia.where(:venue_management_inviting_id.in=>@invintings.pluck(:id)).pluck(:id)
ids1 = VenueManagementMemorabilia.where(:venue_management_main_id.in=>@main_ids).pluck(:id)
ids2 = VenueManagementMemorabilia.where(:venue_management_inviting_id =>nil ).pluck(:id)
@memorabilias = VenueManagementMemorabilia.where(:id.in=>(ids + ids1 + ids2))
end
end end
def new def new
@venue_management = VenueManagementMain.find(params[:id]) @venue_management = VenueManagementMain.find(params[:id])
@venue_management_memorabilia = VenueManagementMemorabilia.new(venue_management_main_id: params[:id]) @venue_management_memorabilia = VenueManagementMemorabilia.new(venue_management_main_id: params[:id])

View File

@ -356,6 +356,7 @@ class Admin::VenueManagementsController < Admin::VenueAdminController
'vm_memorabilia.event_date', 'vm_memorabilia.event_date',
'vm_memorabilia.details', 'vm_memorabilia.details',
] ]
@filter_fields = {}
@memorabilias = @venue_management.venue_management_memorabilias.page(params[:page]).per(10) @memorabilias = @venue_management.venue_management_memorabilias.page(params[:page]).per(10)
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
end end
@ -422,7 +423,7 @@ class Admin::VenueManagementsController < Admin::VenueAdminController
end end
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
if request.xhr? if request.xhr?
render 'admin/venue_management_bills/_index' render :partial=> 'admin/venue_management_bills/index'
end end
end end
def venue_management_contracts def venue_management_contracts
@ -492,6 +493,9 @@ class Admin::VenueManagementsController < Admin::VenueAdminController
@contracts = @contracts.order(updated_at: :desc) @contracts = @contracts.order(updated_at: :desc)
@venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue ""
if request.xhr?
render :partial=> 'admin/venue_management_contracts/index'
end
end end
def render_html(code,pass_variables={}) def render_html(code,pass_variables={})
render_to_string(:inline=>code,:locals=>pass_variables) render_to_string(:inline=>code,:locals=>pass_variables)

View File

@ -1,6 +1,4 @@
<form>
<%= render_filter @filter_fields, "index_table" %> <%= render_filter @filter_fields, "index_table" %>
</form>
<span id="index_table"> <span id="index_table">
<%= render 'index' %> <%= render 'index' %>
</span> </span>

View File

@ -1,4 +1,9 @@
<%= render_filter @filter_fields, "index_table" %>
<span id="index_table"> <span id="index_table">
<%= render 'index' %> <%= render 'index' %>
</span> </span>
<%= render 'layouts/delete_modal', delete_options: @delete_options %> <%= render 'layouts/delete_modal', delete_options: @delete_options %>
<script type="text/javascript">
var $form = $("<form><form>");
$(".filter-group.accordion-group").before($form).appendTo($form);
</script>

View File

@ -3,7 +3,9 @@
wb = xlsx_package.workbook wb = xlsx_package.workbook
wb.add_worksheet(name: t('restful_actions.venue_management_contracts')) do |sheet| wb.add_worksheet(name: t('restful_actions.venue_management_contracts')) do |sheet|
row = [t('vm_contract.case_no')] row = []
row << t('venue_management.title') if @id.blank?
row << t('vm_contract.case_no')
row << t('vm_inviting.type') row << t('vm_inviting.type')
row << t('venue_management.contractor') row << t('venue_management.contractor')
row << t('vm_inviting.rents') row << t('vm_inviting.rents')
@ -42,6 +44,7 @@ wb.add_worksheet(name: t('restful_actions.venue_management_contracts')) do |shee
sheet.add_row row sheet.add_row row
@venue_management.venue_management_contracts.each do |contract| @venue_management.venue_management_contracts.each do |contract|
row2 = [] row2 = []
row2 << contract.venue_management_main.title if @id.blank?
row2 << contract.case_no row2 << contract.case_no
row2 << contract.display_tags row2 << contract.display_tags
row2 << contract.display_contractors row2 << contract.display_contractors
@ -85,6 +88,7 @@ wb.add_worksheet(name: t('restful_actions.venue_management_contracts')) do |shee
end end
wb.add_worksheet(name: t('restful_actions.venue_management_invitings')) do |sheet| wb.add_worksheet(name: t('restful_actions.venue_management_invitings')) do |sheet|
row = [] row = []
row << t('venue_management.title') if @id.blank?
row << t('vm_inviting.type') row << t('vm_inviting.type')
row << t('vm_inviting.case_no') row << t('vm_inviting.case_no')
row << t('vm_inviting.publish_times') row << t('vm_inviting.publish_times')
@ -110,6 +114,7 @@ wb.add_worksheet(name: t('restful_actions.venue_management_invitings')) do |shee
sheet.add_row row sheet.add_row row
@venue_management.venue_management_invitings.each do |inviting| @venue_management.venue_management_invitings.each do |inviting|
row2 = [] row2 = []
row2 << inviting.venue_management_main.title if @id.blank?
row2 << inviting.tags.map{|t| t.name}.join(" , ") row2 << inviting.tags.map{|t| t.name}.join(" , ")
row2 << inviting.case_no row2 << inviting.case_no
row2 << inviting.publish_times row2 << inviting.publish_times
@ -137,6 +142,7 @@ wb.add_worksheet(name: t('restful_actions.venue_management_invitings')) do |shee
end end
wb.add_worksheet(name: t('restful_actions.venue_management_memorabilias')) do |sheet| wb.add_worksheet(name: t('restful_actions.venue_management_memorabilias')) do |sheet|
row = [] row = []
row << t('venue_management.title') if @id.blank?
row << t('vm_memorabilia.case_no') row << t('vm_memorabilia.case_no')
row << t('vm_memorabilia.event_date') row << t('vm_memorabilia.event_date')
@site_in_use_locales.each do |locale| @site_in_use_locales.each do |locale|
@ -156,6 +162,7 @@ wb.add_worksheet(name: t('restful_actions.venue_management_memorabilias')) do |s
sheet.add_row row sheet.add_row row
@venue_management.venue_management_memorabilias.each do |memorabilia| @venue_management.venue_management_memorabilias.each do |memorabilia|
row2 = [] row2 = []
row2 << memorabilia.venue_management_main.title if @id.blank?
row2 << memorabilia.case_no row2 << memorabilia.case_no
row2 << memorabilia.event_date row2 << memorabilia.event_date
@site_in_use_locales.each do |locale| @site_in_use_locales.each do |locale|
@ -175,4 +182,43 @@ wb.add_worksheet(name: t('restful_actions.venue_management_memorabilias')) do |s
sheet.add_row row2 sheet.add_row row2
end end
end end
wb.add_worksheet(name: t('restful_actions.venue_management_bills')) do |sheet|
row = []
row << t('venue_management.title') if @id.blank?
row << t('venue_management.contractor')
row << t('vm_bill.accounting_month')
row << t('vm_bill.bill_type')
row << t('vm_bill.caculation_basis')
row << t('vm_bill.total_amount')
row << t('vm_bill.pay_date')
row << t('vm_bill.reason')
row << t('vm_bill.pay_method')
row << t('vm_bill.note')
row << t("link")
row << t("link") + " " + t("url_alt")
row << t("file_")
row << t("file_") + " " + t("description")
row << t("file_") + " " + t("alternative")
sheet.add_row row
@venue_management.venue_management_bills.each do |bill|
row2 = []
row2 << bill.venue_management_main.title if @id.blank?
row2 << (bill.contractor.display_contractors rescue "")
row2 << bill.display_accounting_month
row2 << "#{t("vm_bill.#{bill.bill_typeA}")}/#{t("vm_bill.#{bill.bill_typeB}")}"
row2 << bill.display_caculation_basis
row2 << bill.total_amount
row2 << bill.pay_date
row2 << bill.reason
row2 << bill.pay_method
row2 << bill.note
row2 << bill.venue_management_links.map{|l| l.url.to_s.strip}.join(";")
row2 << bill.venue_management_links.map{|l| l.title.to_s.strip}.join(";")
row2 << bill.venue_management_files.map{|f| @host + f.file.url rescue nil}.select{|s| !s.nil?}.join(";")
row2 << bill.venue_management_files.map{|f| f.description.to_s.strip}.join(";")
row2 << bill.venue_management_files.map{|f| f.title.to_s.strip}.join(";")
sheet.add_row row2
end
end

View File

@ -1,5 +1,10 @@
<%= render_filter @filter_fields, "index_table" %>
<span id="index_table"> <span id="index_table">
<%= render 'admin/venue_management_memorabilias/index' %> <%= render 'admin/venue_management_memorabilias/index' %>
</span> </span>
<%= render 'layouts/delete_modal', delete_options: @delete_options %> <%= render 'layouts/delete_modal', delete_options: @delete_options %>
<script type="text/javascript">
var $form = $("<form><form>");
$(".filter-group.accordion-group").before($form).appendTo($form);
</script>