Class: EducodeSales::Idea
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- EducodeSales::Idea
- Defined in:
- app/models/educode_sales/idea.rb
Instance Method Summary collapse
- #assist_staffs ⇒ Object
- #attachments ⇒ Object
- #other_staffs ⇒ Object
-
#recycle ⇒ Object
before_save :check_changes.
-
#save_history(attr, old_value, new_value) ⇒ Object
def check_changes unless self.new_record? history = [] arr = self.attributes.except(:creator_id, :id, :history_type, :deleter_id, :is_deleted, :deleted_at, :history_record, :created_at, :updated_at).keys arr.each do |attr| if self.send(“#attr_changed?”) old_value, new_value = self.send(“#attr_was”), self.send(attr) res = save_history(attr, old_value, new_value) history << res if res end end self.idea_histories.create(content: history, staff: current_user) end end.
- #soft_destroy(staff_id) ⇒ Object
Instance Method Details
#assist_staffs ⇒ Object
38 39 40 |
# File 'app/models/educode_sales/idea.rb', line 38 def assist_staffs Staff.where(id: self.assist_staff_ids) end |
#attachments ⇒ Object
46 47 48 |
# File 'app/models/educode_sales/idea.rb', line 46 def Attachment.where(id: self.) end |
#other_staffs ⇒ Object
42 43 44 |
# File 'app/models/educode_sales/idea.rb', line 42 def other_staffs Staff.where(id: self.other_staff_ids) end |
#recycle ⇒ Object
before_save :check_changes
34 35 36 |
# File 'app/models/educode_sales/idea.rb', line 34 def recycle self.update(deleted_at: nil, deleter_id: nil, is_deleted: false) end |
#save_history(attr, old_value, new_value) ⇒ Object
def check_changes
unless self.new_record?
history = []
arr = self.attributes.except(:creator_id, :id, :history_type, :deleter_id, :is_deleted, :deleted_at, :history_record, :created_at, :updated_at).keys
arr.each do |attr|
if self.send("#{attr}_changed?")
old_value, new_value = self.send("#{attr}_was"), self.send(attr)
res = save_history(attr, old_value, new_value)
history << res if res
end
end
self.idea_histories.create(content: history, staff: current_user)
end
end
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'app/models/educode_sales/idea.rb', line 69 def save_history(attr, old_value, new_value) case attr when "school_id" old_value = School.find_by(id: old_value)&.name new_value = School.find_by(id: new_value)&.name "学校/单位由“#{old_value}”变更为“#{new_value}”" when "name" "项目名称由“#{old_value}”变更为“#{new_value}”" when "level" "优先级由“#{old_value}”变更为“#{new_value}”" when "staff_id" old_value = Staff.find_by(id: old_value)&.user&.real_name new_value = Staff.find_by(id: new_value)&.user&.real_name "方案经理由“#{old_value}”变更为“#{new_value}”" when "status" "状态由“#{old_value}”变更为“#{new_value}”" when "types" "类型由“#{old_value}”变更为“#{new_value}”" when "model" "部署模式由“#{old_value}”变更为“#{new_value}”" when "hardware" "硬件规模(万)由“#{old_value}”变更为“#{new_value}”" when "project" "并发规模(人)由“#{old_value}”变更为“#{new_value}”" when "money" "项目预算(万)由“#{old_value}”变更为“#{new_value}”" when "end_time" "截止时间由“#{old_value}”变更为“#{new_value}”" when "content" "需求说明由“#{old_value}”变更为“#{new_value}”" when "department_id" old_value = Department.find_by(id: old_value)&.name new_value = Department.find_by(id: new_value)&.name "部门由“#{old_value}”变更为“#{new_value}”" when "manager_name" "单位联系人由“#{old_value}”变更为“#{new_value}”" when "manager_phone" "负责人电话由“#{old_value}”变更为“#{new_value}”" else nil end end |
#soft_destroy(staff_id) ⇒ Object
50 51 52 |
# File 'app/models/educode_sales/idea.rb', line 50 def soft_destroy(staff_id) self.update(deleted_at: Time.now, deleter_id: staff_id, is_deleted: true) end |