From e8bbf6492fc120d34eb8b36fd2c61ee1a9fdc5dc Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Fri, 15 Nov 2024 10:04:37 +0530 Subject: [PATCH] fix: stock ledger variance report filter options (#44137) --- .../stock_ledger_variance.js | 18 +++++++++++++++++- .../stock_ledger_variance.py | 18 ++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.js b/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.js index 07e7b59b514..5dfb6627662 100644 --- a/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.js +++ b/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.js @@ -47,7 +47,23 @@ frappe.query_reports["Stock Ledger Variance"] = { fieldname: "difference_in", fieldtype: "Select", label: __("Difference In"), - options: ["", "Qty", "Value", "Valuation"], + options: [ + { + // Check "Stock Ledger Invariant Check" report with A - B column + label: __("Quantity (A - B)"), + value: "Qty", + }, + { + // Check "Stock Ledger Invariant Check" report with G - D column + label: __("Value (G - D)"), + value: "Value", + }, + { + // Check "Stock Ledger Invariant Check" report with I - K column + label: __("Valuation (I - K)"), + value: "Valuation", + }, + ], }, { fieldname: "include_disabled", diff --git a/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py b/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py index 0b7e551c86f..808afadd05a 100644 --- a/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py +++ b/erpnext/stock/report/stock_ledger_variance/stock_ledger_variance.py @@ -1,6 +1,8 @@ # Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors # For license information, please see license.txt +import json + import frappe from frappe import _ from frappe.utils import cint, flt @@ -270,12 +272,16 @@ def has_difference(row, precision, difference_in, valuation_method): value_diff = flt(row.diff_value_diff, precision) valuation_diff = flt(row.valuation_diff, precision) else: - qty_diff = flt(row.difference_in_qty, precision) or flt(row.fifo_qty_diff, precision) - value_diff = ( - flt(row.diff_value_diff, precision) - or flt(row.fifo_value_diff, precision) - or flt(row.fifo_difference_diff, precision) - ) + qty_diff = flt(row.difference_in_qty, precision) + value_diff = flt(row.diff_value_diff, precision) + + if row.stock_queue and json.loads(row.stock_queue): + value_diff = value_diff or ( + flt(row.fifo_value_diff, precision) or flt(row.fifo_difference_diff, precision) + ) + + qty_diff = qty_diff or flt(row.fifo_qty_diff, precision) + valuation_diff = flt(row.valuation_diff, precision) or flt(row.fifo_valuation_diff, precision) if difference_in == "Qty" and qty_diff: