Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ##shop_controller.rb
- def checkout
- if @cart.items.empty?
- redirect_to_show("Your cart is empty")
- else
- @deal = Deal.new_shopping_deal
- current_org.deals << @deal
- @deal.add_orders_from_cart(@cart)
- if @deal.save
- session[:cart] = nil
- redirect_to_show("Thank you for your order")
- else
- render :action => :show
- end
- end
- end
- ##deal.rb
- class Deal < ActiveRecord::Base
- has_many :orders, :dependent => :destroy
- # gets called in a controller
- def add_orders_from_cart(cart)
- cart.items.each do |item|
- ord = Order.from_cart_item(item)
- orders << ord
- @@yummy = true
- end
- end
- end
- ##order.rb
- class Order < ActiveRecord::Base
- after_save :save_duties
- has_many :duties, :dependent => :destroy
- validates_associated :duties
- private
- def save_duties
- regulations = Regulation.find_all_by_product_id(self.product_id)
- #order_val = self.ord_value
- if self.new_record? # for new order -> never goes here!
- # for reg in regulations
- # arr = calc_duty_values(reg, ord_value)
- # tduty = create_duty(reg, arr)
- # duties.create(tduty)
- # end
- else # for existing order
- duties.clear
- for regu in regulations
- arr = calc_duty_values(regu, ord_value)
- tduty = create_duty(regu, arr)
- duties.create(tduty)
- end
- end
- end # end-save duties
- end
Add Comment
Please, Sign In to add comment