Class: Vendor

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/vendor.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.approve(organization, id) ⇒ Object



65
66
67
68
# File 'app/models/vendor.rb', line 65

def self.approve(organization, id)
  vendor = Vendor.find_by_id(id)
  vendor.update_attributes(:approve => true)
end

.approve_all(organization) ⇒ Object



59
60
61
62
63
64
# File 'app/models/vendor.rb', line 59

def self.approve_all(organization)
  vendors = organization.vendors.where(:approve => false)
  vendors.each do |v|
    v.update_attributes(:approve => true)
  end
end

.filter_data(organization, page, params) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'app/models/vendor.rb', line 31

def self.filter_data(organization,page ,params)
  if params == "All"
    @vendors = organization.vendors
  elsif params == "6"
    @vendors = organization.vendors.where(:approve => true)
  elsif params == "7"
    @vendors = organization.vendors.where(:approve => false)
  elsif params == "rated"
    not_rated = []
    organization.vendors.each do |vv|
      if vv.ratings.count > 0
        not_rated << vv
      end
    end
    @vendors = not_rated
  elsif params == "unrated"
    rated = []
    organization.vendors.each do |vv|
      if vv.ratings.count == 0
        rated << vv
      end
    end
    @vendors = rated
  else
    @vendors = organization.vendors.select("vendors.*").joins("LEFT OUTER JOIN vendor_ratings ON vendors.id = vendor_ratings.vendor_id").where("vendor_ratings.rating ="+params+"").paginate(:page => page)
  end
end

.find_vendor(vendor) ⇒ Object

Find vendor for asset



100
101
102
103
104
105
106
107
108
# File 'app/models/vendor.rb', line 100

def self.find_vendor(vendor)
  vend = self.find_by_id(vendor)
  if vend.blank?
    name = ""
  else
    name = vend.name
  end
  return name
end

.get_vendor(organization_id, vendor_id) ⇒ Object

Find vendor for email



95
96
97
# File 'app/models/vendor.rb', line 95

def self.get_vendor(organization_id , vendor_id)
  self.find_by_id_and_organization_id(vendor_id , organization_id)
end

.vendor_details(organization, start_date, end_date) ⇒ Object



82
83
84
85
86
87
88
89
90
91
# File 'app/models/vendor.rb', line 82

def self.vendor_details(organization , start_date , end_date)
  organization.users.each do |user|
    user.member.each do|mem|
      if mem.has_role? 'vendor'
        @find_user = User.where("id =? and created_at >= ? and created_at <= ?", user.id,  start_date , end_date)
      end
    end
  end
  return @find_user
end

Instance Method Details

#average_ratingObject



26
27
28
29
# File 'app/models/vendor.rb', line 26

def average_rating
  avg_rating = VendorRating.where(vendor_id: self.id).average("rating")
  return avg_rating.to_i
end

#get_asset_purchase_vendorObject

Get Asset Purchase Vendor



116
117
118
# File 'app/models/vendor.rb', line 116

def get_asset_purchase_vendor
  Asset.where("purchase_vendor_id = ?", self.id)
end

#get_asset_repair_vendorObject

Get Asset Vendor



111
112
113
# File 'app/models/vendor.rb', line 111

def get_asset_repair_vendor
  Asset.where("vendor_id = ?", self.id)
end

#get_vendor_status(vendor) ⇒ Object



120
121
122
123
124
125
126
127
# File 'app/models/vendor.rb', line 120

def get_vendor_status(vendor)
  org = vendor.member.find_by_user_id(vendor.id)
  if vendor
    org_u = org.organization
    @user_dis = org_u.show_disabled_users
  end
  return @user_dis
end

#repair_request_countObject



22
23
24
# File 'app/models/vendor.rb', line 22

def repair_request_count
  self.repair_requests.where(:status => 2).count
end

#send_noftification(organization, vendor, user) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
# File 'app/models/vendor.rb', line 70

def send_noftification(organization, vendor, user)
  managers = organization.managers(user)
  Notification.create_and_send_notification(
    :type => "UAV",
    :source => vendor,
    :summary => user.first_name + " Added Vendor " + vendor.name,
    :notifier => user,
    :managers => managers,
    :organizationID => organization.id
  )
end

#vending_costObject



15
16
17
18
19
20
# File 'app/models/vendor.rb', line 15

def vending_cost
  repair_requests = self.repair_requests.where(:status => 2).where.not(:vending_cost => nil )
  if repair_requests.length > 0
    repair_requests.map{|r| r.vending_cost.to_i}.sum
  end
end