diff --git a/Gemfile b/Gemfile index ac3052b5..0b7c3f11 100644 --- a/Gemfile +++ b/Gemfile @@ -9,9 +9,9 @@ end # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.1.0' # Use mysql as the database for Active Record + gem 'mysql2', '>= 0.3.18', '< 0.5' -#Use PosgreSQL gem 'pg' # redis server for cable @@ -59,6 +59,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 diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index c202d4dc..9f971289 100644 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -1,6 +1,7 @@ class Origami::RequestBillsController < BaseOrigamiController def show @sale = Sale.new + check_order = Order.find_by_id(params[:id]) if check_order @order_details = OrderItem.get_order_items_details(check_order.id) @@ -9,5 +10,13 @@ class Origami::RequestBillsController < BaseOrigamiController @sale_data = Sale.find_by_id(@sale_id) @sale_items = SaleItem.where("sale_id=?",@sale_id) end + unique_code="ReceiptBillPdf" + print_settings=PrintSetting.find_by_unique_code(unique_code) + + printer = Printer::ReceiptPrinter.new(print_settings) + + printer.print_receipt_bill(print_settings,@sale_items,@sale) + + end end diff --git a/app/controllers/settings/menu_item_instances_controller.rb b/app/controllers/settings/menu_item_instances_controller.rb index 00f980e9..6bd00638 100644 --- a/app/controllers/settings/menu_item_instances_controller.rb +++ b/app/controllers/settings/menu_item_instances_controller.rb @@ -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 diff --git a/app/controllers/settings/order_queue_stations_controller.rb b/app/controllers/settings/order_queue_stations_controller.rb index e0cf0d08..46fcb54d 100644 --- a/app/controllers/settings/order_queue_stations_controller.rb +++ b/app/controllers/settings/order_queue_stations_controller.rb @@ -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.' } diff --git a/app/controllers/settings/set_menu_items_controller.rb b/app/controllers/settings/set_menu_items_controller.rb index cc5e89e8..f6771548 100644 --- a/app/controllers/settings/set_menu_items_controller.rb +++ b/app/controllers/settings/set_menu_items_controller.rb @@ -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 diff --git a/app/controllers/settings/simple_menu_items_controller.rb b/app/controllers/settings/simple_menu_items_controller.rb index d2083e59..e0d45fcb 100644 --- a/app/controllers/settings/simple_menu_items_controller.rb +++ b/app/controllers/settings/simple_menu_items_controller.rb @@ -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 diff --git a/app/jobs/order_broadcast_job.rb b/app/jobs/order_broadcast_job.rb index b29f4cd8..28a152ce 100644 --- a/app/jobs/order_broadcast_job.rb +++ b/app/jobs/order_broadcast_job.rb @@ -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 diff --git a/app/models/account.rb b/app/models/account.rb index 4cf5040c..e1cdc6d3 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -2,6 +2,6 @@ class Account < ApplicationRecord validates_presence_of :title, :account_type has_many :menu_items - # belongs_to :lookup , :class_name => "Lookup" ,:foreign_key => :tax_type + # belongs_to :lookup , :class_name => "Lookup" end diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb index e83c2eed..2a4e86be 100644 --- a/app/models/menu_item.rb +++ b/app/models/menu_item.rb @@ -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 diff --git a/app/models/menu_item_attribute.rb b/app/models/menu_item_attribute.rb index ebaa060e..a2fd0d1c 100644 --- a/app/models/menu_item_attribute.rb +++ b/app/models/menu_item_attribute.rb @@ -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 diff --git a/app/models/order.rb b/app/models/order.rb index 0b50b878..9133e907 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -25,7 +25,7 @@ class Order < ApplicationRecord if self.new_booking booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", :checkin_at => Time.now.utc, :checkin_by => self.employee_name, - :booking_status => "new" }) + :booking_status => "assign" }) else if (self.booking_id.to_i > 0 ) booking = Booking.find(self.booking_id) @@ -215,7 +215,9 @@ class Order < ApplicationRecord 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::TABLE_TYPE,"dine_in",true) + .group("orders.id") + end #Origami: Cashier : to view order type Room def self.get_order_rooms @@ -226,7 +228,7 @@ class Order < ApplicationRecord 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") + .group("orders.id,order_items.id,dining_facilities.name") end #Origami: Cashier : to view orders def self.get_orders @@ -238,6 +240,7 @@ class Order < ApplicationRecord 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.is_active=? and orders.date between ? and ?",true,from,to) .group("orders.id") end diff --git a/app/models/order_item.rb b/app/models/order_item.rb index ef228fde..1cd83dc1 100644 --- a/app/models/order_item.rb +++ b/app/models/order_item.rb @@ -41,6 +41,7 @@ class OrderItem < ApplicationRecord order_details = OrderItem.select("order_items.item_name,order_items.qty,order_items.price,(order_items.qty*order_items.price) as total_price") .joins("left join orders on orders.id = order_items.order_id") .where("order_items.order_id=?",order_id) + end private diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 521b87e0..d25dc8c3 100644 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -63,4 +63,13 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker self.print(filename) end +#Bill Receipt Print + def print_receipt_bill(printer_settings,sale_items,sale) + #Use CUPS service + #Generate PDF + #Print + pdf = ReceiptBillPdf.new(printer_settings,sale_items,sale) + pdf.render_file "tmp/receipt_bill_#{sale.id}.pdf" + self.print("tmp/receipt_bill_#{sale.id}.pdf") + end end diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb new file mode 100644 index 00000000..e9ad042c --- /dev/null +++ b/app/pdf/receipt_bill_pdf.rb @@ -0,0 +1,110 @@ +class ReceiptBillPdf < Prawn::Document + attr_accessor :receipt_width,:price_column_width,:p_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_column_width,:item_description_width + def initialize(printer_settings, sale_items,sale) + self.p_width = 200 + self.page_height = 1450 + self.margin = 10 + # self.price_width = self.p_width / 2 + self.price_width=90 + self.item_width = self.p_width - self.price_width + self.item_height = self.item_height + self.qty_column_width = self.p_width / 2 + self.item_description_width=self.p_width - self.price_width + self.receipt_width=130 + + @item_width = self.p_width.to_i / 2 + @qty_width = @item_width.to_i / 3 + @double = @qty_width * 2 + @half_qty = @qty_width / 2 + #setting page margin and width + super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.p_width, self.page_height]) + self.header_font_size = 10 + self.item_font_size = 6 + + header( printer_settings.printer_name, printer_settings.name) + stroke_horizontal_rule + cashier_info(sale.receipt_no,sale.customer.name, sale.receipt_date) + line_items(sale_items) + + + end + + def header (printer_name, name) + text "#{printer_name}", :size => self.header_font_size,:align => :center + move_down 5 + text "#{name}", :size => self.header_font_size,:align => :center + # move_down self.item_height + move_down 5 + + stroke_horizontal_rule + + end + + def cashier_info(receipt_no, customer, receipt_date) + move_down 5 + move_down 2 + y_position = cursor + bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + text "Receipt No:", :size => self.item_font_size,:align => :left + end + + bounding_box([self.price_width, y_position], :width =>self.receipt_width) do + text "#{receipt_no}" , :size => self.item_font_size, :align => :left + end + move_down 5 + + y_position = cursor + bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + text "Customer:", :size => self.item_font_size,:align => :left + end + bounding_box([self.price_width,y_position], :width =>self.price_width) do + text "#{customer}" , :size => self.item_font_size,:align => :left + end + move_down 5 + + y_position = cursor + bounding_box([0,y_position], :width =>self.price_width, :height => self.item_height) do + text "Date:", :size => self.item_font_size,:align => :left + end + bounding_box([self.price_width,y_position], :width =>self.price_width) do + text "#{receipt_date}" , :size => self.item_font_size,:align => :left + end + # stroke_horizontal_rule + move_down 5 + end + + def line_items(sale_items) + y_position = cursor + qty_column_width = self.p_width * 0.2 + item_description_width = self.p_width * 0.5 + price_column_width = self.p_width * 0.3 + + + + stroke_horizontal_rule + move_down 5 + y_position = cursor + pad_top(15) { + # @item_width.to_i + @half_qty.to_i + text_box "Items", :at =>[0,y_position], :width => @item_width.to_i - @half_qty.to_i , :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size + text_box "Price", :at =>[@item_width.to_i - @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Qty", :at =>[@item_width.to_i-@qty_width,y_position], :width => @half_qty, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Discount", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @qty_width, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + text_box "Total", :at =>[@item_width.to_i + @half_qty.to_i,y_position], :width => @double, :height =>15, :overflow => :shrink_to_fix, :size => self.item_font_size, :align => :right + + } + + move_down 5 + stroke_horizontal_rule + + add_line_item_row(sale_items) + stroke_horizontal_rule + + end + + def add_line_item_row(sale_items) + y_position = cursor + move_down 5 + end + +end diff --git a/app/views/crm/home/_booking.html.erb b/app/views/crm/home/_booking.html.erb index 13702bf6..b8d2ba50 100644 --- a/app/views/crm/home/_booking.html.erb +++ b/app/views/crm/home/_booking.html.erb @@ -21,10 +21,10 @@ @@ -38,19 +38,21 @@ $(function(){ $(".booking_click").on("click", function(){ $(".summary-items tbody tr").remove(); + $("#cancel").removeAttr("disabled"); + $("#assign").removeAttr("disabled"); var url = $(this).attr('data-ref'); show_details(url); }); $('.assign').click(function(e){ - var booking_id = $(this).attr("data-id") + var booking_id = $(this).val() var type = $(this).attr("data-type") update_booking(booking_id,type) }); $('.cancel').click(function(e){ - var booking_id = $(this).attr("data-id") + var booking_id = $(this).val() var type = $(this).attr("data-type") update_booking(booking_id,type) @@ -71,7 +73,8 @@ function show_details(url_item){ $("#table").text(data.table_name) $("#order_at").text(data.checkin_at) $("#order_by").text(data.checkin_by) - + $("#assign").val(data.id) + $("#cancel").val(data.id) for(var field in item_data) { if (item_data[field].item_name){ var price = parseFloat(item_data[field].price).toFixed(2); diff --git a/app/views/crm/home/_queue.html.erb b/app/views/crm/home/_queue.html.erb index 1633f901..5bbbd2bf 100644 --- a/app/views/crm/home/_queue.html.erb +++ b/app/views/crm/home/_queue.html.erb @@ -2,7 +2,7 @@ <% @i = 0 %> <% @booking.each do |booking| %> - <% if booking.booking_status == "complete" %> + <% if booking.booking_status == "assign" %>

