Merge branch 'master' of bitbucket.org:code2lab/sxrestaurant

This commit is contained in:
Yan
2018-04-10 16:22:00 +06:30
7 changed files with 172 additions and 4 deletions

View File

@@ -9,10 +9,10 @@ class Customer < ApplicationRecord
has_many :orders
has_many :sales
validates_presence_of :name, :contact_no, :email,:card_no
validates_presence_of :name, :contact_no, :email #,:card_no
validates :contact_no, uniqueness: true, numericality: true
validates :email, uniqueness: true,format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create }
validates :card_no, uniqueness: true
# validates :card_no, uniqueness: true
# validates :paypar_account_no, uniqueness: true
paginates_per 50
@@ -352,6 +352,23 @@ class Customer < ApplicationRecord
end
#new customer for doemal
def self.addCustomer(params)
customer = Customer.new
customer.name = params[:name]
customer.email = params[:email]
customer.contact_no = params[:contact_no]
customer.gender = params[:gender]
customer.address = params[:address]
customer.date_of_birth = Time.parse(params[:date_of_birth]).strftime("%Y-%m-%d")
customer.membership_id = params[:membership_id]
customer.customer_type = "Takeaway"
customer.tax_profiles = ["2"]
customer.save
return customer
end
WALKIN = "CUS-000000000001"
TAKEAWAY = "CUS-000000000002"

16
app/models/delivery.rb Normal file
View 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

View 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

View 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