diff --git a/app/assets/javascripts/venue_management_file_link.js b/app/assets/javascripts/venue_management_file_link.js new file mode 100644 index 0000000..e69de29 diff --git a/app/assets/stylesheets/admin/venue_print.scss b/app/assets/stylesheets/admin/venue_print.scss new file mode 100644 index 0000000..0869c62 --- /dev/null +++ b/app/assets/stylesheets/admin/venue_print.scss @@ -0,0 +1,6 @@ +*{ + display: none; +} +.print_text{ + display: block; +} \ No newline at end of file diff --git a/app/controllers/admin/venue_admin_controller.rb b/app/controllers/admin/venue_admin_controller.rb new file mode 100644 index 0000000..ee18759 --- /dev/null +++ b/app/controllers/admin/venue_admin_controller.rb @@ -0,0 +1,16 @@ +# encoding: utf-8 +class Admin::VenueAdminController < OrbitAdminController + #alias_method :org_datetime_picker, :datetime_picker + #include OrbitFormHelper + before_action :set_calendar_types,only: [:edit,:new,:copy] + def set_calendar_types + @calendar_types = CalendarType.all.collect{|v| [v.title,v.id.to_s]} + @module_pages = Page.where(:module => 'venue_management').collect{|p| [p.name,p.id] } + end + def initialize(*) + super + ActionView::Helpers::FormBuilder.send(:prepend,VenueAdminHelper) + @venue = 'venue' + end + +end \ No newline at end of file diff --git a/app/controllers/admin/venue_management_bills_controller.rb b/app/controllers/admin/venue_management_bills_controller.rb new file mode 100644 index 0000000..093886d --- /dev/null +++ b/app/controllers/admin/venue_management_bills_controller.rb @@ -0,0 +1,216 @@ +class Admin::VenueManagementBillsController < Admin::VenueAdminController + include Admin::VenueManagementsHelper + include ActionView::Helpers::FormOptionsHelper + #include ActionView::Helpers::FormTagHelper #don't include this helper,or you will got an error when using redirect_to and url_for + #include ActionView::Helpers::FormHelper #don't include this helper,or you will got an error when using redirect_to and url_for + include VenueAdminHelper + include ActionView::Context + before_action ->(module_app = @app_title) { set_variables module_app } + before_action :set_venue_management_bill, only: [:edit, :update, :destroy] + def initialize + super + @app_title = 'venue_management' + end + def filter_fields(categories) + { + :category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}} + } + end + def index + @table_fields = [ + 'venue_management.title', + "contractor", + "accounting_month", + "bill_type", + "caculation_basis", + "reason", + "total_amount", + "pay_date", + "pay_method", + "note" + ] + @bills = nil + @categories = @module_app.categories.enabled + @filter_fields = filter_fields(@categories) + @tags = @module_app.tags + @filter_fields['vm_inviting.type'] = @tags.map{|t| {:title => t.name,:id => t.id} } + bill_type_select_str = "
" + value_bill_typeA = params[:filters]["bill_typeA"] rescue "0" + value_bill_typeB = params[:filters]["bill_typeB"] rescue "0" + bill_type_select_str += render_html('<%= select_tag "filters[bill_typeA]", options_for_select(VenueManagementBill::BILLTYPE.keys.map { |k| [ I18n.t("vm_bill.#{k}"), k ] },value_bill_typeA) ,{:onchange=>"var $this=this;(function(){var obj=#{VenueManagementBill::BILLTYPE.map{|k,v| [k,v.map{|vv| [vv,I18n.t("vm_bill.#{vv}")]}.to_h]}.to_h.to_s.gsub(\'=>\',\':\')};$($this).siblings(\'select\').html($.map(obj[$this.value],function(v,k){return \'\'}).join(\' \'))})()"} %>',{:value_bill_typeA=>value_bill_typeA}) + bill_typeB = (params[:filters]["bill_typeA"].blank? rescue true) ? VenueManagementBill::BILLTYPE.values.first : VenueManagementBill::BILLTYPE[params[:filters]["bill_typeA"]] + bill_type_select_str += render_html('<%= select_tag "filters[bill_typeB]", options_for_select(bill_typeB.map { |v| [ I18n.t("vm_bill.#{v}"), v ] },value_bill_typeB) , {:onchange=> "var $this=this;(function(){if($this.value == \'other\') $(\'#bill_other_field\').removeClass(\'hidden\');else $(\'#bill_other_field\').addClass(\'hidden\');})()"} %>',{:bill_typeB=>bill_typeB,:value_bill_typeB=>value_bill_typeB}) + bill_type_select_str += render_html('<%= submit_tag(I18n.t(\'venue_management.search\')) %>') + bill_type_select_str += "
" + @filter_fields['vm_bill.bill_type'] = bill_type_select_str + @filter_fields['vm_bill.accounting_month'] = ('
'+ + (render_html('<%= org_datetime_picker("filters[accounting_month_start]", {:no_label => true, :format=>"yyyy/MM", :new_record=>false, :value=>(DateTime.parse(params[:filters]["accounting_month_start"]) 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')) %>") + + '
') + 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 + @ext_filename = "" + @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? + @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) + if !filters("category").blank? + @main_ids = VenueManagementMain.where(:id.in=>@main_ids).with_categories(filters("category")).pluck(:id) + end + 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) + 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 + @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) + 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) + 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) + end + else + 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 = @bills.where(:accounting_month.gt=>accounting_month_start,:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10) + elsif accounting_month_start != 0 + @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 + @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) + 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 + if params[:keywords].present? + @main_ids = @bills.pluck(:venue_management_main_id) + @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 + + def new + @venue_management = VenueManagementMain.find(params[:id]) + @venue_management_bill = VenueManagementBill.new(venue_management_main_id: params[:id]) + end + + def create + @venue_management_bill = VenueManagementBill.new(venue_management_bill_params) + @venue_management_bill.save + + redirect_to params['referer_url'] + end + + def edit + @venue_management = VenueManagementMain.find(@venue_management_bill.venue_management_main_id) + end + def copy + @venue_management_bill_to_copy = VenueManagementBill.find(params[:id]) + attributes = @venue_management_bill_to_copy.attributes.except("_id","updated_at","created_at") + VenueManagementBill.fields.each do |k,v| + if v.options[:localize] + attributes.delete k + attributes[k+"_translations"] = @venue_management_bill_to_copy[k] + elsif attributes[k].class == Hash + attributes[k] = BSON::Document.new(attributes[k]) + end + end + + @venue_management_bill = VenueManagementBill.new(attributes) + #render :html =>attributes and return + @venue_management = VenueManagementMain.find(@venue_management_bill_to_copy.venue_management_main_id) + end + def update + @venue_management_bill.update_attributes(venue_management_bill_params) + + redirect_to venue_management_bills_admin_venue_management_path(@venue_management_bill.venue_management_main_id) + end + + def destroy + @venue_management_main_id = @venue_management_bill.venue_management_main_id + @venue_management_bill.destroy + + redirect_to venue_management_bills_admin_venue_management_path(@venue_management_main_id) + end + def render_html(code,pass_variables={}) + render_to_string(:inline=>code,:locals=>pass_variables) + end + def export + filter_bill + @bills = @bills.page(1).per(@bills.count) + @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) + @host = "#{@protocol}://#{request.host_with_port}" + @site_in_use_locales = Site.first.in_use_locales + @ext_filename = "export_bills" if @ext_filename.blank? + @ext_filename = @ext_filename + "_export.xlsx" + @id = params[:id] + respond_to do |format| + format.xlsx { + response.headers['Content-Transfer-Encoding'] = 'binary' + response.headers['Content-Type'] = 'binary/octet-stream' + response.headers['Content-Disposition'] = 'attachment; filename="' + @ext_filename + '"' + } + end + render :layout => false + # file_path = "tmp/cache/#{@ext_filename}" + # 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 ) + # end + # send_file file_path + end + private + + def set_venue_management_bill + @venue_management_bill = VenueManagementBill.find(params[:id]) + end + + def venue_management_bill_params + params.require(:venue_management_bill).permit! + end + def venue_management_bill_params + params.require(:venue_management_bill).permit! + end +end diff --git a/app/controllers/admin/venue_management_contracts_controller.rb b/app/controllers/admin/venue_management_contracts_controller.rb new file mode 100644 index 0000000..bff17c0 --- /dev/null +++ b/app/controllers/admin/venue_management_contracts_controller.rb @@ -0,0 +1,189 @@ +# frozen_string_literal: true + +class Admin::VenueManagementContractsController < Admin::VenueAdminController + include Admin::VenueManagementsHelper + before_action ->(module_app = @app_title) { set_variables module_app } + before_action :set_venue_management_contract, only: [:edit, :update, :destroy] + + def filter_fields(categories) + { + :category=>categories.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}} + } + end + def initialize + super + @app_title = 'venue_management' + end + def fetch_inviting + invitings = VenueManagementInviting.where(id: params[:id]) + data = {} + if !invitings.first.nil? + key = [:early_rent,:operation_rent,:royalty,:house_tax_payer,:land_tax_payer] + invitings.pluck(*key)[0].each_with_index do |v,i| + data[key[i]] = v + end + end + render :json => data + end + def index + @table_fields = [ + 'venue_management.title', + 'vm_contract.case_no', + 'vm_inviting.type', + 'vm_contract.vendor', + 'vm_inviting.rents', + 'vm_inviting.royalty', + 'vm_contract.start_end', + 'vm_contract.deposit_amount_type_exp_date', + 'vm_contract.renewal_permission', + 'vm_contract.other_commitment', + 'vm_contract.note' + ] + @filter_fields = filter_fields(@categories) + @tags = @module_app.tags + @filter_fields['vm_inviting.type'] = @tags.map{|t| {:title => t.name,:id => t.id} } + @filter_fields['vm_contract.start_end'] = ('
'+ + (render_html('<%= org_datetime_picker("filters[contract_start_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["contract_start_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')) %>") + + '
') + 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 [] + @main_ids = nil + @inviting_ids = nil + 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) + end + 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) + 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 + @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) + 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) + 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) + end + else + 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) + 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) + 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) + 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? + @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 + def render_html(code,pass_variables={}) + render_to_string(:inline=>code,:locals=>pass_variables) + end + + def new + @venue_management = VenueManagementMain.find(params[:id]) + @venue_management_contract = @venue_management.venue_management_contracts.build + end + + def create + OrbitHelper.set_params(params,current_user) + @venue_management_contract = VenueManagementContract.new(venue_management_contract_params) + @venue_management_contract.save + + redirect_to params['referer_url'] + end + + def edit + @venue_management = VenueManagementMain.find(@venue_management_contract.venue_management_main_id) + end + + def update + OrbitHelper.set_params(params,current_user) + @venue_management_contract.update_attributes!(venue_management_contract_params) + redirect_to venue_management_contracts_admin_venue_management_path(@venue_management_contract.venue_management_main_id) + end + + def destroy + @venue_management_main_id = @venue_management_contract.venue_management_main_id + @venue_management_contract.destroy + + redirect_to venue_management_contracts_admin_venue_management_path(@venue_management_main_id) + end + def export + filter_contract + @contracts = @contracts.order(updated_at: :desc).page(1).per(@contracts.count) + @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) + @host = "#{@protocol}://#{request.host_with_port}" + @site_in_use_locales = Site.first.in_use_locales + @ext_filename = "export_contracts" if @ext_filename.blank? + @ext_filename = @ext_filename + "_export.xlsx" + @id = params[:id] + respond_to do |format| + format.xlsx { + response.headers['Content-Transfer-Encoding'] = 'binary' + response.headers['Content-Type'] = 'binary/octet-stream' + response.headers['Content-Disposition'] = 'attachment; filename="' + @ext_filename + '"' + } + end + render :layout => false + end + private + + def set_venue_management_contract + @venue_management_contract = VenueManagementContract.find(params[:id]) + end + + def venue_management_contract_params + contract_params = params.require(:venue_management_contract).permit! + contract_params["contractor_ids"] = [] if contract_params["contractor_ids"].nil? + return contract_params + end +end diff --git a/app/controllers/admin/venue_management_invitings_controller.rb b/app/controllers/admin/venue_management_invitings_controller.rb new file mode 100644 index 0000000..2a2ef4b --- /dev/null +++ b/app/controllers/admin/venue_management_invitings_controller.rb @@ -0,0 +1,138 @@ +# frozen_string_literal: true + +class Admin::VenueManagementInvitingsController < Admin::VenueAdminController + include Admin::VenueManagementsHelper + before_action ->(module_app = @app_title) { set_variables module_app } + before_action :set_venue_management_inviting, only: [:edit, :update, :destroy] + + def initialize + super + @app_title = 'venue_management' + end + + def index + @table_fields = [ + 'venue_management.title', + 'vm_inviting.case_no', + 'vm_inviting.type', + 'vm_inviting.publish_times', + 'vm_inviting.start_end', + 'vm_inviting.rents', + 'vm_inviting.royalty', + 'vm_inviting.house_land_tax_payer', + 'vm_inviting.contractor_manager', + 'vm_inviting.bid_result', + 'vm_inviting.details' + ] + @tags = @module_app.tags + @filter_fields = {} + @filter_fields['vm_inviting.type'] = @tags.map{|t| {:title => t.name,:id => t.id} } + @filter_fields['vm_inviting.start_end'] = ('
'+ + (render_html('<%= org_datetime_picker("filters[start_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["start_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')) %>") + + '
') + filter_inviting + @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" + if request.xhr? + render :partial => 'index' + 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 + @venue_management = VenueManagementMain.find(params[:id]) + @venue_management_inviting = @venue_management.venue_management_invitings.build + end + + def create + @venue_management_inviting = VenueManagementInviting.new(venue_management_inviting_params) + @venue_management_inviting.save + + redirect_to params['referer_url'] + end + + def edit + @venue_management = VenueManagementMain.find(@venue_management_inviting.venue_management_main_id) + end + + def update + @venue_management_inviting.update_attributes(venue_management_inviting_params) + + redirect_to venue_management_invitings_admin_venue_management_path(@venue_management_inviting.venue_management_main_id) + end + + def destroy + @venue_management_main_id = @venue_management_inviting.venue_management_main_id + @venue_management_inviting.destroy + + redirect_to venue_management_invitings_admin_venue_management_path(@venue_management_main_id) + end + def render_html(code,pass_variables={}) + render_to_string(:inline=>code,:locals=>pass_variables) + end + def export + filter_inviting + @invitings = @invitings.page(1).per(@invitings.count) + @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) + @host = "#{@protocol}://#{request.host_with_port}" + @site_in_use_locales = Site.first.in_use_locales + @ext_filename = "export_invitings" if @ext_filename.blank? + @ext_filename = @ext_filename + "_export.xlsx" + @id = params[:id] + respond_to do |format| + format.xlsx { + response.headers['Content-Transfer-Encoding'] = 'binary' + response.headers['Content-Type'] = 'binary/octet-stream' + response.headers['Content-Disposition'] = 'attachment; filename="' + @ext_filename + '"' + } + end + render :layout => false + end + private + + def set_venue_management_inviting + @venue_management_inviting = VenueManagementInviting.find(params[:id]) + end + + def venue_management_inviting_params + inviting_params = params.require(:venue_management_inviting).permit! + inviting_params["tags"] = [] if inviting_params["tags"].nil? + return inviting_params + end +end diff --git a/app/controllers/admin/venue_management_memorabilias_controller.rb b/app/controllers/admin/venue_management_memorabilias_controller.rb new file mode 100644 index 0000000..c88cdf4 --- /dev/null +++ b/app/controllers/admin/venue_management_memorabilias_controller.rb @@ -0,0 +1,82 @@ +class Admin::VenueManagementMemorabiliasController < Admin::VenueAdminController + include Admin::VenueManagementsHelper + before_action ->(module_app = @app_title) { set_variables module_app } + before_action :set_venue_management_memorabilia, only: [:edit, :update, :destroy] + + def initialize + super + @app_title = 'venue_management' + end + + def index + @table_fields = [ + 'venue_management.title', + 'vm_memorabilia.case_no', + 'vm_memorabilia.event_date', + 'vm_memorabilia.details', + ] + 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 "" + 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 + def new + @venue_management = VenueManagementMain.find(params[:id]) + @venue_management_memorabilia = VenueManagementMemorabilia.new(venue_management_main_id: params[:id]) + end + + def create + @venue_management_memorabilia = VenueManagementMemorabilia.new(venue_management_memorabilia_params) + @venue_management_memorabilia.save + + redirect_to params['referer_url'] + end + + def edit + @venue_management = VenueManagementMain.find(@venue_management_memorabilia.venue_management_main_id) + end + + def update + @venue_management_memorabilia.update_attributes(venue_management_memorabilia_params) + + redirect_to venue_management_memorabilias_admin_venue_management_path(@venue_management_memorabilia.venue_management_main_id) + end + + def destroy + @venue_management_main_id = @venue_management_memorabilia.venue_management_main_id + @venue_management_memorabilia.destroy + + redirect_to venue_management_memorabilias_admin_venue_management_path(@venue_management_main_id) + end + + private + + def set_venue_management_memorabilia + @venue_management_memorabilia = VenueManagementMemorabilia.find(params[:id]) + end + + def venue_management_memorabilia_params + params.require(:venue_management_memorabilia).permit! + end +end diff --git a/app/controllers/admin/venue_managements_controller.rb b/app/controllers/admin/venue_managements_controller.rb index e2531f3..300ea56 100644 --- a/app/controllers/admin/venue_managements_controller.rb +++ b/app/controllers/admin/venue_managements_controller.rb @@ -1,11 +1,14 @@ # encoding: utf-8 -class Admin::VenueManagementsController < OrbitAdminController - +class Admin::VenueManagementsController < Admin::VenueAdminController + include ActionView::Helpers::FormOptionsHelper + #include ActionView::Helpers::FormTagHelper #don't include this helper,or you will got an error when using redirect_to and url_for + #include ActionView::Helpers::FormHelper #don't include this helper,or you will got an error when using redirect_to and url_for + include VenueAdminHelper + include ActionView::Context require 'axlsx' helper Admin::VenueManagementsFieldHelper before_action ->(module_app = @app_title) { set_variables module_app } - before_action :set_venue_management, only: [:edit, :set_write_off, :venue_management_signup, :destroy] - + before_action :set_venue_management, only: [:edit, :set_write_off, :venue_management_signup, :destroy, :venue_management_invitings, :venue_management_memorabilias, :venue_management_bills, :venue_management_contracts] def initialize super @app_title = "venue_management" @@ -20,35 +23,92 @@ class Admin::VenueManagementsController < OrbitAdminController def index @categories = @module_app.categories.enabled @filter_fields = filter_fields(@categories) - @table_fields = [:category, 'venue_management.title', 'venue_management.event_during', 'venue_management.signup_during', 'venue_management.signup_count', 'venue_management.inviting_hostory', 'venue_management.memorabilia','venue_management.export'] - - if !params[:sort].blank? + @table_fields = [ :category, + 'vm_inviting.type', + 'venue_management.title', + "venue_management.contractor", + 'venue_management.event_during', + 'venue_management.signup_during', + 'venue_management.inviting_history', + 'venue_management.contract_history', + 'venue_management.memorabilia', + 'venue_management.bills', + 'venue_management.export' + ] + @filter_fields["vm_inviting.type"] = @module_app.tags.map{|t| {:title => t.name,:id => t.id} } + if !params[:sort].blank? if params[:sort] == 'event_during' - sort = {:venue_management_start_date.to_sym=>params[:order]} + sort = {:venue_management_start_date.to_sym=>params[:order]} elsif params[:sort] == 'signup_during' - sort = {:signup_start_date.to_sym=>params[:order]} + sort = {:signup_start_date.to_sym=>params[:order]} else - sort = {params[:sort].to_sym=>params[:order]} + sort = {params[:sort].to_sym=>params[:order]} end else sort = {:signup_start_date=>"desc"} end + filter_tags = params[:filters][:type].to_a rescue [] + if filter_tags.empty? + @venue_managements = VenueManagementMain.all.order_by(sort).with_categories(filters("category")) + @venue_managements = search_data(@venue_managements,[:title]).page(params[:page]).per(10) + else + @venue_managements = VenueManagementMain.all.order_by(sort).with_categories(filters("category")) + @venue_managements = search_data(@venue_managements,[:title]) + @venue_management_inviting_ids = @venue_managements.map{|v| v.venue_management_invitings.desc(:id).first.id rescue ""} + @venue_management_ids = VenueManagementInviting.where(:id.in=>@venue_management_inviting_ids).with_tags(filter_tags).pluck(:venue_management_main_id) + @venue_managements = VenueManagementMain.where(:id.in=>@venue_management_ids).page(params[:page]).per(10) + end - @venue_managements = VenueManagementMain.all.order_by(sort).with_categories(filters("category")) - - @venue_managements = search_data(@venue_managements,[:title]).page(params[:page]).per(10) - if request.xhr? render :partial => "index" end end + def print_pdf + time_now = Time.now + venue_management = VenueManagementMain.find(params[:id]) + if !venue_management.registration_status.blank? && venue_management.signup_start_date <= time_now && ( venue_management.signup_end_date.nil? || venue_management.signup_end_date+1 >= time_now ) + sign_up = ('' + t('venue_management.signup') + '').html_safe + elsif venue_management.registration_status.blank? + sign_up = t('venue_management.sign_up_not_open') + elsif venue_management.signup_start_date > time_now + sign_up = t('venue_management.sign_up_not_yet') + else + sign_up = t('venue_management.sign_up_overdue') + end + + if !venue_management.registration_status.blank? && venue_management.registration_status.include?('C') && venue_management.contribute_start_date <= time_now && ( venue_management.contribute_end_date.nil? || venue_management.contribute_end_date+1 >= time_now ) + if !@@session[:venue_management_signup_id].blank? + if @@session[:venue_management_main_id] == venue_management.id + contribute_action = ('' + t('venue_management_signup.uploads') + '').html_safe + else + contribute_action = ('' + t('venue_management_signup.con_login') + '').html_safe + end + else + contribute_action = ('' + t('venue_management_signup.con_login') + '').html_safe + end + end + @venue_management = venue_management + @sign_up = sign_up + @contribute_action = contribute_action + @time_now = time_now + @contribute_time_range = VenueManagementMain.time_range(venue_management.contribute_start_date, venue_management.contribute_end_date) + @sign_up_time_range = venue_management.display_signup_during + @venue_management_time_range = venue_management.display_event_during + @params = params + @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" + if params[:type] == "print" + render "print_pdf" , :layout => false + end + end def export - + @protocol = (request.referer.blank? ? "http" : URI(request.referer).scheme) + @host = "#{@protocol}://#{request.host_with_port}" @venue_management = VenueManagementMain.find(params[:id]) @venue_management_signups = VenueManagementSignup.where(:venue_management_main_id => params[:id]) - filename = @venue_management.title.parameterize.underscore + "_export.xlsx" + @site_in_use_locales = Site.first.in_use_locales + filename = @venue_management.title.to_s.strip + "_export.xlsx" respond_to do |format| format.xlsx { response.headers['Content-Disposition'] = 'attachment; filename="' + filename + '"' @@ -72,13 +132,13 @@ class Admin::VenueManagementsController < OrbitAdminController end def create - - if !venue_management_params['venue_management_links_attributes'].nil? - venue_management_params['venue_management_links_attributes'].each do |idx,link| - venue_management_params['venue_management_links_attributes'].delete(idx.to_s) if link['url'].blank? + + venue_management_main_params = venue_management_params + if !venue_management_main_params['venue_management_links_attributes'].nil? + venue_management_main_params['venue_management_links_attributes'].each do |idx,link| + venue_management_main_params['venue_management_links_attributes'].delete(idx.to_s) if link['url'].blank? end end - venue_management_main_params = venue_management_params venue_management_signup_set_params = venue_management_main_params['venue_management_signup_field_sets'] venue_management_submission_set_params = venue_management_main_params['venue_management_submission_field_sets'] venue_management_email_sets_params = venue_management_main_params['venue_management_email_sets'] @@ -139,7 +199,7 @@ class Admin::VenueManagementsController < OrbitAdminController params[:venue_management_main][:registration_status] = (params[:venue_management_main][:registration_status] ? params[:venue_management_main][:registration_status] : []) - + uid = params[:id].split('-').last @venue_management = VenueManagementMain.find_by(:uid=>uid) @@ -165,25 +225,26 @@ class Admin::VenueManagementsController < OrbitAdminController @venue_management.venue_management_submission_fields.each{|t| t.destroy if t["to_delete"] == true} redirect_to admin_venue_managements_path else - - if !venue_management_params['venue_management_links_attributes'].nil? - venue_management_params['venue_management_links_attributes'].each do |idx,link| - venue_management_params['venue_management_links_attributes'].delete(idx.to_s) if link['url'].blank? + venue_management_main_params = venue_management_params + if !venue_management_main_params['venue_management_links_attributes'].nil? + venue_management_main_params['venue_management_links_attributes'].each do |idx,link| + venue_management_main_params['venue_management_links_attributes'].delete(idx.to_s) if link['url'].blank? end end - + @venue_management.update_user_id = current_user.id - if @venue_management.update_attributes(venue_management_params) + if @venue_management.update_attributes(venue_management_main_params) @venue_management.venue_management_signup_fields.each{|t| t.destroy if t["to_delete"] == true} redirect_to params['referer_url'] else flash.now[:error] = t('update.error.category') - render action: :edit + flash.keep + redirect_to action: :edit, :id =>@venue_management.id.to_s end end end - + def set_write_off @venue_management.donation_write_off_status = true @@ -202,14 +263,14 @@ class Admin::VenueManagementsController < OrbitAdminController def venue_management_signup_field @field_name = 'venue_management_main' - @attribute = VenueManagementMain.find(params[:id]) + @attribute = VenueManagementMain.find(params[:id]) @attribute_type = 'venue_management' @class = 'venue_managements' end def venue_management_submission_field @field_name = 'venue_management_main' - @attribute = VenueManagementMain.find(params[:id]) + @attribute = VenueManagementMain.find(params[:id]) @attribute_type = 'venue_management' @class = 'venue_managements' end @@ -221,7 +282,7 @@ class Admin::VenueManagementsController < OrbitAdminController else @venue_management_signups = VenueManagementSignup.where(:venue_management_main_id => @venue_management.id).page(params[:page]).per(10) end - + end def edit_venue_management_signup @@ -230,7 +291,7 @@ class Admin::VenueManagementsController < OrbitAdminController end def delete_venue_management_signup - + @venue_management_signup = VenueManagementSignup.find(params[:id]) @venue_management_id = @venue_management_signup.venue_management_main_id @@ -240,6 +301,205 @@ class Admin::VenueManagementsController < OrbitAdminController redirect_to "/admin/venue_managements/@venue_management_id.to_s/venue_management_signup" end + def venue_management_invitings + @table_fields = [ + 'vm_inviting.case_no', + 'vm_inviting.type', + 'vm_inviting.publish_times', + 'vm_inviting.start_end', + 'vm_inviting.rents', + 'vm_inviting.royalty', + 'vm_inviting.house_land_tax_payer', + 'vm_inviting.contractor_manager', + 'vm_inviting.bid_result', + 'vm_inviting.details' + ] + filter_tags = params[:filters]["type"].to_a rescue [] + @invitings = @venue_management.venue_management_invitings.with_tags(filter_tags).page(params[:page]).per(10) + @tags = @module_app.tags + @filter_fields = {} + @filter_fields['vm_inviting.type'] = @tags.map{|t| {:title => t.name,:id => t.id} } + @filter_fields['vm_inviting.start_end'] = ('
'+ + (render_html('<%= org_datetime_picker("filters[start_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["start_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')) %>") + + '
') + start_date = DateTime.parse(params[:filters]["start_date"]) rescue 0 + end_date = DateTime.parse(params[:filters]["end_date"]) rescue 0 + 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 "" + if request.xhr? + render :partial => 'admin/venue_management_invitings/index' + end + end + + def venue_management_memorabilias + @table_fields = [ + 'vm_memorabilia.case_no', + 'vm_memorabilia.event_date', + 'vm_memorabilia.details', + ] + @filter_fields = {} + @memorabilias = @venue_management.venue_management_memorabilias.page(params[:page]).per(10) + @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" + end + def venue_management_bills + @table_fields = [ + "contractor", + "accounting_month", + "bill_type", + "caculation_basis", + "reason", + "total_amount", + "pay_date", + "pay_method", + "note" + ] + @bills = @venue_management.venue_management_bills.page(params[:page]).per(10) + @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" + @categories = @module_app.categories.enabled + @filter_fields = filter_fields(@categories) + @tags = @module_app.tags + @filter_fields['vm_inviting.type'] = @tags.map{|t| {:title => t.name,:id => t.id} } + bill_type_select_str = "
" + value_bill_typeA = params[:filters]["bill_typeA"] rescue "0" + value_bill_typeB = params[:filters]["bill_typeB"] rescue "0" + bill_type_select_str += render_html('<%= select_tag "filters[bill_typeA]", options_for_select(VenueManagementBill::BILLTYPE.keys.map { |k| [ I18n.t("vm_bill.#{k}"), k ] },value_bill_typeA) ,{:onchange=>"var $this=this;(function(){var obj=#{VenueManagementBill::BILLTYPE.map{|k,v| [k,v.map{|vv| [vv,I18n.t("vm_bill.#{vv}")]}.to_h]}.to_h.to_s.gsub(\'=>\',\':\')};$($this).siblings(\'select\').html($.map(obj[$this.value],function(v,k){return \'\'}).join(\' \'))})()"} %>',{:value_bill_typeA=>value_bill_typeA}) + bill_typeB = (params[:filters]["bill_typeA"].blank? rescue true) ? VenueManagementBill::BILLTYPE.values.first : VenueManagementBill::BILLTYPE[params[:filters]["bill_typeA"]] + bill_type_select_str += render_html('<%= select_tag "filters[bill_typeB]", options_for_select(bill_typeB.map { |v| [ I18n.t("vm_bill.#{v}"), v ] },value_bill_typeB) , {:onchange=> "var $this=this;(function(){if($this.value == \'other\') $(\'#bill_other_field\').removeClass(\'hidden\');else $(\'#bill_other_field\').addClass(\'hidden\');})()"} %>',{:bill_typeB=>bill_typeB,:value_bill_typeB=>value_bill_typeB}) + bill_type_select_str += render_html('<%= submit_tag(I18n.t(\'venue_management.search\')) %>') + bill_type_select_str += "
" + @filter_fields['vm_bill.bill_type'] = bill_type_select_str + @filter_fields['vm_bill.accounting_month'] = ('
'+ + (render_html('<%= org_datetime_picker("filters[accounting_month_start]", {:no_label => true, :format=>"yyyy/MM", :new_record=>false, :value=>(DateTime.parse(params[:filters]["accounting_month_start"]) 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')) %>") + + '
') + filter_tags = params[:filters]["type"].to_a rescue [] + @main_ids = nil + if !filter_tags.blank? + @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? + @main_ids = VenueManagementMain.all.with_categories(filters("category")).pluck(:id) + end + if ( !params[:filters]["bill_typeA"].blank? rescue false) + @bills = @bills.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 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) + elsif accounting_month_start != 0 + @bills = @bills.where(:accounting_month.gte=>accounting_month_start).page(params[:page]).per(10) + elsif accounting_month_end != 0 + @bills = @bills.where(:accounting_month.lte=>accounting_month_end).page(params[:page]).per(10) + end + if !@main_ids.nil? + @bills = @bills.where(:venue_management_main_id.in=>@main_ids).page(params[:page]).per(10) + end + @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" + if request.xhr? + render :partial=> 'admin/venue_management_bills/index' + end + end + def venue_management_contracts + @table_fields = [ + 'vm_contract.case_no', + 'vm_inviting.type', + 'vm_contract.vendor', + 'vm_inviting.rents', + 'vm_inviting.royalty', + 'vm_contract.start_end', + 'vm_contract.deposit_amount_type_exp_date', + 'vm_contract.renewal_permission', + 'vm_contract.other_commitment', + 'vm_contract.note' + ] + @filter_fields = filter_fields(@categories) + @tags = @module_app.tags + @filter_fields['vm_inviting.type'] = @tags.map{|t| {:title => t.name,:id => t.id} } + @filter_fields['vm_contract.start_end'] = ('
'+ + (render_html('<%= org_datetime_picker("filters[contract_start_date]", {:no_label => true, :format=>"yyyy/MM/dd", :new_record=>false, :value=>(DateTime.parse(params[:filters]["contract_start_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')) %>") + + '
') + filter_tags = params[:filters]["type"].to_a rescue [] + @main_ids = nil + @inviting_ids = nil + @contracts = @venue_management.venue_management_contracts.page(params[:page]).per(10) + if !filter_tags.blank? + @inviting_ids = VenueManagementInviting.with_tags(filter_tags).pluck(:id) + end + if !filters("category").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 + @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 + @contracts = VenueManagementContract.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10) + elsif contract_end_date != 0 + @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 + @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 + @contracts = @contracts.where(:contract_start_date.gte=>contract_start_date).page(params[:page]).per(10) + elsif contract_end_date != 0 + @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.and(: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 + @contracts = @contracts.order(updated_at: :desc) + + @venue_management_page_url = Page.where(:module =>"venue_management").last.url rescue "" + if request.xhr? + render :partial=> 'admin/venue_management_contracts/index' + end + end + def render_html(code,pass_variables={}) + render_to_string(:inline=>code,:locals=>pass_variables) + end private def set_venue_management @@ -251,7 +511,7 @@ class Admin::VenueManagementsController < OrbitAdminController end def create_set (save_flag) VenueManagementSignup.attribute_names.each do |attr_signup| - if !(['_id', 'created_at', 'updated_at','venue_management_main_id'].include? attr_signup) + if !(['_id', 'created_at', 'updated_at','venue_management_main_id'].include? attr_signup) signup_set = @venue_management.venue_management_signup_field_sets.select{|v| v.field_name==attr_signup } if signup_set.length==0 if ['status','name','tel','phone','email','password'].include? attr_signup @@ -295,7 +555,7 @@ class Admin::VenueManagementsController < OrbitAdminController end end VenueManagementSignupContribute.attribute_names.each do |attr_submission| - if !(['_id', 'created_at', 'updated_at','venue_management_signup_id'].include? attr_submission) + if !(['_id', 'created_at', 'updated_at','venue_management_signup_id'].include? attr_submission) signup_set = @venue_management.venue_management_submission_field_sets.select{|v| v.field_name==attr_submission } if signup_set.length==0 name1 = Hash.new diff --git a/app/controllers/venue_managements_controller.rb b/app/controllers/venue_managements_controller.rb index 678c6a2..b47d422 100644 --- a/app/controllers/venue_managements_controller.rb +++ b/app/controllers/venue_managements_controller.rb @@ -70,12 +70,44 @@ class VenueManagementsController < ApplicationController 'contribute_action' => contribute_action, 'time_now' => time_now, 'contribute_time_range' => VenueManagementMain.time_range(venue_management.contribute_start_date, venue_management.contribute_end_date), - 'sign_up_time_range' => VenueManagementMain.time_range(venue_management.signup_start_date, venue_management.signup_end_date), - 'venue_management_time_range' => VenueManagementMain.time_range(venue_management.venue_management_start_date, venue_management.venue_management_end_date) + 'sign_up_time_range' => venue_management.display_signup_during, + 'venue_management_time_range' => venue_management.display_event_during, + 'params' => params } end - + def show_inviting + params = OrbitHelper.params + venue_management_inviting = VenueManagementInviting.find(params[:uid]) rescue nil + { + 'venue_management_inviting' => venue_management_inviting, + 'params' => params + } + end + def show_memorabilia + params = OrbitHelper.params + venue_management_memorabilia = VenueManagementMemorabilia.find(params[:uid]) rescue nil + { + 'venue_management_memorabilia' => venue_management_memorabilia, + 'params' => params + } + end + def show_contract + params = OrbitHelper.params + venue_management_contract = VenueManagementContract.find(params[:uid]) rescue nil + { + 'venue_management_contract' => venue_management_contract, + 'params' => params + } + end + def show_bill + params = OrbitHelper.params + venue_management_bill = VenueManagementBill.find(params[:uid]) rescue nil + { + 'venue_management_bill' => venue_management_bill, + 'params' => params + } + end def show params = OrbitHelper.params diff --git a/app/helpers/admin/venue_management_bills_helper.rb b/app/helpers/admin/venue_management_bills_helper.rb new file mode 100644 index 0000000..3230c47 --- /dev/null +++ b/app/helpers/admin/venue_management_bills_helper.rb @@ -0,0 +1,9 @@ +module Admin::VenueManagementBillsHelper + def self.thead(field) + if field.include?(".") + return (""+I18n.t(field)+"").html_safe + else + return (""+I18n.t("vm_bill.#{field}")+"").html_safe + end + end +end \ No newline at end of file diff --git a/app/helpers/admin/venue_managements_field_helper.rb b/app/helpers/admin/venue_managements_field_helper.rb index f7dd339..443d20c 100644 --- a/app/helpers/admin/venue_managements_field_helper.rb +++ b/app/helpers/admin/venue_managements_field_helper.rb @@ -125,9 +125,9 @@ module Admin::VenueManagementsFieldHelper concat (content_tag :span, :class => 'add-on clearDate' do content_tag :i, nil, :class => 'icons-cross-3' end) - concat (content_tag :span, :class => 'add-on iconbtn' do - content_tag :i, nil, 'data-time-icon' => 'icons-clock', 'data-date-icon' => 'icons-calendar', :class=>"icons-calendar" - end) + # concat (content_tag :span, :class => 'add-on iconbtn' do + # content_tag :i, nil, 'data-time-icon' => 'icons-clock', 'data-date-icon' => 'icons-calendar', :class=>"icons-calendar" + # end) end end diff --git a/app/helpers/venue_admin_helper.rb b/app/helpers/venue_admin_helper.rb new file mode 100644 index 0000000..41d89a3 --- /dev/null +++ b/app/helpers/venue_admin_helper.rb @@ -0,0 +1,47 @@ +module VenueAdminHelper + include ActionView::Helpers::FormOptionsHelper + include OrbitFormHelper + alias :org_datetime_picker :datetime_picker + def datetime_picker(*arg,**args) + tp = org_datetime_picker(*arg,**args) + venue = @template.instance_variable_get(:@venue) + if !venue.nil? + module_pages = @template.instance_variable_get(:@module_pages) + base_name = self.object_name + calendar_types = @template.instance_variable_get(:@calendar_types) + style_attr = '' + calendar_show = !@object['calendar_dict'][arg[0]].nil? + hide_style = " style=\"display: none;\"" + if !@object.send(arg[0].to_s+'_reminder') + style_attr = hide_style + end + style_attr2 = calendar_show ? '' : hide_style + onclick_func = "function reminder_switch(ele){ + if ($(ele).prop('checked')){ + $(ele).parents('.controls').find('.email_reminder').show() + }else{ + $(ele).parents('.controls').find('.email_reminder').hide() + } + };reminder_switch(this)" + onclick_func1 = "function reminder_switch_calendar(ele){ + if ($(ele).prop('checked')){ + $(ele).parents('.controls').find('.calendar_div').show() + }else{ + $(ele).parents('.controls').find('.calendar_div').hide() + } + };reminder_switch_calendar(this)" + tp2 = content_tag(:div, :style => "float: left;flex-wrap: wrap;display: inline-flex;margin-left: 1em;align-items: center;") do + self.check_box((arg[0].to_s+'_reminder').to_sym,:onclick => onclick_func) + "#{I18n.t('venue_management.send_email_reminder')}
: #{I18n.t('venue_management.before')}#{self.number_field((arg[0].to_s+'_reminder_day').to_sym, :class => 'input-mini')}#{I18n.t('venue_management.day_send_email')}
".html_safe + end + calendar_type_key = "#{base_name}[calendar_data][type][#{arg[0]}]" + calendar_type = @object['calendar_data']['type'][arg[0]] rescue nil + tp4 = select_tag("#{base_name}[calendar_data][page_id][#{arg[0]}]",options_for_select([["----- Select a page -----",nil]]+module_pages,(@object['calendar_data']['page_id'][arg[0]] rescue nil))) + tp3 = content_tag(:div, :style => "float: left;flex-wrap: wrap;display: inline-flex;margin-left: 1em;align-items: center;") do + check_box_tag("#{base_name}[calendar_data][key][]",arg[0],calendar_show,:onclick => onclick_func1) + "#{I18n.t('venue_management.add_to_calendar')}
: #{select_tag(calendar_type_key,options_for_select(calendar_types,calendar_type))}#{tp4}
".html_safe + end + + tp = content_tag(:div, tp , :style=>"float: left;")+ tp2 + tp3 + end + tp + end +end \ No newline at end of file diff --git a/app/models/concerns/venue_link_file.rb b/app/models/concerns/venue_link_file.rb new file mode 100644 index 0000000..b970443 --- /dev/null +++ b/app/models/concerns/venue_link_file.rb @@ -0,0 +1,107 @@ +module VenueLinkFile + extend ActiveSupport::Concern + module VenueMethod + def get_trans(field) + class_name = self.class.to_s + if class_name == 'VenueManagementMain' + I18n.t("venue_management.#{field}") + else + class_name = class_name.underscore.gsub('venue_management','vm') + I18n.t("#{class_name}.#{field}") + end + end + end + included do + self.include VenueMethod + tmp = self.to_s.underscore.to_sym + VenueManagementFile.send(:belongs_to,tmp, :class_name => self.to_s, :foreign_key => "#{tmp}_id") + VenueManagementLink.send(:belongs_to,tmp, :class_name => self.to_s, :foreign_key => "#{tmp}_id") + VenueManagementReminder.send(:belongs_to,tmp, :class_name => self.to_s, :foreign_key => "#{tmp}_id") + self.has_many :venue_management_files, :autosave => true, :dependent => :destroy + self.accepts_nested_attributes_for :venue_management_files, :allow_destroy => true + self.has_many :venue_management_links, :autosave => true, :dependent => :destroy + self.accepts_nested_attributes_for :venue_management_links, :allow_destroy => true + self.has_many :venue_management_reminders, :autosave => true, :dependent => :destroy + self.accepts_nested_attributes_for :venue_management_reminders, :allow_destroy => true + self.fields.values.each do|v| + if v.type==Date || v.type==DateTime + self.field v.name+'_reminder', type: Boolean,default: false + self.field v.name+'_reminder_day', type: Integer + end + end + self.field :calendar_data,type: Hash,default: {type:{},key:[],page_id: {}} + self.field :calendar_dict,type: Hash,default: {} + def to_calendar_param + venue_main = self.class.to_s == 'VenueManagementMain' ? self : VenueManagementMain.find(self.venue_management_main_id) + self.case_no.to_s+'-'+self.id.to_s+'?method=show_'+self.class.to_s.underscore.gsub('venue_management_','').gsub('main','data') + end + def calendar_id(field) + self.calendar_dict[field] + end + self.has_many :venue_management_emails, :autosave => true, :dependent => :destroy + self.accepts_nested_attributes_for :venue_management_emails, :allow_destroy => true + VenueManagementEmail.send(:belongs_to,tmp, :class_name => self.to_s, :foreign_key => "#{tmp}_id") + self.before_save do + venue_main = self.class.to_s == 'VenueManagementMain' ? self : VenueManagementMain.find(self.venue_management_main_id) + calendar_keys = Array(self.calendar_data['key']) + (self.calendar_dict.keys - calendar_keys).each do |key_deleted| + event = Event.where(:id => self.calendar_dict[key_deleted]).first + event.model_class = nil + event.destroy + self.calendar_dict.delete(key_deleted) + end + if !calendar_keys.blank? + calendar_keys.each do |key| + key_id = self.calendar_id(key) + current_user_id = OrbitHelper.current_user.id rescue nil + in_use_locales = Site.first.in_use_locales + title_tp = {} + note_tp = {} + in_use_locales.each do |locale| + title_tp[locale] = venue_main['title'][locale] + ' ' + self.get_trans(key) + note_tp[locale] = self.case_no.blank? ? {} : I18n.t('vm_inviting.case_no') +': ' + self.case_no + end + update_dict = {key: key,model_class: self.class.to_s,model_id: self.id,update_user_id: current_user_id,calendar_type_id: calendar_data['type'][key],all_day: true,start: self.send(key),end: self.send(key),title_translations: title_tp,note_translations: note_tp,module_key: 'venue_management',model_page_id: calendar_data['page_id'][key]} + if key_id.nil? + self.calendar_dict[key] = Event.create(update_dict.merge(create_user_id: current_user_id)).id + else + calendar = Event.find(key_id) + calendar.update_attributes(update_dict) + end + end + end + self.venue_management_emails.each do |venue_mail| + email = venue_mail.email + if !email.nil? + email.destroy + end + end + self.venue_management_emails = [] + manager_emails = venue_main.manager_emails + self.fields.values.each do|v| + if v.type==Date || v.type==DateTime + if self.send(v.name+'_reminder') + title = venue_main.title + ' ' + self.case_no.to_s + ' ' + self.get_trans(v.name) + send_time = self.send(v.name)-self.send(v.name+'_reminder_day').day rescue nil + send_time = DateTime.parse(send_time.strftime("%Y/%m/%d 00:00:00 %z")) rescue send_time + if !send_time.nil? + new_email = Email.create(mail_to: manager_emails, + module_app_key:"venue_management", + template:"email/reminder_email.html.erb", + mail_sentdate: send_time, + mail_subject: title, + template_data:{'title'=>title,'send_time'=>self.send(v.name),'locale'=>I18n.locale}) + self.venue_management_emails << VenueManagementEmail.new(email_id: new_email.id) + end + end + end + end + end + Email.before_destroy do + email = VenueManagementEmail.where(:email_id=>self.id).first + if !email.nil? + email.destroy + end + end + end +end \ No newline at end of file diff --git a/app/models/venue_management_bill.rb b/app/models/venue_management_bill.rb new file mode 100644 index 0000000..68b9741 --- /dev/null +++ b/app/models/venue_management_bill.rb @@ -0,0 +1,257 @@ +require 'orbit_form_helper' +class VenueManagementBill + include Mongoid::Document + include Mongoid::Timestamps + include Mongoid::Enum + BILLTYPE = {'venue_fee'=>["usage_fee", "royalties", "admin_fee", "land_rent"],'utility_bill'=>['electricity','water'],'tax'=>['house_tax','land_tax'],'prejudgment_interest'=>["usage_fee", "royalties", "admin_fee", "land_rent",'electricity','water','house_tax','land_tax','other'],'other'=>['penalty','other']} + NOTFIELDKEY = ['float','fields','clear','no_margin','unit','display_title','display_unit','option_select'] + CACULATIONBASISTYPE = {'revenue'=>{'revenue'=>{},'level_0'=>{'fields'=>['field_value','percent']},'level_1'=>{'fields'=>['field_value','percent']},'level_2'=>{'fields'=>['field_value','percent']},'level_3'=>{'fields'=>['field_value','percent']},'level_4'=>{'fields'=>['field_value','percent']},'level_5'=>{'fields'=>['field_value','percent']}}, + 'degree'=>{'current_degree'=>{'float'=>'left'},'consumption'=>{'float'=>'left','clear'=>true,'no_margin'=>true},'level_0'=>{'fields'=>['field_value','dollar/degree']},'level_1'=>{'fields'=>['field_value','dollar/degree']},'level_2'=>{'fields'=>['field_value','dollar/degree']},'level_3'=>{'fields'=>['field_value','dollar/degree']},'add_and_subtract'=>{'unit'=>'add_and_subtract_hint'}}, + 'actual_bill'=>{'bill_amount'=>{}}, + 'fixed'=>{'amount'=>{}}, + 'taxable_present_value'=>{'present_value'=>{},'taxable_area'=>{'unit'=>'㎡'},'taxable_tax'=>{}}, + 'announced_land_values'=>{'land_values'=>{},'taxable_area'=>{'unit'=>'㎡'},'taxable_tax'=>{}}, + 'interest'=>{'bills_payable'=>{},'delay_in_days'=>{},'delay_in_days_level_1'=>{'day'=>{},'_interest'=>{'display_title'=>'front','unit'=>'%'},'interest_type'=>{'display_title'=>'none','option_select'=>['annual_interest','double_dividend','daily_interest'],'type'=>'radio'}},'delay_in_days_level_2'=>{'day'=>{},'_interest'=>{'display_title'=>'front','unit'=>'%'},'interest_type'=>{'display_title'=>'none','option_select'=>['annual_interest','double_dividend','daily_interest'],'type'=>'radio'}},'delay_in_days_level_3'=>{'day'=>{},'_interest'=>{'display_title'=>'front','unit'=>'%'},'interest_type'=>{'display_title'=>'none','option_select'=>['annual_interest','double_dividend','daily_interest'],'type'=>'radio'}},'add_and_subtract'=>{'unit'=>'add_and_subtract_hint'}}, + 'other'=>{'amount'=>{}}} + CACILATYIONFORMULA = {'revenue'=>" + i = find_insert_index(field_values,revenue) + field_values = field_values.slice(0,i) + percents = percents.slice(0,i) + field_values.push(revenue) + percents.push(0) + result = -inner_product(field_values,percents) + f=field_values.shift(1) + field_values.push(f[0]) + result += inner_product(field_values,percents) + result = result / 100 + if(result < 0){ + result = 0 + }", + "degree"=>" + i = find_insert_index(field_values,consumption) + field_values = field_values.slice(0,i) + dollardegrees = dollardegrees.slice(0,i) + field_values.push(consumption) + dollardegrees.push(0) + result = -inner_product(field_values,dollardegrees) + f=field_values.shift(1) + field_values.push(f[0]) + result += inner_product(field_values,dollardegrees) + result += add_and_subtract + if(result < 0){ + result = 0 + } + ", + "actual_bill"=>" + result = bill_amount + if(result < 0){ + result = 0 + } + ", + "fixed"=>" + result = amount + if(result < 0){ + result = 0 + } + ", + "taxable_present_value"=>" + result = taxable_tax + if(result < 0){ + result = 0 + }", + "announced_land_values"=>" + result = taxable_tax + if(result < 0){ + result = 0 + }", + "other"=>" + result = amount + if(result < 0){ + result = 0 + }", + 'interest'=>" + i = find_insert_index(days,delay_in_days) + ref = JSON.parse(\"{\\\"annual_interest\\\": #{1/365.0},\\\"double_dividend\\\": #{1/2.0},\\\"daily_interest\\\": #{1/1.0}}\") + if(days[i-1] < delay_in_days && interest_types[i-1] != undefined ){ + if(interest_types[i-1] == 'double_dividend'){ + result = _interests[i - 1] * (delay_in_days * ref[interest_types[i-1]]).ceil() + }else{ + result = _interests[i - 1] * (delay_in_days * ref[interest_types[i-1]]) + } + }else{ + if(i != 1 && days[i-2] < delay_in_days && interest_types[i-2] != undefined ){ + if(interest_types[i-2] == 'double_dividend'){ + result = _interests[i - 2] * (delay_in_days * ref[interest_types[i-2]]).ceil() + }else{ + result = _interests[i - 2] * (delay_in_days * ref[interest_types[i-2]]) + } + }else{ + result = 0 + } + } + result = result / 100 + result = result * bills_payable + result += add_and_subtract + if(result < 0){ + result = 0 + } + ", + 'old_interest'=>" + i = find_insert_index(days,delay_in_days) + days = days.slice(0,i) + _interests = _interests.slice(0,i) + days.push(delay_in_days) + _interests.push(0) + result = inner_product_to_array(days,_interests) + result = array_multiply_scalar(result,-1) + f=days.shift(1) + days.push(f[0]) + result2 = inner_product_to_array(days,_interests) + result = array_add(result,result2) + result = inner_product_to_array(result,interest_types,JSON.parse(\"{\\\"annual_interest\\\": #{1/365.0},\\\"double_dividend\\\": #{1/2.0},\\\"daily_interest\\\": #{1/1.0}}\")) + result = sum(result) + result = result / 100 + result = result * bills_payable + result += add_and_subtract + if(result < 0) + result = 0 + " + } + CACULATIONBASIS = {'revenue'=>"revenue", + "degree"=>"consumption", + "actual_bill" => "bill_amount", + "fixed"=>"amount", + "taxable_present_value"=>"present_value", + "announced_land_values"=>"land_values", + 'interest'=>'bills_payable', + "other"=>"amount" + } + field :accounting_month, type: Date, default: Time.now + field :bill_typeA, type: String, default: "" + field :bill_typeB, type: String, default: "" + field :bill_other, type: String, default: "", localize: true + field :caculation_basis_type, type: String, default: "" + field :caculation_basis, type: String, default: "" + field :reason, type: String, default: "", localize: true + field :amount, type: Integer, default: 0 + field :deadline, type: Date, default: Time.now + field :received_date, type: Date, default: Time.now + field :pay_method, type: String, default: "", localize: true + field :note, type: String, default: "", localize: true + field :revenue + field :bill_amount + field :level_0 + field :level_1 + field :level_2 + field :level_3 + field :level_4 + field :level_5 + field :delay_in_days_level_1 + field :delay_in_days_level_2 + field :delay_in_days_level_3 + field :current_degree + field :consumption + field :tax_excluded, type: Boolean, default: false + field :total_amount + field :actual_amount + field :tax + field :present_value + field :taxable_area + field :land_values + field :taxable_tax + field :add_and_subtract + field :bills_payable + field :delay_in_days + belongs_to :venue_management_main + include VenueLinkFile + # after_initialize do |record| + # if record.caculation_basis_type == "degree" + # if record.caculation_basis != "" && record.consumption.blank? + # record.update(:consumption => record.caculation_basis) + # end + # elsif record.caculation_basis_type == "revenue" + # if record.caculation_basis != "" && record.revenue.blank? + # record.update(:revenue => record.caculation_basis) + # end + # end + # end + # after_save do |record| + # venue_management_main = record.venue_management_main + # if !venue_management_main.venue_management_bill_ids.include?(record.id) + # venue_management_main.update(venue_management_main.venue_management_bill_ids.push(record.id)) + # end + # end + def display_note + html = self.note.to_s.split("\r\n").select{|s| !s.blank?}.first + return Nokogiri::HTML(html).css("body").text + end + def display_caculation_basis + caculation_basis_val = eval("#{self.class::CACULATIONBASIS[self.caculation_basis_type]}") + return "#{I18n.t("vm_bill.#{self.class::CACULATIONBASIS[self.caculation_basis_type]}")}: #{caculation_basis_val}" + end + def display_accounting_month + return (self.accounting_month.strftime("%Y-%m") rescue "") + end + def case_no + return (self.contractor.case_no rescue "") + end + def contractor + return self.venue_management_main.venue_management_contracts.where(:contract_start_date.lte=>self.accounting_month,:contract_end_date.gte=>self.accounting_month).first + end + def pay_date + return "#{self.deadline}/#{self.received_date}" + end + def inner_product(a,b,ref_val_for_b={}) + result = 0 + a.each.with_index{|v,i| + if ref_val_for_b.blank? + p = v*b[i] rescue nil; + else + p = v*ref_val_for_b[b[i]] rescue nil; + end + if(!p.nil?) + result += p; + end + } + return result + end + def inner_product_to_array(a,b) + result = [] + a.each.with_index{|v,i| + p = v*b[i] rescue nil; + if(!p.nil?) + result.push(p); + end + } + return result + end + def array_multiply_scalar(arr,scalar) + result = []; + arr.each.with_index{|v,i| + p = v*scalar rescue nil; + if(!p.nil?) + result.push(p); + end + } + return result; + end + def array_add(arr1,arr2) + result = []; + arr1.each.with_index{|v,i| + p = v + arr2[i] rescue nil; + if(!p.nil?) + result.push(p); + end + } + return result; + end + def sum(arr) + result = 0; + arr.each.with_index{|v,i| + if(!v.nil?) + result += v; + end + } + return result; + end +end diff --git a/app/models/venue_management_contract.rb b/app/models/venue_management_contract.rb new file mode 100644 index 0000000..b7e888d --- /dev/null +++ b/app/models/venue_management_contract.rb @@ -0,0 +1,121 @@ +# frozen_string_literal: true + +require 'orbit_form_helper' + +class VenueManagementContract + include Mongoid::Document + include Mongoid::Timestamps + include Mongoid::Enum + + PAYERS = [ :school, :vendor].freeze + BID_RESULTS = [ :failure, :abandoned, :qualified].freeze + + # Copy from Inviting + field :renewal_permission, type: Boolean,default: false + field :renewal_deadline, type: Date + field :case_no, type: String + field :contractor_ids, type: Array,default: [] + field :publish_times, type: Integer + field :start_date, type: Date, default: Time.now + field :end_date, type: Date + field :close_date, type: Date + field :bid_date, type: Date + field :evaluation_date, type: Date + field :early_rent, type: Integer + field :operation_rent, type: Integer + field :royalty, type: String + field :contractor_manager # save user_id + enum :house_tax_payer, PAYERS + enum :land_tax_payer, PAYERS + enum :bid_result, BID_RESULTS + field :details, localize: true + + # Other fields + field :vendor # save user_id + field :contract_start_date, type: Date + field :contract_end_date, type: Date + field :construction_start_date, type: Date + field :construction_end_date, type: Date + field :operation_start_date, type: Date + field :operation_end_date, type: Date + field :free_period_start_date, type: Date + field :free_period_end_date, type: Date + field :renewal_permission, type: Boolean + field :sign_date, type: Date + field :handover_date, type: Date + field :deposit_amount, type: String + field :deposit_payment_date, type: Date + field :deposit_type, type: String + field :deposit_exp_date, type: Date + field :insurance_type, type: String + field :insurance_payment_deadline, type: Date + field :insurance_payment_date, type: Date + field :insurance_type2, type: String + field :insurance_payment_deadline2, type: Date + field :insurance_payment_date2, type: Date + field :insurance_type3, type: String + field :insurance_payment_deadline3, type: Date + field :insurance_payment_date3, type: Date + field :other_commitment, localize: true + field :note, localize: true + + belongs_to :venue_management_main + belongs_to :venue_management_inviting + include VenueLinkFile + def deposit_amount_type_exp_date + return "#{self.deposit_amount}/#{self.deposit_type}/#{self.deposit_exp_date}" + end + def display_note + html = self.note.to_s.split("\r\n").select{|s| !s.blank?}.first + return Nokogiri::HTML(html).css("body").text + end + def display_other_commitment + html = self.other_commitment.to_s.split("\r\n").select{|s| !s.blank?}.first + return Nokogiri::HTML(html).css("body").text + end + def display_royalty + self.royalty.to_s.gsub("\r\n","
").html_safe + end + def update_inviting(inviting,check_inviting,org_contract=nil,save_flag=true) + if !inviting.nil? + %i(case_no publish_times start_date end_date close_date bid_date evaluation_date contractor_manager bid_result details).each do |attr_| + self[attr_] = inviting.send(attr_) rescue nil + end + else + self[:case_no] = nil + end + update_flag = true + if !org_contract.nil? && org_contract.venue_management_inviting_id == self.venue_management_inviting_id + %i(early_rent operation_rent royalty house_tax_payer land_tax_payer).each do |attr_| + if self[attr_] != (check_inviting.send(attr_) rescue nil) + update_flag = false + end + end + end + if update_flag && !inviting.nil? + %i(early_rent operation_rent royalty house_tax_payer land_tax_payer).each do |attr_| + self[attr_] = (inviting.send(attr_) rescue nil) + end + end + if save_flag + self.save + end + end + def contractors + return( MemberProfile.where(:id.in=>self.contractor_ids).to_a rescue []) + end + def display_contractors + return self.contractors.map{|m| m.name}.join(" , ") + end + def display_tags + self.venue_management_inviting.tags.map{|t| t.name}.join(" , ") rescue "" + end + def display_case_no + return (self.case_no.blank? ? I18n.t(:empty) : self.case_no) + end + before_save do + org_contract = VenueManagementContract.find(self.id) rescue nil + inviting = VenueManagementInviting.find(self.venue_management_inviting_id) rescue nil + update_inviting(inviting,inviting,org_contract,false) + end +end diff --git a/app/models/venue_management_email.rb b/app/models/venue_management_email.rb new file mode 100644 index 0000000..0121ea0 --- /dev/null +++ b/app/models/venue_management_email.rb @@ -0,0 +1,9 @@ +class VenueManagementEmail + include Mongoid::Document + include Mongoid::Timestamps + + field :email_id + def email + Email.find(self.email_id) rescue nil + end +end \ No newline at end of file diff --git a/app/models/venue_management_file.rb b/app/models/venue_management_file.rb index 43a0d5e..44f2a47 100644 --- a/app/models/venue_management_file.rb +++ b/app/models/venue_management_file.rb @@ -8,7 +8,6 @@ class VenueManagementFile field :description, localize: true field :title, localize: true - - belongs_to :venue_management_main - + #belongs_to :venue_management_main + #belongs_to :venue_management_contract end diff --git a/app/models/venue_management_inviting.rb b/app/models/venue_management_inviting.rb new file mode 100644 index 0000000..4824618 --- /dev/null +++ b/app/models/venue_management_inviting.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +require 'orbit_form_helper' + +class VenueManagementInviting + include Mongoid::Document + include Mongoid::Timestamps + include Mongoid::Enum + include OrbitTag::Taggable + PAYERS = [ :school, :vendor].freeze + BID_RESULTS = [ :empty ,:failure, :abandoned, :qualified].freeze + + field :case_no, type: String + field :publish_times, type: Integer + field :start_date, type: Date, default: Time.now + field :end_date, type: Date + field :close_date, type: DateTime + field :bid_date, type: DateTime + field :evaluation_date, type: DateTime + field :early_rent, type: Integer + field :operation_rent, type: Integer + field :royalty, type: String + field :contractor_manager # save user_id + enum :house_tax_payer, PAYERS + enum :land_tax_payer, PAYERS + enum :bid_result, BID_RESULTS + field :details, localize: true + + has_many :venue_management_contracts + has_many :venue_management_memorabilias, :class_name => 'VenueManagementMemorabilia', :foreign_key => "venue_management_memorabilia_ids" + belongs_to :venue_management_main + include VenueLinkFile + def display_royalty + self.royalty.to_s.gsub("\r\n","
").html_safe + end + def display_close_date + self.close_date.strftime("%Y/%m/%d %H:%M") rescue "" + end + def display_bid_date + self.bid_date.strftime("%Y/%m/%d %H:%M") rescue "" + end + def display_evaluation_date + self.evaluation_date.strftime("%Y/%m/%d %H:%M") rescue "" + end + def display_case_no + return (self.case_no.blank? ? I18n.t(:empty) : self.case_no) + end + def display_details + html = self.details.to_s.split("\r\n").select{|s| !s.blank?}.first + return Nokogiri::HTML(html).css("body").text + end + before_save do + contracts = self.venue_management_contracts + org_inviting = VenueManagementInviting.find(self.id) rescue nil + contracts.each do |contract| + contract.update_inviting(self,org_inviting,contract) + end + end +end diff --git a/app/models/venue_management_link.rb b/app/models/venue_management_link.rb index 5cdca42..46da24b 100644 --- a/app/models/venue_management_link.rb +++ b/app/models/venue_management_link.rb @@ -7,12 +7,11 @@ class VenueManagementLink field :url field :title, localize: true - - belongs_to :venue_management_main before_validation :add_http - - validates :url, :presence => true, :format => /\A(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?\Z/i + #belongs_to :venue_management_main + #belongs_to :venue_management_contract + #validates :url, :presence => true, :format => /\A(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(:[0-9]{1,5})?(\/.*)?\Z/i protected diff --git a/app/models/venue_management_main.rb b/app/models/venue_management_main.rb index d1a0135..5d049ba 100644 --- a/app/models/venue_management_main.rb +++ b/app/models/venue_management_main.rb @@ -1,16 +1,17 @@ class VenueManagementMain include Mongoid::Document include Mongoid::Timestamps - include OrbitModel::Impression # encoding: utf-8 include OrbitCategory::Categorizable include Slug - + field :title, as: :slug_title, type: String, localize: true field :speaker, localize: true field :content, localize: true field :land_number, localize: true + field :land_area, localize: true + field :building_area, localize: true field :area, localize: true field :land_zoning, localize: true field :act_place, localize: true @@ -25,7 +26,7 @@ class VenueManagementMain field :contribute_start_date, :type => Date field :contribute_end_date, :type => Date - + field :contribute_file_count, type: String field :registration_status , :type => Array #C: 投稿者 G:一般 @@ -35,8 +36,10 @@ class VenueManagementMain belongs_to :venue_management_item - has_many :venue_management_links, :autosave => true, :dependent => :destroy - has_many :venue_management_files, :autosave => true, :dependent => :destroy + has_many :venue_management_invitings, :autosave => true, :dependent => :destroy + has_many :venue_management_memorabilias, :autosave => true, :dependent => :destroy + has_many :venue_management_bills, :autosave => true, :dependent => :destroy + has_many :venue_management_contracts, :autosave => true, :dependent => :destroy has_many :venue_management_item_contents, :autosave => true, :dependent => :destroy has_many :venue_management_signups, :autosave => true, :dependent => :destroy has_many :venue_management_submission_fields, :autosave => true, :dependent => :destroy @@ -46,8 +49,7 @@ class VenueManagementMain has_many :venue_management_submission_field_sets, autosave: true, dependent: :destroy has_many :venue_management_email_sets, autosave: true, dependent: :destroy has_many :venue_management_signup_field_customs, :autosave => true, :dependent => :destroy - accepts_nested_attributes_for :venue_management_links, :allow_destroy => true - accepts_nested_attributes_for :venue_management_files, :allow_destroy => true + accepts_nested_attributes_for :venue_management_memorabilias, :allow_destroy => true accepts_nested_attributes_for :venue_management_item_contents, :allow_destroy => true accepts_nested_attributes_for :venue_management_signups, :allow_destroy => true accepts_nested_attributes_for :venue_management_submission_fields, :allow_destroy => true @@ -57,22 +59,49 @@ class VenueManagementMain accepts_nested_attributes_for :venue_management_submission_field_sets, :allow_destroy => true accepts_nested_attributes_for :venue_management_email_sets, :allow_destroy => true accepts_nested_attributes_for :venue_management_signup_field_customs, :allow_destroy => true + include VenueLinkFile def self.time_range(date1 = null, date2 = null) - if !date1.blank? - r = "#{date1.strftime('%Y-%m-%d')}" - if date2 - r += " - #{date2.strftime('%Y-%m-%d')}" + r += " - #{date2.strftime('%Y-%m-%d')}" else r += " - #{I18n.t(:no_deadline)}" end - r - end - + end + def contractors + last_contract = self.venue_management_contracts.desc(:id).first + last_contract.contractors rescue [] + end + def display_contractors + last_contract = self.venue_management_contracts.desc(:id).first + contractors = last_contract.contractors rescue [] + contractors.map{|m| m.name}.join(" , ") + end + def display_tags + last_inviting = self.venue_management_invitings.desc(:id).first + last_inviting.tags.map{|t| t.name}.join(" , ") rescue "" + end + def display_event_during + last_contract = self.venue_management_contracts.desc(:id).first + if last_contract.nil? + "" #self.class.time_range(self.venue_management_start_date, self.venue_management_end_date) + else + self.class.time_range(last_contract.contract_start_date, last_contract.contract_end_date) + end + end + def display_signup_during + last_inviting = self.venue_management_invitings.desc(:id).first + if last_inviting.nil? + "" #self.class.time_range(self.signup_start_date, self.signup_end_date) + else + self.class.time_range(last_inviting.start_date, last_inviting.end_date) + end + end + def manager_emails + MemberProfile.where(:id.in => self.manager_ids).collect{|v| v.email} end def get_attribute_value(attribute_field, signup_id) @@ -82,11 +111,18 @@ class VenueManagementMain def get_attribute_values(attribute_type=nil) @attribute_values = attribute_type.venue_management_signup_values rescue nil end - + def get_value_from_field_id(field_id,attribute_type=nil) values = get_attribute_values(attribute_type) value = values.detect {|value| value.venue_management_signup_field_id == field_id} rescue nil value ? value : nil end - + def case_no + '' + end + def newest_case_no + last_contract = self.venue_management_contracts.desc(:id).first + newest_case_no = last_contract.venue_management_inviting.case_no rescue "" + return ( newest_case_no.blank? ? I18n.t(:empty) : newest_case_no) + end end diff --git a/app/models/venue_management_memorabilia.rb b/app/models/venue_management_memorabilia.rb new file mode 100644 index 0000000..befe29a --- /dev/null +++ b/app/models/venue_management_memorabilia.rb @@ -0,0 +1,23 @@ +class VenueManagementMemorabilia + include Mongoid::Document + include Mongoid::Timestamps + include Mongoid::Enum + + field :event_date, type: Date, default: Time.now + field :details, localize: true + def case_no + inviting = self.venue_management_inviting + if !inviting.nil? + inviting.case_no + else + I18n.t("empty") + end + end + belongs_to :venue_management_inviting + belongs_to :venue_management_main + include VenueLinkFile + def display_details + html = self.details.to_s.split("\r\n").select{|s| !s.blank?}.first + return Nokogiri::HTML(html).css("body").text + end +end diff --git a/app/models/venue_management_reminder.rb b/app/models/venue_management_reminder.rb new file mode 100644 index 0000000..7183f71 --- /dev/null +++ b/app/models/venue_management_reminder.rb @@ -0,0 +1,104 @@ +# encoding: utf-8 +class VenueManagementReminder + include Mongoid::Document + include Mongoid::Timestamps + + field :description, localize: true + field :reminder_date, type: Date + field :reminder_date_reminder, type: Boolean,default: false + field :reminder_date_reminder_day, type: Integer + field :calendar_data,type: Hash,default: {type:{},key:[],page_id: {}} + field :calendar_dict,type: Hash,default: {} + has_many :venue_management_emails, :autosave => true, :dependent => :destroy + accepts_nested_attributes_for :venue_management_emails, :allow_destroy => true + def to_calendar_param + vm_contract = self.venue_management_contract rescue VenueManagementContract.all.select{|v| v.venue_management_reminder_ids.include? self.id}.first + venue_main = vm_contract.venue_management_main + self.description+'-'+vm_contract.id.to_s+'?method=show_contract' + end + def calendar_id(field) + self.calendar_dict[field] + end + before_save do + venue_main = self.venue_management_contract.venue_management_main rescue VenueManagementContract.all.select{|v| v.venue_management_reminder_ids.include? self.id}.first.venue_management_main + calendar_keys = Array(self.calendar_data['key']) + (self.calendar_dict.keys - calendar_keys).each do |key_deleted| + event = Event.where(:id => self.calendar_dict[key_deleted]).first + event.model_class = nil + event.destroy + self.calendar_dict.delete(key_deleted) + end + if !calendar_keys.blank? + calendar_keys.each do |key| + key_id = self.calendar_id(key) + current_user_id = OrbitHelper.current_user.id rescue nil + in_use_locales = Site.first.in_use_locales + title_tp = {} + note_tp = {} + titles = venue_main['title'].select{|k,v| v.present?}.to_h + notes = self.description_translations.select{|k,v| v.present?}.to_h + in_use_locales.each do |locale| + if titles[locale].nil? + title_tp[locale] = titles.values.first.to_s + " " + I18n.t("venue_management.reminder") + else + title_tp[locale] = venue_main['title'][locale].to_s + " " + I18n.t("venue_management.reminder") + end + note_tp[locale] = self.description_translations[locale].blank? ? I18n.t(:url_alt) +': ' + notes.values.first.to_s : I18n.t(:url_alt) +': ' + self.description_translations[locale] + end + update_dict = {key: key,model_class: self.class.to_s,model_id: self.id,update_user_id: current_user_id,calendar_type_id: calendar_data['type'][key],all_day: true,start: self.send(key),end: self.send(key),title_translations: title_tp,note_translations: note_tp,module_key: 'venue_management',model_page_id: calendar_data['page_id'][key]} + if key_id.nil? + self.calendar_dict[key] = Event.create(update_dict.merge(create_user_id: current_user_id)).id + else + calendar = Event.find(key_id) rescue nil + if calendar.nil? + self.calendar_dict[key] = Event.create(update_dict.merge(create_user_id: current_user_id)).id + else + calendar.update_attributes(update_dict) + end + end + end + end + self.venue_management_emails.each do |venue_mail| + email = venue_mail.email + if !email.nil? + email.destroy + end + end + self.venue_management_emails = [] + manager_emails = venue_main.manager_emails + self.fields.values.each do|v| + if v.type==Date || v.type==DateTime + if self.send(v.name+'_reminder') + title = venue_main.title + ' ' + self.description.to_s + ' ' + get_trans(v.name) + send_time = self.send(v.name)-self.send(v.name+'_reminder_day').day rescue nil + if !send_time.nil? + new_email = Email.create(mail_to: manager_emails, + module_app_key:"venue_management", + template:"email/reminder_email.html.erb", + mail_sentdate: send_time, + mail_subject: title, + template_data:{'title'=>title,'send_time'=>self.send(v.name),'locale'=>I18n.locale}) + self.venue_management_emails << VenueManagementEmail.new(email_id: new_email.id) + end + end + end + end + end + before_destroy do + calendar_keys = Array(self.calendar_data['key']) + calendar_keys.each do |key| + key_id = self.calendar_id(key) + event = Event.find(key_id) rescue nil + event.destroy + end + end + def get_trans(field) + class_name = self.class.to_s + if class_name == 'VenueManagementMain' + I18n.t("venue_management.#{field}") + else + class_name = class_name.underscore.gsub('venue_management','vm') + I18n.t("#{class_name}.#{field}") + end + end +end diff --git a/app/views/admin/venue_management_bills/_form.html.erb b/app/views/admin/venue_management_bills/_form.html.erb new file mode 100644 index 0000000..13b7c85 --- /dev/null +++ b/app/views/admin/venue_management_bills/_form.html.erb @@ -0,0 +1,468 @@ +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/main-forms" %> + <%= stylesheet_link_tag "lib/fileupload" %> + <%= stylesheet_link_tag "lib/main-list" %> +<% end %> +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/bootstrap-fileupload" %> + <%= javascript_include_tag "lib/bootstrap-datetimepicker" %> + <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> + <%= javascript_include_tag "lib/file-type" %> + <%= javascript_include_tag "lib/module-area" %> +<% end %> + + +
+<% new_record = @venue_management_bill.new_record? && params["action"] != "copy" %> + +
+ +
+ <%= f.hidden_field :venue_management_main_id %> +
+ +
+ <%= f.org_datetime_picker :accounting_month, :no_label => true, :format=>"yyyy/MM", :new_record => new_record %> +
+
+
+ +
+ <%= f.select :bill_typeA, @venue_management_bill.class::BILLTYPE.keys.map { |k| [ I18n.t("vm_bill.#{k}"), k ] },{},{:onchange=>"var $this=this;(function(){var obj=#{@venue_management_bill.class::BILLTYPE.map{|k,v| [k,v.map{|vv| [vv,I18n.t("vm_bill.#{vv}")]}.to_h]}.to_h.to_s.gsub('=>',':')};$($this).siblings('select').html($.map(obj[$this.value],function(v,k){return \'\'}).join(\' \'))})()"} %> + <% bill_typeB = new_record ? @venue_management_bill.class::BILLTYPE.values.first : @venue_management_bill.class::BILLTYPE[@venue_management_bill.bill_typeA] %> + <%= f.select :bill_typeB, bill_typeB.map { |v| [ I18n.t("vm_bill.#{v}"), v ] }, {}, {:onchange=> "var $this=this;(function(){if($this.value == 'other') $('#bill_other_field').removeClass('hidden');else $('#bill_other_field').addClass('hidden');})()"} %> +
+
+
+ <% @site_in_use_locales.each_with_index do |locale, i| %> +
" id="bill_other_<%=locale%>"> + +
+ <%= f.fields_for :bill_other_translations do |f| %> + <%= f.text_field locale , class: "input-block-level", :value => (@venue_management_bill.bill_other_translations[locale] rescue nil), :placeholder=> t('vm_bill.bill_other') %> + <% end %> +
+
+ <% end %> +
+
+ <% @site_in_use_locales.each_with_index do |locale, i| %> + <%=t(locale)%> + <% end %> +
+
+
+
+
+ <% cbt = @venue_management_bill.class::CACULATIONBASISTYPE %> +
+ +
+ <%= f.select :caculation_basis_type, cbt.keys.map { |k| [ I18n.t("vm_bill.#{k}"), k ] }, {}, :id=>'caculation_basis_type' %> +
+
+ <% caculation_basis_type = (new_record ? cbt.keys.first : @venue_management_bill.caculation_basis_type) %> +
+ <% cbt[caculation_basis_type].each do |k,v| %> + <% no_margin = (v['no_margin'] rescue false) ? 'no_margin' : '' %> +
> + +
+ <% other_keys = (v.keys - @venue_management_bill.class::NOTFIELDKEY) rescue [] %> + <% if ( v['fields'].blank? rescue true) %> + <%= f.text_field k if other_keys.blank? %> + <% else %> + <% v['fields'].each do |field_key| %> + <%= f.fields_for k do |f|%> + <%= f.text_field field_key,:value => (@venue_management_bill.send(k)[field_key] rescue "") %> + <%= t("vm_bill.#{field_key}") if field_key != 'field_value' %> + <% end %> + <% end %> + <% end %> + <% if other_keys.present? %> + <% other_keys.each do |field_key| %> + <%= f.fields_for k do |f|%> + <%= t("vm_bill.#{field_key}") if v[field_key]['display_title'] == 'front' %> + <% if v[field_key]['option_select'].blank? %> + <%= f.text_field field_key,:value => (@venue_management_bill.send(k)[field_key] rescue "") %> + <% else %> + <% if v[field_key]['type'].nil? || v[field_key]['type'] == 'select' %> + <%= f.select field_key , options_for_select(v[field_key]['option_select'].map{|o| [t("vm_bill.#{o}"),o]} ,(@venue_management_bill.send(k)[field_key] rescue "")) %> + <% else %> + <% value = (@venue_management_bill.send(k)[field_key] rescue "") %> + <% v[field_key]['option_select'].each do |o| %> + + /> + <%= t("vm_bill.#{o}") %> + + <% end %> + <% end %> + <% end %> + <%= t("vm_bill.#{field_key}") if (field_key != 'field_value' && !v[field_key].has_key?('display_title') ) %> + + <% if ( t("vm_bill")[v[field_key]['unit'].to_sym].nil? rescue true) %> + <%= (v[field_key]['unit'].to_s rescue "") %> + <% else %> + <%= (t("vm_bill.#{v[field_key]['unit'].to_s}") rescue "") %> + <% end %> + + <% end %> + <% end %> + <% end %> + + <% if ( t("vm_bill")[v['unit'].to_sym].nil? rescue true) %> + <%= (v['unit'].to_s rescue "") %> + <% else %> + <%= (t("vm_bill.#{v['unit'].to_s}") rescue "") %> + <% end %> + +
+
+ <% if(v['clear'] rescue false) %> +
+ <% end %> + <% end %> +
+
+
+
<%=f.check_box :tax_excluded, :id=>"tax_excluded" %>
+
+ <%=t('vm_bill.tax_excluded')%> +
+
+ <% fields = ['total_amount' ,'actual_amount','tax'] %> + <% fields.each_with_index do |field,i| %> +
+
<%=t("vm_bill.#{field}") %>
+
+ <%= f.text_field field, :id=>field, :size=>'15', :style=>"width: auto;" %> +
+
+ <% end %> +
+
+ +
+ <%= f.datetime_picker :deadline, :no_label => true, :format=>"yyyy/MM/dd", :new_record => new_record %> +
+
+
+ +
+ <%= f.datetime_picker :received_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => new_record %> +
+
+
+
+ + + + + + + <% translations_fields = {"reason"=>"text_field","pay_method"=>"text_field","note"=>"cktext_area"} %> +
+ + <% @site_in_use_locales.each_with_index do |locale, i| %> + +
"> + + + <% translations_fields.each do |field,type| %> +
+ +
+
+ <%= f.fields_for "#{field}_translations" do |f1| %> + <%= f1.send(type, locale, rows: 5, class: "input-block-level", :value => (@venue_management_bill.send("#{field}_translations")[locale] rescue nil)) %> + <% end %> +
+
+
+ <% end %> +
+ <% end %> + <%= render partial: 'admin/venue_shared/venue_file_link',locals: {venue: @venue_management_bill,f: f} %> +
+
+ + +
+ <%= get_referer_url[:venue_managemention] rescue "" %> + <%= f.submit t('submit'), class: 'btn btn-primary' %> + <% if !params[:id].nil? %> + + <% else %> + + <% end %> + <%= link_to t('cancel'), venue_management_memorabilias_admin_venue_management_path(id: @venue_management.id), :class=>"btn" %> +
+ \ No newline at end of file diff --git a/app/views/admin/venue_management_bills/_index.html.erb b/app/views/admin/venue_management_bills/_index.html.erb new file mode 100644 index 0000000..29c8f67 --- /dev/null +++ b/app/views/admin/venue_management_bills/_index.html.erb @@ -0,0 +1,91 @@ +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> +<% end %> + +<% if 'venue_management_bills' == params[:action] %> +

<%= @venue_management.title %>

+<% end %> + + + + <% @table_fields.each do |f| %> + <%= Admin::VenueManagementBillsHelper.thead(f) %> + <% end %> + + + + <% @bills.each do |bill| %> + + <% if 'venue_management_bills' != params[:action] %> + + <% end %> + + + + + + + + + + + <% end %> + +
<%= bill.venue_management_main.title %> + <% contractors = bill.contractor.display_contractors rescue "" %> + <% contractors = t(:empty) if contractors.blank? %> + <%= link_to contractors, (@venue_management_page_url.blank? ? "#" : "/#{I18n.locale}"+@venue_management_page_url+"/#{contractors.to_s.strip}-#{bill.id}?method=show_bill"), :target => '_self' %> +
+ +
+
<%= bill.display_accounting_month %><%= "#{t("vm_bill.#{bill.bill_typeA}")}/#{t("vm_bill.#{bill.bill_typeB}")}" %> + <% if bill.bill_typeB == 'other' && bill.bill_other.present? %> + -<%=bill.bill_other%> + <% end %> + <%= bill.display_caculation_basis %><%= bill.reason %><%= bill.total_amount %><%= bill.pay_date %><%= bill.pay_method %><%= bill.display_note %>
+<% filter_url = request.fullpath.split("?")[1..-1].join("?") %> +<% if @venue_management.present? %> + <% filter_url.blank? ? (filter_url += "id=#{@venue_management.id}") : (filter_url += "&id=#{@venue_management.id}") %> + +
+ <%= content_tag :div, class: "pagination-centered" do %> + <%= paginate(@bills) %> +
+ <%= link_to content_tag(:i, nil, class: "fa fa-download") + " " + t('venue_management.export'), export_admin_venue_management_bills_path(:format=>'xlsx')+"#{(filter_url.blank? ? '' : ('?'+filter_url))}", class: "btn btn-primary", target: '_blank' %> + <% if can_edit_or_delete?(@venue_management) %> + <%= link_to content_tag(:i, nil, class: "icons-plus") + " " + t(:add), new_admin_venue_management_bill_path(id: @venue_management.id), class: "btn btn-primary" %> + <% end %> +
+ <% end %> +
+ +<% else %> + <%= + content_tag :div, class: "bottomnav clearfix" do + (content_tag(:div, class: "pagination-centered") do + paginate(@bills) + end) + + ('
'.html_safe + + link_to(content_tag(:i, nil, class: "fa fa-download") + " " + t('venue_management.export'), export_admin_venue_management_bills_path(:format=>'xlsx')+"#{(filter_url.blank? ? '' : ('?'+filter_url))}", class: "btn btn-primary", target: '_blank') + + '
'.html_safe) + end + %> +<% end %> + diff --git a/app/views/admin/venue_management_bills/copy.html.erb b/app/views/admin/venue_management_bills/copy.html.erb new file mode 100644 index 0000000..fa9a857 --- /dev/null +++ b/app/views/admin/venue_management_bills/copy.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_bill, url: admin_venue_management_bills_path, html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_bills/edit.html.erb b/app/views/admin/venue_management_bills/edit.html.erb new file mode 100644 index 0000000..74880dc --- /dev/null +++ b/app/views/admin/venue_management_bills/edit.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_bill, url: admin_venue_management_bill_path(@venue_management_bill), html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_bills/export.xlsx.axlsx b/app/views/admin/venue_management_bills/export.xlsx.axlsx new file mode 100644 index 0000000..e202a6e --- /dev/null +++ b/app/views/admin/venue_management_bills/export.xlsx.axlsx @@ -0,0 +1,44 @@ +# encoding: utf-8 + +wb = xlsx_package.workbook + +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 + @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 \ No newline at end of file diff --git a/app/views/admin/venue_management_bills/index.html.erb b/app/views/admin/venue_management_bills/index.html.erb new file mode 100644 index 0000000..d15e963 --- /dev/null +++ b/app/views/admin/venue_management_bills/index.html.erb @@ -0,0 +1,9 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'index' %> + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + \ No newline at end of file diff --git a/app/views/admin/venue_management_bills/new.html.erb b/app/views/admin/venue_management_bills/new.html.erb new file mode 100644 index 0000000..fa9a857 --- /dev/null +++ b/app/views/admin/venue_management_bills/new.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_bill, url: admin_venue_management_bills_path, html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_contracts/_form.html.erb b/app/views/admin/venue_management_contracts/_form.html.erb new file mode 100644 index 0000000..3aeb964 --- /dev/null +++ b/app/views/admin/venue_management_contracts/_form.html.erb @@ -0,0 +1,329 @@ +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/main-forms" %> + <%= stylesheet_link_tag "lib/fileupload" %> + <%= stylesheet_link_tag "lib/main-list" %> +<% end %> +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/bootstrap-fileupload" %> + <%= javascript_include_tag "lib/bootstrap-datetimepicker" %> + <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> + <%= javascript_include_tag "lib/file-type" %> + <%= javascript_include_tag "lib/module-area" %> +<% end %> + +
+ + +
+ +
+ <%= f.hidden_field :venue_management_main_id %> +
+ +
+ <%= f.select :venue_management_inviting_id, @venue_management.venue_management_invitings.map { |i| [ i.case_no, i.id ] }, :include_blank => true %> +
+
+
+ +
+
<%= @venue_management_contract.venue_management_inviting.tags.map{|t| t.name}.join(" , ") rescue "" %>
+
+
+
+ +
+ <%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'venue_management_contract[contractor_ids][]', email_members:Array(@venue_management_contract.contractors), index:'2',select_name:'contractors'} %> +
+
+
+ +
+ <%= f.number_field :early_rent %> +
+
+
+ +
+ <%= f.number_field :operation_rent %> +
+
+
+ +
+ <%= f.text_area :royalty %> +
+
+
+ +
+ <%= f.select :house_tax_payer, VenueManagementInviting::PAYERS.map { |p| [t("vm_inviting.enums.#{p}"), p] } %> +
+
+
+ +
+ <%= f.select :land_tax_payer, VenueManagementInviting::PAYERS.map { |p| [t("vm_inviting.enums.#{p}"), p] } %> +
+
+
+ +
+ <%= f.datetime_picker :contract_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :contract_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :free_period_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :free_period_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :construction_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :construction_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :operation_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :operation_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :sign_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :handover_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.text_field :deposit_amount %> +
+
+
+ +
+ <%= f.datetime_picker :deposit_payment_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <% select_fields = ["現金(支票)","設定質權之金融機構定期存款單","銀行書面連帶保證","其他(可填入資料)"] %> + <%= f.select :deposit_type, options_for_select(select_fields,(select_fields.include?(@venue_management_contract.deposit_type) ? @venue_management_contract.deposit_type : "其他(可填入資料)")) %> + <%= f.text_field :deposit_type , :value => (select_fields.include?(@venue_management_contract.deposit_type) ? "" : @venue_management_contract.deposit_type) ,:style => (select_fields.include?(@venue_management_contract.deposit_type) ? "display:none" : "") , :id => 'venue_management_contract_deposit_type_text' %> +
+
+
+ +
+ <%= f.datetime_picker :deposit_exp_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.text_field :insurance_type %> +
+
+
+ +
+ <%= f.datetime_picker :insurance_payment_deadline, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :insurance_payment_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.text_field :insurance_type2 %> +
+
+
+ +
+ <%= f.datetime_picker :insurance_payment_deadline2, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :insurance_payment_date2, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.text_field :insurance_type3 %> +
+
+
+ +
+ <%= f.datetime_picker :insurance_payment_deadline3, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :insurance_payment_date3, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+ +
+ <%= f.check_box :renewal_permission,:id => 'renewal_permission' %> +
+
+
+ +
+ <%= f.datetime_picker :renewal_deadline, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_contract.new_record? %> +
+
+
+
+ + + + + + +
+ + <% @site_in_use_locales.each_with_index do |locale, i| %> + +
"> + + +
+ +
+
+ <%= f.fields_for :other_commitment_translations do |f| %> + <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@venue_management_contract.other_commitment_translations[locale] rescue nil) %> + <% end %> +
+
+
+ +
+ +
+
+ <%= f.fields_for :note_translations do |f| %> + <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@venue_management_contract.note_translations[locale] rescue nil) %> + <% end %> +
+
+
+
+ + <% end %> + <%= render partial: 'admin/venue_shared/venue_file_link_reminder',locals: {venue: @venue_management_contract,f: f} %> + + +
+ + +
+ <%= get_referer_url[:venue_managemention] rescue "" %> + <%= f.submit t('submit'), class: 'btn btn-primary' %> + <% if !params[:id].nil? %> + + <% else %> + + <% end %> + <%= link_to t('cancel'), venue_management_contracts_admin_venue_management_path(id: @venue_management.id), :class=>"btn" %> +
+ \ No newline at end of file diff --git a/app/views/admin/venue_management_contracts/_index.html.erb b/app/views/admin/venue_management_contracts/_index.html.erb new file mode 100644 index 0000000..8ac832c --- /dev/null +++ b/app/views/admin/venue_management_contracts/_index.html.erb @@ -0,0 +1,87 @@ + +<% if 'venue_management_contracts' == params[:action] %> +

<%= @venue_management.title %>

+<% end %> + + + + <% @table_fields.each do |f| %> + <%= thead(f) %> + <% end %> + + + + <% @contracts.each do |contract| %> + + <% if 'venue_management_contracts' != params[:action] %> + + <% end %> + + + + + + + + + + + + + + + <% end %> + +
<%= contract.venue_management_main.title %> + <% case_no = (contract.case_no.nil? ? t(:empty) : contract.case_no) %> + <%= link_to case_no, (@venue_management_page_url.blank? ? "#" : "/#{I18n.locale}"+@venue_management_page_url+"/#{case_no.to_s.strip}-#{contract.id}?method=show_contract"), :target => '_self' %> + +
+ +
+
<%= contract.display_tags %><%= contract.display_contractors %><%= "#{contract.early_rent} / #{contract.operation_rent}" %><%= contract.display_royalty %><%= "#{contract.contract_start_date} / #{contract.contract_end_date}" %><%= contract.deposit_amount_type_exp_date %><%= contract.renewal_permission.present? ? t("vm_contract.renewal.#{contract.renewal_permission}") : t("vm_contract.renewal.false") %><%= contract.display_other_commitment %><%= contract.display_note %>
+ +<% filter_url = request.fullpath.split("?")[1..-1].join("?") %> +<% if @venue_management.present? %> + <% filter_url.blank? ? (filter_url += "id=#{@venue_management.id}") : (filter_url += "&id=#{@venue_management.id}") %> + +
+ <%= content_tag :div, class: "pagination-centered" do %> + <%= paginate(@contracts) %> +
+ <%= link_to content_tag(:i, nil, class: "fa fa-download") + " " + t('venue_management.export'), export_admin_venue_management_contracts_path(:format=>'xlsx')+"#{(filter_url.blank? ? '' : ('?'+filter_url))}", class: "btn btn-primary", target: '_blank' %> + <% if can_edit_or_delete?(@venue_management) %> + <%= link_to content_tag(:i, nil, class: "icons-plus") + " " + t(:add), new_admin_venue_management_contract_path(id: @venue_management.id), class: "btn btn-primary" %> + <% end %> +
+ <% end %> +
+ +<% else %> + <%= + content_tag :div, class: "bottomnav clearfix" do + (content_tag(:div, class: "pagination-centered") do + paginate(@contracts) + end) + + ('
'.html_safe + + link_to(content_tag(:i, nil, class: "fa fa-download") + " " + t('venue_management.export'), export_admin_venue_management_contracts_path(:format=>'xlsx')+"#{(filter_url.blank? ? '' : ('?'+filter_url))}", class: "btn btn-primary", target: '_blank') + + '
'.html_safe) + end + %> +<% end %> + \ No newline at end of file diff --git a/app/views/admin/venue_management_contracts/edit.html.erb b/app/views/admin/venue_management_contracts/edit.html.erb new file mode 100644 index 0000000..76a45dc --- /dev/null +++ b/app/views/admin/venue_management_contracts/edit.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_contract, url: admin_venue_management_contract_path(@venue_management_contract), html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_contracts/export.xlsx.axlsx b/app/views/admin/venue_management_contracts/export.xlsx.axlsx new file mode 100644 index 0000000..6d8a95c --- /dev/null +++ b/app/views/admin/venue_management_contracts/export.xlsx.axlsx @@ -0,0 +1,87 @@ +# encoding: utf-8 + +wb = xlsx_package.workbook +wb.add_worksheet(name: t('restful_actions.venue_management_contracts')) do |sheet| + row = [] + row << t('venue_management.title') if @id.blank? + row << t('vm_contract.case_no') + row << t('vm_inviting.type') + row << t('venue_management.contractor') + row << t('vm_inviting.rents') + row << t('vm_inviting.royalty') + row << t('vm_inviting.house_land_tax_payer') + row << t('vm_contract.renewal_permission') + row << t('vm_contract.start_end') + row << t('vm_contract.construction_start_end') + row << t('vm_contract.operation_start_end') + row << t('vm_contract.free_period_start_end') + row << t('vm_contract.sign_date') + row << t('vm_contract.handover_date') + row << t('vm_contract.deposit_payment_date') + row << t('vm_contract.deposit_type') + row << t('vm_contract.deposit_exp_date') + row << t('vm_contract.insurance_type') + row << t('vm_contract.insurance_payment_deadline') + row << t('vm_contract.insurance_payment_date') + @site_in_use_locales.each do |locale| + row << t('vm_contract.other_commitment') + " - " + t(locale) + end + @site_in_use_locales.each do |locale| + row << t('vm_contract.note') + " - " + t(locale) + end + row << t("link") + @site_in_use_locales.each do |locale| + row << t("link") + " " + t("url_alt") + " - " + t(locale) + end + row << t("file_") + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("description") + " - " + t(locale) + end + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("alternative") + " - " + t(locale) + end + sheet.add_row row + @contracts.each do |contract| + row2 = [] + row2 << contract.venue_management_main.title if @id.blank? + row2 << contract.case_no + row2 << contract.display_tags + row2 << contract.display_contractors + row2 << "#{contract.early_rent} / #{contract.operation_rent}" + row2 << contract.royalty + row2 << t("vm_inviting.enums.#{contract.house_tax_payer}")+"/"+t("vm_inviting.enums.#{contract.land_tax_payer}") + row2 << contract.renewal_permission.present? ? t("vm_contract.renewal.#{contract.renewal_permission}") : t("vm_contract.renewal.false") + row2 << "#{contract.contract_start_date} ~ #{contract.contract_end_date}" + row2 << "#{contract.construction_start_date} ~ #{contract.construction_end_date}" + row2 << "#{contract.operation_start_date} ~ #{contract.operation_end_date}" + row2 << "#{contract.free_period_start_date} ~ #{contract.free_period_end_date}" + row2 << contract.sign_date + row2 << contract.handover_date + row2 << contract.deposit_payment_date + row2 << contract.deposit_type + row2 << contract.deposit_exp_date + row2 << contract.insurance_type + row2 << contract.insurance_payment_deadline + row2 << contract.insurance_payment_date + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(contract.other_commitment_translations[locale].to_s).css("body").text + end + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(contract.note_translations[locale].to_s).css("body").text + end + row2 << contract.venue_management_links.map{|l| l.url.to_s.strip}.join(";") + @site_in_use_locales.each do |locale| + row2 << contract.venue_management_links.map{|l| l.title_translations[locale].to_s.strip}.join(";") + end + row2 << contract.venue_management_files.map{|f| @host + f.file.url rescue nil}.select{|s| !s.nil?}.join(";") + @site_in_use_locales.each do |locale| + row2 << contract.venue_management_files.map{|f| f.description_translations[locale].to_s.strip}.join(";") + end + @site_in_use_locales.each do |locale| + row2 << contract.venue_management_files.map{|f| f.title_translations[locale].to_s.strip}.join(";") + end + sheet.add_row row2 + end + + +end \ No newline at end of file diff --git a/app/views/admin/venue_management_contracts/index.html.erb b/app/views/admin/venue_management_contracts/index.html.erb new file mode 100644 index 0000000..d15e963 --- /dev/null +++ b/app/views/admin/venue_management_contracts/index.html.erb @@ -0,0 +1,9 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'index' %> + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + \ No newline at end of file diff --git a/app/views/admin/venue_management_contracts/new.html.erb b/app/views/admin/venue_management_contracts/new.html.erb new file mode 100644 index 0000000..91b25b7 --- /dev/null +++ b/app/views/admin/venue_management_contracts/new.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_contract, url: admin_venue_management_contracts_path, html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_invitings/_form.html.erb b/app/views/admin/venue_management_invitings/_form.html.erb new file mode 100644 index 0000000..bebd49a --- /dev/null +++ b/app/views/admin/venue_management_invitings/_form.html.erb @@ -0,0 +1,153 @@ +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/main-forms" %> + <%= stylesheet_link_tag "lib/fileupload" %> + <%= stylesheet_link_tag "lib/main-list" %> +<% end %> +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/bootstrap-fileupload" %> + <%= javascript_include_tag "lib/bootstrap-datetimepicker" %> + <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> + <%= javascript_include_tag "lib/file-type" %> + <%= javascript_include_tag "lib/module-area" %> +<% end %> + +
+ + +
+ +
+ +
+ + <%= select_tags(f, @module_app) %> +
+ <%= f.hidden_field :venue_management_main_id %> +
+ +
+ <%= f.text_field :case_no %> +
+
+
+ +
+ <%= f.number_field :publish_times %> +
+
+
+ +
+ <%= f.datetime_picker :start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_inviting.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_inviting.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :close_date, :no_label => true, :format=>"yyyy/MM/dd HH:mm", :new_record => @venue_management_inviting.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :bid_date, :no_label => true, :format=>"yyyy/MM/dd HH:mm", :new_record => @venue_management_inviting.new_record? %> +
+
+
+ +
+ <%= f.datetime_picker :evaluation_date, :no_label => true, :format=>"yyyy/MM/dd HH:mm", :new_record => @venue_management_inviting.new_record? %> +
+
+
+ +
+ <%= f.number_field :early_rent %> +
+
+
+ +
+ <%= f.number_field :operation_rent %> +
+
+
+ +
+ <%= f.text_area :royalty %> +
+
+
+ +
+ <%= f.select :house_tax_payer, options_for_select(VenueManagementInviting::PAYERS.map { |p| [t("vm_inviting.enums.#{p}"), p] },(@venue_management_inviting.new_record? ? VenueManagementInviting::PAYERS.last : @venue_management_inviting.house_tax_payer)) %> +
+
+
+ +
+ <%= f.select :land_tax_payer, options_for_select(VenueManagementInviting::PAYERS.map { |p| [t("vm_inviting.enums.#{p}"), p] },(@venue_management_inviting.new_record? ? VenueManagementInviting::PAYERS.last : @venue_management_inviting.land_tax_payer)) %> +
+
+
+ +
+ <%= f.select :bid_result, VenueManagementInviting::BID_RESULTS.map { |p| [t("vm_inviting.enums.bid_result.#{p}"), p] } %> +
+
+
+
+ + + + + + +
+ + <% @site_in_use_locales.each_with_index do |locale, i| %> + +
"> + + +
+ +
+
+ <%= f.fields_for :details_translations do |f| %> + <%= f.cktext_area locale, rows: 5, class: "input-block-level", :value => (@venue_management_inviting.details_translations[locale] rescue nil) %> + <% end %> +
+
+
+
+ + <% end %> + + <%= render partial: 'admin/venue_shared/venue_file_link',locals: {venue: @venue_management_inviting,f: f} %> +
+
+ + +
+ <%= get_referer_url[:venue_managemention] rescue "" %> + <%= f.submit t('submit'), class: 'btn btn-primary' %> + <% if !params[:id].nil? %> + + <% else %> + + <% end %> + <%= link_to t('cancel'), venue_management_invitings_admin_venue_management_path(id: @venue_management.id), :class=>"btn" %> +
diff --git a/app/views/admin/venue_management_invitings/_index.html.erb b/app/views/admin/venue_management_invitings/_index.html.erb new file mode 100644 index 0000000..0a49825 --- /dev/null +++ b/app/views/admin/venue_management_invitings/_index.html.erb @@ -0,0 +1,82 @@ + +<% if 'venue_management_invitings' == params[:action] %> +

<%= @venue_management.title %>

+<% end %> + + + + <% @table_fields.each do |f| %> + <%= thead(f) %> + <% end %> + + + + <% @invitings.each do |inviting| %> + + <% if 'venue_management_invitings' != params[:action] %> + + <% end %> + + + + + + + + + + + + <% end %> + +
<%= inviting.venue_management_main.title %> + <%= link_to inviting.display_case_no, (@venue_management_page_url.blank? ? "#" : "/#{I18n.locale}"+@venue_management_page_url+"/#{inviting.display_case_no.strip}-#{inviting.id}?method=show_inviting"), :target => '_self' %> + +
+ +
+
<%= inviting.tags.map{|t| t.name}.join(" , ") rescue "" %><%= inviting.publish_times %><%= inviting.start_date.to_s + "/" + inviting.end_date.to_s %><%= "#{inviting.early_rent} / #{inviting.operation_rent}" %><%= inviting.display_royalty %><%= t("vm_inviting.enums.#{inviting.house_tax_payer}") + "/" + t("vm_inviting.enums.#{inviting.land_tax_payer}") %><%= inviting.contractor_manager %><%= t("vm_inviting.enums.bid_result.#{inviting.bid_result}") %><%= inviting.display_details %>
+<% filter_url = request.fullpath.split("?")[1..-1].join("?") %> +<% if @venue_management.present? %> + <% filter_url.blank? ? (filter_url += "id=#{@venue_management.id}") : (filter_url += "&id=#{@venue_management.id}") %> + +
+ <%= content_tag :div, class: "pagination-centered" do %> + <%= paginate(@invitings) %> +
+ <%= link_to content_tag(:i, nil, class: "fa fa-download") + " " + t('venue_management.export'), export_admin_venue_management_invitings_path(:format=>'xlsx')+"#{(filter_url.blank? ? '' : ('?'+filter_url))}", class: "btn btn-primary", target: '_blank' %> + <% if can_edit_or_delete?(@venue_management) %> + <%= link_to content_tag(:i, nil, class: "icons-plus") + " " + t(:add), new_admin_venue_management_inviting_path(id: @venue_management.id), class: "btn btn-primary" %> + <% end %> +
+ <% end %> +
+ +<% else %> + <%= + content_tag :div, class: "bottomnav clearfix" do + (content_tag(:div, class: "pagination-centered") do + paginate(@invitings) + end) + + ('
'.html_safe + + link_to(content_tag(:i, nil, class: "fa fa-download") + " " + t('venue_management.export'), export_admin_venue_management_invitings_path(:format=>'xlsx')+"#{(filter_url.blank? ? '' : ('?'+filter_url))}", class: "btn btn-primary", target: '_blank') + + '
'.html_safe) + end + %> +<% end %> + \ No newline at end of file diff --git a/app/views/admin/venue_management_invitings/edit.html.erb b/app/views/admin/venue_management_invitings/edit.html.erb new file mode 100644 index 0000000..4dce640 --- /dev/null +++ b/app/views/admin/venue_management_invitings/edit.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_inviting, url: admin_venue_management_inviting_path(@venue_management_inviting), html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_invitings/export.xlsx.axlsx b/app/views/admin/venue_management_invitings/export.xlsx.axlsx new file mode 100644 index 0000000..929156d --- /dev/null +++ b/app/views/admin/venue_management_invitings/export.xlsx.axlsx @@ -0,0 +1,60 @@ +# encoding: utf-8 + +wb = xlsx_package.workbook + +wb.add_worksheet(name: t('restful_actions.venue_management_invitings')) do |sheet| + row = [] + row << t('venue_management.title') if @id.blank? + row << t('vm_inviting.type') + row << t('vm_inviting.case_no') + row << t('vm_inviting.publish_times') + row << t('vm_inviting.rents') + row << t('vm_inviting.royalty') + row << t('vm_inviting.house_land_tax_payer') + row << t('vm_inviting.contractor_manager') + row << t('vm_inviting.bid_result') + @site_in_use_locales.each do |locale| + row << t('vm_inviting.details') + "-" + t(locale) + end + row << t("link") + @site_in_use_locales.each do |locale| + row << t("link") + " " + t("url_alt") + " - " + t(locale) + end + row << t("file_") + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("description") + " - " + t(locale) + end + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("alternative") + " - " + t(locale) + end + sheet.add_row row + @invitings.each do |inviting| + row2 = [] + row2 << inviting.venue_management_main.title if @id.blank? + row2 << inviting.tags.map{|t| t.name}.join(" , ") + row2 << inviting.case_no + row2 << inviting.publish_times + row2 << "#{inviting.early_rent} / #{inviting.operation_rent}" + row2 << inviting.royalty + row2 << t("vm_inviting.enums.#{inviting.house_tax_payer}")+"/"+t("vm_inviting.enums.#{inviting.land_tax_payer}") + row2 << inviting.contractor_manager + row2 << t("vm_inviting.enums.bid_result.#{inviting.bid_result}") + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(inviting.details_translations[locale].to_s).css("body").text + end + row2 << inviting.venue_management_links.map{|l| l.url.to_s.strip}.join(";") + @site_in_use_locales.each do |locale| + row2 << inviting.venue_management_links.map{|l| l.title_translations[locale].to_s.strip}.join(";") + end + row2 << inviting.venue_management_files.map{|f| @host + f.file.url rescue nil}.select{|s| !s.nil?}.join(";") + @site_in_use_locales.each do |locale| + row2 << inviting.venue_management_files.map{|f| f.description_translations[locale].to_s.strip}.join(";") + end + @site_in_use_locales.each do |locale| + row2 << inviting.venue_management_files.map{|f| f.title_translations[locale].to_s.strip}.join(";") + end + sheet.add_row row2 + end + + +end \ No newline at end of file diff --git a/app/views/admin/venue_management_invitings/index.html.erb b/app/views/admin/venue_management_invitings/index.html.erb new file mode 100644 index 0000000..d15e963 --- /dev/null +++ b/app/views/admin/venue_management_invitings/index.html.erb @@ -0,0 +1,9 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'index' %> + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + \ No newline at end of file diff --git a/app/views/admin/venue_management_invitings/new.html.erb b/app/views/admin/venue_management_invitings/new.html.erb new file mode 100644 index 0000000..8e39716 --- /dev/null +++ b/app/views/admin/venue_management_invitings/new.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_inviting, url: admin_venue_management_invitings_path, html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_memorabilias/_form.html.erb b/app/views/admin/venue_management_memorabilias/_form.html.erb new file mode 100644 index 0000000..6eb2385 --- /dev/null +++ b/app/views/admin/venue_management_memorabilias/_form.html.erb @@ -0,0 +1,80 @@ +<% content_for :page_specific_css do %> + <%= stylesheet_link_tag "lib/main-forms" %> + <%= stylesheet_link_tag "lib/fileupload" %> + <%= stylesheet_link_tag "lib/main-list" %> +<% end %> +<% content_for :page_specific_javascript do %> + <%= javascript_include_tag "lib/bootstrap-fileupload" %> + <%= javascript_include_tag "lib/bootstrap-datetimepicker" %> + <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> + <%= javascript_include_tag "lib/file-type" %> + <%= javascript_include_tag "lib/module-area" %> +<% end %> + +
+ + +
+ +
+ <%= f.hidden_field :venue_management_main_id %> +
+ +
+ <%= f.select :venue_management_inviting_id, @venue_management.venue_management_invitings.map { |i| [ i.case_no, i.id ] }, :include_blank => true %> +
+
+
+ +
+ <%= f.datetime_picker :event_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management_memorabilia.new_record? %> +
+
+
+
+ + + + + + +
+ + <% @site_in_use_locales.each_with_index do |locale, i| %> + +
"> + + +
+ +
+
+ <%= f.fields_for :details_translations do |f1| %> + <%= f1.cktext_area locale, rows: 5, class: "input-block-level", :value => (@venue_management_memorabilia.details_translations[locale] rescue nil) %> + <% end %> +
+
+
+
+ <% end %> + <%= render partial: 'admin/venue_shared/venue_file_link',locals: {venue: @venue_management_memorabilia,f: f} %> +
+
+ + +
+ <%= get_referer_url[:venue_managemention] rescue "" %> + <%= f.submit t('submit'), class: 'btn btn-primary' %> + <% if !params[:id].nil? %> + + <% else %> + + <% end %> + <%= link_to t('cancel'), venue_management_memorabilias_admin_venue_management_path(id: @venue_management.id), :class=>"btn" %> +
diff --git a/app/views/admin/venue_management_memorabilias/_index.html.erb b/app/views/admin/venue_management_memorabilias/_index.html.erb new file mode 100644 index 0000000..8ab23a4 --- /dev/null +++ b/app/views/admin/venue_management_memorabilias/_index.html.erb @@ -0,0 +1,66 @@ + +<% if 'venue_management_memorabilias' == params[:action] %> +

<%= @venue_management.title %>

+<% end %> + + + + <% @table_fields.each do |f| %> + <%= thead(f) %> + <% end %> + + + + <% @memorabilias.each do |memorabilia| %> + + <% if 'venue_management_memorabilias' != params[:action] %> + + <% end %> + + + + + <% end %> + +
<%= memorabilia.venue_management_main.title %> + <%= link_to (memorabilia.case_no.blank? ? t("empty") : @venue_management_page_url.blank? ? "" : memorabilia.case_no), ("/#{I18n.locale}"+@venue_management_page_url+"/#{memorabilia.case_no.to_s.strip}-#{memorabilia.id}?method=show_memorabilia") , :target => '_blank' %> +
+ +
+
<%= memorabilia.event_date %><%= memorabilia.display_details %>
+ +<%= + content_tag :div, class: "bottomnav clearfix" do + content_tag :div, paginate(@memorabilias), class: "pagination pagination-centered" + end +%> +<% if @venue_management.present? %> + +
+ <%= content_tag :div, class: "pagination pagination-centered" do %> + <%= paginate(@memorabilias) %> + <% if can_edit_or_delete?(@venue_management) %> +
+ <%= link_to content_tag(:i, nil, class: "icons-plus") + " " + t(:add), new_admin_venue_management_memorabilia_path(id: @venue_management.id), class: "btn btn-primary" %> +
+ <% end %> + <% end %> +
+ +<% end %> + diff --git a/app/views/admin/venue_management_memorabilias/edit.html.erb b/app/views/admin/venue_management_memorabilias/edit.html.erb new file mode 100644 index 0000000..be230ee --- /dev/null +++ b/app/views/admin/venue_management_memorabilias/edit.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_memorabilia, url: admin_venue_management_memorabilia_path(@venue_management_memorabilia), html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_management_memorabilias/index.html.erb b/app/views/admin/venue_management_memorabilias/index.html.erb new file mode 100644 index 0000000..858109c --- /dev/null +++ b/app/views/admin/venue_management_memorabilias/index.html.erb @@ -0,0 +1,9 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'index' %> + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + diff --git a/app/views/admin/venue_management_memorabilias/new.html.erb b/app/views/admin/venue_management_memorabilias/new.html.erb new file mode 100644 index 0000000..1039a8d --- /dev/null +++ b/app/views/admin/venue_management_memorabilias/new.html.erb @@ -0,0 +1,5 @@ +<%= form_for @venue_management_memorabilia, url: admin_venue_management_memorabilias_path, html: {class: "form-horizontal main-forms"} do |f| %> +
+ <%= render :partial => 'form', locals: {f: f} %> +
+<% end %> diff --git a/app/views/admin/venue_managements/_form.html.erb b/app/views/admin/venue_managements/_form.html.erb index 58c761b..da3ea1e 100644 --- a/app/views/admin/venue_managements/_form.html.erb +++ b/app/views/admin/venue_managements/_form.html.erb @@ -11,7 +11,7 @@ <%= javascript_include_tag "lib/bootstrap-datetimepicker" %> <%= javascript_include_tag "lib/datetimepicker/datetimepicker.js" %> <%= javascript_include_tag "lib/file-type" %> - <%= javascript_include_tag "lib/module-area" %> + <%= javascript_include_tag "lib/module-area" %> <% end %>
+ <% flash.each do |type, msg| %> +
+ <%= msg %> +
+ <% end %> + @@ -62,92 +82,129 @@
- -
- <%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'venue_management_main[contractor_ids][]', email_members:Array(@contractors), index:'2',select_name:'contractors'} %> + +
+ <%= f.object.display_event_during %>
- -
- -
- <%= f.datetime_picker :venue_management_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management.new_record? %> + +
+ <%= f.object.display_signup_during %>
- -
- -
- <%= f.datetime_picker :venue_management_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management.new_record? %> -
-
- -
- - - -
- - - - -
- -
- <%= render partial: 'admin/member_selects/email_selection_box', locals: {field: 'venue_management_main[coordinator_ids][]', email_members:Array(@coordinators), index:'3',select_name:'coordinators'} %> -
-
- - -
- -
- <%= f.datetime_picker :signup_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management.new_record? %> -
-
- -
- -
- <%= f.datetime_picker :signup_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management.new_record? %> -
-
- - -
- -
- <%= f.datetime_picker :contribute_start_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management.new_record? %> -
-
- -
- -
- <%= f.datetime_picker :contribute_end_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => @venue_management.new_record? %> -
-
- -
- -
- <%= f.text_field :contribute_file_count %> - (<%= t('venue_management.blank_no_limit') %>) -
-
- + <% @venue_management_contract = f.object.venue_management_contracts.desc(:id).first %> + <% if !@venue_management_contract.nil? %> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <% if !@venue_management_contract.venue_management_files.blank? %> + + + + + <% end %> + <% if !@venue_management_contract.venue_management_links.blank? %> + + + + + <% end %> + +
<%= t('vm_contract.case_no') %><%= @venue_management.newest_case_no %>
<%= t('vm_inviting.type') %><%= @venue_management_contract.display_tags %>
<%= t('venue_management.contractor') %><%= @venue_management_contract.display_contractors %>
<%= t('vm_inviting.rents') %><%= "#{@venue_management_contract.early_rent} / #{@venue_management_contract.operation_rent}" %>
<%= t('vm_inviting.royalty') %><%= @venue_management_contract.royalty %>
<%= t('vm_inviting.house_land_tax_payer') %><%= t("vm_inviting.enums.#{@venue_management_contract.house_tax_payer}")+"/"+t("vm_inviting.enums.#{@venue_management_contract.land_tax_payer}") %>
<%= t('vm_contract.renewal_permission') %><%= @venue_management_contract.renewal_permission.present? ? t("vm_contract.renewal.#{@venue_management_contract.renewal_permission}") : t("vm_contract.renewal.false") %>
<%= t('vm_contract.start_end') %><%= "#{@venue_management_contract.contract_start_date} ~ #{@venue_management_contract.contract_end_date}" %>
<%= t('vm_contract.construction_start_end') %><%= "#{@venue_management_contract.construction_start_date} ~ #{@venue_management_contract.construction_end_date}" %>
<%= t('vm_contract.operation_start_end') %><%= "#{@venue_management_contract.operation_start_date} ~ #{@venue_management_contract.operation_end_date}" %>
<%= t('vm_contract.free_period_start_end') %><%= "#{@venue_management_contract.free_period_start_date} ~ #{@venue_management_contract.free_period_end_date}" %>
<%= t('vm_contract.sign_date') %><%= @venue_management_contract.sign_date %>
<%= t('vm_contract.handover_date') %><%= @venue_management_contract.handover_date %>
<%= t('vm_contract.deposit_payment_date') %><%= @venue_management_contract.deposit_payment_date %>
<%= t('vm_contract.deposit_type') %><%= @venue_management_contract.deposit_type %>
<%= t('vm_contract.deposit_exp_date') %><%= @venue_management_contract.deposit_exp_date %>
<%= t('vm_contract.insurance_type') %><%= @venue_management_contract.insurance_type %>
<%= t('vm_contract.insurance_payment_deadline') %><%= @venue_management_contract.insurance_payment_deadline %>
<%= t('vm_contract.insurance_payment_date') %><%= @venue_management_contract.insurance_payment_date %>
<%= t('vm_contract.other_commitment') %><%= @venue_management_contract.other_commitment.to_s.html_safe %>
<%= t('vm_contract.note') %><%= @venue_management_contract.note %>
<%= t(:file_) %> + <% @venue_management_contract.venue_management_files.map do |file| %> + <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %> + <% end %> +
<%= t(:link) %> + <% @venue_management_contract.venue_management_links.map do |link| %> + <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %> + <% end %> +
+ <% end %>
@@ -232,7 +289,7 @@ <%# @submission_set.each_with_index do |attr_signup,submission_index| %> - + <%#= t("venue_management_signup.#{attr_signup.field_name}") %> @@ -266,7 +323,7 @@ <% @custom_set.each_with_index do |attr_custom,custom_index| %> - + <%= VenueManagementSignupField.where(id:attr_custom.venue_management_signup_field_id).first.title rescue '' %> @@ -310,7 +367,7 @@
- + @@ -319,7 +376,7 @@ <%= check_box_tag("venue_management_main[venue_management_email_sets][#{index1}][disabled]", true ,@email_set[index1].disabled) %> - + @@ -327,7 +384,7 @@ <%= venue_method.show_set_field(@email_set[index1],'venue_management_email_sets',index1,'title','text_field') %> - + @@ -338,7 +395,7 @@ - +
<%= t('venue_management.disable') %>
<%= t('venue_management.email_title') %>
<%= t('venue_management.email_content') %>
<% end %> @@ -360,7 +417,7 @@
<% @site_in_use_locales.each_with_index do |locale, i| %> - +
"> @@ -373,7 +430,7 @@
- +
@@ -393,18 +450,19 @@
- -
- -
-
- <%= f.fields_for :area_translations do |f| %> - <%= f.text_field locale, class: "input-block-level", :value => (@venue_management.area_translations[locale] rescue nil),placeholder: t('venue_management.area') %> - <% end %> + <% areas = ['land_area','building_area','area'] %> + <% areas.each do |area| %> +
+ +
+
+ <%= f.fields_for :area_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", :value => (@venue_management.send("#{area}_translations")[locale] rescue nil),placeholder: t("venue_management.#{area}") %> + <% end %> +
-
- + <% end %>
@@ -442,63 +500,8 @@
<% end %> - - -
- -
- - - <% if @venue_management && !@venue_management.venue_management_links.blank? %> -
- <% @venue_management.venue_management_links.each_with_index do |venue_management_link, i| %> - <%= f.fields_for :venue_management_links, venue_management_link do |f| %> - <%= render :partial => 'form_link', :object => venue_management_link, :locals => {:f => f, :i => i} %> - <% end %> - <% end %> -
-
- <% end %> - - -
-
-

- <%= hidden_field_tag 'venue_management_link_field_count', @venue_management.venue_management_links.count %> - <%= t(:add) %> -

- -
-
- - -
- -
- - - <% if @venue_management && !@venue_management.venue_management_files.blank? %> -
- <% @venue_management.venue_management_files.each_with_index do |venue_management_file, i| %> - <%= f.fields_for :venue_management_files, venue_management_file do |f| %> - <%= render :partial => 'form_file', :object => venue_management_file, :locals => {:f => f, :i => i} %> - <% end %> - <% end %> -
-
- <% end %> - - -
-
-

- <%= hidden_field_tag 'venue_management_file_field_count', @venue_management.venue_management_files.count %> - <%= t(:add) %> -

- -
-
- + <%= render partial: 'admin/venue_shared/venue_file_link',locals: {venue: @venue_management,f: f} %> +
@@ -508,49 +511,5 @@ <%= get_referer_url[:venue_managemention] rescue "" %> <%= f.submit t('submit'), class: 'btn btn-primary' %> - <%= link_to t('cancel'), admin_venue_managements_path, :class=>"btn" %> -
- -<% content_for :page_specific_javascript do %> - -<% end %> \ No newline at end of file + <%= link_to t('cancel'), admin_venue_managements_path, :class=>"btn" %> +
\ No newline at end of file diff --git a/app/views/admin/venue_managements/_index.html.erb b/app/views/admin/venue_managements/_index.html.erb index a0b1b6f..b27a126 100644 --- a/app/views/admin/venue_managements/_index.html.erb +++ b/app/views/admin/venue_managements/_index.html.erb @@ -17,7 +17,9 @@ <% @venue_managements.each do |venue_management| %> + <%= venue_management.category.title %> + <%= venue_management.display_tags %> <%= venue_management.title %>
@@ -25,18 +27,31 @@ <% if can_edit_or_delete?(venue_management) %>
  • <%= t(:edit) %>
  • <%= t('venue_management.set_venue_management_item_content') %>
  • +
  • <%= t(:delete_) %>
  • <% end %> +
  • <%= t("venue_management.print_pdf") %>
  • - <%= VenueManagementMain.time_range(venue_management.venue_management_start_date, venue_management.venue_management_end_date) %> - <%= VenueManagementMain.time_range(venue_management.signup_start_date, venue_management.signup_end_date) %> - <%= venue_management.venue_management_signups.count %> - 0 - 0 + <%= venue_management.display_contractors %> + <%= venue_management.display_event_during %> + <%= venue_management.display_signup_during %> + + <%= link_to venue_management.venue_management_invitings.count, venue_management_invitings_admin_venue_management_path(venue_management.id) %> + + + <%= link_to venue_management.venue_management_contracts.count, venue_management_contracts_admin_venue_management_path(venue_management.id) %> + + + <%= link_to venue_management.venue_management_memorabilias.count, venue_management_memorabilias_admin_venue_management_path(venue_management.id) %> + + + <%= link_to venue_management.venue_management_bills.count, venue_management_bills_admin_venue_management_path(venue_management.id) %> + <%= t('venue_management.export') %> <% end %> @@ -47,4 +62,4 @@ content_tag :div, class: "bottomnav clearfix" do content_tag :div, paginate(@venue_managements), class: "pagination pagination-centered" end -%> \ No newline at end of file +%> diff --git a/app/views/admin/venue_managements/export.xlsx.axlsx b/app/views/admin/venue_managements/export.xlsx.axlsx index dcfadc5..bdaa812 100644 --- a/app/views/admin/venue_managements/export.xlsx.axlsx +++ b/app/views/admin/venue_managements/export.xlsx.axlsx @@ -2,65 +2,223 @@ wb = xlsx_package.workbook -wb.add_worksheet(name: (@venue_management.title.to_s[0..27]+'...')) do |sheet| - - row = [t('venue_management_signup.signup_time')] - - row << t('venue_management_signup.name') - - row << t('venue_management_signup.unit') - - row << t('venue_management_signup.tel') - - row << t('venue_management_signup.phone') - - row << t('venue_management_signup.fax') - - row << t('venue_management_signup.address') - - row << t(:email) - - row << t('venue_management_signup.note') - - @venue_management.venue_management_signup_fields.asc(:_id).each do |rf| - if rf.can_muti_lang_input? - @site_in_use_locales.each do |l| - row << rf.title + " (#{t(l.to_s)})" - end - else - row << rf.title +wb.add_worksheet(name: t('restful_actions.venue_management_contracts')) do |sheet| + row = [] + row << t('venue_management.title') if @id.blank? + row << t('vm_contract.case_no') + row << t('vm_inviting.type') + row << t('venue_management.contractor') + row << t('vm_inviting.rents') + row << t('vm_inviting.royalty') + row << t('vm_inviting.house_land_tax_payer') + row << t('vm_contract.renewal_permission') + row << t('vm_contract.start_end') + row << t('vm_contract.construction_start_end') + row << t('vm_contract.operation_start_end') + row << t('vm_contract.free_period_start_end') + row << t('vm_contract.sign_date') + row << t('vm_contract.handover_date') + row << t('vm_contract.deposit_payment_date') + row << t('vm_contract.deposit_type') + row << t('vm_contract.deposit_exp_date') + row << t('vm_contract.insurance_type') + row << t('vm_contract.insurance_payment_deadline') + row << t('vm_contract.insurance_payment_date') + @site_in_use_locales.each do |locale| + row << t('vm_contract.other_commitment') + " - " + t(locale) end - end - - sheet.add_row row - - @venue_management.venue_management_signups.each do |signup| - - row2 = [] - - row2 << "#{signup.created_at} " - row2 << "#{signup[:name]} " - row2 << "#{signup.unit} " - row2 << "#{signup[:tel]} " - row2 << "#{signup[:phone]} " - row2 << "#{signup[:fax]} " - row2 << "#{signup.address} " - row2 << "#{signup[:email]} " - row2 << "#{signup.note} " - - @venue_management.venue_management_signup_fields.asc(:_id).each do |rf| - if rf.can_muti_lang_input? - @site_in_use_locales.each do |l| - row2 << nl2br(show_attribute_value(@venue_management.get_attribute_value(rf,signup.id).get_value_by_locale(l))) rescue ' ' + @site_in_use_locales.each do |locale| + row << t('vm_contract.note') + " - " + t(locale) + end + row << t("link") + @site_in_use_locales.each do |locale| + row << t("link") + " " + t("url_alt") + " - " + t(locale) + end + row << t("file_") + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("description") + " - " + t(locale) + end + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("alternative") + " - " + t(locale) + end + sheet.add_row row + @venue_management.venue_management_contracts.each do |contract| + row2 = [] + row2 << contract.venue_management_main.title if @id.blank? + row2 << contract.case_no + row2 << contract.display_tags + row2 << contract.display_contractors + row2 << "#{contract.early_rent} / #{contract.operation_rent}" + row2 << contract.royalty + row2 << t("vm_inviting.enums.#{contract.house_tax_payer}")+"/"+t("vm_inviting.enums.#{contract.land_tax_payer}") + row2 << contract.renewal_permission.present? ? t("vm_contract.renewal.#{contract.renewal_permission}") : t("vm_contract.renewal.false") + row2 << "#{contract.contract_start_date} ~ #{contract.contract_end_date}" + row2 << "#{contract.construction_start_date} ~ #{contract.construction_end_date}" + row2 << "#{contract.operation_start_date} ~ #{contract.operation_end_date}" + row2 << "#{contract.free_period_start_date} ~ #{contract.free_period_end_date}" + row2 << contract.sign_date + row2 << contract.handover_date + row2 << contract.deposit_payment_date + row2 << contract.deposit_type + row2 << contract.deposit_exp_date + row2 << contract.insurance_type + row2 << contract.insurance_payment_deadline + row2 << contract.insurance_payment_date + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(contract.other_commitment_translations[locale].to_s).css("body").text end - else - row2 << nl2br(show_attribute_value(@venue_management.get_attribute_value(rf,signup.id).get_value_by_locale(I18n.locale))) rescue ' ' - end + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(contract.note_translations[locale].to_s).css("body").text + end + row2 << contract.venue_management_links.map{|l| l.url.to_s.strip}.join(";") + @site_in_use_locales.each do |locale| + row2 << contract.venue_management_links.map{|l| l.title_translations[locale].to_s.strip}.join(";") + end + row2 << contract.venue_management_files.map{|f| @host + f.file.url rescue nil}.select{|s| !s.nil?}.join(";") + @site_in_use_locales.each do |locale| + row2 << contract.venue_management_files.map{|f| f.description_translations[locale].to_s.strip}.join(";") + end + @site_in_use_locales.each do |locale| + row2 << contract.venue_management_files.map{|f| f.title_translations[locale].to_s.strip}.join(";") + end + sheet.add_row row2 end - - sheet.add_row row2 - end end +wb.add_worksheet(name: t('restful_actions.venue_management_invitings')) do |sheet| + row = [] + row << t('venue_management.title') if @id.blank? + row << t('vm_inviting.type') + row << t('vm_inviting.case_no') + row << t('vm_inviting.publish_times') + row << t('vm_inviting.rents') + row << t('vm_inviting.royalty') + row << t('vm_inviting.house_land_tax_payer') + row << t('vm_inviting.contractor_manager') + row << t('vm_inviting.bid_result') + @site_in_use_locales.each do |locale| + row << t('vm_inviting.details') + "-" + t(locale) + end + row << t("link") + @site_in_use_locales.each do |locale| + row << t("link") + " " + t("url_alt") + " - " + t(locale) + end + row << t("file_") + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("description") + " - " + t(locale) + end + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("alternative") + " - " + t(locale) + end + sheet.add_row row + @venue_management.venue_management_invitings.each do |inviting| + row2 = [] + row2 << inviting.venue_management_main.title if @id.blank? + row2 << inviting.tags.map{|t| t.name}.join(" , ") + row2 << inviting.case_no + row2 << inviting.publish_times + row2 << "#{inviting.early_rent} / #{inviting.operation_rent}" + row2 << inviting.royalty + row2 << t("vm_inviting.enums.#{inviting.house_tax_payer}")+"/"+t("vm_inviting.enums.#{inviting.land_tax_payer}") + row2 << inviting.contractor_manager + row2 << t("vm_inviting.enums.bid_result.#{inviting.bid_result}") + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(inviting.details_translations[locale].to_s).css("body").text + end + row2 << inviting.venue_management_links.map{|l| l.url.to_s.strip}.join(";") + @site_in_use_locales.each do |locale| + row2 << inviting.venue_management_links.map{|l| l.title_translations[locale].to_s.strip}.join(";") + end + row2 << inviting.venue_management_files.map{|f| @host + f.file.url rescue nil}.select{|s| !s.nil?}.join(";") + @site_in_use_locales.each do |locale| + row2 << inviting.venue_management_files.map{|f| f.description_translations[locale].to_s.strip}.join(";") + end + @site_in_use_locales.each do |locale| + row2 << inviting.venue_management_files.map{|f| f.title_translations[locale].to_s.strip}.join(";") + end + sheet.add_row row2 + end +end +wb.add_worksheet(name: t('restful_actions.venue_management_memorabilias')) do |sheet| + row = [] + row << t('venue_management.title') if @id.blank? + row << t('vm_memorabilia.case_no') + row << t('vm_memorabilia.event_date') + @site_in_use_locales.each do |locale| + row << t('vm_memorabilia.details') + "-" + t(locale) + end + row << t("link") + @site_in_use_locales.each do |locale| + row << t("link") + " " + t("url_alt") + " - " + t(locale) + end + row << t("file_") + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("description") + " - " + t(locale) + end + @site_in_use_locales.each do |locale| + row << t("file_") + " " + t("alternative") + " - " + t(locale) + end + sheet.add_row row + @venue_management.venue_management_memorabilias.each do |memorabilia| + row2 = [] + row2 << memorabilia.venue_management_main.title if @id.blank? + row2 << memorabilia.case_no + row2 << memorabilia.event_date + @site_in_use_locales.each do |locale| + row2 << Nokogiri::HTML(memorabilia.details_translations[locale].to_s).css("body").text + end + row2 << memorabilia.venue_management_links.map{|l| l.url.to_s.strip}.join(";") + @site_in_use_locales.each do |locale| + row2 << memorabilia.venue_management_links.map{|l| l.title_translations[locale].to_s.strip}.join(";") + end + row2 << memorabilia.venue_management_files.map{|f| @host + f.file.url rescue nil}.select{|s| !s.nil?}.join(";") + @site_in_use_locales.each do |locale| + row2 << memorabilia.venue_management_files.map{|f| f.description_translations[locale].to_s.strip}.join(";") + end + @site_in_use_locales.each do |locale| + row2 << memorabilia.venue_management_files.map{|f| f.title_translations[locale].to_s.strip}.join(";") + end + sheet.add_row row2 + 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 \ No newline at end of file diff --git a/app/views/admin/venue_managements/print_pdf.html.erb b/app/views/admin/venue_managements/print_pdf.html.erb new file mode 100644 index 0000000..31c8239 --- /dev/null +++ b/app/views/admin/venue_managements/print_pdf.html.erb @@ -0,0 +1,386 @@ +<% # encoding: utf-8 %> +<% if params[:type] == "print" %> + + + + <%= @venue_management.title %> + + <%= stylesheet_link_tag "bootstrap/bootstrap.min.css" ,:media => "all" %> + + + + +<% end %> + +<%= javascript_include_tag "jspdf.min" %> + +<% @save_name = @venue_management.title %> +
    + <%= I18n.t('venue_management.print_pdf') %> +
    + +<% if params[:type] == "print" %> + + + +<% end %> \ No newline at end of file diff --git a/app/views/admin/venue_managements/venue_management_bills.html.erb b/app/views/admin/venue_managements/venue_management_bills.html.erb new file mode 100644 index 0000000..e7d58e0 --- /dev/null +++ b/app/views/admin/venue_managements/venue_management_bills.html.erb @@ -0,0 +1,12 @@ +
    +<%= render_filter @filter_fields, "index_table" %> +
    + + <%= render 'admin/venue_management_bills/index' %> + + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + diff --git a/app/views/admin/venue_managements/venue_management_contracts.html.erb b/app/views/admin/venue_managements/venue_management_contracts.html.erb new file mode 100644 index 0000000..e218120 --- /dev/null +++ b/app/views/admin/venue_managements/venue_management_contracts.html.erb @@ -0,0 +1,10 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'admin/venue_management_contracts/index' %> + + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + \ No newline at end of file diff --git a/app/views/admin/venue_managements/venue_management_invitings.html.erb b/app/views/admin/venue_managements/venue_management_invitings.html.erb new file mode 100644 index 0000000..d6a5e9b --- /dev/null +++ b/app/views/admin/venue_managements/venue_management_invitings.html.erb @@ -0,0 +1,10 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'admin/venue_management_invitings/index' %> + + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + \ No newline at end of file diff --git a/app/views/admin/venue_managements/venue_management_memorabilias.html.erb b/app/views/admin/venue_managements/venue_management_memorabilias.html.erb new file mode 100644 index 0000000..51fc798 --- /dev/null +++ b/app/views/admin/venue_managements/venue_management_memorabilias.html.erb @@ -0,0 +1,10 @@ +<%= render_filter @filter_fields, "index_table" %> + + <%= render 'admin/venue_management_memorabilias/index' %> + + +<%= render 'layouts/delete_modal', delete_options: @delete_options %> + \ No newline at end of file diff --git a/app/views/admin/venue_shared/_form_file.html.erb b/app/views/admin/venue_shared/_form_file.html.erb new file mode 100644 index 0000000..b30539b --- /dev/null +++ b/app/views/admin/venue_shared/_form_file.html.erb @@ -0,0 +1,55 @@ +<% if form_file.nil? || form_file.new_record? %> +
    +<% else %> +
    + <% if form_file.file.blank? %> + <%= t(:no_file) %> + <% else %> + <%= link_to content_tag(:i) + form_file.file_identifier, form_file.file.url, {:class => 'file-link file-type', :target => '_blank', :title => form_file.file_identifier} %> + <% end %> +<% end %> +
    + + + + <% @site_in_use_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :title_translations do |f| %> + <%= f.text_field locale, :class => "input-medium", placeholder: t(:alternative), :value => (form_file.title_translations[locale] rescue nil) %> + <% end %> + + <% end %> + + + + <% @site_in_use_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :description_translations do |f| %> + <%= f.text_field locale, :class => "input-medium", placeholder: t(:description), :value => (form_file.description_translations[locale] rescue nil) %> + <% end %> + + <% end %> + + + <% if form_file.nil? || form_file.new_record? %> + + + + <% else %> + + <%= f.hidden_field :id %> + + <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> + + <% end %> +
    +
    \ No newline at end of file diff --git a/app/views/admin/venue_shared/_form_link.html.erb b/app/views/admin/venue_shared/_form_link.html.erb new file mode 100644 index 0000000..586bf3f --- /dev/null +++ b/app/views/admin/venue_shared/_form_link.html.erb @@ -0,0 +1,26 @@ +
    + + <%= f.text_field :url, class: "input-large", placeholder: t(:url) %> + + + <% @site_in_use_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :title_translations do |f| %> + <%= f.text_field locale, :class => "input-large", placeholder: t(:url_alt), :value => (form_link.title_translations[locale] rescue nil) %> + <% end %> + + <% end %> + + + <% if form_link.nil? || form_link.new_record? %> + + + + <% else %> + + <%= f.hidden_field :id %> + + <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> + + <% end %> +
    \ No newline at end of file diff --git a/app/views/admin/venue_shared/_form_reminder.html.erb b/app/views/admin/venue_shared/_form_reminder.html.erb new file mode 100644 index 0000000..5f61c40 --- /dev/null +++ b/app/views/admin/venue_shared/_form_reminder.html.erb @@ -0,0 +1,110 @@ +
    +
    + + + <% @site_in_use_locales.each_with_index do |locale, i| %> + <%= locale %>"> + <%= f.fields_for :description_translations do |f| %> + <%= f.text_field locale, :class => "input-large", placeholder: t(:url_alt), :value => (form_reminder.description_translations[locale] rescue nil) %> + <% end %> + + <% end %> + +
    + <%= f.datetime_picker :reminder_date, :no_label => true, :format=>"yyyy/MM/dd", :new_record => (form_reminder.nil? || form_reminder.new_record?) %> + <% if form_reminder.nil? || form_reminder.new_record? %> + + + + <% else %> + + <%= f.hidden_field :id %> + + <%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %> + + <% end %> +
    + \ No newline at end of file diff --git a/app/views/admin/venue_shared/_venue_file_link.html.erb b/app/views/admin/venue_shared/_venue_file_link.html.erb new file mode 100644 index 0000000..f67299c --- /dev/null +++ b/app/views/admin/venue_shared/_venue_file_link.html.erb @@ -0,0 +1,94 @@ + +
    + +
    + + + <% if !venue.nil? && !venue.venue_management_links.blank? %> +
    + <% venue.venue_management_links.each_with_index do |venue_management_link, i| %> + <%= f.fields_for :venue_management_links, venue_management_link do |f| %> + <%= render :partial => 'admin/venue_shared/form_link', :locals => {:f => f, :i => i,form_link: venue_management_link} %> + <% end %> + <% end %> +
    +
    + <% end %> + + +
    +
    +

    + <%= hidden_field_tag 'venue_management_link_field_count', venue.venue_management_links.count %> + <%= t(:add) %> +

    +
    +
    + + +
    + +
    + + + <% if !venue.nil? && !venue.venue_management_files.blank? %> +
    + <% venue.venue_management_files.each_with_index do |venue_management_file, i| %> + <%= f.fields_for :venue_management_files, venue_management_file do |f| %> + <%= render :partial => 'admin/venue_shared/form_file', :locals => {:f => f, :i => i,form_file: venue_management_file} %> + <% end %> + <% end %> +
    +
    + <% end %> + + +
    +
    +

    + <%= hidden_field_tag 'venue_management_file_field_count', venue.venue_management_files.count %> + <%= t(:add) %> +

    + +
    +
    +
    + \ No newline at end of file diff --git a/app/views/admin/venue_shared/_venue_file_link_reminder.html.erb b/app/views/admin/venue_shared/_venue_file_link_reminder.html.erb new file mode 100644 index 0000000..a5dcff0 --- /dev/null +++ b/app/views/admin/venue_shared/_venue_file_link_reminder.html.erb @@ -0,0 +1,131 @@ + +
    + +
    + + + <% if !venue.nil? && !venue.venue_management_links.blank? %> +
    + <% venue.venue_management_links.each_with_index do |venue_management_link, i| %> + <%= f.fields_for :venue_management_links, venue_management_link do |f| %> + <%= render :partial => 'admin/venue_shared/form_link', :locals => {:f => f, :i => i,form_link: venue_management_link} %> + <% end %> + <% end %> +
    +
    + <% end %> + + +
    +
    +

    + <%= hidden_field_tag 'venue_management_link_field_count', venue.venue_management_links.count %> + <%= t(:add) %> +

    +
    +
    + + +
    + +
    + + + <% if !venue.nil? && !venue.venue_management_files.blank? %> +
    + <% venue.venue_management_files.each_with_index do |venue_management_file, i| %> + <%= f.fields_for :venue_management_files, venue_management_file do |f| %> + <%= render :partial => 'admin/venue_shared/form_file', :locals => {:f => f, :i => i,form_file: venue_management_file} %> + <% end %> + <% end %> +
    +
    + <% end %> + + +
    +
    +

    + <%= hidden_field_tag 'venue_management_file_field_count', venue.venue_management_files.count %> + <%= t(:add) %> +

    + +
    +
    + +
    + +
    + + + <% if !venue.nil? && !venue.venue_management_reminders.blank? %> +
    + <% venue.venue_management_reminders.each_with_index do |venue_management_reminder, i| %> + <%= f.fields_for :venue_management_reminders, venue_management_reminder do |f| %> + <%= render :partial => 'admin/venue_shared/form_reminder', :locals => {:f => f, :i => i,form_reminder: venue_management_reminder} %> + <% end %> + <% end %> +
    +
    + <% end %> + + +
    +
    +

    + <%= hidden_field_tag 'venue_management_reminder_field_count', venue.venue_management_reminders.count %> + <%= t(:add) %> +

    + +
    +
    + + \ No newline at end of file diff --git a/app/views/email/reminder_email.html.erb b/app/views/email/reminder_email.html.erb new file mode 100644 index 0000000..65c1171 --- /dev/null +++ b/app/views/email/reminder_email.html.erb @@ -0,0 +1,3 @@ +<%= @data['title'] %> +
    +<%= @data['send_time'].strftime("%Y/%m/%d") %> \ No newline at end of file diff --git a/app/views/venue_managements/index.html.erb b/app/views/venue_managements/index.html.erb index 21da889..7e92504 100644 --- a/app/views/venue_managements/index.html.erb +++ b/app/views/venue_managements/index.html.erb @@ -13,10 +13,11 @@ <%= t(:category) %> + <%= t('vm_inviting.type') %> <%= t('venue_management.title') %> - <%= t('venue_management_signup.time') %> - <%= t('venue_management_signup.place') %> - <%= t('venue_management.signup') %> + <%= t('venue_management.contractor') %> + <%= t('venue_management.event_during') %> + <%= t('venue_management.signup_during') %> @@ -34,28 +35,16 @@ end %> - <%= venue_management.category.title %> - <%= ('' + venue_management.title + '').html_safe %> - <%= VenueManagementMain.time_range(venue_management.venue_management_start_date, venue_management.venue_management_end_date) %> - <%= venue_management.act_place %> - - <%= sign_up %>
    - - <%= - if !venue_management.registration_status.blank? and venue_management.registration_status.include?('C') and venue_management.contribute_start_date <= @time_now and ( venue_management.contribute_end_date.nil? or venue_management.contribute_end_date+1 >= @time_now ) - if !session[:venue_management_signup_id].blank? - if session[:venue_management_main_id] == venue_management.id - ('' + t('venue_management_signup.uploads') + '').html_safe - else - ('' + t('venue_management_signup.con_login') + '').html_safe - end - else - ('' + t('venue_management_signup.con_login') + '').html_safe - end - end - %> - - + + <%= venue_management.category.title %> + <%= venue_management.display_tags %> + + <%= venue_management.title %> + + <%= venue_management.display_contractors %> + <%= venue_management.display_event_during %> + <%= venue_management.display_signup_during %> + <% end %> diff --git a/app/views/venue_managements/show_bill.html.erb b/app/views/venue_managements/show_bill.html.erb new file mode 100644 index 0000000..e86d938 --- /dev/null +++ b/app/views/venue_managements/show_bill.html.erb @@ -0,0 +1,83 @@ +<% # encoding: utf-8 %> +<% @@session = session %> +<%= yield %> +<% + data = action_data + @venue_management_bill = data["venue_management_bill"] + @params = data['params'] +%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <% if !@venue_management_bill.venue_management_files.blank? %> + + + + + <% end %> + <% if !@venue_management_bill.venue_management_links.blank? %> + + + + + <% end %> + +
    <%= t('venue_management.title') %><%= @venue_management_bill.venue_management_main.title %>
    <%= t('vm_bill.contractor') %> + <% contractors = @venue_management_bill.contractor.display_contractors rescue "" %> + <% contractors = t(:empty) if contractors.blank? %> + <%= contractors %> +
    <%= t('vm_bill.accounting_month') %><%= @venue_management_bill.display_accounting_month %>
    <%= t('vm_bill.bill_type') %><%= "#{t("vm_bill.#{@venue_management_bill.bill_typeA}")}/#{t("vm_bill.#{@venue_management_bill.bill_typeB}")}" %> + <% if @venue_management_bill.bill_typeB == 'other' && @venue_management_bill.bill_other.present? %> + -<%=@venue_management_bill.bill_other%> + <% end %> +
    <%= t('vm_bill.caculation_basis') %><%= @venue_management_bill.display_caculation_basis %>
    <%= t('vm_bill.reason') %><%= @venue_management_bill.reason %>
    <%= t('vm_bill.total_amount') %><%= @venue_management_bill.total_amount %>
    <%= t('vm_bill.pay_date') %><%= @venue_management_bill.pay_date %>
    <%= t('vm_bill.pay_method') %><%= @venue_management_bill.pay_method %>
    <%= t('vm_bill.note') %><%= @venue_management_bill.note.to_s.html_safe %>
    <%= t(:file_) %> + <% @venue_management_bill.venue_management_files.map do |file| %> + <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %> + <% end %> +
    <%= t(:link) %> + <% @venue_management_bill.venue_management_links.map do |link| %> + <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %> + <% end %> +
    + +
    +<%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %> diff --git a/app/views/venue_managements/show_contract.html.erb b/app/views/venue_managements/show_contract.html.erb new file mode 100644 index 0000000..b5cb5e8 --- /dev/null +++ b/app/views/venue_managements/show_contract.html.erb @@ -0,0 +1,153 @@ +<% # encoding: utf-8 %> +<% @@session = session %> +<%= yield %> +<% + data = action_data + @venue_management_contract = data["venue_management_contract"] + @params = data['params'] +%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <% if @venue_management_contract.insurance_type2.present? %> + + + + + + + + + + + + + <% end %> + <% if @venue_management_contract.insurance_type3.present? %> + + + + + + + + + + + + + <% end %> + + + + + + + + + <% if !@venue_management_contract.venue_management_files.blank? %> + + + + + <% end %> + <% if !@venue_management_contract.venue_management_links.blank? %> + + + + + <% end %> + +
    <%= t('vm_contract.case_no') %><%= @venue_management_contract.display_case_no %>
    <%= t('vm_inviting.type') %><%= @venue_management_contract.display_tags %>
    <%= t('venue_management.contractor') %><%= @venue_management_contract.display_contractors %>
    <%= t('vm_inviting.rents') %><%= "#{@venue_management_contract.early_rent} / #{@venue_management_contract.operation_rent}" %>
    <%= t('vm_inviting.royalty') %><%= @venue_management_contract.display_royalty %>
    <%= t('vm_inviting.house_land_tax_payer') %><%= t("vm_inviting.enums.#{@venue_management_contract.house_tax_payer}")+"/"+t("vm_inviting.enums.#{@venue_management_contract.land_tax_payer}") %>
    <%= t('vm_contract.renewal_permission') %><%= @venue_management_contract.renewal_permission.present? ? t("vm_contract.renewal.#{@venue_management_contract.renewal_permission}") : t("vm_contract.renewal.false") %>
    <%= t('vm_contract.start_end') %><%= "#{@venue_management_contract.contract_start_date} ~ #{@venue_management_contract.contract_end_date}" %>
    <%= t('vm_contract.construction_start_end') %><%= "#{@venue_management_contract.construction_start_date} ~ #{@venue_management_contract.construction_end_date}" %>
    <%= t('vm_contract.operation_start_end') %><%= "#{@venue_management_contract.operation_start_date} ~ #{@venue_management_contract.operation_end_date}" %>
    <%= t('vm_contract.free_period_start_end') %><%= "#{@venue_management_contract.free_period_start_date} ~ #{@venue_management_contract.free_period_end_date}" %>
    <%= t('vm_contract.sign_date') %><%= @venue_management_contract.sign_date %>
    <%= t('vm_contract.handover_date') %><%= @venue_management_contract.handover_date %>
    <%= t('vm_contract.deposit_amount') %><%= @venue_management_contract.deposit_amount %>
    <%= t('vm_contract.deposit_payment_date') %><%= @venue_management_contract.deposit_payment_date %>
    <%= t('vm_contract.deposit_type') %><%= @venue_management_contract.deposit_type %>
    <%= t('vm_contract.deposit_exp_date') %><%= @venue_management_contract.deposit_exp_date %>
    <%= t('vm_contract.insurance_type') %><%= @venue_management_contract.insurance_type %>
    <%= t('vm_contract.insurance_payment_deadline') %><%= @venue_management_contract.insurance_payment_deadline %>
    <%= t('vm_contract.insurance_payment_date') %><%= @venue_management_contract.insurance_payment_date %>
    <%= t('vm_contract.insurance_type2') %><%= @venue_management_contract.insurance_type2 %>
    <%= t('vm_contract.insurance_payment_deadline2') %><%= @venue_management_contract.insurance_payment_deadline2 %>
    <%= t('vm_contract.insurance_payment_date2') %><%= @venue_management_contract.insurance_payment_date2 %>
    <%= t('vm_contract.insurance_type3') %><%= @venue_management_contract.insurance_type3 %>
    <%= t('vm_contract.insurance_payment_deadline3') %><%= @venue_management_contract.insurance_payment_deadline3 %>
    <%= t('vm_contract.insurance_payment_date3') %><%= @venue_management_contract.insurance_payment_date3 %>
    <%= t('vm_contract.other_commitment') %><%= @venue_management_contract.other_commitment.to_s.html_safe %>
    <%= t('vm_contract.note') %><%= @venue_management_contract.note.to_s.html_safe %>
    <%= t(:file_) %> + <% @venue_management_contract.venue_management_files.map do |file| %> + <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %> + <% end %> +
    <%= t(:link) %> + <% @venue_management_contract.venue_management_links.map do |link| %> + <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %> + <% end %> +
    + +
    +<%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %> diff --git a/app/views/venue_managements/show_data.html.erb b/app/views/venue_managements/show_data.html.erb index 348bf14..76631cf 100644 --- a/app/views/venue_managements/show_data.html.erb +++ b/app/views/venue_managements/show_data.html.erb @@ -9,6 +9,7 @@ @venue_management_time_range = data["venue_management_time_range"] @contribute_time_range = data["contribute_time_range"] @contribute_action = data["contribute_action"] + @params = data['params'] %> @@ -26,12 +27,34 @@ <%= t('venue_management.title') %> <%= @venue_management.title %> - <% if !@venue_management.speaker.blank? %> + <% if !@venue_management.speaker.blank? #address %> <%= t('venue_management.speaker') %> <%= @venue_management.speaker %> <% end %> + <% if !@venue_management.land_number.blank? %> + + <%= t('venue_management.land_number') %> + <%= @venue_management.land_number %> + + <% end %> + <% areas = ['land_area','building_area','area'] %> + <% areas.each do |area| %> + <% if !@venue_management.send(area).blank? %> + + <%= t("venue_management.#{area}") %> + <%= @venue_management.send(area) %> + + <% end %> + <% end %> + <% if !@venue_management.land_zoning.blank? %> + + <%= t('venue_management.land_zoning') %> + <%= @venue_management.land_zoning %> + + <% end %> + <% if !@venue_management.content.blank? %> <%= t('venue_management.content') %> @@ -84,9 +107,297 @@ <%= item_content.content.html_safe %> <% end %> + + <% @venue_management_contract = @venue_management.venue_management_contracts.desc(:id).first %> + <% if !@venue_management_contract.nil? %> + + <%= t('vm_contract.case_no') %> + <%= @venue_management.newest_case_no rescue "" %> + + + <%= t('vm_inviting.type') %> + <%= @venue_management_contract.display_tags %> + + + <%= t('venue_management.contractor') %> + <%= @venue_management_contract.display_contractors %> + + + <%= t('vm_inviting.rents') %> + <%= "#{@venue_management_contract.early_rent} / #{@venue_management_contract.operation_rent}" %> + + + <%= t('vm_inviting.royalty') %> + <%= @venue_management_contract.display_royalty %> + + + + <%= t('vm_inviting.house_land_tax_payer') %> + <%= t("vm_inviting.enums.#{@venue_management_contract.house_tax_payer}")+"/"+t("vm_inviting.enums.#{@venue_management_contract.land_tax_payer}") %> + + + <%= t('vm_contract.renewal_permission') %> + <%= @venue_management_contract.renewal_permission.present? ? t("vm_contract.renewal.#{@venue_management_contract.renewal_permission}") : t("vm_contract.renewal.false") %> + + + <%= t('vm_contract.start_end') %> + <%= "#{@venue_management_contract.contract_start_date} ~ #{@venue_management_contract.contract_end_date}" %> + + + <%= t('vm_contract.construction_start_end') %> + <%= "#{@venue_management_contract.construction_start_date} ~ #{@venue_management_contract.construction_end_date}" %> + + + <%= t('vm_contract.operation_start_end') %> + <%= "#{@venue_management_contract.operation_start_date} ~ #{@venue_management_contract.operation_end_date}" %> + + + <%= t('vm_contract.free_period_start_end') %> + <%= "#{@venue_management_contract.free_period_start_date} ~ #{@venue_management_contract.free_period_end_date}" %> + + + <%= t('vm_contract.sign_date') %> + <%= @venue_management_contract.sign_date %> + + + <%= t('vm_contract.handover_date') %> + <%= @venue_management_contract.handover_date %> + + + <%= t('vm_contract.deposit_payment_date') %> + <%= @venue_management_contract.deposit_payment_date %> + + + <%= t('vm_contract.deposit_type') %> + <%= @venue_management_contract.deposit_type %> + + + <%= t('vm_contract.deposit_exp_date') %> + <%= @venue_management_contract.deposit_exp_date %> + + + <%= t('vm_contract.insurance_type') %> + <%= @venue_management_contract.insurance_type %> + + + <%= t('vm_contract.insurance_payment_deadline') %> + <%= @venue_management_contract.insurance_payment_deadline %> + + + <%= t('vm_contract.insurance_payment_date') %> + <%= @venue_management_contract.insurance_payment_date %> + + + <%= t('vm_contract.other_commitment') %> + <%= @venue_management_contract.other_commitment.to_s.html_safe %> + + + <%= t('vm_contract.note') %> + <%= @venue_management_contract.display_note %> + + <% if !@venue_management_contract.venue_management_files.blank? %> + + <%= t(:file_) %> + + <% @venue_management_contract.venue_management_files.map do |file| %> + <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %> + <% end %> + + + <% end %> + <% if !@venue_management_contract.venue_management_links.blank? %> + + <%= t(:link) %> + + <% @venue_management_contract.venue_management_links.map do |link| %> + <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %> + <% end %> + + + <% end %> + <% end %>
    + +
    +
    +
    +
    + + + + + <% @table_fields = [ + 'vm_contract.case_no', + 'vm_contract.vendor', + 'vm_contract.start_end', + 'vm_contract.renewal_permission', + 'vm_contract.other_commitment', + 'vm_contract.note', + ] %> + <% @table_fields.each do |th| %> + + <% end %> + + + + <% @contracts = @venue_management.venue_management_contracts.to_a %> + <% @contracts.each do |contract| %> + + + + + + + + + <% end%> + +
    <%=t(th)%>
    + <%= link_to contract.display_case_no, "/#{I18n.locale}"+@params[:url]+"/#{contract.display_case_no.to_s.strip}-#{contract.id}?method=show_contract" , :target => '_blank' %> + <%= contract.display_contractors %><%= "#{contract.contract_start_date} / #{contract.contract_end_date}" %><%= contract.renewal_permission.present? ? t("vm_contract.renewal.#{contract.renewal_permission}") : t("vm_contract.renewal.false") %><%= contract.display_other_commitment %><%= contract.display_note %>
    + +
    +
    + +
    + +
    + <% + @table_fields = [ + 'vm_memorabilia.case_no', + 'vm_memorabilia.event_date', + 'vm_memorabilia.details' + ] + @memorabilias = @venue_management.venue_management_memorabilias.to_a + %> + + + + <% @table_fields.each do |th| %> + + <% end %> + + + + <% @memorabilias.each do |memorabilia| %> + + + + + + <% end %> + +
    <%=t(th)%>
    + <%= link_to memorabilia.case_no, "/#{I18n.locale}"+@params[:url]+"/#{memorabilia.case_no.to_s.strip}-#{memorabilia.id}?method=show_memorabilia", :target => '_blank' %> + <%= memorabilia.event_date %><%= memorabilia.display_details %>
    + +
    +
    + +
    + +
    + <% + @table_fields = [ + 'vm_inviting.case_no', + 'vm_inviting.publish_times', + 'vm_inviting.rents', + 'vm_inviting.royalty', + 'vm_inviting.house_land_tax_payer', + 'vm_inviting.contractor_manager', + 'vm_inviting.bid_result', + 'vm_inviting.details' + ] + @invitings = @venue_management.venue_management_invitings.to_a + %> + + + + <% @table_fields.each do |th| %> + + <% end %> + + + + <% @invitings.each do |inviting| %> + + + + + + + + + + + <% end %> + +
    <%=t(th)%>
    + <%= link_to inviting.display_case_no, "/#{I18n.locale}"+@params[:url]+"/#{inviting.display_case_no.strip}-#{inviting.id}?method=show_inviting", :target => '_blank' %> + <%= inviting.publish_times %><%= "#{inviting.early_rent} / #{inviting.operation_rent}" %><%= inviting.display_royalty %><%= t("vm_inviting.enums.#{inviting.house_tax_payer}") + "/" + t("vm_inviting.enums.#{inviting.land_tax_payer}") %><%= inviting.contractor_manager %><%= t("vm_inviting.enums.bid_result.#{inviting.bid_result}") %><%= inviting.display_details %>
    + +
    +
    + +
    + +
    + <% + @table_fields = [ + "contractor", + "accounting_month", + "bill_type", + "caculation_basis", + "reason", + "total_amount", + "pay_date", + "pay_method", + "note" + ] + @bills = @venue_management.venue_management_bills.to_a + %> + + + + <% @table_fields.each do |th| %> + <%=Admin::VenueManagementBillsHelper.thead(th)%> + <% end %> + + + + <% @bills.each do |bill| %> + + + + + + + + + + + + <% end %> + +
    + <% contractors = bill.contractor.display_contractors rescue "" %> + <% contractors = t(:empty) if contractors.blank? %> + <%= link_to contractors, "/#{I18n.locale}"+@params[:url]+"/#{contractors.to_s.strip}-#{bill.id}?method=show_bill", :target => '_blank' %> + <%= bill.display_accounting_month %><%= "#{t("vm_bill.#{bill.bill_typeA}")}/#{t("vm_bill.#{bill.bill_typeB}")}" %> + <% if bill.bill_typeB == 'other' && bill.bill_other.present? %> + -<%=bill.bill_other%> + <% end %> + <%= bill.display_caculation_basis %><%= bill.reason %><%= bill.total_amount %><%= bill.pay_date %><%= bill.pay_method %><%= bill.note %>
    + +
    +
    <%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %> diff --git a/app/views/venue_managements/show_inviting.html.erb b/app/views/venue_managements/show_inviting.html.erb new file mode 100644 index 0000000..1fd10b0 --- /dev/null +++ b/app/views/venue_managements/show_inviting.html.erb @@ -0,0 +1,88 @@ +<% # encoding: utf-8 %> +<% @@session = session %> +<%= yield %> +<% + data = action_data + @venue_management_inviting = data["venue_management_inviting"] + @params = data['params'] +%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <% if !@venue_management_inviting.venue_management_files.blank? %> + + + + + <% end %> + <% if !@venue_management_inviting.venue_management_links.blank? %> + + + + + <% end %> + +
    <%= t('vm_inviting.type') %><%= @venue_management_inviting.tags.map{|t| t.name}.join(" , ") %>
    <%= t('vm_inviting.case_no') %><%= @venue_management_inviting.display_case_no %>
    <%= t('vm_inviting.publish_times') %><%= @venue_management_inviting.publish_times %>
    <%= t('vm_inviting.start_end') %><%= @venue_management_inviting.start_date.to_s + "/" + @venue_management_inviting.end_date.to_s %>
    <%= t('vm_inviting.close_date') %><%= @venue_management_inviting.display_close_date %>
    <%= t('vm_inviting.bid_date') %><%= @venue_management_inviting.display_bid_date %>
    <%= t('vm_inviting.evaluation_date') %><%= @venue_management_inviting.display_evaluation_date %>
    <%= t('vm_inviting.rents') %><%= "#{@venue_management_inviting.early_rent} / #{@venue_management_inviting.operation_rent}" %>
    <%= t('vm_inviting.royalty') %><%= @venue_management_inviting.display_royalty %>
    <%= t('vm_inviting.house_land_tax_payer') %><%= t("vm_inviting.enums.#{@venue_management_inviting.house_tax_payer}")+"/"+t("vm_inviting.enums.#{@venue_management_inviting.land_tax_payer}") %>
    <%= t('vm_inviting.contractor_manager') %><%= @venue_management_inviting.contractor_manager %>
    <%= t('vm_inviting.bid_result') %><%= t("vm_inviting.enums.bid_result.#{@venue_management_inviting.bid_result}") %>
    <%= t('vm_inviting.details') %><%= @venue_management_inviting.details.to_s.html_safe %>
    <%= t(:file_) %> + <% @venue_management_inviting.venue_management_files.map do |file| %> + <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %> + <% end %> +
    <%= t(:link) %> + <% @venue_management_inviting.venue_management_links.map do |link| %> + <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %> + <% end %> +
    + +
    +<%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %> diff --git a/app/views/venue_managements/show_memorabilia.html.erb b/app/views/venue_managements/show_memorabilia.html.erb new file mode 100644 index 0000000..9f96786 --- /dev/null +++ b/app/views/venue_managements/show_memorabilia.html.erb @@ -0,0 +1,47 @@ +<% # encoding: utf-8 %> +<% @@session = session %> +<%= yield %> +<% + data = action_data + @venue_management_memorabilia = data["venue_management_memorabilia"] + @params = data['params'] +%> + + + + + + + + + + + + + + + <% if !@venue_management_memorabilia.venue_management_files.blank? %> + + + + + <% end %> + <% if !@venue_management_memorabilia.venue_management_links.blank? %> + + + + + <% end %> + +
    <%= t('vm_memorabilia.case_no') %><%= @venue_management_memorabilia.case_no %>
    <%= t('vm_memorabilia.event_date') %><%= @venue_management_memorabilia.event_date %>
    <%= t('vm_memorabilia.details') %><%= @venue_management_memorabilia.details.to_s.html_safe %>
    <%= t(:file_) %> + <% @venue_management_memorabilia.venue_management_files.map do |file| %> + <%= link_to (file.title.blank? ? File.basename(file.file.path) : file.title) , file.file.url, {:target => '_blank', :title => file.description} if file.file.file %> + <% end %> +
    <%= t(:link) %> + <% @venue_management_memorabilia.venue_management_links.map do |link| %> + <%= link_to (link.title.blank? ? link.url : link.title), link.url, :target => '_blank' %> + <% end %> +
    + +
    +<%= link_to t(:close), 'javascript:window.close();', :class => 'btn btn-primary' %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 7cc3b59..5b7924f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,14 +1,19 @@ en: - + copy: Copy simple_captcha: placeholder: "" label: "" - + empty: none restful_actions: + print_pdf: Print act_signup: Sign Up Info #報名資料 venue_management_submission_field: VenueManagement Submission Field venue_management_signup_field: VenueManagement Signup Field venue_management_signup: Signup Analyze + venue_management_memorabilias: Memorabilia + venue_management_bills: Bills + venue_management_invitings: Inviting History + venue_management_contracts: Contract History module_name: venue_management: Outsourced Venue Management #場地管理系統 @@ -17,10 +22,20 @@ en: verification_failed: Verification Failed #驗證碼錯誤 venue_management: + search: Search + reminder: Reminder + print_pdf: Print + send_email_reminder: Send email reminder + before: Before + day_send_email: day send email + add_to_calendar: Add to calendar manager: Manager contractor: Contractor land_number: Land number - area: Area + area: Other Area + land_area: Land Area + building_area: Building Area + other_area: Other Area land_zoning: Land zoning coordinator: Coordinator email_signup_success: Contract end date reminder @@ -78,15 +93,21 @@ en: event_during: Current contract period #活動期間 contribute_during: Contribute During #投稿期間 signup_during: Inviting contractor period #報名期間 - signup_count: Contract history #報名人數 - inviting_hostory: Inviting history + signup_count: Inviting contractor count + contract_history: Contract history + inviting_history: Inviting history memorabilia: Memorabilia + bills: Bills signup: Inviting Contractor export: Export #匯出 set_venue_management_items: Items #項目 set_venue_management_submission_field: Set Submission Field set_venue_management_signup_field: Set Sign Up Field #圈選設定 set_venue_management_item_content: Set Item Content #項目設定 + set_venue_management_contracts: Contract History + set_venue_management_invitings: Inviting History + set_venue_management_memorabilias: Memorabilia + set_venue_management_bills: Bills set_venue_management_agreements: Personal Data Usage Agreements #個資宣告設定 venue_management_agreements_content: Content of Personal Data Usage Agreements #個資宣告內容 to_require: Should Be Filled? #是否必填 @@ -137,3 +158,141 @@ en: logout: Log Out #登出 logouting: Logging Out #登出中 success_message: 'Registration successful, thank you.' + vm_inviting: + type: Type + case_no: 'Case No.' + publish_times: Publish Times + start_date: Start Date + end_date: End Date + close_date: Close Date + bid_date: Bid Date + evaluation_date: Evaluation Date + rents: 'Early / Operation Rent' + early_rent: Early + operation_rent: Operation Rent + royalty: Royalty + house_tax_payer: House Tax Payer + land_tax_payer: Land Tax Payer + house_land_tax_payer: House Tax/Land Tax Payer + start_end: Start/End Date + contractor_manager: Contractor Manager + bid_result: Bid Result + details: Details + enums: + school: School + vendor: Vendor + bid_result: + empty: '' + failure: Failure + abandoned: Abandoned + qualified: Qualified + vm_memorabilia: + case_no: 'Case No.' + event_date: Event Date + details: Details + vm_bill: + delay_in_days_level_1: Delay in days level 1 + delay_in_days_level_2: Delay in days level 2 + delay_in_days_level_3: Delay in days level 3 + bills_payable: bills_payable + delay_in_days: Delay in days + day: Day + _interest: ', Interest' + interest: Interest + annual_interest: Annual interest + double_dividend: Double Dividend + daily_interest: Daily interest + add_and_subtract_hint: Please add a minus sign before the number if it's minus! + add_and_subtract: Add and subtract + contractor: Contractor + accounting_month: Accounting month + bill_type: Bill type + caculation_basis: Caculation basis + reason: Reason + amount: Amount + deadline: Deadline + received_date: Received date + pay_date: Deadline / Received date + pay_method: Method + note: Note + venue_fee: Venue fee + usage_fee: Usage fee + royalties: Royalties + admin_fee: Admin fee + land_rent: Land rent + utility_bill: Utility bill + electricity: Electricity + water: Water + tax: Tax + house_tax: House tax + land_tax: Land tax + other: Other + bill_other: Other item + penalty: Penalty + revenue: Revenue + degree: Degree + actual_bill: Actual bill + fixed: Fixed + + bill_amount: Bill amount + level_0: Level 0 + level_1: Level 1 + level_2: Level 2 + level_3: Level 3 + level_4: Level 4 + level_5: Level 5 + current_degree: Current degree + consumption: Consumption + tax_excluded: Tax excluded + total_amount: Total amount + actual_amount: Actual amount + tax: Tax + taxable_tax: Tax + dollar/degree: $/degree + taxable_present_value: Taxable present value + announced_land_values: Announced land values + land_values: Land values + present_value: Present value + taxable_area: Taxable area + percent: % + + prejudgment_interest: Prejudgment interest + vm_contract: + renewal_permission: Renewal permission + renewal_deadline: Renewal deadline + case_no: 'Case No.' + vendor: Vendor + start_end: Contract Duration + contract_start_date: Contract Start + contract_end_date: Contract End + construction_start_date: Construction Start + construction_end_date: Construction End + construction_start_end: Construction Duration + operation_start_date: Operation Start + operation_end_date: Operation End + operation_start_end: Operation Duration + free_period_start_date: Free Period Start + free_period_end_date: Free Period End + free_period_start_end: Free Period Duration + renewal_permission: Renewal Permission + renewal: + 'true': 'Yes' + 'false': 'No' + sign_date: Sign Date + handover_date: Handover Date + deposit_amount_type_exp_date: 'Deposit amount/Type/EXP Date' + deposit_amount: Deposit amount + deposit_payment_date: Deposit Payment Date + deposit_type: Deposit Type + deposit_exp_date: Deposit EXP Date + insurance_type: Insurance 1 + insurance_payment_deadline: Insurance 1 Expiry Date + insurance_payment_date: Insurance 1 Payment Date + insurance_type2: Insurance 2 + insurance_payment_deadline2: Insurance 2 Expiry Date + insurance_payment_date2: Insurance 2 Payment Date + insurance_type3: Insurance 3 + insurance_payment_deadline3: Insurance 3 Expiry Date + insurance_payment_date3: Insurance 3 Payment Date + other_commitment: Other Commitments + note: Note diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 3863dee..58661a4 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -1,14 +1,19 @@ zh_tw: - + copy: 複製 simple_captcha: placeholder: "" label: "" - + empty: 無 restful_actions: + print_pdf: 列印 act_signup: 報名資料 venue_management_submission_field: 上傳介面欄位 venue_management_signup_field: 報名欄位 venue_management_signup: 報名統計 + venue_management_memorabilias: 大事記 + venue_management_bills: 費用管理 + venue_management_invitings: 招商公告 + venue_management_contracts: 履約記錄 module_name: venue_management: 場地管理系統 @@ -17,10 +22,20 @@ zh_tw: verification_failed: 驗證碼錯誤 venue_management: + search: 查詢 + reminder: 提醒 + print_pdf: 列印 + send_email_reminder: 寄送Email提醒 + before: 提前 + day_send_email: 天寄送 + add_to_calendar: 加入行事曆 manager: 管理人 contractor: 廠商 land_number: 地號 - area: 面積 + area: 其他面積 + land_area: 土地面積 + building_area: 建物/營業面積 + other_area: 其他面積 land_zoning: 土地使用分區 coordinator: 承辦人 email_signup_success: 履約期限 @@ -54,7 +69,7 @@ zh_tw: signup_set: 報名欄位設定 reviewer: 審查委員 review_end_date: 審查結束日期 - review_start_date: 審查開始日期 + review_start_date: 審查開始日期 review: 審稿 blank_no_limit: 空白無限制 export_csv: 匯出CSV @@ -75,19 +90,25 @@ zh_tw: signup_end_date: 招商結束日期 contribute_start_date: 投稿開始時間 contribute_end_date: 投稿結束時間 - event_during: 合約期間 - contribute_during: 投稿期間 + event_during: 合約期間 + contribute_during: 投稿期間 signup_during: 招商期間 - signup_count: 履約紀錄 - inviting_hostory: 招商公告 + signup_count: 招商次數 + contract_history: 履約紀錄 + inviting_history: 招商公告 memorabilia: 大事記 + bills: 費用管理 signup: 招商 - export: 匯出 + export: 匯出 set_venue_management_items: 項目 set_venue_management_submission_field: 上傳介面欄位設定 - set_venue_management_signup_field: 圈選設定 - set_venue_management_item_content: 項目設定 - set_venue_management_agreements: 個資宣告設定 + set_venue_management_signup_field: 圈選設定 + set_venue_management_item_content: 項目設定 + set_venue_management_contracts: 履約紀錄 + set_venue_management_invitings: 招商公告 + set_venue_management_memorabilias: 大事記 + set_venue_management_bills: 費用管理 + set_venue_management_agreements: 個資宣告設定 venue_management_agreements_content: 個資宣告內容 to_require: 是否必填 sign_up_not_yet: 報名時間未開始 @@ -119,7 +140,7 @@ zh_tw: phone: 行動電話 fax: 傳真 address: 地址 - email: e-mail信箱 + email: e-mail信箱 password: 密碼 password_message: '( 此密碼為下次投稿上傳檔案時必須輸入的密碼。 )' note: 註解 @@ -137,3 +158,141 @@ zh_tw: logout: 登出 logouting: 登出中 success_message: '您的報名已成功,感謝您的參與。' + vm_inviting: + type: 招商形式 + case_no: 案號 + publish_times: 公告次數 + start_date: 公告開始 + end_date: 公告結束 + close_date: 截止收件 + bid_date: 開標日期 + evaluation_date: 評選時間 + rents: '興建期/營運期租金' + early_rent: 興建期租金 + operation_rent: 營運期租金 + royalty: 權利金 + house_tax_payer: 房屋稅負擔方 + land_tax_payer: 地價稅負擔方 + house_land_tax_payer: 房屋稅/地價稅負擔方 + start_end: 公告開始/結束日期 + contractor_manager: 招商承辦人 + bid_result: 開標結果 + details: 其他說明 + enums: + school: 學校 + vendor: 廠商 + bid_result: + empty: '' + failure: 流標 + abandoned: 廢標 + qualified: 決標 + vm_memorabilia: + case_no: 相關案號 + event_date: 事件日期 + details: 事件內容 + vm_bill: + delay_in_days_level_1: 延遲天數級距一 + delay_in_days_level_2: 延遲天數級距二 + delay_in_days_level_3: 延遲天數級距三 + bills_payable: 應繳費用 + delay_in_days: 延遲天數 + day: 天 + annual_interest: 年息 + double_dividend: 雙日息 + daily_interest: 日息 + _interest: ',利息' + interest: 利息 + add_and_subtract_hint: 若為扣除金額請於數字前方填寫減號 ( - ) + add_and_subtract: 加減金額 + contractor: 廠商 + accounting_month: 列帳年月 + bill_type: 費用別 + caculation_basis: 計算基礎 + reason: 說明 + amount: 金額 + deadline: 繳交期限 + received_date: 繳交日期 + pay_date: 繳交期限 / 繳交日期 + pay_method: 繳交方式 + note: 備註 + venue_fee: 場地收入 + usage_fee: 使用費 + royalties: 權利金 + admin_fee: 管理費(清潔費) + land_rent: 土地租金 + utility_bill: 水電費 + electricity: 電費 + water: 水費 + tax: 稅 + house_tax: 房屋稅 + land_tax: 地價稅 + other: 其他 + bill_other: 其他項目 + penalty: 罰款 + revenue: 營業額 + degree: 度數 + actual_bill: 實際帳單 + fixed: 定額 + + bill_amount: 帳單金額 + level_0: 起始值 + level_1: 級距一 + level_2: 級距二 + level_3: 級距三 + level_4: 級距四 + level_5: 級距五 + current_degree: 本期錶數 + consumption: 使用度數 + tax_excluded: 應繳金額稅外加 + total_amount: 應繳金額 + actual_amount: 銷售額 + tax: 稅額 + taxable_tax: 稅額 + dollar/degree: 元/度 + taxable_present_value: 課稅現值 + announced_land_values: 公告地價 + land_values: 地價 + present_value: 現值 + taxable_area: 課稅⾯積 + percent: % + + prejudgment_interest: 遲延利息 + vm_contract: + renewal_permission: 是否得續約 + renewal_deadline: 續約申請期限 + case_no: 案號 + vendor: 廠商 + start_end: 契約期間 + contract_start_date: 契約期間開始 + contract_end_date: 契約期間結束 + construction_start_date: 興建期間開始 + construction_end_date: 興建期間結束 + construction_start_end: 興建期間 + operation_start_date: 營運期間開始 + operation_end_date: 營運期間結束 + operation_start_end: 營運期間 + free_period_start_date: 免費期間開始 + free_period_end_date: 免費期間結束 + free_period_start_end: 免費期間 + renewal_permission: 是否得續約 + renewal: + 'true': 是 + 'false': 否 + sign_date: 簽約日期 + handover_date: 點交日期 + deposit_amount_type_exp_date: '履約保證金額/形式/效期' + deposit_amount: 履約保證金額 + deposit_payment_date: 履約保證金繳交日期 + deposit_type: 履約保證金繳交形式 + deposit_exp_date: 履約保證金效期 + insurance_type: 保險一 + insurance_payment_deadline: 保險一有效期限 + insurance_payment_date: 保險一繳交日期 + insurance_type2: 保險二 + insurance_payment_deadline2: 保險二有效期限 + insurance_payment_date2: 保險二繳交日期 + insurance_type3: 保險三 + insurance_payment_deadline3: 保險三有效期限 + insurance_payment_date3: 保險三繳交日期 + other_commitment: 其他回饋或承諾事項 + note: 備註 diff --git a/config/routes.rb b/config/routes.rb index af9e921..edffd0f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,7 +1,7 @@ Rails.application.routes.draw do locales = Site.first.in_use_locales rescue I18n.available_locales - + scope "(:locale)", locale: Regexp.new(locales.join("|")) do namespace :admin do resources :venue_managements do @@ -12,6 +12,11 @@ Rails.application.routes.draw do get 'venue_management_item_content' get 'venue_management_signup_field' get 'venue_management_submission_field' + get 'venue_management_invitings' + get 'venue_management_memorabilias' + get 'venue_management_bills' + get 'venue_management_contracts' + get 'print_pdf' end end resources :venue_management_items do @@ -22,6 +27,26 @@ Rails.application.routes.draw do resources :venue_management_agreements resources :venue_management_signups resources :venue_management_item_contents + resources :venue_management_invitings do + collection do + get 'export' + end + end + resources :venue_management_memorabilias + resources :venue_management_bills do + collection do + scope "(:id)" do + get 'copy', to: 'venue_management_bills#copy' + end + get 'export' + end + end + resources :venue_management_contracts do + collection do + post 'fetch_inviting' + get 'export' + end + end end resources :venue_managements do @@ -36,5 +61,5 @@ Rails.application.routes.draw do end end - + end diff --git a/lib/venue_management/engine.rb b/lib/venue_management/engine.rb index a95d648..e2d3f8e 100644 --- a/lib/venue_management/engine.rb +++ b/lib/venue_management/engine.rb @@ -1,17 +1,18 @@ module VenueManagement class Engine < ::Rails::Engine - initializer "venue_management" do + initializer "venue_management" do OrbitApp.registration "VenueManagement", :type => "ModuleApp" do module_label "venue_management.venue_management" base_url File.expand_path File.dirname(__FILE__) authorizable categorizable + taggable "VenueManagementInviting" frontend_enabled data_count 1..20 side_bar do head_label_i18n 'venue_management.venue_management', icon_class: "icon-globe" - available_for "managers" + available_for "sub_managers" active_for_controllers (['admin/venue_managements']) head_link_path "admin_venue_managements_path" @@ -19,32 +20,58 @@ module VenueManagement :link_path=>"admin_venue_managements_path" , :priority=>1, :active_for_action=>{'admin/venue_managements'=>'index'}, - :available_for => 'managers' - context_link 'new_', + :available_for => 'sub_managers' + context_link 'new_', :link_path=>"new_admin_venue_management_path" , :priority=>2, :active_for_action=>{'admin/venue_managements'=>'new'}, - :available_for => 'managers' + :available_for => 'sub_managers' context_link 'categories', :link_path=>"admin_module_app_categories_path" , :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'venue_management').id}", :priority=>3, :active_for_action=>{'admin/venue_managements'=>'categories'}, :active_for_category => 'VenueManagement', - :available_for => 'managers' + :available_for => 'sub_managers' + context_link 'tags', + :link_path=>"admin_module_app_tags_path" , + :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'venue_management').id}", + :priority=>4, + :active_for_action=>{'admin/venue_managements'=>'tags'}, + :active_for_tag => 'VenueManagement', + :available_for => 'sub_managers' context_link 'venue_management.set_venue_management_items', :link_path=>"admin_venue_management_items_path" , - :priority=>3, + :priority=>5, :active_for_action=>{'admin/venue_managements'=>'venue_management_items'}, - :available_for => 'managers' + :available_for => 'sub_managers' context_link 'venue_management.set_venue_management_agreements', :link_path=>"admin_venue_management_agreements_path" , - :priority=>3, + :priority=>6, :active_for_action=>{'admin/venue_managements'=>'venue_management_agreements'}, - :available_for => 'managers' + :available_for => 'sub_managers' + context_link 'venue_management.set_venue_management_invitings', + :link_path => 'admin_venue_management_invitings_path', + :priority => 7, + :active_for_action => { 'admin/venue_managements' => 'venue_management_invitings' }, + :available_for => 'sub_managers' + context_link 'venue_management.set_venue_management_memorabilias', + :link_path => 'admin_venue_management_memorabilias_path', + :priority => 8, + :active_for_action => { 'admin/venue_managements' => 'venue_management_memorabilias' }, + :available_for => 'sub_managers' + context_link 'venue_management.set_venue_management_bills', + :link_path => 'admin_venue_management_bills_path', + :priority => 8, + :active_for_action => { 'admin/venue_managements' => 'venue_management_bills' }, + :available_for => 'sub_managers' + context_link 'venue_management.set_venue_management_contracts', + :link_path => 'admin_venue_management_contracts_path', + :priority => 9, + :active_for_action => { 'admin/venue_managements' => 'venue_management_contracts' }, + :available_for => 'sub_managers' end - end end end -end \ No newline at end of file +end