Module: ErpBaseErpSvcs::Extensions::ActiveRecord::HasPartyRoles::InstanceMethods

Defined in:
lib/erp_base_erp_svcs/extensions/active_record/has_party_roles.rb

Instance Method Summary collapse

Instance Method Details

#add_party_with_role(party, role_type) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/erp_base_erp_svcs/extensions/active_record/has_party_roles.rb', line 42

def add_party_with_role(party, role_type)
  entity_party_role = EntityPartyRole.where(party_id: party,
                                            role_type_id: role_type,
                                            entity_record_id: self.id,
                                            entity_record_type: self.class.name).first

  unless entity_party_role
    entity_party_role = EntityPartyRole.create(party: party,
                                               role_type: role_type,
                                               entity_record: self)
  end

  entity_party_role
end

#find_parties_by_role(role_type) ⇒ Object



68
69
70
71
72
73
74
# File 'lib/erp_base_erp_svcs/extensions/active_record/has_party_roles.rb', line 68

def find_parties_by_role(role_type)
  if role_type.is_a?(String)
    role_type = RoleType.iid(role_type)
  end

  entity_party_roles.where(role_type_id: role_type.id).collect(&:party)
end

#find_party_with_role(role_type) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/erp_base_erp_svcs/extensions/active_record/has_party_roles.rb', line 76

def find_party_with_role(role_type)
  if role_type.is_a?(String)
    role_type = RoleType.iid(role_type)
  end

  entity_party_role = entity_party_roles.where(role_type_id: role_type.id).first

  if entity_party_role
    entity_party_role.party
  else
    nil
  end
end

#remove_party_with_role(party, role_type) ⇒ Object



57
58
59
60
61
62
63
64
65
66
# File 'lib/erp_base_erp_svcs/extensions/active_record/has_party_roles.rb', line 57

def remove_party_with_role(party, role_type)
  entity_party_role = EntityPartyRole.where(party_id: party,
                                            role_type_id: role_type,
                                            entity_record_id: self.id,
                                            entity_record_type: self.class.name).first

  if entity_party_role
    entity_party_role.destroy
  end
end