fixed inventory

This commit is contained in:
NyanLinHtut
2019-09-13 21:13:04 +06:30
parent e0b54728f7
commit 4808947fcd
9 changed files with 228 additions and 172 deletions

View File

@@ -16,6 +16,8 @@ class Sale < ApplicationRecord
has_many :bookings
has_many :product_commissions
after_update :update_stock_journal
scope :open_invoices, -> { where("sale_status = 'new' and receipt_date BETWEEN '#{DateTime.now.utc.end_of_day}' AND '#{DateTime.now.utc.beginning_of_day}'") }
scope :complete_sale, -> { where("sale_status = 'completed' and receipt_date BETWEEN '#{DateTime.now.utc.beginning_of_day}' AND '#{DateTime.now.utc.end_of_day}'") }
@@ -2970,4 +2972,21 @@ private
self.sale_id = SeedGenerator.generate_id(self.class.name, "SAL")
end
end
def update_stock_journal
if self.sale_status == "void" && self.sale_status_was != "void"
self.sale_items.each do |item|
found, inventory_definition = InventoryDefinition.find_product_in_inventory(item)
if found
stock = StockJournal.where('item_code=?', item.item_instance_code).order("id DESC").first
unless stock.nil?
check_item = StockCheckItem.where('item_code=?', item.item_instance_code).order("id DESC").first
StockJournal.add_to_journal(item.item_instance_code, -item.qty, stock.balance, "void", inventory_definition, item.id, StockJournal::SALES_TRANS)
check_item.different = check_item.different + item.qty
check_item.save
end
end
end
end
end
end