api discount and change tax
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user