From b91ad06f35814dae4bd30bb73c48aa565cfbc5a8 Mon Sep 17 00:00:00 2001 From: phyusin Date: Thu, 16 Aug 2018 17:40:49 +0630 Subject: [PATCH] change query for inventory --- .../inventory/inventory_controller.rb | 17 +++++++++++++---- app/views/reports/stock_check/index.html.erb | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/controllers/inventory/inventory_controller.rb b/app/controllers/inventory/inventory_controller.rb index 966872a4..4d6d733c 100755 --- a/app/controllers/inventory/inventory_controller.rb +++ b/app/controllers/inventory/inventory_controller.rb @@ -1,12 +1,21 @@ class Inventory::InventoryController < BaseInventoryController load_and_authorize_resource def index + least_stock = "SELECT (CASE WHEN SIGN(MIN(stock_journals.balance)) > 0 + THEN MIN(stock_journals.balance) WHEN stock_journals.remark NOT LIKE '%out of stock%' + THEN (SELECT balance FROM stock_journals + WHERE item_code = inventory_definitions.item_code AND balance > 0 + AND remark NOT LIKE '%out of stock%' + ORDER BY created_at DESC LIMIT 1) ELSE 0 END) + FROM stock_journals + WHERE stock_journals.item_code = inventory_definitions.item_code + ORDER BY stock_journals.created_at DESC" + @inventory_definitions = InventoryDefinition.select("inventory_definitions.*, - (CASE WHEN sj.credit IS NULL THEN '-' ELSE sj.credit END) as credit, - (CASE WHEN sj.debit IS NULL THEN '-' ELSE sj.debit END) as debit, - (CASE WHEN sj.balance IS NULL THEN '-' ELSE sj.balance END) as balance") + (CASE WHEN sj.credit IS NULL THEN 0 ELSE sj.credit END) as credit, + (CASE WHEN sj.debit IS NULL THEN 0 ELSE sj.debit END) as debit, + (#{least_stock}) as balance") .joins(" LEFT JOIN stock_journals sj ON sj.inventory_definition_id=inventory_definitions.id") - .where("(CASE WHEN sj.balance > 0 THEN sj.balance=(SELECT MIN(balance) FROM stock_journals WHERE stock_journals.item_code = inventory_definitions.item_code ORDER BY created_at DESC) ELSE 1 END)") .group("inventory_definitions.item_code") .order("(CASE WHEN sj.balance > 0 THEN MIN(sj.balance) ELSE NULL END )") diff --git a/app/views/reports/stock_check/index.html.erb b/app/views/reports/stock_check/index.html.erb index 574d2946..2235459d 100755 --- a/app/views/reports/stock_check/index.html.erb +++ b/app/views/reports/stock_check/index.html.erb @@ -82,7 +82,7 @@ <% end %> <%= result.stock_count rescue '-' %> - <%= number_with_precision(result.stock_balance, precision:precision.to_i,delimiter:delimiter) rescue '-' %> + <%= result.stock_balance rescue '-' %> <%= result.different rescue '-' %> <%= result.remark rescue '-' %> <%= Employee.find(result.stock_check.check_by).name rescue '-' %>