Class: ProductUpdateSingleton

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/product_update_single.rb

Instance Method Summary collapse

Constructor Details

#initializeProductUpdateSingleton

Returns a new instance of ProductUpdateSingleton.



7
8
9
10
11
# File 'lib/product_update_single.rb', line 7

def initialize
  #@count = Array.new(10, 0)
  #@product_id = Array.new
  
end

Instance Method Details

#count_updateObject

this method updates the count column in the product model based on the quantity of products sold.



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/product_update_single.rb', line 34

def count_update
  @order_confirmed = Order.last
  @order_record = OrderItem.where(order_id: @order_confirmed.id)
  @order_record.each do |order_record|
  @product_count_update = Product.find(order_record.product_id)
  if(@product_count_update.count?)
    puts(@product_count_update)
    @product_count_update.count += order_record.quantity
  else
    @product_count_update.count = 0
    @product_count_update.count += order_record.quantity
  end
  puts("inside count update function and order item should have been initiated by now")
  #@product_count_update.quantityAvailable -= order_record.quantity
  @product_count_update.save
  end
  puts("count update should be completed by now and quantity of product ordered should be have been subtracted in the product")
  self.hit_counter
end

#hit_counterObject

this method is triggered by the count update method internally to rank the products by its count updated previously.



55
56
57
58
59
60
61
62
63
64
65
# File 'lib/product_update_single.rb', line 55

def hit_counter
  @count_iterate = 1
  @prod = Product.all
  @sorted_hit = @prod.order('count desc')
  puts("Inside hit update function and product is initiated now, it should start updated the hit ranking")
  @sorted_hit.each do |pro|
      pro.hit = @count_iterate
      @count_iterate += 1
      pro.save
  end
end

#product_hit_update_on_order_confirmationObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/product_update_single.rb', line 13

def product_hit_update_on_order_confirmation
  #@count[@product_update.id - 1] = @count[@product_update.id - 1] + @order_record.quantity
  #@count_sort = @count.sort { |x,y| y <=> x }
  #@product_hit = Product.all
  #@result = @product_hit.order('hit asc')
  #@product_hit.each do |hit_value|
     #@product_id << hit_value.id
     #hit_value.hit =  
  #end
  
  #@order_record = OrderItem.last
  #@product_hit_update = Product.find(@order_record.product_id)
  @order_record = OrderItem.last
  @product_hit_update = Product.find(@order_record.product_id)
  
  @product_hit_update.hit += @order_record.quantity
  @product_hit_update.quantityAvailable -= @order_record.quantity
  @product_hit_update.save
end

#refresh_quantityObject



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/product_update_single.rb', line 67

def refresh_quantity
   @prod = Product.all
   @prod.each do |p|
       p.quantityAvailable = 120
       p.count = 0
       p.price = 12
       p.offerPrice = 5
       p.save
   end
   
end