Class: Logistics::Core::RouteRatesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/logistics/core/route_rates_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



65
66
67
68
69
70
71
72
73
74
75
76
# File 'app/controllers/logistics/core/route_rates_controller.rb', line 65

def create
  route_type = params[:route_type]
  rate_type = params[:rate_type]
  result = RouteRate.generate_transportation_rates route_type, rate_type
  if result[:ind] == 1
    response = Mks::Common::MethodResponse.new(true, result[:message], nil, result[:errors], nil)
  else
    errors = result[:errors]
    response = Mks::Common::MethodResponse.new(false, nil, nil, errors, nil)
  end
  render json: response
end

#get_current_route_rateObject



36
37
38
39
40
41
# File 'app/controllers/logistics/core/route_rates_controller.rb', line 36

def get_current_route_rate
  transporter_id = params['transporter_id']
  @route_rates = RouteRate.fetch_current_route_rate transporter_id
  response = Mks::Common::MethodResponse.new(true, nil, @route_rates, nil, nil)
  render json: response
end

#get_routeObject



29
30
31
32
33
34
# File 'app/controllers/logistics/core/route_rates_controller.rb', line 29

def get_route
  route_type = params['route_type']
  @route = RouteRate.fetch_route route_type
  response = Mks::Common::MethodResponse.new(true, nil, @route, nil, nil)
  render json: response
end

#indexObject

GET /route_rates GET /route_rates.json



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/logistics/core/route_rates_controller.rb', line 11

def index
  start = params[:start]
  limit = params[:limit]
  rate_type = params['rate_type']
  transporter_id = Transporter.select("id").where("name" => "Reference Transporter").ids.first
  current_period_id = TransportRatePeriod.where(current_period: true).ids.first
  route_rates_all = RouteRate.where("rate_type" => rate_type,
                                    "rate_period_id" => current_period_id).where.not("transporter_id" => transporter_id)
  count = route_rates_all.count
  route_rates = RouteRate.fetch_all route_rates_all, start, limit
  result = []
  if route_rates.length > 0
    result = route_rates
  end
  response = Mks::Common::MethodResponse.new(true, nil, result, nil, count)
  render json: response
end

#save_current_route_rateObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'app/controllers/logistics/core/route_rates_controller.rb', line 43

def save_current_route_rate
  reference_transporter_id = Transporter.select("id").where("name" => "Reference Transporter").ids.first
  reference_route_rate = RouteRate.where("transporter_id" => reference_transporter_id)
  current_route_rates = params[:route_rates]

  if reference_route_rate.count > 0
    RouteRate.create_archive
    RouteRate.delete(reference_route_rate)
  end
  current_route_rates.each do |current_route_rate|
    route_rate = RouteRate.create! weight_from: current_route_rate['weight_from'],
                                        weight_to: current_route_rate['weight_to'], rate: current_route_rate['rate'],
                                        container_return_fee: current_route_rate['container_return_fee'],
                                        route_id: current_route_rate['route_id'], effective_date: current_route_rate['effective_date'],
                                        valid_until: current_route_rate['valid_until'], transporter_id: reference_transporter_id,
                                        route_type: current_route_rate['route_type']
    route_rate.save!
  end
  response = Mks::Common::MethodResponse.new(true, "Current Route Rate Successfully generated!", reference_transporter_id, nil, nil)
  render json: response
end

#updateObject



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'app/controllers/logistics/core/route_rates_controller.rb', line 78

def update
  route_type = params[:route_type]
  rate_type = params[:rate_type]
  count = 0
  route_rates = params[:updated_route_rates]
  route_rates.each do |route_rate|
    old_route_rate = RouteRate.find(route_rate['id'])
    old_route_rate.rate = route_rate['rate']
    if old_route_rate.save
      count += 1
    end
  end
  message = "A total of <b>" + count.to_s + " " + route_type + " " + rate_type + "</b> Rate updated successfully!"
  response = Mks::Common::MethodResponse.new(true, message, route_rates, nil, nil)
  render json: response
end