api discount and change tax
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
class Api::BookingsController < Api::ApiController
|
||||
skip_before_action :authenticate
|
||||
# skip_before_action :authenticate
|
||||
#Show customer by ID
|
||||
def index
|
||||
@bookings = Booking.all
|
||||
|
||||
16
app/controllers/api/change_tax_controller.rb
Normal file
16
app/controllers/api/change_tax_controller.rb
Normal file
@@ -0,0 +1,16 @@
|
||||
class Api::ChangeTaxController < Api::ApiController
|
||||
|
||||
def index
|
||||
sale_id = params[:sale_id]
|
||||
group_type = params[:group_type]
|
||||
tax_type = params[:tax_type].present? ? params[:tax_type] : "no_tax"
|
||||
|
||||
sale = Sale.find(sale_id)
|
||||
|
||||
sale.compute_by_sale_items(sale.total_discount, nil, group_type, tax_type)
|
||||
|
||||
remark = "Change tax to #{tax_type} for Sale ID #{sale_id} By #{current_login_employee.name}"
|
||||
SaleAudit.record_audit_change_tax(sale_id,remark,current_login_employee.name)
|
||||
end
|
||||
|
||||
end
|
||||
@@ -23,9 +23,10 @@ class Api::CustomersController < Api::ApiController
|
||||
|
||||
def get_customer_by_account
|
||||
account_no = params[:account_no]
|
||||
group_type = params[:group_type] || 'food_court'
|
||||
|
||||
unless @customer = Customer.find_by(paypar_account_no: account_no)
|
||||
response = Customer.search_paypar_account_no(account_no)
|
||||
response = Customer.search_paypar_account_no(account_no)
|
||||
if response["status"] == true
|
||||
@customer = Customer.create({
|
||||
name: response["customer_data"]["name"],
|
||||
@@ -39,8 +40,10 @@ class Api::CustomersController < Api::ApiController
|
||||
membership_id: response["customer_data"]["id"],
|
||||
membership_type: response["customer_data"]["member_group_id"],
|
||||
customer_type: "Dinein",
|
||||
tax_profiles: ["1", "2"],
|
||||
tax_profiles: TaxProfile.where(group_type: group_type).pluck(:id),
|
||||
})
|
||||
else
|
||||
@message = response["message"]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,19 +1,138 @@
|
||||
class Api::DiscountsController < ActionController::API
|
||||
def create
|
||||
@invoice = Sale.find(params[:invoice_id])
|
||||
class Api::DiscountsController < Api::ApiController
|
||||
|
||||
def create
|
||||
sale_id = params[:sale_id]
|
||||
sale_item_id = params[:sale_item_id]
|
||||
discount = params[:discount].to_d
|
||||
discount_type = params[:discount_type]
|
||||
|
||||
@sale = Sale.find(sale_id)
|
||||
@booking = @sale.booking
|
||||
dining_facility = @booking.dining_facility
|
||||
action_by = current_login_employee.name
|
||||
|
||||
bill_discount = @sale.total_discount
|
||||
|
||||
if sale_item_id
|
||||
sale_item = SaleItem.find(sale_item_id)
|
||||
discount_item = sale_item.discount_item
|
||||
|
||||
if discount > 0
|
||||
unless discount_item
|
||||
discount_item = sale_item.build_discount_item
|
||||
end
|
||||
|
||||
discount_item.discount = discount
|
||||
if discount_type == 'nett'
|
||||
discount_item.discount_type = 'nett'
|
||||
discount_item.product_name = "#{sale_item.product_name} - discount"
|
||||
unit_price = discount
|
||||
elsif discount_type == 'percentage'
|
||||
discount_item.discount_type = 'percentage'
|
||||
discount_item.product_name = "#{sale_item.product_name} - discount(#{discount}%)"
|
||||
unit_price = sale_item.unit_price * (discount / 100)
|
||||
end
|
||||
|
||||
price = unit_price * sale_item.qty
|
||||
|
||||
discount_item.menu_category_code = sale_item.menu_category_code
|
||||
discount_item.menu_category_name = sale_item.menu_category_name
|
||||
|
||||
discount_item.sale_id = sale_id
|
||||
discount_item.product_code = sale_item != nil ? sale_item.product_code : sale_id
|
||||
discount_item.item_instance_code = sale_item.item_instance_code
|
||||
discount_item.product_alt_name = ""
|
||||
discount_item.status = "Discount"
|
||||
|
||||
discount_item.qty = sale_item.qty
|
||||
discount_item.unit_price = unit_price
|
||||
discount_item.taxable_price = -price
|
||||
discount_item.is_taxable = sale_item.is_taxable
|
||||
discount_item.account_id = sale_item.account_id
|
||||
|
||||
discount_item.price = -price
|
||||
discount_item.save
|
||||
|
||||
remark = "Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{@sale.receipt_no} "
|
||||
|
||||
sale_audit = SaleAudit.record_audit_discount(discount_item.sale_id, @sale.cashier_name, action_by, remark, "ITEMDISCOUNT" )
|
||||
else
|
||||
discount_item.destroy
|
||||
|
||||
if dining_facility.nil?
|
||||
remark = "Remove Item Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{@sale.receipt_no} | Table- No Table "
|
||||
else
|
||||
remark = "Remove Item Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{@sale.receipt_no} | Table- #{dining_facility.name} "
|
||||
end
|
||||
sale_audit = SaleAudit.record_audit_discount(@sale.sale_id, @sale.cashier_name, action_by, remark, "REMOVEITEMDISCOUNT" )
|
||||
end
|
||||
else
|
||||
if discount > 0
|
||||
if discount_type == 'nett'
|
||||
bill_discount = discount
|
||||
elsif discount_type == 'percentage'
|
||||
bill_discount = @sale.total_amount * (discount / 100)
|
||||
end
|
||||
|
||||
if dining_facility.nil?
|
||||
remark = "Discount Overall Price [#{bill_discount}]| Receipt No #{@sale.receipt_no} | Table- no Table "
|
||||
else
|
||||
remark = "Discount Overall Price [#{bill_discount}]| Receipt No #{@sale.receipt_no} | Table- #{dining_facility.name} "
|
||||
end
|
||||
|
||||
sale_audit = SaleAudit.record_audit_discount(@sale.sale_id, @sale.cashier_name, action_by, remark, "OVERALLDISCOUNT" )
|
||||
else
|
||||
if dining_facility.nil?
|
||||
remark = "Remove Discount Sale Id [#{@sale.sale_id}]| Receipt No #{@sale.receipt_no} | Table- No Table"
|
||||
else
|
||||
remark = "Remove Discount Sale Id [#{@sale.sale_id}]| Receipt No #{@sale.receipt_no} | Table- #{dining_facility.name} "
|
||||
end
|
||||
sale_audit = SaleAudit.record_audit_discount(@sale.sale_id, @sale.cashier_name, action_by, remark, "REMOVEALLDISCOUNT" )
|
||||
|
||||
bill_discount = 0.0.to_d
|
||||
end
|
||||
end
|
||||
|
||||
@sale.compute_by_sale_items(bill_discount, nil, order_source)
|
||||
end
|
||||
|
||||
#Update sale item - Price | Qty |
|
||||
def update
|
||||
end
|
||||
|
||||
#destroy - Remove items form invoice
|
||||
def destroy
|
||||
@sale.remove_item(params[:sale_item_id])
|
||||
sale_id = params[:sale_id]
|
||||
sale_item_id = params[:sale_item_id]
|
||||
|
||||
@sale = Sale.find(sale_id)
|
||||
@booking = @sale.booking
|
||||
dining_facility = @booking.dining_facility
|
||||
action_by = current_login_employee.name
|
||||
|
||||
bill_discount = @sale.total_discount
|
||||
|
||||
if sale_item_id
|
||||
sale_item = SaleItem.find(sale_item_id)
|
||||
discount_item = sale_item.discount_item
|
||||
discount_item.destroy
|
||||
|
||||
if dining_facility.nil?
|
||||
remark = "Remove Item Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{@sale.receipt_no} | Table- No Table "
|
||||
else
|
||||
remark = "Remove Item Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{@sale.receipt_no} | Table- #{dining_facility.name} "
|
||||
end
|
||||
sale_audit = SaleAudit.record_audit_discount(@sale.sale_id, @sale.cashier_name, action_by, remark, "REMOVEITEMDISCOUNT" )
|
||||
else
|
||||
if dining_facility.nil?
|
||||
remark = "Remove Discount Sale Id [#{@sale.sale_id}]| Receipt No #{@sale.receipt_no} | Table- No Table"
|
||||
else
|
||||
remark = "Remove Discount Sale Id [#{@sale.sale_id}]| Receipt No #{@sale.receipt_no} | Table- #{dining_facility.name} "
|
||||
end
|
||||
sale_audit = SaleAudit.record_audit_discount(@sale.sale_id, @sale.cashier_name, action_by, remark, "REMOVEALLDISCOUNT" )
|
||||
|
||||
bill_discount = 0.0.to_d
|
||||
end
|
||||
@sale.compute_by_sale_items(bill_discount, nil, order_source)
|
||||
end
|
||||
|
||||
private
|
||||
def set_invoice_params
|
||||
@sale = Sale.find(params[:invoice_id])
|
||||
def order_source
|
||||
params[:order_source] || 'food_court'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,13 +3,13 @@ class Api::Foodcourt::BillsController < Api::ApiController
|
||||
def create
|
||||
Sale.transaction do
|
||||
if shift = ShiftSale.current_open_shift(current_login_employee)
|
||||
if booking = Booking.find(params[:booking_id])
|
||||
if @booking = Booking.find(params[:booking_id])
|
||||
cashier = Employee.find(shift.employee_id)
|
||||
order = booking.orders.first
|
||||
order = @booking.orders.first
|
||||
|
||||
if @sale_data = booking.sale
|
||||
if @sale_data = @booking.sale
|
||||
@status = true
|
||||
elsif @sale_data = Sale.generate_invoice_from_booking(booking, current_login_employee, cashier, order.source, params[:current_checkin_induties_count])
|
||||
elsif @sale_data = Sale.generate_invoice_from_booking(@booking, current_login_employee, cashier, order.source, params[:current_checkin_induties_count])
|
||||
@status = true
|
||||
else
|
||||
@status = false
|
||||
|
||||
@@ -42,38 +42,56 @@ class Foodcourt::DiscountsController < BaseFoodcourtController
|
||||
table = nil
|
||||
table_id = nil
|
||||
end
|
||||
|
||||
# sale.total_discount = overall_discount.to_f
|
||||
# sale.total_amount = sub_total.to_f
|
||||
# sale.grand_total = (sub_total.to_f - overall_discount.to_f) + sale.total_tax;
|
||||
# sale.save
|
||||
if discount_items.length > 0
|
||||
|
||||
#save sale item for discount
|
||||
discount_items.each do |di|
|
||||
origin_sale_item = SaleItem.find(di["id"])
|
||||
discount = di['discount'].to_d
|
||||
discount_type = di['discount_type']
|
||||
|
||||
sale_item = SaleItem.new
|
||||
sale_item = SaleItem.find(di["id"])
|
||||
discount_item = SaleItem.find_or_initialize_by(parent_id: di['id'])
|
||||
|
||||
sale_item.menu_category_code = origin_sale_item.menu_category_code
|
||||
sale_item.menu_category_name = origin_sale_item.menu_category_name
|
||||
discount_item.discount = discount
|
||||
if discount_type == 'nett'
|
||||
discount_item.discount_type = 'nett'
|
||||
discount_item.product_name = "#{sale_item.product_name} - discount"
|
||||
unit_price = discount
|
||||
elsif discount_type == 'percentage'
|
||||
discount_item.discount_type = 'percentage'
|
||||
discount_item.product_name = "#{sale_item.product_name} - discount(#{discount}%)"
|
||||
unit_price = sale_item.unit_price * (discount / 100)
|
||||
end
|
||||
|
||||
sale_item.sale_id = sale_id
|
||||
sale_item.product_code = origin_sale_item != nil ? origin_sale_item.product_code : sale_id
|
||||
sale_item.product_name = di["name"]
|
||||
sale_item.item_instance_code = origin_sale_item.item_instance_code
|
||||
sale_item.product_alt_name = ""
|
||||
sale_item.status = "Discount"
|
||||
price = unit_price * sale_item.qty
|
||||
|
||||
sale_item.qty = -1
|
||||
sale_item.unit_price = di["price"].to_f * -1
|
||||
sale_item.taxable_price = di["price"]
|
||||
sale_item.is_taxable = 1
|
||||
sale_item.account_id = origin_sale_item.account_id
|
||||
discount_item.menu_category_code = sale_item.menu_category_code
|
||||
discount_item.menu_category_name = sale_item.menu_category_name
|
||||
|
||||
sale_item.price = di["price"]
|
||||
sale_item.save
|
||||
discount_item.sale_id = sale_id
|
||||
discount_item.product_code = sale_item != nil ? sale_item.product_code : sale_id
|
||||
discount_item.item_instance_code = sale_item.item_instance_code
|
||||
discount_item.product_alt_name = ""
|
||||
discount_item.status = "Discount"
|
||||
|
||||
discount_item.qty = sale_item.qty
|
||||
discount_item.unit_price = unit_price
|
||||
discount_item.taxable_price = -price
|
||||
discount_item.is_taxable = sale_item.is_taxable
|
||||
discount_item.account_id = sale_item.account_id
|
||||
|
||||
discount_item.price = -price
|
||||
discount_item.save
|
||||
|
||||
action_by = current_user.name
|
||||
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(discount_item.sale_id, sale.cashier_name, action_by, remark, "ITEMDISCOUNT" )
|
||||
end
|
||||
end
|
||||
|
||||
@@ -102,7 +120,6 @@ class Foodcourt::DiscountsController < BaseFoodcourtController
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
render :json => result.to_json
|
||||
end
|
||||
|
||||
@@ -121,24 +138,31 @@ class Foodcourt::DiscountsController < BaseFoodcourtController
|
||||
table = nil
|
||||
end
|
||||
|
||||
|
||||
if discount_items.length > 0
|
||||
#destroy sale item for discount
|
||||
discount_items.each do |di|
|
||||
sale_item = SaleItem.find(di["id"])
|
||||
sale.total_amount = (sale.total_amount + sale_item.price.abs)
|
||||
|
||||
discount_item = sale_item.discount_item
|
||||
|
||||
next if discount_item.nil?
|
||||
|
||||
sale.total_amount = (sale.total_amount + discount_item.price.abs)
|
||||
|
||||
action_by = current_user.name
|
||||
if table.nil?
|
||||
remark = "Remove Item Discount Item Name ->#{sale_item.product_name}-Product Code ->#{sale_item.product_code} | Price [#{sale_item.price}] | Receipt No #{sale.receipt_no} | Table- No Table "
|
||||
remark = "Remove Item Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{sale.receipt_no} | Table- No Table "
|
||||
else
|
||||
remark = "Remove Item Discount Item Name ->#{sale_item.product_name}-Product Code ->#{sale_item.product_code} | Price [#{sale_item.price}] | Receipt No #{sale.receipt_no} | Table- #{table.name} "
|
||||
remark = "Remove Item Discount Item Name ->#{discount_item.product_name}-Product Code ->#{discount_item.product_code} | Price [#{discount_item.price}] | Receipt No #{sale.receipt_no} | Table- #{table.name} "
|
||||
end
|
||||
sale_audit = SaleAudit.record_audit_discount(sale.sale_id,sale.cashier_name, action_by,remark,"REMOVEITEMDISCOUNT" )
|
||||
|
||||
sale_item.destroy
|
||||
discount_item.destroy
|
||||
end
|
||||
end
|
||||
|
||||
# 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.total_discount, nil, order_source)
|
||||
if table.nil?
|
||||
|
||||
@@ -75,10 +75,10 @@ class Foodcourt::OrdersController < BaseFoodcourtController
|
||||
end
|
||||
end
|
||||
@current_shift = current_user.current_shift || ShiftSale.current_shift
|
||||
status = ['completed', 'void']
|
||||
sale_status = ['completed', 'void']
|
||||
|
||||
@pending_sales = Sale.where('shift_sale_id = ? AND sale_status NOT IN (?)', @current_shift.id, status)
|
||||
@pending_completed = Sale.where('shift_sale_id = ? AND sale_status IN (?)', @current_shift.id, status)
|
||||
@pending_sales = Sale.where('shift_sale_id = ? AND sale_status NOT IN (?)', @current_shift.id, sale_status)
|
||||
@pending_completed = Sale.where('shift_sale_id = ? AND sale_status IN (?)', @current_shift.id, sale_status)
|
||||
@pending_orders = Sale.pending_order('food_court')
|
||||
|
||||
@completed, @bookings = Sale.get_foodcourt_current_shift_orders
|
||||
|
||||
@@ -25,19 +25,24 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
saleitemObj.status = 'void'
|
||||
saleitemObj.remark = remark
|
||||
saleitemObj.save
|
||||
@newsaleitem = SaleItem.new
|
||||
|
||||
@newsaleitem = saleitemObj.dup
|
||||
# @newsaleitem.save
|
||||
@newsaleitem.parent_id = saleitemObj.sale_item_id
|
||||
@newsaleitem.qty = saleitemObj.qty * -1
|
||||
@newsaleitem.price = saleitemObj.price * -1
|
||||
@newsaleitem.is_taxable = 1
|
||||
@newsaleitem.is_taxable = saleitemObj.is_taxable
|
||||
@newsaleitem.taxable_price = saleitemObj.taxable_price * -1
|
||||
@newsaleitem.product_name = saleitemObj.product_name + ' (VOID)'
|
||||
@newsaleitem.remark = remark
|
||||
@newsaleitem.save
|
||||
|
||||
if saleitemObj.discount_item
|
||||
saleitemObj.discount_item.destroy
|
||||
end
|
||||
|
||||
# re-calc tax
|
||||
saleObj = Sale.find(saleitemObj.sale_id)
|
||||
|
||||
# FOr Sale Audit
|
||||
action_by = current_user.name
|
||||
if access_code != "null" && current_user.role == "cashier"
|
||||
@@ -47,7 +52,6 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMVOID" )
|
||||
|
||||
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
||||
end
|
||||
|
||||
def item_foc
|
||||
@@ -61,19 +65,27 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
saleitemObj.save
|
||||
|
||||
@newsaleitem = saleitemObj.dup
|
||||
@newsaleitem.parent_id = saleitemObj.sale_item_id
|
||||
@newsaleitem.qty = saleitemObj.qty * -1
|
||||
@newsaleitem.unit_price = saleitemObj.unit_price * 1
|
||||
@newsaleitem.is_taxable = saleitemObj.is_taxable
|
||||
@newsaleitem.taxable_price = saleitemObj.taxable_price * -1
|
||||
@newsaleitem.price = saleitemObj.price * -1
|
||||
@newsaleitem.product_name = saleitemObj.product_name + ' (FOC)'
|
||||
@newsaleitem.remark = remark
|
||||
@newsaleitem.save
|
||||
|
||||
if saleitemObj.discount_item
|
||||
saleitemObj.discount_item.destroy
|
||||
end
|
||||
|
||||
# re-calc tax
|
||||
saleObj = Sale.find(saleitemObj.sale_id)
|
||||
|
||||
order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id
|
||||
order = Order.find(order_id)
|
||||
oqs_item = AssignedOrderItem.assigned_order_item_by_job(order_id)
|
||||
ActionCable.server.broadcast "order_queue_station_channel",order: oqs_item
|
||||
|
||||
action_by = current_user.name
|
||||
if access_code != "null" && current_user.role == "cashier"
|
||||
@@ -83,7 +95,6 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMFOC" )
|
||||
|
||||
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
||||
end
|
||||
|
||||
def item_edit
|
||||
@@ -110,47 +121,47 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"SALEITEMEDIT" )
|
||||
# saleitemObj.remark = 'edit'
|
||||
|
||||
unless saleitemObj.product_name.include? 'UPDATED'
|
||||
saleitemObj.product_name = saleitemObj.product_name + ' (UPDATED)'
|
||||
end
|
||||
|
||||
saleitemObj.save
|
||||
|
||||
sale.compute_by_sale_items(sale.total_discount, nil, order_source)
|
||||
# re-calc tax
|
||||
saleObj = Sale.find(saleitemObj.sale_id)
|
||||
|
||||
ProductCommission.edit_product_commission(saleitemObj)
|
||||
sale.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||
end
|
||||
|
||||
# make cancel void item
|
||||
def item_void_cancel
|
||||
saleitemId = params[:sale_item_id]
|
||||
access_code = params[:access_code]
|
||||
order_source = params[:type]
|
||||
Sale.transaction do
|
||||
saleitemId = params[:sale_item_id]
|
||||
access_code = params[:access_code]
|
||||
order_source = params[:type]
|
||||
|
||||
saleitemObj = SaleItem.find(saleitemId)
|
||||
saleitemObj = SaleItem.find(saleitemId)
|
||||
|
||||
saleObj = saleitemObj.sale
|
||||
saleObj = saleitemObj.sale
|
||||
|
||||
saleObj.sale_items.where(product_code: saleitemObj.product_code)
|
||||
.where(qty: saleitemObj.qty.abs)
|
||||
.where(unit_price: saleitemObj.unit_price)
|
||||
.where(status: saleitemObj.status).first.update(status: nil, remark: nil)
|
||||
|
||||
saleitemObj.destroy
|
||||
# re-calc tax
|
||||
|
||||
order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id
|
||||
order = Order.find(order_id)
|
||||
|
||||
action_by = current_user.name
|
||||
if access_code != "null" && current_user.role == "cashier"
|
||||
action_by = Employee.find_by_emp_id(access_code).name
|
||||
if saleitemObj.status == 'void'
|
||||
saleitemObj.void_item.destroy
|
||||
else saleitemObj.status == 'foc'
|
||||
saleitemObj.foc_item.destroy
|
||||
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}"
|
||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"ITEMCANCELVOID" )
|
||||
|
||||
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||
ProductCommission.remove_product_commission(saleitemObj)
|
||||
saleitemObj.update(status: nil, remark: nil)
|
||||
# re-calc tax
|
||||
|
||||
order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id
|
||||
order = Order.find(order_id)
|
||||
|
||||
action_by = current_user.name
|
||||
if access_code != "null" && current_user.role == "cashier"
|
||||
action_by = Employee.find_by_emp_id(access_code).name
|
||||
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}"
|
||||
sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,current_user.name, action_by,remark,"ITEMCANCELVOID" )
|
||||
|
||||
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||
end
|
||||
end
|
||||
|
||||
# remove all void items
|
||||
@@ -158,14 +169,13 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
sale_id = params[:sale_id]
|
||||
order_source = params[:type]
|
||||
saleObj = Sale.find(sale_id)
|
||||
saleObj.sale_items.each do |item|
|
||||
saleObj.sale_items.where(status: ['foc', 'void']).each do |item|
|
||||
if item.qty.to_i < 0
|
||||
item.destroy
|
||||
else
|
||||
item.status = nil
|
||||
end
|
||||
item.save
|
||||
ProductCommission.remove_product_commission(item)
|
||||
end
|
||||
saleObj.sale_items.reset
|
||||
# re-calc tax
|
||||
@@ -176,10 +186,7 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
|
||||
sale_id = params[:sale_id]
|
||||
order_source = params[:type]
|
||||
saleObj = Sale.find(sale_id)
|
||||
saleObj.compute_without_void(order_source)
|
||||
saleObj.sale_items.each do |item|
|
||||
ProductCommission.remove_product_commission(item)
|
||||
end
|
||||
saleObj.compute_by_sale_items(saleObj.total_discount, nil, order_source)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -102,7 +102,7 @@ class Origami::DiscountsController < BaseOrigamiController
|
||||
|
||||
sale_audit = SaleAudit.record_audit_discount(sale.sale_id,sale.cashier_name, action_by,remark,"OVERALLDISCOUNT" )
|
||||
end
|
||||
sale.compute_by_sale_items(overall_discount.to_f, nil,order_source)
|
||||
sale.compute_by_sale_items(overall_discount.to_f, nil, order_source)
|
||||
if !table.nil?
|
||||
result = {:status=> "Success", :table_id => table_id, :table_type => table.type }
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user