+
+
+
diff --git a/app/controllers/origami/in_juties_controller.rb b/app/controllers/origami/in_juties_controller.rb
index ff76d3b1..d78ef348 100644
--- a/app/controllers/origami/in_juties_controller.rb
+++ b/app/controllers/origami/in_juties_controller.rb
@@ -16,8 +16,7 @@ class Origami::InJutiesController < BaseOrigamiController
# GET /in_juties/1
# GET /in_juties/1.json
- def show
- end
+ def show; end
# GET /in_juties/new
def new
@@ -29,8 +28,7 @@ class Origami::InJutiesController < BaseOrigamiController
end
# GET /in_juties/1/edit
- def edit
- end
+ def edit; end
def edit_in_juty
@in_juty = InJuty.find(params[:id])
@@ -71,7 +69,7 @@ class Origami::InJutiesController < BaseOrigamiController
out_time = out_time.change(offset: '+06:30')
@in_juty = InJuty.new
in_juty_id = in_juty[:id]
- unless in_juty_id.nil?
+ unless in_juty_id.empty?
@in_juty = InJuty.find(in_juty_id.to_i)
end
diff --git a/app/controllers/origami/product_commissions_controller.rb b/app/controllers/origami/product_commissions_controller.rb
index ada68f59..74dd8095 100644
--- a/app/controllers/origami/product_commissions_controller.rb
+++ b/app/controllers/origami/product_commissions_controller.rb
@@ -1,4 +1,4 @@
-class Origami::ProductCommissionsController < ApplicationController
+class Origami::ProductCommissionsController < BaseOrigamiController
before_action :set_product_commission, only: [:show, :edit, :update, :destroy]
# GET /product_commissions
diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb
index 900b0431..61c8b00f 100644
--- a/app/controllers/origami/sale_edit_controller.rb
+++ b/app/controllers/origami/sale_edit_controller.rb
@@ -1,5 +1,5 @@
class Origami::SaleEditController < BaseOrigamiController
- authorize_resource :class => false
+ authorize_resource class: false
# Index for sale item void OR edit
def edit
sale_id = params[:sale_id]
@@ -19,12 +19,13 @@ class Origami::SaleEditController < BaseOrigamiController
@newsaleitem.qty = saleitemObj.qty * -1
@newsaleitem.price = saleitemObj.price * -1
@newsaleitem.is_taxable = 1
- @newsaleitem.product_name = saleitemObj.product_name + " - void"
+ @newsaleitem.product_name = saleitemObj.product_name + ' - void'
@newsaleitem.save
# 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
@@ -77,14 +79,19 @@ class Origami::SaleEditController < BaseOrigamiController
saleitemObj.unit_price = update_price
saleitemObj.taxable_price = update_qty.to_f * update_price.to_f
# saleitemObj.remark = 'edit'
- saleitemObj.product_name = saleitemObj.product_name + " - updated"
+
+ unless saleitemObj.product_name.include? 'updated'
+ saleitemObj.product_name = saleitemObj.product_name + ' - updated'
+ end
+
saleitemObj.save
# re-calc tax
saleObj = Sale.find(saleitemObj.sale_id)
saleObj.compute_without_void
- end
+ ProductCommission.edit_product_commission(saleitemObj)
+ end
# make cancel void item
def item_void_cancel
@@ -102,6 +109,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
@@ -115,6 +123,7 @@ class Origami::SaleEditController < BaseOrigamiController
item.remark = nil
end
item.save
+ ProductCommission.remove_product_commission(item)
end
# re-calc tax
@@ -125,5 +134,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
diff --git a/app/models/product_commission.rb b/app/models/product_commission.rb
index 0e39f9f3..9b56e889 100644
--- a/app/models/product_commission.rb
+++ b/app/models/product_commission.rb
@@ -5,14 +5,67 @@ class ProductCommission < ApplicationRecord
belongs_to :sale_item, foreign_key: 'sale_item_id'
belongs_to :sale, foreign_key: 'sale_id'
+ 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)
+ menu_item = MenuItem.find_by_item_code(saleItemObj.product_code)
+ commission = Commission.where('product_code = ? AND is_active = ?', menu_item.id, true).take
+ product_commission = ProductCommission.where('sale_item_id = ?', saleItemObj.id).take
+
+ return if commission.nil?
+ product_commission.qty = saleItemObj.qty
+ if commission.commission_type == 'Percentage'
+ product_commission.price = saleItemObj.unit_price * (commission.amount / 100.0)
+ product_commission.amount = product_commission.price * saleItemObj.qty
+ elsif commission.commission_type == 'Net Amount'
+ product_commission.price = commission.amount
+ product_commission.amount = product_commission.price * saleItemObj.qty
+ end
+ product_commission.save
+ puts 'Edit Product Commission Success'
+ end
+
+ def self.remove_product_commission(sale_item_id)
+ transaction = ProductCommission.find_by_sale_item_id(sale_item_id)
+ return if transaction.nil?
+ transaction.destroy
+ puts 'Remove Product Commission Success'
+ end
+
def self.get_transaction(from, to, commissioner)
- transaction = self.all
+ transaction = all
if !from.nil? && !to.nil?
transaction = transaction.where('updated_at between ? and ?', from, to)
end
if commissioner != 0
transaction = transaction.where(commissioner_id: commissioner)
end
- return transaction
+ transaction
end
end
diff --git a/app/models/promotion.rb b/app/models/promotion.rb
index dfab86e9..624818f1 100644
--- a/app/models/promotion.rb
+++ b/app/models/promotion.rb
@@ -28,8 +28,13 @@ class Promotion < ApplicationRecord
end
def self.combine_item(saleObj)
- order_id = saleObj.sale_orders[0].order_id
- itemList = OrderItem.where("order_id = ?", order_id).group(:item_instance_code).sum(:qty)
+ # order_id = saleObj.sale_orders[0].order_id
+ # itemList = OrderItem.where("order_id = ?", order_id).group(:item_instance_code).sum(:qty)
+ itemList = []
+ saleObj.sale_orders.each do |so|
+ itemList << OrderItem.where("order_id = ?",so.order_id).group(:item_instance_code).sum(:qty)
+ end
+ return itemList
end
def self.is_promo_day(promoList, day, orderitemList, sale_id)
@@ -46,13 +51,15 @@ class Promotion < ApplicationRecord
def self.find_promo_item(promo, orderitem, sale_id)
# item_code = OrderItem.find_by_item_instance_code(orderitem[0]).item_code
- if promo.original_product.to_s == orderitem[0]
- if promo.min_qty.to_i > orderitem[1].to_i
- return false
- else
- check_promo_type(promo,orderitem, sale_id)
- end
- end
+ orderitem.each do |odr_item|
+ if promo.original_product.to_s == odr_item[0]
+ if promo.min_qty.to_i > odr_item[1].to_i
+ return false
+ else
+ check_promo_type(promo,odr_item, sale_id)
+ end
+ end
+ end
end
def self.check_promo_type(promo, orderitem, sale_id)
@@ -126,7 +133,6 @@ class Promotion < ApplicationRecord
# AA - 10 # 3 # BB # orderList, #S34345
def self.give_promotion_second_product(orderitem_count, foc_min_qty, promo_product, orderitem, sale_id)
puts "..... orderitem_count: " + orderitem_count.to_s + " / foc_min_qty: " + foc_min_qty.to_s + " /promo_product: " + promo_product + " orderitem: " + orderitem.to_s
- byebug
promotion_qty = orderitem_count.to_i / foc_min_qty.to_i # get foc item qty
foc_qty = find_second_item_qty(sale_id, promo_product)
if (foc_qty < promotion_qty)
@@ -212,9 +218,11 @@ class Promotion < ApplicationRecord
saleObj = Sale.find_by_sale_id(sale_id)
itemList = combine_item(saleObj)
itemList.each do |item|
- if item[0] == promo_item
- return item[1]
- end
+ item.each do |i|
+ if i[0] == promo_item
+ return i[1]
+ end
+ end
end
return 0
end
diff --git a/app/models/sale.rb b/app/models/sale.rb
index 6eec518f..c4925812 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -158,6 +158,7 @@ class Sale < ApplicationRecord
#pull
sale_item.product_code = item.item_code
+ sale_item.item_instance_code = item.item_instance_code
sale_item.product_name = item.item_name
sale_item.product_alt_name = item.alt_name
sale_item.account_id = item.account_id
diff --git a/app/views/inventory/inventory_definitions/_form.html.erb b/app/views/inventory/inventory_definitions/_form.html.erb
index 36b80822..66c073ad 100644
--- a/app/views/inventory/inventory_definitions/_form.html.erb
+++ b/app/views/inventory/inventory_definitions/_form.html.erb
@@ -4,6 +4,47 @@
diff --git a/app/views/origami/in_juties/_assign_in_juty.html.erb b/app/views/origami/in_juties/_assign_in_juty.html.erb
index e1ec23ed..6303d79f 100644
--- a/app/views/origami/in_juties/_assign_in_juty.html.erb
+++ b/app/views/origami/in_juties/_assign_in_juty.html.erb
@@ -4,22 +4,11 @@
<%= f.hidden_field :id, :class => "form-control col-md-6 " %>
-
<%= f.hidden_field :dinning_id, :value => @table.id, :class => "form-control col-md-4 " %>
-
-
- <%= @table.name %>
-
-
-
<%= f.collection_select :commissioner_ids, Commissioner.all, :id, :name, {prompt: 'Select Commissioner'}, {class: 'form-control'} %>
-
-
<%= f.input :in_time, :placeholder => "From Date", :class => "form-control" %>
-
<%= f.input :out_time, :placeholder => "To Date", :class => "form-control" %>
-