order reservation api
This commit is contained in:
@@ -1,17 +0,0 @@
|
|||||||
class Api::OrderReservation::OrderReservationController < Api::ApiController
|
|
||||||
# skip_before_action :authenticate
|
|
||||||
|
|
||||||
def check_customer
|
|
||||||
customer_id = 0
|
|
||||||
|
|
||||||
check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id])
|
|
||||||
if !check_customer.nil?
|
|
||||||
customer_id = check_customer.customer_id
|
|
||||||
else
|
|
||||||
customer = Customer.addCustomer(params)
|
|
||||||
customer_id = customer.id
|
|
||||||
end
|
|
||||||
|
|
||||||
render :json => { :status => true, :data => { :customer_id => customer_id} }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
class Api::OrderReserve::OrderReservationController < Api::ApiController
|
||||||
|
# skip_before_action :authenticate
|
||||||
|
ORDER = "order"
|
||||||
|
RESERVATION = "reservation"
|
||||||
|
ORDER_RESERVATION = "order and reservation"
|
||||||
|
|
||||||
|
def check_customer
|
||||||
|
customer_id = 0
|
||||||
|
|
||||||
|
check_customer = Customer.find_by_email_and_contact_no_and_membership_id(params[:email],params[:contact_no],params[:membership_id])
|
||||||
|
if !check_customer.nil?
|
||||||
|
customer_id = check_customer.customer_id
|
||||||
|
else
|
||||||
|
customer = Customer.addCustomer(params)
|
||||||
|
customer_id = customer.id
|
||||||
|
end
|
||||||
|
|
||||||
|
render :json => { :status => true, :data => { :customer_id => customer_id} }
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
status = false
|
||||||
|
if !params[:cus_info]
|
||||||
|
render :json => { :status => false, :message => "cus_info is required!" }
|
||||||
|
elsif !params[:requested_time]
|
||||||
|
render :json => { :status => false, :message => "requested_time is required!" }
|
||||||
|
elsif !params[:order_type]
|
||||||
|
render :json => { :status => false, :message => "order_type is required!" }
|
||||||
|
elsif params[:order_type] == ORDER || params[:order_type] == ORDER_RESERVATION
|
||||||
|
if !params[:order_info]
|
||||||
|
render :json => { :status => false, :message => "order_info is required!" }
|
||||||
|
else
|
||||||
|
status = true
|
||||||
|
end
|
||||||
|
elsif !params[:payment_info]
|
||||||
|
render :json => { :status => false, :message => "payment_info is required!" }
|
||||||
|
elsif !params[:delivery_info]
|
||||||
|
render :json => { :status => false, :message => "delivery_info is required!" }
|
||||||
|
elsif params[:order_type] == RESERVATION || params[:order_type] == ORDER_RESERVATION
|
||||||
|
if !params[:reservation_info]
|
||||||
|
render :json => { :status => false, :message => "reservation_info is required!" }
|
||||||
|
else
|
||||||
|
status = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if status == true
|
||||||
|
OrderReservation.addOrderReservationInfo(params)
|
||||||
|
render :json => { :status => true, :message => "Order reservation is successfully created!" }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
16
app/models/delivery.rb
Normal file
16
app/models/delivery.rb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
class Delivery < ApplicationRecord
|
||||||
|
belongs_to :order_reservation
|
||||||
|
|
||||||
|
def self.addDeliveryInfo(params,order_reservation_id)
|
||||||
|
delivery = Delivery.new
|
||||||
|
delivery.order_reservation_id = order_reservation_id
|
||||||
|
delivery.provider = params[:provider]
|
||||||
|
delivery.delivery_type = params[:delivery_type]
|
||||||
|
delivery.township = params[:township]
|
||||||
|
delivery.address = params[:address]
|
||||||
|
delivery.direction_address = params[:address_direction]
|
||||||
|
delivery.delivery_fee = params[:delivery_fee]
|
||||||
|
delivery.remark = params[:delivery_note]
|
||||||
|
delivery.save!
|
||||||
|
end
|
||||||
|
end
|
||||||
47
app/models/order_reservation.rb
Normal file
47
app/models/order_reservation.rb
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
class OrderReservation < ApplicationRecord
|
||||||
|
self.primary_key = "order_reservation_id"
|
||||||
|
|
||||||
|
#primary key - need to be unique generated for multiple shops
|
||||||
|
before_create :generate_custom_id
|
||||||
|
|
||||||
|
has_many :order_reservation_items
|
||||||
|
belongs_to :delivery
|
||||||
|
|
||||||
|
def self.addOrderReservationInfo(params)
|
||||||
|
order_reservation = OrderReservation.new
|
||||||
|
order_reservation.order_reservation_type = params[:order_type]
|
||||||
|
order_reservation.customer_id = params[:cus_info]
|
||||||
|
order_reservation.requested_time = Time.parse(params[:requested_time]).utc.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
if params[:order_info]
|
||||||
|
order_reservation.item_count = params[:order_info][:items].count
|
||||||
|
order_reservation.payment_type = params[:payment_info][:payment_type]
|
||||||
|
order_reservation.payment_status = params[:payment_info][:payment_status]
|
||||||
|
order_reservation.payment_ref = params[:payment_info][:payment_ref]
|
||||||
|
order_reservation.total_amount = params[:payment_info][:sub_total]
|
||||||
|
order_reservation.total_tax = params[:payment_info][:total_tax]
|
||||||
|
order_reservation.discount_amount = params[:payment_info][:discount_amount]
|
||||||
|
order_reservation.grand_total = params[:payment_info][:grand_total]
|
||||||
|
order_reservation.order_remark = params[:payment_info][:order_remark]
|
||||||
|
end
|
||||||
|
if params[:reservation_info]
|
||||||
|
order_reservation.total_customer = params[:reservation_info][:total_user]
|
||||||
|
order_reservation.reservation_remark = params[:reservation_info][:reservation_note]
|
||||||
|
end
|
||||||
|
order_reservation.save!
|
||||||
|
if params[:order_info][:items]
|
||||||
|
params[:order_info][:items].each do |oritem|
|
||||||
|
OrderReservationItem.process_order_reservation_item(oritem[:product_code],oritem[:item_instance_code],oritem[:product_name],oritem[:product_alt_name],
|
||||||
|
oritem[:account_id],oritem[:qty],oritem[:price],oritem[:unit_price],
|
||||||
|
oritem[:options],nil,order_reservation.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if params[:delivery_info]
|
||||||
|
Delivery.addDeliveryInfo(params[:delivery_info],order_reservation.id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def generate_custom_id
|
||||||
|
self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS")
|
||||||
|
end
|
||||||
|
end
|
||||||
32
app/models/order_reservation_item.rb
Normal file
32
app/models/order_reservation_item.rb
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
class OrderReservationItem < ApplicationRecord
|
||||||
|
self.primary_key = "order_reservation_items_id"
|
||||||
|
|
||||||
|
#primary key - need to be unique
|
||||||
|
before_create :generate_custom_id
|
||||||
|
|
||||||
|
belongs_to :order_reservation, autosave: true
|
||||||
|
|
||||||
|
def self.process_order_reservation_item (item_code, instance_code, menu_name, alt_name, account_id, qty, price, unit_price, options, set_menu_items, order_reservation_id)
|
||||||
|
orderreservationitem = OrderReservationItem.create do |oitem|
|
||||||
|
oitem.order_reservation_id = order_reservation_id
|
||||||
|
oitem.item_code = item_code
|
||||||
|
oitem.item_instance_code = instance_code
|
||||||
|
oitem.item_name = menu_name
|
||||||
|
oitem.alt_name = alt_name ? alt_name : ""
|
||||||
|
oitem.account_id = account_id
|
||||||
|
oitem.qty = qty
|
||||||
|
oitem.unit_price = unit_price
|
||||||
|
oitem.price = price
|
||||||
|
oitem.options = options
|
||||||
|
oitem.set_menu_items = set_menu_items
|
||||||
|
end
|
||||||
|
|
||||||
|
#logger.debug orderitem.to_yml
|
||||||
|
orderreservationitem.save!
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def generate_custom_id
|
||||||
|
self.order_reservation_items_id = SeedGenerator.generate_id(self.class.name, "ODRSI")
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -83,8 +83,9 @@ scope "(:locale)", locale: /en|mm/ do
|
|||||||
end
|
end
|
||||||
|
|
||||||
#order and reservation api
|
#order and reservation api
|
||||||
namespace :order_reservation do
|
namespace :order_reserve do
|
||||||
post "customer" => "order_reservation#check_customer"
|
post "customer" => "order_reservation#check_customer"
|
||||||
|
post "order" => "order_reservation#create"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user