diff --git a/app/views/crm/home/index.html.erb b/app/views/crm/home/index.html.erb index 431ef4a4..a140f43c 100644 --- a/app/views/crm/home/index.html.erb +++ b/app/views/crm/home/index.html.erb @@ -5,7 +5,7 @@

diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 04d23403..44624a43 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -10,6 +10,7 @@ <%= csrf_meta_tags %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> + <%= stylesheet_link_tag 'settings', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> diff --git a/app/views/settings/accounts/index.html.erb b/app/views/settings/accounts/index.html.erb index b205aa02..d8469a69 100644 --- a/app/views/settings/accounts/index.html.erb +++ b/app/views/settings/accounts/index.html.erb @@ -1,7 +1,4 @@ - -<%= link_to 'New Settings Account', new_settings_account_path %> -

Menu Category

@@ -28,7 +28,7 @@ <%= @settings_menu_category.name rescue "-" %> <%= @settings_menu_category.alt_name %> <%= @settings_menu_category.order_by %> - <%=l @settings_menu_category.created_at, format: :short %> + <%= @settings_menu_category.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> <%= link_to 'Edit', edit_settings_menu_menu_category_path(@settings_menu_category, @settings_menu_category) %> @@ -69,7 +69,9 @@ <%= settings_menu_item.type %> <%= settings_menu_item.parent.name rescue "-" %> <%= settings_menu_item.created_by %> - <%=l settings_menu_item.created_at, :format => :short %> + + <%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> + <% if settings_menu_item.type == "SimpleMenuItem" %> <%= link_to 'Show', settings_menu_category_simple_menu_item_path(@settings_menu_category, settings_menu_item ) %> <%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@settings_menu_category, settings_menu_item) %> @@ -86,4 +88,4 @@
-
\ No newline at end of file + diff --git a/app/views/settings/menu_item_instances/_form.html.erb b/app/views/settings/menu_item_instances/_form.html.erb index b369a1d3..7d326c95 100644 --- a/app/views/settings/menu_item_instances/_form.html.erb +++ b/app/views/settings/menu_item_instances/_form.html.erb @@ -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 %>
<%= 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 %> diff --git a/app/views/settings/menu_item_instances/edit.html.erb b/app/views/settings/menu_item_instances/edit.html.erb index 158b7c1c..01a47cc0 100644 --- a/app/views/settings/menu_item_instances/edit.html.erb +++ b/app/views/settings/menu_item_instances/edit.html.erb @@ -4,9 +4,13 @@ - <%= render 'form', settings_set_menu_item: @settings_menu_item %> + <%= render 'form', settings_menu_item_menu_item_instances: @settings_menu_item_instances %> +
diff --git a/app/views/settings/menu_item_instances/new.html.erb b/app/views/settings/menu_item_instances/new.html.erb index 9fae5b34..c6d688ca 100644 --- a/app/views/settings/menu_item_instances/new.html.erb +++ b/app/views/settings/menu_item_instances/new.html.erb @@ -1,17 +1,20 @@ -<%= link_to 'Back', settings_menu_items_path %> -->
- <%= render 'form', settings_set_menu_instance: @settings_menu_item_instance %> + <%= render 'form', settings_simple_menu_item_menu_item_instances: @settings_menu_item_instances %> +
diff --git a/app/views/settings/menu_item_instances/show.html.erb b/app/views/settings/menu_item_instances/show.html.erb index 238fa038..edd34a74 100644 --- a/app/views/settings/menu_item_instances/show.html.erb +++ b/app/views/settings/menu_item_instances/show.html.erb @@ -1,9 +1,12 @@ + +<% if @sub_menu.count > 0 %> +
@@ -75,7 +82,9 @@ <%= settings_menu_item.type %> <%= settings_menu_item.parent.name rescue "-" %> <%= settings_menu_item.created_by %> - <%=l settings_menu_item.created_at, :format => :short %> + + <%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> + <% if settings_menu_item.type == "SimpleMenuItem" %> <%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %> @@ -94,19 +103,22 @@
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %> +<% end %> +

Menu Item Instances - <%= 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' %>

- + @@ -114,6 +126,7 @@ + @@ -121,13 +134,19 @@ <% @menu_item_instance.each do |settings_menu_item| %> - + - + + + + + + + <% end %> diff --git a/config/routes.rb b/config/routes.rb index caa5cc2f..7ba039b0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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
Menu Item Id item_instance_code item_attributes pricepromotion_price Created at
<%= settings_menu_item.menu_item_id %><%= settings_menu_item.item_instance_code %> <%= settings_menu_item.item_attributes %> <%= settings_menu_item.price %> <%= settings_menu_item.is_on_promotion %> <%= settings_menu_item.promotion_price %><%=l settings_menu_item.created_at, :format => :short %><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %><%= link_to 'Show', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ) %><%= link_to 'Edit', edit_settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item) %><%= link_to 'Destroy', settings_simple_menu_item_menu_item_instance_path(@settings_menu_item, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %>