request bill error on promotion. fix for compute sale's totals on promotion.
This commit is contained in:
@@ -8,7 +8,7 @@ class Api::VoidController < Api::ApiController
|
|||||||
|
|
||||||
if sale.discount_type == "member_discount"
|
if sale.discount_type == "member_discount"
|
||||||
sale.update_attributes(total_discount: 0)
|
sale.update_attributes(total_discount: 0)
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items,0,order_source)
|
sale.compute_by_sale_items(0, nil, order_source)
|
||||||
end
|
end
|
||||||
|
|
||||||
# update count for shift sale
|
# update count for shift sale
|
||||||
@@ -25,18 +25,17 @@ class Api::VoidController < Api::ApiController
|
|||||||
shift.save
|
shift.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sale.rounding_adjustment = 0.0
|
sale.rounding_adjustment = 0.0
|
||||||
sale.payment_status = 'void'
|
sale.payment_status = 'void'
|
||||||
sale.sale_status = 'void'
|
sale.sale_status = 'void'
|
||||||
sale.save
|
sale.save
|
||||||
|
|
||||||
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
|
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
|
||||||
sale_audit = SaleAudit.record_audit_for_edit(sale_id,current_login_employee.name, current_login_employee.name,nil,"SALEVOID" )
|
sale_audit = SaleAudit.record_audit_for_edit(sale_id,current_login_employee.name, current_login_employee.name,nil,"SALEVOID" )
|
||||||
render json: JSON.generate({:status => true, :message => "Void successful."})
|
render json: JSON.generate({:status => true, :message => "Void successful."})
|
||||||
else
|
else
|
||||||
render json: JSON.generate({:status => false, :error_message => "There is no sale for '#{params[:sale_id]}'!"})
|
render json: JSON.generate({:status => false, :error_message => "There is no sale for '#{params[:sale_id]}'!"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -48,44 +48,44 @@ class Origami::CustomersController < BaseOrigamiController
|
|||||||
def add_customer
|
def add_customer
|
||||||
@webview = false
|
@webview = false
|
||||||
if check_mobile
|
if check_mobile
|
||||||
@webview = true
|
@webview = true
|
||||||
end
|
end
|
||||||
|
|
||||||
@sale_id = params[:sale_id]
|
@sale_id = params[:sale_id]
|
||||||
@cashier_type = params[:type]
|
@cashier_type = params[:type]
|
||||||
@page = params[:dir_page]
|
@page = params[:dir_page]
|
||||||
|
|
||||||
if(@sale_id[0,3] == "SAL")
|
if(@sale_id[0,3] == "SAL")
|
||||||
@booking = Booking.find_by_sale_id(@sale_id)
|
@booking = Booking.find_by_sale_id(@sale_id)
|
||||||
if @booking.dining_facility_id.to_i > 0
|
if @booking.dining_facility_id.to_i > 0
|
||||||
@dining_facility = DiningFacility.find(@booking.dining_facility_id)
|
@dining_facility = DiningFacility.find(@booking.dining_facility_id)
|
||||||
else
|
else
|
||||||
@dining_facility = nil
|
@dining_facility = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
@booking_order = BookingOrder.find_by_order_id(@sale_id)
|
@booking_order = BookingOrder.find_by_order_id(@sale_id)
|
||||||
@booking = Booking.find(@booking_order.booking_id)
|
@booking = Booking.find(@booking_order.booking_id)
|
||||||
if @booking.dining_facility_id.to_i > 0
|
if @booking.dining_facility_id.to_i > 0
|
||||||
@dining_facility = DiningFacility.find(@booking.dining_facility_id)
|
@dining_facility = DiningFacility.find(@booking.dining_facility_id)
|
||||||
else
|
else
|
||||||
@dining_facility = nil
|
@dining_facility = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
filter = params[:filter]
|
filter = params[:filter]
|
||||||
|
|
||||||
if filter.nil?
|
if filter.nil?
|
||||||
@crm_customers = Customer.order("customer_id") #.page(params[:page])
|
@crm_customers = Customer.order("customer_id") #.page(params[:page])
|
||||||
#@products = Product.order("name").page(params[:page]).per(5)
|
#@products = Product.order("name").page(params[:page]).per(5)
|
||||||
else
|
else
|
||||||
@crm_customers = Customer.search(filter)
|
@crm_customers = Customer.search(filter)
|
||||||
end
|
end
|
||||||
#@crm_customers = Customer.all
|
#@crm_customers = Customer.all
|
||||||
@crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(20)
|
@crm_customers = Kaminari.paginate_array(@crm_customers).page(params[:page]).per(20)
|
||||||
@crm_customer = Customer.new
|
@crm_customer = Customer.new
|
||||||
@count_customer = Customer.count_customer
|
@count_customer = Customer.count_customer
|
||||||
|
|
||||||
# @taxes = TaxProfile.where(:group_type => 'cashier')
|
# @taxes = TaxProfile.where(:group_type => 'cashier')
|
||||||
@taxes = TaxProfile.unscoped.select("id, (CONCAT(name,'(',(SELECT name FROM lookups WHERE lookup_type='tax_profiles' AND value=group_type),')')) as name")
|
@taxes = TaxProfile.unscoped.select("id, (CONCAT(name,'(',(SELECT name FROM lookups WHERE lookup_type='tax_profiles' AND value=group_type),')')) as name")
|
||||||
.order("group_type ASC,order_by ASC")
|
.order("group_type ASC,order_by ASC")
|
||||||
@@ -100,7 +100,7 @@ class Origami::CustomersController < BaseOrigamiController
|
|||||||
lookup_customer = Lookup.collection_of('customer_settings')
|
lookup_customer = Lookup.collection_of('customer_settings')
|
||||||
if !lookup_customer.empty?
|
if !lookup_customer.empty?
|
||||||
lookup_customer.each do |create_setting|
|
lookup_customer.each do |create_setting|
|
||||||
if create_setting[0].downcase == "create"
|
if create_setting[0].downcase == "create"
|
||||||
if create_setting[1] == '0' && current_login_employee.role == 'cashier'
|
if create_setting[1] == '0' && current_login_employee.role == 'cashier'
|
||||||
@create_flag = false
|
@create_flag = false
|
||||||
end
|
end
|
||||||
@@ -154,13 +154,13 @@ class Origami::CustomersController < BaseOrigamiController
|
|||||||
if status == true
|
if status == true
|
||||||
render json: JSON.generate({:status => true})
|
render json: JSON.generate({:status => true})
|
||||||
if(id == "SAL")
|
if(id == "SAL")
|
||||||
sale.compute_by_sale_items(sale.sale_id, sale.sale_items, sale.total_discount, nil, order_source)
|
sale.compute_by_sale_items(sale.total_discount, nil, order_source)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
render json: JSON.generate({:status => false, :error_message => "Record not found"})
|
render json: JSON.generate({:status => false, :error_message => "Record not found"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def send_account
|
def send_account
|
||||||
amount = params[:amount]
|
amount = params[:amount]
|
||||||
account_no = params[:account_no]
|
account_no = params[:account_no]
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ class Origami::DiscountsController < BaseOrigamiController
|
|||||||
overall_discount = params[:overall_discount]
|
overall_discount = params[:overall_discount]
|
||||||
sub_total = params[:sub_total]
|
sub_total = params[:sub_total]
|
||||||
|
|
||||||
|
|
||||||
if Sale.exists?(sale_id)
|
if Sale.exists?(sale_id)
|
||||||
sale = Sale.find(sale_id)
|
sale = Sale.find(sale_id)
|
||||||
if sale.bookings[0].dining_facility_id.to_i > 0
|
if sale.bookings[0].dining_facility_id.to_i > 0
|
||||||
@@ -88,7 +87,7 @@ class Origami::DiscountsController < BaseOrigamiController
|
|||||||
remark = "Discount Item Name ->#{sale_item.product_name}-Product Code ->#{sale_item.product_code} | Price [#{sale_item.price}] | Receipt No #{sale.receipt_no} "
|
remark = "Discount Item Name ->#{sale_item.product_name}-Product Code ->#{sale_item.product_code} | Price [#{sale_item.price}] | Receipt No #{sale.receipt_no} "
|
||||||
|
|
||||||
sale_audit = SaleAudit.record_audit_discount(sale_item.sale_id,sale.cashier_name, action_by,remark,"ITEMDISCOUNT" )
|
sale_audit = SaleAudit.record_audit_discount(sale_item.sale_id,sale.cashier_name, action_by,remark,"ITEMDISCOUNT" )
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -103,7 +102,7 @@ class Origami::DiscountsController < BaseOrigamiController
|
|||||||
|
|
||||||
sale_audit = SaleAudit.record_audit_discount(sale.sale_id,sale.cashier_name, action_by,remark,"OVERALLDISCOUNT" )
|
sale_audit = SaleAudit.record_audit_discount(sale.sale_id,sale.cashier_name, action_by,remark,"OVERALLDISCOUNT" )
|
||||||
end
|
end
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items, overall_discount.to_f, nil,order_source)
|
sale.compute_by_sale_items(overall_discount.to_f, nil,order_source)
|
||||||
if !table.nil?
|
if !table.nil?
|
||||||
result = {:status=> "Success", :table_id => table_id, :table_type => table.type }
|
result = {:status=> "Success", :table_id => table_id, :table_type => table.type }
|
||||||
else
|
else
|
||||||
@@ -158,7 +157,7 @@ class Origami::DiscountsController < BaseOrigamiController
|
|||||||
# sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax;
|
# sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax;
|
||||||
# sale.save
|
# sale.save
|
||||||
# Re-calc All Amount in Sale
|
# Re-calc All Amount in Sale
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items, sale.total_discount, nil, order_source)
|
sale.compute_by_sale_items(sale.total_discount, nil, order_source)
|
||||||
if table.nil?
|
if table.nil?
|
||||||
result = {:status=> "Success"}
|
result = {:status=> "Success"}
|
||||||
else
|
else
|
||||||
@@ -220,7 +219,7 @@ class Origami::DiscountsController < BaseOrigamiController
|
|||||||
sale_audit = SaleAudit.record_audit_discount(sale.sale_id,sale.cashier_name, action_by,remark,"REMOVEALLDISCOUNT" )
|
sale_audit = SaleAudit.record_audit_discount(sale.sale_id,sale.cashier_name, action_by,remark,"REMOVEALLDISCOUNT" )
|
||||||
|
|
||||||
# Re-calc All Amount in Sale
|
# Re-calc All Amount in Sale
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items, 0, nil, order_source)
|
sale.compute_by_sale_items(0, nil, order_source)
|
||||||
if table.nil?
|
if table.nil?
|
||||||
result = {:status=> "Success"}
|
result = {:status=> "Success"}
|
||||||
else
|
else
|
||||||
@@ -321,7 +320,7 @@ class Origami::DiscountsController < BaseOrigamiController
|
|||||||
if response["discount_bonus_earned"]
|
if response["discount_bonus_earned"]
|
||||||
discount_amount = discount_amount + response["discount_bonus_earned"]
|
discount_amount = discount_amount + response["discount_bonus_earned"]
|
||||||
end
|
end
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items, discount_amount, 'member_discount', order_source, tax_type)
|
sale.compute_by_sale_items(discount_amount, 'member_discount', order_source, tax_type)
|
||||||
result = {:status=> "Success",:title=>"Member Discount", :table_id => table_id,:table_type => table_type }
|
result = {:status=> "Success",:title=>"Member Discount", :table_id => table_id,:table_type => table_type }
|
||||||
elsif response["status"] == "500"
|
elsif response["status"] == "500"
|
||||||
result = {:status=> response["error"],:title=>"Alert", :table_id => table_id,:table_type => table_type }
|
result = {:status=> response["error"],:title=>"Alert", :table_id => table_id,:table_type => table_type }
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ class Origami::OtherChargesController < BaseOrigamiController
|
|||||||
def index
|
def index
|
||||||
@webview = false
|
@webview = false
|
||||||
if check_mobile
|
if check_mobile
|
||||||
@webview = true
|
@webview = true
|
||||||
end
|
end
|
||||||
|
|
||||||
sale_id = params[:sale_id]
|
sale_id = params[:sale_id]
|
||||||
@cashier_type = params[:type]
|
@cashier_type = params[:type]
|
||||||
if Sale.exists?(sale_id)
|
if Sale.exists?(sale_id)
|
||||||
@@ -15,11 +15,11 @@ class Origami::OtherChargesController < BaseOrigamiController
|
|||||||
@table = DiningFacility.find(@sale_data.bookings[0].dining_facility_id)
|
@table = DiningFacility.find(@sale_data.bookings[0].dining_facility_id)
|
||||||
else
|
else
|
||||||
@table = nil
|
@table = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
sale_id = params[:sale_id]
|
sale_id = params[:sale_id]
|
||||||
other_charges_items = JSON.parse(params[:other_charges_items])
|
other_charges_items = JSON.parse(params[:other_charges_items])
|
||||||
sub_total = params[:sub_total]
|
sub_total = params[:sub_total]
|
||||||
@@ -34,11 +34,11 @@ class Origami::OtherChargesController < BaseOrigamiController
|
|||||||
table_id = nil
|
table_id = nil
|
||||||
table = nil
|
table = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# sale.total_amount = sub_total.to_f
|
# sale.total_amount = sub_total.to_f
|
||||||
# sale.grand_total = sub_total.to_f + sale.total_tax;
|
# sale.grand_total = sub_total.to_f + sale.total_tax;
|
||||||
# sale.save
|
# sale.save
|
||||||
if other_charges_items.length > 0
|
if other_charges_items.length > 0
|
||||||
#save sale item for discount
|
#save sale item for discount
|
||||||
other_charges_items.each do |di|
|
other_charges_items.each do |di|
|
||||||
@@ -68,18 +68,18 @@ class Origami::OtherChargesController < BaseOrigamiController
|
|||||||
else
|
else
|
||||||
remark = "Add Other Charges - Receipt No #{sale.receipt_no} | Sale ID #{sale.sale_id} |Charges ->#{di["price"]} For ->#{di["name"]}- Table ->#{table.name}"
|
remark = "Add Other Charges - Receipt No #{sale.receipt_no} | Sale ID #{sale.sale_id} |Charges ->#{di["price"]} For ->#{di["name"]}- Table ->#{table.name}"
|
||||||
end
|
end
|
||||||
|
|
||||||
sale_audit = SaleAudit.record_audit_for_edit(sale.sale_id,sale.cashier_name, action_by,remark,"ADDOTHERCHARGES" )
|
sale_audit = SaleAudit.record_audit_for_edit(sale.sale_id,sale.cashier_name, action_by,remark,"ADDOTHERCHARGES" )
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Re-calc All Amount in Sale
|
# Re-calc All Amount in Sale
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items, sale.total_discount, nil, cashier_type)
|
sale.compute_by_sale_items(sale.total_discount, nil, cashier_type)
|
||||||
end
|
end
|
||||||
if !table.nil?
|
if !table.nil?
|
||||||
dining = {:table_id => table_id, :table_type => table.type }
|
dining = {:table_id => table_id, :table_type => table.type }
|
||||||
render :json => dining.to_json
|
render :json => dining.to_json
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -643,7 +643,7 @@ class Origami::PaymentsController < BaseOrigamiController
|
|||||||
|
|
||||||
if saleObj.discount_type == "member_discount"
|
if saleObj.discount_type == "member_discount"
|
||||||
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
|
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
|
||||||
saleObj.compute_by_sale_items(sale_id, saleObj.sale_items,0,order_source)
|
saleObj.compute_by_sale_items(0, nil, order_source)
|
||||||
end
|
end
|
||||||
|
|
||||||
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
|
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
|
||||||
@@ -818,7 +818,7 @@ class Origami::PaymentsController < BaseOrigamiController
|
|||||||
order_source = params[:cashier_type]
|
order_source = params[:cashier_type]
|
||||||
tax_type = params[:tax_type]
|
tax_type = params[:tax_type]
|
||||||
sale = Sale.find(sale_id)
|
sale = Sale.find(sale_id)
|
||||||
sale.compute_by_sale_items(sale.sale_id, sale.sale_items, sale.total_discount,nil,order_source,tax_type)
|
sale.compute_by_sale_items(sale.total_discount, nil, order_source, tax_type)
|
||||||
|
|
||||||
render json: JSON.generate({:status => true})
|
render json: JSON.generate({:status => true})
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
|||||||
remark = "Void Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}"
|
remark = "Void Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}"
|
||||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMVOID" )
|
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMVOID" )
|
||||||
|
|
||||||
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source)
|
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||||
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
|||||||
remark = "FOC Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}Receipt No #{saleObj.receipt_no}"
|
remark = "FOC Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}Receipt No #{saleObj.receipt_no}"
|
||||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMFOC" )
|
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMFOC" )
|
||||||
|
|
||||||
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source)
|
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||||
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -150,10 +150,10 @@ class Origami::SaleEditController < BaseOrigamiController
|
|||||||
saleitemObj.save
|
saleitemObj.save
|
||||||
|
|
||||||
# re-calc tax
|
# re-calc tax
|
||||||
saleObj = Sale.find(saleitemObj.sale_id)
|
# saleObj = Sale.find(saleitemObj.sale_id)
|
||||||
|
|
||||||
order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id
|
# order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id
|
||||||
order = Order.find(order_id)
|
# order = Order.find(order_id)
|
||||||
|
|
||||||
# order.order_items.each do |o|
|
# order.order_items.each do |o|
|
||||||
# if saleitemObj.product_code == o.item_code
|
# if saleitemObj.product_code == o.item_code
|
||||||
@@ -163,7 +163,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
|||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
|
|
||||||
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source)
|
sale.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||||
|
|
||||||
ProductCommission.edit_product_commission(saleitemObj)
|
ProductCommission.edit_product_commission(saleitemObj)
|
||||||
end
|
end
|
||||||
@@ -195,8 +195,8 @@ class Origami::SaleEditController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
remark = "Cancle Void Sale Item ID #{saleitemObj.sale_item_id} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}|Receipt No #{saleObj.receipt_no}"
|
remark = "Cancle Void Sale Item ID #{saleitemObj.sale_item_id} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}|Receipt No #{saleObj.receipt_no}"
|
||||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"ITEMCANCELVOID" )
|
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"ITEMCANCELVOID" )
|
||||||
|
|
||||||
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount, order_source)
|
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||||
ProductCommission.remove_product_commission(saleitemObj)
|
ProductCommission.remove_product_commission(saleitemObj)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -214,9 +214,9 @@ class Origami::SaleEditController < BaseOrigamiController
|
|||||||
item.save
|
item.save
|
||||||
ProductCommission.remove_product_commission(item)
|
ProductCommission.remove_product_commission(item)
|
||||||
end
|
end
|
||||||
|
saleObj.sale_items.reset
|
||||||
# re-calc tax
|
# re-calc tax
|
||||||
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order_source)
|
saleObj.compute_by_sale_items(saleObj.total_discount,nil, order_source)
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply_void
|
def apply_void
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ class Origami::VoidController < BaseOrigamiController
|
|||||||
sale = Sale.find_by_sale_id(sale_id)
|
sale = Sale.find_by_sale_id(sale_id)
|
||||||
if sale.discount_type == "member_discount"
|
if sale.discount_type == "member_discount"
|
||||||
sale.update_attributes(total_discount: 0)
|
sale.update_attributes(total_discount: 0)
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items,0,order_source)
|
sale.compute_by_sale_items(0, nil, order_source)
|
||||||
end
|
end
|
||||||
|
|
||||||
# update count for shift sale
|
# update count for shift sale
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ class Origami::WasteSpoileController < BaseOrigamiController
|
|||||||
sale.sale_status = remark
|
sale.sale_status = remark
|
||||||
sale.save
|
sale.save
|
||||||
|
|
||||||
# sale.compute_by_sale_items(sale_id, sale.sale_items,0,order_source)
|
|
||||||
# add to sale item with foc
|
# add to sale item with foc
|
||||||
# sale_items = SaleItem.where("sale_id='#{ sale_id }' and status is null")
|
# sale_items = SaleItem.where("sale_id='#{ sale_id }' and status is null")
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ class Transactions::SalesController < ApplicationController
|
|||||||
# GET /transactions/sales
|
# GET /transactions/sales
|
||||||
# GET /transactions/sales.json
|
# GET /transactions/sales.json
|
||||||
def index
|
def index
|
||||||
|
|
||||||
receipt_no = params[:receipt_no]
|
receipt_no = params[:receipt_no]
|
||||||
# from = params[:from]
|
# from = params[:from]
|
||||||
# to = params[:to]
|
# to = params[:to]
|
||||||
@@ -19,18 +19,18 @@ class Transactions::SalesController < ApplicationController
|
|||||||
if receipt_no.nil? && from.nil? && to.nil?
|
if receipt_no.nil? && from.nil? && to.nil?
|
||||||
if @shift.blank?
|
if @shift.blank?
|
||||||
@sales = Sale.where("NOT sale_status='new'").order("sale_id desc")
|
@sales = Sale.where("NOT sale_status='new'").order("sale_id desc")
|
||||||
else
|
else
|
||||||
@sales = Sale.where("NOT sale_status='new' and shift_sale_id ='#{@shift.id}'").order("sale_id desc")
|
@sales = Sale.where("NOT sale_status='new' and shift_sale_id ='#{@shift.id}'").order("sale_id desc")
|
||||||
end
|
end
|
||||||
@sales = Kaminari.paginate_array(@sales).page(params[:page]).per(20)
|
@sales = Kaminari.paginate_array(@sales).page(params[:page]).per(20)
|
||||||
else
|
else
|
||||||
sale = Sale.search(receipt_no,from,to,@shift)
|
sale = Sale.search(receipt_no,from,to,@shift)
|
||||||
if sale.count > 0
|
if sale.count > 0
|
||||||
@sales = sale
|
@sales = sale
|
||||||
@sales = Kaminari.paginate_array(@sales).page(params[:page]).per(20)
|
@sales = Kaminari.paginate_array(@sales).page(params[:page]).per(20)
|
||||||
else
|
else
|
||||||
@sales = 0
|
@sales = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@receipt_no = receipt_no
|
@receipt_no = receipt_no
|
||||||
@from = from
|
@from = from
|
||||||
@@ -41,20 +41,20 @@ class Transactions::SalesController < ApplicationController
|
|||||||
@shift_to = @shift.shift_closed_at.nil? ? '-' : @shift.shift_closed_at.utc.getlocal.strftime("%e %b %I:%M%p")
|
@shift_to = @shift.shift_closed_at.nil? ? '-' : @shift.shift_closed_at.utc.getlocal.strftime("%e %b %I:%M%p")
|
||||||
@shift_data = @shift
|
@shift_data = @shift
|
||||||
end
|
end
|
||||||
|
|
||||||
# if receipt_no.nil? && search_date.nil?
|
# if receipt_no.nil? && search_date.nil?
|
||||||
# @sales = Sale.where("NOT sale_status = 'void' " ).order("sale_id desc").limit(500)
|
# @sales = Sale.where("NOT sale_status = 'void' " ).order("sale_id desc").limit(500)
|
||||||
# @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
|
# @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
|
||||||
# else
|
# else
|
||||||
# if !search_date.blank? && receipt_no.blank?
|
# if !search_date.blank? && receipt_no.blank?
|
||||||
# sale = Sale.where("DATE_FORMAT(receipt_date,'%d-%m-%Y') = ? and NOT sale_status = 'void' ", search_date).order("sale_id desc").limit(500).page(params[:page])
|
# sale = Sale.where("DATE_FORMAT(receipt_date,'%d-%m-%Y') = ? and NOT sale_status = 'void' ", search_date).order("sale_id desc").limit(500).page(params[:page])
|
||||||
# elsif !search_date.blank? && !receipt_no.blank?
|
# elsif !search_date.blank? && !receipt_no.blank?
|
||||||
# sale = Sale.where("receipt_no LIKE ? or DATE_FORMAT(receipt_date,'%d-%m-%Y') = ? and NOT sale_status = 'void' ", "%#{receipt_no}%", search_date).order("sale_id desc").limit(500).page(params[:page])
|
# sale = Sale.where("receipt_no LIKE ? or DATE_FORMAT(receipt_date,'%d-%m-%Y') = ? and NOT sale_status = 'void' ", "%#{receipt_no}%", search_date).order("sale_id desc").limit(500).page(params[:page])
|
||||||
# else
|
# else
|
||||||
# sale = Sale.where("receipt_no LIKE ? and NOT sale_status = 'void' ", receipt_no).order("sale_id desc").limit(500).page(params[:page])
|
# sale = Sale.where("receipt_no LIKE ? and NOT sale_status = 'void' ", receipt_no).order("sale_id desc").limit(500).page(params[:page])
|
||||||
# end
|
# end
|
||||||
# if sale.count > 0
|
# if sale.count > 0
|
||||||
# @sales = sale
|
# @sales = sale
|
||||||
# @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
|
# @sales = Kaminari.paginate_array(@sales).page(params[:page]).per(50)
|
||||||
# else
|
# else
|
||||||
# @sales = 0
|
# @sales = 0
|
||||||
@@ -182,7 +182,7 @@ class Transactions::SalesController < ApplicationController
|
|||||||
period_type = params[:period_type]
|
period_type = params[:period_type]
|
||||||
period = params[:period]
|
period = params[:period]
|
||||||
from = params[:from]
|
from = params[:from]
|
||||||
to = params[:to]
|
to = params[:to]
|
||||||
day_ref = Time.now.utc.getlocal
|
day_ref = Time.now.utc.getlocal
|
||||||
|
|
||||||
if from.present? && to.present?
|
if from.present? && to.present?
|
||||||
@@ -191,8 +191,8 @@ class Transactions::SalesController < ApplicationController
|
|||||||
f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec)
|
f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec)
|
||||||
t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec)
|
t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec)
|
||||||
from = f_time.beginning_of_day.utc.getlocal
|
from = f_time.beginning_of_day.utc.getlocal
|
||||||
to = t_time.end_of_day.utc.getlocal
|
to = t_time.end_of_day.utc.getlocal
|
||||||
else
|
else
|
||||||
case period.to_i
|
case period.to_i
|
||||||
when PERIOD["today"]
|
when PERIOD["today"]
|
||||||
from = day_ref.beginning_of_day.utc
|
from = day_ref.beginning_of_day.utc
|
||||||
@@ -226,10 +226,10 @@ class Transactions::SalesController < ApplicationController
|
|||||||
when PERIOD["last_year"]
|
when PERIOD["last_year"]
|
||||||
from = (day_ref - 1.year).beginning_of_year.utc
|
from = (day_ref - 1.year).beginning_of_year.utc
|
||||||
to = (day_ref - 1.year).end_of_year.utc
|
to = (day_ref - 1.year).end_of_year.utc
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return from, to
|
return from, to
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_user
|
def check_user
|
||||||
@@ -248,7 +248,7 @@ class Transactions::SalesController < ApplicationController
|
|||||||
|
|
||||||
if sale.discount_type == "member_discount"
|
if sale.discount_type == "member_discount"
|
||||||
sale.update_attributes(total_discount: 0)
|
sale.update_attributes(total_discount: 0)
|
||||||
sale.compute_by_sale_items(sale_id, sale.sale_items,0,order_source)
|
sale.compute_by_sale_items(0, nil, order_source)
|
||||||
end
|
end
|
||||||
|
|
||||||
# update count for shift sale
|
# update count for shift sale
|
||||||
@@ -265,7 +265,7 @@ class Transactions::SalesController < ApplicationController
|
|||||||
shift.save
|
shift.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sale.rounding_adjustment = 0.0
|
sale.rounding_adjustment = 0.0
|
||||||
sale.payment_status = 'void'
|
sale.payment_status = 'void'
|
||||||
sale.sale_status = 'void'
|
sale.sale_status = 'void'
|
||||||
@@ -308,16 +308,16 @@ class Transactions::SalesController < ApplicationController
|
|||||||
table = nil
|
table = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# FOr Sale Audit
|
# FOr Sale Audit
|
||||||
action_by = current_user.name
|
action_by = current_user.name
|
||||||
if access_code != "null" && current_user.role == "cashier"
|
if access_code != "null" && current_user.role == "cashier"
|
||||||
action_by = Employee.find_by_emp_id(access_code).name
|
action_by = Employee.find_by_emp_id(access_code).name
|
||||||
end
|
end
|
||||||
|
|
||||||
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
|
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
|
||||||
sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, action_by,remark,"SALEVOID" )
|
sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, action_by,remark,"SALEVOID" )
|
||||||
|
|
||||||
# For Print
|
# For Print
|
||||||
|
|
||||||
member_info = nil
|
member_info = nil
|
||||||
rebate_amount = nil
|
rebate_amount = nil
|
||||||
@@ -325,7 +325,7 @@ class Transactions::SalesController < ApplicationController
|
|||||||
|
|
||||||
# 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
|
if bookings.count > 1
|
||||||
# for Multiple Booking
|
# for Multiple Booking
|
||||||
if bookings[0].dining_facility_id.to_i>0
|
if bookings[0].dining_facility_id.to_i>0
|
||||||
table = DiningFacility.find(bookings[0].dining_facility_id)
|
table = DiningFacility.find(bookings[0].dining_facility_id)
|
||||||
@@ -339,12 +339,12 @@ class Transactions::SalesController < ApplicationController
|
|||||||
shift = ShiftSale.find(sale.shift_sale_id)
|
shift = ShiftSale.find(sale.shift_sale_id)
|
||||||
cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id)
|
cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
# if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
||||||
unique_code = "ReceiptBillPdf"
|
unique_code = "ReceiptBillPdf"
|
||||||
customer= Customer.find(sale.customer_id)
|
customer= Customer.find(sale.customer_id)
|
||||||
|
|
||||||
#shop detail
|
#shop detail
|
||||||
shop_details = Shop.find_by_id(1)
|
shop_details = Shop.find_by_id(1)
|
||||||
# get member information
|
# get member information
|
||||||
@@ -363,31 +363,31 @@ class Transactions::SalesController < ApplicationController
|
|||||||
discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(sale.sale_items)
|
discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(sale.sale_items)
|
||||||
|
|
||||||
other_amount = SaleItem.calculate_other_charges(sale.sale_items) #other charges
|
other_amount = SaleItem.calculate_other_charges(sale.sale_items) #other charges
|
||||||
printer = Printer::ReceiptPrinter.new(print_settings)
|
printer = Printer::ReceiptPrinter.new(print_settings)
|
||||||
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil,nil,nil)
|
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil,cashier_terminal,sale.sale_items,sale,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "VOID",current_balance,nil,other_amount,nil,nil,nil)
|
||||||
result = {
|
result = {
|
||||||
:filepath => filename,
|
:filepath => filename,
|
||||||
:printer_model => print_settings.brand_name,
|
:printer_model => print_settings.brand_name,
|
||||||
:printer_url => print_settings.api_settings
|
:printer_url => print_settings.api_settings
|
||||||
}
|
}
|
||||||
|
|
||||||
# Mobile Print
|
# Mobile Print
|
||||||
render :json => result.to_json
|
render :json => result.to_json
|
||||||
# end
|
# end
|
||||||
|
|
||||||
#end print
|
#end print
|
||||||
|
|
||||||
# update complete order items in oqs
|
# update complete order items in oqs
|
||||||
SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr|
|
SaleOrder.where("sale_id = '#{ sale_id }'").find_each do |sodr|
|
||||||
AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi|
|
AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi|
|
||||||
aoi.delivery_status = 1
|
aoi.delivery_status = 1
|
||||||
aoi.save
|
aoi.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private
|
private
|
||||||
# Use callbacks to share common setup or constraints between actions.
|
# Use callbacks to share common setup or constraints between actions.
|
||||||
def set_transactions_sale
|
def set_transactions_sale
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ class Promotion < ApplicationRecord
|
|||||||
item = saleObj.order_items.where(item_instance_code: promo_product).first
|
item = saleObj.order_items.where(item_instance_code: promo_product).first
|
||||||
|
|
||||||
if !item.nil?
|
if !item.nil?
|
||||||
update_existing_item(foc_qty, item, sale_id, "promotion", item[:price], source)
|
update_existing_item(foc_qty, item, saleObj, "promotion", item[:price], source)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# AA - 10 # 3 # BB # orderList, #S34345
|
# AA - 10 # 3 # BB # orderList, #S34345
|
||||||
@@ -128,7 +128,7 @@ class Promotion < ApplicationRecord
|
|||||||
item = saleObj.order_items.where(item_instance_code: promo_product).first
|
item = saleObj.order_items.where(item_instance_code: promo_product).first
|
||||||
|
|
||||||
if !item.nil?
|
if !item.nil?
|
||||||
update_existing_item(promotion_qty, item, sale_id, "promotion", item[:price],source)
|
update_existing_item(promotion_qty, item, saleObj, "promotion", item[:price],source)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -157,8 +157,9 @@ class Promotion < ApplicationRecord
|
|||||||
sale_item.is_taxable = 1
|
sale_item.is_taxable = 1
|
||||||
sale_item.sale = saleObj
|
sale_item.sale = saleObj
|
||||||
sale_item.save
|
sale_item.save
|
||||||
|
|
||||||
saleObj.compute_by_sale_items(saleObj.id, saleObj.sale_items, saleObj.total_discount,nil,source)
|
saleObj.sale_items << sale_item
|
||||||
|
saleObj.compute_by_sale_items(saleObj.total_discount, nil, source)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -180,7 +181,7 @@ class Promotion < ApplicationRecord
|
|||||||
item = saleObj.order_items.where(item_instance_code: promo_product.item_code).first
|
item = saleObj.order_items.where(item_instance_code: promo_product.item_code).first
|
||||||
|
|
||||||
if !item.nil?
|
if !item.nil?
|
||||||
update_existing_item(foc_qty, item, sale_id, "promotion nett off", promo_product.net_off,source)
|
update_existing_item(foc_qty, item, saleObj, "promotion nett off", promo_product.net_off,source)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -361,8 +361,8 @@ class Sale < ApplicationRecord
|
|||||||
sale_item.save
|
sale_item.save
|
||||||
|
|
||||||
# Re-calc
|
# Re-calc
|
||||||
sale = Sale.find(self.id)
|
self.sale_items << sale_item
|
||||||
self.compute_by_sale_items(self.id, sale.sale_items, self.total_discount, nil, order_source)
|
self.compute_by_sale_items(self.total_discount, nil, order_source)
|
||||||
end
|
end
|
||||||
def create_saleitem_indutycharges(chargeObj, current_checkin_induties_count, induties_pay_amount, dining_name, dining_time, order_source = nil, basic_pay_amount)
|
def create_saleitem_indutycharges(chargeObj, current_checkin_induties_count, induties_pay_amount, dining_name, dining_time, order_source = nil, basic_pay_amount)
|
||||||
sale_item = SaleItem.new
|
sale_item = SaleItem.new
|
||||||
@@ -380,8 +380,8 @@ class Sale < ApplicationRecord
|
|||||||
sale_item.price = induties_pay_amount
|
sale_item.price = induties_pay_amount
|
||||||
sale_item.save
|
sale_item.save
|
||||||
# Re-calc
|
# Re-calc
|
||||||
sale = Sale.find(self.id)
|
self.sale_items << sale_item
|
||||||
self.compute_by_sale_items(self.id, sale.sale_items, self.total_discount, nil, order_source)
|
self.compute_by_sale_items(self.total_discount, nil, order_source)
|
||||||
end
|
end
|
||||||
def update_item (item)
|
def update_item (item)
|
||||||
#save sale_audit
|
#save sale_audit
|
||||||
@@ -403,14 +403,12 @@ class Sale < ApplicationRecord
|
|||||||
|
|
||||||
#compute - invoice total
|
#compute - invoice total
|
||||||
def compute(order_source = nil, tax_type = nil)
|
def compute(order_source = nil, tax_type = nil)
|
||||||
sales_items = self.sale_items
|
|
||||||
|
|
||||||
#Computation Fields
|
#Computation Fields
|
||||||
subtotal_price = 0
|
subtotal_price = 0
|
||||||
total_taxable = 0
|
total_taxable = 0
|
||||||
rounding_adjustment = 0
|
rounding_adjustment = 0
|
||||||
|
|
||||||
sales_items.each do |item|
|
self.sale_items.each do |item|
|
||||||
#compute each item and added to total
|
#compute each item and added to total
|
||||||
subtotal_price = subtotal_price + item.price
|
subtotal_price = subtotal_price + item.price
|
||||||
|
|
||||||
@@ -429,60 +427,54 @@ class Sale < ApplicationRecord
|
|||||||
# self.grand_total_round
|
# self.grand_total_round
|
||||||
#compute rounding adjustment
|
#compute rounding adjustment
|
||||||
# adjust_rounding
|
# adjust_rounding
|
||||||
|
|
||||||
self.save!
|
self.save!
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#compute - invoice total
|
#compute - invoice total
|
||||||
def compute_by_sale_items(sale_id, sale_itemss, total_discount,discount_type=nil,order_source=nil,tax_type=nil,type=nil)
|
def compute_by_sale_items(total_discount, discount_type=nil, order_source=nil, tax_type=nil, type=nil)
|
||||||
shop = Shop.first
|
shop = Shop.first
|
||||||
sale = Sale.find(sale_id)
|
|
||||||
sales_items = sale_itemss
|
|
||||||
|
|
||||||
#Computation Fields
|
#Computation Fields
|
||||||
subtotal_price = 0
|
subtotal_price = 0
|
||||||
total_taxable = 0
|
total_taxable = 0
|
||||||
rounding_adjustment = 0
|
rounding_adjustment = 0
|
||||||
|
|
||||||
sales_items.each do |item|
|
self.sale_items.each do |item|
|
||||||
#compute each item and added to total
|
#compute each item and added to total
|
||||||
subtotal_price = subtotal_price + item.price
|
subtotal_price = subtotal_price + item.price
|
||||||
|
|
||||||
# check for item is taxable and calculate
|
# check for item is taxable and calculate
|
||||||
if item.is_taxable
|
if item.is_taxable
|
||||||
total_taxable = total_taxable + item.taxable_price
|
total_taxable = total_taxable + item.taxable_price
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
compute_tax(sale, total_taxable, total_discount, order_source, tax_type)
|
|
||||||
sale.total_amount = subtotal_price
|
compute_tax(total_taxable, total_discount, order_source, tax_type)
|
||||||
sale.total_discount = total_discount
|
self.total_amount = subtotal_price
|
||||||
|
self.total_discount = total_discount
|
||||||
if type =="foc"
|
if type =="foc"
|
||||||
sale.grand_total = 0
|
self.grand_total = 0
|
||||||
else
|
else
|
||||||
sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax
|
self.grand_total = (self.total_amount - self.total_discount) + self.total_tax
|
||||||
# sale.grand_total_round
|
# sale.grand_total_round
|
||||||
end
|
end
|
||||||
|
|
||||||
if discount_type == "member_discount"
|
if discount_type == "member_discount"
|
||||||
sale.discount_type = discount_type
|
self.discount_type = discount_type
|
||||||
end
|
end
|
||||||
#compute rounding adjustment
|
#compute rounding adjustment
|
||||||
# adjust_rounding
|
# adjust_rounding
|
||||||
|
self.save!
|
||||||
sale.save!
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# No Use too many wrong
|
# No Use too many wrong
|
||||||
def compute_without_void(order_source = nil)
|
def compute_without_void(order_source = nil)
|
||||||
sales_items = self.sale_items
|
|
||||||
|
|
||||||
#Computation Fields
|
#Computation Fields
|
||||||
subtotal_price = 0
|
subtotal_price = 0
|
||||||
total_taxable = 0
|
total_taxable = 0
|
||||||
rounding_adjustment = 0
|
rounding_adjustment = 0
|
||||||
|
|
||||||
sales_items.each do |item|
|
self.sale_items.each do |item|
|
||||||
if item.status != 'void' && item.status != 'foc'
|
if item.status != 'void' && item.status != 'foc'
|
||||||
#compute each item and added to total
|
#compute each item and added to total
|
||||||
subtotal_price = subtotal_price + item.price
|
subtotal_price = subtotal_price + item.price
|
||||||
@@ -506,7 +498,7 @@ class Sale < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
# Tax Re-Calculte
|
# Tax Re-Calculte
|
||||||
def compute_tax(sale, total_taxable, total_discount = 0, order_source = nil, tax_type=nil)
|
def compute_tax(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
|
||||||
@@ -529,9 +521,9 @@ class Sale < ApplicationRecord
|
|||||||
tax_profiles = unique_tax_profiles(order_source, self.customer_id)
|
tax_profiles = unique_tax_profiles(order_source, self.customer_id)
|
||||||
|
|
||||||
# #Creat new tax records
|
# #Creat new tax records
|
||||||
if sale.payment_status != 'foc'
|
if self.payment_status != 'foc'
|
||||||
tax_profiles.each do |tax|
|
tax_profiles.each do |tax|
|
||||||
sale_tax = SaleTax.new(:sale => sale)
|
sale_tax = SaleTax.new(:sale => self)
|
||||||
sale_tax.tax_name = tax.name
|
sale_tax.tax_name = tax.name
|
||||||
sale_tax.tax_rate = tax.rate
|
sale_tax.tax_rate = tax.rate
|
||||||
|
|
||||||
@@ -555,8 +547,8 @@ class Sale < ApplicationRecord
|
|||||||
sale_tax.save
|
sale_tax.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
sale.tax_type = tax_incl_exec
|
self.tax_type = tax_incl_exec
|
||||||
sale.total_tax = total_tax_amount
|
self.total_tax = total_tax_amount
|
||||||
end
|
end
|
||||||
|
|
||||||
# Tax Calculate
|
# Tax Calculate
|
||||||
@@ -2727,7 +2719,7 @@ def self.get_hourly_item_query(type)
|
|||||||
"i.status as status_type,i.remark as remark,"+
|
"i.status as status_type,i.remark as remark,"+
|
||||||
"i.unit_price,i.price as price,i.product_name as product_name, " +
|
"i.unit_price,i.price as price,i.product_name as product_name, " +
|
||||||
"i.menu_category_name,i.menu_category_code as menu_category_id, " +
|
"i.menu_category_name,i.menu_category_code as menu_category_id, " +
|
||||||
|
|
||||||
"concat(hour(CONVERT_TZ(receipt_date,'+00:00', '+06:30')), ':00 - ', hour(CONVERT_TZ(receipt_date,'+00:00', '+06:30')) + 1, ':00') as date_format," +
|
"concat(hour(CONVERT_TZ(receipt_date,'+00:00', '+06:30')), ':00 - ', hour(CONVERT_TZ(receipt_date,'+00:00', '+06:30')) + 1, ':00') as date_format," +
|
||||||
"hour(CONVERT_TZ(receipt_date,'+00:00', '+06:30')) as hour")
|
"hour(CONVERT_TZ(receipt_date,'+00:00', '+06:30')) as hour")
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ class SaleItem < ApplicationRecord
|
|||||||
# sale_item.save
|
# sale_item.save
|
||||||
if type != "foc"
|
if type != "foc"
|
||||||
sale = Sale.find(sale_id)
|
sale = Sale.find(sale_id)
|
||||||
sale.compute_by_sale_items(sale.id, sale.sale_items, sale.total_discount)
|
sale.compute_by_sale_items(sale.total_discount)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ class SalePayment < ApplicationRecord
|
|||||||
SaleItem.update_existing_item(item.qty, item, self.sale.sale_id, "foc", item.unit_price, item.price)
|
SaleItem.update_existing_item(item.qty, item, self.sale.sale_id, "foc", item.unit_price, item.price)
|
||||||
end
|
end
|
||||||
sale = Sale.find(self.sale.sale_id)
|
sale = Sale.find(self.sale.sale_id)
|
||||||
sale.compute_by_sale_items(sale.id, sale.sale_items, sale.total_discount,'','','',"foc")
|
sale.compute_by_sale_items(sale.total_discount,'','','',"foc")
|
||||||
|
|
||||||
self.payment_method = "foc"
|
self.payment_method = "foc"
|
||||||
self.payment_amount = self.received_amount
|
self.payment_amount = self.received_amount
|
||||||
|
|||||||
Reference in New Issue
Block a user