Pull from master

This commit is contained in:
San Wai Lwin
2018-07-05 15:42:58 +06:30
parent ebaf4ad418
commit e5eb9b90ad
11 changed files with 78 additions and 104 deletions

View File

@@ -20,6 +20,7 @@ class HomeController < ApplicationController
def index def index
# @employees = Employee.all_emp_except_waiter.order("name asc") # @employees = Employee.all_emp_except_waiter.order("name asc")
@employees = Employee.all.where("is_active = true").order("name asc") @employees = Employee.all.where("is_active = true").order("name asc")
@roles = Lookup.collection_of("employee_roles")
@login_form = LoginForm.new() @login_form = LoginForm.new()
render "layouts/login_dashboard", layout: false render "layouts/login_dashboard", layout: false
end end

View File

@@ -8,7 +8,7 @@ class Origami::HomeController < BaseOrigamiController
@rooms = Room.unscoped.all.active.order('status desc') @rooms = Room.unscoped.all.active.order('status desc')
@complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d')) @complete = Sale.where("DATE_FORMAT(created_at,'%Y-%m-%d') = ? and sale_status != 'new'",DateTime.now.strftime('%Y-%m-%d'))
@orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc') @orders = Order.includes("sale_orders").where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
@shop = Shop.first @shop = shop_detail
# @shift = ShiftSale.current_open_shift(current_user.id) # @shift = ShiftSale.current_open_shift(current_user.id)
end end
@@ -26,7 +26,7 @@ class Origami::HomeController < BaseOrigamiController
@status_sale = "" @status_sale = ""
@sale_array = Array.new @sale_array = Array.new
@shop = Shop.first @shop = shop_detail
@membership = MembershipSetting::MembershipSetting @membership = MembershipSetting::MembershipSetting
@payment_methods = PaymentMethodSetting.all @payment_methods = PaymentMethodSetting.all
@dining_booking = @dining.bookings.active.where("DATE_FORMAT(created_at,'%Y-%m-%d') = '#{DateTime.now.strftime('%Y-%m-%d')}' OR DATE_FORMAT(created_at,'%Y-%m-%d') = '#{Date.today.prev_day}' ") @dining_booking = @dining.bookings.active.where("DATE_FORMAT(created_at,'%Y-%m-%d') = '#{DateTime.now.strftime('%Y-%m-%d')}' OR DATE_FORMAT(created_at,'%Y-%m-%d') = '#{Date.today.prev_day}' ")

View File

