diff --git a/Gemfile b/Gemfile index 4c544ad6..5344bdc5 100644 --- a/Gemfile +++ b/Gemfile @@ -59,6 +59,7 @@ gem 'jbuilder', '~> 2.5' gem 'bcrypt', '~> 3.1.7' gem 'sidekiq' +gem 'whenever', :require => false # XML parser #gem 'nokogiri', '~> 1.6' diff --git a/Gemfile.lock b/Gemfile.lock index 7e27774a..affb7b95 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -51,6 +51,7 @@ GEM builder (3.2.3) byebug (9.0.6) cancancan (1.17.0) + chronic (0.10.2) coffee-rails (4.2.2) coffee-script (>= 2.2.0) railties (>= 4.0.0) @@ -237,6 +238,8 @@ GEM websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) + whenever (0.9.7) + chronic (>= 0.6.3) PLATFORMS ruby @@ -282,6 +285,7 @@ DEPENDENCIES tzinfo-data uglifier (>= 1.3.0) web-console (>= 3.3.0) + whenever BUNDLED WITH 1.15.1 diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index a51ce93e..eba40816 100644 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -5,24 +5,28 @@ class Api::BillController < Api::ApiController def create @status = false @error_message = "Order ID or Booking ID is require to request for a bill." - + if ShiftSale.current_shift #create Bill by Booking ID - if (params[:booking_id]) - booking = Booking.find(params[:booking_id]) + if (params[:booking_id]) + booking = Booking.find(params[:booking_id]) - if booking - if booking.sale_id.nil? - @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, get_cashier) - else - @status = true - @sale_id = booking.sale_id + if booking + if booking.sale_id.nil? + @sale = Sale.new + @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, get_cashier) + else + @status = true + @sale_id = booking.sale_id + end end - end - elsif (params[:order_id]) - @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier) + elsif (params[:order_id]) + @sale = Sale.new + @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier) + end + else + @status = false + @error_message = "No Current Open Shift" end #@sale_data = Sale.find_by_sale_id(@sale_id) diff --git a/app/controllers/base_report_controller.rb b/app/controllers/base_report_controller.rb index 28ba5c2b..12eeccd2 100644 --- a/app/controllers/base_report_controller.rb +++ b/app/controllers/base_report_controller.rb @@ -34,7 +34,7 @@ class BaseReportController < ActionController::Base to = params[:to] day_ref = Time.now.utc.getlocal - if params[:report_type] == "daily_sale" + if params[:report_type] == "daily_sale" || params[:report_type] == "sale_item" if from != "" && to != "" @@ -86,9 +86,7 @@ class BaseReportController < ActionController::Base else # end daily sale report if period_type.to_i == 1 - if params[:from] && params[:to] - - if params[:from] != "" && params[:to] !="" + if params[:from] != "" && params[:to] !="" f_date = DateTime.parse(params[:from]) t_date = DateTime.parse(params[:to]) @@ -99,8 +97,7 @@ class BaseReportController < ActionController::Base else from = day_ref.beginning_of_day.utc to = day_ref.end_of_day.utc - end - end + end else case period.to_i when PERIOD["today"] diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb index f8a80cb8..f67d413c 100644 --- a/app/controllers/crm/customers_controller.rb +++ b/app/controllers/crm/customers_controller.rb @@ -48,7 +48,22 @@ class Crm::CustomersController < BaseCrmController #get customer amount @customer = Customer.find(params[:id]) - @response = Customer.get_membership_transactions(@customer) + @response = Customer.get_membership_transactions(@customer) + # get member information + total = Customer.get_member_account(@customer) + + + @balance = 0.00 + @accountable_type = '' + if total["status"]==true + total["data"].each do |res| + if res["accountable_type"] == "RebateAccount" || res["accountable_type"] == "RebatebonusAccount" + @balance += res["balance"] + # @accountable_type = res["accountable_type"] + @accountable_type = "Rebate Balance" + end + end + end # @response = "" #end customer amount @@ -82,7 +97,8 @@ class Crm::CustomersController < BaseCrmController card_no = customer_params[:card_no] member_group_id = params[:member_group_id] - if !member_group_id.nil? + if member_group_id.present? + puts "aaaaaaaaa" membership = MembershipSetting.find_by_membership_type("paypar_url") memberaction = MembershipAction.find_by_membership_type("create_membership_customer") merchant_uid = memberaction.merchant_account_id.to_s @@ -101,6 +117,7 @@ class Crm::CustomersController < BaseCrmController }, :timeout => 10 ) + rescue Net::OpenTimeout response = { status: false } @@ -110,9 +127,7 @@ class Crm::CustomersController < BaseCrmController rescue SocketError response = { status: false} end - if response["status"] == true - customer = Customer.find(@crm_customers.customer_id) status = customer.update_attributes(membership_id: response["customer_datas"]["id"],membership_type:member_group_id ) @@ -123,13 +138,20 @@ class Crm::CustomersController < BaseCrmController end # format.json { render :index, status: :created, location: @crm_customers } else - # @crm_customers.destroy + customer = Customer.find(@crm_customers.customer_id) + status = customer.update_attributes(membership_type:member_group_id ) if params[:sale_id] - format.html { redirect_to '/origami/'+params[:sale_id]+'/customers'} + format.html { redirect_to '/origami/'+params[:sale_id]+'/customers', notice: 'Customer was successfully created. '} else - format.html { redirect_to crm_customers_path, notice: response["message"] } + format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created. ' } end end + else + if params[:sale_id] + format.html { redirect_to '/origami/'+params[:sale_id]+'/customers', notice: 'Customer was successfully created. '} + else + format.html { redirect_to crm_customers_path, notice: 'Customer was successfully created. ' } + end end else @@ -183,6 +205,8 @@ end }, :timeout => 10 ) + puts "hhhhhhhhh" + puts response.to_json rescue Net::OpenTimeout response = { status: false } @@ -199,8 +223,13 @@ end status = customer.update_attributes(membership_id: response["customer_datas"]["id"],membership_type:member_group_id ) format.html { redirect_to crm_customers_path, notice: 'Customer was successfully updated'} + else - format.html { redirect_to crm_customers_path, notice: response["message"] } + + customer = Customer.find(@crm_customer.customer_id) + status = customer.update_attributes(membership_type:member_group_id ) + + format.html { redirect_to crm_customers_path, notice: response["error"] } end else diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 3136417f..f2a8676c 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -77,7 +77,13 @@ class HomeController < ApplicationController def route_by_role(employee) if employee.role == "administrator" - redirect_to dashboard_path + # redirect_to dashboard_path + shift = ShiftSale.current_open_shift(employee.id) + if !shift.nil? + redirect_to origami_root_path + else + redirect_to new_origami_shift_path + end elsif employee.role == "cashier" #check if cashier has existing open cashier shift = ShiftSale.current_open_shift(employee.id) diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb index 0d4d07dc..d551a766 100644 --- a/app/controllers/oqs/home_controller.rb +++ b/app/controllers/oqs/home_controller.rb @@ -6,19 +6,24 @@ class Oqs::HomeController < BaseOqsController @queue_items_details = queue_items_query(false) # Query for OQS with delivery status true - @queue_completed_item = queue_items_query(true) + @queue_completed_item = completed_order @queue_stations_items=Array.new # Calculate Count for each station tab queue_stations.each do |que| - i=0 + i = 0 + zone_id = 0 @queue_items_details.each do |qid| - if qid.station_name == que.station_name - i=i+1 - end + dining = DiningFacility.find_by_name(qid.zone) + que.order_queue_process_by_zones.each do |qz| + if qid.station_id == qz.order_queue_station_id && qid.zone_id == dining.zone_id + zone_id = qid.zone_id + i=i+1 + end + end end - @queue_stations_items.push({:station_name => que.station_name, :is_active => que.is_active ,:item_count => i }) + @queue_stations_items.push({:zone_id => zone_id , :station_name => que.station_name, :is_active => que.is_active , :is_ap => que.auto_print, :item_count => i }) end @queue_stations_items @@ -83,34 +88,9 @@ class Oqs::HomeController < BaseOqsController # Query for OQS with delivery status def queue_items_query(status) - # queue_items = [] - # AssignedOrderItem.all.each do |aoi| - # oqs = OrderQueueStation.find(aoi.order_queue_station_id) - # order = Order.find(aoi.order_id) - # order_items = OrderItem.find_by_order_id(aoi.order_id) - # booking_orders = BookingOrder.find_by_order_id(aoi.order_id) - # booking = Booking.find(booking_orders.booking_id) - # dining = DiningFacility.find(booking.dining_facility_id) - # customer = Customer.find_by_customer_id(order.customer_id) - # queue_item = { - # :assigned_order_item_id => aoi.assigned_order_item_id, - # :station_name => oqs.station_name, - # :is_active => oqs.is_active, - # :zone => dining.name, - # :item_code => aoi.item_code, - # :item_name => order_items.item_name, - # :price => order_items.price, - # :qty => order_items.qty, - # :item_order_by => order_items.item_order_by, - # :options => order_items.options, - # :customer_name => customer.name, - # :created_at => order_items.created_at - # } - # queue_items.push(queue_item) - # end - # return queue_items - AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.station_name, oqs.is_active, df.name as zone, df.type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, cus.name as customer_name, odt.created_at") + AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, cus.name as customer_name, odt.created_at") .joins(" left join order_queue_stations as oqs on oqs.id = assigned_order_items.order_queue_station_id + left join order_queue_process_by_zones as oqpz on oqpz.order_queue_station_id = oqs.id left join orders as od ON od.order_id = assigned_order_items.order_id left join order_items as odt ON odt.item_code = assigned_order_items.item_code AND odt.order_id = assigned_order_items.order_id left join customers as cus ON cus.customer_id = od.customer_id @@ -120,4 +100,23 @@ class Oqs::HomeController < BaseOqsController .where("assigned_order_items.delivery_status = #{status} AND odt.price <> 0") .group("assigned_order_items.assigned_order_item_id") end + + # Completed Order + def completed_order + AssignedOrderItem.select("assigned_order_items.assigned_order_item_id, oqs.id as station_id, oqs.station_name, oqs.is_active, oqpz.zone_id, df.name as zone, df.type, odt.order_id, odt.item_code, odt.item_name, odt.price, odt.qty, odt.item_order_by, odt.options, cus.name as customer_name, odt.created_at") + .joins(" left join order_queue_stations as oqs on oqs.id = assigned_order_items.order_queue_station_id + left join order_queue_process_by_zones as oqpz on oqpz.order_queue_station_id = oqs.id + left join orders as od ON od.order_id = assigned_order_items.order_id + left join order_items as odt ON odt.item_code = assigned_order_items.item_code AND odt.order_id = assigned_order_items.order_id + left join customers as cus ON cus.customer_id = od.customer_id + left join booking_orders as bo on bo.order_id = assigned_order_items.order_id + left join bookings as bk on bk.booking_id = bo.booking_id + left join dining_facilities as df on df.id = bk.dining_facility_id") + .where("assigned_order_items.delivery_status = true AND odt.price <> 0") + .group("assigned_order_items.order_id") + + + # completed_order = AssignedOrderItem.group(:order_id).where('delivery_status=true'); + end + end diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb index e8376fc4..203e5600 100644 --- a/app/controllers/origami/customers_controller.rb +++ b/app/controllers/origami/customers_controller.rb @@ -34,6 +34,7 @@ class Origami::CustomersController < BaseOrigamiController #@crm_customers = Customer.all @crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(50) @crm_customer = Customer.new + @count_customer = Customer.count_customer # if flash["errors"] # @crm_customer.valid? diff --git a/app/controllers/origami/discounts_controller.rb b/app/controllers/origami/discounts_controller.rb index 02a85f91..16590320 100644 --- a/app/controllers/origami/discounts_controller.rb +++ b/app/controllers/origami/discounts_controller.rb @@ -74,8 +74,10 @@ class Origami::DiscountsController < BaseOrigamiController end end - sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax; - sale.save + # sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax; + # sale.save + # Re-calc All Amount in Sale + sale.compute_by_sale_items(sale_id, sale.sale_items, sale.total_discount) end dining = {:table_id => table_id, :table_type => table_type } @@ -100,8 +102,12 @@ class Origami::DiscountsController < BaseOrigamiController end end - sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax; - sale.save + # sale.total_discount = 0 + # sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax; + # sale.save + + # Re-calc All Amount in Sale + sale.compute_by_sale_items(sale_id, sale.sale_items, 0) end dining = {:table_id => table_id, :table_type => table_type } diff --git a/app/controllers/origami/other_charges_controller.rb b/app/controllers/origami/other_charges_controller.rb index a23ebd16..bb0d9e42 100644 --- a/app/controllers/origami/other_charges_controller.rb +++ b/app/controllers/origami/other_charges_controller.rb @@ -29,7 +29,7 @@ class Origami::OtherChargesController < BaseOrigamiController sale_item.sale_id = sale_id sale_item.product_code = "Other Charges" - sale_item.product_name = di["name"] + sale_item.product_name = "*" + di["name"] sale_item.product_alt_name = "" sale_item.remark = "Other Charges" diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 2cdd44b5..03e0931e 100644 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -30,7 +30,7 @@ class Origami::PaymentsController < BaseOrigamiController printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details) + printer.print_receipt_bill(print_settings,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details, "Frt") end def create @@ -41,10 +41,10 @@ class Origami::PaymentsController < BaseOrigamiController sale_payment = SalePayment.new sale_payment.process_payment(saleObj, @user, cash, "cash") - new_total = Sale.get_rounding_adjustment(saleObj.grand_total) - rounding_adj = saleObj.grand_total - new_total + # new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + # rounding_adj = saleObj.grand_total - new_total - saleObj.update_attributes(grand_total: new_total,rounding_adjustment:rounding_adj) + # saleObj.update_attributes(grand_total: new_total,rounding_adjustment:rounding_adj) rebate_amount = nil @@ -63,7 +63,7 @@ class Origami::PaymentsController < BaseOrigamiController discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details) + printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Paid") end end @@ -142,6 +142,16 @@ class Origami::PaymentsController < BaseOrigamiController discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details) + printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Re-print") + end + + def rounding_adj + + saleObj = Sale.find(params[:sale_id]) + new_total = Sale.get_rounding_adjustment(saleObj.grand_total) + rounding_adj = new_total-saleObj.grand_total + + saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) + end end diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb index d4fba302..8a47da39 100644 --- a/app/controllers/origami/sale_edit_controller.rb +++ b/app/controllers/origami/sale_edit_controller.rb @@ -18,11 +18,31 @@ class Origami::SaleEditController < BaseOrigamiController @newsaleitem.save @newsaleitem.qty = saleitemObj.qty * -1 @newsaleitem.price = saleitemObj.price * -1 - @newsaleitem.is_taxable = 0 + @newsaleitem.is_taxable = 1 @newsaleitem.product_name = saleitemObj.product_name + " - void" @newsaleitem.save end + def item_edit + saleitemId = params[:sale_item_id] + update_qty = params[:update_qty] + update_price = params[:update_price] + saleitemObj = SaleItem.find(saleitemId) + saleitemObj.remark = 'void' + saleitemObj.save + @newsaleitem = SaleItem.new + @newsaleitem = saleitemObj.dup + @newsaleitem.save + @newsaleitem.qty = update_qty + @newsaleitem.price = update_price + @newsaleitem.unit_price = update_price + @newsaleitem.taxable_price = update_price + @newsaleitem.is_taxable = 0 + @newsaleitem.remark = 'edit' + @newsaleitem.product_name = saleitemObj.product_name + " - updated" + @newsaleitem.save + end + # make cancel void item def item_void_cancel saleitemId = params[:sale_item_id] diff --git a/app/controllers/origami/shifts_controller.rb b/app/controllers/origami/shifts_controller.rb index 3329aa0b..e527da46 100644 --- a/app/controllers/origami/shifts_controller.rb +++ b/app/controllers/origami/shifts_controller.rb @@ -4,6 +4,7 @@ class Origami::ShiftsController < BaseOrigamiController end def show + puts ">>>>>" puts current_user.id @shift = ShiftSale.current_open_shift(current_user.id) end @@ -15,8 +16,9 @@ class Origami::ShiftsController < BaseOrigamiController def create opening_balance = params[:opening_balance] + cashier_terminal = params[:cashier_terminal] @shift = ShiftSale.new - @shift.create(opening_balance,current_user) + @shift.create(opening_balance,cashier_terminal, current_user) end def update_shift @@ -27,10 +29,21 @@ class Origami::ShiftsController < BaseOrigamiController @shift.shift_closed_at = DateTime.now.utc @shift.closing_balance = closing_balance.to_f @shift.save - end - end + unique_code = "CloseCashierPdf" + shop_details = Shop.find(1) + # get printer info + print_settings=PrintSetting.find_by_unique_code(unique_code) + + printer = Printer::CashierStationPrinter.new(print_settings) + + printer.print_close_cashier(print_settings,@shift,shop_details) + + end + + end def edit end + end diff --git a/app/controllers/origami/void_controller.rb b/app/controllers/origami/void_controller.rb index b8972cf2..687d9fa5 100644 --- a/app/controllers/origami/void_controller.rb +++ b/app/controllers/origami/void_controller.rb @@ -30,6 +30,13 @@ class Origami::VoidController < BaseOrigamiController table.save end + # update complete order items in oqs + SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr| + AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| + aoi.delivery_status = 1 + aoi.save + end + end end end diff --git a/app/controllers/settings/order_queue_stations_controller.rb b/app/controllers/settings/order_queue_stations_controller.rb index 9fe78de4..dea66941 100644 --- a/app/controllers/settings/order_queue_stations_controller.rb +++ b/app/controllers/settings/order_queue_stations_controller.rb @@ -74,10 +74,10 @@ class Settings::OrderQueueStationsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def settings_order_queue_station_params # <<<<<<< HEAD - params.require(:order_queue_station).permit(:station_name, :is_active, :auto_print, :processing_items, :print_copy, :printer_name, :font_size, :cut_per_item, :use_alternate_name, :created_by) +# params.require(:order_queue_station).permit(:station_name, :is_active, :auto_print, :processing_items, :print_copy, :printer_name, :font_size, :cut_per_item, :use_alternate_name, :created_by) # ======= # Don't Know { zone_ids: [] } -# params.require(:order_queue_station).permit(:station_name, :is_active, :processing_items, :print_copy, :printer_name, :font_size, :cut_per_item, :use_alternate_name, :created_by,{ zone_ids: [] }) + params.require(:order_queue_station).permit(:station_name, :is_active, :processing_items, :print_copy, :printer_name, :font_size, :cut_per_item, :use_alternate_name, :created_by,{ zone_ids: [] }) # >>>>>>> b093a993ba002c92659bbb34338c55c031c11d87 end end diff --git a/app/controllers/transactions/orders_controller.rb b/app/controllers/transactions/orders_controller.rb index 8303780f..de4be3c3 100644 --- a/app/controllers/transactions/orders_controller.rb +++ b/app/controllers/transactions/orders_controller.rb @@ -20,6 +20,7 @@ class Transactions::OrdersController < ApplicationController format.json { render json: @orders } end end + def show @order = Order.find(params[:id]) diff --git a/app/models/ability.rb b/app/models/ability.rb index 9a7b5f6f..3e5fc8b6 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -52,6 +52,7 @@ class Ability can :show, :payment can :create, :payment can :reprint, :payment + can :rounding_adj, :payment can :move_dining, :movetable can :moving, :movetable @@ -88,6 +89,7 @@ class Ability can :show, :payment can :create, :payment can :reprint, :payment + can :rounding_adj, :payment can :move_dining, :movetable can :moving, :movetable diff --git a/app/models/customer.rb b/app/models/customer.rb index a26d857e..16d70db7 100644 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -73,6 +73,48 @@ class Customer < ApplicationRecord end + def self.update_membership + membership = MembershipSetting.find_by_membership_type("paypar_url") + memberaction = MembershipAction.find_by_membership_type("create_membership_customer") + merchant_uid = memberaction.merchant_account_id.to_s + auth_token = memberaction.auth_token.to_s + url = membership.gateway_url.to_s + memberaction.gateway_url.to_s + + @customers = Customer.where("membership_type IS NOT NULL AND membership_id IS NULL") + + @customers.each do |customer| + begin + response = HTTParty.post(url, + :body => + { name: customer.name,phone: customer.contact_no, + email: customer.email,dob: customer.date_of_birth, + address: customer.address,nrc:customer.nrc_no, + card_no:customer.card_no,member_group_id: customer.membership_type, + merchant_uid:merchant_uid,auth_token:auth_token + }.to_json, + :headers => { + 'Content-Type' => 'application/json', + 'Accept' => 'application/json' + }) + rescue Net::OpenTimeout + response = { status: false } + + rescue OpenURI::HTTPError + response = { status: false} + + rescue SocketError + response = { status: false} + end + + puts response.to_json + + if response["status"] == true + status = customer.update_attributes(membership_id: response["customer_datas"]["id"]) + end + + end + end + def self.search(search) if search # find(:all, :conditions => ['name LIKE ? OR contact_no LIKE ?', "%#{search}%", "%#{search}%"]) diff --git a/app/models/order_item.rb b/app/models/order_item.rb index f4f3efba..109665d0 100644 --- a/app/models/order_item.rb +++ b/app/models/order_item.rb @@ -43,10 +43,10 @@ class OrderItem < ApplicationRecord def self.get_order_items_details(booking_id) # booking_orders = BookingOrder.where("booking_id=?",booking.booking_id) # if booking_orders - # booking_orders.each do |book_order| + # booking_orders.each do |book_order| # 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.order_id = order_items.order_id") - # .where("order_items.order_id=?",book_order.order) + # .where("order_items.order_id=?",book_order.order) # return order_details # end # else @@ -57,9 +57,9 @@ class OrderItem < ApplicationRecord .joins("left join orders on orders.order_id = order_items.order_id") .joins("left join booking_orders on booking_orders.order_id = order_items.order_id") .joins("left join bookings on bookings.booking_id = booking_orders.booking_id") - .where("bookings.booking_id=?",booking_id) + .where("bookings.booking_id=?",booking_id) - return order_details + return order_details end private diff --git a/app/models/printer/cashier_station_printer.rb b/app/models/printer/cashier_station_printer.rb index 32fab03a..564b4909 100644 --- a/app/models/printer/cashier_station_printer.rb +++ b/app/models/printer/cashier_station_printer.rb @@ -11,14 +11,24 @@ class Printer::CashierStationPrinter < Printer::PrinterWorker self.print("tmp/cashier_station_#{order_id}_closing_#{time}.pdf") end - def print_close_cashier(receipt_no) + # def print_close_cashier(receipt_no) + # #Use CUPS service + # #Generate PDF + # time = DateTime.now + # #Print + # pdf = CashierStationClosing.new + # pdf.render_file "tmp/cashier_station_#{order_id}_closing_#{time}.pdf" + # self.print("tmp/receipt.pdf") + # end + + #Bill Receipt Print + def print_close_cashier(printer_settings,shift_sale,shop_details) #Use CUPS service #Generate PDF - time = DateTime.now #Print - pdf = CashierStationClosing.new - pdf.render_file "tmp/cashier_station_#{order_id}_closing_#{time}.pdf" - self.print("tmp/receipt.pdf") + pdf = CloseCashierPdf.new(printer_settings,shift_sale,shop_details) + pdf.render_file "tmp/print_close_cashier.pdf" + self.print("tmp/print_close_cashier.pdf") end diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index f8eb46d6..652339b9 100644 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -65,11 +65,12 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker end #Bill Receipt Print - def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details) + def print_receipt_bill(printer_settings,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status) #Use CUPS service #Generate PDF #Print - pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details) + + pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status) # print as print copies in printer setting count = printer_settings.print_copies diff --git a/app/models/sale.rb b/app/models/sale.rb index 2578221d..06552010 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -94,7 +94,6 @@ class Sale < ApplicationRecord link_order_sale(order.id) end - self.save! #compute sales summary @@ -224,7 +223,7 @@ class Sale < ApplicationRecord total_taxable = total_taxable + (item.taxable_price * item.qty) end - compute_tax(sale, total_taxable) + compute_tax(sale, total_taxable, total_discount) sale.total_amount = subtotal_price sale.total_discount = total_discount sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax @@ -262,7 +261,7 @@ class Sale < ApplicationRecord end # Tax Re-Calculte - def compute_tax(sale, total_taxable) + def compute_tax(sale, total_taxable, total_discount = 0) #if tax is not apply create new record SaleTax.where("sale_id='#{sale.sale_id}'").find_each do |existing_tax| #delete existing and create new @@ -280,9 +279,12 @@ class Sale < ApplicationRecord sale_tax.tax_rate = tax.rate #include or execulive # sale_tax.tax_payable_amount = total_taxable * tax.rate + + # substract , to give after discount + total_taxable = total_taxable - total_discount sale_tax.tax_payable_amount = total_taxable * tax.rate / 100 - #new taxable amount - total_taxable = total_taxable + sale_tax.tax_payable_amount + #new taxable amount is standard rule for step by step + # total_taxable = total_taxable + sale_tax.tax_payable_amount sale_tax.inclusive = tax.inclusive sale_tax.save @@ -319,8 +321,8 @@ class Sale < ApplicationRecord #include or execulive # sale_tax.tax_payable_amount = total_taxable * tax.rate sale_tax.tax_payable_amount = total_taxable * tax.rate / 100 - #new taxable amount - total_taxable = total_taxable + sale_tax.tax_payable_amount + #new taxable amount is standard rule for step by step + # total_taxable = total_taxable + sale_tax.tax_payable_amount sale_tax.inclusive = tax.inclusive sale_tax.save @@ -407,8 +409,8 @@ class Sale < ApplicationRecord else ## up to 100 value = 100 - get_last_no.to_f - num += value - puts 'up to 100' + num += value + puts 'up to 100' end end end @@ -441,6 +443,7 @@ class Sale < ApplicationRecord to_date = sale_date.end_of_day.utc - diff total_sale = Sale.select("IFNULL(SUM(case when (sale_status='completed') then grand_total else 0 end),0) as grand_total, + IFNULL(SUM(case when (sale_status='completed') then old_grand_total else 0 end),0) as old_grand_total, IFNULL(SUM(case when (sale_status='completed') then total_discount else 0 end),0) as total_discount, IFNULL(SUM(case when (sale_status='void') then grand_total else 0 end),0) as void_amount, IFNULL(SUM(case when (sale_status='completed') then rounding_adjustment else 0 end),0) as rounding_adj") @@ -448,6 +451,7 @@ class Sale < ApplicationRecord total_sale.each do |sale| grand_total = sale.grand_total + old_grand_total = sale.old_grand_total total_discount = sale.total_discount void_amount = sale.void_amount total = {:sale_date => pay.sale_date, @@ -461,6 +465,7 @@ class Sale < ApplicationRecord :foc_amount => pay.foc_amount, :total_discount => total_discount, :grand_total => grand_total, + :old_grand_total => old_grand_total, :void_amount => void_amount, :rounding_adj => sale.rounding_adj} daily_total.push(total) diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 11b201d2..936bc08a 100644 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -55,7 +55,7 @@ class SalePayment < ApplicationRecord sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by) # update complete order items in oqs - SaleOrder.where("sale_id = '#{ invoice.sale_id }'").find_each do |sodr| + SaleOrder.where("sale_id = '#{ invoice.sale_id }'").find_each do |sodr| AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| aoi.delivery_status = 1 aoi.save @@ -274,6 +274,8 @@ class SalePayment < ApplicationRecord shift = ShiftSale.current_open_shift(self.sale.cashier_id) if !shift.nil? shift.update(self.sale) + self.sale.shift_sale_id = shift.id + self.sale.save end end @@ -285,7 +287,7 @@ class SalePayment < ApplicationRecord bookings = table.bookings bookings.each do |tablebooking| if tablebooking.booking_status != 'moved' - if tablebooking.sale.sale_status != 'completed' + if tablebooking.sale.sale_status != 'completed' && tablebooking.sale.sale_status != 'void' status = false end end @@ -304,16 +306,22 @@ class SalePayment < ApplicationRecord if generic_customer_id != nil || generic_customer_id != "" || generic_customer_id != 0 paypar = sObj.sale_payments payparcost = 0 + credit = 0 paypar.each do |pp| if pp.payment_method == "paypar" payparcost = payparcost + pp.payment_amount + elsif pp.payment_method == "creditnote" + credit = 1 end end # overall_dis = SaleItem.get_overall_discount(sObj.id) overall_dis = sObj.total_discount - total_amount = rebate_prices - payparcost + overall_dis - if total_amount > 0 + total_amount = rebate_prices - payparcost - overall_dis + if credit == 1 + total_amount = 0 + end + if total_amount >= 0 receipt_no = sObj.receipt_no membership = MembershipSetting.find_by_membership_type("paypar_url") memberaction = MembershipAction.find_by_membership_type("rebate") @@ -332,7 +340,7 @@ class SalePayment < ApplicationRecord }, :timeout => 10) rescue Net::OpenTimeout response = { status: false } - + rescue OpenURI::HTTPError response = { status: false} diff --git a/app/models/shift_sale.rb b/app/models/shift_sale.rb index 66c20ff2..b9c5aa28 100644 --- a/app/models/shift_sale.rb +++ b/app/models/shift_sale.rb @@ -16,19 +16,23 @@ class ShiftSale < ApplicationRecord belongs_to :cashier_terminal belongs_to :employee, :foreign_key => 'employee_id' + def self.current_shift + today_date = DateTime.now.strftime("%Y-%m-%d") + shift = ShiftSale.where("DATE(shift_started_at)=? and shift_started_at is not null and shift_closed_at is null",today_date).take + return shift + end + def self.current_open_shift(current_user) #if current_user #find open shift where is open today and is not closed and login by current cashier today_date = DateTime.now.strftime("%Y-%m-%d") - - shift = ShiftSale.where("DATE(shift_started_at)= #{ today_date } and shift_started_at is not null and shift_closed_at is null and employee_id = #{current_user}").take - + shift = ShiftSale.where("DATE(shift_started_at)=? and shift_started_at is not null and shift_closed_at is null and employee_id = #{current_user}",today_date).take return shift #end end - def create(opening_balance,current_user) - self.cashier_terminal_id = CashierTerminal.first.id + def create(opening_balance,cashier_terminal, current_user) + self.cashier_terminal_id = cashier_terminal self.shift_started_at = DateTime.now self.employee_id = current_user.id self.opening_balance = opening_balance diff --git a/app/pdf/close_cashier_pdf.rb b/app/pdf/close_cashier_pdf.rb new file mode 100644 index 00000000..fc04b6cc --- /dev/null +++ b/app/pdf/close_cashier_pdf.rb @@ -0,0 +1,179 @@ +class CloseCashierPdf < Prawn::Document + attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width,:text_width + def initialize(printer_settings, shift_sale,shop_details) + self.page_width = 210 + self.page_height = 7000 + self.margin = 5 + self.price_width = 40 + self.qty_width = 20 + self.total_width = 40 + self.item_width = self.page_width - ((self.price_width + self.qty_width + self.total_width)) + self.item_height = 15 + self.item_description_width = (self.page_width-20) / 2 + self.label_width = 100 + + self.text_width = (self.page_width - 80) - self.price_width / 3 + # @item_width = self.page_width.to_i / 2 + # @qty_width = @item_width.to_i / 3 + # @double = @qty_width * 1.3 + # @half_qty = @qty_width / 2 + #setting page margin and width + super(:margin => [printer_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + + # font "public/fonts/#{font_name}".to_s + ".ttf".to_s + # font "public/fonts/Zawgyi-One.ttf" + # font "public/fonts/padauk.ttf" + self.header_font_size = 10 + self.item_font_size = 8 + + + + header( shop_details) + + stroke_horizontal_rule + + shift_detail(shift_sale) + + + + end + + def header (shop_details) + move_down 7 + text "#{shop_details.name}", :left_margin => -10, :size => self.header_font_size,:align => :center + move_down 5 + text "#{shop_details.address}", :size => self.item_font_size,:align => :center + # move_down self.item_height + move_down 5 + text "#{shop_details.phone_no}", :size => self.item_font_size,:align => :center + move_down 5 + + stroke_horizontal_rule + end + + def shift_detail(shift_sale) + move_down 7 + y_position = cursor + bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do + text "Cashier : ", :size => self.item_font_size,:align => :left + end + bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do + text "#{ shift_sale.employee.name}" , :size => self.item_font_size,:align => :left + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do + text "Cashier Station : ", :size => self.item_font_size,:align => :left + end + bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do + text "#{ shift_sale.cashier_terminal.name}" , :size => self.item_font_size,:align => :left + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do + text "Opening Float : ", :size => self.item_font_size,:align => :left + end + bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do + text "#{ shift_sale.opening_balance}" , :size => self.item_font_size,:align => :left + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do + text "Closing Float : ", :size => self.item_font_size,:align => :left + end + bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do + text "#{ shift_sale.closing_balance}" , :size => self.item_font_size,:align => :left + end + + + move_down 10 + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Received Amount :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.closing_balance}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Net Sales:", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.nett_sales}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Total Tax :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.total_taxes}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Cash Payment :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.cash_sales}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Credit Payment :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.credit_sales}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Other Payment :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.other_sales}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Total Sale :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.total_revenue}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Discount Amount :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.total_discounts}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Commercial Tax :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.commercial_taxes}", :size => self.item_font_size, :align => :right + end + + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + text "Grand Total :", :size => self.item_font_size, :align => :right + end + bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + text "#{shift_sale.grand_total}", :size => self.item_font_size, :align => :right + end + + move_down 5 + stroke_horizontal_rule + move_down 5 + move_down 5 + + end + +end + diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index bff0852d..52cdf586 100644 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -1,7 +1,7 @@ class ReceiptBillPdf < Prawn::Document include ActionView::Helpers::NumberHelper attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width - def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details) + def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details, printed_status) self.page_width = 210 self.page_height = 7000 self.margin = 5 @@ -53,7 +53,7 @@ class ReceiptBillPdf < Prawn::Document items_account(item_price_by_accounts,printer_settings.precision,delimiter) - footer + footer(printed_status) end def header (shop_details) @@ -82,14 +82,11 @@ class ReceiptBillPdf < Prawn::Document move_down 5 y_position = cursor - bounding_box([0, y_position], :width =>self.item_width) do - text "Waiter: #{sale_data.requested_by}" , :size => self.item_font_size, :align => :left - end - move_down 5 - - y_position = cursor - bounding_box([0,y_position], :width =>self.item_width, :height => self.item_height) do - text "Cashier: #{sale_data.cashier_name}", :size => self.item_font_size,:align => :left + bounding_box([0, y_position], :width =>self.label_width, :height => self.item_height) do + text "W: #{sale_data.requested_by}" , :size => self.item_font_size, :align => :left + end + bounding_box([self.label_width,y_position], :width =>self.label_width, :height => self.item_height) do + text "C: #{sale_data.cashier_name}", :size => self.item_font_size,:align => :right end move_down 5 @@ -182,7 +179,7 @@ class ReceiptBillPdf < Prawn::Document y_position = cursor bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do - text "#{ st.tax_name }", :size => self.item_font_size,:align => :left + text "#{ st.tax_name } ( #{ st.tax_rate.to_i }%)", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do text "#{number_with_precision(st.tax_payable_amount, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right @@ -236,9 +233,16 @@ class ReceiptBillPdf < Prawn::Document SalePayment.where('sale_id = ?', sale_data.sale_id).each do |payment| y_position = cursor - bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + if payment.payment_method == "paypar" + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + text "Redeem Payment", :size => self.item_font_size,:align => :left + end + else + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do text "#{payment.payment_method.capitalize} Payment", :size => self.item_font_size,:align => :left end + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do text "#{number_with_precision(payment.payment_amount, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end @@ -266,34 +270,56 @@ class ReceiptBillPdf < Prawn::Document if rebate_amount["status"] == true stroke_horizontal_rule rebate = 0 + redeem = 0 rebate_amount["data"].each do |res| - if res["receipt_no"]== sale_data.receipt_no && res["status"]== "Rebate" - - rebate = rebate + res["rebate"] - - end if res["receipt_no"]== sale_data.receipt_no && res["status"]== "Redeem" - - move_down 5 - y_position = cursor - bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do - text "Current Redeem Amount", :size => self.item_font_size,:align => :left - end - bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{number_with_precision(res["redeem"], :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :right - end + redeem = redeem + res["redeem"] + end + + + if res["receipt_no"]== sale_data.receipt_no && res["account_status"]== "RebateAccount" && res["status"]== "Rebate" + + rebate = rebate + res["rebate"] + + move_down 5 + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + text "Rebate Earn", :size => self.item_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "#{number_with_precision(res["balance"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right + end + + end + + if res["receipt_no"]== sale_data.receipt_no && res["account_status"]== "RebateBonusAccount" && res["status"]== "Rebate" + + rebate = rebate + res["rebate"] + + move_down 5 + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + text "Rebate Earn Bonus", :size => self.item_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "#{number_with_precision(res["balance"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right + end + + end end + move_down 5 - y_position = cursor - bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do - text "Current Rebate Amount", :size => self.item_font_size,:align => :left - end - bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{number_with_precision(rebate, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right - end + y_position = cursor + bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do + text "Redeem Amount", :size => self.item_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.label_width) do + text "#{number_with_precision(redeem, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :right + end + end end if member_info["status"] == true && member_info["data"].present? @@ -309,7 +335,7 @@ class ReceiptBillPdf < Prawn::Document move_down 5 y_position = cursor bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do - text "Current Balance", :size => self.item_font_size,:align => :left + text "Total Balance", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do text "#{number_with_precision(balance, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right @@ -360,12 +386,18 @@ class ReceiptBillPdf < Prawn::Document end end - def footer + def footer(printed_status) move_down 5 stroke_horizontal_rule move_down 5 - text "Thank You! See you Again", :left_margin => -10, :size => self.header_font_size,:align => :center + y_position = cursor + bounding_box([0, y_position], :width =>self.label_width, :height => self.item_height) do + text "#{printed_status}", :size => self.item_font_size,:align => :left + end + bounding_box([self.item_description_width,y_position], :width =>self.item_description_width, :height => self.item_height) do + text "Thank You! See you Again", :left_margin => -10, :size => self.item_font_size,:align => :left + end move_down 5 end diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb index b3c1fce7..a44aed2f 100644 --- a/app/views/crm/customers/index.html.erb +++ b/app/views/crm/customers/index.html.erb @@ -47,11 +47,15 @@ <% @i = 0 %> <% @crm_customers.each do |crm_customer| %> - <% if crm_customer.customer_id != "CUS-00001" && crm_customer.customer_id != "CUS-000000000" %> + - <%= @i += 1 %> + + <% if crm_customer.customer_id != "CUS-000000000001" && crm_customer.customer_id != "CUS-000000000002" %> + <%= @i += 1 %> + <% end %> + <%= crm_customer.name %> <%= crm_customer.card_no rescue '-' %> <%= crm_customer.contact_no %> @@ -59,7 +63,7 @@ <%= link_to 'Show', crm_customer_path(crm_customer) %> - <% end %> + <% end %> diff --git a/app/views/crm/customers/show.html.erb b/app/views/crm/customers/show.html.erb index 5d36f5c3..21a05d9c 100644 --- a/app/views/crm/customers/show.html.erb +++ b/app/views/crm/customers/show.html.erb @@ -32,6 +32,7 @@ NRC/Passport No Address DOB + Membership Type @@ -45,8 +46,16 @@ <%= @customer.nrc_no %> <%= @customer.address%> <%= @customer.date_of_birth %> + <% if @customer.membership_type.to_f > 0%> + <%lookup= Lookup.find_by_value(@customer.membership_type) %> + <%= lookup.name %> + + <%else%> + - + <%end%> + - + @@ -55,21 +64,19 @@
- <% - if @response["data"].present? %> + - <% if @response["status"] == true %> - - <% end %> + + + - <% end %> - + @@ -82,7 +89,7 @@ - + diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb index 0f387dad..571de1a2 100644 --- a/app/views/oqs/home/index.html.erb +++ b/app/views/oqs/home/index.html.erb @@ -22,7 +22,10 @@ <%= qsi[:station_name] %> > <%= qsi[:item_count] %> - + + <% if qsi[:is_ap] %> + (ap) + <% end %> <% end %> @@ -34,8 +37,7 @@
<% - @queue_completed_item.each do |qid| - if qid.price != 0 + @queue_completed_item.each do |qid| %>
@@ -70,8 +72,7 @@
- <% - end + <% end %>
@@ -89,7 +90,7 @@ <% @queue_items_details.each do |qid| if qid.price != 0 - if qid.station_name == qsi[:station_name] + if qid.zone_id == qsi[:zone_id] && qid.station_name == qsi[:station_name] %>
diff --git a/app/views/origami/cash_ins/new.html.erb b/app/views/origami/cash_ins/new.html.erb index 1c513895..efc8a22b 100644 --- a/app/views/origami/cash_ins/new.html.erb +++ b/app/views/origami/cash_ins/new.html.erb @@ -24,26 +24,21 @@
+ + + + + + + +
Membership TransactionsCurrent Balance : <%= @response["data"].last["balance"]%>Current Balance : <%= @balance%>
Date Redeem Rebate BalanceFrom Account Status Receipt No
<%= transaction["redeem"]%> <%= transaction["rebate"] %> <%= transaction["balance"] %><%= transaction["account_status"] %> <%= transaction["status"] %> <%= transaction["receipt_no"] %>
Reference Number +
Amount +
-
-
-
Reference Number
-
-
-
-
-
-
Amount
-
-
-

