125 lines
3.1 KiB
Ruby
125 lines
3.1 KiB
Ruby
class ListsController < ApplicationController
|
|
before_filter :set_relation_options, only: [:new, :edit, :create, :update]
|
|
# GET /lists
|
|
# GET /lists.json
|
|
def index
|
|
@lists = List.all
|
|
|
|
respond_to do |format|
|
|
format.html # index.html.erb
|
|
format.json { render json: @lists }
|
|
end
|
|
end
|
|
|
|
# GET /lists/1
|
|
# GET /lists/1.json
|
|
def show
|
|
@list = List.find(params[:id])
|
|
|
|
respond_to do |format|
|
|
format.html # show.html.erb
|
|
format.json { render json: @list }
|
|
end
|
|
end
|
|
|
|
# GET /lists/new
|
|
# GET /lists/new.json
|
|
def new
|
|
@list = List.new
|
|
|
|
respond_to do |format|
|
|
format.html # new.html.erb
|
|
format.json { render json: @list }
|
|
end
|
|
end
|
|
|
|
# GET /lists/1/edit
|
|
def edit
|
|
@list = List.find(params[:id])
|
|
end
|
|
|
|
# POST /lists
|
|
# POST /lists.json
|
|
def create
|
|
@list = List.new(params[:list])
|
|
|
|
respond_to do |format|
|
|
if @list.save
|
|
format.html { redirect_to @list, notice: t('action.create.successfull', model: List.model_name.human) }
|
|
format.json { render json: @list, status: :created, location: @list }
|
|
else
|
|
format.html { render action: "new" }
|
|
format.json { render json: @list.errors, status: :unprocessable_entity }
|
|
end
|
|
end
|
|
end
|
|
|
|
# PUT /lists/1
|
|
# PUT /lists/1.json
|
|
def update
|
|
@list = List.find(params[:id])
|
|
|
|
respond_to do |format|
|
|
if @list.update_attributes(params[:list])
|
|
format.html { redirect_to @list, notice: t('action.update.successfull', model: List.model_name.human) }
|
|
format.json { head :no_content }
|
|
else
|
|
format.html { render action: "edit" }
|
|
format.json { render json: @list.errors, status: :unprocessable_entity }
|
|
end
|
|
end
|
|
end
|
|
|
|
# DELETE /lists/1
|
|
# DELETE /lists/1.json
|
|
def destroy
|
|
@list = List.find(params[:id])
|
|
@list.destroy
|
|
|
|
respond_to do |format|
|
|
format.html { redirect_to lists_url, notice: t('action.destroy.successfull', model: List.model_name.human) }
|
|
format.json { head :no_content }
|
|
end
|
|
end
|
|
|
|
def current
|
|
@list = List.find(params[:id])
|
|
@list.orders.include_relations(product_orders: :product)
|
|
respond_to do |format|
|
|
format.json do
|
|
h = @list.as_json
|
|
h[:orders] = []
|
|
list_total = 0.0
|
|
for order in @list.orders
|
|
ho = {products: []}
|
|
order_total = 0.0
|
|
for product_order in order.product_orders
|
|
order_total += (product_order.amount * product_order.product.price).round(2)
|
|
ho[:products] << {name: product_order.product.name, id: product_order.product_id, number: product_order.amount, price: product_order.product.price}
|
|
end
|
|
ho[:total_amount] = order_total.round(2)
|
|
ho[:state] = order.state
|
|
list_total += ho[:total_amount]
|
|
h[:orders] << ho
|
|
end
|
|
h[:total_amount] = list_total.round(2)
|
|
render json: h
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
# POST /orders/1/is_delivered
|
|
def is_closed
|
|
@list = List.find(params[:id])
|
|
@list.close!
|
|
render nothing: true
|
|
end
|
|
private
|
|
|
|
def set_relation_options
|
|
@tables = Table.all
|
|
end
|
|
end
|