@@ -44,11 +44,11 @@ class Origami::PaymentsController < BaseOrigamiController
end end
#shop detail #shop detail
shop_details = Shop.first ## shop_detail = Shop.first
# customer= Customer.where('customer_id=' +.customer_id) # customer= Customer.where('customer_id=' +.customer_id)
customer = Customer.find(sale_data.customer_id) customer = Customer.find(sale_data.customer_id)
# rounding adjustment # rounding adjustment
if shop_details.is_rounding_adj if shop_detail.is_rounding_adj
a = sale_data.grand_total % 25 # Modulus a = sale_data.grand_total % 25 # Modulus
b = sale_data.grand_total / 25 # Division b = sale_data.grand_total / 25 # Division
#not calculate rounding if modulus is 0 and division is even #not calculate rounding if modulus is 0 and division is even
@@ -79,7 +79,7 @@ class Origami::PaymentsController < BaseOrigamiController
printer = Printer::ReceiptPrinter.new(print_settings) printer = Printer::ReceiptPrinter.new(print_settings)
filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_details, "Frt",current_balance,nil) filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil)
result = { result = {
:filepath => filename, :filepath => filename,
@@ -102,9 +102,9 @@ class Origami::PaymentsController < BaseOrigamiController
if(Sale.exists?(sale_id)) if(Sale.exists?(sale_id))
saleObj = Sale.find(sale_id) saleObj = Sale.find(sale_id)
sale_items = SaleItem.get_all_sale_items(sale_id) sale_items = SaleItem.get_all_sale_items(sale_id)
shop_details = Shop.first #shop_detail = Shop.first
# rounding adjustment # rounding adjustment
if shop_details.is_rounding_adj if shop_detail.is_rounding_adj
a = saleObj.grand_total % 25 # Modulus a = saleObj.grand_total % 25 # Modulus
b = saleObj.grand_total / 25 # Division b = saleObj.grand_total / 25 # Division
#not calculate rounding if modulus is 0 and division is even #not calculate rounding if modulus is 0 and division is even
@@ -123,16 +123,10 @@ class Origami::PaymentsController < BaseOrigamiController
rebate_amount = nil rebate_amount = nil
# For Cashier by Zone # For Cashier by Zone
bookings = Booking.where("sale_id='#{sale_id}'") # bookings = Booking.where("sale_id='#{sale_id}'")
# if bookings.count > 1 bookings = Booking.find_by_sale_id(sale_id)
# # for Multiple Booking if bookings.dining_facility_id.to_i > 0
# table = DiningFacility.find(bookings[0].dining_facility_id) table = DiningFacility.find(bookings.dining_facility_id)
# else
# table = DiningFacility.find(bookings[0].dining_facility_id)
# end
if bookings[0].dining_facility_id.to_i > 0
table = DiningFacility.find(bookings[0].dining_facility_id)
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id)
@@ -216,7 +210,7 @@ class Origami::PaymentsController < BaseOrigamiController
discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items)
printer = Printer::ReceiptPrinter.new(print_settings) printer = Printer::ReceiptPrinter.new(print_settings)
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Paid",current_balance,card_data) filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Paid",current_balance,card_data)
render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name})
@@ -255,7 +249,7 @@ class Origami::PaymentsController < BaseOrigamiController
if !@lookup_pdf.nil? if !@lookup_pdf.nil?
@pdf_view = @lookup_pdf.value @pdf_view = @lookup_pdf.value
end end
@shop = Shop.first #show shop info @shop = shop_detail #show shop info
@customer_lists = Customer.where("customer_id = 'CUS-000000000001' or customer_id = 'CUS-000000000002'") @customer_lists = Customer.where("customer_id = 'CUS-000000000001' or customer_id = 'CUS-000000000002'")
@@ -435,7 +429,7 @@ class Origami::PaymentsController < BaseOrigamiController
customer= Customer.find(saleObj.customer_id) customer= Customer.find(saleObj.customer_id)
#shop detail #shop detail
shop_details = Shop.first #shop_detail = Shop.first
# get member information # get member information
rebate = MembershipSetting.find_by_rebate(1) rebate = MembershipSetting.find_by_rebate(1)
if customer.membership_id != nil && rebate if customer.membership_id != nil && rebate
@@ -464,7 +458,7 @@ class Origami::PaymentsController < BaseOrigamiController
discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items)
printer = Printer::ReceiptPrinter.new(print_settings) printer = Printer::ReceiptPrinter.new(print_settings)
filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Re-print",current_balance,card_data) filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "Re-print",current_balance,card_data)
result = { result = {
:status => true, :status => true,
@@ -539,7 +533,7 @@ class Origami::PaymentsController < BaseOrigamiController
customer= Customer.find(saleObj.customer_id) customer= Customer.find(saleObj.customer_id)
#shop detail #shop detail
shop_details = Shop.first #shop_detail = Shop.first
# get printer info # get printer info
print_settings=PrintSetting.find_by_unique_code(unique_code) print_settings=PrintSetting.find_by_unique_code(unique_code)
@@ -549,7 +543,7 @@ class Origami::PaymentsController < BaseOrigamiController
printer = Printer::ReceiptPrinter.new(print_settings) printer = Printer::ReceiptPrinter.new(print_settings)
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "FOC",nil,nil) filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_detail, "FOC",nil,nil)
result = { result = {
:status => true, :status => true,
:filepath => filename, :filepath => filename,
@@ -579,7 +573,7 @@ class Origami::PaymentsController < BaseOrigamiController
def rounding_adj def rounding_adj
saleObj = Sale.find(params[:sale_id]) saleObj = Sale.find(params[:sale_id])
@shop = Shop.find_by_id(1) @shop = shop_detail
if @shop.is_rounding_adj if @shop.is_rounding_adj
a = saleObj.grand_total % 25 # Modulus a = saleObj.grand_total % 25 # Modulus

View File

@@ -53,12 +53,15 @@ class Origami::ShiftsController < BaseOrigamiController
cashier_terminal.save cashier_terminal.save
#add shift_sale_id to card_settle_trans #add shift_sale_id to card_settle_trans
card_settle_trans = CardSettleTran.select('id').where(['shift_sale_id IS NULL and status IS NOT NULL']) bank_integration = Lookup.find_by_lookup_type('bank_integration')
if !bank_integration.nil?
card_settle_trans = CardSettleTran.select('id').where(['shift_sale_id IS NULL and status IS NOT NULL'])
card_settle_trans.each do |data| card_settle_trans.each do |data|
card_sett_trans = CardSettleTran.find(data.id) card_sett_trans = CardSettleTran.find(data.id)
card_sett_trans.shift_sale_id = @shift.id card_sett_trans.shift_sale_id = @shift.id
card_sett_trans.save() card_sett_trans.save()
end
end end
if ENV["SERVER_MODE"] != "cloud" #no print in cloud server if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
@@ -77,7 +80,7 @@ class Origami::ShiftsController < BaseOrigamiController
end end
end end
end end
shop_details = Shop.find(1) shop_details = shop_detail
#get tax #get tax
shift_obj = ShiftSale.where('id =?',@shift.id) shift_obj = ShiftSale.where('id =?',@shift.id)
@sale_taxes = Sale.get_separate_tax(shift_obj,from=nil,to=nil,type='') @sale_taxes = Sale.get_separate_tax(shift_obj,from=nil,to=nil,type='')

View File

@@ -8,14 +8,16 @@ class AssignedOrderItem < ApplicationRecord
belongs_to :order_queue_station belongs_to :order_queue_station
def self.assigned_order_item (order, item_code, instance_code, order_queue_station ) def self.assigned_order_item (order, item_code, instance_code, order_queue_station )
assigned_order_item = AssignedOrderItem.new() AssignedOrderItem.transaction do
assigned_order_item.order = order assigned_order_item = AssignedOrderItem.new()
assigned_order_item.item_code = item_code assigned_order_item.order = order
assigned_order_item.instance_code = instance_code assigned_order_item.item_code = item_code
assigned_order_item.order_queue_station = order_queue_station assigned_order_item.instance_code = instance_code
assigned_order_item.print_status = false assigned_order_item.order_queue_station = order_queue_station
assigned_order_item.delivery_status = false assigned_order_item.print_status = false
assigned_order_item.save assigned_order_item.delivery_status = false
assigned_order_item.save!
end
end end
def self.assigned_order_item_by_job(order_id) def self.assigned_order_item_by_job(order_id)

View File

@@ -190,16 +190,18 @@ class Order < ApplicationRecord
def update_items_status_to_billed(items) def update_items_status_to_billed(items)
if (items.nil?) if (items.nil?)
OrderItem.where({ order_items_id: '#{self.order_items.pluck(:order_items_id)}'}).update_all(order_item_status: "billed")
##Update the order status to ensure that reflect the stage ##Update the order status to ensure that reflect the stage
self.order_items.each do |item| # self.order_items.each do |item|
item.order_item_status = "billed" # item.order_item_status = "billed"
item.save # item.save
end # end
else else
items.each do |item| OrderItem.where({ order_items_id: '#{items.pluck(:order_items_id)}'}).update_all(order_item_status: "billed")
item.order_item_status = "billed" # items.each do |item|
item.save # item.order_item_status = "billed"
end # item.save
# end
end end
end end

View File

@@ -412,13 +412,15 @@ class Sale < ApplicationRecord
# Tax Re-Calculte # Tax Re-Calculte
def compute_tax(sale, total_taxable, total_discount = 0, order_source = nil, tax_type=nil) def compute_tax(sale, total_taxable, total_discount = 0, order_source = nil, tax_type=nil)
shop = Shop.first(); shop = Shop.first
#if tax is not apply create new record #if tax is not apply create new record
SaleTax.where("sale_id='#{sale.sale_id}'").find_each do |existing_tax| # SaleTax.where("sale_id='#{sale.sale_id}'").find_each do |existing_tax|
#delete existing and create new # #delete existing and create new
existing_tax.delete # existing_tax.delete
end # end
taxes = SaleTax.where("sale_id='#{sale.sale_id}'").pluck(:sale_tax_id)
SaleTax.where("sale_tax_id IN (?)", taxes).destroy_all
total_tax_amount = 0 total_tax_amount = 0
tax_incl_exec = "exclusive" tax_incl_exec = "exclusive"
@@ -495,7 +497,7 @@ class Sale < ApplicationRecord
# Tax Calculate # Tax Calculate
def apply_tax(total_taxable, order_source = nil) def apply_tax(total_taxable, order_source = nil)
shop = Shop.first(); shop = Shop.first
#if tax is not apply create new record #if tax is not apply create new record
SaleTax.where("sale_id='#{self.sale_id}'").find_each do |existing_tax| SaleTax.where("sale_id='#{self.sale_id}'").find_each do |existing_tax|

View File

@@ -8,10 +8,12 @@ class SaleOrder < ApplicationRecord
belongs_to :order belongs_to :order
def create_sale_order(sale, order) def create_sale_order(sale, order)
sale_order = SaleOrder.new SaleOrder.transaction do
sale_order.sale_id = sale sale_order = SaleOrder.new
sale_order.order_id = order sale_order.sale_id = sale
sale_order.save! sale_order.order_id = order
sale_order.save!
end
end end
private private

View File

@@ -71,10 +71,12 @@ class SalePayment < ApplicationRecord
# update complete order items in oqs # update complete order items in oqs
booking = Booking.find_by_sale_id(sale_id) booking = Booking.find_by_sale_id(sale_id)
booking.booking_orders.each do |sodr| booking.booking_orders.each do |sodr|
AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi| assigned =AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").pluck(:assigned_order_item_id)
aoi.delivery_status = 1 AssignedOrderItem.where({ order_id: '#{assigned}'}).update_all(print_status: true)
aoi.save # AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi|
end # aoi.delivery_status = 1
# aoi.save
# end
end end
return true, self.save,membership_data return true, self.save,membership_data
@@ -616,8 +618,9 @@ class SalePayment < ApplicationRecord
end end
end end
if status && sale_count == 0 if status && sale_count == 0
table.status = "available" table.update_attributes(status: "available")
table.save # table.status = "available"
# table.save
end end
# type = 'payment' # type = 'payment'

View File

@@ -199,9 +199,9 @@ class ReceiptBillPdf < Prawn::Document
move_down line_move move_down line_move
sub_total = 0.0 sub_total = 0.0
total_qty = 0.0 total_qty = 0.0
show_price = Lookup.find_by_lookup_type("show_price")
sale_items.each do |item| sale_items.each do |item|
# check for item not to show # check for item not to show
show_price = Lookup.find_by_lookup_type("show_price")
if item.status != 'Discount' && item.qty > 0 if item.status != 'Discount' && item.qty > 0
if !show_price.nil? && show_price.value.to_i > 0 && item.price == 0 if !show_price.nil? && show_price.value.to_i > 0 && item.price == 0

View File

@@ -112,49 +112,14 @@
</div> </div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 p-t-20 p-l-10 p-r-10 p-b-50 bg-white"> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 p-t-20 p-l-10 p-r-10 p-b-50 bg-white">
<ul class="nav nav-tabs" role="tablist"> <ul class="nav nav-tabs" role="tablist">
<% @employees.each do |employee| %> <% @roles.each do |role| %>
<%if employee.role == "manager" %> <%if role[1] != "administrator" %>
<li class="nav-item"> <li class="nav-item">role
<a class="nav-link" data-toggle="tab" href="#manager" role="tab"><b>Manager</b></a> <a class="nav-link" data-toggle="tab" href="#<%=role[1]%>" role="tab"><b><%=role[0]%></b></a>
<% break %>
</li>
<% end %>
<% end %>
<% @employees.each do |employee| %>
<%if employee.role == "supervisor" %>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#supervisor" role="tab"><b>Supervisor</b></a>
<% break %>
</li>
<% end %>
<% end %>
<% @employees.each do |employee| %>
<%if employee.role == "cashier" %>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#cashier" role="tab"><b>Cashier</b></a>
<% break %>
</li> </li>
<% end %> <% end %>
<% end %> <% end %>
<% @employees.each do |employee| %>
<%if employee.role == "account" %>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#account" role="tab"><b>Accountant</b></a>
<% break %>
</li>
<% end %>
<% end %>
<% @employees.each do |employee| %>
<%if employee.role == "waiter" %>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#waiter" role="tab"><b>Waiter</b></a>
<% break %>
</li>
<% end %>
<% end %>
</ul> </ul>
<div class="tab-content" style="max-height:650px; overflow:auto"> <div class="tab-content" style="max-height:650px; overflow:auto">