-
-
-
-
- + +
@@ -76,4 +71,7 @@ $('#cash_in').on('click',function(){ } }); }) +$('#back').on('click',function(){ + window.location.href = '/origami'; +}) diff --git a/app/views/origami/cash_outs/new.html.erb b/app/views/origami/cash_outs/new.html.erb index 17f9bdf8..9d628f24 100644 --- a/app/views/origami/cash_outs/new.html.erb +++ b/app/views/origami/cash_outs/new.html.erb @@ -1,6 +1,8 @@ -

Payment Debit

+ +
-
+
+

Payment Debit

Payment Reference @@ -20,13 +22,12 @@
+
+ + +
+
-
-

-
-
-
-
diff --git a/app/views/origami/customers/index.html.erb b/app/views/origami/customers/index.html.erb index 489487ab..72e402e8 100644 --- a/app/views/origami/customers/index.html.erb +++ b/app/views/origami/customers/index.html.erb @@ -41,11 +41,15 @@ <% if @crm_customers.count > 0 %> <% @i = 0 %> <% @crm_customers.each do |crm_customer| %> - <% if crm_customer.customer_id != "CUS-00000" && crm_customer.customer_id != "CUS-00000000" %> + - <%= @i += 1 %> + + <% if crm_customer.customer_id != "CUS-000000000001" && crm_customer.customer_id != "CUS-000000000002" %> + <%= @i += 1 %> + <% end %> + <%= crm_customer.name %> <%= crm_customer.company rescue '-' %> <%= crm_customer.contact_no %> @@ -53,7 +57,6 @@ - <% end %> <% end %> <%else%>

