organization.rb 1.19 KB
require_dependency 'organization'
class Organization
  settings_items :sub_organizations_plugin_parent_to_be

  attr_accessible :sub_organizations_plugin_parent_to_be

  after_create do |organization|
    if organization.sub_organizations_plugin_parent_to_be.present?
      parent = Organization.find(organization.sub_organizations_plugin_parent_to_be)
      SubOrganizationsPlugin::Relation.add_children(parent,organization)
    end
  end

  FIELDS << 'sub_organizations_plugin_parent_to_be'

  scope :children, -> parent {
    joins("inner join sub_organizations_plugin_relations as relations on profiles.id=relations.child_id").
    where("relations.parent_id = ?", parent.id)
  }

  scope :parentz, -> *children {
    joins("inner join sub_organizations_plugin_relations as relations on profiles.id=relations.parent_id").
    where("relations.child_id in (?)", children.map(&:id))
  }

  scope :pending_children, -> parent {
    select("distinct profiles.*").
    joins("inner join sub_organizations_plugin_approve_paternity_relations as relations on profiles.id=relations.child_id inner join tasks on relations.task_id=tasks.id").
    where("relations.parent_id = ? AND tasks.status = 1", parent.id)
  }

end