calculate commission in sale_edit, void, foc
This commit is contained in:
@@ -25,6 +25,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
||||
# re-calc tax
|
||||
saleObj = Sale.find(saleitemObj.sale_id)
|
||||
saleObj.compute_without_void
|
||||
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
||||
end
|
||||
|
||||
def item_foc
|
||||
@@ -44,6 +45,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
||||
# re-calc tax
|
||||
saleObj = Sale.find(saleitemObj.sale_id)
|
||||
saleObj.compute_without_void
|
||||
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
|
||||
end
|
||||
|
||||
# def item_edit
|
||||
@@ -105,6 +107,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
||||
# re-calc tax
|
||||
saleObj = Sale.find(saleitemObj.sale_id)
|
||||
saleObj.compute_without_void
|
||||
ProductCommission.remove_product_commission(saleitemObj)
|
||||
end
|
||||
|
||||
# remove all void items
|
||||
@@ -118,6 +121,7 @@ class Origami::SaleEditController < BaseOrigamiController
|
||||
item.remark = nil
|
||||
end
|
||||
item.save
|
||||
ProductCommission.remove_product_commission(item)
|
||||
end
|
||||
|
||||
# re-calc tax
|
||||
@@ -128,5 +132,8 @@ class Origami::SaleEditController < BaseOrigamiController
|
||||
sale_id = params[:sale_id]
|
||||
saleObj = Sale.find(sale_id)
|
||||
saleObj.compute_without_void
|
||||
saleObj.sale_items.each do |item|
|
||||
ProductCommission.remove_product_commission(item)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,7 +5,32 @@ class ProductCommission < ApplicationRecord
|
||||
belongs_to :sale_item, foreign_key: 'sale_item_id'
|
||||
belongs_to :sale, foreign_key: 'sale_id'
|
||||
|
||||
def self.create_product_commission(saleItemObj)
|
||||
def self.create_product_commission(newSaleItem, oldSaleItem)
|
||||
old_product_commission = ProductCommission.find_by_sale_item_id(oldSaleItem.id)
|
||||
return if old_product_commission.nil?
|
||||
menu_item = MenuItem.find_by_item_code(newSaleItem.product_code)
|
||||
return if menu_item.nil?
|
||||
product_commission = ProductCommission.new
|
||||
commission = Commission.where('product_code = ? AND is_active = ?', menu_item.id, true).take
|
||||
product_commission.product_code = menu_item.id
|
||||
product_commission.product_type = 'menu_item' # use for dummy data ToDo::need to change product type
|
||||
unless commission.nil?
|
||||
product_commission.commission_id = commission.id
|
||||
if commission.commission_type == 'Percentage'
|
||||
product_commission.price = newSaleItem.unit_price * (commission.amount / 100.0)
|
||||
product_commission.amount = product_commission.price * newSaleItem.qty
|
||||
elsif commission.commission_type == 'Net Amount'
|
||||
product_commission.price = commission.amount
|
||||
product_commission.amount = product_commission.price * newSaleItem.qty
|
||||
end
|
||||
end
|
||||
unless old_product_commission.nil?
|
||||
product_commission.commissioner_id = old_product_commission.commissioner_id
|
||||
end
|
||||
product_commission.qty = newSaleItem.qty
|
||||
product_commission.sale_id = newSaleItem.sale_id
|
||||
product_commission.sale_item_id = newSaleItem.sale_item_id
|
||||
product_commission.save
|
||||
end
|
||||
|
||||
def self.edit_product_commission(saleItemObj)
|
||||
|
||||
Reference in New Issue
Block a user