There are no record for your search

@@ -155,10 +158,10 @@ <%= f.input :address, :class => "form-control col-md-6 address" %> - +
<%= f.text_field :date_of_birth,:value=>"01-01-1990",:class=>"form-control datepicker"%> diff --git a/app/views/origami/discounts/index.html.erb b/app/views/origami/discounts/index.html.erb index fbbff065..faa48c05 100644 --- a/app/views/origami/discounts/index.html.erb +++ b/app/views/origami/discounts/index.html.erb @@ -174,7 +174,7 @@
- +
@@ -187,7 +187,7 @@
- +
diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index f89560f3..baad1a0a 100644 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -163,18 +163,18 @@ <% - count = 0 sub_total = 0 if @status_sale == "sale" @sale_array[0].sale_items.each do |sale_item| - count += 1 - sub_total = sub_total + sale_item.price + + sub_total = sub_total + sale_item.price %> <% # Can't check for discount unless sale_item.price == 0 + count += 1 %> <%= count %> @@ -301,7 +301,7 @@ <% if @status_order == 'order' && @status_sale != 'sale' %> - + @@ -311,7 +311,7 @@ <% else %> - + @@ -439,7 +439,7 @@ $("#first_bill").on('click', function(){ $.ajax({ type: "GET", url: ajax_url, - success:function(result){ + success:function(result){ location.reload(); } }); @@ -447,7 +447,16 @@ $("#first_bill").on('click', function(){ $('#pay').on('click',function() { var sale_id = $('#sale_id').val(); - window.location.href = '/origami/sale/'+ sale_id + "/payment"; + var url = '/origami/sale/'+ sale_id + "/rounding_adj" ; + + $.ajax({ + type: "POST", + url: '/origami/sale/'+ sale_id + "/rounding_adj", + success:function(result){ + window.location.href = '/origami/sale/'+ sale_id + "/payment"; + } + }); + }); // Bill Request diff --git a/app/views/origami/orders/show.html.erb b/app/views/origami/orders/show.html.erb index 3a34c1df..e0448009 100644 --- a/app/views/origami/orders/show.html.erb +++ b/app/views/origami/orders/show.html.erb @@ -215,7 +215,16 @@ $(document).ready(function(){ }); $('#pay').on('click',function() { var sale_id = $('#sale_id').val(); - window.location.href = '/origami/sale/'+ sale_id + "/payment"; + var url = '/origami/sale/'+ sale_id + "/rounding_adj" ; + alert(url) + $.ajax({ + type: "POST", + url: '/origami/sale/'+ sale_id + "/rounding_adj", + success:function(result){ + window.location.href = '/origami/sale/'+ sale_id + "/payment"; + } + }); + }); $('#back').on('click',function(){ window.location.href = '/origami/'; diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb index 4004e9cf..86738c22 100644 --- a/app/views/origami/payments/show.html.erb +++ b/app/views/origami/payments/show.html.erb @@ -70,14 +70,20 @@ (Discount) (<%=@sale_data.total_discount rescue 0%>) + Tax <%=@sale_data.total_tax rescue 0%> + + Rounding Adj: + <%=@sale_data.rounding_adjustment rescue 0%> + + Grand Total <%=@sale_data.grand_total rescue 0%> <%if @balance > 0%> - + <%= @accountable_type %> <%=@balance%> @@ -188,10 +194,10 @@
0.0
<% end %> -
+
-
Balance
-
<%= @sale_data.grand_total %>
+
Balance
+
<%= @sale_data.grand_total %>

