class RecruitmentJob include Mongoid::Document include Mongoid::Timestamps include Slug field :post_type #type1 => Job, type2 => Internship, type3 => Exchange field :job_title, as: :slug_title, localize: true field :job_description, localize: true field :responsibility, localize: true field :other_conditions, localize: true field :expiry_date, type: DateTime field :salary #type1 => negotiable type2 => according to company rules field :currency_type field :travel_assignment #type1 => Need to travel, type2 => occasionally, type3 => travelling not required field :working_time #type1 => Day Shift, type2 => Night Shift field :holiday_system #type1 => According to Company Rules, type2 => other field :holiday_system_other field :joining_time #type1 => Immediate, type2 => withing week, type3 => within a month, type4 => more than a month field :work_type #type1 => Office worker, type2 => graduate, type3 => foreigner, type4 => internship, type5 => SOHO field :work_experience_years, type: Integer, :default => 0 field :work_experience_months, type: Integer, :default => 0 field :academic_requirement field :language_requirement field :skills, type: Array, :default => [] field :category field :location_of_work field :industrial_area field :academic_type #type1 -> bachelors, type2 -> masters, type3 -> phd, type4 -> course field :min_salary, type: Integer, :default => 0 field :max_salary, type: Integer, :default => 0 # internship field :part_time, type: Boolean, :default => false field :internship_duration, type: Integer, :default => 0 field :perks #type1 => certificate, type2 => placement offer, type3 => informal dress code #exchanges field :exchange_start_date, type: DateTime field :min_credit_score, type: Integer, :default => 0 field :filled, type: Boolean, :default => false belongs_to :employer_profile scope :not_filled, ->{where(:filled => false)} scope :filled, ->{where(:filled => true)} scope :jobs, ->{where(:post_type => "type1")} scope :internships, ->{where(:post_type => "type2")} scope :exchanges, ->{where(:post_type => "type3")} #scope :not_expired, ->{any_of({:created_at.lt=>Time.now, :expiry_date.gt=>Time.now},{:created_at.lt=>Time.now, :expiry_date=>nil})} scope :not_expired, ->{where(:created_at.lt=>Time.now, :expiry_date.gt=>Time.now)} def get_category RecruitmentCategory.find(self.category).job_category rescue "" end def get_application_count EmployeeJobApplication.where(:job => self.id.to_s).not_archived.count end def get_post_type_label case self.post_type when "type1" "#{I18n.t("recruitment.post_t.type1")}" when "type2" "#{I18n.t("recruitment.post_t.type2")}" when "type3" "#{I18n.t("recruitment.post_t.type3")}" end end def get_job_page case self.post_type when "type1" "jobs" when "type2" "internships" when "type3" "exchanges" end end end