bug fixes and improvements

This commit is contained in:
Thein Lin Kyaw
2019-09-30 16:53:02 +06:30
parent faa0acee6d
commit 94a1f5b2b5
4 changed files with 20 additions and 22 deletions

View File

@@ -173,18 +173,18 @@ class Origami::SaleEditController < BaseOrigamiController
saleitemId = params[:sale_item_id]
access_code = params[:access_code]
order_source = params[:type]
saleitemObj = SaleItem.find(saleitemId)
both = SaleItem.where('product_code=?', saleitemObj.product_code)
both.each do |item|
if item.qty.to_i > 0
item.status = nil
item.save
end
end
saleitemObj.destroy
saleitemObj = SaleItem.find(saleitemId)
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
saleObj = Sale.find(saleitemObj.sale_id)
order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id
order = Order.find(order_id)

View File

@@ -15,8 +15,6 @@ class OrderItem < ApplicationRecord
after_save :update_stock_journal
# after_update :update_stock_journal
# after_save :add_to_journal, if: Proc.new { !self.id_changed? }
# after_save :update_stock_journal, if: Proc.new { self.id_changed? }
@@ -127,7 +125,7 @@ class OrderItem < ApplicationRecord
end
def update_stock_journal
if self.qty != self.qty_was
if self.qty != self.qty_before_last_save
found, inventory_definition = InventoryDefinition.find_product_in_inventory(self)
if found
InventoryDefinition.check_balance(self, inventory_definition)

View File

@@ -2940,7 +2940,7 @@ private
end
def update_stock_journal
if self.sale_status == "void" && self.sale_status_was != "void"
if self.sale_status == "void" && self.sale_status_before_last_save != "void"
self.sale_items.each do |item|
found, inventory_definition = InventoryDefinition.find_product_in_inventory(item)
if found

View File

@@ -18,7 +18,6 @@ class SaleItem < ApplicationRecord
sale_items.each do|saleitemObj|
@newsaleitem = SaleItem.new
@newsaleitem = saleitemObj.dup
@newsaleitem.save
@newsaleitem.qty = saleitemObj.qty * (-1)
@newsaleitem.unit_price = saleitemObj.unit_price * (-1)
@newsaleitem.taxable_price = (saleitemObj.unit_price * saleitemObj.qty) * (-1)
@@ -233,12 +232,12 @@ class SaleItem < ApplicationRecord
end
def update_stock_journal
is_void = self.status == "void" && self.status_was != "void"
cancel_void = self.status_was == "void" && self.status.nil?
is_edit = self.qty >= 0 && self.qty != self.qty_was
is_foc = self.status == "foc" && self.status_was != "foc"
cancel_foc = self.status_was == "foc"
is_void = self.status == "void" && self.status_before_last_save != "void"
cancel_void = self.status_before_last_save == "void" && self.status.nil?
is_edit = self.qty >= 0 && self.qty != self.qty_before_last_save
is_foc = self.status == "foc" && self.status_before_last_save != "foc"
cancel_foc = self.status_before_last_save == "foc"
if is_void or cancel_void or is_edit or is_foc or cancel_foc
found, inventory_definition = InventoryDefinition.find_product_in_inventory(self)
if found
@@ -253,7 +252,7 @@ class SaleItem < ApplicationRecord
qty = self.qty
remark = "cancel void"
elsif is_edit
qty = self.qty - self.qty_was
qty = self.qty - self.qty_before_last_save
remark = "edit"
end
StockJournal.add_to_journal(self.item_instance_code, qty, stock.balance, remark, inventory_definition, self.id, StockJournal::SALES_TRANS)
@@ -275,4 +274,5 @@ class SaleItem < ApplicationRecord
end
end
end
end