fixed conflictsale item order order item
This commit is contained in:
8
Gemfile
8
Gemfile
@@ -10,13 +10,8 @@ end
|
||||
gem 'rails', '~> 5.1.0'
|
||||
# Use mysql as the database for Active Record
|
||||
|
||||
#gem 'mysql2', '>= 0.3.18', '< 0.5'
|
||||
|
||||
gem 'mysql2', '>= 0.3.18', '< 0.5'
|
||||
|
||||
#Use PosgreSQL
|
||||
#gem 'pg'
|
||||
|
||||
# redis server for cable
|
||||
# gem 'redis', '~> 3.0'
|
||||
|
||||
@@ -62,6 +57,9 @@ gem 'bcrypt', '~> 3.1.7'
|
||||
|
||||
gem 'sidekiq'
|
||||
|
||||
# Pagination
|
||||
gem 'kaminari', :git => "git://github.com/amatsuda/kaminari.git", :branch => 'master'
|
||||
|
||||
# Use Capistrano for deployment
|
||||
# gem 'capistrano-rails', group: :development
|
||||
|
||||
|
||||
@@ -9,6 +9,29 @@
|
||||
// padding-top: 4.5rem;
|
||||
// }
|
||||
|
||||
.setting_nav{
|
||||
background-color: #2f5663;
|
||||
}
|
||||
|
||||
ul.navbar-nav li a{
|
||||
text-decoration :none;
|
||||
color :#e6e6e6;
|
||||
}
|
||||
|
||||
ul.dropdown-menu li a{
|
||||
text-decoration :none;
|
||||
color :#525252;
|
||||
}
|
||||
|
||||
.setting_breadcrumb{
|
||||
background-color: transparent !important;
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
.page-header{
|
||||
border-bottom :0px solid #000 !important;
|
||||
margin :0px !important;
|
||||
}
|
||||
|
||||
/*----- Order Processing Items -----*/
|
||||
.opi_ul {
|
||||
display:block;
|
||||
@@ -33,4 +56,4 @@
|
||||
|
||||
/*----- Header Bar -----*/
|
||||
|
||||
/*----- Header Bar -----*/
|
||||
/*----- Header Bar -----*/
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class Settings::MenuItemInstancesController < ApplicationController
|
||||
before_action :set_settings_menu_item_instance, only: [:show, :edit, :update, :destroy]
|
||||
before_action :set_settings_menu_item, only: [:index, :show, :edit, :new, :update]
|
||||
before_action :set_settings_menu_item, only: [ :show, :edit, :new, :update]
|
||||
|
||||
# GET /settings/menu_item_instances
|
||||
# GET /settings/menu_item_instances.json
|
||||
@@ -11,29 +11,43 @@ class Settings::MenuItemInstancesController < ApplicationController
|
||||
# GET /settings/menu_item_instances/1
|
||||
# GET /settings/menu_item_instances/1.json
|
||||
def show
|
||||
@category = MenuCategory.find(@item.menu_category_id)
|
||||
end
|
||||
|
||||
# GET /settings/menu_item_instances/new
|
||||
def new
|
||||
@settings_menu_item_instance = MenuItemInstance.new
|
||||
@category = MenuCategory.find(@item.menu_category_id)
|
||||
@settings_menu_item_instances = MenuItemInstance.new
|
||||
end
|
||||
|
||||
# GET /settings/menu_item_instances/1/edit
|
||||
def edit
|
||||
@category = MenuCategory.find(@item.menu_category_id)
|
||||
end
|
||||
|
||||
# POST /settings/menu_item_instances
|
||||
# POST /settings/menu_item_instances.json
|
||||
def create
|
||||
@settings_menu_item_instance = MenuItemInstance.new(settings_menu_item_instance_params)
|
||||
@settings_menu_item_instances = MenuItemInstance.new(settings_menu_item_instance_params)
|
||||
|
||||
if params[:simple_menu_item_id]
|
||||
@settings_menu_item_instances.menu_item_id = params[:simple_menu_item_id]
|
||||
catID = MenuItem.find(params[:simple_menu_item_id])
|
||||
else
|
||||
@settings_menu_item_instances.menu_item_id = params[:set_menu_item_id]
|
||||
catID = MenuItem.find(params[:set_menu_item_id])
|
||||
end
|
||||
|
||||
category = MenuCategory.find(catID.menu_category_id)
|
||||
respond_to do |format|
|
||||
if @settings_menu_item_instance.save
|
||||
format.html { redirect_to settings_menu_item_instances_path, notice: 'Menu item instance was successfully created.' }
|
||||
format.json { render :show, status: :created, location: @settings_menu_item_instance }
|
||||
if @settings_menu_item_instances.save
|
||||
@settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes]
|
||||
@settings_menu_item_instances.save
|
||||
format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully created.' }
|
||||
format.json { render :show, status: :created, location: @settings_menu_item_instances }
|
||||
else
|
||||
format.html { render :new }
|
||||
format.json { render json: @settings_menu_item_instance.errors, status: :unprocessable_entity }
|
||||
format.json { render json: @settings_menu_item_instances.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -41,13 +55,24 @@ class Settings::MenuItemInstancesController < ApplicationController
|
||||
# PATCH/PUT /settings/menu_item_instances/1
|
||||
# PATCH/PUT /settings/menu_item_instances/1.json
|
||||
def update
|
||||
puts "params[:menu_item_instance][:item_attributes]"
|
||||
puts params[:menu_item_instance][:item_attributes]
|
||||
if params[:simple_menu_item_id]
|
||||
catID = MenuItem.find(params[:simple_menu_item_id])
|
||||
else
|
||||
catID = MenuItem.find(params[:set_menu_item_id])
|
||||
end
|
||||
category = MenuCategory.find(catID.menu_category_id)
|
||||
respond_to do |format|
|
||||
if @settings_menu_item_instance.update(settings_menu_item_instance_params)
|
||||
format.html { redirect_to settings_menu_item_instance_path(@settings_menu_item_instance), notice: 'Menu item instance was successfully updated.' }
|
||||
format.json { render :show, status: :ok, location: @settings_menu_item_instance }
|
||||
|
||||
if @settings_menu_item_instances.update(settings_menu_item_instance_params)
|
||||
@settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?)
|
||||
@settings_menu_item_instances.save
|
||||
format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully updated.' }
|
||||
format.json { render :show, status: :ok, location: @settings_menu_item_instances }
|
||||
else
|
||||
format.html { render :edit }
|
||||
format.json { render json: @settings_menu_item_instance.errors, status: :unprocessable_entity }
|
||||
format.json { render json: @settings_menu_item_instances.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -55,9 +80,15 @@ class Settings::MenuItemInstancesController < ApplicationController
|
||||
# DELETE /settings/menu_item_instances/1
|
||||
# DELETE /settings/menu_item_instances/1.json
|
||||
def destroy
|
||||
# @settings_menu_item_instance.destroy
|
||||
@settings_menu_item_instances.destroy
|
||||
if params[:simple_menu_item_id]
|
||||
catID = MenuItem.find(params[:simple_menu_item_id])
|
||||
else
|
||||
catID = MenuItem.find(params[:set_menu_item_id])
|
||||
end
|
||||
category = MenuCategory.find(catID.menu_category_id)
|
||||
respond_to do |format|
|
||||
format.html { redirect_to settings_menu_item_instances_path, notice: 'Menu item instance was successfully destroyed.' }
|
||||
format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully destroyed.' }
|
||||
format.json { head :no_content }
|
||||
end
|
||||
end
|
||||
@@ -65,15 +96,21 @@ class Settings::MenuItemInstancesController < ApplicationController
|
||||
private
|
||||
# Use callbacks to share common setup or constraints between actions.
|
||||
def set_settings_menu_item_instance
|
||||
@set_settings_menu_item_instances = MenuItemInstance.find(params[:id])
|
||||
@settings_menu_item_instances = MenuItemInstance.find(params[:id])
|
||||
end
|
||||
|
||||
def set_settings_menu_item
|
||||
@item = MenuItem.find(params[:menu_item_id])
|
||||
if params[:simple_menu_item_id]
|
||||
@item = MenuItem.find(params[:simple_menu_item_id])
|
||||
else
|
||||
@item = MenuItem.find(params[:set_menu_item_id])
|
||||
end
|
||||
end
|
||||
|
||||
# Never trust parameters from the scary internet, only allow the white list through.
|
||||
def settings_menu_item_instance_params
|
||||
params.require(:menu_item_instance).permit(:item_instance_code, :item_instance_name, :price, :is_on_promotion, :promotion_price, :is_available)
|
||||
|
||||
params.require(:menu_item_instance).permit(:item_instance_code, :item_instance_name, :price, :item_attributes, :is_on_promotion, :promotion_price, :is_available,:menu_category_id,:menu_item_id)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ class Settings::OrderQueueStationsController < ApplicationController
|
||||
# GET /settings/order_queue_stations
|
||||
# GET /settings/order_queue_stations.json
|
||||
def index
|
||||
@settings_order_queue_stations = OrderQueueStation.all
|
||||
@settings_order_queue_stations = OrderQueueStation.all.active
|
||||
end
|
||||
|
||||
# GET /settings/order_queue_stations/1
|
||||
@@ -40,6 +40,7 @@ class Settings::OrderQueueStationsController < ApplicationController
|
||||
# PATCH/PUT /settings/order_queue_stations/1
|
||||
# PATCH/PUT /settings/order_queue_stations/1.json
|
||||
def update
|
||||
params[:order_queue_station][:processing_items] = params[:order_queue_station][:processing_items].split(/,/).inspect
|
||||
respond_to do |format|
|
||||
if @settings_order_queue_station.update(settings_order_queue_station_params)
|
||||
format.html { redirect_to settings_order_queue_station_path(@settings_order_queue_station), notice: 'Order queue station was successfully updated.' }
|
||||
|
||||
@@ -6,11 +6,14 @@ class Settings::SetMenuItemsController < ApplicationController
|
||||
def index
|
||||
@settings_menu_items = @category.menu_items.page(params[:page]).per(10)
|
||||
end
|
||||
|
||||
|
||||
# GET /settings/menu_items/1
|
||||
# GET /settings/menu_items/1.json
|
||||
def show
|
||||
@sub_menu = MenuItem.where("menu_item_id=?",params[:id]).page(params[:page]).per(10)
|
||||
|
||||
@menu_item_instance = MenuItemInstance.where("menu_item_id=?",params[:id]).page(params[:page]).per(10)
|
||||
|
||||
end
|
||||
|
||||
# GET /settings/menu_items/new
|
||||
|
||||
@@ -6,7 +6,7 @@ class Settings::SimpleMenuItemsController < ApplicationController
|
||||
def index
|
||||
@settings_menu_items = @category.menu_items.page(params[:page]).per(10)
|
||||
end
|
||||
|
||||
|
||||
# GET /settings/menu_items/1
|
||||
# GET /settings/menu_items/1.json
|
||||
def show
|
||||
@@ -78,6 +78,6 @@ class Settings::SimpleMenuItemsController < ApplicationController
|
||||
|
||||
# Never trust parameters from the scary internet, only allow the white list through.
|
||||
def settings_menu_item_params
|
||||
params.require(:simple_menu_item).permit(:item_code, :name, :alt_name, :type, :menu_category_id, :menu_item_id, :min_qty, :min_selectable_item, :max_selectable_item, :created_by)
|
||||
params.require(:simple_menu_item).permit(:item_code, :name, :alt_name, :type, :menu_category_id,:item_attributes, :menu_item_id, :min_qty, :min_selectable_item, :max_selectable_item, :created_by)
|
||||
end
|
||||
end
|
||||
|
||||
7
app/forms/shop_form.rb
Normal file
7
app/forms/shop_form.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
#Form object to use during the installation process - will handle creation of shop model into db after verification from the cloud
|
||||
#provising service through license verification
|
||||
|
||||
class ShopForm < ActiveModel
|
||||
:attr_accessor :logo, :name, :address, :township, :city, :state, :country, :license, :base_currency, :password, :password_confirmation
|
||||
|
||||
end
|
||||
@@ -1,8 +1,9 @@
|
||||
class OrderBroadcastJob < ApplicationJob
|
||||
queue_as :default
|
||||
|
||||
def perform(message)
|
||||
order = Order.find(message) # message come as order_id
|
||||
def perform(message)
|
||||
order = Order.find(message) # message come as order_id
|
||||
ApplicationCable.server.broadcast "order_queue_station_channel", order: order
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class AssignedOrderItem < ApplicationRecord
|
||||
before_create :generate_custom_id
|
||||
|
||||
belongs_to :order
|
||||
belongs_to :order_queue_station
|
||||
|
||||
@@ -11,4 +13,9 @@ class AssignedOrderItem < ApplicationRecord
|
||||
assigned_order_item.delivery_status = false
|
||||
assigned_order_item.save
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.assigned_order_item_id = SeedGenerator.generate_id(self.class.name, "AOI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
class Booking < ApplicationRecord
|
||||
before_create :generate_custom_id
|
||||
#primary key - need to be unique
|
||||
|
||||
belongs_to :dining_facility, :optional => true
|
||||
belongs_to :sale, :optional => true
|
||||
has_many :booking_orders
|
||||
has_many :orders, :through => :booking_orders
|
||||
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.booking_id = SeedGenerator.generate_id(self.class.name, "BKI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class BookingOrder < ApplicationRecord
|
||||
#primary key - need to be unique
|
||||
|
||||
belongs_to :booking
|
||||
belongs_to :order
|
||||
end
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
class CashierLoginLog < ApplicationRecord
|
||||
before_create :generate_custom_id
|
||||
|
||||
belongs_to :cashier_station
|
||||
belongs_to :employee
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.cashier_login_log_id = SeedGenerator.generate_id(self.class.name, "CLO")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
module Crm
|
||||
def self.table_name_prefix
|
||||
'crm_'
|
||||
end
|
||||
end
|
||||
@@ -1,4 +1,5 @@
|
||||
class Customer < ApplicationRecord
|
||||
before_create :generate_custom_id
|
||||
has_many :orders
|
||||
has_many :sales
|
||||
|
||||
@@ -8,4 +9,9 @@ class Customer < ApplicationRecord
|
||||
def lastest_invoices
|
||||
sales.where(:customer_id => self.id).order("created_at desc").limit(5)
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.customer_id = SeedGenerator.generate_id(self.class.name, "CUS")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,10 +5,13 @@ class MenuItem < ApplicationRecord
|
||||
belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true
|
||||
has_many :children, :class_name => "MenuItem", foreign_key: "menu_item_id"
|
||||
|
||||
validates_presence_of :item_code, :type, :min_qty, :taxable, :min_selectable_item, :max_selectable_item
|
||||
validates_presence_of :item_code, :name, :type, :min_qty, :taxable, :min_selectable_item, :max_selectable_item
|
||||
|
||||
default_scope { order('item_code asc') }
|
||||
|
||||
scope :simple_menu_item, -> { where(type: 'SimpleMenuItem') }
|
||||
scope :set_menu_item, -> { where(type: 'SetMenuItem') }
|
||||
|
||||
def self.collection
|
||||
MenuItem.select("id, name").map { |e| [e.name, e.id] }
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class MenuItemAttribute < ApplicationRecord
|
||||
validates_presence_of :attribute_type, :name, :value
|
||||
|
||||
def self.collection
|
||||
MenuItemAttribute.select("id, name").map { |e| [e.name, e.id] }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class Order < ApplicationRecord
|
||||
#primary key - need to be unique
|
||||
before_create :generate_custom_id
|
||||
before_create :set_order_date
|
||||
|
||||
belongs_to :customer
|
||||
@@ -16,7 +18,7 @@ class Order < ApplicationRecord
|
||||
# option_values : [],
|
||||
# sub_order_items : [],
|
||||
# }
|
||||
|
||||
|
||||
def generate
|
||||
booking = nil
|
||||
|
||||
@@ -180,14 +182,6 @@ class Order < ApplicationRecord
|
||||
return new_items_list
|
||||
end
|
||||
|
||||
private
|
||||
def validate_api_inputs
|
||||
|
||||
end
|
||||
|
||||
def set_order_date
|
||||
self.date = Time.now.utc
|
||||
end
|
||||
|
||||
#Update Items Count and Quantity changes whenever there is changes
|
||||
def update_products_and_quantity_count
|
||||
@@ -235,6 +229,18 @@ class Order < ApplicationRecord
|
||||
.joins("left join sales on sales.id = sale_orders.sale_id")
|
||||
.where("booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true)
|
||||
.group("bookings.id")
|
||||
|
||||
#Origami: Cashier : to view order type Room
|
||||
def self.get_order_rooms
|
||||
order_rooms = Order.select("orders.id as order_id,sum(order_items.qty*order_items.price) as total_price,
|
||||
order_items.id as order_items_id,dining_facilities.name as room_name")
|
||||
.joins("left join booking_orders on booking_orders.order_id = orders.id
|
||||
left join bookings on bookings.id = booking_orders.id
|
||||
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
|
||||
left join order_items on order_items.order_id = orders.id")
|
||||
.where("dining_facilities.type=? and orders.order_type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,"dine_in",true)
|
||||
.group("orders.id,order_items.id,dining_facilities.name")
|
||||
|
||||
end
|
||||
#Origami: Cashier : to view orders
|
||||
def self.get_orders
|
||||
@@ -244,9 +250,11 @@ class Order < ApplicationRecord
|
||||
.joins("left join booking_orders on booking_orders.order_id = orders.id
|
||||
left join bookings on bookings.id = booking_orders.id
|
||||
left join dining_facilities on dining_facilities.id = bookings.dining_facility_id
|
||||
|
||||
left join order_items on order_items.order_id = orders.id
|
||||
left join sale_orders on sale_orders.order_id = orders.id
|
||||
left join sales on sales.id = sale_orders.sale_id")
|
||||
|
||||
.where("dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
|
||||
.group("orders.id")
|
||||
|
||||
@@ -259,4 +267,14 @@ class Order < ApplicationRecord
|
||||
# .where("booking_orders.order_id IS NOT NULL and dining_facilities.is_active=? and orders.date between ? and ?",true,from,to)
|
||||
# .group("orders.id")
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.order_id = SeedGenerator.generate_id(self.class.name, "ODR")
|
||||
end
|
||||
|
||||
def set_order_date
|
||||
self.date = Time.now.utc
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
class OrderItem < ApplicationRecord
|
||||
#primary key - need to be unique
|
||||
before_create :generate_custom_id
|
||||
|
||||
#Associations
|
||||
belongs_to :order, autosave: true
|
||||
|
||||
@@ -34,6 +37,7 @@ class OrderItem < ApplicationRecord
|
||||
|
||||
end
|
||||
#Origami : Cashier : to show order items details
|
||||
|
||||
def self.get_order_items_details(booking_id)
|
||||
booking_orders = BookingOrder.where("booking_id=?",booking_id)
|
||||
if booking_orders
|
||||
@@ -46,5 +50,10 @@ class OrderItem < ApplicationRecord
|
||||
else
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.order_item_id = SeedGenerator.generate_id(self.class.name, "ODI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
class RoomBooking < Booking
|
||||
|
||||
has_many :orders
|
||||
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class Sale < ApplicationRecord
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
|
||||
#before_create :generate_receipt_no
|
||||
belongs_to :cashier, :optional => true
|
||||
belongs_to :customer, :optional => true
|
||||
@@ -245,4 +247,8 @@ class Sale < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.sale_id = SeedGenerator.generate_id(self.class.name, "SAL")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
class SaleAudit < ApplicationRecord
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
|
||||
belongs_to :sale
|
||||
|
||||
def record_audit_void(sale_id, void_by, approved_by, reason)
|
||||
@@ -48,4 +50,9 @@ class SaleAudit < ApplicationRecord
|
||||
sale_audit.remark = remark
|
||||
sale_audit.save!
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.sale_audit_id = SeedGenerator.generate_id(self.class.name, "SAI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
class SaleItem < ApplicationRecord
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
before_create :generate_custom_id
|
||||
|
||||
belongs_to :sale
|
||||
|
||||
#compute items - discount, tax, price_change
|
||||
def compute_item
|
||||
end
|
||||
|
||||
|
||||
def self.get_order_items_details(sale_id)
|
||||
sale_orders = SaleOrder.where("sale_id=?",sale_id)
|
||||
if sale_orders
|
||||
@@ -17,5 +21,10 @@ class SaleItem < ApplicationRecord
|
||||
else
|
||||
return false
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI")
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
class SaleOrder < ApplicationRecord
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
before_create :generate_custom_id
|
||||
|
||||
belongs_to :sale
|
||||
belongs_to :order
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.sale_order_id = SeedGenerator.generate_id(self.class.name, "SOI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
class SalePayment < ApplicationRecord
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
before_create :generate_custom_id
|
||||
|
||||
belongs_to :sale
|
||||
|
||||
:attr_accessor :received_amount, :card_payment_reference, :voucher_no, :giftcard_no, :customer_id, :external_payment_status
|
||||
@@ -154,4 +157,8 @@ class SalePayment < ApplicationRecord
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.sale_payment_id = SeedGenerator.generate_id(self.class.name, "SPI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
class SaleTax < ApplicationRecord
|
||||
#primary key - need to be unique generated for multiple shops
|
||||
before_create :generate_custom_id
|
||||
belongs_to :sale
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.sale_tax_id = SeedGenerator.generate_id(self.class.name, "STI")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,24 @@
|
||||
class SeedGenerator < ApplicationRecord
|
||||
def self.generate_id(model, prefix)
|
||||
seed = SeedGenerator.find_by_model(model)
|
||||
new_receipt_no = 0
|
||||
if (seed.nil?)
|
||||
seed = SeedGenerator.new()
|
||||
seed.model = model
|
||||
new_receipt_no = seed.next
|
||||
seed.save
|
||||
|
||||
else
|
||||
current_no = seed.next
|
||||
seed.next = seed.next + seed.increase_by
|
||||
seed.current = current_no
|
||||
seed.save
|
||||
end
|
||||
padding_len = 16 - prefix.len
|
||||
|
||||
return prefix +"-"+ seed.current.to_s.to_s.rjust((16-prefix.length)+1,'0')
|
||||
end
|
||||
|
||||
def self.new_receipt_no
|
||||
seed = SeedGenerator.find_by_model("sale")
|
||||
new_receipt_no = 0
|
||||
|
||||
2
app/models/shop.rb
Normal file
2
app/models/shop.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
class Shop < ApplicationRecord
|
||||
end
|
||||
@@ -1,2 +0,0 @@
|
||||
class Test < ApplicationRecord
|
||||
end
|
||||
@@ -1,5 +0,0 @@
|
||||
module Transactions
|
||||
def self.table_name_prefix
|
||||
'transactions_'
|
||||
end
|
||||
end
|
||||
@@ -6,7 +6,7 @@
|
||||
<span style="float: right">
|
||||
</span>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Menu Category</h4>
|
||||
@@ -28,7 +28,7 @@
|
||||
<td><%= @settings_menu_category.name rescue "-" %></td>
|
||||
<td><%= @settings_menu_category.alt_name %></td>
|
||||
<td><%= @settings_menu_category.order_by %></td>
|
||||
<td><%=l @settings_menu_category.created_at, format: :short %></td>
|
||||
<td><%= @settings_menu_category.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_menu_category_path(@settings_menu_category, @settings_menu_category) %></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -69,7 +69,9 @@
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
<td><%=l settings_menu_item.created_at, :format => :short %></td>
|
||||
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@settings_menu_category, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@settings_menu_category, settings_menu_item) %></td>
|
||||
@@ -86,4 +88,4 @@
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
<%= simple_form_for([:settings,:menu_item, @settings_menu_item_instance]) do |f| %>
|
||||
|
||||
<%= simple_form_for([:settings,@item, @settings_menu_item_instances]) do |f| %>
|
||||
|
||||
<%= f.error_notification %>
|
||||
|
||||
<div class="form-inputs">
|
||||
<%= f.input :item_instance_code %>
|
||||
<%= f.input :item_instance_name %>
|
||||
<%= f.input :price %>
|
||||
|
||||
|
||||
<%= f.input :item_attributes, collection: MenuItemAttribute.collection, input_html: { multiple: true } %>
|
||||
|
||||
|
||||
<%= f.input :is_on_promotion %>
|
||||
<%= f.input :promotion_price %>
|
||||
|
||||
@@ -4,9 +4,13 @@
|
||||
<div class="page-header">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="<%= root_path %>">Home</a></li>
|
||||
<li><a href="<%= settings_menu_category_set_menu_items_path(@category) %>">Menu Category</a></li>
|
||||
|
||||
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li>
|
||||
<li>Menu Item</li>
|
||||
<li>Menu Item Instances</li>
|
||||
<li>Edit</li>
|
||||
</ul>
|
||||
</div>
|
||||
<%= render 'form', settings_set_menu_item: @settings_menu_item %>
|
||||
<%= render 'form', settings_menu_item_menu_item_instances: @settings_menu_item_instances %>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
<!-- <h1>New Settings Menu Item</h1>
|
||||
|
||||
<%= render 'form', settings_menu_item: @settings_menu_item %>
|
||||
<<<<<<< HEAD
|
||||
<%= render 'form', settings_menu_item: @settings_menu_item %>-->
|
||||
|
||||
<%= link_to 'Back', settings_menu_items_path %> -->
|
||||
|
||||
|
||||
<div class="span12">
|
||||
<div class="page-header">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="<%= root_path %>">Home</a></li>
|
||||
<li><a href="<%= %>">Menu Item</a></li>
|
||||
|
||||
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li>
|
||||
<li>Menu Item</li>
|
||||
<li>New Menu Item Instance</li>
|
||||
</ul>
|
||||
</div>
|
||||
<%= render 'form', settings_set_menu_instance: @settings_menu_item_instance %>
|
||||
<%= render 'form', settings_simple_menu_item_menu_item_instances: @settings_menu_item_instances %>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
|
||||
<div class="page-header">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="<%= %>">Home</a></li>
|
||||
<li><a href="<%= settings_menu_category_set_menu_items_path(@category) %>">Menu Category</a></li>
|
||||
|
||||
<li><a href="<%= root_path %>">Home</a></li>
|
||||
<li><a href="<%= settings_menu_category_simple_menu_item_path(@category,@item) %>">Menu Category</a></li>
|
||||
<li>Menu Item</li>
|
||||
<li>Menu Item Instances</li>
|
||||
|
||||
<span style="float: right">
|
||||
</span>
|
||||
</ul>
|
||||
@@ -11,42 +14,44 @@
|
||||
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Menu Item </h4>
|
||||
|
||||
<h4 class="card-title">Menu Item Instance</h4>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Item code</th>
|
||||
<th>Item Instance code</th>
|
||||
<th>Name</th>
|
||||
<th>Alt name</th>
|
||||
<th>Type</th>
|
||||
<th>Menu category</th>
|
||||
<th>Menu item</th>
|
||||
<th>Min qty</th>
|
||||
<th>Min selectable item</th>
|
||||
<th>Max selectable item</th>
|
||||
<th>Price</th>
|
||||
<th>On Promotion</th>
|
||||
<th>Promotion Price</th>
|
||||
<th>Available</th>
|
||||
<th>Created At</th>
|
||||
<th>Action</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><%= @settings_menu_item.item_code %></td>
|
||||
<td><%= @settings_menu_item.name rescue "-" %></td>
|
||||
<td><%= @settings_menu_item.alt_name %></td>
|
||||
<td><%= @settings_menu_item.type %></td>
|
||||
<td><%= @settings_menu_item.menu_category_id %></td>
|
||||
<td><%= @settings_menu_item.menu_item_id %></td>
|
||||
<td><%= @settings_menu_item.min_qty %></td>
|
||||
<td><%= @settings_menu_item.min_selectable_item %></td>
|
||||
<td><%= @settings_menu_item.max_selectable_item %></td>
|
||||
<td><%=l @settings_menu_item.created_at, format: :short %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, @settings_menu_item) %></td>
|
||||
|
||||
<td><%= @settings_menu_item_instances.item_instance_code %></td>
|
||||
<td><%= @settings_menu_item_instances.item_instance_name rescue "-" %></td>
|
||||
<td><%= @settings_menu_item_instances.price %></td>
|
||||
<td><%= @settings_menu_item_instances.is_on_promotion %></td>
|
||||
<td><%= @settings_menu_item_instances.promotion_price %></td>
|
||||
<td><%= @settings_menu_item_instances.is_available %></td>
|
||||
<td><%= @settings_menu_item_instances.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
<% if params[:simple_menu_item_id] %>
|
||||
<td><%= link_to 'Edit', edit_settings_simple_menu_item_menu_item_instance_path(@item,@settings_menu_item_instances) %></td>
|
||||
<% else %>
|
||||
<td><%= link_to 'Edit', edit_settings_simple_menu_item_menu_item_instance_path(@item,@settings_menu_item_instances) %></td>
|
||||
<% end %>
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<td><%= @settings_menu.valid_time_from.strftime("%H:%M") rescue "-" %></td>
|
||||
<td><%= @settings_menu.valid_time_to.strftime("%H:%M") rescue "-" %></td>
|
||||
<td><%= @settings_menu.created_by %></td>
|
||||
<td><%=l @settings_menu.created_at, format: :short %></td>
|
||||
<td><%= @settings_menu.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_path(@settings_menu) %></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
<td><%=l settings_menu_item.created_at, :format => :short %></td>
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<!-- <h1>New Settings Menu Item</h1>
|
||||
|
||||
<%= render 'form', settings_menu_item: @settings_menu_item %>
|
||||
|
||||
<%= link_to 'Back', settings_menu_items_path %> -->
|
||||
<%= render 'form', settings_menu_item: @settings_menu_item %> -->
|
||||
|
||||
|
||||
<div class="span12">
|
||||
|
||||
@@ -40,13 +40,17 @@
|
||||
<td><%= @settings_menu_item.min_qty %></td>
|
||||
<td><%= @settings_menu_item.min_selectable_item %></td>
|
||||
<td><%= @settings_menu_item.max_selectable_item %></td>
|
||||
<td><%=l @settings_menu_item.created_at, format: :short %></td>
|
||||
<td><%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, @settings_menu_item) %></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if @sub_menu.count > 0 %>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
@@ -75,7 +79,8 @@
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
<td><%=l settings_menu_item.created_at, :format => :short %></td>
|
||||
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
@@ -93,4 +98,50 @@
|
||||
</div>
|
||||
</div>
|
||||
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
|
||||
|
||||
<% end %>
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Menu Item Instances
|
||||
<span style="float: right">
|
||||
<%= link_to t('.new', :default => t("helpers.links.new")),new_settings_set_menu_item_menu_item_instance_path(@settings_menu_item),:class => 'btn btn-primary btn-sm' %>
|
||||
</span>
|
||||
|
||||
</h4>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- <th>Menu Item Id</th> -->
|
||||
<th>item_instance_code</th>
|
||||
<th>item_attributes</th>
|
||||
<th>price</th>
|
||||
<th>is_on_promotion</th>
|
||||
<th>promotion_price</th>
|
||||
<th>Created at</th>
|
||||
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<% @menu_item_instance.each do |settings_menu_item| %>
|
||||
<tr>
|
||||
<!-- <td><%= settings_menu_item.menu_item_id %></td> -->
|
||||
<td><%= settings_menu_item.item_instance_code %></td>
|
||||
<td><%= settings_menu_item.item_attributes %></td>
|
||||
<td><%= settings_menu_item.price %></td>
|
||||
<td><%= settings_menu_item.is_on_promotion %></td>
|
||||
<td><%= settings_menu_item.promotion_price %></td>
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
<td><%= link_to 'Show', settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item) %></td>
|
||||
<td><%= link_to 'Destroy', settings_set_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
<td><%=l settings_menu_item.created_at, :format => :short %></td>
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<!-- <h1>New Settings Menu Item</h1>
|
||||
|
||||
<%= render 'form', settings_menu_item: @settings_menu_item %>
|
||||
|
||||
<%= link_to 'Back', settings_menu_items_path %> -->
|
||||
<%= render 'form', settings_menu_item: @settings_menu_item %>-->
|
||||
|
||||
|
||||
<div class="span12">
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="<%= %>">Home</a></li>
|
||||
<li><a href="<%= settings_menu_category_simple_menu_items_path(@category) %>">Menu Category</a></li>
|
||||
<li>Menu Item Option</li>
|
||||
|
||||
<li>Menu Item</li>
|
||||
|
||||
<span style="float: right">
|
||||
</span>
|
||||
</ul>
|
||||
@@ -40,13 +42,18 @@
|
||||
<td><%= @settings_menu_item.min_qty %></td>
|
||||
<td><%= @settings_menu_item.min_selectable_item %></td>
|
||||
<td><%= @settings_menu_item.max_selectable_item %></td>
|
||||
<td><%=l @settings_menu_item.created_at, format: :short %></td>
|
||||
|
||||
<td><%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, @settings_menu_item) %></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if @sub_menu.count > 0 %>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
@@ -75,7 +82,9 @@
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
<td><%=l settings_menu_item.created_at, :format => :short %></td>
|
||||
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
@@ -94,19 +103,22 @@
|
||||
</div>
|
||||
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
|
||||
|
||||
<% end %>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Menu Item Instances
|
||||
<span style="float: right">
|
||||
<%= link_to t('.new', :default => t("helpers.links.new")),new_settings_menu_item_menu_item_instance_path(@settings_menu_item),:class => 'btn btn-primary btn-sm' %>
|
||||
|
||||
<%= link_to t('.new', :default => t("helpers.links.new")),new_settings_simple_menu_item_menu_item_instance_path(@settings_menu_item),:class => 'btn btn-primary btn-sm' %>
|
||||
</span>
|
||||
|
||||
</h4>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Menu Item Id</th>
|
||||
<!-- <th>Menu Item Id</th> -->
|
||||
<th>item_instance_code</th>
|
||||
<th>item_attributes</th>
|
||||
<th>price</th>
|
||||
@@ -114,6 +126,7 @@
|
||||
<th>promotion_price</th>
|
||||
<th>Created at</th>
|
||||
|
||||
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -121,13 +134,19 @@
|
||||
<tbody>
|
||||
<% @menu_item_instance.each do |settings_menu_item| %>
|
||||
<tr>
|
||||
<td><%= settings_menu_item.menu_item_id %></td>
|
||||
|
||||
<td><%= settings_menu_item.item_instance_code %></td>
|
||||
<td><%= settings_menu_item.item_attributes %></td>
|
||||
<td><%= settings_menu_item.price %></td>
|
||||
<td><%= settings_menu_item.is_on_promotion %></td>
|
||||
<td><%= settings_menu_item.promotion_price %></td>
|
||||
<td><%=l settings_menu_item.created_at, :format => :short %></td>
|
||||
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<td><%= link_to 'Show', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item) %></td>
|
||||
<td><%= link_to 'Destroy', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
|
||||
@@ -13,6 +13,6 @@ module SXRestaurants
|
||||
# -- all .rb files in that directory are automatically loaded.
|
||||
config.active_record.time_zone_aware_types = [:datetime, :time]
|
||||
config.active_job.queue_adapter = :sidekiq
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -119,12 +119,15 @@ Rails.application.routes.draw do
|
||||
|
||||
resources :menu_categories do
|
||||
#menu_items
|
||||
#resources :menu_items
|
||||
# resources :menu_items
|
||||
resources :simple_menu_items
|
||||
resources :set_menu_items
|
||||
end
|
||||
|
||||
resources :menu_items do
|
||||
resources :simple_menu_items do
|
||||
resources :menu_item_instances
|
||||
end
|
||||
resources :set_menu_items do
|
||||
resources :menu_item_instances
|
||||
end
|
||||
#menu_item_attributes
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
class CreateCustomers < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :customers do |t|
|
||||
create_table :customers, :id => false, :primary_key => :customer_id do |t|
|
||||
t.string :customer_id, :limit => 16, :null => false, :index => true, :unique => true #custom foreign_key to prevent conflict during sync
|
||||
t.string :name, :null => false
|
||||
t.string :company
|
||||
t.string :contact_no
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
class CreateOrders < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :orders do |t|
|
||||
create_table :orders, :id => false, :primary_key => :order_id do |t|
|
||||
t.string :order_id, :limit => 16, :null => false, :index => true, :unique => true #custom foreign_key to prevent conflict during sync
|
||||
t.datetime :date, :null => false
|
||||
t.string :source, :null => false, :default => "emenu"
|
||||
t.string :order_type, :null => false, :default => "dine-in"
|
||||
t.references :customer, foreign_key: true
|
||||
t.string :customer_id, foreign_key: true, :limit => 16
|
||||
t.integer :item_count, :null => false, :default => 0
|
||||
t.integer :quantity_count, :null => false, :default => 0
|
||||
t.string :status, :null => false, :default => "new"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
class CreateOrderItems < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :order_items do |t|
|
||||
t.references :order, foreign_key: true, :null => false
|
||||
create_table :order_items, :id => false, :primary_key => :order_items_id do |t|
|
||||
t.string :order_items_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
t.string :order_id, foreign_key: true, :null => false, :limit => 16
|
||||
t.string :order_item_status, :null => false, :default => "new"
|
||||
t.string :item_order_by #person who order this
|
||||
t.string :item_code, :null => false
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
class CreateCashierLoginLogs < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :cashier_login_logs do |t|
|
||||
create_table :cashier_login_logs, :id => false, :primary_key => :cashier_login_log_id do |t|
|
||||
t.string :cashier_login_log_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.references :cashier_terminal, foreign_key: true
|
||||
t.references :employee, foreign_key: true
|
||||
t.datetime :login_at, :null => false
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
class CreateSales < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :sales do |t|
|
||||
create_table :sales, :id => false, :primary_key => :sale_id do |t|
|
||||
t.string :sale_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.integer :cashier_id, :index => true
|
||||
t.string :cashier_name
|
||||
t.string :requested_by, :null => false
|
||||
t.datetime :requested_at, :null => false
|
||||
t.string :receipt_no, :null => false
|
||||
t.datetime :receipt_date, :null => false
|
||||
t.references :customer, foreign_key: true
|
||||
t.string :customer_id, foreign_key: true, :limit => 16
|
||||
t.string :payment_status, :null => false, :default => "outstanding"
|
||||
t.string :sale_status, :null => false, :default => "new"
|
||||
t.decimal :total_amount, :precision => 10, :scale => 2, :null => false, :default => 0.00
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
class CreateSaleItems < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :sale_items do |t|
|
||||
t.references :sale, foreign_key: true
|
||||
create_table :sale_items, :id => false, :primary_key => :sale_item_id do |t|
|
||||
t.string :sale_item_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
t.string :sale_id, foreign_key: true, :limit => 16
|
||||
t.string :product_code, :null => false
|
||||
t.string :product_name, :null => false
|
||||
t.string :remark
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
class CreateSaleTaxes < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :sale_taxes do |t|
|
||||
t.references :sale, foreign_key: true
|
||||
create_table :sale_taxes, :id => false, :primary_key => :sale_tax_id do |t|
|
||||
t.string :sale_tax_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.string :sale_id, foreign_key: true, :limit => 16
|
||||
t.string :tax_name, :null => false
|
||||
t.decimal :tax_rate, :precision => 10, :scale => 2, :null => false, :default => 0.00
|
||||
t.decimal :tax_payable_amount, :precision => 10, :scale => 2, :null => false, :default => 0.00
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
class CreateSalePayments < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :sale_payments do |t|
|
||||
t.references :sale, foreign_key: true
|
||||
create_table :sale_payments, :id => false, :primary_key => :sale_payment_id do |t|
|
||||
t.string :sale_payment_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.string :sale_id, foreign_key: true, :limit => 16
|
||||
t.string :payment_method, :null => false, :default => "cash"
|
||||
t.decimal :payment_amount, :precision => 10, :scale => 2, :null => false, :default => 0.00
|
||||
t.decimal :outstanding_amount, :precision => 10, :scale => 2, :null => false, :default => 0.00
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
class CreateSaleOrders < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :sale_orders do |t|
|
||||
t.references :sale, foreign_key: true
|
||||
t.references :order, foreign_key: true
|
||||
create_table :sale_orders, :id => false, :primary_key => :sale_order_id do |t|
|
||||
t.string :sale_order_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.string :sale, foreign_key: true,:limit => 16
|
||||
t.string :order, foreign_key: true, :limit => 16
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
class CreateSaleAudits < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :sale_audits do |t|
|
||||
t.references :sale, foreign_key: true
|
||||
create_table :sale_audits, :id => false, :primary_key => :sale_audit_id do |t|
|
||||
t.string :sale_audit_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.string :sale_id, foreign_key: true, :limit => 16
|
||||
t.string :action, :null => false
|
||||
t.datetime :action_at, :null => false
|
||||
t.string :action_by, :null => false
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
class CreateBookings < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :bookings do |t|
|
||||
create_table :bookings, :id => false, :primary_key => :booking_id do |t|
|
||||
t.string :booking_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.references :dining_facility, foreign_key: true
|
||||
t.string :type, :null => false, :default => "Table"
|
||||
t.datetime :checkin_at, :null => false
|
||||
@@ -10,7 +12,8 @@ class CreateBookings < ActiveRecord::Migration[5.0]
|
||||
t.datetime :reserved_at
|
||||
t.string :reserved_by
|
||||
t.string :booking_status, :null => false, :default => "new"
|
||||
t.references :sale, foreign_key: true
|
||||
t.string :sale_id, foreign_key: true, :limit => 16
|
||||
t.string :customer_id, foreign_key: true, :limit => 16
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
@@ -5,7 +5,6 @@ class CreateSeedGenerators < ActiveRecord::Migration[5.0]
|
||||
t.integer :increase_by, :null => false, :default => 1
|
||||
t.bigint :current, :null => false ,:default => 1
|
||||
t.bigint :next, :null => false, :default => 2
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
class CreateAssignedOrderItems < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :assigned_order_items do |t|
|
||||
create_table :assigned_order_items, :id => false, :primary_key => :assigned_order_item_id do |t|
|
||||
t.string :assigned_order_item_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
t.string :item_code, :null => false, :index => true
|
||||
t.references :order_queue_station, foreign_key: true
|
||||
t.references :order, foreign_key: true
|
||||
t.string :order_id, foreign_key: true, :limit => 16
|
||||
t.boolean :print_status
|
||||
t.boolean :delivery_status
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
class CreateBookingOrders < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :booking_orders do |t|
|
||||
t.references :booking, foreign_key: true
|
||||
t.references :order, foreign_key: true
|
||||
create_table :booking_orders, :id => false, :primary_key => :booking_order_id do |t|
|
||||
t.string :booking_order_id, :limit => 16, :null => false, :index => true, :unique => true #custom primary key - to ensure consistence for cloud syncing
|
||||
|
||||
t.string :booking, foreign_key: true, :limit => 16
|
||||
t.string :order, foreign_key: true, :limit => 16
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
25
db/migrate/20170530072247_create_shops.rb
Normal file
25
db/migrate/20170530072247_create_shops.rb
Normal file
@@ -0,0 +1,25 @@
|
||||
class CreateShops < ActiveRecord::Migration[5.1]
|
||||
def change
|
||||
create_table :shops do |t|
|
||||
t.string :logo
|
||||
t.string :name, :null => false
|
||||
t.string :address, :null => false
|
||||
t.string :township, :null => false
|
||||
t.string :city, :null => false
|
||||
t.string :state, :null => false
|
||||
t.string :country, :null => false
|
||||
t.string :phone_no, :null => false
|
||||
t.string :reserviation_no, :null => false
|
||||
t.string :license, :null => false
|
||||
t.datetime :activated_at, :null => false
|
||||
t.text :license_data, :null => false
|
||||
t.string :base_currency, :null => false, :limit => 3
|
||||
t.string :cloud_url
|
||||
t.string :cloud_token
|
||||
t.string :owner_token
|
||||
t.string :id_prefix, :null => false, :limit => 3
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Test, type: :model do
|
||||
RSpec.describe Shop, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
Reference in New Issue
Block a user