Skip to content

Commit

Permalink
engi project: Add protocol entrance
Browse files Browse the repository at this point in the history
  • Loading branch information
ifyouseewendy committed Nov 25, 2015
1 parent 7e94e0d commit 1b2c57f
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 14 deletions.
21 changes: 20 additions & 1 deletion app/admin/engineering_project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@
render partial: 'engineering_projects/contract_list', locals: { contract_files: resource.contract_files.normal, engineering_project: resource, role: :normal }
tabs do
tab '自动生成' do
render partial: "engineering_projects/contract_generate", \
render partial: "engineering_projects/contract_generate_contract", \
locals: {
project: resource,
role: :normal
Expand All @@ -178,6 +178,25 @@
end
end
end
panel "代发劳务费协议" do
render partial: 'engineering_projects/contract_list', locals: { contract_files: resource.contract_files.proxy, engineering_project: resource, role: :proxy }
tabs do
tab '自动生成' do
render partial: "engineering_projects/contract_generate_protocol", \
locals: {
project: resource,
role: :proxy
}
end
tab '手动上传' do
render partial: "engineering_projects/contract_upload", \
locals: {
project: resource,
role: :proxy
}
end
end
end
# panel "代发协议" do
# render partial: 'engineering_projects/contract_list', locals: { contract_files: resource.contract_files.proxy }
# tabs do
Expand Down
12 changes: 10 additions & 2 deletions app/controllers/engineering_contract_files_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,21 @@ def generate_and_download
project = EngineeringProject.find params[:engineering_project_id]
sub_company = SubCompany.find params[:sub_company_id]

valid_keys = \
case params[:role].to_sym
when :normal
%i(corp_name name start_date end_date range need_count salary admin_rate)
when :proxy
%i(corp_name amount bank account address)
end

project.generate_contract_file(
role: params[:role],
sub_company: sub_company,
content: params.select{|k,_| %i(corp_name name start_date end_date range need_count salary admin_rate).include?(k.to_sym) }
content: params.select{|k,_| valid_keys.include?(k.to_sym) }
)

redirect_to :back, notice: "成功生成合同文件"
redirect_to :back, notice: "成功生成文件"
rescue => e
redirect_to :back, alert: e.message
end
Expand Down
2 changes: 2 additions & 0 deletions app/models/engineering_contract_file.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ class EngineeringContractFile < ActiveRecord::Base

enum role: [:normal, :proxy, :template]

default_scope { order(created_at: :asc) }

class << self
def policy_class
EngineeringPolicy
Expand Down
22 changes: 11 additions & 11 deletions app/models/engineering_project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -321,25 +321,25 @@ def generate_contract_file(role:, sub_company:, content: {})
file_path: template.path

ext = contract.basename.to_s.split('.')[-1]
to = contract.dirname.join("劳务派遣协议.#{ext}")
to = contract.dirname.join("劳务派遣协议_#{Time.stamp}.#{ext}")
contract.rename(to)

add_contract_file(path: to, role: :normal)
add_contract_file(path: to, role: role)
else
template = sub_company.engi_protocol_template
raise "未找到模板文件,请到 /sub_companies/#{sub_company.id} 页面上传模板"\
if template.file.nil?

content = {
amount: project.total_amount.to_s,
money: RMB.new(project.total_amount.to_i).convert,
refund_person: project.outcome_referee.to_s,
refund_bank: project.outcome_bank.to_s,
refund_account: project.outcome_amount.to_s,
}
content[:money] = RMB.new(content[:amount].to_f).convert
contract = DocGenerator.generate_docx \
gsub: content.merge(contract_file_params),
file_path: template.contract.path
gsub: content,
file_path: template.path

ext = contract.basename.to_s.split('.')[-1]
to = contract.dirname.join("代发劳务费协议_#{Time.stamp}.#{ext}")
contract.rename(to)

add_contract_file(path: to, role: role)

end

Expand Down

0 comments on commit 1b2c57f

Please sign in to comment.