@@ -328,6 +334,7 @@ $( document ).ready(function() { }); $('#pay').click(function() { + $('#pay').text("Processing, Please wait!") if($('#balance').text() > 0){ alert(" Insufficient Amount!") }else{ @@ -345,6 +352,7 @@ $( document ).ready(function() { if($('#balance').text() < 0){ alert("Changed amount " + $('#balance').text() * (-1) ) }else{ + $('#pay').text("Pay") alert("Thank you") } diff --git a/app/views/origami/room_invoices/index.html.erb b/app/views/origami/room_invoices/index.html.erb index 011aff11..71b9bee7 100644 --- a/app/views/origami/room_invoices/index.html.erb +++ b/app/views/origami/room_invoices/index.html.erb @@ -46,6 +46,10 @@ Tax: <%= @sale.total_tax rescue 0%> + + + Rounding Adj: + <%= @sale.rounding_adjustment rescue 0%> Grand Total: diff --git a/app/views/origami/room_invoices/show.html.erb b/app/views/origami/room_invoices/show.html.erb index 7ea799ae..4b507526 100644 --- a/app/views/origami/room_invoices/show.html.erb +++ b/app/views/origami/room_invoices/show.html.erb @@ -112,6 +112,10 @@ Tax: <%= @sale.total_tax rescue 0%> + + + Rounding Adj: + <%= @sale.rounding_adjustment rescue 0%> Grand Total: @@ -139,7 +143,17 @@ $(document).ready(function(){ }); $('#pay').on('click',function() { - window.location.href = '/origami/sale/<%= @sale.id %>/payment'; + var sale_id = '<%= @sale.id %>'; + var url = '/origami/sale/'+ sale_id + "/rounding_adj" ; + alert(url) + $.ajax({ + type: "POST", + url: '/origami/sale/'+ sale_id + "/rounding_adj", + success:function(result){ + window.location.href = '/origami/sale/'+ sale_id + "/payment"; + } + }); + }); $('#back').on('click',function(){ window.location.href = '/origami/table/<%= @room.id %>'; diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb index 36ae77c5..1329bc8d 100644 --- a/app/views/origami/rooms/show.html.erb +++ b/app/views/origami/rooms/show.html.erb @@ -203,6 +203,10 @@ Tax: <%= @obj.total_tax rescue 0%> + + + Rounding Adj: + <%= @obj.rounding_adjustment rescue 0%> Grand Total: @@ -272,7 +276,7 @@ <% if @status_order == 'order' && @status_sale != 'sale' %> - + @@ -281,7 +285,7 @@ <% else %> - + @@ -424,12 +428,19 @@ $("#first_bill").on('click', function(){ }); }); - $('#pay').on('click',function() { var sale_id = $('#sale_id').val(); - window.location.href = '/origami/sale/'+ sale_id + "/payment"; + var url = '/origami/sale/'+ sale_id + "/rounding_adj" ; + alert(url) + $.ajax({ + type: "POST", + url: '/origami/sale/'+ sale_id + "/rounding_adj", + success:function(result){ + window.location.href = '/origami/sale/'+ sale_id + "/payment"; + } + }); + }); - // Bill Request $('#request_bills').click(function() { var order_id = $('#save_order_id').attr('data-order'); diff --git a/app/views/origami/sale_edit/edit.html.erb b/app/views/origami/sale_edit/edit.html.erb index 76bbeb08..13812e59 100644 --- a/app/views/origami/sale_edit/edit.html.erb +++ b/app/views/origami/sale_edit/edit.html.erb @@ -49,18 +49,18 @@ <%= count %> <%= sale_item.product_name %> - <% if sale_item.remark != 'void' %> - - + <% if sale_item.remark != 'void' && sale_item.remark != 'edit' %> + + - <% elsif sale_item.qty.to_i < 0 %> + <% elsif sale_item.qty.to_i < 0 || sale_item.remark == 'edit' %> - + <% else %> @@ -101,11 +101,14 @@ $(document).ready(function(){ $(".update").on('click',function() { var sale_item_id = $(this).attr('data-id'); - var ajax_url = "/origami/item_void"; + var qty = $('#'+sale_item_id + "_qty").val(); + var price = $('#'+ sale_item_id + "_price").val(); + console.log(qty + "|" + price) + var ajax_url = "/origami/item_edit"; $.ajax({ type: "POST", url: ajax_url, - data: 'order_id='+ order_id, + data: 'sale_item_id='+ sale_item_id + "&update_qty="+qty + "&update_price="+ price, success:function(result){ location.reload(); } diff --git a/app/views/origami/sales/show.html.erb b/app/views/origami/sales/show.html.erb index d768240c..86a82053 100644 --- a/app/views/origami/sales/show.html.erb +++ b/app/views/origami/sales/show.html.erb @@ -171,6 +171,10 @@ Tax: <%= @sale.total_tax rescue 0%> + + Rounding Adj: + <%= @sale.rounding_adjustment rescue 0%> + Grand Total: <%= @sale.grand_total rescue 0%> diff --git a/app/views/origami/shifts/new.html.erb b/app/views/origami/shifts/new.html.erb index 2903a8ae..8d3ca457 100644 --- a/app/views/origami/shifts/new.html.erb +++ b/app/views/origami/shifts/new.html.erb @@ -1,16 +1,23 @@

Open Cashier


-
-
-
-
+
+ + + + <% @float.each do |float| %> - + <% end %> @@ -18,12 +25,7 @@
Cashier Terminal + +
<%= float.name %>
-
-
-
- -
-
+
@@ -49,9 +51,9 @@
00
-
Del
-
Clr
-
Ent
+
Clr
+
Calculate
+
Open Cashier
@@ -60,19 +62,58 @@
\ No newline at end of file diff --git a/app/views/transactions/sales/show.html.erb b/app/views/transactions/sales/show.html.erb index b62289b1..4dd15755 100644 --- a/app/views/transactions/sales/show.html.erb +++ b/app/views/transactions/sales/show.html.erb @@ -39,6 +39,9 @@ + @@ -235,23 +238,31 @@ +
+
+
+ + + + + + + + + + + + + + +
StatusAction AtApproved ByRemark
+
+
+ - diff --git a/config/routes.rb b/config/routes.rb index 35669703..19c35e2b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -80,6 +80,7 @@ Rails.application.routes.draw do post 'moving' => "movetable#moving" get "/table/:table_id/sale/:sale_id/edit" => "sale_edit#edit" post 'item_void' => "sale_edit#item_void" + post 'item_edit' => "sale_edit#item_edit" post 'item_void_cancel' => "sale_edit#item_void_cancel" post 'cancel_all_void' => 'sale_edit#cancel_all_void' post 'apply_void' => 'sale_edit#apply_void' @@ -109,7 +110,7 @@ Rails.application.routes.draw do #---------Shift ---------------# resources :shifts, only: [:index, :new, :create, :edit] post 'close_shift' => 'shifts#update_shift' - get 'shift/close' => 'shifts#show' + get 'shift/close' => 'shifts#show' #shift - index (open/close shift landing page) #shift - show (sales summary display) #shift - new (open shift) @@ -121,6 +122,7 @@ Rails.application.routes.draw do #payment - Outing payments - Cash only [ *Misc expeness tracking] #--------- Payment ------------# + post 'sale/:sale_id/rounding_adj' => 'payments#rounding_adj',:as => "calculate_rouding_adjs" get 'sale/:sale_id/first_bill' => 'payments#first_bill', :defaults => { :format => 'json' } get 'sale/:sale_id/payment' => 'payments#show' diff --git a/config/schedule.rb b/config/schedule.rb new file mode 100644 index 00000000..b21a46e3 --- /dev/null +++ b/config/schedule.rb @@ -0,0 +1,7 @@ +set :environment, "development" +env :PATH, ENV['PATH'] +set :output, 'log/whenever.log' + +every 30.minutes do + runner "Customer.update_membership" +end \ No newline at end of file diff --git a/db/migrate/20170403160742_create_sales.rb b/db/migrate/20170701101420_create_sales.rb similarity index 97% rename from db/migrate/20170403160742_create_sales.rb rename to db/migrate/20170701101420_create_sales.rb index 9deeb9b8..fc261826 100644 --- a/db/migrate/20170403160742_create_sales.rb +++ b/db/migrate/20170701101420_create_sales.rb @@ -21,6 +21,7 @@ class CreateSales < ActiveRecord::Migration[5.1] t.decimal :amount_received, :precision => 10, :scale => 2, :null => false, :default => 0.00 t.decimal :amount_changed, :precision => 10, :scale => 2, :null => false, :default => 0.00 t.integer :shift_sale_id + t.decimal :old_grand_total t.timestamps end end diff --git a/db/seeds.rb b/db/seeds.rb index b71418a9..3bff75a0 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -159,6 +159,7 @@ admin_employee = Employee.create({name: "Cashier", role: "cashier", password: "3 order_station1=PrintSetting.create({name: "OrderItemPdf", unique_code: "OrderItemPdf", printer_name: "Cashier", precision: "0", delimiter: "0", heading_space: "5"}) order_station2=PrintSetting.create({name: "Order Summary", unique_code: "OrderSummaryPdf", printer_name: "Cashier", precision: "0", delimiter: "0", heading_space: "5"}) request_bill_printer=PrintSetting.create({name: "Receipt Bill", unique_code: "ReceiptBillPdf", printer_name: "Cashier", precision: "0", delimiter: "0", heading_space: "5"}) +close_cashier_printer=PrintSetting.create({name: "Close Cashier", unique_code: "CloseCashierPdf", printer_name: "Cashier", precision: "0", delimiter: "0", heading_space: "5"}) crm_order_printer=PrintSetting.create({name: "CRM Order", unique_code: "CrmOrderPdf", printer_name: "Cashier", precision: "0", delimiter: "0", heading_space: "5"}) queue_no_printer=PrintSetting.create({name: "Queue No", unique_code: "QueueNoPdf", printer_name: "Cashier", precision: "0", delimiter: "0", heading_space: "5"}) diff --git a/lib/tasks/menu_import.rake b/lib/tasks/menu_import.rake index f229df94..11f4fad2 100644 --- a/lib/tasks/menu_import.rake +++ b/lib/tasks/menu_import.rake @@ -67,7 +67,7 @@ menu_category3 = MenuCategory.create({menu: menu, code:"C003", name: "Beef & Mut menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0152", menu_item: menu_category1_menu_item7, price:8000.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II0151", menu_item: menu_category1_menu_item7, price:16000.00, is_on_promotion:false}]) # Sliced Beef (Thin) - menu_category1_menu_item8 = SimpleMenuItem.create({item_code:"01009", name: "Sliced Beef (Thin)", alt_name: "Twin Pot",menu_category: menu_category3 , min_selectable_item: 1, max_selectable_item:1, account: food }) + menu_category1_menu_item8 = SimpleMenuItem.create({item_code:"01009", name: "Sliced Beef ( Thin )", alt_name: "Twin Pot",menu_category: menu_category3 , min_selectable_item: 1, max_selectable_item:1, account: food }) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0162", menu_item: menu_category1_menu_item8, price:6000.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II0161", menu_item: menu_category1_menu_item8, price:12000.00, is_on_promotion:false}]) # Tender Sliced Beef @@ -87,15 +87,15 @@ menu_category3 = MenuCategory.create({menu: menu, code:"C003", name: "Beef & Mut menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0202", menu_item: menu_category1_menu_item12, price:7000.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II0201", menu_item: menu_category1_menu_item12, price:14000.00, is_on_promotion:false}]) # Sliced Beef ( Think ) - menu_category1_menu_item13 = SimpleMenuItem.create({item_code:"01014", name: "Sliced Beef ( Think )", alt_name: "Twin Pot",menu_category: menu_category3 , min_selectable_item: 1, max_selectable_item:1, account: food }) + menu_category1_menu_item13 = SimpleMenuItem.create({item_code:"01014", name: "Sliced Beef ( Thick )", alt_name: "Twin Pot",menu_category: menu_category3 , min_selectable_item: 1, max_selectable_item:1, account: food }) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II1432", menu_item: menu_category1_menu_item13, price:7000.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II1431", menu_item: menu_category1_menu_item13, price:14000.00, is_on_promotion:false}]) # Pork menu_category4 = MenuCategory.create({menu: menu, code:"C004", name: "Pork", alt_name: "Pork", order_by: 4,created_by: "SYSTEM DEFAULT"}) # Sliced Tenderloin Pork - menu_category1_menu_item13 = SimpleMenuItem.create({item_code:"01014", name: "Sliced Tenderloin Pork", alt_name: "Twin Pot",menu_category: menu_category4 , min_selectable_item: 1, max_selectable_item:1, account: food }) - menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0212", menu_item: menu_category1_menu_item13, price:4000.00, is_on_promotion:false}]) - menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II0211", menu_item: menu_category1_menu_item13, price:8000.00, is_on_promotion:false}]) + menu_category1_menu_item137 = SimpleMenuItem.create({item_code:"01014", name: "Sliced Tenderloin Pork", alt_name: "Twin Pot",menu_category: menu_category4 , min_selectable_item: 1, max_selectable_item:1, account: food }) + menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0212", menu_item: menu_category1_menu_item137, price:4000.00, is_on_promotion:false}]) + menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II0211", menu_item: menu_category1_menu_item137, price:8000.00, is_on_promotion:false}]) # Sliced Pork Belly menu_category1_menu_item14 = SimpleMenuItem.create({item_code:"01015", name: "Sliced Pork Belly", alt_name: "Twin Pot",menu_category: menu_category4 , min_selectable_item: 1, max_selectable_item:1, account: food }) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0222", menu_item: menu_category1_menu_item14, price:4000.00, is_on_promotion:false}]) @@ -207,7 +207,7 @@ menu_category7 = MenuCategory.create({menu: menu, code:"C007", name: "Specialty # Seafood menu_category8 = MenuCategory.create({menu: menu, code:"C008", name: "Seafood", alt_name: "Seafood", order_by: 8,created_by: "SYSTEM DEFAULT"}) # Promfret - menu_category1_menu_item41 = SimpleMenuItem.create({item_code:"01042", name: "Promfret", alt_name: "Twin Pot",menu_category: menu_category7 , min_selectable_item: 1, max_selectable_item:1, account: food }) + menu_category1_menu_item41 = SimpleMenuItem.create({item_code:"01042", name: "Pomfret", alt_name: "Twin Pot",menu_category: menu_category7 , min_selectable_item: 1, max_selectable_item:1, account: food }) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II0492", menu_item: menu_category1_menu_item41, price:30.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II0491", menu_item: menu_category1_menu_item41, price:30.00, is_on_promotion:false}]) # Garoupa @@ -280,13 +280,13 @@ menu_category8 = MenuCategory.create({menu: menu, code:"C008", name: "Seafood", menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",item_instance_code:"II0661", menu_item: menu_category1_menu_item59, price:10.00, is_on_promotion:false}]) # Fresh Flower Crabs menu_category1_menu_item60 = SimpleMenuItem.create({item_code:"01061", name: "Fresh Flower Crabs", alt_name: "Twin Pot",menu_category: menu_category7 , min_selectable_item: 1, max_selectable_item:1, account: food }) - menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",item_instance_code:"II0671", menu_item: menu_category1_menu_item60, price:10.00, is_on_promotion:false}]) + menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",item_instance_code:"II0671", menu_item: menu_category1_menu_item60, price:60.00, is_on_promotion:false}]) # Live Lobster menu_category1_menu_item61 = SimpleMenuItem.create({item_code:"01062", name: "Live Lobster", alt_name: "Twin Pot",menu_category: menu_category7 , min_selectable_item: 1, max_selectable_item:1, account: food }) - menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",item_instance_code:"II0681", menu_item: menu_category1_menu_item61, price:10.00, is_on_promotion:false}]) + menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",item_instance_code:"II0681", menu_item: menu_category1_menu_item61, price:150.00, is_on_promotion:false}]) # Live Mantis menu_category1_menu_item62 = SimpleMenuItem.create({item_code:"01063", name: "Live Mantis Prawn", alt_name: "Twin Pot",menu_category: menu_category7 , min_selectable_item: 1, max_selectable_item:1, account: food }) - menu_item0_instance = MenuItemInstance.create([{item_instance_name:" ",item_instance_code:"II0691", menu_item: menu_category1_menu_item62, price:10.00, is_on_promotion:false}]) + menu_item0_instance = MenuItemInstance.create([{item_instance_name:" ",item_instance_code:"II0691", menu_item: menu_category1_menu_item62, price:150.00, is_on_promotion:false}]) # Dumpling menu_category9 = MenuCategory.create({menu: menu, code:"C009", name: "Dumpling", alt_name: "Chicken", order_by: 9, created_by: "SYSTEM DEFAULT"}) # Pork and Chives Dumpling @@ -475,7 +475,7 @@ menu_category14 = MenuCategory.create({menu: menu, code:"C0013", name: "Others", menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II1142", menu_item: menu_category1_menu_item106, price:1500.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II1141", menu_item: menu_category1_menu_item106, price:3000.00, is_on_promotion:false}]) # Sliced Kelp - menu_category1_menu_item107 = SimpleMenuItem.create({item_code:"01108", name: "Sliced Kelp", alt_name: "Twin Pot",menu_category: menu_category14 , min_selectable_item: 1, max_selectable_item:1, account: food }) + menu_category1_menu_item107 = SimpleMenuItem.create({item_code:"01108", name: "Shredded Kelp", alt_name: "Twin Pot",menu_category: menu_category14 , min_selectable_item: 1, max_selectable_item:1, account: food }) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Half Potion",item_instance_code:"II1152", menu_item: menu_category1_menu_item107, price:1800.00, is_on_promotion:false}]) menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Full Potion",item_instance_code:"II1151", menu_item: menu_category1_menu_item107, price:3600.00, is_on_promotion:false}]) # Crystal Vermicelli